ECE434 Project - Audio Spectrum Display

Team members: Donald Hau

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

 Add Extras

09 Executive Summary 09 Packaging 09 Installation Instructions 09 User Instructions 09 Highlights 09 Theory of Operation 09 Work Breakdown 09 Future Work/Conclusions 09 Hackster.io 09 Demo/Poster 00 Not Late

Score: 90/100

Executive Summary
Picture that summarizes the project.

This project uses a microphone via an analog input, performs a FFT calculation on it and displays the output to a RGB LED matrix.

The portions of the project which work well include the microphone and the FFT. Using continuous analog input on the iio system, the microphone produces an array which is perfect for FFT work.

The RGB LED matrix refuses to work, at least with the PRU input. I have not tried with mmap in python yet but am working towards it if I cannot get it working quickly. As a last resort, I may end up using an ESP32 to drive the matrix as it has a supported arduino library.

End with a two sentence conclusion.

The sentence count is approximate and only to give an idea of the expected length.

Packaging
If you have 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.

The Github link is here, it includes much more detail than is listed here. https://github.com/dfirestorm/bone-audio-display.

User Instructions
Once everything is installed, how do you use the program? Give details here, so if you have a long user manual, link to it here.

Consider making it autostart for full credit.

Highlights
Here is where you brag about what your project can do.

Theory of Operation
This program uses Python to interact with the iio analog system, which is convenient as it allows access to numpy for FFT. To output to the display, I scaled the FFT values to height of a column in the array and set thresholds for different colors.

Work Breakdown
I did this project solo, but the tasks are as follows:
 * Analog in: used the analogInContinuous function found in /opt/vsx-examples/examples/BeagleBone/Black

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.