BeagleBone and FreeBSD

I recently purchased a BeagleBone Green (BBG) to experiment with FreeBSD on an embedded platform. The BBG has been available for a couple of years, and while I was tempted to get a BBG Wireless (BBGW), it would have meant ordering on-line and waiting for delivery. At least for initial development work I prefer a hard-wired connection, but also prefer to support local when possible.

BeagleBone Green

A BeagleBone Green (BBG) is a TI Sitara AM335x (1GHz ARM Cortex-A8 processor) with 512MB DDR3 and 4GB eMMC (which is the standard boot device), a micro SD socket (the alternate boot device and data storage memory), two USB connectors (one client and one host), ethernet, two Grove 4-pin connectors and two 46-pin 2×23 0.100″ pin headers. The original BeagleBoard emerged around 2010, and in 2013 was a winner in Embedded Computing Design’s “2013 Top Embedded Innovator award” in the Top Products Silicon category. The BeagleBone Black (BBB) was launched in 2013 as a lower-cost barebones BeagleBoard, and the BBG was launched in 2015 with two Grove connectors replacing the BBB’s HDMI connector.

Open-Source Hardware

A significant advantage of the BBG (and the other BeagleBoards and BeagleBones) for that the physical design (the schematics and pcb layout files) are provided under an open-source license. The BBG files are in a GitHub project using the MIT license. For someone designing a similar-but-different product, this can be a significant time saver.  The openness reportedly continues to other technical details of the design, such as the low-level details of power management.

FreeBSD

The RaspBSD project provides pre-built images for the BBG. The project originally provided FreeBSD images for the Raspberry Pi, but has expanded their scope to include the BBG (and BBGW). Once I sorted out how to select the alternate boot device (to boot from the micro SD card I had copied the RaspBSD image to) everything started falling into place.

The RaspBSD image is based on Head, which is new for me as I’m running 10.3-RELEASE on my web server. However, I’m looking forward to experiencing life on the edge.

I’m not sure if this is correct, but it seemed to work consistently. To boot from the micro SD card instead of eMMC, disconnect power then hold down the switch beside the micro SD slot, apply power and continue holding the switch for a count of three. After some testing (and being sure I could re-load the bundled Ubuntu-based system if I wanted), I used the script provided with RaspBSD to copy the FreeBSD image to the eMMC. This significantly improved boot time and also freed up the micro SD card for data storage.

Conclusion

For me, the BBG is the superior single-board unix computer for basing a new product design on. The openly provided design files and technical documentation, as well as easy access to GPIOs and other hardware resources on the two pin headers, provide a significant head start compared to having to start from scratch.

4 Replies to “BeagleBone and FreeBSD”

  1. Dear Dale,
    I am a Calgary P. Eng (P. Eng membership expired)
    I too believe beagle bone to be superior to other similar products.
    Am developing products on mine (dsp related).
    Love Freebsd over Debian.
    Would love to exchange information with an ENGINEER who is into beagle board and FreeBSD.
    Hope we can meet sometime in CowTown.
    Grad U of C 1984 E. Eng

  2. Hi,
    I have a beagle bone green.
    I made a Sdcard as:
    dd if=./FreeBSD-12.0-CURRENT-arm-armv7-BEAGLEBONE-20180503-r333209.img of=/dev/mmcblk0 bs=1M
    I am following the button press procedure and I just see this at the console:
    CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
    If I dont press the button the u-boot keep reseting forever as

    No match for driver ‘omap_hsmmc’
    No match for driver ‘omap_hsmmc’
    Some drivers were not found
    Reset Source: Global warm SW reset has occurred.
    Reset Source: Power-on reset has occurred.
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Using default environment

    Board: BeagleBone Black
    not set. Validating first E-fuse MAC
    BeagleBone Black:
    BeagleBone: cape eeprom: i2c_probe: 0x54:
    BeagleBone: cape eeprom: i2c_probe: 0x55:
    BeagleBone: cape eeprom: i2c_probe: 0x56:
    BeagleBone: cape eeprom: i2c_probe: 0x57:
    Net: eth0: MII MODE
    cpsw, usb_ether
    Press SPACE to abort autoboot in 2 seconds

  3. Sorry marlus I can’t help. I haven’t tried loading FreeBSD onto my BBG since I wrote this post (in fact, I’ve just updated the BBG to the latest official release and am following the current set of Newark element14 webinars to re-familiarize myself with the main eco-system. I’m hoping for IIoT project to materialize soon!

Leave a Reply to Ian James Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.