Hands on with the BeagleBone Black development board
Earlier this summer, a new development board hit the market that has proven itself to be a worthy contender against the legendary Raspberry Pi. The BeagleBone Black arrived on the scene back in April, and was met with great fanfare as it provided similar functionality to the Raspberry Pi, but with a much more powerful processor, faster RAM, and several times the GPIO ports.
Naturally, when I first heard of the BeagleBone Black's existence, I knew that I had to have one. Unfortunately, my BeagleBone Black arrived at the same time life caught up with me and it sat on my workbench for a few months. Today, I finally get to sit down and introduce you to the BeagleBone Black.
The BeagleBone Black features some pretty powerful hardware that is packed into a tiny, credit card-sized package. Sporting an ARM Cortex A8 processor that is clocked at 1GHz, and 512MB of DDR3 RAM to keep things running nice and smooth, this little microcomputer development board is one of the most feature-packed hobbyist level development boards of all time. Additional features include 2GB of on-board 8-bit eMMC NAND flash memory, two PRU 32-bit microcontrollers, and an on-board USB controller that provides power, connectivity, and networking through the mini-USB port.
The BeagleBone Black also features a 10/100 Ethernet connection, PMIC, serial debugging headers, and onboard HDMI output. One of the biggest features on the board, however, are the very prominent double row headers that are stacked on each side of the PCB. These headers house 96 GPIO (General Purpose Input/Output) pins, which can be used to do just about anything you can imagine. Finally, the absolute coolest feature is the Black's ability to run Linux or Android straight out of the box. In fact, the Black ships with Angstrom Linux from the factory with Node.js pre-installed, and thanks to the USB network connectivity and Cloud9 IDE, you can be up and running within minutes of plugging in a single USB cable.
The BeagleBone Black arrives in a pretty plain package, which bears the usual product images, logos, and a cute graphic of a beagle in a black tuxedo. The kit appears to be manufactured in the USA by Circuitco, a PCB manufacturing house. Circuitco has posted a neat video showing the assembly process, which can be found here.
Upon opening the box, we find the BeagleBone Black, a USB cable, and a useful "Getting Started" card. The Black comes sealed in an anti-static package that protects it from any accidental static electricity discharges.
BeagleBoard.org includes this handy little "Getting Started" card which walks you through the setup process, something we will cover more in-depth in a little bit. Much like the Google Chromecast I recently reviewed, setting up the BeagleBone Black is about a simple as it gets.
Upon inspecting the BeagleBone Black a little closer, we can see that this is nothing like the Arduino you have in your workbench drawer. The Black is a sophisticated piece of hardware, and rightfully so as it is a fully functioning Linux PC that has been shrunken down to the size of a credit card.
Flipping it over, we can see even more of the minute and almost microscopic SMD mount components that make the Black tick. Here we can also see the micro-SD slot, the Mini USB, and Micro HDMI connectors as well.
Let's flip the BeagleBone Black back over and take a look at some of the major components that make it such a great board. You will first notice the large 1GHz Sitara AM3358 microprocessor from Texas Instruments with the 512MB DDR3 DRAM chip from Micron. Also visible is the 2GB NAND flash memory chip from Micron. A USB host port, serial debug headers, boot button and reset button are also notable features. On the next page we will dig a little deeper into each of these devices and learn a little more about them.
The hardware featured on the BeagleBone Black is not like the hardware on your every day average hobbyist development board, and this is because the Black is much more than just a development board. Capable of running Linux, Android, Free BSD, and even QNX, the Black has been developed to fill a need in the market where developers want a native OS, along with a ton of I/O and features that will let them take their projects to the next level.
Processor - For its initial release, the board I have uses the Sitara XAM3359AZCZ processor in the 15x15 package. This is basically the same processor as used on the original BeagleBone. It is based on ARM Cortex A8 architecture, and uses the updated 2.0 revision with several fixes on this new processor as opposed to the original BeagleBone.
Eventually the board will move to the Sitara AM3358BZCZ100 device once it is released and readily available from TI. At this time, we do not have a date when this will happen. We do not expect any benefit from moving to this processor and there should be no impact seen as a result of making this move.
512MB DDR3L - A single 256MB x16 DDR3L 4Gb (512MB) memory device is used. The memory used is the MT41K256M16HA-125 from Micron, which will operate at a clock frequency of 400MHz, yielding an effective rate of 800MHz on the DDR3L bus, allowing for 1.6Gb/s of DDR3L memory bandwidth. The use of DDR3 DRAM provides a great performance increase over the RAM used on the Raspberry Pi.
32KB EEPROM - A single 32KB EEPROM is provided on the Sitara XAM3359AZCZ that holds the board information. This information includes board name, serial number, and revision information. This is the same as found on the original BeagleBone. It also has a test point to allow the device to be programmed and otherwise to provide write protection when not grounded.
2GB Embedded MMC - A single 2GB embedded eMMC device is on the board. The device connects to the MMC1 port of the processor, allowing for 8-bit wide access. Default boot mode for the board will be MMC1 with an option to change it to MMC0, the SD card slot, for booting from the SD card as a result of removing and reapplying the power to the board.
Simply pressing the reset button will not change the boot mode. MMC0 cannot be used in 8-bit mode because the lower data pins are located on the pins used by the Ethernet port. This does not interfere with SD card operation, but it does make it unsuitable for use as an eMMC port if the 8-bit feature is needed.
MicroSD Connector - The board is equipped with a single microSD connector to act as the secondary boot source for the board, and if selected as such, can be the primary boot source. The connector will support larger capacity SD cards, though no SD cards are provided with the board. Booting from MMC0 will be used to flash the eMMC in the production environment or can be used by the user to update as needed. The Black supports up to class 10 SD cards, with support for up to 64GB capacities.
As mentioned earlier, there are four boot modes:
- eMMC Boot - This is the default boot mode and will allow for the fastest boot time and will enable the board to boot out of the box using the pre-flashed OS image without having to purchase an SD card or an SD card writer.
- SD Boot - This mode will boot from the microSD slot. This mode can be used to override what is on the eMMC device and can be used to program the eMMC when used in the manufacturing process or for field updates.
- Serial Boot - This mode will use the serial port to allow downloading of the software direct. A separate USB to serial cable is required to use this port.
- USB Boot - This mode supports booting over the USB port.
The included boot switch allows for switching between the modes.
- Holding the boot switch down during a removal and reapplication of power without a SD card inserted will force the boot source to be the USB port and if nothing is detected on the USB client port, it will go to the serial port for download.
- Without holding the switch, the board will try to boot from the eMMC. If it is empty, then it will try booting from the microSD slot, followed by the serial port, and then the USB port.
- If you hold the boot switch down during the removal and reapplication of power to the board, and you have a microSD card inserted with a bootable image, the board will boot from the uSD card.
PC USB Interface - The board has a miniUSB connector that connects the USB0 port to the processor. This is the same connector as used on the original BeagleBone.
Serial Debug Port - Serial debug is provided via UART0 on the processor via a single 1x6 pin header. In order to use the interface, a USB to TTL adapter will be required. Signals supported are TX and RX.
USB1 Host Port - On the board is a single USB Type A female connector with full LS/FS/HS Host support that connects to USB1 on the processor. The port can provide power on/off control and up to 500mA of current at 5V. Under USB power, the board will not be able to supply the full 500mA, but should be sufficient to supply enough current for a lower power USB device supplying power between 50 to 100mA. You can use a wireless keyboard/mouse configuration or you can add a HUB for standard keyboard and mouse interfacing.
Power Sources - The board requires a low ripple 5V power source, and can be powered from four different sources:
- USB port on a PC.
- 5VDC 1A power supply plugged into the DC connector.
- A power supply with a USB connector.
- Expansion connectors.
Reset Button - When pressed and released, this causes a reset of the board. The reset button used on the BeagleBone Black is a little larger than the one used on the original BeagleBone. It has also been moved out to the edge of the board so that it is more accessible.
Power Button - Normally, a power button is nothing to spend much time on, but the power button on the Black is able to do several things. The button is located near the reset button, close to the Ethernet connector. This button takes advantage of the input to the PMIC for power down features. While a lot of capes (shields for the BeagleBoard system) have a button, BeagleBoard.org decided to add this feature to the board to insure everyone has access to some new features including:
- Interrupt is sent to the processor to facilitate an orderly shutdown to save files and to un-mount drives.
- Provides ability to let processor put board into a sleep mode to save power.
- Can alert processor to wake up from sleep mode and restore state before sleep was entered.
- Allows board to enter the sleep mode, preserving the RTC clock.
If you hold the button down longer than eight seconds, the board will power off, if you release the button when the power LED turns off. If you continue to hold it, the board will power back up completing a power cycle.
LED Indicators - There are a total of five blue LEDs on the board, these include:
- One blue power LED indicates that power is applied and the power management IC is up. If this LED flashes when applying power, it means that an excess current flow was detected and the PMIC has shut down.
- Four blue LEDs that can be controlled via the software by setting GPIO pins.
In addition, there are two LEDs on the RJ45 to provide Ethernet status indication. One is yellow, which indicates a100M Link up is present, and the other is green, which indicates data traffic when flashing. This is the same system used on Ethernet jacks everywhere.
CTI JTAG Header - A place for an optional 20-pin CTI JTAG header is provided on the board to facilitate the SW development and debugging of the board by using various JTAG emulators - this header is not supplied with the board. To use this, a simple connector will need to be soldered onto the board.
If you need the JTAG connector, you can solder it on yourself, no other components are needed. BeagleBoard.org says that the connector is made by Samtec and the part number is FTR-110-03-G-D-06 and can be purchased from Digikey.
HDMI Interface - A single HDMI interface is connected to the 16-bit LCD interface on the processor. The 16-bit interface was used to preserve as many expansion pins as possible to be used by the user. The NXP TDA19988BHN is used to convert the LCD interface to HDMI and convert the audio as well. The signals are still connected to the expansion headers to enable the use of LCD expansion boards or access to other functions on the board as needed.
The HDMI device does not support HDCP copy protection. Support is provided via EDID to allow the software to identify the compatible resolutions. This is where the Raspberry Pi outshines the BeagleBone Black as it supports full 1080p resolution at 30 frames per second. Currently the following resolutions are supported via the Black's software:
- 1280 x 1024
- 1440 x 900
- 1024 x 768
- 1280 x 720
Setup and Use
Getting started using the BeagleBone Black is much easier than any other development board that I have ever used. Getting up and running is as simple as following three easy steps.
Step 1: Plug in a USB cable to the device. This will power up the board and once it runs through its boot process, you'll see the PWR LED steadily lit. Within 10 seconds, you should see the other LED's blinking in their default configurations. If everything looks to be in order, then you can move on to the next step.
- USR0 is configured at boot to blink in a heartbeat pattern.
- USR1 is configured at boot to light during microSD card accesses.
- USR2 is configured at boot to light during CPU activity.
- USR3 is configured at boot to light during eMMC accesses.
Step 2: Install the needed drivers. Head over to this link to download the correct drivers for your operating system. Currently support for Windows X86 and X64, Mac OS X and Linux is available, which makes the BeagleBone Black a true cross compatible development board. In the event you need FTDI USB to JTAG drivers, you can find them here. Likewise, USB to virtual Ethernet drivers for Linux can be found here and here.
Step 3: Use your PC's browser to browse your BeagleBone Black. Using either Chrome or Firefox, you will need to navigate to http://192.168.7.2. This will load BeagleBone 101, the internal user interface for your BeagleBone Black. Unfortunately, this interface is only reachable using Chrome or Firefox, as Internet Explorer has issues with USB virtual Ethernet connections. Look on the bright side though, this is a perfect reason to ditch Internet Explorer, forever. :)
The BoneScript library runs in Node.js. You can run it directly on the board using the 'node' interpreter or the Cloud9 IDE that invokes the 'node' interpreter. You can also run it using the bonescript.js script within your browser via remote procedure calls using Socket.io and served up by the web server running on your BeagleBoard. Access to the library functions is provided through the "require('bonescript')" function call. The call returns an object containing all of the functions and constants exported by the library. The Node.js API documentation on modules provides more information on the usage of 'require' within the 'node' interpreter.
The free version is more than enough for a single BeagleBone Black. Cloud9 IDE also features easy-to-use plugins for the most popular repository services on the internet including Github, Bitbucket, Windows Azure, Open Shift, and more.
The BoneScript Library provides several functions that are useful for interacting with your hardware.
You can quickly test this functionality by running the following Bone Script on the BeagleBone 101 page.
var b = require('bonescript');
I am going to limit my coding for this review, but if you would like to see further examples, tutorials, or information on the BeagleBone Black, please do not hesitate to let me know via a comment on this article, or by emailing me directly.
While I am a major fan of the Raspberry Pi, I do at times find its limited GPIO availability somewhat of a letdown - this is where the BeagleBone Black really steps up and shines. With a total of 96 GPIO pins, there is enough I/O to connect anything one might need for a robotics project, lighting sequencer, or even a web server. With the ability to run Linux, Android, and many other operating systems, the BeagleBone Black makes for a formidable and flexible micro-PC. Its processor is more powerful than the Raspberry Pi, and its 2GB of on-board NAND flash makes it a clear winner in terms of storage flexibility.
Unfortunately with a limited resolution of just 1280x1024, the Raspberry Pi wins the battle for best micro-PC to use as a media streaming device. The Black is also lacking in terms of an analogue audio out port, as well as the built-in camera bus featured on the Pi. Honestly though, I do not know if these are major issues or not, as there are many "Capes" on the market that can easily add this functionality to the Black.
If you are not worried about video resolution, cameras, or analogue audio, and care more about how much processing power the board has, then the BeagleBone Black is the superior choice. As I mentioned, the 96 GPIO pins weigh heavily as the boards most attractive feature, as does its established Cape expansion board support. There are hundreds of Capes on the market that can be adapted to do just about anything an enterprising maker can think of.
While there are dedicated accessories in abundance for the Raspberry Pi and Arduino Due boards, the BeagleBone Black is beginning to see its accessory market grow. Logic Supply makes an excellent all metal chassis for the Black that is powder coated black or orange, and allows you to completely enclose the board in a robust case that will prevent damage and theft if mounted using the supplied mounting points.
Best of all, this case costs just $15 and fits the Black perfectly. Additionally, educational books such as "Bad to the Bone," by Steven F. Barrett and Jason Kridner, which is one of the best written development board books I have ever read.
Until the Raspberry Pi Foundation releases the next generation Raspberry Pi, I am going to have to declare the BeagleBone Black the winner by a very small margin in the micro-PC wars. When you break it down, each board has its purpose, and with them being cheap enough, ($45 for the BeagleBone Black, and $35 for the Raspberry Pi Model B), you can keep several of them on your workbench for prototyping, developing, and general use.
I have six Raspberry Pi boards now and will be picking up a few more BeagleBone Blacks in the coming weeks for an upcoming project.
PRICING: You can find products similar to this one for sale below.
United States: Find other tech and computer products like this over at Amazon.com
United Kingdom: Find other tech and computer products like this over at Amazon.co.uk
Australia: Find other tech and computer products like this over at Amazon.com.au
Canada: Find other tech and computer products like this over at Amazon.ca
Deutschland: Finde andere Technik- und Computerprodukte wie dieses auf Amazon.de