September 26, 2016

The Beaglebone Black

I am a huge fan of the Beaglebone Black (henceforth referred to as the "BBB". I bought my first two in May of 2013, and now own several, along with the virtually identical Beaglebone Green (BBG).

My first two cost me $45 each. Since then, a new version (rev C) has come out and bumped the price up to $55 from most sources. The main change is a bigger onboard flash memory (4G instead of 2G). I have always found 2G entirely adequate for anything I wanted to do, but the change is driven by the availability of 4G flash chips as the 2G chips fade from the scene.

The BBG is ideal for me, since I use the BBB or BBG for embedded projects and neither need nor want the HDMI video. I have never set one up as a standalone computer, and would bet that almost nobody does (but you could, given an HDMI display and a USB keyboard). As an alternative to an Arduino with some kind of ethernet shield, it is superb - as long as you understand that real time programming under linux is essentially impossible. The PRU units on the BBB provide and excellent way of coping with that limitation.

I prefer the BBB to the wildly popular Raspberry Pi. Originally this was simply because the BBB had many more IO pins. This is less of an issue with current Raspberry Pi units. The BBB is entirely open source, whereas the Raspi is partially open. For someone like me who is a low level software developer, this along with the lack of high quality hardware documentation for the Raspi still make the BBB a clear choice. The fact that the BBB comes with onboard flash (eMMC memory) is also a significant advantage. However the Raspi has a huge following and lots of momentum. Apparently more of them are used as media servers than for anything else, which puzzles me, but that is not my thing.

My notes from my original work with the BBB are available at the above link. They document some of my initial frustrations, in particular with the Angstrom Linux distribution. These days I run the far superior Debian distribution for the BBB, which bypasses all the Angstrom issues. I have also entirely abandoned the "Cloud 9" environment and never looked back. Cloud 9 was an attempt to offer an integrated programming environment along the lines of Arduino, which might be nice for rank beginners if it simply worked.

Technical Documentation

The heart of the BBB is a Texas Instruments AM3359/AM3358 "SoC" (system on a chip). The MPU in that SoC is an ARM Cortex-A8 processor. The Cortex A8 implements the arm V7 instruction set.

A brief word of apology and explanation is due here. The ARM world is rife with confusion due to two sets of parallel nomenclature. A name like "Cortex-A8" is marketing lingo and should be filed away with a grain of salt. But saying that it implements the ARM v7 instruction set tells you what particular instructions are available, what compiler options to use, and is more or less useful. These are deep and tangled waters, deserving detailed discussion that would be out of place here.

The big v7 manual covers the Cortex-A8 and Cortex-R.


Feedback? Questions? Drop me a line!

Tom's Computer Info / tom@mmto.org