Quick, what do “cloud compute engines” and goofy Raspberry Pi Internet of Things hacks have in common? Aside from all being parody-worthy buzzword-fests, they all involve administering remote headless (Linux) installations. It’s for exactly that reason that a new Ubuntu distribution flavor, Ubuntu (Snappy) Core, targets both the multi-bazillion-dollar Amazon Elastic Compute Cloud and the $55 BeagleBone Black.
If that combination seems unlikely to you, you’re not alone. But read on as we hope to make a little more sense of it all.
Hacker Hardware History
When rumors of the Raspberry Pi first hit the scene in 2011, it was marketed as the solution to the world’s computer literacy woes — at $25 per computer every child in the world could have one at their fingertips. (Nevermind the price of a keyboard, monitor, HDMI cable, mouse, power supply…) Nobody was thinking that we were in for an army of headless Linux servers, but that’s exactly what happened.
There were other small computers around; at the time, the BeagleBoard was the hotness on the single-board computer (SBC) front, but it was expensive enough that only the committed and nerdy were using them. We had one hooked up to a hard drive and an external DAC as the center of our stereo system at the time. The system was a little bit clumsy in that we occasionally had to haul out a screen and keyboard to perform maintenance on the thing, but overall it worked just fine as a multimedia hub.
Then the Raspberry Pi came out at around a fourth of the price of the BeagleBoard, and something funny happened. Instead of being the solution to the world’s computer needs, the Raspberry Pi ended up working its way into the same project-space that the Arduino had inhabited. Maybe it was the price point and form factor.
For example, one can’t deny that a Twittering Toilet is a necessity of the modern era. (Don’t blame us! It was the Zeitgeist.) On the other hand, getting your Arduino connected directly to the Internet was fairly difficult at the time — and so it’s no surprise that the Arduino senses flushes and communicates with a real computer that takes care of the Twittering.
The Raspberry Pi changed that. They’re cheap enough that you can dedicate one to the toilet without only minor pangs of guilt. So not long afterward, we have Raspberry Pis in toilets and chicken coops rather than in grade-school curricula.
These type of projects don’t use the device as a “computer” at all. Indeed, of the bazillions of Raspberry Pi projects we see here at Hackaday, how many of them have attached screens, keyboards, and mice? Very few, aside from the MAME builds and emulated Amigas stuffed into their own floppy drives.
Or have a look at the Beagle family. The BeagleBoard (2010) was a full-fledged single-board computer (SBC); you could plug in a monitor and keyboard. Then came the bare-bones (and slightly less expensive) version: the BeagleBone (2012). Signalling that it was meant for embedded applications rather than being a standalone computer, it had no video output and was a bit cheaper. It was a success.
Even less expensive, the BeagleBone Black (2013) again picked up an HDMI port, because, heck, why not? And as if to answer that question, the newest BeagleBone Green replaces the video out with some I2C peripheral connectors, reaffirming the device’s intent as an embedded computer rather than a mini-desktop.
So which do you want for your projects? A recent survey at Linux Gizmos asking their readership to rate their favorite single-board computers turned up no surprises on the popular-brand fronts: the Raspberry Pi is most popular, followed by the BeagleBone Black, followed by the Odroid offerings.
More interestingly, they also asked folks what applications they’re putting their SBCs toward. The results, in order:
- home automation
- special function servers
- home multimedia
- robotics / vehicles
- data acquisition / control
- HMI / industrial
This matches our gut feeling about what the average Hackaday hacker is interested in as well, so we’ll buy it.
Looking over the application list, how many of the project applications require a keyboard, monitor, and mouse? How many are traditional “computer” applications? Let’s say some fraction of “education” and probably all of “kiosks”. The rest of the applications are either standalone, run over the network, or are probably best served by a small LCD at most. In short, they’re embedded projects that benefit from the connectivity and ease of development that a (tiny) real computer brings to the table.
The point of this recent-history lesson is that if you make a computer cheap enough, it becomes an embedded device because nobody can turn down cheap Internet or USB connectivity, or a pleasant development environment, or even just interpreted programming languages with broad-ranging library support. If web-scraping is part of the device’s functionality, you’re not going to want to code that up on an 8-bit microcontroller. And so formerly-Arduino applications get amped up with Raspberry Pis, and our comments section overflows with people decrying “overkill”.
But more to the point, we’re seeing embedded Linux systems inside projects where it’s difficult to get at the HDMI port, or where you just don’t want to schlep a monitor. These are headless Linux systems that aren’t sitting in racks in some server room, but instead under the nightstand in your bedroom. And the humble hardware-hacker is looking at the remote administration of a headless networked server, which sounds like an entirely different job description.
Running Headless: The Software Catches Up
So if the Internet of Things is going to be an internet of headless Linux boxes, isn’t it time our software / operating systems caught up? No more of this GUI configuration menu crap — that’s for desktops that have the luxury of monitors. What you need, once you’ve got your Raspberry Pi or BeagleBone sitting deep inside some box somewhere, is quick and easy deployment and network-based remote administration of the tiny headless Linux server that lies within. And until you’ve got its web server or VNC up and running, that means spending some quality time with the console.
Queue the parallel development in the “cloud” world. The need to quickly spin up machines on servers has put a premium on ease of installation and updating of complete systems using simple and powerful command-line tools. In particular, the ability to create a system, save the configuration and installation details, and then replay them back into another instance has become a lot easier in the last five years. See containers and Docker and all that jazz.
Back in the embedded world, the Ubuntu Core documentation goes through an example of setting up a webcam on a BeagleBone Black and then replaying that configuration back, potentially to a completely new installation. If sharing your embedded appliance with the world means conveying all sorts of system and application configuration details, it’s great to have tools to make this easier.
Finally, installing security patches is the hot-topic bugbear of the IoT world right now. Nobody wants network-connected devices sitting around in their home network with buggy security implementations, yet so many IoT devices are flashed with firmware that’s inflexible and/or difficult to update. A major advantage of the convergence of “cloud” with embedded tech is that the devices get the benefit of easier, hands-off security update mechanisms.
The unlikely marriage of software tech from “cloud appliances” with our hacked (non-metaphorical) appliances is just starting, and we think it’s actually going to benefit us hardware types. Granted, it’s partly semantic, but we think that recognizing your Twittering Toilet as a headless Linux server could bring increases in reproducibility and security, as well as convenience.
What do you think? Was the Raspberry-Pi-as-miniature-desktop-computer idea doomed from the very start? Would increased ease of installation and administration push some of you microcontroller die-hards into the microcomputer camp? Are you a distributed Linux sysadmin because you have four BeagleBones in your home automation setup? Or have we been philosophizing too much in our beer?
[Photos of boards courtesy: BeagleBoard Foundation and Lucasbosch]