Project 4A
Beaglebone Bring-Up
INTRODUCTION:
The venerable Arduino, while fun and useful, is an old and weak system:
- Limited CPU power greatly restricted the possible processing.
- Limited memory greatly restricted the type of software that could be run.
- The available libraries were minimal, and mostly device related.
- Development had to be done on another system, cross-compiled,
and then up-loaded and flashed onto the Arduino.
The Beaglebone is a much more powerful platform.
It runs a full-blown Linux system:
- it hosts remote terminal access via both USB and WIFI.
- it has a package manager that can be used to find and download software from the internet.
- it can host its own complier and development tools.
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:
- ensure students have a working Beaglebone.
- ensure that students can log into their Beaglebone via both USB and WIFI.
- ensure that students have the ability to transfer files to/from their Beaglebone.
- ensure students have a working Beaglebone development environment.
- ensure students have the ability to install new packages on their Beaglebone.
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:
- a selfie (my_beaglebone.jpg) of you holding your unpacked powered-up Beaglebone (showing the front of the board).
- a screen shot (connected.png) from a USB terminal command session connected to your system, showing that you gave it a name and configured network access.
- a screen shot (copy.png) from a local session in which you copy a hello world program
from your laptop/desktop to your Beaglebone.
- a screen shot (build_run.png) from a WIFI SSH session in which you build and run
a trivial (hello world) program.
- a screen shot (git.png) from a WIFI SSH session in which you
clone a repository.
- a Makefile to build the tarball.
- a README file containing the serial number of your Beaglebone and the WiFi (unless you are using a
hard-wired ethernet connnection) MAC address,
and a description of the above files.
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.
-
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.
- Most Linux distros come with IP over USB support automatically enabled, so you
should be able to use ssh access your BeagleBone
(likely at 192.168.7.2).
- There is a Windows BeagleBone driver that will also enable IP over USB access
to your BeagleBone. Once that driver is installed you should be able to use
the Secure Shell or PuTTY command to connect to your BeagleBone
(likely at 192.168.7.2).
- A similar (HoRNDIS) package is available for MAC users. Once that
driver is installed, you should be able to use the ssh command
to connect to your BeagleBone
(likely at 192.168.6.2).
If you run MacOS and have the Screen program
might allow you to access the Beaglebone via USB.
-
Read Linux on the Beaglebone.
This provides some basic information on using Linux on the Beaglebone.
-
Read WiFi, SSH, and SFTP on the Beaglebone. Follow the instructions in
this tutorial to:
- use the passwd program to create root and debian
passwords for your BeagleBone.
The default password for the debian account is temppwd,
and (by default) the root account has no password.
- use the connmanctl command to enable WiFi, scan the available
networks, select one, and enter its pass phrase.
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.
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.
- 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.
- 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.
- 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.
-
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:
NAME: your name
EMAIL: your email
ID: your student ID
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 |