My earlier edge-lit plexiglass demo was a study for an art/technology collaboration with Lisa Rundstrom that became known as “Organic Energy Cloud,” installed at Diver Studio for the November 28 Final Friday.
Lisa and I ended up agreeing on 200 LEDs (and ultimately installing 160). I had decided early on that I wanted to use two A6276 16-LED drivers to a board, for distributed LED control, all run by an Arduino. Once I got all my parts, over the November 22 weekend, I designed and began assembling the driver boards.
Schematic and Boards
The schematic is dead simple — daisy-chained A6276es, common clock and latch lines, output enable tied active (low). For speed and cost, I planned card-edge connectors to solder all the LED and “umbilical” connections to. Although the A6276 doesn’t have separate digital and analog grounds, I used separate wires in the umbilical for digital and LED V+, and I doubled the GND and LED V+ lines for current-carrying capacity.
I hand-etched a prototype PCB to make sure the design worked, but it was pretty time-consuming and not my most beautiful work (especially being a two-sided board). Tom McGuire milled me a much more beautiful set of boards (although not using that mill), and did a very nice job using the drill holes as registration marks to line up the milling for the back side.
Assembly
Monday the 24th, I started pressing my friends into service for slave labor. Jeremy and Mindy were my first victims, and together we got all the PCBs and about half the LEDs assembled. Jeremy was stripping wire ends and Mindy and I were soldering — she did a fantastic job, especially for someone who had never soldered electronics before.
The key to retaining a shred of sanity while soldering wires onto SMT LEDs is a good soldering jig. Sunday night while assembling my prototype control board, I had tried to assemble LEDs with just the helping hands vise, and the LEDs kept going crooked in the alligator jaws. It took me about an hour to solder sixteen, and I knew that wouldn’t get 200 done in time.
I figured my mom still had some wooden clothespins, and after a little quality time on the disc sander, I had some perfectly elegant, incredibly functional SMT LED soldering jigs. Production speed skyrocketed; frustration plummeted; stabbiness dissipated.
With the LED wires attached, and especially once the umbilicals were on (not shown here), the controllers really reminded me of facehuggers.
Rather than try to size LED wires specifically for LED placement within the piece, we made them all the same length. Lawrence, Gail, and the kids (especially Phill and Jake) stayed up late the next night helping me finish soldering LEDs and assembling the controllers.
Bus
I designed the controllers so that the clock and data lines would run in parallel to every board, but each board would have a separate latch line. It doesn’t matter what’s in the A6276′s internal serial buffer — it only matters when that chip gets its buffer latched to the outputs — and this arrangement made for a minimum of connections to the Arduino.
I knew we were going to be plugging and unplugging the umbilicals from the Arduino multiple times before we got everything assembled; but because of the parallel bus arrangement, there were too many wires to plug the umbilicals directly into the Arduino’s headers. I thought about plugging the bus together on a breadboard, but it would have made for a lot of jumper wires for the paralleled lines.
It ended up feeling easiest to design a small bus board with female headers on it, with the power, data, and clock lines bused, and the latch lines run to a separate 8-pin header at the top. (The bus board could run eight controllers — 256 LEDs — although we only ended up using five controllers.) I would have chosen to use ribbon cable to connect the latch header to the Arduino, except I forgot about that jumper and had to make something quickly out of borrowed wire while we were doing the gallery installation.
All Together
Because I was prepared to run 200 LEDs at ≥ 20mA each, the small power supplies I have weren’t going to be up to the task, and I used a PC power supply, not visible here except for its DC power cables.
The Arduino is plugged into the bus and the PC power supply, and in the foreground is a breadboard for a part of the project that didn’t come to fruition. This is actually how it sat during the show — Lisa is fascinated by technological infrastructure, and the mess of wires was part of the “organicness” of the piece. More on that in a follow-up post on the installation.
Controller Enhancements
Soldering all the LED wires to the card-edge connectors turned out to be a bit of a chore with someone helping with two vises and a needlenose pliers, and incredibly tedious to do alone. All along, I’ve been thinking about how I could design or redesign the controllers so they’d be practical for artists to use without me there to assemble everything, and these boards just aren’t suitable. I have three crucial considerations that weren’t anywhere near met:
- Wiring the LEDs to the board needs to be easy. (Soldering individual wires was time-consuming and hard to do alone.)
- Replacement of burned-out LEDs needs to be easy. (Desoldering wires from the controller and resoldering new wires isn’t practical, especially once the board is installed in a piece.)
- Replacement of burned-out boards needs to be easy. (Desoldering all the wires from a bad board would be a nightmare.)
So ideally I’m looking for a connector that would make it quick and easy to change individual connections on the LED side, and also quick and easy to change a whole batch of connections on the board side — like a daughtercard with an edge connector on the bottom and jacks for LED wires on the top.
Coincidentally, the week after the show, I was at Anixter’s Chicago facility evaluating replacement keycard door access control systems for work, and I found what looks like the perfect connector on the back side of some HID card readers. The connector has screw terminals on the top for the wires that go to the door strike, motion sensor, etc., and plugs on the bottom to snap the whole thing into the socket on the card reader. The guys from the lab told me they think it’s called a Phoenix or Buchanon connector, and kindly gave me one to take home!
Now I just need to spend some time going through about a hundred pages of the Digi-Key catalog to see whether they carry this, and maybe to see what else they have that’s similar and might be even better.
Meanwhile, this past weekend during a scheduled power outage in our computer room for some kill switch and fire suppression work, I found this connector (upper left) inside the fire alarm control panel. (BlackBerry camera + closeup == fuzzzzzzz . . .)
I really like the orange quick-release levers on this — it’d sure be handy for hooking up the wires in the first place (presuming, as with the screw terminals above, that one is using a large enough gauge of wire that one can clamp them and make good contact). I also love that the wires feed out the top of the connector instead of the side. But it doesn’t offer bulk plug action like the above Phoenix-or-Buchanon connector.
Especially if the two had the same pin spacing, maybe one could offer boards with choice of connector. I think I’d pick the quick-release connector for use in a project with only one or two controllers, and the two-level connector for use in a project with lots of controller boards.
More quality time with Digi-Key for me.