A Single Board Computer is a computer complete with logic, memory and I / O devices , designed to contain all components on a printed circuit board. Unlike simple microcontrollers like Arduino or Raspberry Pi Pico , SBCs have the resources to run an entire operating system (OS), such as Linux or Windows 10 IoT Core.
The former will have to be programmed by an external computer and will execute a relatively limited set of instructions (in fact the Arduino development environment, or Arduino IDE is simply a set of C / C ++ functions that are compiled and flashed on a board). On the other hand, SBCs can be used with any OS and programming language that best suits the project we have in mind.
The biggest player in the world of SBCs is undoubtedly the Raspberry Pi ( RPi ) foundation , with the homonymous line of products. There are also other famous companies in the semiconductor sector, such as Asus, Nvidia and Intel, but the market is actually very large and SBCs exist galore. To get an idea, just take a look at the compatibility lists of the OSes designed for them.
The characteristics of Single Board Computers
Compared to a traditional personal computer , Single Board Computers have very small dimensions , approximately those of a credit card, with the thickness given by the input / output ports such as USB or LAN. They do not have a case to protect the circuitry, which can be left exposed or, depending on the application, protected by a case purchased separately or created by yourself, perhaps 3D printed. Consumption is very low, usually under 10W, in fact the SBCs aim a lot at efficiency, using every Watt wisely and limiting any unnecessary component.
The performance in terms of calculation varies a lot according to the model and consequently the price varies. The simplest ones aim to have very low prices (6 € in the case of the first RPi Zero) and still be well capable of running an operating system and less expensive applications. The most powerful are comparable to low-end smartphones , such as the RPi 4 with rare exceptions that go up to the levels of traditional PCs which, sharing most of the components with them, cost several hundred euros.
Some models differ in that the main focus is not on general-purpose computing power, but on the efficient execution of a specific workload. This is the case of the Google Coral Development Board, an SBC aimed at applications in the field of Artificial Intelligence. Few SBCs have built-in storage memory , usually eMMCs; in most cases it will need to be added through the available expansion slots (MicroSD, USB, SATA, etc).
Ports and GPIOs
In addition to the common power and I / O ports such as USB, HDMI, LAN, there may be other proprietary or universal expansion ports, dedicated to specific components such as cameras and displays. Furthermore, every self-respecting Single Board Computer has GPIO connectors , or General Purpose Input Outputs, which can be programmed to interact with the outside world, drive motors, relays, or acquire information from sensors. The use that can be made of these connectors is the most varied and depends a lot on our specific application.
We see the same for the OS ( Operating System ) available, there are dozens or hundreds of them designed more or less for a specific application. When choosing the OS, particular attention must be paid to compatibility with the SBC. In particular, the processor architecture (32 or 64-bit ARM, or 32 or 64-bit x86) and the minimum requirements in terms of storage space and RAM must be respected. It is always preferable to choose an OS that is explicitly compatible with the SBC, or vice versa, to choose one that is explicitly compatible with the OS you want to use.
Most of the OS are based on Debian , a very light and flexible version of Linux , suitable for both beginners and those who want to learn the basics of programming, and for servers that have to manage large loads and thousands of connections at the same time.
Usually these OSs do not have a basic UI installed , this to reduce the weight and resources needed to run them, but also because a common use case for SBCs is headless use, i.e. not connected to a display. For example, think about using it as a home server or NAS (Network Attached Storage). If you want to use a desktop environment, it must be installed separately or you can opt for an OS that has it installed by default.
Although they are mostly Debian based, they are very different from each other, here are some examples:
- Raspberry Pi OS : Formerly called Raspbian it is the most popular and officially supported OS by the Raspberry Pi Foundation. Great as a general home base if you have one of their SBCs, less used by more advanced users if they have a specific use case in mind for their SBC;
- DietPi: an OS stripped down to the bone. Its strong point is the list of programs that can be installed in a guided way: with just the dietpi-software command you can install programs that otherwise would require many more commands, or even venture into modifying the configuration files;
- OSMC (Open Source Media Center) and OpenELEC are created to host Kodi OS, a program (and not an OS) optimized for playing local and streaming media, with a particular interface designed to be controlled with a remote control on large screens;
- RetroPie is an OS dedicated to retrogaming , that is the emulation of game consoles such as Nintendo 64, Game Boy, Playstation and many others that have become classics of the past.
Notable exceptions to Debian-based SBC OSes are:
- RISC OS , an OS designed for ARM processors by the creators of ARM itself;
- Windows IoT Core , an OS created by Microsoft for Raspberry Pi designed as a development platform for programmers focused on creating IoT prototypes;
- Ubuntu Linux, famous in the PC field, its Server version is also available for ARM platforms, therefore compatible with most SBCs.
The list is still long and gives space to OS dedicated to security, home automation, network and cloud storage, and so on and so forth. If you are thinking of a specific application, there is probably an OS for SBC built specifically for it.
Single Board Computer: recipients and creative applications
SBCs are intended for experts and beginners who want to challenge themselves or learn more about programming. Having a dedicated machine is in itself an advantage over using a PC. If something goes wrong we can flash the OS and return to the starting point without too many worries. But having a small and low-power computer also leads to interesting creative applications.
From home server to time-lapse camera, from mini gaming-PC (with a capable SBC like the LattePanda) to irrigation controller for our garden. SBCs are very versatile tools and the possible applications are truly infinite and limited only by our imagination!
Article by Francesco Porcelli