Andrew B. Wright, Ph. D., SM ’88

8/21/2018

Next Post: Remoteproc “Hello, world!” (NOTE: link will be made live when blog has been transferred.)

WARNING:  Many ISPs are cracking down on man-in-the-middle attacks, so you may find that you cannot bridge a wireless connection to a wireless connection (802.1X).  Consequently, the wireless network setup described below needs to bridge a wireless to wired connection or wired to wireless connection.

At present, I’m using a wireless connection on the beaglebone to connect to a wireless connection on my mac mini (or later ipad). This is not allowing access from beaglebone to internet. When I need to update the beaglebone (which requires access to the debian servers), I have to connect the beaglebone directly to a wired network. This situation is awkward, but it works well enough to accomplish my objectives Nonetheless, I recommend that you follow both the wireless connection step and the wired connection step below.

When the beaglebone is deployed, it needs to be “headless” which means no monitor or keyboard. You need to be able to log in through a wireless connection to manage the beaglebone. Therefore, making a wired connection will require some form of keyboard and monitor connection directly to the beaglebone. This can be accomplished by connecting the beaglebone through wired ethernet to a computer that can bridge the connection. Or, it may mean that the beaglebone case must contain access to connections for keyboard and monitor.

This is a blog about my experiences getting a Beaglebone Black up and running.  I am retrofitting my Control and Sensor System (CASSY) robotics project from the Vex PIC Microcontroller to something else.

The retrofit of the CASSY platform using the Beaglebone Black (rev. C) is an extension of the work that Traig Born did on the J5 robotics platform.  It is an embedded linux platform, so I’m more comfortable with maneuvering on it than on the Cortex (the new Vex platform).

A new version of the Beaglebone Black has been introduced after I started this project, the Beaglebone Black Wireless.  This blog does not currently address this platform; however, I have purchased the hardware and will start to incorporate that platform into this tutorial.  In particular, the section on wired connectivity is not relevant, since the Beaglebone Black Wireless does not have a wired connector.

In this blog, there are a total of four processors/systems in play:

  • the host computer (in my case a mac mini running osx)
  • the beaglebone arm processor running debian linux
  • programmable real time unit 0 (pru0) on the beablebone
  • programmable real time unit 1 (pru1) on the beablebone

Hardware to purchase to get started:

microSD card and adapter (example: sandisk extreme plus, 64 Gb)various
HDMI cableadafruit.com
wifi-dongle (Realtek RTL8188CUS)adafruit.com
host computervarious
cat5 cross-over cable (optional)mouser.com
beaglebone power adapteradafruit.com
usb keyboard/mouse comboadafruit.com
beaglebone black rev. Cadafruit.com
usb ethernet portapple.com
wireless access pointvarious
Old topography for BBK
Wireless network topography with a mac mini and access point
  1. Update the Beaglebone to the latest debian!  The Beaglebones may sit in your supplier’s inventory for a while. Many devices (like pwms and wifi) don’t work the same as they do in the latest version. You can test version using uname -r (after you’re logged in, see below).
  2. Set up root access and remote root access!
  3. Get the beaglebone onto a network!
    1. wireless network (see network topography figure)
    2. wired network using ethernet port
    3. wired network using usb port (not covered in this work)
    4. wired network using serial port (not covered in this work)
  4. Wifi can be droppy … fix it! Get wifi to restart when it drops using cron.
  5. Update the system! Once you have internet connectivity, update the system.
  6. Get back to basics and free some disk space!
  7. Test programming on the arm
  8. Access an LED from the arm

Code Archive

All the code for the blog will be archived here (at the beginning) so that you can find it easily without tracing through all the “next blog” links.

  • hello, world (remoteproc version)
  • toggle
  • time
  • talk
  • gpio
  • analog input
  • pwm
  • i2c
  • spi

Obsolete Content

I have removed the obsolete content which is over a couple of years old. As I edit and discover there may be useful information, I’ll drop content from the blog above to this section.