Saturday, June 8, 2013

New Toy: BeagleBone Black

It's been a while since I got a new toy and I've been eyeing a Raspberry Pi, for no other reason than everyone seems to have one. A few months ago, I read about the BeagleBone Black (BBB), a revised version of the BeagleBone with more power and a much cheaper price of $45, barely more than a Pi. Sold! I just had to find a place that had them in stock. I eventually found a site, Special Computing, that had the BBBs for $43 each (has since gone back to MSRP) with just $3 first class USPS shipping for 2 (I always tend to buy these type of gadgets in pairs for some reason - Quatech serial servers, Rio Receivers, 3Com Audreys, Insignia Infocasts, Seagate Dockstars...) I ordered them Sunday night, they shipped out Monday from Arizona and arrived at my office in Silicon Valley on Wednesday. It came too fast! I usually have time to do a bit of research to plot out what I'm going to do with my new toy before it arrives.

Last night, I finally had some spare cycles and got to work. I knew I didn't want to use the Angstrom Linux that comes pre-installed on the BBB - I wanted something with access to the most recent Linux packages. I figured I'd go for Ubuntu. I wanted to see how a desktop would run on it anyway. I went with a pre-built Ubuntu 13.04 image and followed these directions to install it on an 8GB microSD card I had lying around using my wife's Linux laptop. (Yes, I have my wife, and 10 and 12 year olds, running Ubuntu on their laptops instead of Windows!) Next thing was to get the BBB booting off the uSD card. Apparently, there's button on the BBB you push to force it to boot from the uSD instead of the onboard eMMC, but that's not going to work for unattended use. Instead, I found this method to easily get the BBB to automatically boot from the uSD card: connect the BBB to your computer like a USB drive, but instead of deleting the MLO file, I just renamed it - in case I want to boot from the eMMC in the future.

After disconnecting the BBB from my laptop, I put the uSD in it, powered it up and booted Ubuntu from the card. Shellinabox comes up by default allowing me to log into the BBB in a browser window. SSH didn't come up so I enabled that with "sudo update-rc.d ssh defaults" and went through the process of adding a user ("sudo adduser ...") and adding that user to the sudoers file. Then I set up a light window manager ("/bin/bash /boot/uboot/tools/ubuntu/"), installed vnc ("sudo apt-get install vnc4server") and setup VNC to use lxde. I also wanted bluetooth support ("sudo apt-get install bluez") and needed Python pexpect for a project I want to do (Python was already installed in the Ubuntu image). Pexpect came as a .deb file so I needed to installed dpkg ("sudo apt-get install dpkg") to be able to install pexpect ("sudo dpkg -i python-pexpect_2.4-1_all.deb").

That's how far I got last night. I was able to VNC in, see the lxde window manager come up, launch Chromium and log into GMail in slow motion. Web browsing seems a bit much for this platform. I have yet to hook it up to a monitor (I need to get a mini HDMI to HDMI cable). My immediate use will be to experiment with the TI SensorTags. The tags use bluetooth low energy (BLE), which is built into Linux kernels 3.5 and higher.


  1. Hello,

    you posted here: that you are running zwave stick on BBB. Can you provide more info about it? I like to buy BBB and do the same thing instead of RPi and Razberry Pi. BBB seems to be better machine for that purpose.

  2. i'm using openzwave ( ) and python-openzwave ( ) since i prefer to code in python. build & install openzwave then do the same with python-openzwave, if you go that route. in the python-openzwave directory, there's an example directory with code that will help jumpstart you on interfacing with openzwave.

    1. Can you tell me which Zwave srick you are using with opan-zwave and BBB?

    2. aeon labs zstick 2