Skip to the content
4 layers108 × 48.5 mmNixieSTM32, the printed circuit board in 3D

Nixie tube clock

Size
108 × 48.5 mm
Copper layers
4
Thickness
1.6 mm
Parts
54
Nets
93
Pads
278
Tracks, vias
452, 55
Pours
2
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
15 Nov 2022
Updated
5 Jun 2025

Overview

NixieSTM32 is an open-source printed circuit board by jamesSaporito, from the jamesSaporito/NixieClock repository on GitHub, published under the MIT licence. It is a 4-layer board of 108 × 48.5 mm with 54 parts on 93 nets, routed with 452 tracks and 55 vias.

It is built around the STM32L010K4T6 and FQU11P06TU. Its parts include 15 capacitors, 9 resistors, 5 ICs, 5 connectors and 1 transistor. It belongs with the lEDs and displays boards and the STM32 boards of this library.

Main components

2

README

README.md

Nixie Clock Overview

alt text

This is a nixie tube clock that tells basic time. Two push buttons are used to set the time, one for the hour and the other for the minute, and a mechanical switch turns the tubes on and off.

More info about Nixie Tubes.

Core Components

Four IN-12A nixie tubes are used, which require ~170V DC to illuminate. The NCH8200HV is used to generate this voltage. The mechanical switch cuts power from this module, which allows the tubes to be turned off.

The nixie tubes are driven from four K155ID1 ICs, one IC per tube. These are very obsolete, but were made specifically to drive nixie tubes. The microcontroller used for this project is the STM32L010K4T6, an Arm Cortex-M0+ MCU. The RTC is used along with an external 32.768 kHz crystal to keep accurate time. Based on the one I've built, it consistently gains around two seconds per day.

PCB

The PCBs were designed using KiCad in two separate projects. These are found in the pcb directory.

There are two PCBs, the main board and the tube board. The main board is where all the main components live (MCU, ICs, capacitors, etc.). The tube board is specifically for the tube sockets to be soldered to, and then the tubes to plug into those. The main board and tube board plug into each other via header pins. The male header pins are soldered to one board, and the female to the other. This is how the current flows from the main board to the tube board. It also allows the PCBs to be disassembled if necessary.

Notes

The tubes should not be directly soldered to the PCB. Instead, solder tube sockets to the PCB, then plug the tubes into those. This will allow replacement of a tube if one breaks.

Enclosure

The 3d directory contains the files for 3D printing an enclosure for the completely assembled clock. These parts require threaded brass inserts for the screws to secure everything. There are currently two versions of the enclosure.

V1

Original design.

Screws are M2.5 x 5 and M2.5 x 8.

The PCB Spacers are used for additional support between the boards to minimize stress on the header pins that connect the tube board to the main board. Three of these spacers can be mounted while screwing the boards onto the front plate.

V2

Inspired from Dieter Rams's design of the Braun DN40.

All screws are M2.5 x 5.

Four screws (top two alone are enough) can be used to secure the tube board to the PCB Mount. Easy to tap/screw directly into the plastic.

The rest of the eight screws require the threaded brass inserts.

Design Flaws

Due to the PCB using a Tag-Connect footprint for programming, the enclosure design pretty much requires the MCU to be programmed prior to assembling everything. If there is a desire to upload different firmware, then it will mostly have to be taken apart.

The DC jack that was used for this design requires to be mounted prior to soldering the wires to it. This restricts the enclosure from being completely removed without cutting the wires to this jack.

Firmware

The firmware is a standard STM32 project set up using CLion and its integration with STM32CubeMX.

The only important thing to keep some form of is the cycle() function, which is found in Core/Src/nixie_display.c. All this does is cycle through each number on every tube, which is supposed to prevent cathode poisoning. Unsure how effective this is at the current frequency and duration.

Programming the MCU

In order to avoid additional hardware, a Tag-Connect footprint is used on the main board. This is used with an ST-LINK device (clones should work just fine) to program the MCU.

Issues

Update: It looks like this issue was fixed, I have not had time to test it out.

Unfortunately, using stlink doesn't seem to work with several STM32L0xxx MCUs. To get around this, the project can be opened up in STM32CubeIDE and flashed using the built in debugging functionality. Not ideal, but it works.

  • STLink GitHub issue: 1203

Images

alt text alt text alt text alt text

Parts

54
QtyValueFootprintReferences
710kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR7, R8, R9, R10, R11, R12, R13
4100nFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC2, C3, C5, C15
41uFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC6, C7, C8, C14
474141DIP16nixiemisc:nixiemisc-DIP16M1, M2, M3, M4
4Conn_02x06_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_VerticalJ2, J3, J4, J5
212pFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC9, C10
1+9VConnector_Wire:SolderWire-0.25sqmm_1x01_D0.65mm_OD1.7mmH1
10.1uFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1
10.22uFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC11
110uFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC4
1200kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR6
122pFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC12
122uFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC13
132.768kHzCrystal:Crystal_SMD_SeikoEpson_MC306-4Pin_8.0x3.2mm_HandSolderingY1
133uHInductor_THT:RFS1113-333MEL1
1604kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR5
1Conn_ARM_SWD_6Connector:Tag-Connect_TC2030-IDC-FP_2x03_P1.27mm_VerticalJ1
1FQU11P06TUPackage_TO_SOT_THT:TO-251-3-1EP_Horizontal_TabDownQ1
1FerriteBead_SmallCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderFB1
1GNDConnector_Wire:SolderWire-0.25sqmm_1x01_D0.65mm_OD1.7mmH2
1HOURS +Connector_Wire:SolderWire-0.25sqmm_1x01_D0.65mm_OD1.7mmH5
1HOURS+GNDConnector_Wire:SolderWire-0.25sqmm_1x01_D0.65mm_OD1.7mmH25
1LT3470ITS8PBFPackage_TO_SOT_SMD:SOT-23-8_HandsolderingU4
1MAX6817Package_TO_SOT_SMD:SOT-23-6_HandsolderingU2
1MINUTES +Connector_Wire:SolderWire-0.25sqmm_1x01_D0.65mm_OD1.7mmH6
1MINUTES+GNDConnector_Wire:SolderWire-0.25sqmm_1x01_D0.65mm_OD1.7mmH24
1NCH8200HVModule:NCH8200HVU5
1STM32L010K4T6Package_QFP:LQFP-32_7x7mm_P0.8mmU1
1SW_SPDTButton_Switch_THT:SW_CuK_OS102011MA1QN1_SPDT_AngledSW1
1Switch InputConnector_Wire:SolderWire-0.25sqmm_1x01_D0.65mm_OD1.7mmH3
1Switch OutputConnector_Wire:SolderWire-0.25sqmm_1x01_D0.65mm_OD1.7mmH4
1TPS7A05SOT23Package_TO_SOT_SMD:TSOT-23_HandSolderingU3

The 51 most common of 54 parts.

More from jamesSaporito/NixieClock

1
  • 2 layers108 × 47 mmTube Board, the printed circuit board in 3D

    Tube Board

    jamesSaporito/NixieClock

    Nixie tube clock

    12 partsMIT

Similar boards

  • 2 layers94.6 × 46.1 mmHeaterMeterPI, the printed circuit board in 3D

    HeaterMeterPI

    CapnBry/HeaterMeter

    HeaterMeter and LinkMeter Arduino BBQ Controller

    66 parts557MIT
  • 2 layers127 × 83.5 mmAudiostation, the printed circuit board in 3D

    Audiostation

    janikkaden/self-sufficient-audio-station

    A solar-powered, self-sufficient audio station for outdoor exhibitions — ESP32 + DFPlayer, wakes from deep sleep on a button press and plays info tracks in three languages plus music.

    28 parts1GPL-3.0
  • 2 layers61 × 34 mmCounter thing, the printed circuit board in 3D

    Counter thing

    SyntaxColoring/counter-thing

    A thing that counts.

    13 parts1
  • 4 layers44.6 × 31.8 mmTransmitter, the printed circuit board in 3D

    Transmitter

    rjacoby00/devel

    Repository for code experiments and smaller projects.

    45 parts
  • 4 layers52.7 × 47.9 mmAnalyzerBoxPCB fork, the printed circuit board in 3D

    AnalyzerBoxPCB fork

    gusmanb/logicanalyzer

    24 channel, 100Msps logic analyzer hardware and software

    54 parts5.1kGPL-3.0
  • 4 layers29.2 × 75.2 mmPicoGUS Hand386, the printed circuit board in 3D

    PicoGUS Hand386

    polpo/picogus

    Emulation of ISA sound cards and CD-ROM on Raspberry Pi Pico (GUS, SB/Adlib, MPU-401, Tandy, CMS, Panasonic CD-ROM) with USB mouse/joystick support

    54 parts805
  • 4 layers48 × 80 mmBoard latest, the printed circuit board in 3D

    Board latest

    dennisss/dacha

    Monorepo for awesome tools/projects/libraries

    54 parts397Apache-2.0
  • 4 layers27.3 × 32.3 mmMixer breakout, the printed circuit board in 3D

    Mixer breakout

    loxodes/vna

    Under development open hardware microwave vector network analyzer

    54 parts205

Questions

How big is the NixieSTM32 PCB?

It measures 108 × 48.5 mm and has 4 copper layers, 1.6 mm thick.

What parts does the NixieSTM32 use?

54 parts, built around the STM32L010K4T6 and FQU11P06TU. 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 NixieSTM32 KiCad files?

From the jamesSaporito/NixieClock repository on GitHub, at the commit this page was made from: the board is pcb/main_board/NixieSTM32.kicad_pcb and its schematic pcb/main_board/NixieSTM32.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the NixieSTM32 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).