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:192.168.7.1 Bcast:192.168.7.3 Mask:255.255.255.252
inet6 addr: fe80::d694:a1ff:fe92:5957/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
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 192.168.7.1 from 192.168.7.2, on dev eth1
Feb 8 00:52:18 lappy486 kernel: [211560.786518] martian source 255.255.255.255 from 192.168.7.2, on dev eth1
Feb 8 00:52:18 lappy486 kernel: [211560.792507] martian source 255.255.255.255 from 192.168.7.2, on dev eth1
This allowed me to then ssh into the BeagleBone:
afustini@lappy486:~$ ssh root@192.168.7.2
root@192.168.7.2'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 o
| | |-----.-----.-----.| | .----..-----.-----.
| | | __ | ---'| '--.| .-'| | |
| | | | | |--- || --'| | | ' | | | |
'---'---'--'--'--. |-----''----''--' '-----'-'-'-'
-' |
'---'
The Angstrom Distribution \n \l
Angstrom v2012.05 - Kernel \r
root@beaglebone:~# ls
Desktop
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.
Cheers,
Drew
Top Comments