For those times when you need something a bit a bit different to the usual Arduino fare, whether it’s something smaller or something more powerful but you still want to retain the familiar Arduino IDE there are quite a few options. As well as the usual microprocessors used with the official Arduinos you can easily add other “cores” to the Arduino IDE to allow use of many of the ATtiny microcontrollers (as used with my TinyTX boards or TinyPCRemote) or other more powerful Atmel processors like the ATmega1284P.
Over the last few months I’ve also acquired a couple of development boards that use much more powerful ARM Cortex-M4 based processors and at the other end of the scale, the tiny Digispark that uses an ATtiny85 with a nifty bootloader that allows it be programmed directly over V-USB.
One thing to bear in mind with these different architectures is that while the basic things will usually work without change, more complicated things such as libraries that use registers or directly address I/O pins will require (sometimes major) changes in order to function.
I picked three Digisparks up via Kickstarter, it’s a very small (19 x 17.5mm without the USB connector) ATtiny85 based board with built in V-USB and running Bluebie’s micronucleus-t85 bootloader so it can be plugged straight into a USB socket and programmed without the need for a ISP or FTDI programmer. It uses a core based the on arduino-tiny core and has its own customised version of the Arduino IDE.
They are still fulfilling orders from the Kickstarter so it isn’t available to order for immediate delivery but it can be pre-ordered from Digistump.com
6k Flash Memory usable after bootloader
6 I/O Pins
ADC on 4 pins
Hardware PWM on 3 pins
I2C and SPI via USI
Power via USB or External Source – 5v or 7-35v
On-board 500ma 5V Regulator
Built-in USB and serial debugging
Power LED and Test/Status LED
The Digispark also has a range of mini plug in shields available, I got a couple of RFM12B board as well as a prototype board and a breakout board with mine. These would be good for prototyping V-USB based devices and would be an easy way of making something like my TinyPCRemote IR remote receiver.
Another one I got from a Kickstarter is the Teensy 3.0, an ARM Cortex-M4 based board in a similar form factor to the Arduino Nano. As the name suggests Teensy 3.0 is the third in the line of Teensy boards and as such there is a good community built up around them. Along with its ARM CPU the Teensy 3.0 has plenty of flash and loads of I/O so it’s a very powerful board for its size of 17 x 35mm. I’m probably going to team this with a WIZ820io ethernet module and RFM12B to make a gateway/central controller node.
You can now buy it from the PJRC site.
Teensy 3.0 Features:
32 bit ARM Cortex-M4 running at 48 MHz, overclockable to 96 MHz
128K Flash Memory, 16K RAM, 2K EEPROM
14 High Resolution Analog Inputs (13 bits usable, 16 bit hardware)
34 Digital I/O Pins (10 shared with analog)
10 PWM outputs
8 Timers for intervals/delays, separate from PWM
USB with dedicated DMA memory transfers
SPI, I2C, I2S, IR modulator
I2S (for high quality audio interface)
Real Time Clock
4 general purpose DMA channels (separate from USB)
Touch Sensor Inputs
Stellaris LM4F120 Launchpad
This one is a bit different as unlike the other two it was never intended to be used with the Arduino IDE. I picked a couple of these up back in August when they were on offer at launch for an amazing $4.99 including shipping, the Stellaris LM4F120 Launchpad is another ARM Cortex-M4 based board, this time running at 80MHz. It packs a huge array of inputs and outputs, bags of flash and SRAM and on board USB On-The-Go and on board debug/programming interface. It is actually intended to be used with the StellarisWare toolchain but I recently discovered that the Energia Arduino-like IDE (a fork of Arduino) developed for the MSP430 Launchpad now supports the Stellaris. There is a pinout map for use with Energia here.
Stellaris Launchpad Features:
Stellaris LM4F120H5QR (32-bit ARM Cortex-M4F CPU running at 80 MHz)
256 Kbytes flash
32KB of SRAM
12 ADC ports
Up to 43 GPIO ports
4 SPI interfaces
4 I2C interfaces
Up to 27 timers, some configurable up to 64-bits.
USB Micro-B connector for device
USB Micro-B connector for built in onboard debug interface
RGB user LED
Two user switches
I just need to do something useful with them all now.