Proton pack lights, finished!

And, it's show and tell time... finally got this one done :smiley:

In short, I was trying to build a light set for a proton pack replica (Ghostbusters for those not familiar with the term) using a custom Arduino setup. One that didn't involve taking an Arduino board and sticking it inside the pack forever. Working the lights was pretty easy: the sequence was 4 reds looping, and 12 blues in a knight ryder configuration. Then there's a pushbutton that tells the pack it's "firing", and after a while of holding the switch down, the lights start blinking all at once to warn of an overload.

The LEDs are all on their own breakouts, and there's a central controller board with the processor. Why all the breakouts? The blues go on one side, the reds on another side, then there's the battery pack, switch, a main power switch... it gets way too crowded if you try to fit it all in one board.

Common anode/cathode configurations on the LEDs have given me mixed results before, so I just went with a regular old 1 to 1 limiting resistor configuration. Since I'm the one designing the PCBs, might as well put in the extra traces and shell out $0.50 for the extra resistors. And in the end, it looks really good and bright with no interaction between LEDs.

The blue LEDs have 2 daisy chained 74HC595 driving them. Arranging those traces was a pain the butt, BTW. 12 signal + power + gnd + chain signal... you get the picture. Fortunately I had plenty of space to work (that board can be huge due to mounting requirements). Still, I had to jump a few traces on the upper side of the board with wires ::slight_smile:

The blues are controlled with 3 pins from the processor, plus gnd and vcc.

The reds are driven by regular old NPN transistors (consider when they flash you have 16 LEDs going at the same time so you can't just drive them from the processor pins). Couldn't find a LED driver IC locally, and 4 small NPNs were cheaper than mail ordering a driver. The NPNs are switched via 4 pins on the processor.

The rest is just voltage regulation and limiting resistors for the NPNs. An LM7805, a couple of caps before and after the LM7805 (though I probably don't need those since I'm running on batteries), and a green LED for power indication. Add a 16 MHz crystal and a couple caps for the processor, pullup/down resistors on the reset and push switch, and that's it. Oh, and I had to improvise a 28 pin socket with a pair of 16 pins, so you see 4 pin holes left over ::slight_smile:

It's powered by 6 AA batteries. Cheaper to operate (rechargeables!) than with a 9V. And it keeps the 7805 regulator happy at a low temp.

Programming is pretty straightforward. The whole thing runs in a loop with counters. So one counter is 1 to 4 for the reds, the other 1 to 12 for the blues. The ShiftOut tutorial was really useful for figuring out the blue LED routines. There's a small function in the loop that monitors the switch press and counts how long the switch has been pressed, if it exceeds a threshold, that function takes over and blinks all the lights.

As for programming the hardware itself, I just took the processor out of my Arduino Uno, stuck in the white one in the picture, uploaded the sketch, tested, and then pulled it out of the Arduino and stuck it in the board. Works just fine. The processor already had a bootloader burnt on to it (bought it that way), so that saved me from having to mess with burning bootloaders.

Where's the videos?

I'll get the videos during the mounting process (be sure to flag the post it'll be a couple of days) :grin:

What I did make during assembly was a video on how I did the toner transfer and etch, in spanish tho.

Heh heh, kind of took me a bit more than a couple of days... but, here's the video of the lights finally mounted and working! :grin:

Video on Youtube