Super Sized Acryllic Spectrum Analyzer

7,614

62

57

Introduction: Super Sized Acryllic Spectrum Analyzer

Why would you want to look at those tiny led displays or those small LCD's if you can do it big?

This is a step by step description on how to build your own Giant sized Spectrum analyzer.

Using acrylic tiles and led strips to build a room filling light show using 280+ big sized LED's

Why do it small if you can do it big.....

Supplies

You will need an arduino Mega, a cheap frequency board SI5351 and a handfull of small parts.

Let's get started

Step 1: Introduction

Giant Super sized 14 Channel spectrum analyzer

  • -280 acrylic leds (WS2812)
  • -Arduino controlled
  • 40Hz – 16Khz
  • Line in
  • Microphone in
  • Different modes and colors
  • Brightness control
  • Sensitivity control
  • Peak delay control

Key components:

  • Arduino Mega 2560 Pro
  • Si5351A breakout board
  • WS2812 (74Leds/meter)
  • Acryl 10mm.

You will need access to a laser cutter to cut out all 280 acrylic tiles or you will have to put in the extra mile to do all by hand.

Project download:
All hardware, software etc. is "as is" and you are free to modify it to your needs. None of the hardware has been tested for CE compliance etc. If you decide to use anything from this design, you do so at your own risk. Coding, PCB and drawings are all available for download. If you like this project, please share this video to your friends and don't forget to click the like button and subscribe!

Firmware:

https://github.com/donnersm/14chspectrum

BOM:

www.judoles.nl/Projecten/14channelSA/BOMList.pdf

Schematic:

http://www.judoles.nl/Projecten/14channelSA/Fullsc...

Designfiles

www.judoles.nl/Projecten/14channelSA/DesignFilesCo...


Buy PCB:

https://www.tindie.com/products/21119/

UPDATE: NEW VERSION AVAILABLE:

https://www.tindie.com/products/23034/

How it works

There are two microcontrollers involved but one is optional
because it is used for a flashing logo only.

The main circuit evolves around an Arduino Mega 2560 ( Pro version preferred because of the smaller footprint). The Arduino uses a frequency board SI5351 to generate two stabile different frequencies. Each frequency is used to drive the clock of a spectrum chip MSGEQ7. The MSGEQ7 is a 7 channel spectrum analyzer chip that divides the input signal into 7 different frequency containers. Depending on the input, the output signal of each container varies. All frequency containers are send to the chips output DAC where they are presented serially one after the other. Because it is a 7 channel chip, a trick is used to internally shift the frequency range of the containers by shifting the clock frequency of that chip.

If you want more information on how this is done, more information is available on youtube.

The Arduino reads the DAC of the MSGEQ7 chips constantly and translates the individual containers to a number of leds per acrylic tower. These leds are driven serially but are still fast enough, even with 240 leds!

Step 2: Collect Your Parts

PCB's

UPDATE: NEWER VERSION AVAILABLE HERE:

https://www.tindie.com/products/23034/

now version available with pre-assembled SMD components

The Gerber files are included with this Instructable. Feel free to use them to order your own PCB elsewhere.

Your Main components are

  • Arduino Mega 2560 Pro
  • Si5351A breakout board
  • WS2812 (74Leds/meter) ledstrip
  • Acryl 10mm.
  • MSgEQ7 chip

The first three components I all got from alieexpress and sort alike websites. It might take some time for it to be delivered but it will save you some money.

The acryl that I used to make the tiles, I purchased locally.

For the IC's MSGEQ7 be warned!!! I ordered several units from different (China) and local sellers but none of those worked. The one's I ordered from Mouser (Sparkfun) where the only one that worked. So, buy wise as you can only spent your money once.

Step 3: Using a Breadboard or Get a PCB

Although I designed a PCB for my setup, you can also decide to use a simple breadboard of simular setup.

If you wish, you can order your pcb at your own supplier. The gerber files to order it are included. I ordered mine at

JLCPCB.com

Whatever setup you are using, make sure you solder on the components the right way.

PCB layout and component list for pcb is included

Step 4: Mechanical Work

Basically, It is the distance between the leds on the ledstrip that maximizes the size of the tiles you want to use. If you want bigger tiles of place them further apart, you will have to get a different ledstrip or cut it apart and rewire it.

Theoretically, you could make your setup as high as the building you live in although wiring can become an issue in that case. My setup is about 50cm in height and it's 82cm wide. That is way bigger than the little LCD screen on my mp3 player! I kind of super sized it!

Anyway, I used the student version of autocad which is available for free after registration. The files are included. You might have to adjust them to your setup but it will get you started for sure.

I used my company's laser cutter to make all the tiles but if you have enough time on your hands, you could do it by hand...but I guess that making 280 tiles by hand will make nobody happy.

Step 5: Putting It All Together

Putting it all together is mainly divided into:

1. assembly of the acrylic towers incl. the ledstrips

2. assembly of the base

3. assembly of the logo ledstrip ( optional)

4. assembly of towers onto based

5. wiring of the whole system

All of this is is best shown in the youtube video

Update:

New version of firmware available. It includes a debug mode to test the hardware:

Documentation:

https://github.com/donnersm/14ChannelAnalyzerV2.0/...

Firmware:

https://github.com/donnersm/14ChannelAnalyzerV2.0/...

Step 6: Coding

The maincode it the attached sketch.

If you are using the flashing logo, you can use logoblink to program a tiny arduino

UPDATE!! As of version 2.0 of the PCB, the extra arduino Tiny for the logo is no longer needed.

An extra output is available and can by connected directly to the logo ledstrip

Step 7: Enjoy Showing It to Your Friends

After putting in all this hard word you will have to show it to the world! Tell your friends all about it and don't forget to show it off on internet.

Take a look at my video to see how I build and design it.

Super-Size Speed Challenge

Participated in the
Super-Size Speed Challenge

Be the First to Share

    Recommendations

    • Explore Science Challenge

      Explore Science Challenge
    • Furniture Contest

      Furniture Contest
    • Box Challenge

      Box Challenge

    57 Comments

    0
    JohnBobo
    JohnBobo

    Question 15 days ago on Introduction

    I have a V2.0 board, which arduino sketch should I use

    0
    fimmezwansch
    fimmezwansch

    2 months ago

    Hi folks,
    First: thanks to Mark for your awesome work! This ist the very best documented Project of all analyzer projects I found. I bought your PCB, soldered the parts (except the SMD's :-)) - and it works!
    However, I see some strange behavior:
    - If I reduce the brightness with R4 or R5 (I swopped them back for testing), the LEDs stops working at point between ~70-50 percent and continue to work after increasing brightness to at least 80-90 percent. So, I'm not able to reduce brightness.
    - Leds work only in mode 0 (it's the mode after reset). If i press "mode" to next mode (blue bands with green peak), leds stop working after max. ~15 seconds. Only reset will bring them back to work. Sometimes other modes work until audio signal is low (between two songs). Only mode in mode 0 the leds continue working with next song (or pressing "pause" in player).

    I use MainSketch202.ino and a 5V5A BTF Power supply (adjusted to 4,98V)
    Unfortunately I cannot use Serial Monitor for debugging. If I connect USB, I can see some output in serial monitor, but Leds do not start working if USB is connected. USB and audio are connected on same PC (GND Problem?). Or must power supply be disconnected during debugging? But this would be a problem with max current over USB.

    Kind regards
    Roland

    0
    emdee401
    emdee401

    Reply 2 months ago

    Hi,
    I can think of seveal things that you should check:
    - Voltage in on the pcb may not exceed 5.1V....make sure it is between 4.5 and 5.1, at 5.2V the arduino will freeze up sue to an onboard power monitor chip.

    - You can use UDB only to use the serial monitor and test modes...the brightness is dimmed in the software...it will not consume a lot of amps....I can run mine on usb only.

    - Check to see that you connect CN1 and CN2 correctly, the CN1 is mounted on the bottom side of the pcb. If you wired it as if it would be on top of the pcb, alle connectings will be mirrored. This will result in Peakhold time funtion will increase CCW and decrease CW and brightness will act as a mode button and the sensitivity will act as reset, THis would explain that the system resets when you turn the potmeter.

    0
    fimmezwansch
    fimmezwansch

    Reply 2 months ago

    Hi Mark, thanks for your advice.
    I connected only USB, but did not work. But after a while the Mega did an output on serial monitor like this:
    09:41:03.161 -> Sep 9 2010
    09:41:03.161 -> CPU Type = ATmega2560
    09:41:03.161 -> __AVR_ARCH__ = 6
    09:41:03.161 -> GCC Version = 4.3.3
    09:41:03.161 -> AVR LibC Ver = 1.6.7
    09:41:03.161 -> CPU signature= 1E9801
    09:41:03.161 -> Low fuse = FF
    09:41:03.161 -> High fuse = D8
    09:41:03.161 -> Ext fuse = FD
    09:41:03.161 -> Lock fuse = FF
    09:41:03.161 -> Bootloader>⸮
    10:08:47.607 -> ⸮
    After that the Mega tourns out. I don't know, what that means, perhaps a hard reset or so? This happens without any action from my side. Power supply was disconnected at this time.

    Now, after reconnecting with USB Power everything works fine. Dimming, Sensitivity and all modes are working. With connected power supply it works erratically. It delivered 4,99V constantly. I turned it down to 4,6V with onboard trim poti. Sometimes it works, sometime only peak leds work or not all bands go down without input signal.
    So, it seems to be a problem with the power supply. This evening I will check with my Laboratory power supply. Do you have an idea, how I could make the output voltage more clean? A 470uF capacitor is already placed on circuit. I did a short view to output with Oszilloscope, but could not see any peaks or so.

    Kind regards
    Roland

    0
    emdee401
    emdee401

    Reply 5 weeks ago

    Correct, That is also a note in the latest assembly document

    0
    emdee401
    emdee401

    Reply 2 months ago

    Are you sure that the potmeters are connecties correctly sounds like you stopped two pins. You can disconnect power supply and run over usb for debugging. Just use middle brightness. LEDs freezing happens when the power supply goes up to 5.2V make sure it’s below 5. If you need help, contact me directly on Whatsapp or email... always willing to assist.

    0
    emdee401
    emdee401

    Reply 5 weeks ago

    Great Job! I love the extra color pallets you added and the remove, great idea!
    Would love to take a look at your code if you;re willing to let me...you can email me if you like.
    Once thing you can add... I see you also used the see trough plexiglass in the middle to connect the left and right base....I actually put another pixelled inside of it and connected it to the ledstrip of the logo....

    0
    niereformowalny296
    niereformowalny296

    3 months ago

    Does it matter in which corner the data line will be placed. Will it be the bottom left corner like yours, or the bottom right corner like in the attached photo? of course taking into account the correct connection.
    Led Strips WS2812 144leds.jpg
    0
    emdee401
    emdee401

    Reply 3 months ago

    Yes it does! When looking at the led strips, there are little arrows to indicate a direction or it has a print Do. Di...... in side is input other side is output.
    Also if You swop left to right you’ll need to adjust the firmware of the high frequency band will be on the left side and the low on the right ;-)

    0
    niereformowalny296
    niereformowalny296

    Reply 3 months ago

    I create my own pcb panel from single LEDs. I want to make your design in small sizes. It will use esp32 and the arduinoFFT library for this. I will not use additional modules. I have a question. If I remove everything related to si5351mcu from your code, and write the values ​​read from the adc converter to the variable spectrumValue [i], is it's to work?

    0
    emdee401
    emdee401

    Reply 2 months ago

    Fit on esp32 can work but it is also tricky....it will not be as smooth as the analog version and it will response different....I am working on a version like that and it is simply not as good looking to the eye as the analog version

    0
    ah_banny
    ah_banny

    3 months ago

    hi all,
    I had the same problem as cyrilspescha79, but when I connected power directly to the Arduino Mega2560.pro, it worked :-) now I have to find out why that is!

    and thx "emdee 401", great work :-) and thanks for share it your project.
    Do you have an idea?

    14Band_SPECTRUM ANALYZER.png
    0
    emdee401
    emdee401

    Reply 3 months ago

    Best, check your voltage.
    If everything is working as expected when using the USB as power supply then there are only two options:
    1.The voltage of the power supply is not 5V but maybe 5.5 or 4.5. The arduino has an onboard voltage detector that puts it in reset mode if the power is not right.
    2. check that all main components get power .....maybe there is one that has no power ( although not likely) I feed my ledstrip directly from 5V power supply so I only used the led dataline from that connector.

    IF the problem is with 1. ....a to high power you can overcome using a universal diode that you put in series ...it will give you a voltage drop of about 0.5V

    If you can't put your finger on it...contact me directly. I'm always willing to help. facebook or email is fine
    mark.donners@judoles.nl
    https://www.facebook.com/mark.donners.5

    0
    ah_banny
    ah_banny

    Reply 3 months ago

    thanks for your quick reply :-) great.

    I measured the voltage on the LED strips with 4.9 V (for all 14).
    If I connect an LED strip to a piece of 280 LEDs, it works.
    Tonight (I'm still working) I'll check all your tips and write you the results. best regards

    0
    ah_banny
    ah_banny

    Reply 3 months ago

    for those who have the same problem :-)
    emdee401 asked what voltage was applied to the components! = 5.01V for the components.
    Then he asked: What do I measure on the components with the USB connection? Here I had a voltage of 4.77V
    His answer:

    Bingo! Use a universal diode on your input ( in serial) it will drop the voltage 0.6V ,,,that should do it. Select a diode that is able to handle at least 4A
    + ---------|>|--------- + to PCB
    - -------------------------- - to pcb

    now I'm happy everything works perfectly. :-)

    thank you very much and respect to him for his work
    ah_banny

    0
    antwal
    antwal

    Question 5 months ago

    Hello,
    I took a look at your project which uses the Si5351A breakout board along with MSgEQ7 chip.
    I have already made two versions of this project: one using only 2x MSgEQ7 with Arduino Nano and another project using Raspberry PI Zero with Si5351A.
    I also wanted to make your project, but with some changes, but what I wanted to ask you and that I don't understand why in your project the PCBs do not reflect your schematic; I don't have Proteus and can't open your schematic included in the project.
    Thanks.

    0
    antwal
    antwal

    Reply 5 months ago

    Hi, yes I have just seen that pdf file; in fact in this schematic you use two LM358s; instead in the PCB available here https://www.tindie.com/products/21119/ and in the material list there is only 1x LM358. This is because it being very difficult to solder the SMD components without the specific equipment, I wanted to redo a new PCB using the DIP components. Thanks.

    0
    emdee401
    emdee401

    Reply 5 months ago

    NO, Both are the same; The one on Tindie is from the schematic you
    mention. There are no inconsistency. At least not to my knowledge. I
    first drew this schematic, made a pcb from it..and posted it on
    instructables and tindie... so...You mentioned that pcb has only one
    LM358 while the schematic has two?? You better look at the datasheet of
    this component. The LM358 is a DUAL opamp.. this means that there are
    two inside one package....that explains why you only see one lm358 in
    the PCB and two in the schematic