Raspberry Pi Use Cases
A friend asked,
What’s a good idea for Paspberry Pis aside from making a MicroK8s cluster out of them and then doing nothing else? I don’t know what I need that would even require that low power infrastructure.
This is a good question! A lot of clickbait YouTube videos and blog posts about Raspberry Pis (and similar hardware) are things like “make a tiny NAS,” “run your own cloud,” and other use cases for which the Pi is clearly ill-suited.
I’ve given this question a lot of thought in the past, since otherwise I absolutely fall into the “this hardware looks cool; I should buy one; I’m sure I’ll find a use for it” trap.
My answer:
I consider Pis as the tool to use when a moderate amount of Linux compute power needs to be in a specific physical location and/or interface with specific hardware.
This is a carefully-constructed sentence with a few implications.
“…moderate Linux compute power…” means that this task can’t be (easily) handled by a smaller, less powerful, Arduino-type device. Logging a temperature to InfluxDB periodically, for example, is best handled by a little ESP8266 board or similar.1
On the other hand, it also means that a Pi is not the right choice for something like a NAS or a media server, where you’d quickly run into CPU and other hardware constraints.
“…needs to be in a specific physical location and/or interface with specific hardware…” is a critical qualifier. In general I prefer to run as many home server tasks as possible on the NAS in my basement; it has more than moderate computing power available!
But sometimes there’s hardware that can’t be located in the basement: ADS-B radio hardware, for example. And often there’s a need to connect to I2C or SPI devices.
Wrapping up, here are some of the Pis running in my home, with a brief note on how they meet these criteria:
- My ADS-B & BirdNETPi box lives in an outbuilding and is connected to several antennas and microphones. This is a Raspberry Pi 5 with a good amount of memory and processing power, and it needs to be colocated with the antennas and microphones.
- I have two PiKVMs, one built into my NAS and one “floating” that I can plug into whichever system I’m troubleshooting. These clearly need to be independent hardware appliances.
- A Pi Zero sits near my alarm clock, constantly transmitting a long playlist of calming classical music to wake me up when the alarm goes off. This needs specific hardware2 and needs to be in a specific location.
- One Pi in my workshop performs two duties. It reads (via an ADC) a sound level monitor and automatically pauses my workshop Sonos speaker when I turn on a loud power tool, and it also provides a simple WiFi network that my Bambu 3D printer can reliably stay connected to.
- Finally, a few Pi Zeros are glued to the side of various UPSs in the house & workshop. These connect to the UPSs via USB and ship energy usage & other metrics to an InfluxDB instance on my NAS. They need to be in specific locations, of course: wherever the UPSs are!
Confession: I have used Pis for things like this in the past! That’s how I know it’s a bad idea. For something so simple, keeping a Pi running is not just overkill; it takes significantly more effort to keep a Pi running reliably than it does to keep a simple Arduino running for months or years between reboots. ↩
Technically it’s just abusing the Pi’s GPIO, but still, that’s specific hardware. ↩