ECE597 Project EchoLink

From eLinux.org
Revision as of 00:17, 17 November 2014 by Darsnack (talk | contribs)
Jump to: navigation, search

thumb‎ Embedded Linux Class by Mark A. Yoder


Team members: Kyle Daruwalla

Grading Template

I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!

00 Executive Summary
00 Installation Instructions 
00 User Instructions
00 Highlights
00 Theory of Operation
00 Work Breakdown
00 Future Work
00 Conclusions
00 Demo
00 Late
Comments: I'm looking forward to seeing this.

Score:  10/100

(Inline Comment)

Executive Summary

The purpose of this project is to explore the Intel Edison and how it correlates to the Beaglebone. As features and weaknesses are discovered, the Edison will be used to create a simple project (similar to those that others are performing) that highlights its strengths. After exploration, it was determined that the Edison is aptly suited for a network related project, due to its built-in WiFi. The new goal of the project is to set the Edison up as an EchoLink node.

The Edison has been configured to run with the WiFi on the Rose-Hulman Campus via the simple utility that Intel provides. The Edison, at this stage, must be running Yocto (a Linux build by Intel); custom kernel compilation is not possible because of how the Intel Edison is flashed. Furthermore, the Edison breakout board does not expose any GPIO pins, so using I2C, UART, SPI, or other I/O is not possible. SparkFun has several boards that expose these functions to the user, but they are still on pre-order only.

Due to the lack GPIO, a Beaglebone Black will be used to develop the EchoLink node for the Rose Tech Radio Club. The EchoLink node will be controllable through a web-server. The hope is that this system can be easily ported to the Edison when the SparkFun breakout boards are available.

While building the EchoLink node will be feasible, I believe we might run into problems with Yocto when we are trying to get the necessary libraries on the Edison.

Packaging

The BeagleBone Black is currently in an old metal enclosure that previously held radio equipment.

Installation Instructions

In order to install the system on the BeagleBone, you must already have a Bone set up with Wheezy.

First, make sure you are in the "root" directory, then get the source code (do NOT rename the folder; there are path-dependent configuration files).

bone# cd /root
bone# git clone https://github.com/darsnack/ECE597-EchoLinkNode.git

The next step is to build thelinkbox, a piece of software that will handle the Echolink node (credit to ON1ARF, the original developer). You will need the libusb-dev package to perform this task.

bone# apt-get install libusb-dev
bone# cd ECE597-EchoLinkNode/thelinkbox
bone# ./configure --enable-usb
bone# make
bone# make install

The configuration files already contain necessary for the club at Rose-Hulman to use the system. For example, the call sign (an identifier for licensed HAMs) is the club call, W9NAA. If you are running your own node, you will need to modify these configuration files. They are located in the tlb-configs directory in the main project folder. All the configurable elements contain comments explaining their purpose. The major files that need to be updated are tlb-configs/tlb.conf and tlb-configs/port0.conf.

Now, you must install the necessary audio drivers that work with the software and ALSA (Advanced Linux Sound Architecture).

bone# apt-get install alsa-oss
bone# modprobe snd-pcm-oss
bone# modprobw snd-mixer-oss

You can make the modules load on boot by editing /etc/modules. Simply add the module names to the file.

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
snd-pcm-oss
snd-mixer-oss

By default, the software is configured to use a USB soundcard listed in the device tree at /dev/dsp1. Make sure you have such a device listed.

bone# ls -l /dev/ | grep dsp

Open alsamixer to configure the soundcard. Use "F6" to select the sound card as the device, then press "TAB" twice to access all the options available to it. Turn up the volume and capture levels to the maximum for everything.

Now that the software is configured, the hardware must be installed. You can build the interface board using the schematics in the github repository. By default, the software will use GPIO 48 (P9_15). Plug the signal line into this pin on the headers, and the ground line into digital ground on the headers (P9_1). You will also need to pass the audio out from the sound card to the transceiver you are using. Similarly, the audio from the transceiver must be passed into the sound card. Finally, configure the GPIO pin.

bone# echo "48" > /sys/class/gpio/export
bone# echo "out" > /sys/class/gpio/gpio48/direction

User Instructions

YOU MUST BE A REGISTERED HAM IN THE ROSE-TECH RADIO CLUB TO USE THIS SYSTEM.

Once the system is set up, you can run it by running the following command:

bone# /usr/local/libexec/tlb -f /root/ECE597-EchoLinkNode/tlb-configs/tlb.conf -d

This will run the system in one level of debug. Opening EchoLink on your own computer will list your node, and you can connect to it.

When the website is functional, you will be able to control the node through it (TBD).

Highlights

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.

Work Breakdown

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.

Future Work

Suggest addition things that could be done with this project.

Conclusions

Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.




thumb‎ Embedded Linux Class by Mark A. Yoder