Computing stuff tied to the physical world

Another embedded ecosystem

In Hardware on Sep 14, 2012 at 00:01

(This post follows up on Reinhard’s clearvoyant comment yesterday..)

The ARM microcontrollers described in the past few days are a big step up from a “simple” ATmega328, but that’s only if you consider hundreds of kilobytes of flash storage and tens of kilobytes of RAM as being “a lot”.

Compared to notebooks and workstations, it’s still virtually nothing, of course.

But there’s another trend going on, with bang-for-the-buck going off the charts nowadays: small embedded Linux systems with integrated wired and/or wireless Ethernet. These are often based on Broadcom and Atheros chipsets – the same as found in just about every network router and gateway nowadays.

One particularly nice and low-cost example of this is the Carambola by 8devices:

Main image 3 40

It has 8 MB flash + 32 MB RAM (megabytes!), on-board WiFi, and runs OpenWrt Linux.

There are I2C and SPI interfaces, which can also be used as general-purpose I/O pins, so this thing will interface to a range of things right out of the box.

One gotcha is that the 2×20 pins are on a 2mm grid, not 0.1″. Small size has its trade-offs!

The board will draw up to 1.5 W @ 3.3V (i.e. roughly 500 mA), but that can easily be reduced to about 0.4 W for a blank board with no wired Ethernet attached.

Here are some more specs, obtained from within Linux on the Carambola itself:

Screen Shot 2012 09 13 at 21 02 59

As you can see, this unit (like many routers) is based on a MIPS architecture. And it’s actually quite a bit faster that the Bifferboard I described a while back.

Like most low-end ARM chips, these systems often lack hardware floating point (its all implemented in software, just like an Arduino does for the ATmega’s). Don’t expect any number-crunching performance from these little boards, but again it’s good to point out that boards like these are priced about the same as an Arduino Uno.

One of the benefits of Linux is that it’s a full-fledged operating system, with numerous tools and utilities (though you often still need to cross-compile) and with solid full-featured networking built in. The amount of open source software available for Linux (on a wide range of hardware) is absolutely staggering.

Among the drawbacks of Linux in the context of Physical Computing, is that it’s not strictly real time, so programming for it follows a different approach (busy loops for timing are not done, for example). Don’t expect to accurately pulse an I/O pin at a few hundred Hz or more, for example. Linux was also definitely not made for ultra-low power use, such as in remote wireless nodes which you’d like to keep up and running for months or years on a single battery – there’s simply too much going on in a complete operating system.

The other thing about Linux is that it can be somewhat intimidating if you’ve never used it before. Part of this comes from its strong heritage from the “Unix world”. But given the current trends, I strongly recommend trying it out and getting familiar with it – Linux is very mature: it has been around for a while and will remain so for a long time to come. With boards such as the Carambola illustrating just how cheap it can be to have a go at it.

Interesting times. Now if only new software developments would keep up with all this!

  1. Don’t forget the iMX233-OLinuXino by olimex then, they start at 23,95€, have USB host, MicroSD-card slot and a TV-out, the bigger models have (USB-)ethernet and a USB hub. All of them have 64MB RAM, boot from MiroSD and run ArchLinuxArm, Yocto, Debian and so on. A nice little community is forming, people are working to get the drivers for the chip into the mainline 3.6 kernel, it’s open hardware, very nice. The olimex guy just managed to achieve >5MHz when toggling a GPIO, btw: http://olimex.wordpress.com/2012/09/11/imx233-olinuxino-gpios-faster-and-faster/

  2. Don’t expect to be able to pulse an I/O pin at a few hundred Hz or more, for example.

    Actually with Carambola you can pulse pin ~3 Mhz. Except it is not realtime :)

  3. I’ve been really happy with my Carambola so far — it does 1-wire nicely, for instance. I wish it had the mind share of the Raspberry Pi.

  4. You may find a lot of real free and open software+hardware stuff to meet any physical compution challenge! Simply select the fitting hardware and support the developer teams (community) with new software developments, if you can not find a library for your special application.

    Here is some interesting ‘arduino’like and PIC24 stuff with RTOS support.

    http://www.brc-electronics.nl

    http://www.openpicus.com/

  5. Don’t expect to be able to pulse an I/O pin at a few hundred Hz or more, for example.

    Maybe not from userspace, but with a kernel module it should be possible to do high speed bit banging in Linux as there are quite some drivers that do it already (e.g. for I²C or 1wire with GPIO pins).

  6. Yeah, yeah – I know, the processor can easily pulse a pin much quicker. I’ve adjusted the wording to “Don’t expect to accurately pulse an I/O pin …”. Try software PWM for dimming LEDs, or handling the RFM12B interrupts, or driving steppers, for example. There are many cases where Linux will work fine, and there’s RTAI, but for demanding real-time use I can think of simpler ways to get there than writing kernel drivers.

  7. Hello JC, did you try the WR703N from TPLink , it’s a fairy similar, very cost-effective and very small linux box. It can easily run openWRT too and consume few energy. the price is generally under 20€.

  8. JC, any thoughts on the Arduino Due? It is long overdue, but beta boards are at least out now. And there is a one hour presentation by the guys scheduled during Maker Faire around the end of the month.

    http://arduino.cc/forum/index.php/topic,122110.15.html

  9. Not to forget acmesystems’ (http://www.acmesystems.it/ ) Fox G20 and Aria modules…

Comments are closed.