This is an old revision of the document!
What is the BeagleBone Black?
The BeagleBone Black is an updated version of the BeagleBone board. It first shipped in April 2013. It uses the same SoC as the earlier board and is largely compatible but does have significant changes:
- It only costs about US$45 (instead of US$89 for the original model)
- It has both a micro-SD slot and 2GB built-in eMMC (which appears as a second drive); it can boot from either one. The shipping product includes a complete Linux system pre-installed on the eMMC.
- It has 512MB DRAM (instead of 256MB for the original model)
- It has HDMI output (including support for audio over HDMI)
- It lacks built-in serial-over-USB; instead, the serial console is exposed on a 6-pin header (which uses 3.3V RS232 signaling).
- The expansion interfaces are essentially the same as the older white BeagleBone, so most expansion capes for the older board should still work.
The University of Cambridge teaches its L41: Advanced Operating Systems masters-level OS course based on BeagleBone Black and FreeBSD:
The BeagleBone Green is a cost-reduced version of the BeagleBone Black. It lacks the HDMI/audio hardware, but in all other ways is pretty much identical. The FreeBSD BeagleBone Black images run perfectly on the Green.
What works
- ADC
- eMMC
- ethernet
- GPIO
- i2c
- SPI
- LCD
- PWM
- SD card
- USB 2.0
- HDMI output / framebuffer
- watchdog
What still needs to be done
- Audio
How to Boot the BeagleBone Black From Micro-SD
The BeagleBone Black can boot from either the built-in eMMC or a micro-SD card.
To boot from Micro-SD:
* Connect a serial cable such as the FTDI TTL-232R 3.3v or the Adafruit 4-pin cable
* Insert the Micro-SD card.
* Hold the Boot switch (on the top of the board near the Micro-SD slot)
* Connect power, either via a 5v adapter or through a mini-USB cable.
Once the power is connected, you can release the switch; the switch state is recorded by the power chip when power is first applied and will be kept until power is removed.
Of course, to boot from eMMC, apply power without holding the boot switch and without anything in the SD slot.
If you see the message “Failed to mount ext2 filesystem… Unrecognized filesystem type” when booting from SD, then you weren't holding the Boot Switch when you applied power. Remove power, hold the switch, and re-apply power.
Known Issues
Problem: No HDMI output.
There is no driver for the HDMI framer ATM. You will need a Serial cable to boot this board.
Fixed in r284534.
Problem: No eMMC device or unstable operation of eMMC.
Fixed in r275950.
Problem: Panic at boot.
Sometimes, a problem reading from the ethernet PHY leads to the following panic:
Fixed in r273606.
Problem: Serial console dies upon reboot.
I've seen this happen a few times using the Adafruit cable. I'm not exactly sure what causes it. But I can reliably solve it by leaving the serial cable attached, then removing and re-applying power (remember to hold the boot switch if you're booting from SD).
Using WiFi
Various vendors sell a convenient, and small, 802.11 connector that supports up to 802.11N. The proper driver is the urtwn(4) and this BBB-WiFi kernel config has been modified to include proper support for both Wifi and the device driver.
GPIO
Default settings for P8 and P9 expansion headers (LCD/HDMI pins are missing).
| P9 | BeagleBoneBlack | P8 | ||||||
| DGND | 1 | 2 | DGND | DGND | 1 | 2 | DGND | |
| VDD_3V3 | 3 | 4 | VDD_3V3 | MMC1_DAT6 (GPIO_38) | 3 | 4 | MMC1_DAT7 (GPIO_39) | |
| VDD_5V | 5 | 6 | VDD_5V | MMC1_DAT2 (GPIO_34) | 5 | 6 | MMC1_DAT3 (GPIO_35) | |
| SYS_5V | 7 | 8 | SYS_5V | GPIO_66 | 7 | 8 | GPIO_67 | |
| PWR_BTN | 9 | 10 | SYS_RESET | GPIO_69 | 9 | 10 | GPIO_68 | |
| GPIO0_30 | 11 | 12 | GPIO1_28 | GPIO_45 | 11 | 12 | GPIO_44 | |
| GPIO0_31 | 13 | 14 | PWM1A (GPIO1_8) | PWM2B (GPIO0_23) | 13 | 14 | GPIO_26 | |
| GPIO1_16 | 15 | 16 | PWM1B (GPIO1_19) | GPIO_47 | 15 | 16 | GPIO_46 | |
| I2C1_SCL (GPIO0_4) | 17 | 18 | I2C1_SDA (GPIO0_5) | GPIO0_27 | 17 | 18 | GPIO_65 | |
| I2C2_SCL (GPIO0_13) | 19 | 20 | I2C2_SDA (GPIO0_12) | PWM2A (GPIO0_22) | 19 | 20 | MMC1_CMD (GPIO_63) | |
| GPIO0_3 | 21 | 22 | GPIO0_2 | MMC1_CLK (GPIO_62) | 21 | 22 | MMC1_DAT5 (GPIO_37) | |
| GPIO1_17 | 23 | 24 | GPIO0_15 | MMC1_DAT4 (GPIO_36) | 23 | 24 | MMC1_DAT1 (GPIO_33) | |
| GPIO3_21 | 25 | 26 | GPIO0_14 | MMC1_DAT0 (GPIO_32) | 25 | 26 | GPIO_61 | |
| GPIO3_19 | 27 | 28 | SPI1_CS0 (GPIO3_17) | GPIO_86 | 27 | 28 | GPIO_88 | |
| SPI1_MISO (GPIO3_15) | 29 | 30 | SPI1_MOSI (GPIO3_16) | GPIO_87 | 29 | 30 | GPIO_89 | |
| SPI1_CLK (GPIO3_14) | 31 | 32 | VDD_ADC (1.8V) | GPIO0_10 | 31 | 32 | GPIO0_11 | |
| AIN4 | 33 | 34 | GNDA_ADC | GPIO0_9 | 33 | 34 | GPIO_81 | |
| AIN6 | 35 | 36 | AIN5 | GPIO0_8 | 35 | 36 | GPIO_80 | |
| AIN2 | 37 | 38 | AIN3 | GPIO_78 | 37 | 38 | GPIO_79 | |
| AIN0 | 39 | 40 | AIN1 | GPIO_76 | 39 | 40 | GPIO_77 | |
| GPIO0_20 | 41 | 42 | SPI1_CS1 (GPIO0_7) | GPIO_74 | 41 | 42 | GPIO_75 | |
| DGND | 43 | 44 | DGND | GPIO_72 | 43 | 44 | GPIO_73 | |
| DGND | 45 | 46 | DGND | GPIO_70 | 45 | 46 | GPIO_71 | |
Binary snapshots
BeagleBoneBlack snapshots are available for at least a couple of release branches, but some of the functionality documented on this page is only available in -CURRENT.