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 you will likely need for Project 4C. You will be provided with detailed instructions on obtaining the right model of Beaglebone for this 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. 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. On all of these systems it may take a minute or so from the time you power your BeagleBone on to the time it is willing to accept incoming ssh connections.
  2. Read Linux on the Beaglebone. This provides some basic information on using Linux on the Beaglebone.
  3. Read WiFi, SSH, and SFTP on the Beaglebone. Follow the instructions in this tutorial to: You might want to change the host name of your BeagleBone to reflect who it belongs to.
    Then run the ifconfig command to display the IP and MAC addresses, and take a screen shot.
  4. In the event that you are unable to find or use the necessary IP over USB support (for your personal desktop or laptop system), it is completely acceptable for you to work with another student (who has gotten the connection working from their system), and use their system to connect to and enable WiFi (for a network you can use) on your Beaglebone. Once this has been done, you should (given that you know the BeagleBone's assigned IP address) be able to ssh or scp into your BeagleBone from almost any system.

  5. Log in to your Beaglebone (over either WIFI or IP over USB) via ssh (or putty or other equivalent tool) using the IP address that has been assigned to your BeagleBone.
  6. On your notebook/laptop, write a trivial C "Hello World" program. Follow the instructions in WiFi, SSH, and SFTP on the Beaglebone to use scp or 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.
  7. 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.
  8. Use git to clone a local copy of some repository (e.g. one of your own personal repos on github). Take a screen shot of the clone command and directory listing.

    You might find it eaier to use an "https://github.com" (rather than an ssh git@github.com:) URL to do your repo clone, as the ssh protocol will require you to create and register new public keys on your embedded platform.

One of the nice things about the BeagleBone is that it comes with on-board flash with Linux already installed. Occasionally the on-board flash Linux installation becomes damaged, and it is necessary to re-flash it. You can do this for yourself, but we have flasher micro-SD cards already made and can help you.

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