ECE434 Project - LED Matrix
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
Our project involves interfacing with six LED matrices and audio input. The goal is to take the audio input, perform a frequency domain analysis, and then display the frequency spectrum onto the LED matrices as a spectrometer.
We managed to get audio input and perform frequency domain analysis on the host computer. The host is then sending pixel data to the pocket beagle that is using falcon player to control the LED matrices and create an audio spectrometer.
We had a lot of trouble getting audio input to the pocket beagle, so we kept this part on the host computer. We also experience minor LED refresh delays that we weren't fully able to remove.
In the end, we were able to get our project working and it looks very nice when running.
If you have hardware, consider Small Build, Big Execuition for ideas on the final packaging.
The project is located on GitHub here: https://github.com/grinstba/LEDMatrix
Here are the links for the specific hardware we used for this project.
We borrowed a six panel LED Matrix, power supply, pocket beagle, and pocket scroller cape from Dr. Yoder.
- LED Matrix - https://www.adafruit.com/product/2277
- Pocket Beagle - https://www.amazon.com/BeagleBone-Beagleboard-PocketBeagle/dp/B07663NS35
- Micro USB Cable - https://www.amazon.com/AmazonBasics-Male-Micro-Cable-Black/dp/B0711PVX6Z
- 16 GB Micro SD Card - https://www.amazon.com/Micro-Center-Class-Memory-Adapter/dp/B07K835MNR
- Pocket ScrollerV2 Cap - https://kulplights.com/product/pocketscroller/
- TODO Power Supply -
- TODO Power Supply Cables -
Go to https://github.com/grinstba/LEDMatrix and clone the repository to your computer
Go to https://falcon-player.gitbooks.io/falcon-player-manual/content/chapter_three_installation/downloading_the_falcon_player.html and follow the instruction to download the latest falcon player image and then flash it to one of your SD cards. Make sure to download the Beagle Bone image and not the Raspberry Pi image. Also, we were not running the falcon player off of eMMC.
Once falcon player is installed, boot up your Beagle Bone and ssh into it with the following credentials:
- username: fpp
- password: falcon
By default the image we are running doesn't allow a root login. You will need a root login in order to get internet access on the Beagle Bone. In order to setup internet access, first ssh into the Beagle Bone with the default username and password listed above. The root access directions below are modified from https://elinux.org/EBC_Exercise_02_Out-of-the-Box,_Bone
Then run the following commands on the Beagle Bone
bone$ sudo bash root@bone# nano /etc/ssh/sshd_config
Search for the line
and change it to
Save the file and quit the editor. Restart ssh so it will reread the file.
root@bone# systemctl restart sshd
And assign a password to root.
Now open another window on your host computer and enter:
host$ ssh-copy-id root@bone
and enter the root password. Test it with:
host$ ssh root@bone
You should be connected without a password. Now go back to the Bone and turn off the root password access.
root@bone# nano /etc/ssh/sshd_config
Restore the line:
and restart sshd.
root@bone# systemctl restart sshd root@bone# exit bone$ exit
Now, on your host run the following command to get network information:
host# ip -a
For us, on a WiFi network running the ipMaskquerade.sh script in the following way works: and restart sshd.
host# ./ipMaskquerade.sh ens33
Then run the firstssh.sh script
Once connected to the the internet, go ahead and clone our GitHub project onto the pocket beagle from https://github.com/grinstba/LEDMatrix.
Once the projected has cloned, run the
install.sh script to install the needed packages for the project to run.
Many of the following images and directions come from Mark A. Yoder's documentation found here
In order to light up an entire 32x64 LED panel white (Red, Green, and Blue all on), you will need at least a 5V 4A power supply. Each panel has a single power connection and a data in and data out connection. The data in connections control how the panel operates and the data out connections allow you to daisy chain the panels together to created a large display. The image below shows the connection.
Once the falcon player image has been flashed to an SD card, insert the SD card into your Beagle Bone and connect it to a host computer via USB cable. Browser to https://192.168.7.2 and you will see the falcon player control panel shown below.
You can use the settings in the control panel to set up the orientation of the LED Matrix. First switch the FPPD mode on the status page to bridged as shown below.
Here is where you brag about what your project can do.
Include a YouTube demo the audio description.
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.
|10/26/2019||Controll LED matrix with Falcon Player||Brock primarily downloaded and installed Falcon Player to the pocket beagle. Blake primarily setup the LED matrix with the power supply and configured Falcon Player to control the LEDs.|
|10/29/2019||Gain root access to the Falcon Player||Brock primarily gained root access to the pocket beagle and allowed the pocket beagle to connect to the internet through a host computer|
|11/4/2019||Control the LED matrix via a script running on the pocket beagle||Blake and Brock worked together to figure out how to control the LED matrix with a python script. The script is found in the test folder of the project GitHub and is called universeTest.py|
|11/9/2019||Have audio input and frequency domain calculations working||Blake and Brock worked on different approaches on how to get audio input. In the end, we decided to capture audio on the host and have the pocket beagle control the LED matrices.|
|11/12/2019||Have the audio spectrometer fully working||Blake worked on getting the bars of the spectrometer displaying with the given fft data.|
|11/16/2019||Add some flashy features to the spectrometer display||Blake worked on some addition features while Brock worked to control which feature is displaying via keyboard input|
It would be nice to have to pocket beagle capable of receiving audio, performing fft calculations, and control the LED matrices. Due to time limitation, we were not able to get everything working on the bone. In the future, it would be nice to do so.
The LED matrices have a delay between hearing noise and updating. We managed to minimize this delay quite a bit, but using e1.31 multicast rather than unicast may allow us to further reduce this delay. The lower the delay, the better the spectrometer's appearance is.
Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.