The LoL Shield is a 14 x 9 LED matrix which fits onto the Arduino as a shield and is controlled through an efficient method known as Charlieplexing . It was designed by Jimmie P. Rodgers .
This project uses a Fast Fourier Transform library for Arduino to analyze an audio signal, break it up into frequency bands, and display that information on the LoL Shield.
The Arduino microcontroller is fast enough to calculate a fast Fourier transformation. It lives up to its name and is surprisingly fast and accurate.
Since all the work is done by the microcontroller, this project is completely portable if you use batteries.
The webpage for this project is located at http://andydoro.com/vulol/
Parts required:
- LoL Shield
- Arduino (Diavolino recommended)
- audio jack (I used a male mono 1/8" phone plug)
- Arduino code
- power supply (DC power supply, USB cable, 9V battery, etc.)
Remove these ads by
Signing Up






































Visit Our Store »
Go Pro Today »




In any event, I love this project. The next feature addition would be to add color gradations to reflect the sound level. Using RGB LED's would kill the Charlieplexing approach, but simply using different color LEDs would work: Green, Yellow, Red and Blue for the number of "overs". Hmmm, i think I just added a project to my list.
What are the two (red and black) wires connected to your LOL shield for (5V Power?)? In your video I noticed that USB is left connected. Does the USB cable need to be left connected at all times? I thought USB was only needed to upload the code to Arduino.
Also, once you upload a pde to Arduino, how to do you remove that pde from Arduino? For example if I upload codeA.pde to arduino and later decide I now want to upload codeB.pde, how would I do that? Would I need to remove codeA first and then upload codeB, or will codeB just simply overwrite codeA?
Thank you so much in advance.
My build is definitely not going smooth. Any help would be greatly appreciated.
The story so far: I ordered everything Diavolino, LoLShield etc. Once difference between your setup and mine is that instead of making my LoL shield, I ordered a pre-built LoL Shield from Olimex. So I built out the Diavolino, connected the LoL shield and run the basic test. All LEDs lit up sequentially in diagonal and horizontal fashion. Now I uploaded your code to the Diavolino and as soon as it finishes uploading, the LEDs start randomly glowing as if already connected to audio source. I connect the audio source to GND and A5 (Analog 5). Still the LEDs glow in the same pattern as without the audio source. So adding the audio source had absolutely no affect. I also tried GND and pin A4 and modified the code to use A4 instead of A5. Still nothing just random blinking LEDs no VU meter. Please help. I am at my wits end.
Thanks
rootNull
what kind of values do you expect the variable "val" to get from the AUDIOPIN? In my case (I enabled serial monitor and wrote out the value of val) I am getting val in the range of 1016 to 1027. This is without connecting an audio source. Once I connect an audio source nothing changes. The board and LoL are perfectly okay as I have run all kinds of test including addressing each individual led one by one. Please help.
rootNull
Please help. I want this to work so bad. I got a second Diavolino and a second LoL shield and still the same result.
rN
Thanks
I am using IDE version 1 (I guess its the latest version since I only installed it day before yesterday). I have also tried a mac and a windows 7 pc.
You have to use "Show package contents" on Arduino.app
Option 1: The Easy Option
Uninstall Arduino 1.0 and get Arduino 0023 instead. Everything should compile fine now.
Option 2: The long Route (Which I took)
A) On a Windows Machine:
Copy the folders named FFT and LoLShield from the libraries folder of the zip file and paste them in the following location:
Arduino_Install_location/arduino-1.0/libraries
eg. C:/Program Files/arduino-1.0/libraries
Now open fix_fft.cpp file using textpad
remove the line that says "#include "
replace it with #include "Arduino.h"
Apparently WProgram.h has been replaced by Arduino.h in version 1.0
Now navigate to "arduino-1.0\libraries\LoLShield"
Open each file in there with textpad and replace #include with #include "Arduino.h"
Now open the pde file in Arduino IDE and compile. It should compile fine. Also the pde file will be renamed ino, meaning the extension will change from pde to ino. Thats the other change with this version. PDE is no longer the standard extension.
Also while opening and saving the files with TextPad make sure the files extensions remain .h or .cpp as the case may be. Some text editors append a .txt and you do not want this. If your text editor does this, simply rename the file to the original extension.
On a Mac
Right click or CTRL Click on arduino.app. Select "Show Package Contents". Navigate to "/Applications/Arduino.app/Contents/Resources/Java/libraries". Copy the two folders (FFT & LoLShield) from the zip file under libraries to this location.
Open each file and change WProgram.h include value to Arduino.h in each file within these two folders. Save the files. Open Arduino IDE and open the pde file in the zip file. Click compile and now it should compile just fine.
1. What software version/platform are you doing this on?
2. How do I import the libraries into the code?
3. I seem to be getting some interference, it is flashing some signal when there is nothing connected. Is this due to led 13? It seems to be larger than that...
good project. Will be added to my desk soon hopefully :)
Would the software be fast enough and selective enough to create a smaller panel?
The project never was built due to the cost of all the band pass filters.
Thanks for any Input / reply.
You could create this frequency display that you're describing, but it would make more sense to use a different LED display altogether, rather than trying to run 6 LoL Shield.
Rj
Cheers!