Computing stuff tied to the physical world

ARMinARM can set you free!

Software development for ARM µCs can be done in many ways. There is the Arduino IDE, and the Arduino-STM32 project specifically for STM32 microcontrollers, but there are more ways to skin this cat. One part of the work needed to get there, is to get the proper toolchain installed. Another piece of the puzzle is how to hook up the chip for development.

The ARMinARM board by OnAndOffables deals with both. It’s paired with a Raspberry Pi:

Aia side

The big deal? No cables (and no software installation hassles, as you will see).

By connecting via the 2×20-pin expansion header of a Pi (newer models only: A+/B+/2), you get a way to talk to it over serial, reset it, and force it into boot loader mode. But in addition, there are jumpers to also connect over I2C and SPI, with the STM32 µC as slave.

The processor is an STM32F103RE, i.e. 512 KB flash and 64 KB RAM in a 64-pin package, which makes for a comfortable environment for quite a few types of software, as you’ll see.

And to take the idea of “Untethered Computing” a bit further, here’s a completely self-contained setup, with a small battery pack, the low-end Raspberry Pi A+ (on a sluggish Class 4 µSD card with 4 GB), and a medium-sized breadboard for experimentation:

DSC 5273

The little breadboard at the top is soldered to a USB plug, and has an MCP1702-based 3.3V power supply for use on the breadboard (it’s safer to keep it separate from the Pi itself).

On the left is a miniature WiFi dongle in the only USB port available on the A+ model. Power consumption is 200..250 mA for the whole setup (half of that for the WiFi dongle).

There is also another slightly older product out there, the Embedded Pi by CooCox:

Embedded Pi

This attaches to the Raspberry Pi via a 26-wire ribbon cable. The STM32F103RB µC on there is a bit smaller: 128 KB flash and 20 KB RAM. The EPi is described as “Triple Play”, i.e. it can be used stand-alone, as I/O pass-through, or as co-processor for the Pi. There are 5V level converters (whereas the ARMinARM is 3.3V, and partially 5V-tolerant) for the Arduino “shield” connectors on the board, plus extra headers for the rest of the µC’s I/O.

But back to the ARMinARM now – here as a truly “wire-less” and clutter-free playground:

PB239200

(the Apple mug with that old coloured logo is optional…)

Note that the Raspberry Pi acts as much more than a WiFi-to-STM32 gateway here – it also includes all the software and toolchains to actually develop and debug code for STM32’s.

Coming up next: the software side of this little self-contained universe…