This chapter will provide a background on the entire family of Beagle boards with brief highlights of what is unique about every member, such as things that favor one member over the other. This chapter will help you identify the Beagle boards that might have been mislabeled. The following topics will be covered here:
What are Beagle boards
How do they relate to other development boards
The focus of this book will be on the BeagleBone subfamily and assumes that a BeagleBone board has been purchased.
The Beagle boards are a family of low-cost, open development boards that provide everyday students, developers, and other interested people with access to the current mobile processor technology on a path toward developing ideas. Prior to the invention of the Beagle family of boards, the available options to the user were primarily limited to either low-computing power boards, such as the 8-bit microcontroller-based Arduino boards, or dead-end options, such as repurposing existing products. There were even other options such as compromising the physical size or electrical power consumption by utilizing the nonmobile-oriented technology, for example, embedding a small laptop or desktop into a project. The Beagle boards attempt to address these points and more.
The Beagle board family provides you with access to the technologies that were originally developed for mobile devices, such as phones and tablets, and uses them to develop projects and for educational purposes. By leveraging the same technology for education, students can be less reliant on obsolete technologies. All this access comes affordably. Prior to the Beagle boards being available, development boards of this class easily exceeded thousands of dollars. In contrast, the initial Beagle board offering was priced at a mere 150 dollars!
The Beagle family of boards began in late 2008 with the original Beagle board. The original board has quite a few characteristics similar to all members of the Beagle board family. All the current boards are based on an ARM core and can be powered by a single 5V source or by varying degrees from a USB port. All boards have a USB port for expansion and provide direct access to the processor I/O for advance interfacing and expansion. Examples of the processor I/O available for expansion include Serial Peripheral Interface (SPI), I2C, pulse width modulation (PWM), and general-purpose input/output (GPIO). The USB expansion path was introduced at an early stage providing a cheap path to add features by leveraging the existing desktop and laptop accessories.
All the boards are designed keeping the beginner in mind and, as such, are impossible to brick on software basis.
To brick a board is a common slang term that refers to damaging a board beyond recovery, thus, turning the board from an embedded development system to something as useful for embedded development as a brick.
This doesn't mean that they cannot be damaged electrically or physically. For those who are interested, the design and manufacturing material is also available for all the boards. The bill of material is designed to be available via distribution so that the boards themselves can be customized and manufactured even in small quantities. This allows projects to be manufactured if desired.
Do not power up the board on any conductive surfaces or near conductive materials, such as metal tools or exposed wires. The board is fully exposed and doing so can subject your board to electrical damage. The only exception is a proper ESD mat designed for use with Electronics. The proper ESD mats are designed to be only conductive enough to discharge static electricity without damaging the circuits.
The following sections highlight the specifications for each member presented in the order they were introduced. They are based on the latest revision of the board. As these boards leverage mobile technology, the availability changes and the designs are partly revised to accommodate the available parts. The design information for older versions is available at http://www.beagleboard.org/.
OMAP3530 clocked up to 720 MHz, featuring an ARM Cortex-A8 core along with integrated 3D and video decoding accelerators
256 MB of LPDDR (low-power DDR) memory with 512 MB of integrated (NAND) flash memory on board; older revisions had less memory
USB OTG (switchable between a USB device and a USB host) along with a pure USB high-speed host-only port
A low-level debug port accessible using a common desktop DB-9 adapter
Analog audio in and out
DVI-D video output to connect to a desktop monitor or a digital TV
A full-size SD card interface
A 28-pin general expansion header along with two 20-pin headers for video expansion
At the original release of the BBC in 2008, OMAP3530 was comparable to the processors of mobile phones of that time. The BBC is the only member to feature a full-size SD card interface. You can see the BeagleBoard Classic in the following image:
DM3730 clocked up to 1 GHz, featuring an ARM Cortex-A8 core along with integrated 3D and video decoding accelerators compared to 720 MHz of the BBC.
512 MB of LPDDR but no onboard flash memory compared to 256 MB of LPDDR with up to 512 MB of onboard flash memory.
USB OTG (switchable between a USB device and a USB host) along with an onboard hub to provide four USB host ports and an onboard USB connected to the Ethernet interface. The hub and Ethernet connect to the same port as the high-speed port of the BBC. The hub allows low-speed devices to work with the BBX.
A low-level debug port accessible with a standard DB-9 serial cable. An adapter is no longer needed.
Analog audio in and out. This is the same analog audio in and out as that of the BBC.
DVI-D video output to connect to a desktop monitor or a digital TV. This is the same DVI-D video output as used in the BBC.
A microSD interface. It replaces the full-size SD interface on the BBC. The difference is mainly the physical size.
A 28-pin expansion interface and two 20-pin video expansion interfaces along with an additional camera interface board. The 28-pin and two 20-pin interfaces are physically and electrically compatible with the BBC.
The BBX has a faster processor and added capabilities when compared to the BBC. The camera interface is a unique feature for the BBX and provides a direct interface for raw camera sensors. The 28-pin interface, along with the two 20-pin video interfaces, is electrically and mechanically compatible with the BBC. Mechanical mounting holes were purposely made backward compatible. Beginning with the BBX, boards were shipped with a microSD card containing the Angström Linux distribution.
The latest version of the kernel and bootloader are shared between the BBX and BBC. The software can detect and utilize features available on each board as the DM3730 and the OMAP3530 processors are internally very similar. You can see the BeagleBoard-xM in the following image:
To simplify things and to bring in a low-entry cost, the BeagleBone subfamily of boards was introduced. While many concepts in this book can be shared with the entire Beagle family, this book will focus on this subfamily. All current members of BeagleBone can be purchased for less than 100 dollars.
The Altoids tin is conductive and can electrically damage the board if an operational BeagleBone without additional protection is placed inside it.
AM3358 clocked at up to 720 MHz, featuring an ARM Cortex-A8 core along with a 3D accelerator, an ARM Cortex-M3 for power management, and a unique feature—the Programmable Real-time Unit Subsystem (PRUSS)
256 MB of DDR2 memory
Two USB ports, namely, a dedicated USB host and dedicated USB device
An onboard JTAG debugger
An onboard USB interface to access the low-level serial interfaces
10/100 MB Ethernet interfaces
Two 46-pin expansion interfaces with up to eight channels of analog input
10-pin power expansion interface
A microSD interface
3.3V digital I/O
1.8V analog I/O
AM3358 clocked at up to 1 GHz, featuring an ARM Cortex-A8 core along with a 3D accelerator, an ARM Cortex-M3 for power management, and a unique feature: the PRUSS. This is an improved revision of the same processor in the BBW.
512 MB of DDR3 memory compared to 256 MB of DDR2 memory on the BBW.
Two USB ports, namely, a dedicated USB host and dedicated USB device.
A low-level serial interface is available as a dedicated 6-pin header.
10/100 MB Ethernet interfaces.
Two 46-pin expansion interfaces with up to eight channels of analog input.
A microSD interface.
A micro HDMI interface to connect to a digital monitor or a digital TV. A digital audio is available on the same interface. This is new to the BBB.
3.3V digital I/O.
1.8V analog I/O.
The overall mechanical form factor of the BBB is the same as that of the BBW. However, due to the added features, there are some slight electrical changes in the expansion interface. The power expansion header was removed to make room for added features. Unlike other boards, the BBB is shipped with a Linux distribution on the internal flash memory. Early revisions shipped with Angström Linux and later revisions shipped with Debian Linux as an attempt to simplify things for new users.
Unlike the BBW, the BBB does not provide an onboard JTAG debugger or an onboard USB to serial converter. Both these features were provided by a single chip on the BBW and were removed from the BBB for cost reasons. JTAG debugging is possible on the BBB by soldering a connector to the back of the BBB and using an external debugger. Access to the serial port on the BBB is provided by a serial header.
This book will focus solely on the BeagleBone subfamily (BBW and BBB). The difference between them will be noted where applicable. It should be noted that for more advanced projects, the BBC/BBX should be considered as they offer additional unique features that are not available on the BBW/BBB. Most concepts learned on the BBB/BBW boards are entirely applicable to the BBC/BBX boards. You can see the BeagleBone Black in the following image:
At the moment, there are four members in the Beagle board family, each with unique features but all having the common goal of making technology accessible. The BBC and BBX share a similar expansion connector and offer media-handling capabilities. The BBW and BBB share a similar expansion connector and offer a low cost while using the PRUSS for custom peripherals and real-time options. While all the boards offer a good educational experience, this book will focus on the BBW and BBB.
Depending on the BeagleBone you have purchased, the getting started process is slightly different. Assuming that you have purchased a new board from an authorized distributor with included accessories, we will now assemble it.
Using some of the accessories, namely, the SD card reader and the mains adapter, the BBB and the BBW can be restored to the factory state by following the instructions in Chapter 2, Software in the BeagleBone. A mains adapter also known as a DC power adapter or an AC adapter is required.
We'll first go through what's included and then a few very useful accessories to have.
At the time of writing this book, there are authorized branded boards being introduced at http://beagleboard.org/.
The BeagleBone boards are sensitive to static electricity; hence, store the board in the protective ESD bag when not in use.
You can see the BeagleBone Black board with its contents in the following image:
For the BBW, the contents are similar except that it also contains a microSD card along with a microSD to full-size SD adapter. For the purposes of this book, the SD adapter is not needed but more advanced uses, such as recovery of the board, might require the adapter. You can see the BeagleBone White board with its contents in the following image:
In order to power up the BeagleBone for the first time, a desktop or a laptop with a USB port should be available. If possible, do not use an external hub. If you must use a hub, be sure to use a self-power hub (a hub that has its own power supply). The board as shipped is designed to work with most desktop/laptops. However, there are some corner case configurations, which we will address later. The board has been tested with systems that run Linux, Windows, and Mac OS. The configuration is generally the easiest with a Linux system but it is not necessary.
This book will focus on Linux and Windows. The Mac OS configuration should be similar. The overall process is described at http://beagleboard.org/static/beaglebone/latest/README.htm and http://beagleboard.org/Getting%20Started.
For the BBW users, the microSD card should be inserted at this point prior to connecting the mini USB cable; the BBB users can proceed to connecting the mini USB cable.
The microSD card only fits in one way. If it does not appear to fit, remove and flip it over. Do not force the card.
Regardless of the operating system, the first step is to plug the mini USB cable into the BeagleBone.
The mini USB connector is at the bottom of the board under the LEDs, next to the big silver RJ45 jack. The USB port is marked as USB.
When the BeagleBone is powered on from the machine, a blue power LED will immediately light. If the LED doesn't glow or if it just blinks on briefly, it is possible that your machine might fall in the corner case category and you might need the power adapter as described later. The earlier URL mentions additional steps but other steps such as upgrading to the latest image are optional. Similarly, configuring the board for serial access is also optional.
The exercises in this book should work fine with the shipping images. An image here refers to the system software. Usually, updating the system software will add new features and fix bugs. The system software shipped with the board should be enough for the exercises in this book. So, you can use it to develop an understanding of the BeagleBone before diving into its upgrades. In Chapter 2, Software in the BeagleBone, we will look at the system software in more detail. You can see how the USB cables connect to the BeagleBone Black and BeagleBone White in the following image:
The standard BeagleBone software at the time of writing this book provides two standard USB functions for the BBB and one additional function for the BBW out of the box. They are as follows:
USB Ethernet: This is one of the many methods of providing a virtual-network interface with USB. The configuration supports the Remote Network Driver Interface Specification (RNDIS) method so that it can work out of the box with Windows without sacrificing the Linux compatibility. The net result is a virtual-network interface that appears on both Linux and Windows.
(BBW only) FTDI serial adapter: This is a combination serial port adapter connected to a serial console and a JTAG interface. It is implemented as an additional piece of hardware on the BBW. This hardware is combined with the preceding two functions implemented by the Linux system running on the BeagleBone with an onboard hub. The exercises in this book will not use this part of the BBW.
In order to access the BeagleBone from Windows, a few basic drivers need to be installed. The latest drivers can be downloaded from http://beagleboard.org/getting-started. A version of the driver is available directly from the BeagleBone. Shortly after plugging in the USB cable, a USB drive will appear on the desktop/laptop. Navigate to the drive. There will be a folder named
Drivers, and inside it, there will a folder named
Windows. Run the installer appropriate for your version of Windows (64 bit or 32 bit). There might be some security warnings about driver signing.
Depending on your version of Windows, you might need to restart/reboot. Afterwards, a network device will appear.
If you choose to use an emulated environment, note that the BeagleBone will appear as a composite device. You might need to assign multiple devices to the emulated environment. For Mac OS users, there are native Mac OS drivers available at http://beagleboard.org/getting-started. The BBW users will see two potentially added USB devices, namely, a FTDI device and a hub.
For the exercises in this book, no additional drivers are needed in most distributions. Most distributions will recognize the virtual Ethernet device provided by the system software on the BeagleBone. When the BeagleBone is plugged in, it will provide a composite device that offers a virtual Ethernet and a mass storage device. Unless specifically disabled, the Linux kernel will recognize and attach appropriate drivers. You can verify that the Beagle board is accessible by looking at the new network interface. This can be done by looking at the output of the following
ifconfig command before and after plugging in the Beagle board:
$ ifconfig -a …. eth1 Link encap:Ethernet HWaddr 1c:ba:8c:95:18:a0 inet addr:192.168.7.1 Bcast:192.168.7.3 Mask:255.255.255.252 inet6 addr: fe80::1eba:8cff:fe95:18a0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:21 errors:0 dropped:0 overruns:0 frame:0 TX packets:101 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5280 (5.2 KB) TX bytes:21808 (21.8 KB) ….
The network device for the BeagleBone will appear as shown in the preceding code. It will use the
192.168.7.1 address. Depending on the distribution, the name of the network device might appear as a device with an
eth or a
If the network device does not appear as described here, your distribution might need additional drivers installed. Check with your distribution's documentation or support community for details on how to enable support for a CDC Ethernet device.
In order to follow the exercises in this book, you will need to have a few basic pieces of software. The basic exercises will require an SSH client to be installed on your desktop or laptop where the BeagleBone is connected to. The pieces of software required are as follows:
For Windows users, PuTTY is available from http://www.putty.org/.
For Mac OS users, MacSSH can be downloaded for free from http://www.macssh.com/ssh_down.html.
For more advanced exercises, a web browser is needed. The exercises should work with any web browser. However, the getting started pages might not work correctly in Internet Explorer. It is strongly recommended that you use another browser, such as Firefox.
Congratulations! You now have a working BeagleBone!
For Linux users,
ssh email@example.com log you in to the board.
For Windows users, run PuTTY, connect to
192.168.7.2, and use
rootas the username to log in to the board. You will then see the following screenshot. Enter the IP address in the HostName section. After clicking on Open, you will be prompted to enter the username (
root). If you are prompted for a password, just press Enter.
For both Linux and Windows users, you will be asked to confirm the SSH key for the BeagleBone. Enter
YES when asked.
If you successfully log in to the board, you are ready for the exercises.
The first and possibly the most helpful accessory is a 5V wall outlet/mains power adapter. This will allow you to power the BeagleBone from the wall outlet instead of drawing power from a USB port. While the board can be powered by the USB port, if you want to do anything that requires more than the minimal amount of power, a 5V wall out/mains power adapter is strongly recommended. If capes or expansion boards are installed, the amount of power can easily exceed what is available from the USB port. These adapters are available from a variety of sources. The specifications you are looking for are as follows:
Regulated 5V power supply
1 to 2A of current
A female barrel connector with 2.1 mm inner diameter and 5.5 mm outer diameter with the center positive
This might also be necessary if your laptop or desktop strictly enforces the USB standard, which only provides 100mA of power initially and a maximum of 500mA.
A USB SD or microSD card reader is one of the other important accessories. Numerous images and software upgrades are available for download over the Internet. More importantly, if you ever need to restore the BeagleBone to a factory state, such as after a mistake, an SD card reader and a microSD card are absolutely essential as this is done by a software image download. To use these images, a means of writing to the microSD card is needed. The software installation process is detailed in Chapter 2, Software in the BeagleBone. Almost any card reader will work; however, it is strongly advised to get the one that is USB 2.0 high-speed capable. This is because most images are relatively large and can take a while with a slower device.
In addition, as a companion to the SD card reader, a fast microSD card is highly desirable. For the BBW, the microSD card as shipped is functional but it is often a very slow card. The microSD cards are rated by a class system. Getting a reliable high-speed microSD card can help improve the performance considerably for the BBW. For the BBB, this is less important but it can help accelerate updates.
If you do not have a microSD to full-size SD card adapter, be sure that you purchase one. The microSD cards are often (but not always) sold in a package that includes the adapter. Alternatively, you can buy a card reader that can directly take microSD cards.
For the BBB, a USB to serial cable can be very helpful in debugging the system or troubleshooting an apparently non-booting board. The FTDI TTL-232R-3V3 cable, available from Future Technology Devices International (FTDI), Digi-Key, and other distributors will provide access to the low-level debug serial port. This cable plugs in to a 6-pin header on the BBB. Pay attention to the triangle indicating pin one. For the BBW, this functionality is built-in but a driver might be needed depending on the operating system used in the desktop/laptop. You can see the connector for the serial adapter in the following image (pin one is marked by the white dot):
This cable converts the 3.3V UART signal into a USB signal accessible from the desktop/laptop. Other means of doing the same exists but their discussion is outside the scope of this book. See the System Reference Manual (SRM) and/or schematics for details.
For people not familiar with a basic DMM, a DMM allows you to measure voltage, resistance, and current. For most of our purposes, we are primarily looking at the voltage. The very basic DMM is sufficient for most of our purposes.
DMMs provide a lot of insights if there are any problems. Exercises in this book do not require a multimeter, but it can be very helpful in debugging. Power problems and examining signals are just some of the things a DMM can help us with. The BeagleBone boards provide analog inputs and the DMM provides a way to verify these analog signals. Even for digital signals, the DMM can provide a basic insight in signals not connected to LEDs, which are most of them. You can see a basic, low-cost DMM in the following image (the probes are connected and the function is selected by the rotary switch in the center):
A typical, basic DMM will have two test leads connected, a black one and a red one, with a very sharp point on the end.
Typically, DMMs will have a rotary switch to select the measurement function or range. For most of our purposes, we will be measuring signals between 0 and 5V. So, in the case of the pictured DMM, the 20V setting marked by 20 in the upper-left area marked as DCV for the DC voltage will work.
After selecting the range, connect the black probe to a reference point. Electrically, this is the ground. The ground signal is available on the exposed parts of the BeagleBone mounting hole, on the pins labeled as ground on the expansion header, or on the metal part of the Ethernet or RJ45 connector. Be very careful not to touch anything else with the probe while measuring as this can damage the BeagleBone. After connecting the black probe to the ground, connect the red probe to the signal being measured. An example of a signal you can measure as an exercise is the power line. Again, pay attention not to touch anything else with the probe to avoid shorting out signals. You can see a few ground points on the BeagleBone Black in the following image (the BBW has similar ground points):
If you need a signal to practice measurement or to familiarize yourself with using a DMM, consider measuring the power supply signals on the expansion connector. This is worth repeating; be careful when measuring as accidentally shorting the signal to an adjacent pin or to anything else on the BeagleBone can permanently damage your board! You can locate power supply signals by referring to the SRMs section on the expansion connector pin outs. The connector P9 contains most of the power signals. On P9, you will find signals such as DC_3.3V, SYS_5V, and VDD_5V. The DC_3.3V signal should measure around 3.3V if the board is powered on and working correctly. VDD_5V is powered on only via a 5V barrel connector. SYS_5V is powered when the BeagleBone is powered on either by a 5V barrel connector or a USB connector.
Measure at the top side: The signals for the expansion connector are on the female connectors, as shown in the preceding image. You will need some kind of thin wire that fits the connector. In addition, if you later have an expansion board or a cape connected, the connectors themselves might be obscured. While some expansion boards might carry the signals through the expansion board themselves, they are not required to do so. This is especially true for the nonpower signals.
Measure on the bottom side of the board: This has the advantage of allowing direct probing with a greater risk of shorting to adjacent signals. If you are careful, this provides the easiest access to the signals on the BeagleBone.
If you are unsure or trying to measure the signals on the BeagleBone for the first time, it is a good idea to seek help from someone knowledgeable to confirm whether your connections are correct and that you have not accidentally shorted out the signals.
For folks who want to attempt to interface the BeagleBone wirelessly, a Bluetooth USB adapter or a Wi-Fi USB adapter might be useful. Refer to the mailing list at http://www.beagleboard.org/Community/Forums for possible supported Wi-Fi adapters, as they will vary over time. This book will not discuss the Wi-Fi configuration but in Chapter 5, Connecting the BeagleBone to Mobile Devices, we will go through a few issues faced while connecting the BeagleBone to a mobile device, such as a phone.
In this chapter, we looked at the Beagle board offerings and a few unique features of each offering. Then, we went through the process of setting up a BeagleBone board and understood the basics to access it from a laptop/desktop. By verifying access to the BeagleBone via a web browser and a command line, we built a foundation for the exercises in the upcoming chapters.
With a new board, we also went through a list of some very useful accessories. With the exception of the power adapter for a few people with laptops/desktops that strictly enforce power limits, none of the accessories are required for the exercises in this book. You can proceed through the rest of the book while the accessories are ordered.
In the next chapter, we will look at system software in the BeagleBone along with the process of flashing a new image onto the BeagleBone.