We are spoiled for choice when it comes to single board computers, whether they are microcontroller-based or a more capable SoC capable of running an operating system such as GNU/Linux. They can come from well-established brands such as Arduino, Adafruit or Raspberry Pi, or from a Wild West of cheaper Far Eastern modules carrying a plethora of different architectures.
Everyone has their own favorite among them, and with that comes an ecosystem of operating systems and software development environments. There is another aspect of this advice that has evolved; some of them have become de facto interface connector standards for hardware devices. Do these standards make sense? Let’s talk about that.
Where do de facto standards come from?
In most cases, an interface standard is the result of a specific effort to create it. Consider the USB-C port for example, instead of just happening because a manufacturer decided to put a reversible high-speed data port with power-in capabilities on a machine, it was the result of many years of experience and work from an industrial consortium.
Sometimes, however, an interface standard happens by chance. The car accessory socket is, by all accounts, a pretty ugly power connector system, created decades ago as a receptacle for an electric cigarette lighter. Because there was no other convenient way to access 12V power in a car, it became the power source for the few in-car electronic accessories available, and has since evolved into the outlet of standard automotive current. Curiously, many automotive accessory sockets are now unsuitable for their original purpose, no longer designed to withstand the heat of a cigarette lighter element.
And so we come to connectors on single board computers. Almost all of them have an expansion slot, which serves to bring out as many available interfaces in one place as possible. Some are well designed and some not so much, but none of them are designed the same as the USB socket to be independent of the specific hardware and with the convenience of the desired application in mind. Instead they are left to the board designer who may not expect the device to become a widely adopted standard and therefore cannot think in advance about how their creation might be used. .
None of these are like the others
If we were asked to name cards whose interfaces have become unintended de facto standards, the ones we would end up with would not surprise most of you. The original Arduino, the Raspberry PI, the Adafruit Feather, and maybe the Raspberry Pi Pico, maybe the BeagleBone, and the one we’re seeing more and more of, the BBC micro:bit. It’s worth looking at them individually for a minute to figure out what we like about them and what we don’t.
The grandfather of all has to be the Arduino. It’s unclear if this was the first board to give us the idea of shields, but it’s definitely the one that popularized them. Before the Arduino it was more common for a board to come with a prototyping area next to a header with the I/O lines that a daughterboard could have been attached to, the Arduino gave root to the idea of a family of expansion cards in a defined ecosystem.
We like it Arduino extension pinout for its organization of the different interface types next to each other and in numerical order and we like its use of inexpensive 0.1″ pin headers, but the size of the thing and the need for two sets headers so far apart seem distinctly bulky and old-fashioned. don’t get us started the odd row offset. Still, it will probably be a long time before we’re free from the classic Arduino shield as there are still plenty of them available, but would that be a reasonable choice for a new design here in 2022? We do not think so.
The 40-pin Raspberry Pi header and HAT form factor seem to have become one de facto standard for more powerful cards, usually those running Linux. It’s a nod to the success of Cambridge’s little board, but for all the good things the Pi has given us, we’d say the expansion slot isn’t one of them. It’s a casualty of the genesis of the Pi in 2012 from a then-tiny organization producing what they thought was a relatively small run of a board that at the time was barely out of prototype status.
Early Raspberry Pi boards had component and routing choices based on opportunity and the resources they had, so getting the rows to a header was most important, and not arranging them properly for a mass-market card that would dominate the industry a decade later. Thus the original 26-pin interface and the subsequent 40-pin extension have the different interfaces scattered randomly around them, and we’re sure if they did the same job today, they’d clean it up a bit. We like the use of a single 0.1″ header, but while we understand why this is so, we can’t say the same about the pin layout.
Dual inline boards such as the Feather, Pi Pico and various small Arduinos have a very hands-on approach to expansion, following the same path as the larger DIP ICs of the past. So an Arduino Nano will often be found mounted on a piece of stripboard or PCB, or plugged into a breadboard. The Feather and Pico take it a step further, with additional sorting cards layered on top of them. We love them for their well-thought-out pinoutsbut we think a single connector gives more flexibility.
Finally, in our list of boards, there is one that takes a completely different approach. The BBC micro:bit is an educational microcontroller board originally designed for UK schools, and its expansion connector is a PCB edge connector with five large alligator clip pads and 4mm sockets to make life easier children, interspersed with finer pitch connections carrying other interfaces. It’s well-designed and an attractive enough choice to appear on a number of competing boards, but it relies on a more expensive specialized edge connector receptacle. We like edge connectors, but not ones that require an expensive connector.
Everything could be so much better
So, having researched the field, we have a range of mostly proprietary standards that have been adopted by others. None of them are the perfect solution to SBC interfacing, so our next question is: what would be the qualities we were looking for in something better? This is a conversation that we think the industry should approach, but how do we think they should approach it?
Perhaps the best place to start is the connector itself. Here the Raspberry Pi does it right with standard two row headers, they are cheap and readily available without forcing a board form factor like Arduino or DIP format boards do or requiring a special connector like so does the micro:bit ecosystem. Then the next area to consider is the pinout. There’s no reason the digital GPIO, analog lines, and interfaces like SPI or I2C can’t be laid out on sequentially numbered pins for easy interfacing.
We believe that the interfaces of the microcontroller and the SoC are all similar enough that this can be achieved. We also don’t think there’s any particular business advantage for manufacturers to have their own proprietary pinout, because in this context exclusivity is of little value. A common pinout across multiple boards shouldn’t take a multi-million dollar industry consortium like it does with USB, but a simple set of I/O lines must be wired to a set of inputs. heads.
The reason it hasn’t happened yet is probably that there wasn’t an immediate commercial incentive for them to do it, but we think there’s an angle there that could prove convincing. Hardware manufacturers should imagine a world in which, apart from all SBCs having the same interface, all expansion cards, shields, HATs or wings have it too. Suddenly, the potential market for a card becomes much more lucrative, and since all the major SBC manufacturers also sell cards, hopefully they too can see the potential.
We would be interested to hear our readers about it, what do you think?