BeagleBoard Community

Revision as of 12:25, 10 September 2008 by Rickbronson (talk | contribs) (Errata)
Jump to: navigation, search

This page collects information about TI's ARM based OMAP3 Beagle Board.



The Beagle Board is a low-cost, fan-less single-board computer based on TIs OMAP3 device family, with all of the expandability of today's desktop machines, but without the bulk, expense, or noise (from It uses a TI OMAP3530 processor (ARM Cortex-A8 Core ~600MHz + TMS320C64x+ DSP ~430MHz + Imagination SGX 2D/3D graphics processor). See OMAP3530 features for more processor features. Target price is US-$149. The design goal was to make it as simple and cheap as possible, e.g. not having a LCD added, but letting you connect all add-ons available as cheap external components. See What is Beagle? and LinuxDevices article for more details.

The videos Beagle Board Beginnings and Beagle Board 3D, Angstrom, and Ubuntu give you a good intro about what BeagleBoard is about and it's capabilities.


Top view:

Beagle top notes.jpg

No. Name Comment
1 OMAP3530 processor + 128MB DDR + 256MB NAND PoP: Package-On-Package implementation for Memory Stacking
2 DVI chip (TFP410)
4 14-pin JTAG
5 Expansion connector: I2C, I2S, SPI, MMC/SD
6 User button Allows setting boot order.
7 Reset button
10 RS-232 serial
11 Alternate power normally powered by USB (unmounted on REV Ax boards, see errata)
12 USB 2.0 HS OTG Power
13 Stereo In
14 Stereo Out
15 S-Video
  • Board size: 3" x 3"
  • Currently 6 layer PCB; target: 4 layer


Beagle bottom.jpg

See jadonk's photostream for some more detailed BeagleBoard pictures.


See BeagleBoard HW Reference Manual (rev. B5).


Schematic of BeagleBoard Rev. B is available as part of BeagleBoard HW Reference Manual (rev. B5) or from design page. Please make sure that you read, understand and agree Jason's mail before using this.


Layout of BeagleBoard Rev. B is available as part of BeagleBoard HW Reference Manual (rev. B5) or from design page. Please make sure that you read, understand and agree Jason's mail before using this.


  1. Boards revision A only: The DC power jack pinout is incorrect on the PCB layout. DC_5V and GND are switched on PCB layout. Normally, the power jack has DC_5V on the center pin and GND on the sleeve (see Figure 20 of Beagle HW manual). But on revision Ax boards the PCB layout has GND on center and DC_5V on sleeve. For this reason it is currently removed. It will be back on the Rev B board. Workaround is to remove wire connecting the two power pins on revision Ax boards and use external power supply with switched connector (do not connect anything to the “?” terminal. USB power will be permanently disabled and the board can only be powered from the 5V.) See Koen's Beagleboard powermod picture with short descriptions, too.
  2. Boards revision < A5 only: There is excess voltage drop across R6 which is used to measure the current consumption on the board. This needs to be a .1 ohm instead of a 1 ohm resistor (SMD 0805). All revision A5 boards have been updated to .1. You can also just solder in a jumper to J2 bypassing the current read point. This issue can cause issues with the USB host port as the voltage supplied to that port can be too low.
  3. Boards revision A only: User LEDS 0 and 1 are shorted on the layout preventing them from being controlled individually. You need to control both GPIO_149 and GPIO_150 to turn on or off both LEDS. This is fixed in the Rev B boards.
  4. Boards revision < A5 only: There is an issue where on some boards the 1.8V has excessive noise on it. This is the result of two incorrect parts L1 and L3 being installed on the board. The inductors that were initially installed in the switchers are 100uH and need to be 1uH. This change will require that the board be returned for update. To check for correct parts, have a look to bottom of BeagleBoard. L1 - L3 are the larger parts there. They all have to be labeled with "102" (== 1uH). If any of these three inductors are labeled with "104" (== 100uH) they are wrong and have to be exchanged.
  5. Boards revision A and B: USB HOST (EHCI) failures. See issue 15 and USB host test reproduce. This is a hardware defect. Most probably Rev. B board will be without the EHCI USB connector mounted and in a few weeks having a different SKU for the Rev. C boards with the EHCI USB fixed. Won't be fixed for Rev. A and Rev. B boards. Needs different PHY. Workaround: Use OTG port with something like mini A to USB A adapter instead.
  6. Boards revision A and < B4: Plugging in a USB OTG cable will prevent Beagle from booting (with git kernel), see issue #19, too. This is due to missing filtering capacitor at USB OTG VBUS. When the kernel driver detects that a USB OTG cable is inserted it enables the charge pump to generate VBUS. With no filtering VBUS looks like any switching regulator output with no filtering -- a huge voltage spike when the switch is on, followed by a rapid decay to a low voltage until the next switch on period. The capacitor is there to store energy between the output switch ON and OFF time, the feedback loop in the regulator does sample the cap voltage. Fix is to piggy-back solder a 0603 2.2uF ceramic capacitor to D3, see VBUS modification D3 picture. Revision B4 boards and newer have this fix applied. Thanks to Steve for debugging this!
  7. Boards revision A and < B5: There is some issue with 32kHz clock depending on system configuration used to clock some OMAP3 peripherals. From this e.g. GPIOs, GPTIMERs, and USB on Beagle might be affected. See Issue 22. Symptom from this is that after booting Linux kernel serial console hangs after some time and no serial input/output is possible any more. There is one software workaround and one hardware fix for this: (A) Software workaround: Don't use 32kHz timer to clock Linux, instead use MPU timer. (B) Hardware workaround: Remove capacitor C70, which improves the 32kHz clock quality and avoids hang-up. Note: Revision A boards have capacitor C70 at the same location as rev. B boards. Note: Board revision >= B5 removes capacitor C70. One person reports that his board's 1.8 volt supply would not start or be delayed by up to 40 seconds until C70 was removed.
  8. Random boards, quite rare: Some random boards, quite rare, show directly after purchasing broken serial communication from host PC to BeagleBoard. Symptom is that you get a new board, get serial output from BeagleBoard in terminal program, but can't type anything at U-Boot prompt (Note: Don't mix this with errata #7. With errata #7 you are able to use U-Boot normally, but Linux prompt input stops after some time). Most users don't have this issue, though. So, first double check your serial configuration (FAQ1, FAQ2 and FAQ3). Only if you are really, really sure that anything with your serial connection is fine, consider sending the board back doing a RMA request.

For additional (software) issues and enhancement requests see Beagle board open point list & issue tracker, too.


Some notes about (ARM processor) clock rates at BeagleBoard:

  • ARM processor at BeagleBoard currently uses 500MHz
  • 500MHz is the default used because it is a balance of performance and longevity
  • For OMAP35x 600MHz is max recommended
  • At 600MHz OMAP35x is considered to be 'overdrive' and it does not have the same life expectancy
  • Higher than 600MHz is out of spec and no guarantee it will work at all (or not damage itself)
  • Also keep in mind that if you go higher you probably want to increase the core voltage. Some of this is mentioned in table 3-3 of the OMAP3530 data sheet. Some numbers:
ARM DSP core voltage
600 MHz 430 MHz 1.35V
550 MHz 400 MHz 1.27V
500 MHz 360 MHz 1.2V
  • There is a thermal monitor in the core, you could use to scale frequency up and down

See Mans' hack to configure clock in U-Boot (V1) to 600MHz.

DLP Pico projector

Texas Instruments is developing a Pico Video Projector Kit (PVPK) as a peripheral for the Beagle Board. The stand alone pico projector will support VGA resolution (640 x 480), RGB 888 input through a DVI interface. The physical connector on the projector will be HDMI. See mailing list for more details.


BeagleBoards, currently Rev. B boards, are available from Digi-Key with part number 296-23428-ND.

Note: For non-US free shipping orders:

  • Click the US flag on the top right corner of Digi-Key BeagleBoard page to come to the international page
  • Select Order Online for your country
  • Add quantity 1 and part number 296-23428-ND
  • Click Add to order

When ordering over 65 EUR / GBP 50 product (BeagleBoard is above), for Europe this results in EUR 103,26 / GBP 81.95 with free shipping.

Note: Some users report that they got some questions from DigiKey to be answered before board shipping is done.

Note: While you get free shipping, most probably you have to pay tax e.g. ordering from Europe. Users report that they had to pay EUR ~34 - 44 VAT + importing taxes (depending on european country), resulting in EUR 137 - 147 ordering from europe.

The Rev. B boards currently oderable do not have support for the USB EHCI port (see hardware errata #5) and are not yet fully supported by the linux-omap git tree. These boards are being targeted only for early adopter developers. Rev. C boards (see below) will be available later under a different part number.

See below for hardware differences of the revisions. There are no software differences.

Revision A

There are some limited early revision Ax prototypes out there used by some hackers hanging around at #beagle channel on See errata for limitations.

Revision B

Revision B is same as revision A, except

  • fix for shorted LEDs 0/1
  • fix for wrong power jack pinout

Still has USB HOST (EHCI) failures. USB HOST (EHCI) connector isn't mounted.

Revision C

Revision C is same as revision B except:

  • USB HOST (EHCI) will be operation on revision C.
  • We are looking at replacing the HDMI connector with a DVI connector on revision C.

Note: Revision C is expected earliest at November 2008.

Beagle cases

Some nice cases for your BeagleBoard are available from Special Computing. See SketchUp 3D model if interested in 3D models from Beagle, too.


For quite detailed information about all BeagleBoard peripherals see BeagleBoard HW Reference Manual (rev. B5).

See BeagleBoard peripherals and adapters page for useful add ons for Beagle Board.


Depending on your JTAG tool, you'd need a 14-pin to 20-pin adapter to use an ARM debugger. The 14-pin TI JTAG connector is used on BeagleBoard and is supported by a large number of JTAG emulation products. See BeagleBoardJTAG for more information.


The pinout on the beagle board is "AT/Everex" or "IDC10". You can buy IDC10 to DB9M adapters in many places as they are commonly used for old PCs. Depending on your local configuration, you may need a 9-Pin NullModem cable to connect BeagleBoard to serial port of your PC.


There are two USB ports on the BeagleBoard, one with an EHCI controller and another with an OTG controller.


The HS (HighSpeed) USB ECHI controller on OMAP3 on BeagleBoard supports high-speed only. This simplifies the logic on the device. FS/LS (FullSpeed/LowSpeed) devices, such as keyboards and mice, require going through a HS hub.


The HS USB OTG (OnTheGo) controller on OMAP3 on the BeagleBoard does have support for all the USB 2.0 speeds (LS/FS/HS) and can act as either a host or a gadget/device. The HS USB OTG port is used as the default power input for the BeagleBoard. It is possible to boot the BeagleBoard using this USB port.

When using the OTG port in host mode, you must power the BeagleBoard using the +5V power jack. If you connect a USB hub, you'll probably also need external power for the USB hub as well, because according to the Hardware Reference manual the BeagleBoard OTG port only sources 100 mA. This is enough to drive a single low-power device, but probably won't work with multiple devices.

The Linux kernel needs to know you want to use the OTG port in host mode. I believe OTG ports are supposed to figure this out for themselves using the OTG Host Negotiation Protocol, but for now the Linux kernel may need some help. Specifically, Pin 4 (ID) of the OTG connector needs to be shorted to Pin 5 (GND) by using a 5-pin USB Mini-A plug which shorts these pins together in the plug. A 5-pin USB Mini-B plug leaves Pin 4 floating. Unfortunately, most USB Mini plugs are unmarked as to whether they are "A" or "B".


DVI-D connection on BeagleBoard uses a HDMI connector:

HDMI is backward-compatible with the single-link Digital Visual Interface carrying digital video (DVI-D or DVI-I, but not DVI-A) used on modern computer monitors and graphics cards. This means that a DVI-D source can drive a HDMI monitor, or vice versa, by means of a suitable adapter or cable, but the audio and remote control features of HDMI will not be available.

BeagleBoard can be connected to a DVI monitor using HDMI female to DVI male cable.


OMAP3 on BeagleBoard contains a BootRom. With this, BeagleBoard can boot without any code in permanent storage (NAND) or from peripherals. This is useful for first board bring up or if your BeagleBoard is bricked. For more information about BootRom booting see SPRUFD6.

User button

With user button on BeagleBoard you can configure boot order. Depending on this button, the order used to scan boot devices is changed. The boot order is (the first is the default boot source):

  • User button not pressed: NAND -> USB -> UART -> MMC
  • User button is pressed: USB -> UART -> MMC -> NAND

Technically speaking, the user button configures pin SYS.BOOT[5]. See SPRUFD6 for more details.

Serial and USB boot

Historically, using OMAP3's boot ROM for serial and USB boot, there are several tools around. The newest are Nishanth' OMAP U-Boot Utils, while there are still some older tools for serial boot and USB boot.

OMAP U-Boot Utils

Nishanth' OMAP U-Boot Utils provide

  • pserial - OMAP specific utility which downloads a file in response to ASIC ID over serial port.
  • pusb - OMAP specific utility which downloads a file in response to ASIC ID over USB connection.
  • ucmd - Send a command to U-Boot and wait till a specific match appears.
  • ukermit - Download a file from host without using kermit to U-Boot.

See Nishanth' blog and announce mail, too.

Serial boot

Besides Nishanth' OMAP U-Boot Utils, to boot from USB or UART, you need a PC tool which talks with OMAP BootRom and speaks the correct protocol to download ARM target code to BeagleBoard. Currently there are two older (experimental) tools for UART boot:

See USB and serial download target code for some example target code to be downloaded to OMAP3 on BeagleBoard.

USB boot

Besides Nishanth' OMAP U-Boot Utils, for USB boot, there is currently one (experimental) tool to boot BeagleBoard over USB:

See USB and serial download target code for some example target code to be downloaded to OMAP3 on BeagleBoard.

See USB recovery section how to use USB boot for board recovery.

NAND boot

See NAND boot article.

MMC/SD boot

Currently, boot the BeagleBoard with MMC/SD is the only working way for first board bring up.

MMC/SD formatting

As described in above MMC/SD boot description, you have to create a bootable partition on MMC/SD Card. This can be done using e.g. Windows or Linux tools.


See HP USB Disk Storage Format Tool 2.0.6 description on boot the BeagleBoard with MMC/SD page.


Please see OMAP3 MMC Boot Format.

Dual partition card

You can create a dual-partition card, booting from a FAT partition that can be read by the OMAP3 ROM bootloader and Windows, then utilizing an ext2 partition for the Linux root file system.

To mount second ext2 partition as root file system (e.g. containing contents of rd-ext2.bin) use kernel boot arguments (e.g. in uboot using setenv bootargs):

console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait

U-Boot booting

If your MMC/SD card formatting is correct and you put MLO, u-boot.bin and uImage on the card you should get a u-boot prompt after booting beagle board. E.g. (output from terminal program with 115200 8N1):

...40T.........XH.H.U�..Instruments X-Loader 1.41
Starting on with MMC
Reading boot sector

717948 Bytes Read from MMC
Starting OS Bootloader from MMC...

U-Boot 1.1.4 (Apr  2 2008 - 13:42:13)

OMAP3430-GP rev 2, CPU-OPP2 L3-133MHz
TI 3430Beagle 2.0 Version + mDDR (Boot ONND)
DRAM:  128 MB
Flash:  0 kB
NAND:256 MiB
In:    serial
Out:   serial
Err:   serial
Audio Tone on Speakers  ... complete

Using this u-boot prompt, you now can start kernel uImage stored on MMC card manually:

OMAP3 # mmcinit
OMAP3 # fatload mmc 0:1 0x80000000 uimage
OMAP3 # bootm

If you like to make that happen every boot:

OMAP3 # set bootcmd 'mmcinit ; fatload mmc 0:1 0x80000000 uimage ; bootm' ; saveenv


Code and binaries for BeagleBoard are available at various places.


BeagleBoard pre-built binaries and source code can be found at Beagle source code and downloads page. These are the locations where "official" TI code is available. Please note that this code is mainly for reference and testing. More up to date binaries and code is available by community. Community took (parts) of TI reference code, improves and updates it.

Actually, Koen's prebuilt Beagleboard demo images are up to date binaries including e17 as window manager, the abiword word processor, the gnumeric spreadsheet application, a NEON accelerated mplayer and the popular NEON accelerated omapfbplay which gives you fullscreen 720p decoding. The directory should contain all the files you need:

See the beagle wiki on how to setup your SD card to use all this goodness.


Besides above binary and source images (TI's and communities one), for various parts of Beagle software stack there are community supported git repositories available.


Steve did some work to consolidate and update X-Loader from various sources and put it in a X-Loader git repository. Get it by

git clone git:// xloader
cd xloader/


make distclean
make omap3530beagle_config

Result will be a ~20k sized x-load.bin in main directory.


Currently, Beagle community is working at getting U-Boot patches upstream to mainline U-Boot. While doing this, Steve set up a Beagle U-Boot git repository. Get it by:

git clone git:// u-boot_beagle
cd u-boot_beagle/
git checkout -b beagle test


make distclean
make omap3530beagle_config

Result will be a ~150k sized u-boot.bin in main directory.

Linux kernel

Git repository of OMAP Linux kernel contains Beagle support. Get it by:

git clone git://


make distclean
make omap3_beagle_defconfig
make uImage

The result will be a uImage in arch/arm/boot/ directory.

Experimental kernel patches and hacks

Some beagle developers maintain their own kernel experimental patches and hacks not ready for upstream:


TI OMAP3530 processor on BeagleBoard contains an ARM Cortex-A8 general purpose processor and a TMS320C64x+ DSP.

Cortex A8 ARM

CodeSourcery's ARM GNU/Linux tool chain 2007q3 version is recommended.

Note: A user reports that he found the use of CodeSourcery tool chain version 2007q1-21 and 2008q1-126 as strange. He has been using 2007q3-51 for a couple of months now.

Note: CodeSourcery 2008q1 has the following issues:

  • Vectorization + NEON is broken
  • building static binaries with cortex-a8 flag (or any ARMv7a core) is broken
  • some armv6 compilations end in ICE.

Next CodeSourcery release is "is scheduled for October".

Note: CodeSourcery 2007q3 has an issue with -Os option. There is a fix (needs recompilation)


ARM Cortex A8 used in OMAP3 on BeagleBoard supports NEON instruction set. Some information about this can be found in ARM's RealView Compilation Tools Assembler Guide and from GCC's ARM NEON Intrinsics.

For NEON optimized libraries see ARM Releases AAC, MP3, MPEG-4, H.264 and FFT OpenMAX DL Libraries, Highly Optimized for Cortex-A8/NEON and ARM11 Processors. Note: Read the EULA.

C64x+ DSP

A free C64x DSP compiler is available as Linux hosted C6x Code Generation Tools (TMS320C6000 C/C++ CODE GENERATION TOOLS 6.1.3 July 2008).

Note: my.TI account required. You may create an account here

Note: Old c6000 Linux compiler available on TI FTP site. Does NOT support c64x+ core in OMAP3 devices. Not recommended.

You can also utilize the full-CCS free evaluation tools for 120 days, but they currently require purchase to upgrade to service release 9 to support full JTAG debugging with supported JTAG hardware.

Board recovery

If you played e.g. with the contents of the NAND, it might happen that the Board doesn't boot any more (without pressing user button) due to broken NAND content. See BeagleBoard recovery article how to fix this.

Development environments

Instead of just using compiler + editor, you can use complete image create "development tool chains" which integrate compiler, build system, packaging tools etc. in one tool chain.


For OpenEmbedded (OE), there are some hints how to start with OE for BeagleBoard. See BeagleBoard and OpenEmbedded Git and OpenEmbedded getting started as well.

In the OE getting started document, for BeagleBoard replace MACHINE = "om-gta01" by MACHINE = "beagleboard". After confirming bitbake nano works, try bitbake console-image. The first time you run bitbake OE will download all the needed source and build the tool chain. This will take several hours. After all went fine, the output is in ${OE_ROOT}/tmp/deploy/glibc/images/beagleboard.

Note: Koen has some BeagleBoard source and binary images built with OE. There, Angstrom-console* images don't include an X server, you can still use a e.g. DVI-D screen with console, but you won't have a GUI. Angstrom-x11* images contain X server resulting in something like this.


The Eclipse C Development Tools Project provides a "fully functional C and C++ Integrated Development Environment (IDE) for the Eclipse platform". The Eclipse DSDP Target Managment Project provides a "Remote System Explorer" (RSE) plugin that simplifies downloading files to the BeagleBoard and editing files on the BeagleBoard within the Eclipse IDE. A Linux Target Agent is available as part of the Target Communications Framework (TCF) component. Info on how RSE is used for e.g. Gumstix development is described in this post.


Mamona is an embedded Linux distribution for ARM EABI. The main goal of the Mamona Project is to offer a completely open source alternative/experimental platform for Maemo using only free and open source components. Mamona 0.2 pre-release supports OMAP3430 Software Development Platform (SDP), so you can also use it at Beagle (OMAP3530), too. Work is being done to officially support Beagle.

Debian ARM

See Debian (ARM) installation guide how to install Debian (ARM) on BeagleBoard.

Ubuntu ARM

See Ubuntu (ARM) installation guide how to install Ubuntu (ARM) on BeagleBoard.

Software hints

This section collects hints, tips & tricks for various software components running on beagle.

Linux hints

See BeagleBoard Google wiki Linux hints page (for Linux WTBU (Wireless TI Business Unit) kernel 2.6.22). Currently featuring:

  • Switching video output between DVI-D and S-Video
  • Disabling framebuffer blanking
  • Listing USB devices


Avik posted a detailed step-by-step procedure to run lmbench on Beagle.

Mediaplayer (FFmpeg)

There is a thread how to get a mediaplayer with NEON optimization (FFmpeg) to run on Beagle. Includes compiler hints and patches.


When using the OpenEmbedded-based Angstrom image you have the following options of Java support:

  • JamVM + GNU Classpath (small vm, fast interpreter, J2SE-like)
  • Cacao + GNU Classpath (JIT compiler, J2SE-like)
  • PhoneME Advanced Foundation (JIT compiler, CDC)

Java support in OpenEmbedded/Angstrom (details) is provided voluntarily through Jalimo.

See a post at mailing list, too.

Graphics accelerator

OMAP3530 used on BeagleBoard contains a graphics accelerator (SGX) based on the SGX core from Imagination Technologies. PowerVR SGX530 is a new generation of programmable PowerVR graphics and video IP cores. Linux drivers haven't yet been released publicly. We expect the drivers to be publicly available by the end of 2008. Only the kernel portions will be open source. The PowerVR folks will provide binary user-space libraries. Some videos:


For BeagleBoard frequently asked questions (FAQ) see community FAQ and "official" FAQ.


Other OMAP boards