I’ve recently began working on a new project- a wheeled robotic platform, which will be capable of navigating autonomously, not only by the help of various proximity sensors, but also by using real Computer Vision algorithms. The platform will communicate with the outside world using WIFI or BlueTooth. To answer my requirements and design, and more importantly to experience something new on the way, I decided to use an embedded Linux board. I’m quite a Linux expert (have been using and developing for Linux for more than a decade), so I don’t mind modifying distributions or even the kernel itself if it will be needed.
Choosing an embedded Linux board is not easy. There are a lot of variations, which come in difference prices, sizes, features, and power requirements.
For my project, I decided to keep the price limit at 150$, the size to roughly 10×10 cm, and the power requirements to less that 1 ampere at 5v. As for the features – connectivity is the most important aspect (USB, Ethernet, WIFI, Serial), and nice to have are on-board video & audio controllers.
After some research, I came up with the following list of boards:
BeagleBone is a low-cost credit-card-sized Linux computer that connects with the Internet and runs software such as Android 4.0 and Ubuntu. With plenty of I/O and processing power for real-time analysis. It’s a newer model of the BeagleBoard.
- 720MHz super-scalar ARM Cortex-A8 (armv7a)
- 3D graphics accelerator
- ARM Cortex-M3 for power management
- 2x Programmable Realtime Unit 32-bit RISC CPUs
- USB client: power, debug and device
- USB host
- 2x 46 pin headers
- 2x I2C, 5x UART, I2S, SPI, CAN, 66x 3.3V GPIO, 7x ADC
The ultra-low cost credit-card sized, full-featured embedded linux box!
- CPU: Boardcomm 700MHz (Raspberry Pis can dynamically increase clockspeeds, and some can temporarily reach speeds up to 1 GHz.)
- RAM: 512MB (model B rev2)
- GPU: Broadcom VideoCore IV, OpenGL ES 2.0, MPEG-2 and VC-1 (with license), 1080p30 h.264/MPEG-4 AVC high-profile decoder and encoder
- Video: HDMI, composite, RAW LCD,
- Audio: 3.5mm jack, HDMI
- Low level peripherals: 8 × GPIO, UART, I²C bus, SPI bus with two chip selects, +3.3 V, +5 V, ground
- Onboard 100Mb/s ethernet
- Storage: SD/MMC/SDIO cards
- Power rating: 700 mA (3.5 W)
The BeagleBoard is a USB powered, low-cost, fan-less single board computer.
- 600 MHz ARM Cortex-A8 CPU
- 128mb LPDDR RAM, 256mb NAND Flash
- MMC+/SD/SDIO interface for memory or wireless connectivity
- OpenGL capable 2D/3D graphics accelerator
- Power consumption of 2W
- USB 2.0 On The Go
- I2C, SPI
- DVI-D, S-Video out
- Stereo audio in and out
- JTAG (debugging)
It seems like there is a strong community behind the Beagle Board, with active mailing lists, a rich WIKI knowledge base, and an IRC channel.
The Linuxstamp is an open source processor module based on the AT91RM9200.
- Atmel AT91RM9200 processor (Arm9 processor with MMU, 180Mhz operation)
- 32MB SDRAM (Only limited by 1x 54-TSOP SDRAM chip)
- 8MB SPI Dataflash
- 1x SD card slot
- POE capable (48v -> 5v Power supply can be implemented on a motherboard)
- 1x 10/100 Ethernet
- 1x USB host port (allows wifi adapters, flash drives and other USB devices to be used)
- Serial debug port access through FTDI USB/Serial converter
- JTAG port
As it’s name, the Gumstix Overo is a gum-stick sized Linux board with impressive feature list, very small size, weight and with low power requirements.
- 600-MHz ARM Cortex™-A8 Core
- 256 MB low power DDR RAM
- 256 MB NAND Flash
- microSD adapter
- I2C, PWM lines (6), A/D (6), 1-wire, UART, SPI, Camera in, Extra MMC lines
- audio in, audio out
- USB OTG signals, USB HS Host
The main disadvantage of the gumstix overo from my point of view is the fact that all of the connectivity features come in ‘signals’ and lack the connectors themselves, and thus require an expansion board.
After some thought, I decided to order the Beagle Board. It has more features than the Linux Stamp, and in my opinion it’s better in the price\value ratio.
The next thing to do is to choose an Embedded Linux Distribution to run over the Linux board. My next post will describe what is an “Embedded Linux Distribution”, and will compare between the main palyers in the market.