A brief look into the universe of Single Board Computers (SBCs) and a perspective on why you don't always need or benefit from a Raspberry Pi, and running Home Assistant on other devices.
Note: We are selling Pre-installed Home Assistant Servers over at SmartHomeShopUK.com!
At the time of writing (early 2023) the supply of Raspberry Pi's has been very limited and unpredictable for around two years due to various goings on around the world.
While things are improving, some availability is still quoted as next year.
This has been a shock to all of us who were used to buying a Pi whenever we needed, be it for a project or otherwise.
The lack of supply has potentially created more demand especially in contexts where they are used commercially with people and companies trying to stock up preemptively.
However, it turns out that depending on the use case there are a number of alternative options, many of which are not impacted by the supply issues affecting the Raspberry Pis.
Why are Raspberry Pis so popular
While I can't speak for everyone who buys or uses them there are a few obvious benefits, including, in no particular order:
- A complete modern computer, all on one board
- Capable of running most mainstream operating systems
- Numerous OS options from light weight to more conventional desktops
- Cheap / cost effective (at least outside of a shortage)
- Can be fairly powerful
- Solid State (no spinning disks or other moving parts) and therefore not so sensitive to the operating environment
- Low/modest power consumption
- Small form factor
- Various physical connectivity options (GPIO / UART / I2C / SPI / PWM)
- Easy to get hold of (in the past!)
- Expandable through USB, Serial and other common technologies (eg adding GPS, RTC, Modem, etc)
And there is no shortage of use cases including:
- Home servers
- Remote monitoring/sensing
- Smart home/automation
- Set top box/media player
- Various niche and/or commercial projects
The obvious problem, as described above is the shortage of Raspberry Pis.
Or is it..?
None of the use cases above strictly need a Pi, and many other devices have most of the benefits.
For example, few of the (albeit limited) examples above require the IO pins which means in theory they'd work on any conventional computer.
So in reality the concept of the Pi is very popular but the benefits and use cases can be found and implemented by other products too.
And what is the Pi? Ultimately it is a (very cost effective) Single Board Computer.
Single Board Computers
First a recap of a single board computer - as defined by Wikipedia:
A single-board computer (SBC) is a complete computer built on a single circuit board, with microprocessor(s), memory, input/output (I/O) and other features required of a functional computer. Single-board computers are commonly made as demonstration or development systems, for educational systems, or for use as embedded computer controllers. Many types of home computers or portable computers integrate all their functions onto a single printed circuit board.
Unlike a desktop personal computer, single board computers often do not rely on expansion slots for peripheral functions or expansion. Single board computers have been built using a wide range of microprocessors. Simple designs, such as those built by computer hobbyists, often use static RAM and low-cost 32- or 64-bit processors like ARM. Other types, such as blade servers, would perform similar to a server computer, only in a more compact format.
My Pi Use cases
There are many projects I've done that are powered by Pis, the following two have since been migrated to other, similar hardware because they have no particular need for a Pi:
For a long time I've had a "Server" at home of some sort. In recent years I went from a HP Micro server to a Dell R710 (running lots of containers), to a Pi to my current SBC solution.
The HP was nice and small but not very powerful and limited in terms of memory and lacking lights-out management.
The Dell was powerful and cheap (as its older), with lights out management it would be perfect except it draws over 100 watts when completely idle.
This prompted the move to the Pi with energy costs rocketing and the Dell being overkill.
The Pi was technically fine but it never felt robust:
- I would often get power warnings despite providing more than enough power (including trying a 65W USB-C PSU).
- The case I had leaves the pins exposed - I had no use for the IO pins. Of course I could change the case.
- The SD card being the main boot device - I've never had major issues but am aware of issues like card wear, plus it is easy to knock
- Performance - while generally good it felt a bit sluggish sometimes especially with disk IO
These niggles aside, my biggest headache was the arm architecture...
I run various services in containers and the difference in architecture between my laptop/computer, GitHub actions and the Pi meant that containers built externally in most cases could not by default be run on the Pi. There are ways to build arm containers but I didn't make much progress on that front and opted to build them on the Pi, which was not fast.
From the start Home Assistant (follow the link if you're unfamiliar) has also been running on another Pi and I planned to move that over too if I found a "better" solution as the architecture has caused a few issues with some add-ons (eg vscode).
This is not an exhaustive list of Pi alternatives, and I've not tested them all either but it's worth noting them to raise awareness if nothing else.
ARM / Pi-Style
These are mostly based on the RockChip series and in no particular order:
- The Khadas VIM Series (VIM 1 / VIM 2 / VIM 3)
- The Rock Pi Series (Rock 4 C+)
- The Orange Pi Series (Orange Pi 4 LTS)
- The BeagleBone Series (BeagleBone Black Rev C)
- NVidia Jetson
One challenge I have found with the above list is the boot process is not consistent and as a result each has its own set of images, unlike x86-64 hardward which is very standardisesd these days.
It's worth checking out the Hi-Link HLK Linux/OpenWRT Router modules - they are low powered and have limited I/Os but present an interesting, low cost solution for some projects.
Browsing AliExpress is both a great way to learn about and find new hardware as well as to spend a lot of money on random things that pique your curiosity...
The Mini Computers
A whole series of compact budget devices branded as mini computers exists that do not present themselves in the same space or market as the Pi-like devices that people think of when talking about SBCs.
The makes, models and availability vary, I suspect in part as these are largely off-brand Chinese imports but the specs are largely consistent.
The cheaper ones are largely dual or quad core Intel Celeron based devices.
The very cheapest have eMMC storage, the next level up have NVMe drives or SSDs.
A search for mini computer emmc on Amazon throws up a load of results.
To include higher spec versions search mini computer.
The mini/micro computers provide a good option for my needs. There is no upper limit on price since there are some very high specs out there, and the lowest end is just about similar to a Pi if you find a good deal.
They're enclosed, with no exposed IO pins, and have the usual USB/HDMI/Ethernet connectivity.
While the eMMC versions may or may not perform better than the SD cards (I've read mixed reports) they are at least enclosed and directly attached (aka soldered).
The NVMe versions naturally have better I/O performance and potentially reliability.
The x86 architecture means running software is as easy as it has ever been since Arm/Arm64 support is good but still varies.
Beelink T4 Pro
The Beelink T4 Pro, which I originally bought from for ~£100, is an Intel Celeron N3350 (up to 2.4GHz) device with 4 GB Ram and a 64 GB eMMC for storage. It also has 2 x HDMI Ports, 3 x USB 3, Audio and Ethernet.
It has a fairly conventional BIOS (unlike the ARM SBCs) and can be set to boot from USB.
It comes with Windows 10 but happily runs other operating systems, such as Ubuntu out of the box.
This is the lesser spec'd of the two devices I bought and as such I decided that it was better suited to running Home Assistant than being the main Home Server.
The installation process is well documented so I won't go in to too much depth here.
I opted for the Home Assistant Operating System (x86-64) as it's a device dedicated to running it.
You have to copy the image to the boot media, which in this case is not (easily) removable.
I booted the T4 Pro from an Ubuntu Live USB Stick, downloaded the image and wrote it to the boot device using the Raspberry Pi imager (dd and other tools would also work).
It worked perfectly first time. After restoring the backups it was like nothing had changed.
Out of curiosity I opened up the T4 Pro and it technically is a Single Board Computer!
Bkouen Mini PC
The Bkouen Mini PC, which I originally bought for ~£200, is an Intel Celeron N5105 (up to 2.9GHz) device with 8 GB Ram and a 256 GB SSD for storage. It also has 2 x HDMI Ports, 2 x USB 3, 1 x USB 2, Audio and Ethernet.
It also has a fairly conventional BIOS (unlike the ARM SBCs) and can be set to boot from USB.
It comes with Windows 11 Pro but happily runs other operating systems, such as Ubuntu out of the box.
The Server has always run the latest Ubuntu LTS release.
Recently I've moved nearly everything over to containers with a compose stack to run them all, so much like Home Assistant it was fairly painless to set up the stack and move the data.
The device runs as any other computer would, no special setup required.
Out of curiosity I opened up the Bkouen Mini PC and it technically is also a Single Board Computer! Note the SATA connector and that the NVMe could be replaced.
Raspberry Pis are great, when you can get them they represent great value and flexibility and their existence alone has likely given rise to the other brand variants.
That said, they may not be the best solution for similar use cases.
The devices shown above bride a potential gap between the upper specs, and cost of a Pi 4 and into a range of options, depending on budget, spec, and so on.
If you just need a small, low power computer, without I/O pins then the mini/micro computer ranges are worth exploring.
If I/O is needed a micro-controller connected to a USB port could still fit the bill, especially as some things (eg ADC) are not great on a Pi.
I replaced two Pi-based servers with two alternatives and so far have not looked back.