Beagleboard and Beaglebone are two related single board computers with open sourced hardware that have seen considerable growth in recent years. What started as a hobbyist product to showcase a particular chip has grown into a very versatile ARM based single board computer development platform capable of running different breeds of Linux including Android.
This is one of the not so often seen cases in the hardware world where open source really means what it is supposed to mean. All design documentation is freely available under open source licenses and can be used for further development. This is the way how a few other single board computers based on the original beagleboard have come into existence. PandaBoard and IGEPV2 being two of them.
The original BeagleBoard was developed as a low cost single board computer developed for hobbyist market to demonstrate the possibilities of Texas Instruments' OMAP 3530 system on a chip that has an ARM Cortex A8 processing unit. Although it is not a robotics specific product, it can be utilized for robotics purposes using the provided expansion header.
As it's based on an ARM processor (the stuff that most likely runs your smartphone, smart TV, etc.), it is possible to run operating systems that support this architecture - Windows CE, Linux and Symbian. However, Linux implementations are better supported through the community. Especially Angstrom Linux.
So, revision D BeagleBoard has a 720 Mhz TI OMAP 3530 processing unit (with ARM Cortex A8 core), 256 MB RAM memory as well as 4GB (512 MB) NAND memory. To interface it with different devices it has DVI-D, S-Video, Stereo In/Out, USB OTG and USB Host ports as well as an RS 232 header and an SD/MMC card slot.
So, what to do if you'd like to use this single board computer for your robotics needs? As you see, the initial possibilities seem quite limited as only RS 232 (which is available as a header) and USB seem relevant to our purposes. Still, you need not worry about it much. As I mentioned earlier, the board also has a 28-pin expansion header that can be used for GPIO, I2C, SPI, UART and other applications.
Apart from that there are two LCD headers that can prove to be quite handy too. These can be used either as intended to connect an LCD display, or as GPIOs. The best way how to use these expansion possibilities would be to create a custom expansion board for your needs. This approach was used in the BeagleBot project. You can find project details as well as schematics of the expansion board at the BeagleBot project's website. Or just get one of the beaglebones and find a cape that suits your needs. (What?) Read on!
The Beagleboard XM came as the next iteration in the Beagles’ family. Although the previous model’s DNA can clearly be seen in this one, after listening to suggestions from the community some notable changes were made to the original design resulting in a slight price increase.
First and foremost the XM edition uses a different processor - an ARM Cortex A8 based TI DM3730 running at 1 GHz with 512MB DDR RAM. This processor is pretty much the next generation of the one used in the original Beagleboard with increased graphics accelerator frequency among other upgrades.
The XM doesn’t include an onboard NAND memory. It ships with a 4GB microSD card with ready to use Angstrom Linux preloaded instead. Other changes include 4 USB host ports instead of 1, a DB9 serial port instead of a naked header, populated LCD header, populated expansion header, as well as addition of an auxiliary expansion header that adds a few more interfacing capabilities.
Last but not least notable change is the addition of a camera header. The camera header is configured to be used with a Leopard Imaging Camera module. There is even a beagleboard fork called LeopardBoard that comes together with the camera module. With these additions the XM version has become a bit more usable for robotics applications then the original Beagleboard, especially if image processing is considered.
If XM is more or less an upgrade to the original Beagleboard, then Beaglebone starts a separate model line. It is a credit card sized ARM Cortex A8 based single board computer with extensive interfacing capabilities through a large expansion header.
Beaglebones have TI AM335x series’ processors capable of running at 720 MHz when powered from DC input and at 500 MHz when powered from USB. RAM is 256 MB DDR2 running at 400 Mhz. The dual input power path is achieved using a power management IC that also provides Li-ion or Li-Po battery charging capabilities.
There are also a USB client as well as USB host ports, an Ethernet connector and a microSD connector. Just as XM, the beaglebone ships with a 4GB microSD card with Angstrom Linux preinstalled.
Now the part where this single board computer really shines comes. The expansion possibilities of the board are quite vast. If the original beagleboard is somewhat extendable and usable for robotics purposes then Beaglebone should leave no room for doubt.
Through the expansion header a 24 bit LED panel can be supported, access to GPMC bus is provided, MMC signals are available, two SPI and two I2C ports are accessible, four UARTs, seven A/D converters, 66 GPIO pins, eight of which can be used as interrupts, two CAN bus interfaces, four timer outputs and up to eight PWM outputs.
Now, not all of these are available at the same time, due to pin muxing (having alternate functions on the same pin). But most likely one wouldn’t need to have them all at the same time anyway. And taking into consideration that Beaglebone comes with a lower price tag than either of the Beagleboards it seems like a pretty powerful deal to me. This brings me to the capes.
A picture of a Beaglebone ROV cape used in the OpenROV project, released under a GNU Free Documentation license.
The Beaglebone is obviously a hardware expansion focused single board computer. The given interfaces just beg for sensors being read and actuators being run. In most cases you would probably consider creating an expansion board tailored for your needs. However, there are cases in which more than one Beagle owner would like to do the same thing.
That is the idea of encouraging to create capes. A cape is essentially an expansion board that can be directly plugged into the Beaglebone and that adds a certain functionality to the board. It is foreseen that a user might want to use more than one cape, so the processor is capable of recognizing up to four expansion boards through I2C.
As of now there are literally dozens of Beaglebone capes. Cape functionalities range from usual ones such as adding DVI-D and audio capabilities to the Beaglebone to quite exotic ones such as adding an LCD touchpanel or weather reading capabilities. Not all capes are compatible with each other of course.
There are also a few capes that are interesting from robotics perspective. Namely, capes that can control motors and a cape that turns the beaglebone into a battery powered device. And of course the prototyping cape made to ease the development of your own expansion board.
It’s clad in black. It wears a cape. It protects the realm against the perils beyond the Wall. It’s BeagleBone Black. It is the next addition to the beagleboard family. It comes with a considerably lower price tag, just a tad over 40 USD, yet it boasts essentially the same feature set as the original beaglebone.
It has gotten an upgraded processor, the AM3359 running at 1 GHz, as well as RAM has been upgraded to 512 MB DDR3. Among other changes an onboard HDMI connector as well as a 2 GB onboard eMMC memory device are added.
The original beaglebone has JTAG emulation over USB and a dedicated power header for LCD backlight and battery charging capabilities. The black has lost these abilities. Nevertheless, JTAG is available through a non-populated header on the back of the board and there are four non-populated battery charger pins instead of the power header.
Due to removal of the power header some capes that rely on it are not compatible with the black. Also the addition of onboard eMMC device has effects on amount of GPIO pins available and the GPMC bus. If the onboard memory is not used, then these features are accessible. Anyway, people have managed to do pretty serious stuff with the beaglebone, take a look:
The single board computer landscape is a quickly changing one. When the original beagleboard came out some of the now popular SBCs were not yet on the radar. My guess is that with technology becoming ever smaller and cheaper, SBCs will gain more and more popularity among hobbyists.
There are single board computers that have risen and fell. There are some that haven’t seen any further development after the first successful model. Which is a killer in a world where 6 months make a difference in available technology.
However, it looks like Beagleboards are here to stay. It shouldn’t matter much whether these boards are a showcase of certain company’s products or not. As long as new developments are made and we can get our hands on new SBCs that follow the ride of technology development I’m happy. And they’re open source. Open source is always good. Right?