Project 4A
Beaglebone Bring-Up

INTRODUCTION:

The venerable Arduino, while fun and useful, is an old and weak system:

The Beaglebone is a much more powerful platform. It runs a full-blown Linux system:

Other than size and power, the biggest difference between an Beaglebone and a desktop computer is that the Beaglebone has a great many programmed I/O pins that can be used to interact with a wide range of sensors and actuators. This difference makes it a very reasonable platform for both Embedded Systems and Internet of Things projects.

The Beaglebone comes in several models. You will be working with the Beaglebone Green Wireless model. Obtaining this model is important, since other Beaglebone models do not have the wireless networking capability required for the project you will be performing. You will be provided with detailed instructions on obtaining the right model of Beaglebone for this project.

Currently the version of software commonly installed on Beaglebones is not the best version for this project. In the section describing the project below, we will describe how you should update this software for the project.

RELATION TO READING AND LECTURES:

None. All of this work is preliminary to embedded system software development.

PROJECT OBJECTIVES:

This should be a simple matter of following simple steps. But if you do not have communication with a working Beaglebone development environment, you will be unable to complete the remaining embedded systems projects.

DELIVERABLES:

A single compressed tarball (.tar.gz) containing:

Most phones can produce .jpg images and Linux screen shots are usually .png but any of these images can be submitted in .jpg, .png or .gif format.

PROJECT DESCRIPTION:

    There are a number of useful tutorials for working with the Beaglebone, which are referenced below in the various steps of the project. We strongly recommend that you read them before performing each step.
  1. Flash the Beaglebone with an updated version of the system software. Your TA will help you perform this operation, so consult your TA on this step. Reflashing the software has proven particularly important if you are using a Mac computer to interact with it.
  2. Read Introduction to the Beaglebone. This tutorial will provide information on configuring your BeagleBone's hardware and software. Follow its instructions on how to assemble it, power it up and connect it (via USB) to your personal notebook or desktop. Establish a USB terminal login session from your notebook/desktop to your Beaglebone. If you run MacOS and have not, for some reason, been able to reflash your Beaglebone, as described above, the Screen program might allow you to access the Beaglebone via USB.
  3. Read Linux on the Beaglebone. This provides some basic information on using Linux on the Beaglebone.
  4. Read WiFi, SSH, and SFTP on the Beaglebone. Follow the instructions in this tutorial to create a password for your Beaglebone and enable WiFi access to it. Change the name of your Beaglebone to studentID.lasr.cs.ucla.edu (instructions on how to do so can be found here). Then run the ifconfig command to display the IP and MAC addresses, and take a screen shot.
  5. Read Beaglebone Tutorial: GPIO, Interrupt, Analog and PWM. This tutorial will provide information on how to use the Grove Base Cape and sensors with your Beaglebone.
  6. Log in to your Beaglebone (over WIFI) via ssh (or putty or other equivalent tool).
  7. On your notebook/laptop, write a trivial C "Hello World" program. Follow the instructions in WiFi, SSH, and SFTP on the Beaglebone to use sftp to copy that program from your notebook/desktop to your Beaglebone. Alternately, figure out how to use scp(1) to transfer your program to the Beaglebone. If your notebook/desktop runs Windows, use PSCP to transfer the program. Take a screen shot (on your desktop/laptop) of the successful copy command.
  8. Use ssh(1) to connect (via WIFI) to your Beaglebone, and compile and run a simple C "Hello world." program. Take a screen shot of the compilation and execution.
  9. Download the git version control system onto your Beaglebone and use it to create a code repository on that Beaglebone. Use apt-get to get the git package onto the Beaglebone. You can find instructions on using apt-get at the Debian apt-get description page. Once you have installed git, use it to clone a local copy of a repository (e.g. your own github repo). Take a screen shot of the clone command and directory listing.

SUBMISSION:

Your tarball should have a name of the form lab4a-studentID.tar.gz. You are strongly advised to sanity check your submission with this test script. Much of this project will be auto-graded. Passing the sanity check does not guarantee a high score, but submissions that do not pass the sanity check should expect to receive very low scores!

Your README file must include lines of the form:

And, if slip days are allowed on this project, and you want to use some, this too must be included in the README file: If, for instance, you wanted to use two slip-days, you would add the following line:

GRADING:

Points for this project will be awarded:

Value Feature
5% untars expected contents
5% obtain and assemble your own Beaglebone
10% successfully establish USB terminal session
20% successfully establish ssh session
20% successfully copy a file via scp/sftp protocol
20% successful compilation and execution
20% successful git install and clone