Stanley Kubrick’s 1968 science fiction film 2001: A Space Odyssey still stands up pretty well. But there’s a telling anachronism in the scene where scientists visit a monolith that’s been uncovered on the moon. On their lunar shuttle’s control panel, there are numerical indicator lights clearly made with cold-cathode displays, also known as Nixie tubes. This technology was in vogue during the mid-1950s but fell out of favor in the 1970s.
Nixie tubes still enjoy a following among enthusiasts of retro technology. I’ve sometimes been tempted to build a Nixie-tube clock, but the difficulties and expense always put me off. It’s hard even to purchase Nixie tubes at this point—especially larger ones—and they require high-voltage driver circuits, which are inherently dangerous. So I was delighted when I stumbled on something designed to mimic the appearance of Nixie tubes without the complications—something its designer calls a “Lixie display.”
Lixies contain WS2812B smart LEDs at one end, which can change colors on demand. The light from the LEDs is funneled into a stack of acrylic sheets. Such “edge-lit” displays use a phenomenon called total internal reflection, which keeps the light inside the acrylic except where it has been etched. (This form of display has become popular for exit signs, for example.) Each sheet is laser etched with one numeral, and typically only one sheet is illuminated at a time.
Not a Nixie: Construction of a clock requires a base for mounting four or six Lixie displays (top). A different digit is etched in each of the 10 acrylic planes contained in one display (middle). LEDs at the bottom of the display project light into one acrylic plane at a time, which then glows where it has been etched. Reflections in the other planes provide digits with a sense of depth (bottom). Photos: Randi Klett
The creator of the Lixie, Connor Nishijima, crafted his edge-lit displays specifically to resemble Nixie tubes. I’m not sure whether he was aware that edge-lit numeric displays go back just about as far as Nixies, though: Some computers and electronic measurement equipment of the 1950s used edge-lit acrylic to display numbers in a similar fashion.
I purchased four of these displays from Nishijima at $US 38 each. They come fully assembled and can easily be controlled by an Arduino. So all I needed to do was to construct a base for my clock and program a spare Arduino Nano I had lying around to display the time.
I made the base out of 6-millimeter-thick (¼ inch) red oak obtained at a local home center. The only challenging part of the woodworking was fashioning the various holes and cutouts for the Lixie displays so that none of the openings would be visible from the top. Some careful measurements and testing with a cardboard template proved effective here, and the four Lixie displays ended up being easy enough to mount on the wooden base.
The programming took very little effort, too, thanks to an Arduino library that Nishijima has written for these displays. This library includes a handy feature that allows you to set the maximum current that the displays will draw. I set that value to 400 milliamps so I could run the displays off a computer’s USB port without worry. One of the other features supported by the Lixie library lets you set the color of the displays to mimic the color of a Nixie tube, so I adopted that.
With Nishijima’s library, I had a four-digit clock up and running in a jiffy. The trickiest aspect, really, was getting it to keep decent time. Arduinos have a function called millis() that keeps track of the number of milliseconds since the last reset. Although that function is helpful, it’s only as accurate as the system clock, which is only as accurate as the time base, which for the Arduino Nano I was using is a ceramic resonator. It’s not surprising that it ran a little off—some 0.3 percent fast. So it took some trial-and-error tweaking to the code to get the clock reasonably accurate. And even so, I expect it will drift as the ambient temperature changes.
One option is to add a drift-corrected real-time clock module, but Nishijima provides an even more accurate solution to this problem as one of his code examples: a Lixie clock that self-adjusts. It uses an ESP8266 to connect to the Internet over Wi-Fi and find the current time using Network Time Protocol (NTP). The ESP8266, which can be programmed using the Arduino development environment, also drives the Lixie displays.
I’ve not yet attempted to configure an ESP8266-based NTP clock, but if excessive drift proves troublesome, I may give it a try. In the meantime, I’ll just enjoy the warm amber glow and the intriguing sense of depth provided by reflections in the acrylic panes of my retro-futuristic timekeeper.
This article appears in the February 2018 print issue as “Build a Nixie-Style Clock Without the Fuss.”