ECE497 Project Music Synthesizer

Revision as of 10:32, 14 November 2018 by Max1 (talk | contribs) (Future Work)
Jump to: navigation, search

thumb‎ Embedded Linux Class by Mark A. Yoder

Team members: Kuangyi Lu, Ximing Ma

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 goal of this project would be to implement an audio/sound synthesizer on Beaglebone with an interface that user can manipulate the filter easily. It has the ability to deploy LabVIEW codes to Beaglebone Green for software implementations.


If you have some hardware, consider Small Build, Big Execuition for ideas on the final packaging.

Installation Instructions

Give step by step instructions on how to install your project.

Software requirements: LabVIEW(2014), LINX, Arduino IDE, Linux(ubuntu 18.04)

Hardware requirements: Beaglebone Green/Black(with ethernet), Bare Conductive touch board, 1 micro USB wires, jumper wires, LEDs, push buttons, etc.

Software setup:

1. MAKE SURE you installed LabVIEW 2014(any edition), LINX DOES NOT support later versions. In LabVIEW, navigate to Help-->Activate LabVIEW components(Launch), and in Local Licenses, make sure you have at least 1 development system and "Application Builder" activated. You can also activate other parts on your wish.

2. Go to NI's website and download LINX. Your browser should prompt a message to guide you to the VI Package Manager. In the page that pops up, make sure the number at the top left corner is 2014 and then click "install" below it. "Agree" to all the licensing requirements and close the VI Package Manager after finished. A window should pop up after installation reminding you to restart the LabVIEW because the LabVIEW needs to scan the software add-ons and reload corresponding hardware configuration files, so make sure to restart otherwise you will have trouble locating your hardware later.

3. After rebooting LabVIEW you should be able to find LINX by navigating to Tools-->MakerHub-->LINX and we have all the software that we need for now.

Hardware setup:

1. Get your bone ready. Run "ifconfig"/Ping to make sure it has Internet access from ethernet port, it has been proven to be the simplest way comparing to wireless or ethernet over USB.

2. Plug your bone in, and navigate to Tools-->MakerHub-->LINX-->LINX Target Configuration, then open it up.

3. Enter the IP address of your bone(default to, your username and password. If you watch the video Sam says the user account you enter has to have sudo access, but a normal user would do just fine. Click "connect".

4. Navigate to "Target Info" and see if the "Internet Access" box is checked and Navigate to "Install Software" to install LabVIEW run-time engine 2014. This may take a while.

5. After installation, reboot your Beaglebone and you should be ready to proceed.

For more detailed tutorials and support forum: LINX

User Instructions

All the project files can be found at a public GitHub repo

Users can press pushbuttons to determine which sounds to generate and run LabVIEW VIs to generate them. After generation, the wav files will be stored in the pre-set path. The user can open cloud 9 editor and download wav files.

Notes: 1. Make sure to use LabVIEW 2014. 2. Check Linux kernel version. We had 4.19 the first time and it was not compatible with LINX so we had to switch to 4.9. 3. The way which LINX uses to install LabVIEW was running "dpkg" command. It could potentially mess up the dependencies of packages.


A short demo video can be found here

Theory of Operation

This project relies on a third-party LabVIEW add-on: LINX. LINX can access and operate on Beaglebone if provided with user access. Once a Beaglebone is connected to LabVIEW, the user can deploy the project onto Beaglebone. Users then can use peripheral VIs to access your devices digital I/O, analog I/O, SPI, I2C, UART, PWM, etc.

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

1. Touch Board right now does not support writing to SD card so we were not able to store our sound files in and play them. We can try to make it able to receive files from Bealgbone and play them on Touch Board.

2. The project can only be controlled by the host computer, we will try to implement some input methods to control the project from Beaglebone.


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