Building a Nixie Clock is a time honored tradition among makers, and this is yet another DIY Nixie Clock project. This one is unique in a few respects: 1) it uses an ESP8266 development board as the microcontroller, allowing it to automatically sync its time to NIST over WiFi, and 2) it features a 3D printed frame and hand-solderable PCB.
Two choices for a case are available: one with a colon separator between the hours and minutes (i.e., NixieBaseWithColon.stl and NixieCoverWithColon.stl) and one without (i.e., NixieBase.stl and NixieCover.stl). Different PCBs are required for the two options.
I also recommend taking a look at the ceramic Nixie clock cases designed by artist Jackson Fyfe. The one he made for me is pictured above, but he has many other designs at his web site.
When the clock is turned on for the first time, it will create a WiFi access point at ESPNIXIE that can be connected to using a computer or smartphone. The user can use this access point to specify the WiFi network SSID and password. This information is stored in EEPROM, so will not be needed the next time the clock is turned on.
This clock includes a menu-driven OLED screen and rotary encoder, with menu options described below. All settings are stored in EEPROM so they can be used after a power cycle.
- Set UTC Offset. The user's local time zone is selected by adjusting the time offset from UTC time.
- Auto DST. This option enables/disables automatic daylight savings time. The code includes rules for US Daylight Savings Time (second Sunday in March at 2am to first Sunday in November at 2am). The code can easily be modified for rules in other countries.
- 12/24 Hours. This option selects between 12 and 24 hour time formats.
- Blink Colon. This option is available if using a colon separator. If enabled, it will blink the colon once per second, otherwise it will keep the colon on steady.
- Protect Cathode. Nixie tubes are susceptible to cathode poisoning when material from an active cathode sputters on the inactive cathodes. This process can be reversed by occasionally cycling through all numbers for short durations. When enabled, this feature will cycle through all the numbers at a 10 Hz rate for 5 seconds. Besides protecting the cathodes, it also looks cool. Time intervals ranging from 15 minutes to two hours can be selected.
- Auto Shutoff. When enabled, this feature will automatically turn off the tubes between designated hours (e.g., during the night), helping to preserve Nixie tube life. The off and on times are selectable through a submenu.
- Screensaver. When enabled, a screensaver will activate on the OLED if the menu has been inactive for more than 60 seconds. OLEDs are subject to screen burn-in, and this will help alleviate that issue.
- Show Zero. This option allows the user to select whether the left most Nixie tube (tens place for the hour) should be turned off when it is zero, or whether zero should be shown.
- Reset Wifi. Selecting this will cause the ESP8266 to forget the current WiFi network. The clock will reboot and set up a new WiFi access point at ESPNIXIE.
In addition to these settings, holding the rotary encoder button down for more than three seconds will manually toggle the Nixie tubes on and off. If the Auto Shutoff feature is enabled, the Nixies will stay on or off as selected until the next Auto Shutoff transition occurs, after which the Nixie tubes will turn on and off according to the Auto Shutoff schedule.
The software, PCB circuit design, and detailed instructions are available at my github site: https://github.com/elkayem/ESP_NIXIE
Please PM me if you would like a set of printed circuit boards. I have enough extras to make a few more ESP Nixie clocks. You will need to purchase the ICs and other components, but those can easily be found on eBay, Amazon, and all the other usual places.
- NodeMCU V1.0 (Amica board). Clone boards often are unofficially labeled as V2
- 4 IN-14 Nixie Tubes
- 1 0.96" I2C 128x64 OLED display
- 1 Rotary Encoder
- 1 12VDC 1A Wall Adapter Power Supply
- 1 NCH6100HV High Voltage DC Power Supply (or equivalent)
- 1 Nixie Board PCB (options with or without colon separator circuit, see github site)
- 2 15-pin female headers
- Lots of male breakaway headers (I haven't counted, buy a pack)
- 6 16-pin DIP IC Sockets
- 4 Nixie Tube PCBs (see github site)
- 2 74HC595N shift registers
- 4 74141N BCD to Decimal Decoders (or K155ID1 Russian equivalents)
- 1 L7805 5V regulator (heatsink recommended)
- 1 0.33 uF capacitor
- 1 0.1 uF capacitor
- 1 3 Pin 5.08mm Pitch PCB Mount Screw Terminal
- 1 2 Pin 5.08mm Pitch PCB Mount Screw Terminal
- 4 15K Ohm resistors
- 1 20K Ohm resistor (used to illuminate decimal point if not using colon separator circuit. However, I no longer recommend using this resistor for ascetic reasons.)
- Various M2 and M3 bolts
- 8 female-female short jumper wires.
- 1 MPSA42 Transistor (if using colon separator PCB)
- 2 200K Ohm resistors (if using colon separator circuit)
- 1 33K Ohm resistor (if using colon separator circuit)
- 1 IN-3 tube or 2 NE-2H tubes (if using colon separator circuit)
Most of these parts can be found on eBay or your favorite online Chinese retailer. Although no longer manufactured, nixie tubes are still readily available, with the IN-14 selling for about $5-$10 per tube. I recommend the NCH6100HV power supply, though there are many others out there capabile of driving Nixie tubes. The output voltage should be set to 170 V, which can be adjusted using an onboard potentiometer. If selecting a different power supply, make sure it is capable of delivering at least 15 mA of continuous current at 170 V.
Please see my Github website for the complete build instructions and firmware: https://github.com/elkayem/ESP_NIXIE