I’ve been watching the Raspberry Pi project for about a decade now, and always wanted one, but never had a real need for one. Well, I’m #COVIDBored, I don’t have an outdoor winter hobby, and the Model 4 B now comes with gigabit Ethernet, USB 3, 8 GB of RAM, 5GHz AC Wi-Fi, and Bluetooth 5 BLE, all for $100 CAD.
I saw this story a few years ago, and I think it’s brilliant. It’s only in the last couple years that my ISP’s network performance has gotten consistently decent, but, it would still be fun to automate passive-aggressive tweets at them. Adding this traffic light to it could also be interesting.
One of the most common friends / family tech support questions I get is, “Why is my Wi-Fi so slow?” So I thought I’d build a speed tester that I can leave at their place to run hourly speed tests and collect some data. This one is interesting because the data could be uploaded to a Google Sheet, so I can see and graph the results in near real time, and share them with people in a familiar format.
I also need to learn more about Docker and Kubernetes, so I thought I’d start with building a few Docker containers, then eventually buy another two Pis and built my own Kubernetes cluster at home. I’m hoping to use this guide. I’m also quite interested in network security and privacy, so I’ll try to run PiHole and OpenWrt in Docker containers on Pis as well.
I went to raspberrypi.org, was referred to buyapi.ca, and ordered:
- Raspberry Pi 4 Model B/8GB
- Aluminum Heatsink for Raspberry Pi 4B (3-Pack)
- MicroSD Card Extreme Pro – 32 GB – Class 10 – BLANK
- Official Raspberry Pi 7″ Touch Screen Display with 10 Finger Capacitive Touch
- SmartiPi Touch 2 Case for 7″ Official Display
- Raspberry Pi 15W Power Supply, US, Black
All in, with taxes and shipping, came to almost $300 CAD, and arrived at the end of the shipping time ETA window, likely from delays from UPS.
The assembly will be a blog post of its own, as the assembly instructions for the SmartiPi case and the touchscreen could use some clarification. It turns out that there’s no automatic control for the fan included in this kit without additional hardware and software, which is a little unfortunate, but the official Raspberry Pi 4 Case Fan includes the needed electronics, and Pi OS includes the needed software, so I’ve ordered one of them. They look like the same size, so I hope it’s a drop in replacement. Service from BuyaPi.ca was fantastic, but they’re based out of Ontario, so I thought I’d try CanaKit.com this time, as they’re based out of Vancouver and may have faster shipping for a better price. The CanaKit.com website needs some aesthetic investment, and PayPal payment integration would be a plus, to catch up to the BuyaPi.ca website; the fewer parties I trust my credit card with, the less risk I’m exposed to.
The touchscreen was blindingly bright, and there’s no brightness control built in, so I installed rpi-backlight, which was pretty easy and effective.
There’s also no on-screen keyboard included, so I installed matchbox-keyboard. It seems to work well enough, but certainly seems to prefer that the taskbar be on the top of the screen.
I also configured RealVNC for remote access; the fewer service calls, the better, especially in these totally precedented times.
One question I had was, because I’ve only ever really used SSH on headless VMs, how do I display something on the screen via SSH? One project I’d like to build is to automatically pull the latest commits from a GitHub repo and open the most recently changed file in a browser, so I might have to look into something like this.
One of my oddities is my insistence on ISO 8601 date formats, and that was a lot more work on a Pi than I expected. I wrote this post so I don’t have to figure it out from scratch again.
I’m hoping to automate the new Pi setup process, either through PXE network booting, MicroSD card imaging, or Terraform / Ansible, or other. I’m looking for suggestions on what works / what doesn’t.
With the network testing, I’m hope to be able to test both a wired Ethernet connection and a Wi-Fi connection, however, it seems that the Wi-Fi performance isn’t quite what I was hoping for; it’s only getting about 65 Mbps down on my 5 GHz 802.11AC network, when my phone and laptop get the full 120 Mbps that we pay for. And there’s this strange bug in the speedtest.net CLI app that fails to bind to a specified interface, or IP
[2021-01-10 02:17:32] [pi@raspberrypi:~] $ speedtest -I=eth0
[2021-01-10 02:18:19.685] [error] Configuration - Failed binding local connection end (UnknownException)
[2021-01-10 02:18:19.685] [error] Configuration - Cannot retrieve configuration document (0)
[2021-01-10 02:18:19.686] [error] ConfigurationError - Could not retrieve or read configuration (Configuration)
[2021-01-10 02:18:19.686] [error] ConfigurationError - Could not retrieve or read configuration (Configuration)
[error] Configuration - Could not retrieve or read configuration (ConfigurationError)
Something else I’m interested in is environmental and performance monitoring. I’m hoping there’s something more robust than this, but lighter than Nagios.
I’ll track my progress on this Kanban board, write the occasional post here on anything noteworthy, and will post any code I write to my GitHub repo.
Leave a Reply