I'm looking for an ARM development board for bare-metal (no underlying OS) development. Some criteria that I value:

1) External SRAM/SDRAM, at least 1MB
2) External Flash, at least 512kB
3) Built-in JTAG, or atleast standard JTAG interface
4) Nice, well documented and easily programmable accessories (UART, GPIO, USB, Networking)
5) Good documentation.
6) Not too expensive.

I've been looking at the BeagleBoard (and BeagleBone). It seems to cover everything except (4). Any other ideas?


5 Answers 5


What are you going to do with it? Relative to your requirements the BeagleBoard and BeagleBone are a couple orders of magnitude of overkill, although the Bone is an amazing value for its power and hackability. I'm not sure why you say it fails requirement 4, it has all those things except perhaps the nice documentation. The Beagles seem to be pitched as linux platforms so I don't know if you'll be completely on your own if you want to bootstrap it yourself; unlike with an MCU you may not have a bunch of C libraries for working directly with the hardware and peripherals.

Have you considered an ARM Cortex M3 or M4 microcontroller kit? STMicro has a $20 discovery kit for their new Cortex M4 micros. 192KB RAM, 1MB flash, JTAG, USB, and a pretty awesome array of peripherals. These are targeted towards bare-metal development so you will just get some C libraries that let you configure the hardware and you provide a main function and interrupt service routines. It doesn't have networking but at that price point, unless you are designing something where that's a make or break requirement it's an amazing value for learning and prototyping. I have one in the mail now so I can't give a first-hand account but I have developed on other Cortex MCUs and really like them.

If you do require networking, I have used TI's Stellaris LM3S6965 Ethernet Evaluation Kits and they are great, the docs and libraries are pretty good (I've hit a few stumbling blocks figuring things out but overall a good experience). I've even used lwIP and UIP to build a device with a (very, very, very) simple web server. I'm a little reluctant to recommend the full kits over the BeagleBone though because they are around $70 and vastly less powerful than the Bone, but it all depends on what you want to build or learn.


I hve a Friendly ARM Micro 2440 (which is, contra to its name, a smaller version of the mini2440): http://www.friendlyarm.net/products/micro2440. The page cites OS support for Linux, CE and Android, but there are files for bare-metal development. IIRC I payed E 125 for the Stamp + Base (ex BTW).

Specification: Stamp Module

Dimension: 63 x 52 mm
CPU: 400 MHz Samsung S3C2440A ARM920T (max freq. 533 MHz)
RAM: 64 MB SDRAM, 32 bit Bus
Flash: 64 MB / 128 MB / 256 MB / 1GB NAND Flash and 2 MB NOR Flash with BIOS
Serial, SPI, USB, LCD, CMOS Camera Interface
Analog Input and Output
User Outputs: 4x LEDs
Expansion headers (2.0 mm)
Debug: 10 pin JTAG (2.0 mm)
OS Support
    Windows CE 5 and 6
    Linux 2.6

Specification: SDK-Board

Dimension: 180 x 130 mm
EEPROM: 1024 Byte (I2C)
Ext. Memory: SD-Card socket
Serial Ports: 3x DB9 connector (RS232)
USB: 4x USB-A Host 1.1, 1x USB-B Device 1.1
Audio Output: 3.5 mm stereo jack
Audio Input: 3.5mm jack (mono) + Condenser microphone
Ethernet: RJ-45 10/100M (DM9000)
RTC: Real Time Clock with battery
Beeper: PWM buzzer
Camera: 20 pin Camera interface (2.0 mm)
LCD: 41 pin connector for FriendlyARM Displays and VGA Board
Touch Panel: 4 pin (resistive)
User Inputs: 6x push buttons and 1x A/D pot
Expansion headers (2.0 mm)
Power: regulated 5V (DC-Plug: 1.35mm inner x 3.5mm outer diameter)

It depends heavily on what you are looking to do, I currently really like the stm32f4 discovery. About $20. Hard to call it a microcontroller with the amount of flash and ram, two caches, crypto, floating point, upt 168MHz, supports external memory, etc. (This eval board does not have external memory, 1mb of flash and 128K of ram in one linear chunk, there are other chunks of ram I think).


You dont or dont necessarily get jtag access to it though, the newer microcontrollers from arm are using swd, a serial jtag which needs more time to get all the popular tools supporting.

the omaps are ti and boards like the beagleboard dont use the stock arm pinout. there are a lot of little things like that make the beagleboard itself more painful than it should be. I am eager to see what the raspberri pi folks did. I like my devkit8000 board from embest much much better than my beagleboard. like the hawkboard better than the beagleboard as well. (btw not difficult at all to do your own thing, non-linux, with a beagleboard).

You might look at embeddedarm.com, being arm7 and arm9 based they are going to offer the traditional arm jtag. They may actually use external memory.

I was also pleased with the open-rd board, cortex-a core but from marvell instead of ti, and faster. disappointed with the plug computer though, avoid it.

The new xilinx chips use an ARM core instead of power-pc, do whatever you want with that and the eval/devel boards probably have flash and ram and lots of other things, but pricy, and can be a pain to get running.

I was not pleased with my openpandora, nor always innovating (built almost directly around the beagle), dont waste your money there. if anything get a nook color and root it or use a gba or nds which are really easy to develop for.

there is also the pandaboard, I dont have one, didnt know it was sub $200, I may have to get one, will probably like it better than the beagle as well.

there are a number of arduino sized boards, the armmite pro, the maple and family, the fez-panda (not to be confused with the pandaboard.org panda board), etc. They cannot compete with the stm32f4 discovery other than form factor if you really really need to put arduino shields on their backs. the armmite pro and fez-panda (once unlocked) have real arm jtag though.

The mbed is good if you really like lpc and hate st for example, costs two to three times as much but is probably my other favorite board after the stm32f4 discovery.


Actually, Raspberry Pi can be used as a bare metal development board, as long as you load your program instead of loading Linux.

See another question and answer on SO about what happens during the boot process. There is a forum topic Raspberry Pi boot process dedicated to this too. According to some reading on the net, as long as you replace the files it normally loads you have full control.

It meets all your criteria, except the JTAG.

As a reference, see http://github.com/dwelch67/raspberrypi for some bare metal ARM programs.

  • 2
    \$\begingroup\$ JTAG works just fine on the raspberry pi (for arm development) for boundary scan I assume you would need to sign an NDA with broadcom to get that info. \$\endgroup\$
    – old_timer
    Jan 27, 2013 at 4:12

There is an ARM9 development board to meet all your requirements. Contact them for more detail. http://www.armdesigner.com/EM2440-III.html

  • Samsung ARM9 S3C2440A AR M920T, up to 400MHz.
  • 128MB~256MB SDRAM
  • 256MB~1GB NAND Flash
  • 3.5 / 4.3 / 7 inch TFT LCD
  • Providing original schematic drawing and reference PCB files for board manufacturing
  • One Key to update Boot-loader, Kernel, Yaffs, NK.bin and one Key to configure parameters of Linux.
  • USB Host, USB device, serial port(UART), Ethernet por(RJ45), GPIO, BUS, Audio I/O
  • Supporting Cramfs/ramfs/etx2/fat32/nfs/yaffs
  • System parameters can be saved in REGEDIT, and residual Flash can be read and written
  • The system can be updated via USB interface.
  • Supporting WinCE 6.0 and Linux 2.6.25/Linux2.6.30
  • Supporting GPS, GPRS, CDMA, Printer, WIFI, AV, VGA Modules
  • Modular Design: Carrier board-128mm x 105mm; CPU board- 74mm x 37mm

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.