<D <M <Y
Y> M> D>

Our technology project didn't work, despite Colin's amazing work at the physical layer and Emma's and Scott's amazing work on igniters to light candles. In a previous year, we were able to drive solid-state relays directly from a PC's parallel port. This year, we used the same exact solid-state relays but a different PC; its parallel port wasn't able to source as much current (I think I've seen web sites suggest that they can be limited to as little as 4 mA or able to provide as much as 50 mA, depending on which one you get) and so we weren't able to drive the solid-state relays directly. I had neglected to bring a TTL buffer chip because it had been unnecessary the last time we tried this.

It's too bad, because I also wrote a nice little C program to decode ASCII characters to 7-segment display representations and drive a 7-segment display with TTL levels on the PC parallel port. But when we connected the real live parallel port to the real live 7-segment display, the output voltages fell precipitously and the relays were not triggered at all.

For reference, writing a byte to I/O port 0x378 on a PC will cause that byte to appear on pins 2-9 of the DB-25 connector attached to the PC's first parallel port, using TTL voltage levels relative to the parallel port's logic ground, which, among other places, is available on pin 25. Pin 2 is the least significant bit and pin 9 is the most significant bit. (This is explained much better in other places on the Internet, complete with lots of pictures!) But if you actually want to drive anything with the parallel port, it's really a good idea to use a TTL buffer between the parallel port and your load.

I think a bunch of people took pictures of us trying to build this thing, so I'll try to post links to them if anybody puts them on-line.

Here are two other annoying things. First, DB-25 break-out boxes usually don't have preattached jumper wires. If you want to connect pins from a DB-25 connector into a breadboard, it takes a really long time! Second, USB digital I/O devices cost a lot of money even though they are seemingly extremely simple. (It's hard to see why a USB I/O device should cost more than any other USB devices that contains any digital logic and a memory. Seriously, I just want a USB interface chip, a shift register, and a buffer. Why does that cost more than some complicated USB interface that implements some other bus protocol on top of that?) PC parallel ports are cheap, but they are ideal for controlling external digital devices, except for the small amount of current they provide and the relatively small number of output lines they provide (just 8 unless you want to mess with status bits). USB could fix both of these problems easily, and indeed USB devices are available that do fix them, but, depending on the amount of assembly and the market at which the devices are aimed, they seem to cost from $30 to about $400. This despite the fact that USB digital interfaces seem already to be a large market and product category.

Come on. You could probably get a USB digital clock for $10 or $15 now. Why should access to the data lines inside cost extra? It's like all these other cases where you have to pay more for less -- like the extra cost of organic food, or raw food, or diet food. In this case, it must be based on the idea that people who buy peripherals that are fully enclosed are "consumers" and people who buy peripherals that are open and expose their guts are "professionals" or "hobbyists" who are willing to spend a bunch of money on a peripheral.

I guess they're right, at that.

Ever notice how the binary clocks are actually just regular digital clocks, minus the BCD-to-seven-segment decoder/driver chips? Regular digital clocks represent the time just the way the "binary clocks" do, and then they have a little extra circuitry to display the time on 7-segment displays instead of showing the actual bits in their memory registers. (They probably use something similar to an old 7447 or 7448 TTL chip.) Binary clocks just omit that step and show you the actual bits in their memory registers; you could make a binary clock out of a regular digital clock by just inserting probes in the right places and hooking up lights to them.

But, of course, you have to pay more for a binary clock than you do for a corresponding digital clock, because the binary clock is all cool and geeky. (You can tell because you can get them at ThinkGeek.)


[Main]
Support Bloggers' Rights!
Support Bloggers' Rights!


Contact: Seth David Schoen