Roll-out RGB Strip Light Panel  


  As if there aren't already enough projects on the go this winter! After the order of LED's came in, LED's for lighting the whole house with 12 volts, and colored LED's for the studio, I realized I'd be waiting quite a while for mechanical parts for the lightBar and the globeLight. This project can be under way in a fairly short time, as soon as I can get into Canadian Tire and buy a couple of those "crazy carpet" kids toboggan things, and somehow get a length of 50 conductor rainbow ribbon up from Vancouver.

  Yep you read right, crazy carpets. As you can see in the facsimile above, some strips of RGB LED's (Joy-Deal on eBay) will be mounted/stuck/glued to a backing. I am using the "carpets" because the whole thing can be rolled up and easily carried to venues. It'll be 9 feet across, and can be hung from ceiling or wall, or put on floor.  Getting cool yet?

I've been playing around with the 16.6' long strip light,150 SMD RGB LED's, and it sure looks pretty and sparkly! ...and it only draws max 1.2A @ 12 volts. This means it'll be cheap to drive.


  Sorry about the goofy circuit layout and colors, but I am a bit of a painter artist as well!

  Originally, only 8 strips, 24" each, was the idea. Once I decided to use those carpets, which are only 18" wide, the design changed to 12 bars, 16" long each. This is way better anyway because more elements is higher resolution even at these levels, so animation will be better.

  Much of the programming I have borrowed from the lightBar, but the board is quite different. The 16' strip can be cut every 3 LED's, so each bar will only have 12 LED's. Such a small amount of current will be easy for a cheap 2N3904 transistor to handle, even the surface-mount style. There will be 36 of those, even though only one is shown. These will be driven from some 74LS374 octal latches addressed to get the 36 outputs from only 13 ports. The '374's are loaded via a rising edge clock, and are very fast so won't be a problem PWM'ing to get dim and bright control.

  A recent addition to this board is a pair of CDS photocells. The thing that is different is they will each have a color filter. One red, one green. This means, after adjusting out the CDS color spectrum sensitivity imbalance, that ambient or other lightshow colors can be "followed" with this unit. So if set up as a wash, all Bars on, and a red light flashed on the overhead, this unit's red LED's would come on.
We'll see how that all goes as the project progresses!

  The other controlling inputs are MIDI ( of course! ) and low-passed audio. This time I'm going to use a dynamic mic instead of an electrohet mic. I have noticed with the light16 project, very loud bass and drums over drive it terribly and all the lights end up just staying on if a speaker is too close! There's no way around it as they are sensitive in the sub-sonic frequencies. I guess I should change that one day.

  Back on the  2 CDS cells for a moment. I have just used one as a trigger on my intelligent Disco Ball Motor ( out of necessity, as it makes too much motor noise for an internal mic! ) and it seems to work well. The really neat thing about using 2 CDS's with filters, one with a red bezel, the other a green is if red is coming from the light stand, it will follow by changing to red, and if yellow (R+G) it will change to yellow, based on some parameters comparing one against the other. Ooooo! I can't wait!


  A lot can be done with this set-up, I won't bore you with too many ideas I've already simulated, but outside of direct MIDI control from a sequencer that is accompanying the song, lot's more has been added. Looking at the board layout below, or diagram above, you may have noticed a flash EEPROM. This is so it can remember "recorded" lighting sequences, like a miniature DMX PC.

  This can be really easy using FL Studio ( or any sequencer ) Set up some beats, then tweak control of the strip lights until just right, then set record mode and record them all in at once, in real time. During a song, these pre-recorded sequences can be started using just one note to address it, and the MIDI-SYNC clock will ensure proper alignment with the beat. These could also be called from the Audio trigger routines. Even different types of sequences can be recorded into areas of the flash chip. Acoustic with either no "kick" or a higher frequency rhythm would trigger those.

   That'll be used in the lightBar as well!

  Here's how the board looks so far. The colored lines are wires on the back of the board. If this was to be mass-produced, they would be traces on a double-sided board, but for a one-off it's not worth the aggravation. I'll be photo-etching it in a few days. (Addendum: The deep-pink traces and parts are changes and add-ons. See Dec 22nd 2012 entry below)

   I wanted the board to be compact, using SMD's etc, but still it ended up quite large. Over 3" wide. I guess that part won't roll up as well. In the bottom left corner is the audio circuitry. There is a mic pre-amp, then and adjustable amp, then a low-pass filter set to 60 Hz. This is so the bass drum will ring through above all else, defining the beat. I'm using 9 volts to drive the LM324 again because 5 volts just doesn't give that swing for the ADC. De-coupling and balancing the ADC input is easy enough.

  Look at all those outputs! They sure add up in a hurry. That's why I plan on using six, 6 conductor cables and running them along the back. Every 2 bars encountered ends another 6, so by the time the cable set gets to the far-right end, there won't be many left.

I must remember to buckle the cable up every few inches as I glue it on, so there is room for it to stretch when rolled up.

 I did an experiment (right) by taping some of the flat wire on to a pizza box. The first wire was taped every 6", but the bulges seemed too high, so then every 3". Curling the box over to 5" diameter pulled it right up tight. I measured how much wire fed out from flat to rolled, and it came up as only 1/4". It's amazing how much needs to bulge to take up that 1/4" !

The lower image is part of an animation I did in Maya, to see if there'd be any other problems before going this route.
I have found creating a 3-D animation always helps conceptualize an idea, then shows any issues that may be missed in the "idea" stage.

  (Up to November 7th 2012)


  It's amazing how far this project has come in the past few days. Now the mechanical & design aspect is out of the way, the fun stuff can begin!   Problem is I don't have the board made because I need one of the girls at Staples to copy the board printout onto some transparency paper. And that's a $22 ferry ride away, and can't go until the weekend.  So for now I have been writing the microcontroller program for the unit. This is where it gets a bit crazy!

  Writing an orderly, logical, easily User Interface-able program for a PIC microcontroller isn't an easy task. After writing hundreds of programs for these things, I have come to the conclusion that writing the users manual / instruction manual first,  is the best way to get the desired results.  It's written with the thought of "how would this part of the program be done?"
Most of the time it works, other times I end up rewriting the whole thing. That's easier than rewriting a huge program.

 The Program:

   I have written a short operation manual, and written instructions on how to use the Strip Lights with FL Studio. It needs to be easy to use, flexible, and convenient, or I won't use it!
The Strip must be:
A stand-alone, using a microphone and CDS cells to sync with music & light.
Controlled directly via MIDI from a keyboard or sequencer like FL Studio.
Programmable to accept & record preset lighting sequences.
Selectable, to play pre-recorded sequences.

  Because the unit needs to operate in so many ways, some parameters must be set. Starting with MIDI. In the clip to the right, there are several "patches". These patches are actually musical instruments in General MIDI. Patch 1 is usually Piano, Patch 2 is usually Electric Piano etc. 
Each patch has a number, 1-128. I have used these patches to change the keyboard into different types of controls for the lights.

  Patch 1 is the most obvious. A way to instantly "play" any of 10 colors. Each octave on the keyboard is a different color. Each note in that octave is a different bar of light. Happily, 12 notes/octave and 12 bars! ( Purely a coincidence...really it was! )

  Patch 2 is a wash, or all lights, on each of 10  natural  keys, which is a good way to get instant colors. The velocity of the notes sets the brightness of the lights.

  Patch 3 just another wash, but 3 notes control Red, Green,& Blue. MIDI Control Change #60,61, & 62 control them gradually.

  Patch 4 is to start pre-programmed lighting sequences. (See Record below) Any Note that has been programmed to play a sequence will start the sequence. The sequence will play through regardless of when the note is released. Starting another sequence during a sequence will cancel the old in lieu of the new. Care must be taken to start the sequence at the beat it was recorded at. This will usually be on the first beat of a 4/4 bar.

   Patch 5&6 are a breakaway from the automation of the MIDI Sequencer (FL Studio in this case) in that it the Strip Light will act like keys on a piano. This will make an interesting display while playing live, and ooooh the colors! The way it works is the 12 keys in an octave will be the 12 bars of LED's. The harder they are played, the higher the color. Max velocity would be Red, followed by pink, then sky blue, etc. Each octave is overlapped, and can act additively. This means if a key plays green, then another key 1 octave up plays orange, then the note would turn yellow.
  The notes won't just flash, but they'll fade over 1 second or so, adding to the colorful display. Patch 6 takes advantage of this by moving all of the keys to the right within 1 second. This will hopefully give a "race" effect like dripping food coloring into a stream. (Not that I've ever done that!)

  Patch 7 is to set the type of music the recorded patch will be for -during auto-Audio / CDS mode.  I added this because ambient fades just wouldn't work with a pounding techno beat, as a flashing, pulsing display wouldn't work at all with a little guitar ditty. (That kind of happened when I set my incandescent light show up at the Legion and went for a smoke!! Flash flash flash!)

  Patch 8 is to set what parameter can be modified (by the Audio input & CDS cells) away from the original set during programming. Mostly color or brightness. That's not completely done yet. It also will have a "Fade-out" on/off control note.

  Patch 128 is to set the Sequence # before a record. The capture to the right shows the patch already at 128. This was just set by the RecordArm pattern. This pattern can be re-used by each new sequence. It's missing over the green in the image.

Somewhere in the first bar, the Sequence number note is to be "played". This must be set before the RecordArm pattern returns the patch to 1 (at beat 3) or it won't be captured.
The first note after this will start the Record. It's important there be a note on the first beat, even if it is a dummy with 0 velocity, because this is how the record routine aligns with the beat.

  All of the notes in the 2nd bar are a short light sequence, which must be terminated by an "End Of Sequence Marker", a note C-10, before the 1st beat of the next bar.

  It seems a bit complex, but once the initial setup in FL Studio is taken care of, it's just a matter of re-loading the STRIPLIGHTS.flp file, and adding to it. In fact it has to be done this way because a flash EEPROM can't erase individual bytes. It's a simple way too!
  The only thing to keep in mind is the Record sample-rate is only 8/beat. This is still pretty fast, on a 120 BPM song that's 16 / second. Still it'd take .75 seconds to scan across all 12...

  "How does the Strip Lights program know when to erase the EEPROM?" you're probably asking. If the unit has been turned off, a flag is cleared on startup. If the unit hasn't been turned off, the flag is cleared on a MIDI Stop Play. On entering Record mode, if this flag isn't set, the EEPROM is erased, then it is set.

  Apart from a few quirky routines that still have no access yet, like a ping-pong fast pan, and a high speed chaser that may deal better with the 16/second scan-rate issue, that's about all there is to it. I have most of the programming done and simulated already, so once the board is together, and the 12 strip lights mounted off it, things should work right away.

Ha ha! In my dreams!

Well that's about it for now, but next time I'll update on how it's working and maybe post some video on youtube. It's kept me busy for a few days now, and will probably change a bit before then so stay tuned.

December 22nd: Project Revision & Completion!

  Well, it took a bit longer than I thought, and if I was the head designer at a big telecom company I'd be fired by now, but progress has been made and it's now hanging happily from the ceiling  (because my walls are angled inward!)
  Here's the final schematic, and the board corrections have been updated above.

 There were a number of changes made to the board, the program, and even the User Manual. In the circuitry, there were changes to:

   -The Mic Amp: A dynamic mic just didn't do the lows ( I forgot not all mics are $350 mics!)
    The new mic is a standard FET electrohet style, like one from a cell phone. They have a fantastic
    dynamic range (ha ha) and I found if I really powered it hard with a 1.5K resistor, it doesn't
    distort even with everything really cranked up.
    The front amp was removed, and a back amp, after the Low-Pass, was added on. (Spare Op-Amp)

   -The Flash EEPROM's SDi & SDo were backwards, so those are noted on board, and a 3.8V zener
    diode was added across the EEPROM supply for safety. The EEPROM is an Atmel AT25DF081A.

   -The MIDI out transistor was wired in, but the 180 ohm resistor is pulling up the collector of the
    transistor, as I had trouble with the way it is in my schematic. The MIDI out is to send on data
    that is NOT on channel 6. It also sends special strobe (seq#7) Notes on Channel 12.(See Manual)

The program was changed in lots of ways as well:

   -The PIC '74 SPI bus interface was dumped as I just couldn't get it to work after 4 days!
    This meant a manual bit-banger for the EEPROM, which is fast enough and works great.

   -The CDS cells were almost forgotten, so now act as a "no audio" light follower that works better!

   -A secondary Kick drum sensor had to be added in the way of a secondary frequency counter that
    detects the fall in frequency ( All kicks have it ) This is so low bass sounds don't trip it.

Revised Schematic: December 22nd 2012
ZIP File:
 USER MANUAL has a .FLP, bigger schematic, print board, and striplights.HEX
The .ASM file isn't in the zip as I'll have to remove the comments first!!

   -Added an "Advanced Settings" into Patch 6, which also turn on/off fade mode. That's
    all too complicated to explain here, look at USER MANUAL
for more. To keep it short, the
   Disco/Club cross-over BPM, Ambient min. Mic level, Kick Low-Cut, Beat Trigger Level, & Kick Drop
   On/Off/More can be set in Patch 6. These are saved to EEPROM so no need to set on power-up!

     -Patch 3 was redundant because of Patch 2, so became a live control called "Bar-Fly"... 'nuff said!

   -Programming Sequences has also changed. The image to the right shows an example clip. Notice the
    long pause after the first record pattern? This is because an erase cycle can take up to 12 seconds
    although it usually takes 6 or 7. It doesn't really matter, but in hindsight, perhaps a SD card
    would have better served the purpose. I used one in my "Sea-Song" project and it wasn't too bad
    once I had it figured out. Oh well, maybe next time.

  This EEPROM (8Mbit) can hold about 17 minutes of light sequences, which is enough for anything I could come up with. The Maximum number of sequences, though, is only 120 which is dictated
by the number of notes before C-10 (the end-sequence note). Using sequences in a song sure makes things easy! Just one note and colors, movement, flashing... wow!

  This unit is everything I'd hoped for, and feels like a Christmas prezzie to me, from me! It does have a few minor bugs, and now I know the world didn't come to an end, I may as well fix them!
The .zip file USER MANUAL , which has all the needed files to do this thing, will be updated and posted here if I find anymore bugs. This light Strip was intended to be a backdrop,
but it is so bright, it can actually light up the stage (studio) quite nicely
I can't wait to post a video of it in action!!


 Although they won't do it justice, Here's some photos until then....



 I hope you have enjoyed this crazy project as much as I have!! Time to move on to the next 2: the lightBar and the globeLight

Cheers!!  Sandy*




Disclaimer: This is not an instructional page to build or manufacture the above project, nor are there any guarantees of accuracy herein.
This page is an "of interest" discussion, and the project is intended for my own personal use.
If you have any questions, or wish to pursue this project, you may contact me (Sandra) at fresh(at)