December 5, 2012 AT 12:27 pm

Adafruit Holiday Gift Guide 2012: ARM Development

There have always been dozens of ARM options out there for development boards, but — for a variety of reasons — it’s always been a niche interest in the mainstream DIY community. 2012, however, may go down as the the year that ARM and 32-bit finally makes lasting inroads into hobbyists electronics.

There have been a lot of high-profile development tools and established environments embracing ARM in a more official capacity this year than any point in the past, and it’s probably never been easier or cheaper to benefit from the amazing processing power per dollar ratio that modern, low-end ARM Cortex M processors offer.

Interested in taking the 32-bit plunge? Hopefully this guide will give you a better idea of what options you have!

Arduino Due

Probably the highest profile ARM adopter this year has been the official Arduino board, the Arduino Due. There have always been ARM-based Arduino boards or at least Arduino-footprint compatible boards out there, but the Due is different in that it has the official stamp of approval and backing of the core Arduino team, which makes it the easiest to purchase option for anyone familiar with Arduino and wanting to be certain that there will be a sufficient number of users online to make using it easy. Based on an 84MHz ARM Cortex M3 processor from Atmel, it packs a lot more punch than the classic 8-bit Arduino UNO, but should be just as easy to get started with. This is the safest bet if you’re just looking for some extra processing power, without having to dig into the intricacies of dealing with low-level peripherals yourself.

Teensy 3.0

The Teensy has always had a good following behind it, but the latest incarnation — the ARM Cortex M4 base Teensy 3.0 — is the most capable device yet. It uses a Freescale Kinetis K-series chip (PK20DX128VLH5), which is based on the ARM Cortex M4. The M4 differs from the more common Cortex M3 chips by adding some DSP-like instructions, and options for single-precision floating-point acceleration in HW. Like previous versions of the Teensy, it allows you to use an IDE you’re probably familiar with from the Arduino platform, but is perhaps a bit more friendly if you want to get a bit closer to the bare metal without having to dive straight into the deep-end.

Raspberry Pi

The 500-lbs ARM gorilla in the room in 2012 is of course the insanely popular, incredibly powerful, surprisingly easy to use Raspberry Pi.

Aside from having a great team behind it, and a huge following in the larger HW, computer science and DIY world, it almost certainly represents the best processing-power-to-dollar ratio out there ($35 … come on!).

Need some serious processing power without having to learn all the ins and outs of getting embedded Linux up and running yourself? Want to mess around with rich SW or OS development or add easy network connectivity without worrying about breaking expensive HW? Want to get start working with modern HDMI displays or any LCD television for custom games on the cheap? You can’t do better than the Pi, and as it looks close to hitting 1,000,000 boards sooner than anyone could have imagined, you can be sure answers to your questions are out there.

Added Bonus? Adafruit has a great Raspbian-based distro called Occidentalis that makes developing with the Pi painless and you’ll be having fun writing your own code in no time!

LPCXpresso

Interested in real bare-metal ARM development without breaking the bank? The LPCXpresso family has really taken off in recent years, and includes a wide variety of ARM Cortex M0 and ARM Cortex M3 chips from NXP’s popular LPC family, combined with a free Eclipse-based IDE and an on-board HW-debugger so that you can step through your code line-by-line and start doing complex development and debugging for about 20 EUR/$30.

There are a number of boards available in the ecosystem, but if you’re looking for the best value I’d suggest the LPC1769-based boards. The boards are all the same price, but the 120MHz ARM Cortex M3 based LPC1769 has every peripheral you’re likely to want, including a generous 512KB of flash and 64KB of SRAM. Have a look at the LPCXpresso Forum for a fairly active online community around these popular boards and chips.

This is a good option if you want something that you can easily migrate to a manufacturable, commercial product, though the learning curve is higher as well.

The boards are available from a number of retailers, so a quick search on Google should turn up something local, or via a distributor like Mouser.

MBED

Also based on the popular LPC1000 family from NXP, MBED is a very easy to use online platform with two chips available. The same LPC1769 mentionned above, and the smaller, very power efficient Cortex M0-based LPC11U24. This is an extremely easy way to prototype and test ideas, with a lot of libraries available for complex tasks like NFC communication (we have an mbed kit for this based around the Adafruit PN532 Breakout), Internet access, Bluetooth, and almost anything else you can think of.

While the online environment is very easy to use and quite pleasant if you’re mobile, mbed now also offers the option to export your online projects to an offline toolchain or IDE, including project export options for LPCXpresso and GCC, and Keil’s commercial uVision IDE, amongst other popular toolchains.

Books

If you’re really interested in understanding the details of ARM’s most common deeply embedded processors, the ARM Cortex M0 (low power, and low cost) and the ARM Cortex M3 (much larger instruction set), the two best books you can purchase are the ‘Definitive Guides’ from ARM-employee Joseph Yiu: The Definitive Guide to the ARM Cortex-M0 and The Definitive Guide to the ARM Cortex-M3 (be sure to get the second edition of the latter!).

They’re both excellent books and very accessible, and any geek would be happy to find either or both of these under they’re Christmas tree! I’m crossing my fingers hoping for an M4 version, but the beauty of ARM is that each chip builds upon the instruction set of lower versions, so the information covered in the previous books applies to the M4 as well … although it’s worth having both the M0 and M3 books since they both contain very valuable information.

SHIPPING DEADLINES

Here are your 2012 shipping deadlines for ordering from Adafruit. Please review our shipping section if you have specific questions on how and where we ship worldwide for this holiday season.

United States Postal Service, First Class and Priority (USA orders): Place orders by Friday – December 14, 2012 – Arrive by 12/24/2012 or sooner.

USPS First class mail international (International orders): Place orders by Friday – November 23, 2012. Can take up to 30 days ore more with worldwide delays and customs. Should arrive by 12/24/2012 or sooner, but not a trackable service cannot be guaranteed to arrive by 12/24/12.

USPS Express mail international(International orders): Place orders by Friday – December 14, 2012. Can take up to 15 days or more with worldwide delays and customs. Should arrive by 12/24/2012 or sooner.

7 Comments

I have recently tried the STM32F Discovery boards – similar to the LPCXPresso, but the chips are a bit easier to work with as they have normal JTAG too and the ST-Link debugger is supported by open source tools. The STM32F1xx and STM32F3xx series are also cheaper than the LPC176x and LPC11xx series, but a bit slower.

I have several of the ST boards in the closet here, but I’ve never had a chance to test them out myself so I didn’t really want to give an opinion on something I’m not familiar with myself.

I’ve been using NXP/Philips chips for so many years that it would take an awful lot to convince me to change and take the productivity hit.

The ST boards do look good, but at the end of the day you should base your decisions on the chips not who has the cheapest development board in the competition amongst ARM manufacturers to practically give this stuff away(!).

Better to spend an extra $10-20 on a tool that will match your needs down the road when you need to put 1000 of those MCUs into a product, which meant LPC in my case.

Not to say ST doesn’t make good chips, though … I’d consider NXP and ST the two most innovative companies in the Cortex M space … I just don’t have enough first hand experience with ST to throw my $0.02 in.

I’d consider them on equal footing with NXP if I was starting from scratch today, but since I have a lot of history with NXP it’s not a B&W decision for me.

Full disclosure: I used to work at NXP, though my interest in their MCUs long predates my time working as an apps engineer for them, and I still use them because I genuinely appreciate their MCUs.

The BeagleBone will definately keep getting sold here, and it’s a great platform as well! There are so many ARM platforms out there, though, that it’s hard to highlight everything in one post. In some ways, the BB is even a bit more hacker friendly than the Pi if you want to really get down to the ARM Core, and the two platforms are generally solving different types of problems for different users.

Hi, I am an electronic engineer and I have been using some 8-bit microcontrollers to the very low level going to the registers and stuff, and now I’d like to start digging into the 32-bits and ARMs MCUs, and also with RTOS. Which one would you recommend to start using, not because of the easiness, but because I will learn a lot?
Thanks (:

If you’re reasonably familiar with C, and want to really learn embedded development on ARM, I’d probably suggest something like the LPC1769 LPCXpresso boards since the total tool cost is pretty low. The HW debugger included on the board is kind of slow, but you can buy a faster Red Probe+ for ~$100 I think, and debugging up to 128KB of flash in the target IDE is free, including for commercial use. You can of course use free unlimited command-line tools, but I assume if you’re doing this professionally time spent on projects is important and you care more about debugging efficiently rather than inexpensively. The advantage of ARM is that if you don’t like the LPCXpresso/Code Red IDE, you have many options for both IDEs, toolchains, and debuggers, including open source options. I really like Crossworks for ARM and my Segger J-Link for example.

Alternatively, ST has some good chips and some inexpensive boards with on board debuggers, but I haven’t used them first hand myself.

It really depends on the types of problems you’re trying to solve, but I like NXP’s ARM chips since they cover the entire ‘embedded’ space with small 8-bit replacement chips (have a look at NXP’s brand new LPC800 family announced this week), up to fairly beefy 204MHz dual-core chips (though the latter LPC4357 chips have a steep learning curve).

The LPC1769 is a fairly capable chip (120MHz, USB, 512KB Flash), and maybe more than you need … but once you get used to the tools it’s relatively easy to move down the scale to smaller chips like the LPC1347 or LPC11U37, etc.

If you’re interested in ARM and LPC chips, you might find this site useful: http://www.microbuilder.eu … I’ll hopefully publish a new LPC1347/LPC11U37 library in the next month or so, but I’m still working some kinks out of the codebase.

Yes I know C and also some assembly language. The LPC1769 seems really good! and it seems more powerfull than the LPC1347. I’ll check if I can program it under Linux. Also right now this is just for me, so inexpensive and using command line tools doesn’t sounds so bad for me I’m used to them, I compile and program my AVRs using VIM and the command line of gcc and gdb.

Also for what I just saw, the LPC1769 has already a port of FreeRTOS, and a book for it. And all NXP Cortex M3 have µC/OS-II support. So this one seems like a really good option. I think I’ll give it a try.

Thank you! and thanks for that webpage (: I’ll sure join the forums as soon I get stuck at something (that will be probably very soon xD ) And you should do also some tutorials for the LPC1769