I have an obsession with mini computers. I’ve got a number of NUCs as lab devices, and some off brand models too. There is also not quite a bakery’s worth of Raspberry Pi’s. Having small purpose driven appliances works perfectly for how my lab setup has evolved. As needs and missions change, different components can be repurposed and built into something else. In a way it’s like playing with Legos; another proclivity I’ve held on to from my earliest days as a tinkerer.
One of my favorite (and ever evolving) projects has been the Lack Rack. I’d already had a set of Raspberry Pi’s rack mounted.
As I was rewiring some other components, I rack mounted 2 NUCs and improvised on a third pc. There was another mini computer that I was looking to mount, but the dimensions weren’t compatible with the rack hardware. That led to a separate project that worked out so well I figured I’d share it.
There’s really only one component to the build, though you could use multiple kits depending on how many levels (or computers) you want to accommodate. The kit isn’t Lego brand, but it’s essentially interchangeable with other Lego pieces.
The (4) base plates are 6×6 and come with (30) 2 inch risers. As such the shelves can be 2 or 4 inches between. I used the risers not just for the corner posts, but also on the sides of the devices to fix them in position. Besides mini computers it was very easy to accommodate a 5-port switch for networking.
If you’re looking for an easy way to rack and stack a few mini computers, and perhaps want to add some Lego accoutrements, this could be just what you need.
Ever since the 2021 iPad models with USB-C chargers came out, I’ve been intrigued by the notion of Raspberry Pi gadgets. In short, these are Raspberry Pi devices that draw their power, and/or networking from the USB-C port on the iPad Pro.
Having awakened my tinkering spirit with the internet speed monitor project, I was looking for another project. I had one unused Raspberry Pi Zero W in a box of spare Pi parts, so that’s where I started.
I chose Kali for the distribution to use because there are images specific to various Raspberry Pi hardware models, and because the distribution itself supports many popular Linux tools for Forensics and Reverse Engineering. REMnux is my default Linux for malware poking, but to date it’s only supported on Intel architectures.
Know from the start you’re not going to be using this device for processing on the scale of Enron, but for access to a wider toolset when on the go, and especially for training I think it’s a pretty cool setup. If you’re looking to set up a mobile development environment, or still run Kali but with more oomf – there’s number of resources to do so using a Pi 4. Since the Pi Zero W is powered by a USB-micro, it cannot support networking (iPad to Pi) over the USB port. Later models like the Pi 4 (USB-C powered) are capable, but at the time of the project, all mine be were occupied. In this case we’ll be connecting to the Pi over WiFi via SSH.
Grab the image for Pi Zero W (or whatever’s applicable for the model you’re running from https://www.kali.org/get-kali/#kali-arm. There’s plenty of documentation on enabling SSH if it isn’t by default. On this particular build for the Pi, it was. You’ll also want to install tightvncserver.
Depending on which Pi hardware version you’re using, the Pi will have different capabilities. Notably lacking on the Pi Zero W, the resources to run any modern browser. But since I have the iPad that it’s running from it’s not like I’m missing it at all.
Kali supports the installation of what they call meta-packages. These are specific sets of tools or features to support different capabilities (Bluetooth hacking, wireless hacking, etc.) For my build I chose the reverse engineering and forensics packages as those are the tools I’m most interested in experimenting with.
I had a bit of trial and error when it came to the physical USB connections. Originally I had a series of USB-C connecting adapters, terminating with a USB-C to USB micro adapter. When I had this franken-jack plugged into the iPad the Pi wouldn’t power up. However if I had a USC-C cable connected to the jack, or between the jack and the iPad, I could get power (just with a cable I didn’t need.) At some point I had the idea of introducing a USB-A into the mix and voila, power to the Pi. All that said, the final hardware combo consisted of a USB-C (male) to USB-A (female) 180 degree adapter, and a USB-A (male) to USB-Micro (male) adapter.
The 180 degree adapter enables a very low profile while having a reasonable gap for ventilation, even when connected to a Magic Keyboard.
Plug the device into the USB-C port on the iPad a give it a minute or two to boot up.
I was looking wistfully at the Lack Rack from my arm chair, admiring the (faux) copper conduit that covered the primary inbound internet link to the switch. I thought it would be cool looking to have an antique steam gauge attached to the piping. Two things caused that idea to quickly change – 1. the going prices for antique steam gauges right now, 2. once I was thinking about it as a gauge I thought an ‘internet speed gauge’ would be perfect. Alas, even if said gauge could be acquired without breaking the bank, converting MBPS to PSI and making it functional is above my level of engineering. So on to the next best thing – a Raspberry Pi hack.
Materials:
Raspberry Pi (3 or 4) with Raspbian 32-bit OS
Case with 3.5 in LCD Display
Copper spray paint 😉
Attention to detail at the command line
Speedtest CLI
Once you’ve got your Raspberry Pi up and running start with the Installing the Speedtest CLI instructions at https://pimylifeup.com/raspberry-pi-internet-speed-monitor/. Complete steps 1-6. When the article gets to Writing our Speed Test Python Script, you can skip that section. I do recommend it from a learning perspective, but the code from that step won’t be used in the final project.
Assuming this is a new installation, you will need to install InfluxDB and Grafana. Complete the respective instructions for each.
Continue with the primary article’s instructions for Using Grafana to Display your Speedtest Data.
If you’ve made it along this far, you should have a working Grafana dashboard displaying Upload Speed, Download Speed, and Ping (Latency). If you’re hitting a glitch – go back through what you’ve coded and double check that any references to the user (default = Pi) are accurate for the user on your device. You should be seeing updated data based on the frequency you specified in crontab -e.
Install Grafana Kiosk
Next, we want to set up our device as a kiosk, and have it boot and display the Network Speed dashboard automatically.