Getting Started with the BeagleBoard
Contents
- Introduction
- Buying the Hardware
- Additional Hardware
- Testing the Board
- Running Linux on the Board
- Other Resources
Introduction
The BeagleBoard is a small (3 inch × 3 inch) computing platform designed by Texas Instruments, with:
- Low power consumption (maximum of just over 2 Watts).
- The OMAP3530 system-on-a-chip, which includes an ARM Cortex-A8 CPU clocked at 600 MHz.
- TMS320C64x+ DSP for accelerated audio and video encoding and decoding.
- PowerVR SGX530 GPU for 2D and 3D graphics acceleration, with OpenGL ES 2.0 support.
- 256 MB of MDDR RAM.
- 256 MB of NAND flash.
Peripheral connectors included on the board:
- An SD(HC)/MMC slot for operating system booting and data storage.
- A USB A host socket, connected to an EHCI chip for USB 2.0 support (but no USB 1.0/1.1 support).
- A USB OTG mini AB socket.
- An HDMI connector, which provides digital DVI video output.
- An S-video connector for PAL or NTSC analogue video output.
- 3.5 mm audio jacks for stereo audio input and output.
- 10-pin connector for RS-232 serial connection, for serial console or operating system booting.
- 2.1 mm barrel connector for 5 V DC power.
Buying the Hardware
Recommended Supplier
We recommend that you buy the BeagleBoard from Special Computing, together with the plastic case and all necessary cables listed on that page. Special Computing offer bootable SDHC cards, making the initial validation and testing of the BeagleBoard much easier. Special Computing are in the US, but they ship internationally and are very helpful via email.
However, you'll still need to get an external 5V 500 mA power supply elsewhere - we bought ours from Reichelt in Germany.
Other Suppliers
Texas Instruments produce the BeagleBoard in cooperation with Digi-Key, so Digi-Key is the most obvious place to buy the BeagleBoard, but they don't sell the case, or make it quite so easy to choose the extra hardware. Before we knew about Special Computing (where we bought the case), we bought the board from Digi-Key and the extras from Reichelt.
In Germany, you might want to buy the BeagleBoard from Embedded Projects instead, though we have not tried that.
Additional Hardware
Necessary Hardware
BeagleBoard with HDMI, stereo audio, 5 V power, serial and USB cables connected. The SD card is in the slot under the serial cable.
Testing a BeagleBoard running Ångström with a touchscreen and USB input devices.
As mentioned above, you need several cables and accessories to use the BeagleBoard. We bought our accessories from Reichelt Electronics, though we would in future buy the set from Special Computing. We mention the Reichelt product links below for people in Germany and to document what we really used. The accessories that you need are:
- An HDMI type A to DVI-D cable, unless your monitor has HDMI input. (Reichelt).
- A AT/Everex serial cable. (STTO-Kabel - just unbolt the metal plate) (We mistakenly bought an incorrectly wired serial cable from Reichelt and rewired it.) Special Computing provide the correct serial cable.
- A DE-9F to DE-9F Null Modem (RS-232) serial cable. (The connector type is often incorrectly referred to as DB-9.) (Reichelt)
- A powered USB 2.0 hub (meaning, with an external power supply) (Reichelt).
- A USB 2.0 Cable to connect the BeagleBoard to the USB hub (provided with our USB hub from Reichelt).
- A separate 5 V, at least 500 mA power supply for the board, with a 5.5 × 2.1 mm barrel type, tip positive, grounded outer barrel connector (Reichelt, Reichelt).
- An SD card reader for your PC, so you can prepare SD cards for the BeagleBoard. (Reichelt)
- Some SD cards. (Reichelt)
- A Wireless USB stick, because the BeagleBoard has no built-in network connectivity. We used a Longshine LCS-8131G3 (Reichelt), which uses the Zydax ZD1211 drivers. Any such device that works on a desktop PC should also work on the BeagleBoard - For instance, the ZyXEL ZyAir G-220 v2. Wired ethernet should also work reliably, though we have not tested the Network-capable USB hub provided by Special Computing.
Note: The BeagleBoard has a USB OTG socket as well as a regular USB socket. You don't need to use the USB OTG socket, but if you ever want to, you'll need a A USB 2.0 (USB A plug to Mini-USB 5-pin) Cable. (Reichelt)
Note: The BeagleBoard USB EHCI is unreliable, see a Google Groups discussion for more details.
Touchscreen
Most BeagleBoard software is designed for a touchscreen, though you can use a normal monitor, keyboard, and mouse. We bought a Xenarc 706TSA – 7" TFT LCD touchscreen that worked perfectly. You will need a power supply (Reichelt) for the touchscreen.
Powering via USB
You should directly power the board from a 5 V power connector instead of the USB OTG port. Power via the USB OTG port might work sometimes (via a USB A to mini B cable), but the BeagleBoard attempts to draw more than 100 mA of current without negotiating any additional current, which violates the USB specification. Therefore, most host software will prevent this to comply with the USB specification.
Incorrectly-wired serial cable
An incorrectly-wired serial cable, such as one that does not have a one-to-one pin mapping can be adapted by carefully removing the IDC end and checking the wiring configuration with a multimeter, before making adjustments and reassembling the connector. This is not recommended as an IDC is not designed to be dismantled and reassembled.
Testing the Board
Further information can be found at the BeagleBoard wiki's validation page
You may access any Linux PC with a serial port via a serial console, as described in the Linux Serial Console HOWTO.
Once you have a BeagleBoard, you should test it before proceeding. First, gain access to the serial console. Minicom or GtkTerm (or some other terminal program) can be used to access the serial console if an RS-232 cable is connected between the 10-pin connector on the board and another PC.
An example minicom configuration file is shown below:
pu port /dev/ttyS0 pu rtscts No
Place the above lines in ~/.minirc.dfl and start minicom at a terminal to connect to the BeagleBoard serial console, using the first serial port on the host PC. Alternatively, the settings required for the serial connection are a baud rate of 115200, no parity, one stop bit (also known as 115200 8N1). Be sure to disable hardware and software-based flow control.
Once the serial console is connected and a terminal program is running, connect a power supply to the BeagleBoard. This should output diagnostic information from the bootloader to the serial console. If a video display is connected to the DVI output, you should see a BeagleBoard splash screen. However, with recent versions of the bootloader software, the BeagleBoard splash screen is not displayed, so a serial console is very essential to ensure that your BeagleBoard is working correctly.
Running Linux on the Board
Several different distributions can be used with the BeagleBoard. You may buy SD cards with a working Linux distribution pre-installed, but it is relatively easy to partition and format a blank SD card. Graham Gregory has written a handy script which can easily set up an SD card for booting on the BeagleBoard. This script should be run like so:
mkcard.sh /dev/sdc
where /dev/sdc is the device node for the SD card. This can be determined by examining dmesg output (once the SD card has been inserted into a card reader) for the name of the device. The script needs dosfstools to format the FAT32 boot partition, and e2fsprogs for the second ext3 partition.
A more labour-intensive and error-prone procedure is outlined in the BeagleBoard wiki.
With the card prepared you may then choose a distribution to try:
- Ångström is a distribution made specially for embedded applications, and is easy to setup and configure, with a large variety of packages and development tools.
- Ubuntu is the familiar and popular desktop Linux distribution, which is harder to setup but has more up-to-date packages available.
- Android is Google's software stack based on the Linux kernel. The BeagleBoard port is not developed by Google.
- Mer/Maemo are ports of Nokia's Maemo software to run on the Beagleboard.
Running Ångström
Each distribution is installed in a similar manner, For Ångström you can follow these steps:
Download the following files to your home directory (~/):
- MLO: A "booting file" as described in the bootrom manual.
- x-load.bin.ift: The stage one bootloader.
- u-boot.bin: The stage two bootloader.
- uImage-2.6.29-r37-beagleboard.bin: The Linux kernel binary.
- modules-2.6.29-r37-beagleboard.tgz: The Linux kernel modules.
- Angstrom-Beagleboard-demo-image-glibc-ipk-2009.X-stable-20090612--beagleboard.rootfs.tar.bz2: The Linux root filesystem for Ångström from http://www.angstrom-distribution.org/demo/beagleboard/. Alternatively, the most recent versions can be used instead.
Mount the FAT32 boot partition of the SD card:
sudo mount /dev/sdc1 /mnt/bootbeagle
where /dev/sdc1 is the device node of the FAT32 boot partition. If /mnt/bootbeagle does not exist, create it with:
sudo mkdir /mnt/bootbeagle
Your distribution might mount the FAT32 partition automatically, in which case you could copy the files with a graphical file browser instead. Copy MLO to the FAT32 boot partition of the SD card:
sudo cp MLO /mnt/bootbeagle/
You must copy MLO before copying any other file. Then copy u-boot.bin and x-load.bin.ift to the same partition:
sudo cp u-boot.bin x-load.bin.ift /mnt/bootbeagle
Copy the file that starts uImage… to uImage.bin on the FAT32 boot partition. Recent versions of u-boot.bin expect the kernel binary to be called uImage, not uImage.bin, so check the output from the bootloader on the serial console if the BeagleBoard does not boot.
sudo cp uImage.bin /mnt/bootbeagle/uImage.bin
Mount the ext3 Linux partition on the SD card:
sudo mount /dev/sdc2 /mnt/beagle
where /dev/sdc2 is the device node of the ext3 Linux partition. If /mnt/beagle does not exist, create it with:
sudo mkdir /mnt/beagle
If your distribution automatically mounted the ext3 partition, be sure to unmount it and remount the device manually, as otherwise the extraction step below will fail. In a terminal, extract Angstrom-Beagleboard-demo-image-glibc-ipk-2009.X-stable-20090612--beagleboard.rootfs.tar.bz2 as root:
sudo tar -xjvf ~/Angstrom-Beagleboard-demo-image-glibc-ipk-2009.X\ -stable-20090612--beagleboard.rootfs.tar.bz2 -C /mnt/beagle
While still in the ext3 partition, extract modules-2.6.29-r37-beagleboard.tgz as root:
sudo tar -xzvf ~/modules-2.6.29-r37-beagleboard.tgz
Unmount the boot and root partitions of the SD card, insert it into the BeagleBoard and power on the board:
sudo umount /mnt/bootbeagle sudo umount /mnt/beagle
Ångström should now boot.
Note that connman, the software for configuring networking, does not seem to work in the 20090903 unstable rootfs image, so networking is not possible.
Some extra setup may be required depending on the input and display devices attached to the BeagleBoard, so having a working serial console is useful in case of problems. Alternatively, copying any extra files (such as wireless driver firmware or packages necessary to bring up a network connection) to the root Linux filesystem on the SD card can be helpful.
Other Resources
The main Beagleboard site has links to the reference manual, as well as many other BeagleBoard-related links. There is an IRC channel, #beagle on the freenode network, with helpful discussion of problems and solutions. There is also a BeagleBoard group on Google Groups.
Copyright © Murray Cumming, Openismus GmbH.

This work is licensed under a Creative Commons License.
