Reverse Engineering 7 Segment Display

I recently came across an old five digit seven segment display and decided to see if I could give it a second live.  It appears to have been from a  weighing device of some kind, judging by the company name: Weigh Right Inc.

5 Digit 7 Segment Display

It’s a gorgeous piece of hand drawn circuitry with lovely smooth lines.  There are also very few jumpers on the board so clearly the designer had put in some effort into this single sided design.

Circuit of the 7 segment display

The display is essentially a serial to parallel converter, with 5 8bit 74C164 chips driving each digit.  Each 74C164 has the 8th bit connected to the following chip to create a single serial interface for the entire display.  To understand the design and how to interface to it I traced out the circuitry and drew up the schematic.  You can find it on the github page for this project.

After figuring out the binary codes for each segment and building a simple 5V to 12V logic translator with 2N3904 transistors, I wrote up a simple script for an Arduino that would light up all the segments, which was when I found the reason that it was in the scrap pile:

The display functioning, sort of…

Oh dear.

Rather than throw this away I figured I’d see if there was a way to fix it.  First step was to figure out if it was the 74C164’s.  They seemed really hot so I quickly figured out the current for each segment by turning one on at a time and watching the power draw on my bench supply.  18mA.  Which if you’ve read the data sheet for the 74C164 is a tad over the 8mA absolute maximum current of the device.  Since I didn’t have the original machine that this came from I can’t say for sure that the display wasn’t being flashed using PWM to reduce the drive current.  I can only hope that the original designer didn’t miss that.  I just reduced the drive voltage from 12V to 8V to get the current down to below 8mA per segment.

After further inspection that all the LEDs were okay on the dead segments I tested the voltage output from the 74C164: 7V, even higher than the lit segments.  A bit odd considering the LEDs themselves are fine.  Turns out whoever assembled the board decided to save power by putting the LEDs in backwards on a few of the segments!  An easy enough fix and now I have a fully functioning 5 digit 7 segment display!

All segments working now

You may notice one LED is brighter than the others.  One LED was actually dead and my replacement LED is much newer.  Not sure if that’s due to technological progress on LED efficacy or just wear (better on the former), but it’s quite a big difference!  There’s another dead LED but somehow it’s still conducting current so I might leave it in for now rather than having another strangely bright LED.  If I can scavenge a period correct LED (not something I thought I’d ever want) then I might drop it in.

Side note: 1970’s Solder smells weird.  Not sure if it’s the solder formulation, PCB materials, or flux residue.

Next step is just to figure out what to make with it!