Here is a short list of some inexpensive Cortex-M boards that I know about:
Freescale FRDM (Freedom) boards
- FRDM-KL25Z – Kinetis L, Cortex-M0+, USB OTG
- FRDM-KL46Z – Kinetis L, Cortex-M0+, USB OTG and LCD
There are many more FRDM boards available now. These were, I think, the first two launched. But pretty much any Kinetis part has a corresponding board.
Also, be sure read about fixing the FRDM firmware. The boards ship with awful, idiotic firmware, but you can replace it with something better.
STMicro STM32 Discovery boards
There are many more Discovery boards available.
ST’s Nucleo boards are also interesting, but I haven’t tried to use any of them.
TI Launchpad boards
Teensy
Paul Stoffregen’s Teensy boards are inexpensive and highly-regarded.
- Teensy LC – Freescale KL26 48 MHz Cortex-M0+
- Teensy 3.2 – Freescale K20D Cortex-M4
- Teensy 3.5 – Freescale K64F 120 MHz Cortex-M4
- Teensy 3.6 – Freescale K66F 180 MHz Cortex-M4
FRDM-KL25Z
The FRDM-KL25Z is Freescale’s first FRDM board. It costs about USD15.00 and sports the following features:
- MKL25Z128VLK4 MCU – Cortex M0+ processor core runnning at 48 MHz
- 128 KiB Flash, 16 KiB SRAM, USB OTG (full speed), LQFP 80
- Capacitive touch slider, MMA8451Q accelerometer, RGB LED
- Header pin layout that is compatible with Arduino shields (but 3.3v only!)
- mbed support
Why I think this board is great
Bang for buck Cheaper and faster than an Arduino. Plus, it’s an ARM, not an AVR. (I’m not a fan of the AVR.)
128 KiB of Flash memory While not megabytes, this is a lot of code space for a small microcontroller. And because it’s not an 8-bitter, there is no need to play funny games with paging to use the memory.
I like Freescale’s hardware I’ve been playing around with their 8-bit parts – the S08 series – and I really like them. They are solid, well-engineered, and pretty bug-free. (Freescale’s firmware is another matter though...)
Cortex-M0+ This series of MCUs from Freescale – the Kinetis L – is apparently the first in the industry to sport a Cortex-M0+, which has a few nifty features:
- Two cycle pipeline – branches and calls are faster, important for heavily-factored code, such as Forth
- Single-cycle I/O – it’s possible to bitbang the pins really fast
- Ridiculously low power
- Simplified instruction set – the Cortex-M0 and M0+ implement the ARM v6-M instruction set, which much simpler than the Cortex-M3/M4 (v7-M) instruction set. For those wanting to dig in and program in assembler, but are new to 32-bit processors (and maybe to the ARM as well) this chip is a good place to start
- USB interface on the target chip – programmed with the right firmware the board becomes a USB device in its own right
What I don’t like about it
- I don’t care about Arduino shields and might have preferred that they pin out more of the chip instead of sticking to an Arduino-compatible layout.
- The stock debug firmware is completetly idiotic and useless and has to be replaced to make the board usable.
FRDM-KL46Z
The FRDM-KL46Z is, I think, the first follow-on board to the FRDM-KL25Z. It costs about USD15.00 and sports the following features:
- MKL46Z128VLL4 MCU – Cortex M0+ processor core runnning at 48 MHz
- 256 KiB Flash, 32 KiB SRAM, USB OTG (full speed), LQFP 100
- Segment LCD controller
- Four digit segment LCD display
- MMA8451Q accelerometer
- MAG3110 magnetometer
- Ambient light sensor
- Capacitive touch slider
- Two LEDs
- Header pin layout that is compatible with Arduino shields (but 3.3v only!)
- mbed support
I don’t have one of these boards (yet) but I’m assuming its strengths and weaknesses will be the same as the FRDM-KL25Z: good bang for buck, some interesting peripherals, but the same awful debug firmware.
STM32F0 Discovery
As an introduction to their Cortex-M0 family, the STM32F0 Discovery can’t be beat. I got a couple free at a trade show, but since they are only USD8.00 you should pick up a couple if you’re interested in the M0.
The chip on the board is an STM32F051R8T6. Briefly, its specs are:
- 48 MHz Cortex-M0 processor, LQFP 64 package
- 64 KiB flash
- 8 KiB RAM
- ST-LINK/V2 debug interface (supported by muforth!)
- No target USB interface (chip doesn’t support USB)
STM32F4 Discovery
This board sports quite a capable processor, handily capable of doing some DSP. With the built-in mic and headphone amp, this could be a fun cheap board to explore digital audio with. When I last looked they cost about USD14.00.
The chip on the board is an STM32F407VGT6. Briefly, its specs are:
- 168 MHz (!!) Cortex-M4F processor, LQFP 100 package
- 1 MiB flash (!!)
- 192 KiB RAM
- ST-LINK/V2 debug interface (supported by muforth!)
- 3 axis accelerometer
- USB OTG support with micro-AB connector
- omni-directional digital mic
- CS43L22 audio DAC with integrated amp and 1/4” stereo audio jack
Stellaris Launchpad
Note: The Stellaris Launchpad is no longer available. See below for its replacement: the Tiva Launchpad.
TI’s Stellaris Launchpad board is another very low cost ARM Cortex-M development board. It is based on the LM4F120 (now renamed and rebranded as the TM4C1233 – that’s a story unto itself), a Cortex-M4F processor with 256 KiB of flash, 32 KiB of RAM, and loads of serial i/o, timers, 12 bit ADCs, etc.
These are very cheap – as of August 2013 they are USD10 directly from TI, as they are getting rid of these “old” boards in favor of the new Tiva Launchpad.
These seem like nice boards. After my inital excitement about the board – good price point, nice chip (esp the timers) – I decided to ignore it when TI relaunched the parts as “Tiva C-series” parts, changed all of the part numbers, and apparently alienated some of their customers. (I read some grumbling on the forums.)
This is one reason I respect Freescale as a source for microcontrollers: They have a very transparent product longevity program. Most of their processors are supported for ten years after inital launch. Medical and automotive products are supported for fifteen years. It’s unlikely they would pull a stunt like TI’s, of launching a product line, and then a few months later completely pulling everything and starting over.
That snafu notwithstanding, the chips are pretty sweet, the board is small and cheap, and it’s easy to use. After some digging online I was able to figure out that TI’s so-called ICDI – in-circuit debug interface – is simply an implementation over USB bulk endpoints of the GNU GDB remote protocol! And thus is extensively documented. After reading the GDB docs, and tweaking the USB support in muforth, I was able to connect and exchange packets with the board.
One curious discovery: the “M” (write memory) command doesn’t work! Instead of doing what it is supposed to do, it does the following:
- writes the first byte of the destination memory address to 00
- ignores the first nybble of data to be written, thus shifting everything by 4 bits
I thought about various work-arounds, but instead gave up and used the “X” command instead – which does exactly the same thing but uses a slightly more efficient binary (rather than hex-in-ASCII) format for the data.
I was rather surprised to discover that such a fundamental part of the GDB protocol is broken on this board! It’s a bit embarrassing.
Tiva Launchpad
The Tiva Launchpad ARM Cortex-M4F development board is TI’s replacement for its not-very-old Stellaris Launchpad.
The boards are almost identical. The new Tiva boards have a different chip – the TM4C123GH6PM, which supports USB OTG mode, unlike the TM4C1233H6PM (né LM4F120H5QR), which supports only Device mode – but otherwise have identical specs.
The Tiva boards are a bit pricier, at USD13. The Stellaris Launchpad are now selling for USD10, direct from TI.