November 26th, 2003


More xmas light thoughts

Yeah, using a parallel port to drive the xmas light grid would be much easier. Thanks for all the recommendations. And the parapin library makes it easy.

So, I can get a 74LS74 TTL component which has two D-flip-flops for like $0.60.... need then like 45 of those. That doesn't cost much. Will also need a transistor for each flip-flop too... ideally I could find a TTL component with both a flip-flop and transitor in it.

Guess I need to run constant power down both the bottom and right sides to power the flip-flops, and then a separate power down the bottom which I turn on and off for the single pixel that's lit at a time. I wish I had a good tool to draw a schematic with.

Haven't thought about packaging at all.... it's all going to get wet. If I have ~25 of these TTL components every 6 inches down the side, maybe I can drown them in epoxy blobs? I'd prefer to do that than run a ton of wires from the base. This all needs to take apart well and connect in pieces.

My calculations about bandwidth before were totally wrong. I'm basically scanning a single dot over the 54*40 grid and conditionally lighting it at every location.... so that's 54*40 = 2160 locations... each location will take a write from the parallel port to setup the signal (with clock low), then another to bring clock high, then another two to optionally light/unlight the pixel.... so that's, what? 8640 signal changes per screen? And the parallel port can do like 11 Mbps (more than USB 1.0, I recall?) with 12 in/out pins? So 1 Mbps for a single pin? Um, should be plenty fast.

Man, I've been re-reading my college electronics book. Things are slowly coming back, but I really don't know what I'm doing. I suppose I should go pick up some parts and start tinkering with a small-scale version.

initial success

I took off from work early and went to Radio Shack (which sucks) and Norvac Electronic (which is awesome) to get shitloads of parts for the xmas light project.

Got the parallel port interface working, and I could make the computer control the voltmeter.

My dad then came over and we did a lot of research on different TTL and CMOS families. Our two basic design ideas are:

1) One big shift chain. Power on/off after shifting all 2048 pixels. But that's a shitload of wiring... even with high-current 16 bit shifters (serial in/out, parallel 20mA out), that's a lot of work. And the 16 bits ones are way more pricey than the 8 bit ones, so that's even more work.

2) Shift a row in, light it, shift the next row, light it. But since we're only lighting rows for 1/40 of the time we have to use 40x the voltage. With 2.4V lights we're talking 120v everywhere. (still low power overall) But this will probably drive the price up, but only along the edges. Haven't looked for those parts.

Anyway, we ended tonight with a C program (using libparapin) turning a single 2.4V 20mA white xmas light on and off in different duty cycles (full, 1/2, 1/4) and increasing the voltage as a proof-of-concept. Indeed, brightness is the same as long as you increase the voltage as you decrease the work duty.

Current problem is the library or parallel port just isn't fast enough. There's noticable flashing.... need to get the frequency up coming from the computer. The library also works in kernel space, so that's one avenue. Need to do some research first, and read the library source... see if I can cut some bloat.

Oh, and the cashier girl at Radio Shack was totally flirting with me... very amusing.

I'm off to get drinks with people.