I recently started working the BeagleBoneBeagleBone, an Open Source Hardware Single Board Computer (SBC).  For those not familiar:

BeagleBone is a low-cost credit-card-sized Linux computer that connects with the Internet and runs software such as Android 4.0 and Ubuntu. With plenty of I/O and processing power for real-time analysis provided by the TI Sitara™ AM335x ARM® Cortex™-A8 processor, BeagleBone can be complemented with cape plug-in boards which augment BeagleBone’s functionality.

source: BeagleBone Quick Start Guide


The BeagleBone 101 slideshow does a good job of introducing the BeagleBoard, the BeagleBone and BoneScript.  I've been impressed by how easy BoneScript makes it to control physical hardware with JavaScript.  I am going to walk through some basic BoneScript examples, but first I'll describe the experience of connecting the BeagleBone to my computer for the first time.


The Bone does come with a preloaded microSD card with Angstrom (the default Linux distro for the Bone).  However, I wanted to make sure I had the latest software, so I downloaded the latest Angstrom image and flashed it onto the microSD card.  The BeagleBone Quick Start Guide has more info on how to do that.


Next, I connected the BeagleBone to the USB port on my laptop (running Ubuntu Linux 12.04).  This provides power to the Bone which then boots up off the microSD card.  The BeagleBone initially shows up as a USB mass storage device:


The contents include drivers for Windows users to continue with the next step.  Luckily, no additional drivers are needed for Linux:


Upon ejecting the BeagleBone USB mass storage device, the BeagleBone will then appear as Ethernet-over-USB interface:

afustini@lappy486:~$ ifconfig eth1

eth1      Link encap:Ethernet  HWaddr d4:94:a1:92:59:57 

          inet addr:  Bcast:  Mask:

          inet6 addr: fe80::d694:a1ff:fe92:5957/64 Scope:Link


          RX packets:233 errors:0 dropped:0 overruns:0 frame:0

          TX packets:252 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:35937 (35.9 KB)  TX bytes:66085 (66.0 KB)

The kernel messages on my laptop:

Feb  8 00:52:15 lappy486 kernel: [211558.726102] cdc_ether 2-1.2.2:1.0: eth1: register 'cdc_ether' at usb-0000:00:1d.0-1.2.2, CDC Ethernet Device, d4:94:a1:92:59:57

Feb  8 00:52:15 lappy486 kernel: [211558.760561] ADDRCONF(NETDEV_UP): eth1: link is not ready

Feb  8 00:52:15 lappy486 kernel: [211558.760784] ADDRCONF(NETDEV_UP): eth1: link is not ready

Feb  8 00:52:16 lappy486 kernel: [211558.786409] ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

Feb  8 00:52:16 lappy486 kernel: [211558.787311] martian source from, on dev eth1

Feb  8 00:52:18 lappy486 kernel: [211560.786518] martian source from, on dev eth1

Feb  8 00:52:18 lappy486 kernel: [211560.792507] martian source from, on dev eth1

This allowed me to then ssh into the BeagleBone:

afustini@lappy486:~$ ssh root@

root@'s password:

root@beaglebone:~# uname -a

Linux beaglebone 3.2.34 #1 Wed Nov 21 14:17:11 CET 2012 armv7l GNU/Linux

root@beaglebone:~# cat /etc/issue


|       |                  .-.           o o       

|   |   |-----.-----.-----.| |   .----..-----.-----.

|       |     | __  |  ---'| '--.|  .-'|     |     |

|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |

'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'

                -'  |



The Angstrom Distribution \n \l


Angstrom v2012.05 - Kernel \r


root@beaglebone:~# ls



Here's a screenshot:


The BeagleBone also presents it's self as a USB serial device, too.  A terminal emulator (I use gtkterm on Linux) can then connect to the BeagleBone's console.


In my next post, I'll show the slick built-in web-based IDE, Cloud9, and how Javascript can be used to control circuits connected to the BeagleBone using the BoneScript library.