Skip to main content
Topic: ARM Cortex-M3 Based Arduino Boards & IDE (Read 4576 times) previous topic - next topic

ARM Cortex-M3 Based Arduino Boards & IDE

A Lower-Cost, ARM-Based Arduino Alternative?

The rest of the comparison between LPC134x shows similar peripherals to the Arduino’s on chip. They both have I2C, SPI and USART. So overall the LPC134x looks as good or better than comparably priced ATmega’s (at one-off prices).

There is a free, Open Source, GNU toolchain for the ARM, which is based on the same compiler as the Arduino IDE uses. So it looks like there are no real obstacles to making a lower-cost, ARM-based Arduino alternative. Of course, there is a plenty of work in porting the Arduino language libraries, like analogRead and analogWrite, but the core functions, which we use the most, would probably be only a few weeks.

Using USB on the LPC1300 - As Simple as Using a UART  (PDF)

Looking at this presentation, (slide 25), the chip shows up under Windows (and they say Linux) as a Flash drive to provide “Drag and Drop Flashing”. It has this capability built in at manufacture! No need for a bootloader, JTAG, or a second chip, like the FTDI USB to serial interface on an Arduino. Put an LPC134x on a board, connect USB, and it should ‘just work’ !

An entire USB-based micro-controller board only needs an LPC1342 or LPC1343, a crystal, voltage regulator, a few passives and PCB.

Re: ARM Cortex-M3 based Arduino Boards and IDE

Reply #1
The Maple IDEhas already accomplished merging the GCC toolchain for ARM (including Cortex-M3) with the Arduino IDE!

The only major difference will be the peripheral support packages (libraries) for other ARM Cortex-M3 based MCUs (NXP LPC, Atmel SAM3L/SAM3U, Energy Micro EMF32 ...). For the LPC1343 for example the STM32 libraries would have to be replaced by libraries supporting the LPC1343.

After having played around with the Maple and the STM32VLDISCOVERY and having LPCXpresso boards as well, I have been looking in this for the last couple of days a bit ... understanding the structure of the STM32F peripheral support library and how it's integrated into the Arduino/Maple IDE is essential to replace them with the equivalent Atmel SAM3 and/or LPC1343/LPC1768 parts.

Ah, I almost forgot the most important part - the bootlaoder. It will take to port the Maple bootloader to the other platforms as well ;)

In essence following steps are required (no details):

- get a working GCC based toolchain and the peripheral/USB support libraries for the specific ARM Cortex-M3 based MCU family
   (requires the specific Peripheral/USB support libraries)
- port the bootloader and get it working
- exchange the peripheral libraries specific to the MCU family
- PID/VID ????

This should work for
- Atmel SAM3L/SAM3U
- Energy Micro EMF32 Gecko/Super Gecko
- NXP LPC1343, LCP1768
- TI Stellaris

... and for the ARM7 based MCUs as well, like Atmel AT91SAM7, NXP LPC2xxx (in essence the Netduino and the FEZ platforms could be supported as well) ... in theory.

All this leads to the more general question of (ab)using the Arduino/Maple IDE for Cortex-M3 based designs that have no Arduino form factor (headers) ... ;)