Re-Hacked Nixie Clock


A few months ago we went through a bit of a cleaning frenzy at work and I found myself carrying this to the dumpster:

That is the main circuit board from a NCI model 5775 DigiFlex industrial scale indicator, made sometime around 1975. This was the very first digital industrial weight indicator ever manufactured.

The 5775 was so primitive it didn't even have a microprocessor; it was all hard-wired TTL logic. Needless to say by 1980 this thing was as obsolete as a buggy whip. I found myself carrying this one to the garbage in the mid-1980's, when I realized that since it didn't use a multiplexed display I could repurpose it. In those days when a UART chip cost nearly $100, many instruments used BCD data interfaces -- they used a separate wire for each of 4 bits to represent each digit of the numeric value. Testing those outputs with a voltmeter was no fun; with the 5775 motherboard I could pull the counter and latch chips, wire a connector to the display driver inputs, and test such interfaces all-up.

So I mounted this board in a very ugly but functional box and used it like that regularly until 1990 or so, when the last BCD interfaces were also as obsolete as buggy whips. And that tester sat on a shelf, having not been powered up for over 10 years, when I was directed to toss it.

This time on the way to the dumpster I realized I was carrying a fully functional Nixie-tube based display with the power supply and drivers all wired up. As with the BCD tester I could repurpose it again.

Nixie tubes are gas discharge displays with a separate cutout electrode in the shape of each of the ten digits 0-9 (some have special symbols instead) which are operated by applying voltage to the appropriate electrode to make it glow. Nowadays Nixie tubes have achieved a kind of coolness because they're not made any more, nor are the driver chips, they require stupidly high voltages to operate, and they have a very distinctive three-dimensional presence unlike any other kind of display.

In fact I used to have a collection of Nixie tubes which I sold last year because I realized I was probably never going to build anything with them. However, this board with all the hard stuff done for me was a little too good to pass up. Before I spent any time or money on it I burned it in for several weeks to make sure everything was healthy.

It passed that test beautifully, so voila...

Since this is an instrument display it doesn't have a colon or am/pm indicator, but it does have a sign and an error indication (actually a NE-2 neon bulb between the sign and the reading). I decided + would be PM and - would be AM.

The remote control is used to set the time and arm the alarm -- yes, it's an alarm clock, and actually in service. I have a pile of unused remotes from various work projects and I decided the IR receiver would be easier to fiddle with than a bunch of buttons. It also makes the build much cleaner.

The enclosure is laser cut melamine-finished MDF. I had to split the back panel in half to barely fit everything on a single Ponoko P2 size sheet. I probably should have gone with acrylic; it was $11 for the material but nearly $40 for the laser cutting. The black edging isn't the natural color of the MDF; if you cut it with normal tools it's a light blond wood color. The black char layer is created by the laser as it burns, rather than melting or vaporising, its way through the MDF. I thought the melamine with the striking contrast edging would give it a bit of a funky retro appearance appropriate for its antique display tubes.

This was my first fling with laser cutting wood, and it's a little different than working with acrylic. It took some filing to get the case to fit together and it stays together by friction-fit even with the bolts out. I used a Molex connector on the mains power so that the 5775 board can be removed for service. The laser cutting made it wonderfully easy to accommodate the computer power connector, fuse holder with its anti-rotation notch, and the oddball mounting hole pattern of the main board. All of the holes were laser cut.

The transformer is a little too tall; my original plan was to remove it from the PCB and mount it to the back panel, which is what the unused holes are for. However I found I could mount the board a little lower than planned and used a router to cut a little cavity in the bottom of the lid to accommodate it. This avoided some major and potentially risky surgery on the main board, and was the only actual woodworking I had to do for the project.

The power connector, fuse holder, and display lens were salvaged from other industial discards.

For its brain I used a Parallax Propeller Protoboard (old version). I ignored the onboard 5V regulator and powered it directly from the 5775 5V supply. All connections are through plug-in headers so I can remove the protoboard from the 5775 for service.

To the protoboard I added, clockwise from the leftmost corner,

  1. The round black Piezo element for the alarm
  2. A Sparkfun DS1307 Real Time Clock module. This gives me the DS1307, resonator, and backup battery in a convenient little package. Since the Propeller chip boots from a I2C EEPROM, the RTC can share those same pins. The DS1307 is also on a socket so it can be removed for service or changing the battery.
  3. The IR receiver. I've salvaged plenty of these in the past but ended up buying this one new from Radio Shack.
  4. Replaced the edgewise programming header with a vertical one so I could plug the PropPlug in from the top.
The Protoboard is mounted on long bolts run through the unused holes of the old analog board edge connector. These didn't match the Protoboard mounting holes. When drilling a Protoboard like this you must be very careful not to short out one of the many traces that run around between the prototyping holes.

When I first modified the board by removing the counters and latches in the 1980's I had the schematic and full data for the 5775. Since then all that has been discarded, so I was left with my original connector wiring and TTL data book to work out which pads fed which bits of the BCD and the sign and error indicators.

The IR receiver works fine through the display lens despite being buried deep within the enclosure. It's used both to set the time and alarm time, and to arm and disarm the alarm.

Since the DS1307 maintains the time in BCD shipping the time to the display is theoretically a dead simple copy operation. In practice though the DS1307 keeps 0-23 military time, and I wanted a 12 hour am/pm display. This and incrementing / decrementing the values being set involved some surprisingly elaborate case statements.

One curious property of the 7441 BCD to decimal decoders is that they can't blank the digits; input values above 9 display 0-5. In order to show which digit is being set I created an animation which cycles through all 10 digits in about 1/3 second, instead of blanking. It's quite cool but doesn't video well unfortunately. When the alarm is being set I turn on the error indicator, and when it's armed I blink it once every two seconds. Every second seemed a little frantic for something that's in my face when I'm trying to sleep. The alarm time and whether it is armed are stored in the DS1307's battery backed memory.

The clock program is written in the Spin language which Parallax invented for the Propeller. The IR receiver is monitored by Bob Belleville's IR Kit, and the RTC is driven by Nyamekye's DS1307 RTC Driver. The IR Kit includes all the tools needed to profile the remote as well as read it from an application; it uses one of the eight Propeller "cog" cores to constantly monitor the input.

The main program loop calls a handler for the clock's display state (run, armed, setting time, setting alarm, etc.) each time the RTC second changes. Handlers have the option of changing the state before returning, and in some cases (such as an IR keypress) they trash the "last second" so a new handler will run immediately. The main loop reads the RTC second register 10 times a second while waiting to call the state handler again.

The alarm resonator needs to be driven at 3 KHz, and to do this cleanly a cog is launched when the alarm sounds. (A Propeller purist would complain that I could have used the counter/timers to save a cog, but I had cogs floating around and it was much simpler to do the beeping.) So this is a very lightweight application for the Propeller, needing only three of its eight cores and about 4K of its 32K Hub RAM. But the multicore architecture and open-source OBEX code made this a ridiculously easy project, and the extra cost of the Propeller over a cheaper CPU was trivial in addition to the costs of the enclosure and the irreplaceable antique Nixie board.

Think you don't have room on a small nightstand for such a big clock? Maybe you do after all if it's made of wood and sturdy enough to hold a lamp. (And yes, I did plan this.)

It would certainly be within the capability of the CPU to use the DS1307 to keep track of the date too, and to implement automatic daylight saving time adjustments. Another thing I would have considered, were the modules still available, would be adding a WWVB module to automatically set the time from the National Bureau of Standards time broadcast. In the end I decided not to bother with date features at all. I can always revisit those ideas later if I get an inspiration. There's plenty of Propeller functionality left to add features.

I didn't bother to document the build and I'm not putting the code or enclosure drawing up mainly because the chances of anyone ever getting hold of one of these boards to duplicate this build are ridiculously unlikely. If you're that guy drop me an email and I'll send them along.

--Roger "localroger" Williams, December 2013

Email Me

Back to localroger.com