ECE497 Beagle VNS
Embedded Linux Class RHIT
by Tom Atnip, Kevin Geisler, Ruffin White
Team members: Tom Atnip, Kevin Geisler, Ruffin White
We wanted a way for students to be able to leave audio (and possibly video) messages for professors when they are out of their office. Using a BeagleBoard Bone, we plan to connect a wireless USB device and a PlayStation Eye to achieve this. Students will be able to walk up to the device and press a button to record their message which will then be available for the professor.
At this time, we have a method for capturing audio for a specified amount of time and encoding that recording into a mp3 file. We also have python script that allows the user to send email messages to another email by running a script. We also have a working external power source for the beagle.
The wireless usb adapter does not work at this time. We are still trying to get recompile the kernel to install and enable the driver for this wireless adapter.
Overall we are looking at creating a c program that will record the audio while the button is being pressed. Once the button has been released the program will encode the raw audio into mp3 format, and then attach it via an email and send it to the owner of the Beagle VNS system.
Installation Instructions 1
- In order to use the project code for the Beagle VNS, you will need github installed in order to download the code. If you do not have github there are instruction on how to install it on the ECE Exercise 16 web page.
- To download the code for the Beagle VNS run the following code:
beagle$ git clone https://github.com/geislekj/BeagleBoardVNS.git
- Python is natively installed on the Beagle operating system. However it is important to note that the program will be using a python script to send email.
- The project uses ALSA drivers in order to record audio from a microphone device.
- In order to download the ALSA drivers you will need to run the following commands:
beagle$ opkg update beagle$ opkg install alsa-utils-aplay alsa-utils-amixer
- Lame is a audio encoder that will take raw audio and convert it into an mp3 format.
- To install the lame onto the beagle board you will need to run the following command.
beagle$ opkg install lame
- GStreamer is an application that allows the user to capture video from a camera for multiple types of solutions. For this project, it is being used to capture an image of the person leaving a message.
- Instructions to install GStreamer is still in the process of being developed.
Installation Instructions 2
This project is design primarily for the BeagleBone, but could be implemented on any other Beagle Board given the proper driver installation for the USB hardware and available GPIOs. The BeagleBone is applicable for this project due to is small size, low power consumption, and networking capabilities. Make sure
- Wifi Dongle
- Battery Pack
- Basic Command Line Examples
- In order to give you a feel to how the program is capturing and sending emails. Here is a short run down of how the program works
- Audio Capture
- In order to capture audio, the project uses arecord. This application allows you to grab audio from a microphone that is attached to your device and save to the current directory in a raw format.
- Here is an example command that allows you to record audio and then pipe the audio into aplay to instantaneously hear feedback:
beagle$ arecord -D plughw:1,0 | aplay
- In order to encode the audio into mp3 format, you will need to pipe the audio into lame instead of aplay.
- Here is an example of this:
beagle$ arecord -D plughw:2,0 -r 16000 -f S16_LE -c 2 -t raw -d 3 | lame -s 16 -r - blackbird.mp3
- For more information about ALSA and how to use many of its interesting features visit | Jan Axelson's Lakeview Research web page
- Email Script
- Instructions for this section are being developed.
Here is where you brag about what your project can do.
Include a YouTube demo.
Theory of Operation
Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.
List the major tasks in your project and who did what.
Also list here what doesn't work yet and when you think it will be finished and who is finishing it.
- Acquire Hardware - Ruffin
- Set up project page - Tom & Kevin
- Get USB wireless to work - Kevin & Ruffin This is not working at this time.
- Get PlayStation Eye to work - Tom
- Get BeagleBoard Bone to run off a battery pack - Ruffin
- Register an email for the BeagleBoard - Ruffin
- Create an email script to send email with attachments - Tom
- Encode the raw audio from ALSA into mp3 format - Kevin
- Capture an image using GStreamer - Kevin & Tom This is still being developed
- Create a C program to capture the audio and listen for GPIO inputs - Kevin & Ruffin This is still being developed
- Putting all the pieces together - Tom, Kevin, & Ruffin This is still being developed
Suggest addition things that could be done with this project.
- Web Interface using HTML and NodeJS
Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.
Need More Cake
Embedded Linux Class RHIT