In the world of physical computing, there are essentially three ways to hook up stuff:
- to your laptop or desktop computer, running Windows, Mac OSX, or Linux
- to a little USB-connected embbeded µC, such as the ever-popular Arduino
- to a self-contained board such as the Raspberry Pi, running embedded Linux
The first option is perhaps the most obvious: find some sort of peripherals, such as the USB-connected Phidgets or the Gadgeteer from Microsoft – also connected via USB.
What you get is some hardware with a software driver plus some supporting application(s) running on your laptop to control every aspect of the attached devices. All the intelligent behaviour you want to implement runs on your laptop or desktop computer. Turn it off, and the whole setup stops working. Not so great for projects which need to run unattended.
Then came the second option, and it took the hobbyist world by storm: it’s still a device hooked up to your computer via USB, but this time it has a µC inside to which you upload software (a “sketch” in artist-conscious Arduino-speak). The difference? It’ll do stuff even when disconnected, as long as its powered up of course – via batteries or a USB adapter.
Great. That’s all it takes to build smart / clever / entertaining projects with, and best of all, this second approach ended up being a lot cheaper than the first one. And all open source.
But those little microcontrollers are pretty limited in what they can do. You still need a “real” computer to edit the code on, to compile things to machine code, and to send the result to it. It’s hard to get a good LAN or WLAN setup working, let alone make it do the things we’re so used to by now from all those web services and web sites on internet.
Small Linux Boards
Fast forward to this decade, and we’re flooded with little computer boards costing no more than €30..60, and able to run the Linux operating system. The difference with non-O/S boards with “bare” µC’s, is that now we get access to dozens of web server options, dozens (hundreds?) of programming languages, graphical user interfaces, databases, text editors, and more. Tens of thousands of free packges in fact, installable with a quick download.
Just about anything a laptop or desktop can do, can now be done on these boards. It won’t be quite as fast, but make no mistake – some of the newer board offerings are getting close in performance to a laptop, with their quad 32-bit ARM “cores” and 1..2 GB of RAM.
The Raspberry Pi started this low-cost high-volume revolution:
A 700 MHz 32-bit ARM processor, 256..512 MB RAM, and 26 pins to hook things up.
Roughly around that time came the BeagleBone Black:
The BBB has a slighty higher-end ARM processor and 2..4 GB of on-board eMMC flash memory, enough to run a full installation of Linux. With a whopping 96 pins and some advanced hardware features.
Another popular board is the Odroid U3, with a quad-core ARM chip, 2 GB of RAM, and the option to install 8..64 GB of eMMC flash. Only a small number of I/O pins, though:
All these boards have HDMI video out, Ethernet, some USB ports, and a slot to insert a (µ)SD card. All of them can be turned into fully self-contained standalone little computers, drawing only a few watts of power, even when running flat out.
Each of these would make a nice always-on NAS-type home server (just add some USB drives), or a perfect home-monitoring and -automation system (just add one or more wireless dongles, and perhaps also some wired interfaces).
In terms of raw power, these boards will have roughly 1% .. 10% of the performance of a modern laptop or desktop machine. Can’t expect top performance from only a few watts!
But above all: each of these have lead to a standard setup, which you can easily write software for, and let others reproduce as setup. Or conversely: surf the web, and mix and match what you find to set up your own system without having to figure it out yourself.
With this hardware out of the way, the question becomes: what software do we need?
[Back to article index]