Put a scrolling LED display in your computer for less than $20
This is sort of an expansion & howto on my previous post of scroll a message on my cable box. I finally got around to building a new 8 digit display and mounting the whole thing in place of my floppy drive.
The total cost for this project was less than $20. The most expensive parts were the 7 segment displays and the ICM7218 chip. I used 0.56" tall digits. It took 4 of the LED packages to get 8 characters. The width of all of them together was exactly the same as a floppy!
First off, here's the schematic. Don't let it scare you, it's really not as complicated as it appears. Essentially you tie all the A segments together, the B segments together, etc. The only gotcha is one segment is upside down (in order to make a colon for a clock) and it is wired slightly different than the other 3.
The LED segments I used are LTD5321AR red 2-digit packages. I would have preferred to get green, but the local electronics store didn't have any other color. To hook them all together I used a donut-style perfboard and wired "traces" across it.
What a pain in the ass that was! Each color represents a single segment, and all the wires are on the front except for the gray ones which I had to jumper on the back too. Why, why, why, in this day and age can't there be an easy&cheap way to make a PCB? I have no desire to mess around with chemical etching. I don't have a CNC available to me to do milling. And I don't want to spend $40 to make a one-off proto board that I might have laid out wrong. It sure seems like there should be some way to print out a PCB from a printer.
If your 7-digit displays are Common Anode, then you want to get the ICM7218A chip. For Common Cathode, get the ICM7218B. Mine were Common Anode so I used the ICM7218A and that's the way the schematic is drawn.
For power I hooked into the 3.5" floppy power. If you happen to have a computer that has the parallel connector hooked to the motherboard from a ribbon cable, then you can wire it in to that. My computer didn't have that, so I had to put on a DB25 connector and fish a cable out the back of the computer.
After you get everything soldered up, you should test it and make sure it's working. You don't want to have to tear everything apart to go back and fix a solder joint.
Now that it's working, the next thing to do is make a base for it. Since I have lots of wood scraps and woodworking tools on-hand, I chose to make it out of wood.
Easiest way to set the width is to grab a floppy drive and stick it between the blade and the fence (WITH THE SAW TURNED OFF) and then lock the fence down. I ripped a piece of 3/8" plywood for my base.
After I cut the plywood to size I needed to make a rabbet as a sort of shelf for the LEDs to sit on. I used a router table since it's easier to setup and adjust the height on.
Don't make the shelf too thin or else it'll snap right off when you go to cut the groove. The groove is so the PCB behind the segments has something to sit in and let the segments rest flat on the board. I simply put the segments against the fence and shifted it over until it looked lined up.
To adjust the height of the blade I put the rabbet over the blade and adjusted it up until it touched the board, then made it just a little higher.
I used a hot glue gun (got it at the dollar store!) to stick the display and the brown plexi in place. The plexi came from one of those stackable file inbox thingies.
The next thing to do is pull out your floppy drive and insert your new display. Be careful while inserting it into the bracket, it's easy to snag the wires or put too much pressure on the display and snap it off the board.
After I inserted it into the bracket, I put the bracket back and slid the display up so it was flush with the front. I then forced in screws with just a screwdriver, no need to pre-drill. My case was a little tight inside so I had to use a stubby screwdriver, but the screws went in really easy into the side of the plywood.
Here is the program for Linux that drives the display.
To compile it do gcc -o icm7218 icm7218.c
I created my own custom "font" so that I can display both numbers and letters. Some of the letters may be a little strange, but every character is unique so that it's possible to get used to the font and learn to read it fluently. Uppercase and lowercase are the same, and not all symbols have been defined.
Usage is quite simple. If you call it with no arguments it will display the time. You can add it to cron and have it called every minute and it will make a nice clock.
If you want to display a message then the first argument is the message. If the message is longer than 8 characters, then you need to provide a second argument which is the number of times to scroll the message. If you need to put spaces in your message, be sure to put quotes around it. icm7218 'The quick red fox jumps over the lazy brown dog' 2
Now all I need to do is paint my case black!
Update 2006/05/01: Painted the case black yesterday. Those Vectra cases look very sharp in black.