- CAD 3D Model of Case and Components using build123d
- Six IN-12A Nixie Tubes and Four Colon Indicators
- ESP32-C3 microcontroller
- Powered via USB-C
- High Voltage Flyback Converter
- WiFi Provisioning via Bluetooth
- Sound
- Motion Sensing for Sleep Mode
- Webserver and Client to Control Settings:
- WiFi Credentials
- 12-hour or 24-hour format
- NTP server
- Colon Indicators (Blinking, Always On, Off)
- Color of LEDs
- Timezone
Clock.mp4
- Motion Sleep Mode
- Hourly Slot Machine and LED cycling
To design the clock case I used build123d (you can read the docs here).
This project contains a web-based interface to control settings for the clock. The interface is served by the ESP32-C3 and can be accessed at esp-home.local.
- Real-Time Control: Adjust clock settings in real-time using WebSockets.
- User-Friendly Interface: A clean and responsive web interface built with HTML, CSS, and JavaScript.
- Customizable Settings: Change various clock settings like time, timezone, 24 or 12 hour format, display color and brightness, and more.
ClockControlInterface.webm
This section contains some behind the scenes of the various stages of designing the clock, including prototyping, debugging, and iterative improvements.
- Display current time synced with NTP
- LEDs
- Sound
Black PCBs arrived from JLCPCB:
Before receiving my ESP32-C3 development board, I tested the ability to toggle numbers on a Nixie tube and verified the functionality of my homemade high voltage power supply. I created a boost converter using the toner transfer method. This DC-DC converter takes a +12VDC input and outputs approximately +170VDC. I used an Arduino Due board to cycle through the numbers on the Nixie tube.
NixieTube1.mp4
Upon receiving my ESP32-C3-DevKitM-1 development board, I wired up all six Nixie tubes on a breadboard using K155ID1 1601 DIP16 chips to drive the tubes. On the final PCB, I used SMT transistors to drive each pin of the tubes individually through shift registers.
NixeTube6Toggle.mp4
Next, I wrote code for the ESP32-C3 to update its time via NTP and drive the tubes accordingly (details are in the code). Additionally, I successfully integrated sound using codecs and a power amplifier.
NixieTube6TimeAndSound.mp4
Added code to have the ESP32-C3 drive some LEDs. There are LEDs underneath each tube on the clock.
NixieTube6LEDs.mp4
This project is dual-licensed to address both software and hardware components:
-
Software: The software in this project, other than iro.js, is licensed under the MIT License. You can use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the software, provided that the original copyright notice and this permission notice are included in all copies or substantial portions of the software. For more details, see the LICENSE file.
-
iro.js: Mozilla Public License 2.0 (https://github.com/jaames/iro.js)
-
Hardware: The hardware schematics and designs in this project are licensed under the CERN Open Hardware License (CERN OHL). You are free to use, modify, and distribute the hardware designs, provided that any modifications are also shared under the same license. For more details, see the CERN OHL License file.