Giant VU

From Hive13 Wiki
Jump to navigation Jump to search

This is the wiki page for a project TP is working on.

GiantVU Title Image.png

Overview

Background

I would like to build a giant VU meter (like, wall sized, maybe 10 feet tall?) using electroluminescent tape (EL) or similiar (maybe some other kind of lighted panel would be cheaper?). For those that attended the grand opening party, there was a guy walking around with a very cool light-up t-shirt that was exactly what I'm talking about, only *slightly* smaller.

I did some looking around recently and found the accepted term for this is a EQ Meter. Since I created and wrote this whole page using the term 'VU Meter,' I will continue to do so - but it really is an EQ Meter.

Basic Meter

http://www.instructables.com/id/LM3915LM3916-VU-Meter/ shows a project to build a simple VU meter that measures overall volume from an audio source (a single bar that bounces to the loudness of, say, a song). This is basically an analog circuit that outputs directly to an array of LEDs, although with the right output stage we could make it run just about anything (EL tape, desk lamps, etc).

Expanded Basic Meter

The meter I really want to build is probably better called a panel. I want to place 8 bars into a grid shape, and tune each bar to just a portion of the frequency spectrum (bandpass filters). We've all seen this somewhere before - the coolness comes from making it 10 feet tall, right? This expanded version of the above meter is really just eight of those meters each being feed from a seperate bandpass filter.

Advanced Meter

The next level up idea would be to multiplex the output of the bandpass filters into a PIC or similiar microcontroller's ADC for sampling. The controller could then light the appropriate output lights, probably by setting an externally scanned memory location or toggling inputs to a massive latch array, so that instead of a VU meter/panel what we really have is a 10' tall 8 x 8 monochrome screen that just happens to be running a VU program. The cool part of going this extra step is we can add things like a startup splash screen. We could also select between different output routines for variety (horizontal vs. vertical vs. radial vs. ?). To make the display useful enough to scroll text or maybe draw a Hive13 logo on it or something (see below), the plan is to push the resolution to 16 x 16. The price of the glow tape is based on area I think, so it /may/ not add *too much* to the price of the project to increase the resolution like this. If we end up with some other kind of lighted panel square adding the resolution could end up relatively increasing the price much more, although overall it still may be cheaper than the EL tape.

Potential Panel Types

Cost is definitely a factor here. It looks like the big trade-offs are between initial construction cost, operating cost, and coolness factor.

Electroluminescent Tape

Appropriate widths of EL tape cut into squares.

  • Pro's
    • Extreme cool factor
    • Relatively low power to run
    • EL tape should last a ridiculously long time
  • Con's
    • Expensive to build
    • Capactive load - needs at least a dirty AC signal (Class C style spikeyness would be sufficient I think, but without a sample to play with it's hard to tell).

Incadencent Light Bulbs

Square 'shadow box' type wooden things with regular light bulbs hidden behind an opaque-ish sheet of plastic or similiar.

  • Pro's
    • Make panels ourselves - much cheaper
  • Con's
    • Lots of watts of power needed to run a large array
    • Severely less cool, but still possibly cool-ish
    • Inductive load - will need a relatively clean AC signal to run nicely (of course straight-stick wall power and light bulbs where literally made for each other).
    • Light bulbs will need to be changed occasionally

Compact Floruencent Light (CFL) Bulbs

Same as above but with lower power bulbs. May not be able to switch on and off quickly enough, but this can be tested.

  • Pro's
    • Less power than regular light bulbs
    • One-for-one interchangable with regular lightbulbs
  • Con's
    • Still more power than EL tape
    • CFL bulbs are more expensive to replace than regular ones

Super LED Arrays?

Same as above two but with say, five (5) or so super LEDs behind each panel.

  • Pro's
    • LEDs last much longer than light bulbs
    • (maybe) - Resistive load; DC power
    • Power levels approaching EL tape, certainly much better than the larger bulbs.
  • Con's
    • Still not as cool as EL tape
    • Replacing a burnt LED will probably require a soldering iron

(Your panel idea here?)

(Think 'big square thingy that lights up quickly')

Control

Basic Meters

These can be run from the LM3915/3916 IC chips mentioned in the background article, with a driver array for the panels. For the expanded version, a bandpass filter is needed for each bar to seperate the incoming signal into bands.

Advanced Meter

Needs a programmable controller with an ADC channel, a way to 'funnel' multiple bandpass outputs into that ADC channel, some sort of output buffer stage, and the same driver array as the basic versions.

Audio Input Stage

I had previously been kicking around the thought of somehow using a phase-locked loop (PLL) circuit to create a single bandpass filter that could be software controlled vs. multiplexing several hardwired filters. After looking into some of my reference texts and around the 'net a little, I now realize that this wasn't really the brightest idea.

The bright idea is to use a Univeral Switched Active Filter - this can be used to create a bandpass where the resistive values of the filter are controlled by switched capacitors. This particular chip (MF10) is good for 0.1 Hz to 30 kHz at a 50:1 ratio. Basically, if you feed it a clock signal at 50kHz, it will act as a bandpass centered around 1kHz. Very cool (Thank you National Semiconductor).

Once the incoming signal has been filtered around the target frequency of interest, a voltage follower, rectifier, and filter cap will give us a DC voltage relative to the strength of the incoming audio signal at that frequency. Once sampled, we adjust the clock for the next band, wait a few microseconds for the filter output to settle, and take the next sample. My favorite part of all of this is of course the ability to determine how many and which frequencies to sample from software without any hardware changes.

Output Buffer

Looking around for ideas I came across the 74HC595 shift register. Should do nicely. These shift registers have two clock inputs - one for shifting and one for latching. By placing 32 of them in series we can drive a 16 x 16 display with three (3) lines (Data, Shift, Latch).

While shifting serial data may not seem the fastest, consider:

  • 16 x 16 is 256 bits, which is only 16 words of data
  • These registers can take a max shift clock of 10 MHz (!)
  • Shifting occurs behind the scenes - the display does not update visably until the latch clock is pulsed (think 'off screen buffer')

Typically a refresh rate of 30 frames per sec or so is enough to provide smooth animation effects. If we assume a shift clock of 100kHz (pretty slow), a 16x16 display driven this way would have a theoretical refresh rate well over 300 frames per sec (!!).

256 LEDs is an awful lot of soldering. Wiring 256 light panels sounds like massive work. These are, however, doable. Any bigger resolution and I think we cross the plausibility threshold. At 16 x 16, we can do some graphics, tho:

GiantVU Hive13 Logo.png

Controller

After a little soul searching I've decided to seperate this project into three seperate components: Audio Input Stage, Controller, and Display (combines buffer and drivers). This will allow the Ins/Outs to be connected to any controller that meets the I/O Req's with basically a screwdriver. The main motivation here is I've decided to control this by Arduino since it seems to have such good support from the rest of the Hive, or a new controller can be used should the Arduino fall from grace. This way other Hive members can re-purpose the Display portion easily far into the future as new ideas come about. If this project meets the final end goal of a huge installed version for the display, this will certainly be a big plus.

I/O Requirements so far:

  • Audio Input Stage
    • (I) ADC Channel
    • (O) Frequency control for bandpass (capable of 800 kHz)
  • Display
    • (O) Serial Data Bit
    • (O) Shift Pulse
    • (O) Latch Pulse

Driver Array

LED Prototype

The LEDs can be driven directly by the shift registers, but will need a current limiting resistor placed in series (35mA max sink current). I will use 220-ohm resistors for a target current of 20mA, which is enough current to light an LED very strongly.

Full Sized Installation

The full sized version will obviously require some components between the shift registers and the panels.

(Needs research - dependent on type of panel we chose)

Current Status - Active

  • Construction of 'LED Prototype - Output Stage' complete
  • Thinking about thinking about Audio Input stage.

Work Log

Sept 16, 2009

Purchased shift registers and LEDs for prototype. Completely forgot to get the resistors. DebCo doesn't really sell PCB and of course I still need to order an Arduino.

Made a snap decision to get green LEDs instead of red.

Starting to seriously consider how I'm gonna construct this thing.


Oct 16, 2009

Have FINALLY gotten an Arduino. Resistors are on order, but I have enough here that I don't need to wait for them until I go to solder up the board. Once I begin breadboarding up a 16-bit column I'll set project status to Active. The plan for now is to build one column, then start laying out a PCB board design. Hopefully I'll have more time on Monday and can get started.


Jun 17, 2010

Setting project to 'Active' status.

Late tonight I decided to build the LED prototype for this project in earnest. It turns out that my RC Car projects are still using all my larger breadboards, so all I had left was a smaller one - could only fit an 8-LED column onto it. Programming the Arduino was more entertaining than I had expected. Satisfied that the concept will work just fine, tomorrow I plan to dive in and begin soldering the entire panel with the whole 16x16 array of LEDs. I have decided to use pre-punched protoboard instead of etching a PCB. This will be a massive amount of soldering, but I figure if I just force myself to get started then eventually I will get finished.

"A journey of a thousand miles begins with a single step"

GiantVU eightline.JPG GientVU eightline action.jpg


Jun 18, 2010

Finding a large piece of protoboard "in real life" was much harder than I would have thought. My local RadioShack had none of the boards shown on their website. DebCo was a bust, although I picked up about 100 feet of 26-gage stranded wire while I was there. Since I was already in the area, I stopped by the RadioShack in Hyde Park - I got the last two 6" by 8" boards they had!

I went down to the Hive to begin the daunting task of soldering 256 LEDs with 256 current limit resistors and 32 16-pin shift registers (256*2 + 256*2 + 32*16 + 5 control lines = 1541 solder connections). I was just about to solder the very first piece when I stopped myself and went home.

It seems most LED arrays like this would use a row-column select approach. Basically, the controller only lights one column at a time, but cycles fast enough that the human eye sees all the columns light up at once (this is called multiplexing, although this term can also refer to other things). The nice thing with this approach is that only one resistor is required for each row, although a transistor must be added to each column to handle the sink current (16 LEDs * 20 mA = 320mA... the shift registers can sink 35mA max). Another nice-ity is that all the high-side LED pins in a row are simply connected together, as are all the low-side pins in a column. While I still need to solder 256 LEDs, instead of 512 wires, I can weave together 32 bus lines. It took all friggin' night, but I finally finished the busline grid.

GiantVU eightgrid.jpg GiantVU buslines.jpg

Also, since instead of 256 individual LED connections needing 32 shift registers, I now only need 16 bits for the row select and 16 bits for the column select - just 4 shift registers. This brings the component count to 256 LEDs with 16 current limit resistors, 16 column transistors, and 4 16-pin shift registers (256*2 + 16*2 + 16*3 + 4*16 + 5 control lines = 661 solder connections) - and soldering LEDs to a bus will be MUCH faster than if each LED needed a seperate wire for both leads. I hope to finish this tomorrow, although I guess that's what I said yesterday.


Jun 19, 2010

Got the resistors and transistors in. Decided to fill in a row and column with lights so I could test connections as I add the shift registers. By the end of the night, I had the column select registers in. Working with this protoboard is so painfully slow, but I still feel like this project will be worth the trouble when it's done - I've always wanted a blinky LED thing like this, and being able to say that I made it is just icing.

GiantVU June19.jpg GiantVU June19 2.jpg


Jun 20, 2010

I didn't get a whole lot of time to work on this today, but I managed to squeeze in almost two hours and managed to get the row-select shift registers installed. Glad I had already soldered a row and column, so I could just light 'em up and put it away. However, there seems to be something funny going on with the bottom right LED. It comes on when it shouldn't but won't light when I tell it to. I don't have time to figure this out today, so it will have to wait.

GiantVU Jun20.jpg


Jun 21, 2010

I'm a little disappointed, but it's OK. I went full steam ahead with soldering the LEDs, and I was right - these buslines were great. The stranded wire holds the LED in place, so I've been sticking a column in at a time and then soldering them in - it's going as quick as if I had used PCB (oh the IC's took forever). The disappointment comes from running out of solder - otherwise I'm sure I would have finished tonight.

Since I couldn't keep soldering, I decided to track down the problem with the final column (see left pic). The pattern should be a clean checkerboard, but as you can see, the far right column is acting funny. It may be hard to see in the pic, but the LEDs that shouldn't be lit at all are actually half-lit. I spent almost an hour going through everything systematically (I was so worried the problem was in one of the shift registers), then finally realized that the bottom right LED was in backward. Replaced it properly, and everything's everything

GiantVU Jun21 error.jpg GiantVU Jun21 fixed.jpg


Jun 22, 2010

Alright...

GiantVU Jun22.jpg

Current Issues

LED Prototype

  • Resistors biasing the column transistors need to be replaced with larger values
  • Could be thinking about Audio Input stage, but, no, not now

Giant Version

  • These tape sellers are hard to get prices and samples from. Half the websites don't list prices, or don't offer small quanities, or require you to buy some expensive power supply with your tape (I intend to make my own supply - the tape requires an AC current).
  • The sites that do list prices show that EL tape ain't cheap.

Next Steps

  • Enjoy playing with LED Prototype screen for a while
  • Build Audio Input stage, integrate with display
  • Find a tape sample (good luck)
  • Play with tape sample
  • Decide on type of lighted panels to go with
  • Get enough Hive members excited about project so that we can figure out how to get the funds to build the Giant Version onto a wall in the hackerspace