In my spare time, I’ve been experimenting with a new generation of microcontrollers. Microcontrollers are at the core of modern electronics, and are basically full computers the size of a postage stamp. Following Moore’s law, these things have been getting faster and faster. In the last five years, they’ve become almost full computers and the cost has fallen through the floor. It’s now possible to get a chip that is the functional equivalent to a early 90′s computer for less than $1.
The downside of many of these chips is that they are typically complex to program, requiring rare combinations of deep hardware and software skills. Traditionally, the way around this has been to buy a development environment (aka, software for specific hardware) which costs thousands of dollars and usually has associated royalty costs. Not much of a solution for the hobbiest or quick, cheap solutions. There has been some light at the end of the tunnel in the form of a new generation of open source embedded operating systems such as FreeRTOS, EtherNut and eCos. While these remove a lot of the software costs, they still require a lot of skill to make functional, as developing for these systems is largely a C-language, bare metal affair.
So, the hardware is cheap, the software is open source, but the learning curve is still huge as you need to be an expert in two disciplines. This puts most microcontroller development out of reach of most of the developer community. Once again, Moore’s law is coming to the rescue. I recently discovered that microcontrollers capable of running mainstream operating systems such as Linux have dropped to a price point just around a traditional high-end microcontroller. This is particularly true for ARM-based microcontrollers. Offerings from ST, NXP and ATMEL are currently priced at between $3 to $8 (in quantity) depending on features.
Why should you care? Well, microcontrollers run everything. From your microwave to your car to the elevator, pretty much any place automation is needed, microcontrollers apply and run logic in systems. Linux-based microcontrollers open up this embedded world to a whole new field of developers, one’s who’s skills are largely software-based rather than hardware. Part of the reason that Google is able to build and deliver a software-based phone platform is that a lot of phones now use ARM9 microcontrollers on which Linux can easily be run. Another interesting example is Wiring, an open platform developed by Hernando Barragán at the Universidad de Los Andes in Colombia. Wiring is designed to be an easy to use bridge between software and the real world and is targeted at artists, although you can use it for anything. These are just the tip of the iceberg.
Who knows what people will do cheap, embedded Linux, but whatever it is, it’ll be very interesting.