Friday, January 28, 2011

Hardware - 32-bit Microprocessor boards

Sometimes more processing power is needed than you can get from an 8-bit Processor like the ATmega chips, e.g for audio processing, flight-controllers, networked scenarios. In those cases, stepping up to a 32-bit processor can be the solution. One processor architecture that is becoming popular with hobbyists are the ARM Cortex-M3 processors, the STM32F103 series from ST being one example of these.

Here are a few boards with STM32 processors:
This is the "Maple" boards from LeafLabs. It features an STM32F103RBT6 processor with 128KB of Flash and 20 KB of RAM. LeabLabs also provides and IDE and bootloader for this board as well as an arduino-style programming language which make this board a great choice to get started with 32-bit processor programming. It's also physically compatible with the Arduino, so Arduino shields can be plugged into the board.

This is another board featuring the STM32F103RBT6 processor, this one is by ITeadStudio and is called IFLAT-32. A JTAG programmer is needed to program this board, so it requires a bit more hardware to get started. On the plus side, it contains different peripherals like an RTC crystal, battery holder, MicroSD slot, and headers for Arduino shields and the popular XBee modules.

The processor manufacturer STMicroelectronics together with french development tool maker Raisonance also releases some development kits for getting started with STM32 programming:

This is their latest product, the "EvoPrimer" (aka. OPEN4) with a target board featuring the STM32F103VET6 processor (512KB Flash, 64KB RAM). The advantage is that this is a self-contained product with some of the most useful peripherals already built-in: LCD touch-screen (320x240), 3-axis accelerometer, joystick, audio DAC/codes, rechargeable battery, IR sender/receiver, some LEDs. It also has a programmer built in so it can be programmed directly through the Mini-USB port. Another feature is an Extension port which allows access to additional IO lines and modules of the processor (SPI, I2C, USART). There is a pretty active developer community at stm32circle.com, and the guys from Raisonance are very good answering questions in the forum.

Thursday, January 27, 2011

Hardware - 8-bit Microprocessor boards

I started out with the very popular Arduino platform, which is based on Atmel's family of 8-bit Microprocessors. It's pretty easy to get started, just get one of the boards, download the IDE, dust off your C++ skills and go.

Besides the original "Arduino" branded boards, there are quite a lot of Arduino-compatible boards out there, some share the same pin-out and footprint, while others look completely different but can still be programmed with the Arduino IDE.

This is an Arduino-compatible board (Freeduino).


Here is another one that I soldered from a kit, it also uses the ATMega328 chip (32KB Flash, 2KB RAM).


If you need more I/O pins or more Flash/RAM, there is the Arduino Mega, based on the ATMega1280 chip (128KB Flash, 8KB RAM).


This is the so-called Sanguino, using the ATMega644P chip (64KB Flash). No longer pin-compatible with the original Arduino, but can be programmed using the Arduino IDE.


Here we have a "Bare-Bones Board" sold by ModernDevice.com which can also be programmed using the Arduino IDE (a Serial adapter is needed though).


Finishing up the round-up is an Arduino-compatible board for 40-pin ATMega chips (e.g. ATMega644, ATMega1284P)