Skip to the content
2 layers165 × 51 mmCNIX V2 Control Board, the printed circuit board in 3D

CNIX V2 Control Board

Stustup/C-Nixie_CNIX

Nixie Tube Clock with flexible tube driver

Size
165 × 51 mm
Copper layers
2
Thickness
1.6 mm
Parts
112
Nets
83
Pads
313
Tracks, vias
605, 286
Pours
20
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
11 Mar 2025
Updated
5 Oct 2026

Overview

CNIX V2 Control Board is an open-source printed circuit board by Stustup, from the Stustup/C-Nixie_CNIX repository on GitHub. It is a 2-layer board of 165 × 51 mm with 112 parts on 83 nets, routed with 605 tracks and 286 vias.

It is built around the STM32G051C8T3, UCC3803D and ABS25-32.768KHZ-T, with the BAT54W, ES2G and FDS2734 among its other parts. Its parts include 28 capacitors, 28 resistors, 11 connectors, 7 diodes and 4 switches. It belongs with the lEDs and displays boards and the STM32 boards of this library.

Main components

7

README

README.md

CNIX - Nixie Tube Clock

CNIX is a nixie tube clock that can accept many diffrent nixie tubes with only slight modifications to the tube carrier board.

Nixie Clock finished real picture

The motivation was that there are not many clocks out there that let you use almost any nixie tube you like. Most have fixed power supplies, underdesigned driver stages or inflexible microcontrollers. I hope to tackle these problems with an adjustable boost converter PSU, extremely flexible (and electrically protected) driver stages and an open source firmware written with free tools.

Nixie Clock PCB stackup

Schematic

The control board consists of 4 parts:

  • Power Supply
  • Microcontroller
  • I/O
  • GPIO header

Control board schematic

Power comes from a simple USB-C plug configured for 5V 3A max with the 5k1 CC line resistors. I thought about adding a PD controller for higher input voltages, but this would just have added complexity and locked you into more expensive USB PD power supplies.

The µC is a STM32G051, because it has an included RTC with added Vbat pin for an external battery, so that the RTC remembers time even when powered off. The unused GPIOs are broken out to a connector, so that in the future one could add cool stuff like a radio time reciever, a display or wifi. Time is set manually with the push buttons on top.

The PSU is heavily inspired by this site. I highly advise you giving it a read. The article goes in depth with boost converter design and its challanges.

HT Power supply The ht power supply is a DCM boost converter powered by the UCC3803. An active low enable pin is realized via pulling the frequency RC combination low. With normal usage temperature of around 50-60°C are reached by the output transistor and the controller, which is a safe area. The case is designed so that a convection current of air is directed over the power supply at all times. This vent should not be blocked.

Control board 3d view

The driver consists of 4 CD4028 BCD to Decimal converters and 6 SN75468 high voltage drivers. The SN75468 only work up top 100V, but when using two 48V zener diodes as clamps, the voltage on the torned off digits never reach above 100V and above the startup voltage of the nixies. So win win.

Tube board schematic I didn't use the old high voltage nixie driving shift registers as they are more and more hard to find for a reasonable price. Also i did not use shift registers at all, to simplify programming and wiring. Instead the whole Port B of the STM32 is used as a big 16 bit control register where the numbers are encoded in BCD. This ensures that there can not be 2 turned on digits at the same time in one tube to prevent bugs and damaging the beautiful nixies. Except the decoupling capacitors, diopdes and LEDS, everything is a simple to reflow solder IC, The tube pins have to be assembled manually (by putting them on a tube an inserting it into the holes before soldering it to ensure perfect alignment).

The case is designed in FreeCAD and printed in PLA or PETG. Assembly is a bit of a hassle, but the fit is perfect. You can print a front plate, but i think the clock is vastly more beautiful when paired with a wooden front plate. Drill files for this are within the CAD folder. The holes for the LED front indicators can be filled with a 3mm lightpipe cut to length, to get a beautiful finish. Case, PCB and front plate are screwed together with 15mm M3 wood screws.

Case 3d view

Neat features

Adaptability

If you want to use any other nixie (up to around 5mA per tube of HT supply current) just modify the tube board PCB to fit your tubes. The driver, power supply and control logic should all be compatible with any other tube. Of course you have to modify the driving circuit when not using the simple common anode topology.

USB-C support

Use any USB power supply with a minimum current of 1.7A (The startup of the boost converter needs a lot of current) Standard power consumption is around 2W (400mA at 5V) when the boost converter is powered on and around 0.2W (40mA at 5V) when the boost converter is powered down.

Fallback structure

If for some reason you change your mind while setting the start/stop times or the main time, just wait for around a minute. The menu will exit automatically, discard all changes and get back to the main time display.

Date and Sensor display

Press the "plus" or "minus" buttons to cycle through submenus in this order: Main Time display -> Date display -> Sensor Display These have a short timeout time to get back to the main Time menu. The sensor display gets disabled when there is no sensor addon board present.

Automatic daylight saving time (DST)

The clock will calculate DST on its own and set the time correspondingly, even when the DCF77 module is not used.

Turn on/off timers

You can set power on and off times in the clock natively, so that the nixies dont always glow. With this the HT-power supply also gets deactivated to save power and lifespan of the parts. There are two sets of start and stop times set by the buttons on the menu with the lower LED blinking. The order is: Start1 -> Stop1 -> Start2 -> Stop2. If all are set to 0, the start stop automatic gets disabled. The start stop times are saved to a backup register of the µC, so the clock remembers them even when powered off as long as the RTC battery is present.

Peek

When out of the "on" timeframes you can "peek" at the current time for 10s with a press of the menu-button. During these 10s you can jump to all the diffrent menus.

Addon Boards

The breakout pins next to the µC can be used for addon boards. Pins D2 and D3 of the µC are used to detect those with an ID system.

IDBoard
0b11No Addon board installed -> defualt
0b00DCF77 Addon Board used
0b01not yet used
0b10not yet used

Most of the hardware features of the STM32G051 should be mapped to the pins on the breakout. If not you're out of luck (it's open source, so just change it). Stuff like the ST-Link programming pins or I2C are broken out on extra headers to simplify future expansion.

DCF77 Addon Board

DCF77 Addon Board In germany (and most of europe) we have the DCF77 signal pushed out by the radio transmitter near Frankfurt. This board hosts a cheap module from ebay and a HTU21D temperature and humidity sensor. The driver is already programmed into the Control Board and gets enabled when this addon board is detected. When a valid time is recieved the manual timeSet menu gets disabled, to prevent fuckery. It is setup, that every night at 2 an alarm gets triggered by the RTC to recalibrate time. If the time-parity bit is not matched within a 20 minute timeout an attempt counter is incremented, which gets saved to a backup-register inside the RTC. As long as a RTC battery is powering the µC this register is kept even when the power is off. If the attempt counter reches 3 days without successful calibration against the radio time the manual timeSet menu gets enabled again.

On the DCF77 Addon board there is a single pin to give structural strength to a simple perfboard on the main breakout bus. One can use this in tandem with the A1, A2, A3, A4, F0 and F1 pins.

DCF77 Addon Board

Ideas for future addon Boards:

  • ESP32 addon board to integrate WiFi time synchronisation or HomeAssistant integration
  • Other sensors like air quality sensors
  • maybe displays?

TODO

  • Change to new MCU. STM32H5 for USBC pd -> more efficient boost converter because higher input voltage
  • Sleep modes during off times paired with wakeup alarms at start times -> reduce power consumption even more
  • Improve the case to simplify assembly
  • More tube boards to fit more types of nixies (IN-14 e.G.)
  • BOM optimization to reduce number of unique parts
  • galvanic isolation between high voltage areas and µC GPIOs

Parts

112
QtyValueFootprintReferences
16TestPoint_SmallTestPoint:TestPoint_THTPad_D1.0mm_Drill0.5mmTP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17, TP18, TP19
104k7Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR4, R5, R6, R7, R8, R9, R10, R11, R12, R15
9100nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC2, C4, C5, C8, C9, C10, C11, C104, C106
7TestPoint_SmallTestPoint:TestPoint_Pad_D1.5mmTP1, TP2, TP3, TP20, TP22, TP23, TP24
31kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR100, R107, R113
3LED_redLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD1, D2, D3
2100kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR101, R102
2100n 250VCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC112, C114
2100u 16VCapacitor_SMD:CP_Elec_6.3x7.7C113, C115
210uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC6, C12
2220uCapacitor_SMD:CP_Elec_8x10C100, C105
22kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR16, R103
2330kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR111, R112
25k1Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR13, R14
26pCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C3
2GNDConnector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ8, J9
2LED_GLED_SMD:LED_0805_2012MetricD102, D103
10RResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR106
10R1Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR108
1100nf 250VCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC111
1100pCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC109
110kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1
11nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC107
1220pCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC103
122uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC7
12u2 250VCapacitor_SMD:C_2220_5750Metric_Pad1.97x5.40mm_HandSolderC110
133u, 4.2AInductor_SMD:L_12x12mm_H8mmL100
1430pCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC102
147uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC101
14k12Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR104
1560pCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC108
160k4Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR105
1634kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR109
17k68Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR110
1ABS25-32.768KHZCrystal:Crystal_SMD_Abracon_ABS25-4Pin_8.0x3.8mmY1
1AP7361C-33ER-13Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1BAT54WPackage_TO_SOT_SMD:SOT-323_SC-70D100
1Coin CellBattery:BatteryHolder_Renata_SMTU2032-LF_1x2032BT1
1ES2GDiode_SMD:D_SMB_HandsolderingD101
1EXTConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1
1EXTConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ4
1FDS2734Package_SO:SO-8_3.9x4.9mm_P1.27mmQ101
1GNDTestPoint:TestPoint_Plated_Hole_D3.0mmH100
1GNDTestPoint:TestPoint_Loop_D3.80mm_Drill2.0mmH1
1HTConnector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ7
1HT_enConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ100
1I2C_extConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ5
1LEDConnector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ10
1LOGOLogos:C Audio Logo 15mmG***
1MMBTA42Package_TO_SOT_SMD:SOT-23Q100
1ProgConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ6
1RSTButton_Switch_SMD:SW_SPST_Omron_B3FS-100xPSW1
1STM32G051C8T3Package_QFP:LQFP-48_7x7mm_P0.5mmU1
1SW_MenuButton_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx31-2LFSSW3
1SW_MinusButton_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx31-2LFSSW2
1SW_PlusButton_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx31-2LFSSW4
1Tube OutConnector_PinSocket_2.54mm:PinSocket_2x08_P2.54mm_VerticalJ3
1UCC3803Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU100
1USB_C_ReceptacleConnector_USB:USB_C_Receptacle_GCT_USB4085J11

More from Stustup/C-Nixie_CNIX

2
  • 2 layers185 × 51 mmCNIX V2 Tube Board, the printed circuit board in 3D

    CNIX V2 Tube Board

    Stustup/C-Nixie_CNIX

    Nixie Tube Clock with flexible tube driver

    50 parts
  • 2 layers77 × 47.5 mmDCF77-Addon, the printed circuit board in 3D

    DCF77-Addon

    Stustup/C-Nixie_CNIX

    Nixie Tube Clock with flexible tube driver

    18 parts

Similar boards

  • 2 layers168.8 × 95.8 mmNixie clock, the printed circuit board in 3D

    Nixie clock

    alx-alexpark/nixie-clock

    ИН-12 Nixie Tube Clock built with Pico W and k155id1

    75 parts8
  • 4 layers155.3 × 50 mmNixietube clock, the printed circuit board in 3D

    Nixietube clock

    HabonRoof/nixietube_clock

    nixie tube clock 2nd version

    179 parts
  • 4 layers20 × 140 mmGrow monitor, the printed circuit board in 3D

    Grow monitor

    CapnKernel/grow-monitor

    62 parts
  • 4 layers76.2 × 51.4 mmPypilot controller, the printed circuit board in 3D

    Pypilot controller

    ottermarine/pypilot_controller

    A repo for working on a snapshot of a PyPilot motor controller from SdE

    99 parts
  • 4 layers156.2 × 76.2 mmGrowth module pcb, the printed circuit board in 3D

    Growth module pcb

    benthacher/growth_module_pcb

    Apartment Aeroponics Control PCB Project

    135 parts
  • 4 layers140 × 100 mmSYS1, the printed circuit board in 3D

    SYS1

    ele-kvadar/Sistem-1

    Repository za Sistem 1 druge verzije ELE-Kvadra.

    154 parts
  • 2 layers85.5 × 66.8 mmPGE PCB, the printed circuit board in 3D

    PGE PCB

    sKulll-J/PGE_2024_SoSheeps

    On sépareras les ressources dans des dossiers différents.

    51 parts

Questions

How big is the CNIX V2 Control Board PCB?

It measures 165 × 51 mm and has 2 copper layers, 1.6 mm thick.

What parts does the CNIX V2 Control Board use?

112 parts, built around the STM32G051C8T3, UCC3803D, ABS25-32.768KHZ-T and BAT54W. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the CNIX V2 Control Board KiCad files?

From the Stustup/C-Nixie_CNIX repository on GitHub, at the commit this page was made from: the board is Hardware/Control Board/CNIX V2 Control Board/CNIX V2 Control Board.kicad_pcb and its schematic Hardware/Addon Boards/DCF77-Addon/DCF77-Addon.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the CNIX V2 Control Board design in my own project?

Its repository states no licence, so its author keeps all rights: ask Stustup before reusing the design.