# BeagleBone

## Overview

New from the fine people who have brought us the Beagle Board, we now have a smaller, lighter, but powerful single board linux computer, Beagle Bone! We like this move to a more compact and integrated SBC. For example, there is onboard Ethernet and USB host, as well as a USB client interface (a FTDI chip for shell access). It even comes preloaded with Angstrom Linux on the 4&nbsp;GB&nbsp;microSD card!

![](https://cdn-learn.adafruit.com/assets/assets/000/000/273/medium800/beaglebonetop_LRG.jpeg?1396761683)

The Beagle Bone is a great step up from&nbsp; **microcontrollers** &nbsp;(such as AVR, PIC, ARM Cortex M3, 8051, Propeller, etc) to&nbsp; **microcomputers**. Unlike a microcontroller, where the FLASH, EEPROM, RAM, etc is all in one chip, a microcomputer has them separated out, like a classic computer such as a desktop or laptop machine. The Beagle Bone has a main processor core running at 700MHz, a chunk of 256M DDR RAM, and permanent storage onto a microSD card. This makes for a powerful machine, that has no problems running Linux, a webserver, Python,&nbsp;FTP&nbsp;clients,&nbsp;SSH, etc.

The Bone also has great accessories built in, such as onboard Ethernet with 10/100M connectivity, mini USB port with TTL serial converter, JTAG debugger for advanced hacking, USB A host port for connecting a hub/WiFi/etc, power management IC that keeps the board safe from a misplugged adapter, and tons of 0.1" spaced breakouts

One of the powerful abilities of the Bone is that it has I2C, SPI, and GPIO at a hobbyist-friendly 3.3V level (instead of the more difficult to interface 1.8V) while also running complex applications such as a webserver. This allows for more complex projects that would tax an Arduino.

# BeagleBone

## Installing Drivers

This section will detail how to install drivers for the USB/Serial connection (and the other USB devices) from the Bone onto your Windows computer. We'll try to have more documentation on using the Bone with a Mac & Linux at some point but since so many people use Windows and its tougher to install the drives on Win than other&nbsp;OS's we'll start here!

For this tutorial you will need:

- **[Beagle Bone](http://www.adafruit.com/products/513)**

Pick these parts up at the Adafruit shop!

## Download & Install

First, we'll install the Windows driver package.[&nbsp;Download this link to BONE\_DRV.exe](http://beagleboard.org/static/beaglebone/latest/Drivers/Windows/BONE_DRV.exe)&nbsp;and double click it.  
  
When prompted/warned about the software, click&nbsp; **Continue Anyways** &nbsp;- you'll need to do it 3 times - once for each driver.
![](https://cdn-learn.adafruit.com/assets/assets/000/000/279/medium800/beaglebone_bone1.png?1396761749)

![](https://cdn-learn.adafruit.com/assets/assets/000/000/281/medium800/beaglebone_bone2.png?1396761782)

## Connect!
Start by opening up your Bone packaging, and finding the MiniB USB cable  
![](https://cdn-learn.adafruit.com/assets/assets/000/000/282/medium800/beagleboneexrtas.jpeg?1396761787)

Plug the miniB side into the Bone, and the A side into your Windows computer. You'll see a popup saying the computer found a USB serial converter.![](https://cdn-learn.adafruit.com/assets/assets/000/000/284/medium800/beaglebone_found-xds100v2.png?1396761809)

And then an install popup. Click&nbsp; **Install the software automatically** &nbsp;and&nbsp; **Next.** ![](https://cdn-learn.adafruit.com/assets/assets/000/000/286/medium800/beaglebone_install-xds100v.png?1396761836)

Click&nbsp; **Continue Anyway** &nbsp;when it warns you.![](https://cdn-learn.adafruit.com/assets/assets/000/000/287/medium800/beaglebone_xds-continue.png?1396761852)

You should finish successfully.![](https://cdn-learn.adafruit.com/assets/assets/000/000/289/medium800/beaglebone_xds100v1.png?1396761877)

Next you'll go through the same process for the Disk Drive and Beaglebone devices.![](https://cdn-learn.adafruit.com/assets/assets/000/000/290/medium800/beaglebone_found-disk-drive.png?1396761895)

![](https://cdn-learn.adafruit.com/assets/assets/000/000/292/medium800/beaglebone_found-new-hardware-bone.png?1396761921)

![](https://cdn-learn.adafruit.com/assets/assets/000/000/293/medium800/beaglebone_usbserialport-popup.png?1396761935)

Follow the same instructions, installing&nbsp; **Automatically** &nbsp;and clicking&nbsp; **Continue Anyways.**

Finally, you will have the new USB serial port. Go to the Device Manager on your computer to find the name of the COM port. In my case its&nbsp; **COM17.**

![](https://cdn-learn.adafruit.com/assets/assets/000/000/295/medium800/beaglebone_device-manager.png?1396761967)

That's it, you've installed the drivers! Next up we'll connect via serial and log in.# BeagleBone

## Ethernet

This mini tutorial will show you how to connect to the Bone via the serial connection to determine the IP address, test the network connection and&nbsp;DNS. You'll need to know the COM serial port address, see the&nbsp;[Drivers](http://www.ladyada.net///drivers.html)&nbsp;tutorial on how to determine the COM and install drivers.

For this tutorial you will need:

- **[Beagle Bone](http://www.adafruit.com/products/513)**
- **[Ethernet Cable](http://www.adafruit.com/products/730)**

Pick these parts up at the Adafruit shop!

## Terminal Software
  
To connect via the USB cable, you'll need a terminal program. Built into Windows is Hyperterm. You can google around to find another good terminal program.

Connect to the Bone's COM port at 115200 baud, 8 bit, No parity, 1 stop bit, no flow control.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/300/medium800/beaglebone_com17.gif?1447975312)

![](https://cdn-learn.adafruit.com/assets/assets/000/000/303/medium800/beaglebone_hyperterm.gif?1447975331)

![](https://cdn-learn.adafruit.com/assets/assets/000/000/304/medium800/beaglebone_prop.gif?1447975342)

Hit return a few times, to show the login screen.![](https://cdn-learn.adafruit.com/assets/assets/000/000/305/medium800/beaglebone_angstrom-login.gif?1447975352)

Log in with the user name&nbsp; **root&nbsp;** and no password.![](https://cdn-learn.adafruit.com/assets/assets/000/000/307/medium800/beaglebone_rootlogin.gif?1447975373)

That's it you're logged in!## dmesg
  
Now we can try out the Ethernet connection. Plug a standard straight-through cable from the Bone to your Ethernet router.

Our favorite tool is&nbsp; **dmesg** &nbsp;- this will tell you all the system messages, such as what hardware was found. Type&nbsp; **dmesg** &nbsp;and hit return at the&nbsp; **root@beaglebone: ~#** &nbsp;prompt.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/309/medium800/beaglebone_dmesg1.gif?1447975395)

![](https://cdn-learn.adafruit.com/assets/assets/000/000/311/medium800/beaglebone_dmesg2.gif?1447975416)

As you can see the last part of boot up is to bring the ethernet connection&nbsp; **eth0** &nbsp;up.## Ethernet Test
  
You can verify the ethernet connection by typing in&nbsp; **ifconfig -a**  
![](https://cdn-learn.adafruit.com/assets/assets/000/000/313/medium800/beaglebone_ifconfig--a.gif?1447975439)

You can see under&nbsp; **inet addr:** &nbsp;the internet address of the Bone - it uses&nbsp;DHCP&nbsp;to automatically get an IP address and this is what the router gave us back. If you don't see anything, try rebooting the system by typing in&nbsp; **reboot** &nbsp;and hitting return. Make sure your Ethernet cable is well connected to both the Bone and the router.

Now you can test the outgoing connection. Type in&nbsp; **ping 18.70.0.160** &nbsp;and hit return.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/314/medium800/beaglebone_ping.gif?1447975452)

If it works, you'll see the above. You can type Control-C to cancel.

Next you can test the&nbsp;DNS&nbsp;system, by pinging&nbsp;[www.google.com](http://www.google.com/)&nbsp;, which should also succeed.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/315/medium800/beaglebone_pingdns.gif?1447975466)

# BeagleBone

## WiFi

Info: 

Now that you have your Bone up and running, and Ethernet works, wouldn't it be nice to get rid of that Ethernet cable? Yeah, let's go WiFi! This tutorial is specifically for the verified&nbsp;**[WiFi adapter for Beagle Bone](http://www.adafruit.com/products/814)&nbsp;**adapter in the Adafruit shop. It will not work with other WiFi adapters, as they all have different chipsets!![](https://cdn-learn.adafruit.com/assets/assets/000/000/120/medium800/beaglebone_wifiplug.jpg?1396760591)

For this tutorial you will need:

- **[Beagle Bone](http://www.adafruit.com/products/513)**
- **[WiFi adapter](http://www.adafruit.com/products/814)**
- **[5V 2000mA Power Adapter](http://www.adafruit.com/products/276)**

Pick these parts up at the Adafruit shop!

## Power and WiFi
  
The BeagleBone has the neat ability to power itself just through the mini USB port. However, this can cause some problems because the USB port cannot supply enough power for BOTH the Bone and a WiFi adapter.  
Info: 

## Driver Install
You'll need to have [Internet connectivity using Ethernet](http://learn.adafruit.com/beaglebone) , and also be logged into the terminal to install the WiFi   
adpater's driver, so make sure to complete those tutorials first!

While logged in with Internet working, run **opkg update**

Then run **mkdir /home/root/tmp** to make a new temp directory then run **opkg**  **-t /home/root/tmp upgrade**

  
![](https://cdn-learn.adafruit.com/assets/assets/000/000/121/medium800/beaglebone_opkg-update.gif?1447974714)

then type in&nbsp; **opkg list 'linux-firmware-rt** \*' and hit return.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/122/medium800/beaglebone_list-pkg.gif?1447974725)

Finally type in&nbsp; **opkg install linux-firmware-rtl8192cu** &nbsp;and press return. Plug in the WiFi dongle, then type in&nbsp; **reboot** &nbsp;and return to reboot the machine.

Now that its rebooted, check&nbsp; **dmesg** &nbsp;- you should see the following

![](https://cdn-learn.adafruit.com/assets/assets/000/000/123/medium800/beaglebone_postreboot.gif?1447974735)

And if you type in&nbsp; **ifconfig wlan0** &nbsp;there should be a link, it wont be connected yet so there's a lot of 0's and no&nbsp; **inet addr** ![](https://cdn-learn.adafruit.com/assets/assets/000/000/124/medium800/beaglebone_ifconfigwlan0.gif?1447974745)

Now we can set up the connection manager to automatically manage the wifi. Edit&nbsp; **/var/lib/connman/settings&nbsp;** (I use vi but nano is also installed) and change WiFi from false to true, save it.![](https://cdn-learn.adafruit.com/assets/assets/000/000/125/medium800/beaglebone_viconnman.gif?1447974755)

Create a file **&nbsp;/var/lib/connman/wifi.config** &nbsp;with your settings as shown below, starting with the&nbsp;**[service\_home]**&nbsp;line and with a return after the **&nbsp;Passphrase&nbsp;** line, of course this should match your home network, not the adafruit one!

![](https://cdn-learn.adafruit.com/assets/assets/000/000/126/medium800/beaglebone_wificonfig.gif?1447974766)

Restart connman to get it to accept the new settings:

**root@beaglebone:~# systemctl restart connman.service**

![](https://cdn-learn.adafruit.com/assets/assets/000/000/127/medium800/beaglebone_resetartconnman.gif?1447974777)

After less than 30 seconds or so, you should be connected:

**root@beaglebone:~# ifconfig wlan0**

![](https://cdn-learn.adafruit.com/assets/assets/000/000/128/medium800/beaglebone_wlan0up.gif?1447974788)

There should now be an&nbsp; **inet addr&nbsp;** You can then test pinging an IP address and a domain name.![](https://cdn-learn.adafruit.com/assets/assets/000/000/129/medium800/beaglebone_wlanping.gif?1447974799)

![](https://cdn-learn.adafruit.com/assets/assets/000/000/130/medium800/beaglebone_wlandns.gif?1447974809)

Finally, if you want more detailed information about your link you can&nbsp; **opkg install wireless-tools** &nbsp;to get the&nbsp; **iwconfig** &nbsp;command, which will give you tons of details.![](https://cdn-learn.adafruit.com/assets/assets/000/000/131/medium800/beaglebone_installwirelesstools.gif?1447974820)

![](https://cdn-learn.adafruit.com/assets/assets/000/000/132/medium800/beaglebone_iwconfig.gif?1447974829)

## Troubleshooting

If you get an error device descriptor read/64, error -71, reboot and stop the boot process with the space bar. Then add the following boot option with the follow at the U-Boot prompt  
  
setenv bootargs irqpoll RETURN  
  
boot RETURN
# BeagleBone

## Buy a BeagleBone

# BeagleBone

## Adafruit Forums

# BeagleBone

## Downloads

- [Protoboard EagleCAD files on GitHub](https://github.com/adafruit/Adafruit-BeagleBone-ProtoBoard)
- [Fritzing object in the Adafruit Fritzing Library](https://github.com/adafruit/Fritzing-Library)


## Related Guides

- [Ethernet for CircuitPython with Wiznet5K](https://learn.adafruit.com/ethernet-for-circuitpython.md)
- [Trash Panda](https://learn.adafruit.com/trash-panda-circuit-python-crickit.md)
- [Simple Vertical Wordclock](https://learn.adafruit.com/vertical-wordclock.md)
- [Magical Light-up Dreidel](https://learn.adafruit.com/magical-light-up-dreidel.md)
- [Crickit Dancing Marionette Kit](https://learn.adafruit.com/universal-marionette-with-crickit.md)
- [BLE Light Switch with Feather nRF52840 and Crickit](https://learn.adafruit.com/bluetooth-light-switch-with-crickit-and-nrf52840.md)
- [Crickit Powered Dancin' Snowman!](https://learn.adafruit.com/crickit-powered-dancin-snowman.md)
- [StarFlower NeoPixel Strand with MakeCode](https://learn.adafruit.com/starflower-neopixel-strand.md)
- [Spinning Disc Step Sequencer](https://learn.adafruit.com/spinning-disc-step-sequencer.md)
- [Nunchuck Controlled Laser Cat Toy](https://learn.adafruit.com/nunchuck-controlled-laser-cat-toy.md)
- [Crickit Lab Shaker](https://learn.adafruit.com/crickit-lab-shaker.md)
- [Bluetooth-Controlled Matrix LED Sign using Bluefruit Connect](https://learn.adafruit.com/bluetooth-controlled-matrix-led-sign-using-bluefruit-connect.md)
- [Bluefruit Luminary Lanterns with Capacitive Touch](https://learn.adafruit.com/bluefruit-luminary-lanterns-with-capacitive-touch.md)
- [Automatic Mechanical Watch Winder](https://learn.adafruit.com/automatic-mechanical-watch-winder.md)
- [CRICKIT WobblyBot](https://learn.adafruit.com/crickit-wobblybot.md)
