This page collects information about BeagleBoard.org's range of BeagleBone boards based on the TI Sitara AM335x, an application processor SoC containing an ARM Cortex-A8 core. The range currently consists of the original BeagleBone and the upgraded but lower cost BeagleBone Black.
Most features are common to the two models. The differences between them are described in each section under a BeagleBone Black subheading.
- 1 Events
- 2 Description
- 3 Specifications
- 4 Expansion Connectors
- 5 USB 2.0 Powered Hubs
- 6 Expansion Boards and Accessories
- 7 BeagleBone Operating Systems
- 8 Board recovery and Flashing Images on BeagleBone
- 9 Software Development
- 10 Building for BeagleBone
- 11 Kernel
- 12 FAQ
- 13 Projects
- 14 Links
- 15 Subpages
- ongoing 2009: Beagle Sponsored Project Program - add a cool project and get a free BeagleBoard to realize it!
The two models of BeagleBone share most features in common through employing only slightly different versions of the same TI Sitara SoC. In addition they both adhere to the same standard for expansion and interfacing through "cape" daughterboards.
The BeagleBone is a low-cost, high-expansion board from the BeagleBoard product line. It uses the TI AM3358/9 SoC based on an ARM Cortex-A8 processor core using the ARMv7-A architecture. It is similar in purpose to earlier BeagleBoards, and can be used either standalone or as a USB or Ethernet-connected expansion for a BeagleBoard or any other system. The BeagleBone is small even by BeagleBoard standards yet still provides much of the performance and capabilities of the larger BeagleBoards.
BeagleBone ships with a 4GB micro-SD card preloaded with the Angstrom ARM Linux distribution.
The board uses a TI TPS65217B PMIC to generate stable supply voltages regardless of input power variation. +5V DC power can be supplied to the BeagleBone through a barrel connector or from the mini-USB, both of which are located near the large RJ45 Ethernet connector.
The mini-USB type-A OTG/device client-mode socket is multi-functional. In addition to providing an alternative source of power, it gives access to an on-board front-end two-port USB client-side hub. (This is not related to the separate host-mode USB socket described later). One port of the hub goes directly to the USB0 port of the TI AM3358/9 SoC, while the other port connects to a dual-port FTDI FT2232H USB-to-serial converter to provide board-to-external-host serial communications and/or JTAG debugging. The BeagleBone's Linux serial console is available through this USB serial connection.
The SoC's USB0 connection to the front-end hub works in one of two modes, and you can toggle between them at any time: it either presents the SD card as a mountable USB storage device to the host, or it provides an Ethernet-over-USB networking interface which yields a simple method of quick-start. The Ethernet-over-USB facility is additional to the BeagleBone's normal 10/100 Ethernet interface, which is directly implemented in the SoC rather than hanging off USB as in some other designs. Full IPv4 and IPv6 networking is provided by the supplied Linux system out of the box.
In addition to the USB OTG Device or client-mode facilities already described, BeagleBone also provides one host-mode USB type-A socket on the other end of the board. This is driven from the USB1 connection on the AM3358/9 SoC, and provides access to USB host peripherals such as mice, keyboards, storage, and wifi or Bluetooth dongles, or a USB hub for further expansion.
On 23rd April 2013, Beagleboard officially announced BeagleBone Black at a price approximately half that of the original BeagleBone.
The new board's most important new features include a AM3359 SoC upgraded to 1GHz, doubling of memory to 512MB, use of faster DDR3 memory in contrast to the DDR2 of the original BeagleBone, and a new HDMI audio/visual output. (The original BeagleBone required an additional cape daughterboard for graphic output).
The two boards are very similar in those features provided directly by the SoC. Despite the original BeagleBone being specified as using "AM3358/9", in practice most boards are believed to have shipped with the AM3359 generic part. BeagleBone Black has therefore upgraded only the specific device selected from the AM3359 range, and hence the differences are few. In contrast, the boards have significantly different designs but a high degree of compatibility.
- Up to 720 MHz superscalar ARM Cortex-A8 AM3358/9
- 256 MB DDR2 RAM
- 10/100 Ethernet RJ45 socket, IPv4 and IPv6 networking
- MicroSD slot and 4GB microSD card supplied
- Preloaded with Angstrom ARM Linux Distribution
- Single USB 2.0 type A host port
- Dual USB hub on USB 2.0 type mini-A OTG device port
- On-board USB-to-serial/JTAG over one shared USB device port
- Storage-over-USB or Ethernet-over-USB on other USB device port
- Extensive I/O: 2 I2C, 5 UART, SPI, CAN, 66 GPIO, 8 PWM, 8 ADC
- +5V DC power from barrel connector or USB device port
- Power consumption of 300-500mA at 5V
- Two 46-pin 3.3-V peripheral headers with multiplexed LCD signals
- Board size: 3.4" × 2.1" (86.4mm x 53.3mm) -- fits in an Altoid tin
BeagleBone Black (differences)
- 1 GHz superscalar ARM Cortex-A8 AM3359
- 512 MB DDR3 RAM 800 MHZ
- On-board 4 GB eMMC flash, preloaded with Angstrom ARM Linux Distribution
- MicroSD slot for additional user data or operating systems (no card supplied)
- USB 2.0 type A host port
- Dedicated single mini-USB 2.0 client port (no additional 2-port hub)
- New micro-HDMI audio/visual output
- USB-to-serial and USB-to-JTAG interfaces removed (available on expansion headers)
- Power expansion header for backlight removed, battery charging moved onto pads
- Lower power consumption of 210-460 mA at 5V
The BeagleBone provides two 46-pin dual-row expansion connectors "P9" and "P8" which are also known as "Expansion A" and "Expansion B", respectively. The location and pinout of these connectors is illustrated below (click tables to enlarge). All signals on expansion headers are 3.3V except where indicated otherwise.
P9 and P8 - Each 2x23 pins
In addition to the two large headers above, a small 10-pin dual-row connector "P6" provides a "PMIC Expansion" that brings out some additional signals from the TPS65217B Power Management IC, using the following pinout:
P6 - 2x5 pins
NB. P6 is not available on BeagleBone Black
This diagram of P6 provides an UNDERSIDE PINOUT view.
It is therefore laterally inverted relative to the photograph.
To obtain the top-side pinout that corresponds to the physical orientation shown in the photograph, swap the two rows of pins so that odd-numbered pins are on the left of even-numbered pins.
USB 2.0 Powered Hubs
USB 2.0 Powered Hub connects multiple USB devices i.e. Keyboard , Mouse ,etc to the Single USB Host Port on the BBB Device. The Advantage a Powered USB Hub provide VS USB Port is the Power draw available for device connected to the Hub.
- Expanded Hub Features
- 4 Port Powered USB 2.0 Hub
- Plug and Play
- includes Micro USB Cable
- Includes Power Adaptor which is Made In China and provides 5V 2.6A Power Supply
- lsusb Info - ID 05e3:0608 Genesys Logic Inc. USB-2.0 4-Port Hub
- NO LED Indicator for Activity / Plugged In Display
- Packaging indicates Part # - F4U040SA
- Packaging does not mention Linux Kernel compatibility OR Power in Amps provided by the Hub
- Packaging indicates compatibility with Windows 7 & Mac OS 9.2 and Above
Expansion Boards and Accessories
A BeagleBone Cape is an expansion board which can be plugged into the BeagleBone's two 46-pin dual-row Expansion Headers and which in turns provides similar headers onto which further capes can be stacked. Up to four capes at a time can be stacked on top of a BeagleBone. An expansion board which can be fitted only at the top of a stack of capes (usually for physical reasons) is a special case of "cape", but this usage is common for display expansion boards such as LCDs (see next section).
Capes are required to provide a 32Kbyte I2C-addressed EEPROM which holds board information such as board name, serial number and revision, although this is typically omitted on simple prototyping capes. Capes are also expected to provide a 2-position DIP switch to select their address in the stack, although this too is often omitted in prototyping capes.
This section lists only those capes which are available commercially or which are close to a production release, as well as open hardware designs.
- CircuitCo BeagleBone DVI D Cape
- CircuitCo BeagleBone Breadboard cape
- CircuitCo BeagleBone Breakout cape
- CircuitCo BeagleBone CANBus cape
- CircuitCo BeagleBone RS232 cape
- CircuitCo BeagleBone Battery cape
- Chipsee - BeagleBone Black Expansion Capacitive
- Chipsee - BeagleBone Black Expansion Resistive
- Adafruit Proto Cape kit for BeagleBone
- TowerTech TT3201 Multi-Channel CAN Cape
- Special Computing Spartan-3A FPGA cape for BeagleBone -- in development
- Thinking Machines LCD-IO Expansion Cape -- in development
- Open Source BeagleBone Prototyping Board -- piranha32 GitHub repository
- Embest BeagleBone HDMI cape
- Logic Supply BeagleBone Proto Cape
- Logic Supply BeagleBone EE Proto Cape
- Logic Supply BeagleBone XBee Proto Cape
- Logic Supply BeagleBone Serial/RS232/CAN/RS485 Cape
- Logic Supply BeagleBone TTL-RS232 Micro Cape
- Logic Supply BeagleBone DUAL Relay plus IO Cape
- DMCC (Dual Motor Controller Cape) for DC brushed motors
- TIGAL - BeagleBone Proto Cape
- mikroBUS Cape
- Mikronauts - EZasBone BeagleBone / BeagleBone Black stacking Prototyping Cape
These USB Wifi modules have been tested and validated to work with the BeagleBone Black.
- Logic Supply UWN100 Compact USB Wifi Module
- Logic Supply UWN200 Compact USB Wifi Module with Antenna
- D-Link DWA-121 (Version A1) Wireless N 150 Pico [Realtek RTL8188CUS] works out-of-the-box with Arch Linux (3.12.1)
See here for how to use the I2S interface for audio. It includes a complete schematic for building a DAC.
Battery Power, Charging and Power Management
The BeagleBone Black has a built-in power management IC (PMIC) which generates and controls all of the voltage levels used by the board. The PMIC contains Li-Po / Li-Ion battery charging capability which means that it is extremely simple (and low cost) to enable portable use. There is also a built-in push-button on the BBB which can be used to soft power on/power off the board. See this link for information.
Intelligent Power Switch
The Pi Supply Switch v1.1 was originally designed for use as an automatic on off power supply switch for the Raspberry Pi which includes on, off and soft shutdown switches. The soft shutdown switch is fully programmable using software on the Pi to control the GPIO.
However the Pi Supply Switch v1.1 is also compatible with BeagleBone boards (both the classic and black) as well as the OLIMEX A13-OLINUXINO single board computer.
A very useful add on to help you manage power on your BeagleBone.
PowerBar "Micro Cape"
The PowerBar is a power supply micro cape for the BeagleBone Black and White. It sports a buck/boost regulator designed to provide 5V power from almost any battery source (3VDC to 14VDC). Project files are available to build your own or you can purchase one from AndiceLabs.
PowerCape LiPo Supply and Charger
The PowerCape uses the same regulator as the PowerBar but adds a LiPo charging circuit and AVR power supervisor in a full cape format. It can power the BeagleBone from a DC source, a LiPo battery, or a combination of both allowing for use cases such as an integrated UPS, solar-powered node, car computer, etc. Applications can monitor battery voltage and current via an INA219 on the battery input and can schedule BeagleBone power-up conditions and/or timeout via the AVR.
LCD Displays and Other Expansions
LCD displays for the BeagleBone are typically implemented as capes which plug in as the top board in a stack of capes, for reasons of visibility. Such displays are often larger than the BeagleBone itself, so the normal physical relationship in which a daughterboard is smaller than its host board is inverted. In this arrangement it is the expansion board that provides the physical support for the BeagleBone.
- Using 24 bits per pixel LCD interface wiki page
- NAXING Electronics BeadaFrame with BeagleBone companion board
- Expanded Hardware Features:
- 7" 800x480 TFT LCD screen
- PWM Backlight control
- Resistive touch panel
- Plastic frame
- 256MB Nand flash(K9F2G08)
- RS232 serial ports(UART1 w/ CTS&RTS)
- Stereo audio out
- Micro-phone in
- 6 x USER buttons
- PWM Beeper
- RTC with Battery(DS1302)
- 3.5" TFT LCD screen, resolution 320x240, 4-wire resistive touchscreen, seven buttons at finger-friendly positions.
- 4" TFT LCD screen, resolution 480x272, 4-wire resistive touchscreen, seven buttons at finger-friendly positions.
- 7" TFT LCD screen, resolution 800x480, 4-wire resistive touchscreen, rear mount for BeagleBone and capes.
- A very low cost LCD implementation for the BeagleBone Black using the PRU-ICSS is here. It requires a graphics library to be written; currently it just displays a couple of lines on the screen.
- ChipSee BBB-EXP-C BeagleBone Black 7 inch LCD cape and expansion I/O
- 7" LCD screen, resolution 1024*600, 5 point Capacitive touchscreen, 5 user keys, audio in/out, RS232/485/CAN, 3 axis accelerometer. Available at Logic Supply US and Logic Supply EU.
- 4.3" TFT LCD screen, resolution 480x272, available in non-touch and 4-wire resistive touchscreen versions, with seven buttons.
- 7.0" TFT LCD screen, resolution 800x480, 4-wire resistive touchscreen, with seven buttons and rear mount for an additional cape.
- A compact color OLED graphic display (source code and schematic) are available here. It includes a simple library for text and some primitives.
- Adafruit Bone Box - Enclosure for Beagle Bone
- An Altoids Tin - Beaglebone Black fits very nicely inside a regular sized Altoids tin
- SK Pang Acrylic Cover for BeagleBone
- Special Computing Bone Acrylic Case
- canadaduane's 3D-printable BeagleBone Case design
- NinjaBlock's 3D-printable Beaglebone front panel design
- builttospec's laser-cut design for BeagleBone Enclosure with DVI Cape
- Built to Spec BeagleBone Case Update, and final product
- Phenoptix (UK) BeagleBone Black clip-together enclosure
- BeagleBone Black Compact Metal Enclosure in Black - Logic Supply US Logic Supply EU. Open Source design available on GitHub
- BeagleBone Black Compact Metal Enclosure in Orange - Logic Supply US Logic Supply EU
- Hammond Manufacturing has cases for the BeagleBone Black and White available from distributors such as Mouser and DigiKey.
BeagleBone Operating Systems
Board recovery and Flashing Images on BeagleBone
- See AM335x_recovery
- See BeagleBoardRecovery --- (*) Check applicability
- See Cloning Customized Beagles for pointers on how to put a clone images across BeagleBone
Software development on the BeagleBone is normally no different to any other Linux platform, and typically varies with language and with the IDE used, if any. This section deals only with development issues that are specific to BeagleBone, or mostly so.
Cloud9 IDE and Bonescript
..... description here .....
Dart and BeagleBone
Directions for installing Dart on Beaglebone
BeagleBone JTAG Debugging
..... description here .....
The BeagleBone White is the developers paradise in terms of debugging. You just need to plug a single usb connector to get a serial + JTAG. There is the openocd package with basic support for the Cortex-A8 read BeagleBoardOpenOCD but if you want to get some work done you are probably better of using Code Composer Studio. Here is a video about using Code Composer Studio on the BeagleBone White MINIX3 on ARM : BeagleBone White && Code Composer studio debug
Using Netbeans to remotely compile and debug C/C++
When developing c/c++ on a linux desktop, a toolchain is available for cross-compiling the code for arm. However no such toolchain is readily available for windows. Netbeans can be used to write the code on your desktop, save it in a location accessible to the beagle, and then automatically compile it on the beagle itself using ssh and the built in compiler on the beaglebone's OS.
Netbeans can also use GDB for remote debugging over ssh.
- Set up a samba / smb network share through which code can be shared between both desktop and beagle
- Give netbeans the SSh login details of the beagle
- Give netbeans the path mapping so it can translate between the desktop code folder and beagle code folder
- Setup only takes a few minutes.
- Download Netbeans (Windows/Linux/OS-X/Solaris): http://www.netbeans.org/
- Example tutorial on setting this up: http://mechomaniac.com/BeagleboardDevelopmentWithNetbeans
BlackLib library is written for controlling Beaglebone Black's feature with C++. It is created for reading analog input, generating pwm signal, using gpio pins, and communicating with other devices over uart, spi and i2c. In addition to them, it includes debugging feature. So you can check errors after call any function in the library. It also takes parallel programming, mutex usability, realization of directory operation and realization of time operation ability with the last update(BlackLiv v3.0).
- GitHub repository: https://github.com/yigityuce/BlackLib
- Sourceforge repository: http://sourceforge.net/projects/blacklib/
- Library documentation: http://blacklib.yigityuce.com/annotated.html
- Library webpage: http://blacklib.yigityuce.com/index.html
Building for BeagleBone
To know how to build u-Boot, Kernel and other softwares see http://elinux.org/Building_for_BeagleBone
Getting the Right Kernel
The modern BeagleBone kernels are Maintained by Koen Kooi and are available on the 3.8 branch at https://github.com/beagleboard/kernel/tree/3.8 . This repo contains a set of patches and a script which downloads a mainline kernel and then patches it appropriately. Exact steps for building it are in the README.
Step-by-step guide to building a BBB kernel
There is a step-by-step guide to building a BeagleBone Black (BBB) kernel at http://elinux.org/Building_BBB_Kernel
The 3.5 and newer BeagleBone kernels make use of Device Tree. A Device Tree is a text file which describes the layout of a machine, commonly the combination of a system-on-chip (SoC) and a board, so that the kernel can know at what addresses and on which buses hardware is located. The BeagleBone kernels make use of an extension called Capemgr which allows dynamic loading and unloading of device tree fragments both at compile time and from userspace post-boot. Learning about the Device Tree is very essential, if you wish to be able to manipulate pins and be able to use them as inputs/outputs. There is a short guide to it here (part-way down the page). In a nutshell, the device tree can be manipulated by creating a text 'fragment' file that can be converted into a .dtbo file using a program called dtc which is already installed on the BeagleBone Black. The .dtbo file can then be installed and uninstalled as desired. The procedures to install and uninstall are at that link:
echo cape-bone-name > $SLOTS to install, and
echo -<slotnum> > $SLOTS to uninstall, but read through the web page and comments section first to see what $SLOT is set to).
Home site and Community
- beagleboard.org -- home for BeagleBoard and BeagleBone products
- BeagleBone Black -- manufacturer's page for the second BeagleBone board
- irc://irc.freenode.net/#beagle -- official combined IRC channel
- Google Groups forums/mailing list -- English, Japan, Brasil, Turkey
- BeagleBoard and BeagleBone projects list
- Capes Registry and its registration page
- BeagleBone articles at Adafruit blog -- products, projects and tutorials
- Use Google to search beagleboard.org (including IRC logs) using site:beagleboard.org <search term>
- Linux.com report on BeagleBone Black -- with words from beagleBoard.org's cofounder Jason Kridner
- github.com/selsinork/beaglebone-black-pinmux -- pinmux data for BeagleBone Black, including extraction scripts
- Element 14 knode blog: Working with the PRU-ICSS -- detailed tutorial on starting with the PRU on BBB
- BBB, NEON and making Tintin bigger - introduction to using NEON on the BBB
- BeagleFu -- BeagleBone/Board Community, News and Projects.
Tutorials and Videos
- HowTo for Using 24-bit LCD panels
- Workshops, Tutorials, Simple Projects Learn Today-Build Tomorrow -- by Logic Supply
- BeagleBone Intro, video by Jason Kridner, Texas Instruments
- How-To: Get Started with the BeagleBone, video by Matt Richardson, MakeMagazine
- The Beaglebone - Unboxing, Introduction Tutorial and First Example, video by Derek Molloy, DCU/EE
- Beaglebone: C/C++ Programming Introduction for ARM Embedded Linux Development using Eclipse, video by Derek Molloy, DCU/EE
- Beaglebone: GPIO Programming on ARM Embedded Linux, video by Derek Molloy, DCU/EE
- C code for GPIO polling, sample code by Andrew Montag
- First steps with the Beaglebone, introductory HOWTO by octavio at borderhack
- Adafruit Learning System - BeagleBone -- web page
- BeagleBone: Tutorials, by Derek Molloy
- Beaglebone Video Monitor Configuring from scratch as video monitor with I2C and custom kernel
Manuals and resources
- BeagleBone System Reference Manual (rev. A3_1.0)
- Texas Instruments - Sitara AM335x ARM Cortex-A8 Microprocessor overview
- Texas Instruments - AM3359 Sitara ARM Cortex-A8 Microprocessor full documentation
- ARM/ARMv7-AR Architecture -- ARM Cortex-A8 architecture overview
- ARM Cortex-A8 Technical Reference Manual r2p1
- ARM Cortex-A Development Platforms -- ARM page on Beagle boards
- TI TPS65217 Power Management IC, TPS65217 PMIC datasheet
- FTDI FT2232H Hi-Speed Dual USB UART/FIFO IC overview, FT2232H datasheet
- Linux-USB Gadget API Framework and USB OTG, and kernel config -- Ethernet-over-USB
- Beaglebone and the 3.8 Kernel Details about the 3.8 Kernel, its use of DT and the capemanager.
- SolidWorks 3D model of the BeagleBone Black on GitHub, includes 3D PDF.
- Notes and how-to guides on using the BeagleBone Black as a web-server on GitHub.