Processor: STMicroelectronics STM32F103 (72MHz Cortex-M3 MCU)
Memory: 20KB RAM, 128KB Flash ROM
Dimensions: 53.4mm x 110mm x 19.2mm
GPIO: 2x SPI, 2x I2C, 3x UART, CAN, 2x 12-bit 16-channel ADC, 4x PWM, Arduino-compatible headers
Power: Mini-USB, 7-12V DC, or Raspberry Pi GPIO-provided
Extras: 1x 26-way ribbon cable, 1x 10-way ribbon cable, 4x plastic raisers
The brainchild of CooCox, a specialist in development tools for ARM Cortex-class microcontroller units (MCUs,) the Embedded Pi is described as the first triple-play accessory for the Raspberry Pi. Like rival devices, it extends the capabilities of the Pi’s general-purpose input-output (GPIO) port, but it also runs independently of the Pi thanks to an on-board STMicroelectronics Cortex-M3 STM32 microcontroller.
This on-board microcontroller can be loaded with a program, which will run in real-time when connected to power – even if the board is detached from the Pi itself, in what CooCox describes as Standalone Mode.
The second mode available to the Embedded Pi is ST-Adapter Mode, in which the STM32 microcontroller drives various ports on the board but cedes control to the Pi’s own GPIO port – providing a handy command-and-control channel without tying up a USB port.
Finally, the Ras-Pi Mode acts as a dumb expansion board, disabling the on-board STM32 processor in favour of merely extending the Pi’s own GPIO capabilities.
In all these modes, the Embedded Pi can communicate with number of add-on boards originally developed for the Arduino microcontroller platform. Dubbed ‘shields,’ these boards – which offer everything from motor control to GPRS mobile data connections – can be connected directly to the Embedded Pi without modification.
That’s a feature list that covers almost every eventuality, but one that isn’t without its problems. By far the biggest is in software support: despite designing the Embedded Pi specifically for use with the Raspberry Pi, the official manual – provided as a downloadble PDF – requires the user to run CooCox’s own CoIDE software on a Microsoft Windows machine in order to do anything with the STM32 processor. If you’re a Linux user, or want to do development directly on the Raspberry Pi itself, you’ll be stuck with using the Embedded Pi in Ras-Pi Mode – missing out on the chance to use the powerful STM32 processor for real-time tasks.
It’s a major oversight on the company’s part. While it’s possible to program the STM32 from Linux – several toolchains exist, thanks to STMicroelectronics releasing a range of low-cost STM32-based development boards some years ago – this will require additional hardware and a degree of technical knowledge that will put most beginners off before they’ve even started their project.
Even assuming that the user is willing – or able – to use a Windows box to write, debug and upload their program to the STM32, the list of supported shields is short. Specific drivers need to be written for the Embedded Pi to communicate with Arduino shields, and so far only nine shields – including the official Motor Shield and Wi-Fi Shield – are supported, from a list of many hundreds from numerous manufacturers.
This isn’t to say the Embedded Pi isn’t without its charms: the compact board takes up a lot less room than a Gertboard, and is remarkably capable even when used in its simplest Ras-Pi Mode. Those willing to take the time to learn how to develop and flash STM32 applications from within Linux will unlock its true powers – and, should a community build up around the device, packages to do exactly that will likely become readily available.
For now, however, the Embedded Pi is difficult to recommend unless you’re a Windows user. For Linux fans who are looking for a way to use Arduino shields with a Raspberry Pi, a better option may be to simply use an Arduino connected either over USB or to the Pi’s UART for serial control – and in doing so save around £5.50 to spend on parts for their project.
Creating a Pi accessory that requires a Windows machine to unlock its full potential isn’t a great business idea – which is a shame, as the Embedded Pi shows signs of brilliance. Its support for selected Arduino shields is handy, but most users will likely ignore the on-board STM32 processor.