Chapter 1: The Beagle Hardware Platform

Chapter 1: The Beagle Hardware Platform

/Chapter 1: The Beagle Hardware Platform
Chapter 1: The Beagle Hardware Platform2019-01-22T23:00:34+01:00


This is the chapter web page to support the content in Chapter 1 of the book: Exploring BeagleBone – Tools and Techniques for Building with Embedded Linux. The summary introduction to the chapter is as follows:

In this chapter, you are introduced to the BeagleBone platform hardware and its variant boards. The chapter focuses in particular on the BeagleBone and PocketBeagle boards, and the various subsystems and physical inputs/outputs of these boards. In addition, the chapter lists accessories that can be very helpful in developing your own Beagle-based projects. By the end of this chapter, you should have an appreciation of the power and complexity of this computing platform. You should also be aware of the first steps to take to protect your boards from physical damage.

Learning Outcomes

After completing this chapter, you should be able to:

  • Describe the capability of the Beagle boards and their suitability for different project types.
  • Source the important documents that will assist you in working with the Beagle platform.
  • Describe the major hardware systems and subsystems on the different boards.
  • Identify important peripherals and accessories that you can buy to enhance the capability of your board.
  •  Have an appreciation of the power and complexity of the Beagle boards as physical computing devices.
  • Be aware of the first steps to take in protecting your boards from physical damage.

Digital Media Resources

Here the digital resources referred to in the chapter web page are provided. There are high-resolution versions of some of the important figures and links to videos, resources and websites that are described in the chapter.[/fusion_text]
BeagleBone Poster Icon Image

BeagleBone Black Poster

The BeagleBone Black Poster (Figure 1-3, Figure 1-4) and the P8/P9 Expansion Headers (Figure 1-5) are each each available for download as high-resolution PNG raster format and a high-resolution PDF vector-mapped format images using the following links:

The poster images are large format images that have been rendered for an A3 page size, which is 11.69″ x 16.53″ (29.7cm x 42.0cm) in dimension.

Products Described in this Chapter

Here are links to some of the products that are used in this chapter. Please do your own due diligence on these products and the retailers that are identified:


The USB-to-serial UART TTL cable is used throughout  this book, for debugging problems with the BeagleBone, for viewing and interacting with the console as the board is booting and finally it is used for programming a low-cost Arduino Pro (3.3V) module. There are several products available such as those on Amazon: There is an official TTL-232R-3V3 cable, and lower cost alternatives (that have not been tested) such as the GearMo 3.3V Header-like TTL-232R-3V3 cable.935125-c01f010d

It is also very useful to have a 2A 5V regulated power supply, especially if you are planning to connect the BeagleBone to a Wi-Fi adapter, USB webcam or LCD cape. It is always useful to have such a power supply for writing a new image to the eMMC. Here are a few such examples: 2A 5V power supplies on Amazon.com.

Also, there are several capes that are mentioned towards the end of the chapter:

Manufacturing the BeagleBone

CircuitCo has provided a short video of the BeagleBone Black manufacturing process, which highlights the complexity of the device manufacture and the steps that goes into its manufacture.

External Resources

Important Documents

External Web Sites

AM335x ARM A8 Technical Reference Manual

The AM335x Technical Reference Manual (TRM)

BeagleBone Black System Reference Manual

The BeagleBone Black System Reference Manual (SRM)

The BeagleBoard.org website provides the main support for this platform, with software guides, community links, and downloads to support your development. An excellent “Getting Started” guide and blog is available at the website

BeagleBone Black P8/P9 Header Labels (from www.logicsupply.com)

The BeagleBone Black P8 and P9 pin labels from www.logicsupply.com. These labels can be printed at 100% scale on label paper and affixed to each side of the P8 and P9 headers.

Introductory Books:



  1. TB December 13, 2014 at 7:17 pm

    Derek, just got going with the Kindle edition of your book today, and am in chapter 1. I believe that found an erratum for your list…

    In the “BeagleBone Accessories” section (loc 928), it says this:

    “The BBB board is packaged with a USB 2.0 cable (micro-USB plug to USB A plug)…”

    However it’s indicated elsewhere (and in the BeagleBoard.org docs) that it is a mini-USB. In fact you have it listed correctly as a mini-USB in Figure 1-4.

    • admin December 13, 2014 at 8:50 pm

      Thanks Tom, It should be mini-USB. Congratulations on finding the first error! Derek.

  2. Dave Legrow December 24, 2014 at 4:07 am

    Link to TI for the TRM does not work, as the period at the end of the sentence is included in the link. (location 809)

    • Derek December 24, 2014 at 11:34 am

      Thanks Dave, it is being picked up correctly on my version of the electronic document. I’ll check it with the publisher. Derek.

  3. Evert Jan Henken January 5, 2015 at 11:09 am

    In the notes from Chapter 1 you give a link to the site http://www.broadcom.com/products/BCM2835 .
    That nice but that is the microprocessor from the Raspberry Pi, is this intended or is it a typo?
    I rather expected here a link to: http://www.ti.com/product/am3358
    It is not that I don’t like the Raspberry Pi, I have 3 of them, 1 B en 2 B+, but for now i want to concentrate on the BBB. 😉

    • Derek January 5, 2015 at 1:00 pm

      Hi Evert, No, believe it or not, it was intentional! The footnotes were changed to endnotes in post-production so it has moved away from the reference in the section “When You Should Not Use the BeagleBone”. Many people ask me if the BeagleBone can be used as a media player, so I am just nipping that in the bud early on and directing those readers to the Raspberry PI for that task (only!). Derek.

      • Evert Jan Henken January 5, 2015 at 3:11 pm

        I did oversee the footnote number in that section and thought it was a general Endnote. Learned again something, mainly about reading good en oversee nothing. I think this will help me in further reading your excellent book, Thank you that you respond so quickly even on questions like this.

  4. George Hardill January 22, 2015 at 1:49 pm

    Ref HDMI to VGA adapters Pg 16/17.
    I tried one of these some time ago (looks like the one in your picture). I think the problem was that +5v is not available on the BBB HDMI connector on pin 18 due to power budget constraints? ( The HDMI spec calls for 50mA)
    My solution was to open the adapter and solder some flying leads onto pins 18(+5v) and pin 17(Gnd) and connect to a bench power supply. Alternatively, a power socket could just be squeezed into the case then a wallwart could be used to power up.
    My BBB is Revision B not C so this problem may have been addressed on rev C?
    My BBB is powered from a 2 amp supply not the USB connector.

    • George Hardill January 22, 2015 at 4:01 pm

      I forgot to mention in my post ref HDMI/VGA adapters — cut the wire connected to pin 18 or you will feed power back into the BBB HDMI connector.

      • Derek January 23, 2015 at 12:56 pm

        Thanks George, that is very useful advice, Derek.

  5. Mark Graves January 23, 2015 at 6:12 pm

    Derek, I just received your book and my BBB about a week ago and I’m trying to sequentially work my way through it. I don’t have a network background, so I’ve a lot to learn. In chapter 2, in the section “Connecting through Secure Shell” I see where you say to make sure to set a password on the root user account. I’ve been able to connect to the BBB via USB and ethernet on my home router. However, at this point I’ve only been able to access the browser page as shown in figure 2-2.. I’m assuming that I need to get to a Linux command prompt to set the password, but I don’t know how to do that.

    • Derek January 23, 2015 at 10:25 pm

      Hi Mark, great! Yes, ideally you will need a SSH client application for your desktop machine, which is why I discuss PuTTY. Since I don’t know your platform, you could use Chrome and a really nice Chrome Application (see Page 34) called Secure Shell (Secure Shell Chrome App). If you can see the web server on the BeagleBone, then you can use the same IP address (default is for USB-over-Internet). You can use that App and the IP address to connect to the BeagleBone on your network. Login as root and there will be no password.

      An alternative is to use the BBB IP address with port 3000 to open the Cloud9 IDE (e.g. There is a bash tab on the bottom of the user interface. It is nice, but I would not use it for the longer term, especially if you plan to use VNC (see chapter 11).

      I hope that helps. If you need more advice, please let me know the stumbling blocks and I can add a guide to this page. Derek.

      • Mark Graves January 24, 2015 at 8:41 am

        Thanks Derek! I just got in using Putty and changed the root. I’m about to leave town on a week long business trip, so I’ll be reading a lot more of your book. I’m sure I’ll be excited to get back home and tinker some more. Also, I did take a copy of the pin labels and sized and aligned them for a standard Avery label sheet. I have that in a Word doc. I’m happy to share it.

        • Derek January 24, 2015 at 1:44 pm

          Thanks Mark, That is very useful, but I better not link it as I don’t own the source document for the pin labels. Logic Supply (www.logicsupply.com) might be interested in presenting it. Derek.

  6. Hyusein Gyulyustan January 29, 2015 at 11:26 pm

    Hi Derek,
    Congratulations for the good book! In Chapter 1, page 6, section “When you should not use the Beaglebone” you say “Its kernel is not preemptive, which means that once the processor begins executing kernel code it cannot be interrupted.” Could you comment this? As I know this behaviour can be enabled/disabled while building the Linux kernel. Also what do you mean by “cannot be interrupted”? Is that true if interrupts are enabled? Sorry if I am missing something!

    • Derek January 29, 2015 at 11:45 pm

      Thanks Hyusein. I revisit this topic at the beginning of Chapter 13 — I’ll let you read it there as I don’t want to spoil the ending 🙂 Derek.

  7. Jordi April 1, 2015 at 9:22 am

    Hi Derek, I have no clue on how to interpret the location of the typos (loc xxxx) and how it translates to a specific page of the book?

    • Derek April 1, 2015 at 10:30 am

      Hi Jordi, I have done that here under the Errata section (e.g., presently there is only one in this Chapter on Pg. 14). Are there others where I have forgotten to do that? If you spot any, let me know and I will do that. Derek.

  8. Gary Rubin April 11, 2015 at 11:22 pm

    Hello Derek, on page 29 (chapter one) of the paperback version, you suggested a wireless access point with integrated multiport router. I am looking for one now. Do you have any suggestions or a favorite? I have had moderate success with an Edimax EW-7811Un 150 Mbps dongle, plugged into a powered hub, but I am not happy with it. I would rather go wired and often do, but would like to go wired with wireless freedom for my prototyping rig. As in wired to a WAP which is connected via wifi to my wireless/wired router. My home network is both wired and wireless, containing many switches. Thank you sir!

    • Gary Rubin April 12, 2015 at 3:45 am

      I learned a bit today about this configuration, and I ordered the TL-WR841N and a TL-WA801ND, I have a lot of reading to do and a few rabbit holes to explore, Safe to say that my BBB will not have any issues getting a signal. But I need to get a quick networking 101 (411) on subnets, etc. Exciting! And if I add TL-WR841N devices as wireless bridges, I should be able to reach multiple devices as hive nodes for camera data support. More when I know it! Question might be answered Derek, thank you!

    • Derek April 13, 2015 at 1:30 am

      Hi Gary, interesting follow-up. Yes, I have tried a few access points and I have had good success with most. Like you I have several access points but the one that is closest to my work space is a Netgear router and it gives a stable connection. It worked best with the ASUS adapter and TP-Link adapters (See pg.419) with the RTL8192CU and RTL8188SU chipsets. Hope you get a setup that is stable — please let me know what works and what causes difficulties. Kind regards, Derek.

  9. Andrew May 6, 2015 at 3:59 pm

    on p. 7 in my copy, the acronym XBMC is typo’ed as XMBC (apparently it’s now called Kodi, though)

    • Derek May 6, 2015 at 5:08 pm

      Thanks Andrew, I thought that I had added that one to the errata list already — definitely adding it now. Thanks for the update, Derek.

  10. ron May 23, 2015 at 2:25 am

    Thanks for great instruction derek

    I am going to build a pid controller in the circuit Instrumentation with ds18b20 temperature sensor and cadmium. Sulfide cell light sensor resistive light sensor, then as transducer a stepper motor.

    question, to take advantage of internet of things, I am starting out with xively. Have you designed your own restful API or are there other free services developers can use to create profiles and deployment?

  11. Amalinda June 1, 2015 at 2:37 pm

    A very interesting approach towards teaching embedded linux. You seem well experienced and talented in both teaching as well as in linux. I think I’m going to enjoy your book from cover to cover.

  12. Mo'meN June 18, 2015 at 4:37 pm

    In chapter 1 you emphasize on the face that the linux Operating System is a non-preemptive system. in fact, that is no longer true starting from kernel version 2.6 and higher the Linux Operating System contains a preemptive kernel.

    • Derek June 19, 2015 at 5:32 am

      Hi there, the Completely Fair Scheduler was introduced in 2.6 and it offers a form of preemption only under certain conditions and ONLY if CONFIG_PREEMPT is enabled, which it is not by default on most distributions. PREEMPT_RT has always been problematic on the BBB (particularly with the USB host) and when people do get it working under mainstream distributions the latencies are not sufficient for significant real-time processing — the same type of problems that are described in Chapter 1 are present whether or not CONFIG_PREEMPT is enabled (see Chapter 13 for more discussion on that topic and a solution for certain tasks). Kind regards, Derek.

  13. Corvusoft June 23, 2015 at 3:16 pm

    Hi All,

    Just an update on @Dereks comment. Restbed (Asynchronous RESTful Framework) has moved to GitHub (https://github.com/corvusoft/restbed).

  14. Romy July 20, 2015 at 8:17 pm

    Hi Doc. Molloy,

    Your book is a pretty good guide for new developers, I really appreciate your work. Please keep going.
    In other topic, I was wondering if you can include a new Chapter for your book about how to create a new beagle bone cape mostly related to firmware: Device Tree, Driver Creation and implementation, Kernel, etc.

    Right Now I am investigation how to connect a TFT Color to my BBB, but I think I not prepared yet to understand everything that those Authors are omitting. Could you help me with some material?, do you know where can I find some material of this?

    Kind Regards Dr.

  15. Erol July 25, 2015 at 8:56 pm

    thank you so much for providing such a good website for bob, the way you present information, graphical design is so attractive and engaging, artistically also so appealing, I believe you succeeded combining art and technology very well (I am talking about your web design, graphic design of the web site and animation stuff)

    Derek, I have a question to you, I am thinking about developing touch screen based python application, I made a little research and I found ivy library for that, I installed python-kivy library, but it uses OpenGL heavily, as you guess OpenGL is weak point of beagle bone since SGX OpenGL/openCL module seems to be not very well supported, or at least I could not managed to get it working, everyone’s feedback is welcome for that subject, My question is:
    – Is there any information regarding to getting SGX installed successfully for X11 and get ivy python application more responsive, as of now, application is so slow and laging since X11 uses frame buffer instead of SGX hardware?
    – Any other alternative idea for developing touch screen based application for beagle bone?

    thanks for all input in advanced..

    • Derek August 5, 2015 at 12:41 am

      Thank Erol — thanks for your kind words! I’m not familiar with ivy phython, but Qt is the obvious alternative — it is extremely powerful, but can be very complex to set up, particularly with SGX OpenGL support. Have a look at my (now quite dated) videos on Qt touch screen development. If you don’t need OpenGL support it is achievable, but I have seen many, many people struggle with OpenGL support. Kind regards, Derek.

  16. Serum July 13, 2020 at 8:12 am

    Do you have a Korean translation book?

    • Derek July 13, 2020 at 11:36 am

      Hi Serum. My understanding is that there is an ebook version of the first BeagleBone book in Korean but I do not have a reference. If you find it please let me know. Kind regards, Derek.

Comments are closed.

Exploring BeagleBone

This is the companion site for the book “Exploring BeagleBone: Tools and Techniques for Building with Embedded Linux” by Derek Molloy. The site structures and contains all of the digital media that is described in the book. Each chapter in the book links to an individual web page, which can be accessed using the menu on the top right-hand side of this page when you close this menu. For details of the book itself, click here.

Recent Works

Latest from Derek Molloy YouTube Channel

Oops, something went wrong.