During FOSDEM 2010 I had discussion with Ulf Samuelsson from Atmel and few other guys about developer boards. What is required on them and what should be avoided. Some time later I had a talk with one person about new OMAP3 based board and what I would like to see on it. So I decided to write something in public.
So far I used mostly ARM developer boards from ST Microelectronics/ST Ericsson, Atmel, Cirrus Logic, Intel, Simple machines, Bug Labs, Texas Instruments. Some were better then others etc. But what ideal developer board should have? Let me try to create a list:
- 2 serial ports (one can be null modem, second should have RTS/CTS/DTR lines)
- working Ethernet not placed on USB bus (so it works when USB does not)
- powered USB host port (more then one would be great)
- USB device port
- JTAG connector
- one power input — +5V or +12V — other should be forbidden as those ones can be taken from PC PSU which can power multiple devices at same time
- SD/MMC slot — even if it is over slow SPI (like on Sim.One — 250KB/s max)
- GPIO pins
- I²C bus
- SPI bus
- keypad with Up/Down/Left/Right + Enter at least
- easily reachable reset button (pins to short are acceptable as micro switch can be put on them)
- few LEDs controlled by system
- all connectors put on one or two edges of board — top one + one of side ones are ok (Atmel at91sam9m10-ekes for example)
- mounting holes (so board can be mounted on A5 sheet holder for presentation at stand)
- backup battery for RTC
- U-Boot
- quite fresh kernel (not NHK-15 due to 2.6.20 kernel which is 3 years old now)
What to avoid:
- female serial port connectors (Atmel NGW100) — most devs will find 3 null modem cables before straight one
- flat cables which connect “debug boards” with main board (Openmoko phones, NHK-15 from ST Ericsson)
- RJ45 connectors for serial console (Sim.One) — DB9 or properly done USB->RS232 adapter on-board are best
- placing connectors on all edges (BeagleBoard — but it had to be cheap)
- non standard bootloaders (U-Boot is what I prefer)
- Ethernet on USB (Bug 2.0) — it is hard to use when you have problems with USB Host
- jumpers (Atmel boards)
- non standard connectors (Bug r1.2 and it’s Handylink crap — next versions use iPod connector which is easier to use)
I am trying to not cover should developer board contain display with touchscreen or not as it depends on type of board. But if screen is present then more then QVGA (320x240) would be nice (WVGA anyone?). Some kind of video out connector can also be used but would be nice to have one of VGA/DVI/HDMI so normal PC monitor can be used — Composite video and S-Video require searching for some kind of TV…
Which boards are my favorites? There are few:
- FriendlyARM with WVGA screen — cheap product which gives access to everything needed to start with embedded Linux
- Atmel AT91SAM9263-EK — my first own developer board
- BeagleBoard Cx — has own problems but I like the power of it