Skip to the content
PCBKitNew board
2 layers85.5 × 67 mmController, the printed circuit board in 3D

STM32U031-based nixie clock/controller

Size
85.5 × 67 mm
Copper layers
2
Thickness
1.6 mm
Parts
133
Nets
82
Pads
322
Tracks, vias
881, 145
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
6 Apr 2025
Updated
21 Aug 2026

Overview

Controller is an open-source printed circuit board by lokuciejewski, from the lokuciejewski/nixie_controller repository on GitHub, published under the MIT licence. It is a 2-layer board of 85.5 × 67 mm with 133 parts on 82 nets, routed with 881 tracks and 145 vias.

It is built around the CH340N, DS3231MZ/V+ and TSSP58038. Its parts include 16 capacitors, 14 connectors, 11 resistors, 5 ICs and 5 switches. It belongs with the lEDs and displays boards and the STM32 boards of this library.

Main components

3

README

README.md

Controller/clock for mini Nixie I2C modules

STM32-based controller board that uses 4 nixie modules to display the current time. The modules can be changed at any time the board is off and swapped if the nixie tube goes bad or the user wants to insert a different nixie tube.

V1 board with 4 modules

The board uses a STM32U031 microcontroller coupled with DS3231 RTC to achieve low power, reliable timekeeping. For High Voltage for the nixie tubes, it uses a premade nixie PSU 160-180V (available on aliexpress). It uses a single cell CR2032 battery to keep the time when the module is not connected. For communication, it uses a serial interface over the USB-C port (which also serves as the power input). The board features 3 programmable buttons and two LEDs for signalling the system status.

V1 empty board Note: V1 version of the board contains multiple test points and additional inputs which will be removed in the V2 version.

Building

Prerequisites:

  • Rust
  • cargo

To build, simply run cargo build --release

Flashing

The board is flashed using probe-rs, which can utilize a range of multiple programmers, for example an ST-Link. Connect the programmer to the J3 and run cargo run --release.

Operation

Currently, the time can only be set using the serial port and the comm.py script.

The serial protocol for talking to the board can be found in the serial directory

Planned features

V2 will have an option to wire 1 or 2 neon tubes between the hour and minute displays (since not all nixie tubes come with a comma).

It may also be equipped with the human presence sensor to only light up when it can detect a human.

A console interface is planned to utilize all features of the board (such as programming inputs, time, etc.)

The board has a second serial available on pins which may be used for wireless time access via e.g. an esp32.

V1 board with nixies off

Parts

133
QtyValueFootprintReferences
52TestPointTestPoint:TestPoint_Pad_D1.0mmTP2, TP13, TP14, TP16, TP17, TP18, TP19, TP20, TP21, TP22, TP23, TP24, TP25, TP26, TP27, TP28 +36
17GPIO_JMPJumper:SolderJumper-2_P1.3mm_Bridged2Bar_RoundedPad1.0x1.5mmJP10, JP11, JP12, JP17, JP18, JP19, JP20, JP21, JP22, JP23, JP24, JP25, JP26, JP27, JP28, JP32 +1
810uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1, C3, C5, C7, C10, C11, C12, C30
6100nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC4, C6, C8, C9, C13, C14
210kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR3, R11
21KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR4, R28
24.7kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R2
25k1Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR9, R10
2LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD2, D7
2OPT_3V3Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1, JP34
1100kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR30
115kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR6
11MResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR5
122uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC2
13V3_MCUTestPoint:TestPoint_Pad_D1.0mmTP8
14.7uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC15
1AZ1117CH2-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1BOOT0Button_Switch_SMD:SW_SPST_TL3305ASW2
1BTN_1Button_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx39-2LFSSW4
1BTN_2Button_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx39-2LFSSW5
1BTN_3Button_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx39-2LFSSW3
1BatteryBattery:BatteryHolder_Keystone_1060_1x2032BT1
1CH340NPackage_SO:JEITA_SOIC-8_3.9x4.9mm_P1.27mmU5
1DS3231MZPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU3
1GNDTestPoint:TestPoint_Pad_D1.0mmTP15
1HV_AUX_INPUTConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ13
1HV_AUX_OUTPUTConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ7
1Nixie Module Socket 0Connector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_VerticalJ8
1Nixie Module Socket 1Connector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_VerticalJ1
1Nixie Module Socket 2Connector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_VerticalJ4
1Nixie Module Socket 3Connector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_VerticalJ5
1PWR INConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2
1RESETButton_Switch_SMD:SW_SPST_TL3305ASW1
1SCLTestPoint:TestPoint_Pad_D1.0mmTP12
1SDATestPoint:TestPoint_Pad_D1.0mmTP10
1STM32U031C8TxPackage_QFP:LQFP-48_7x7mm_P0.5mmU1
1SWD HeaderConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ3
1SWDIO_0Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ9
1SWDIO_1Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ10
1SWDIO_2Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ11
1SWDIO_3Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ12
1SerialConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ14
1TP_3V3TestPoint:TestPoint_Pad_D1.0mmTP1
1TP_5VTestPoint:TestPoint_Pad_D1.0mmTP9
1TP_HVTestPoint:TestPoint_Pad_D1.0mmTP11
1TSSP58038OptoDevice:Vishay_MINICAST-3PinU10
1USB_C_ReceptacleConnector_USB:USB_C_Receptacle_GCT_USB4085J6
1VBAT_JMPJumper:SolderJumper-3_P1.3mm_Bridged2Bar12_RoundedPad1.0x1.5mm_NumberLabelsJP3

Questions

How big is the Controller PCB?

It measures 85.5 × 67 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Controller use?

133 parts, built around the CH340N, DS3231MZ/V+ and TSSP58038. 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 Controller KiCad files?

From the lokuciejewski/nixie_controller repository on GitHub, at the commit this page was made from: the board is kicad_files/controller/controller.kicad_pcb and its schematic kicad_files/controller/controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Controller design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers11 × 22.1 mmIr smart led controller, the printed circuit board in 3D

    Ir smart led controller

    dotcypress/ir-smart-led-controller

    IR Remote Controller for WS2812(or analog) LED Strip

    7 parts10Apache-2.0
  • 2 layers57.7 × 50 mmKiCAD Board, the printed circuit board in 3D

    KiCAD Board

    XasWorks/dragon-home

    A rework of our old SmartHome project, this time done cleanly and neatly~

    47 parts8GPL-3.0
  • 2 layers57.8 × 34 mmDangerDonut, the printed circuit board in 3D

    DangerDonut

    gavin4d/dangerDonut

    Danger Donut is a work-in-progress 150 gram melty brain combat robot.

    65 parts5
  • 2 layers188.9 × 115 mmLayer3, the printed circuit board in 3D

    Layer3

    8076ducc/robocup-2025

    ducc.'s RCJ Soccer 2025 Team Repository

    59 parts4
  • 2 layers95 × 90.5 mmTeensy ver, the printed circuit board in 3D

    Teensy ver

    MUNAKATA-EPC/Artemis_2023

    アルテミス2023シーズンのリポジトリです。詳しくはwikiで。

    151 parts2
  • 2 layers50 × 58 mmMonitor osd control, the printed circuit board in 3D

    Monitor osd control

    amos42/pcb_monitor_osd_control

    Monitor OSD Control Board

    21 parts1
  • 4 layers76.2 × 25.4 mmCurio, the printed circuit board in 3D

    Curio

    dotcypress/curio

    Glorified Infrared Remote Control.

    31 parts1
  • 2 layers84.9 × 59.5 mmIR PCB, the printed circuit board in 3D

    IR PCB

    Kushal-Sachdeva78/VVS-Ballers-RoboCup

    Autonomous RoboCupJunior Soccer (IR League) robots by Team VVS Ballers: 9th place at RoboCup 2026 in Incheon. Teensy 4.1 multi-board electronics, IR/line/ultrasonic sensing, OpenMV vision, 48 V solenoid kicker.

    54 parts1MIT