Skip to the content
4 layers152.4 × 101.6 mmNixieAccurateClock, the printed circuit board in 3D

NixieAccurateClock

willis936/nixie-clock-ice

Hardware and software source for a GPS nixie tube clock with delay correction.

Size
152.4 × 101.6 mm
Copper layers
4
Thickness
1.65 mm
Parts
103
Nets
154
Pads
591
Tracks, vias
674, 161
Pours
17
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
17 Dec 2023
Updated
17 May 2026

Overview

NixieAccurateClock is an open-source printed circuit board by willis936, from the willis936/nixie-clock-ice repository on GitHub. It is a 4-layer board of 152.4 × 101.6 mm with 103 parts on 154 nets, routed with 674 tracks and 161 vias.

It is built around the ADC0820BCWMX, LTR-329ALS-01 and PZTA42, with the SM4004 among its other parts. Its parts include 17 capacitors, 17 connectors, 13 resistors, 8 ICs and 6 diodes. It belongs with the lEDs and displays and radio and wireless boards and the RP2040 boards of this library.

Main components

4

README

README.md

nixie-clock-ice

Hardware and software source for a GPS nixie tube clock with delay correction.

Uses a PICO-iCE v3 FPGA + MCU module.

  • Raspberry Pi RP2040 processor
  • Lattice UltraPlus ICE40UP5K FPGA with 5.3k LUTs, 1Mb SPRAM, 120Kb DPRAM, 8 Multipliers

Building

Cloning

Clone with git CLI of the native OS (Windows if running WSL). This avoids checkout conflicts. Github desktop recursively inits submodules, which breaks on Windows due to path length limitations.

text
git clone https://github.com/willis936/nixie-clock-ice.git

Once cloned cd to software/lib and run these commands to initialize the submodules:

text
git -C pico-ice-sdk submodule update --init
git -C pico-sdk submodule update --init lib/tinyusb

Run these commands until the output stops changing. Running them once is likely not sufficient.

See the "Using the SDK" section of the pico iCE "Getting Started" page.

https://pico-ice.tinyvision.ai/md_getting_started.html

MCU

Follow the pico ice Getting Started section.

Using Ubuntu WSL the apt version of cmake is currently not high enough.

Install an appropriate version like this:

https://www.linuxcapable.com/how-to-install-cmake-on-ubuntu-linux/

text
sudo apt update && sudo apt install build-essential checkinstall zlib1g-dev libssl-dev g++ gdb make ninja-build rsync zip gcc-arm-none-eabi
cd /usr/local/src
sudo wget https://github.com/Kitware/CMake/archive/refs/tags/v3.28.1.tar.gz
sudo tar -zxvf v3.28.1.tar.gz
sudo rm v3.28.1.tar.gz
cd CMake-3.28.1
sudo ./bootstrap
sudo make
sudo make install

For MacOS with homebrew installed:

text
brew install cmake gcc-arm-embedded zlib gdb make rsync zip

FPGA

Make sure python 3.7+ is installed on WSL.

You may need to install pyenv, remove prior pip installations, and re-bootstrap.

https://gist.github.com/monkut/35c2ef098b871144b49f3f9979032cee

https://pip.pypa.io/en/stable/installation/

Install apio and oss CAD suite.

You may need to restart WSL in between the pip installation of the package and the package installation (last two commands).

text
sudo apt update && sudo apt install python3-pip yosys
pip install -U apio
apio install -a

For MacOS:

text
brew install yosys
pip3 install -U apio

Test project using the APIO guide here:

https://pico-ice.tinyvision.ai/md_programming_the_fpga.html

Use UF2 on WSL to convert the bin to UF2 then copy over CURRENT.UF2 on mounted USB drive pico ice.

https://github.com/tinyvision-ai-inc/uf2-utils/

text
cd /usr/local/src
sudo git clone https://github.com/tinyvision-ai-inc/uf2-utils.git
cd uf2-utils && sudo make install

Enclosure development

If you want to modify the FreeCAD FCStd files you should configure zippey (located in software/lib) with these commands from git bash (Windows) or shell (linux) with the repo as pwd:

text
git config filter.zippey.smudge "$PWD/software/lib/zippey.py d"
git config filter.zippey.clean "$PWD/software/lib/zippey.py e"

Note that you need python 3 installed and added to path as python for the .FCStd files to properly compress on clone.

The enclosure was developed in FreeCAD 0.21.2 + Assembly3. The Assembly3 plugin is needed to load the .FCStd file and modify the enclosure.

The enclosure starting point was generated by Protocase's template generator.

Requirements

  1. Display the time with 1 microsecond accuracy.
  2. Display the time with 1 second precision.
  3. Use nixie tubes to display the time.
  4. Do not require or allow the user to manually set the time.
  5. Display the time within 30 seconds of power on.
  6. Use a single power entry.
  7. Use a single radio receiver to establish local timebase.
  8. Have a user-selectable mode for Daylight Savings Time (DST) checking.
  9. Use longitude to estimate DST date range.
  10. Have a user-selectable mode to force DST offset on (off when both this and DST check mode are off).
  11. Use longitude to estimate timezone.
  12. Have a user-selectable timezone offset.
  13. Be able to use software to control nixie tube brightness.
  14. Use an ambient light detector to automatically adjust nixie tube brightness.
  15. Have a user-selectable manual brightness mode.
  16. Use a potentiometer to set the brightness in manual brightness mode.
  17. Run a nixie tube anti-poisoning routine once a day (cycle through all digits at high brightness for a minute).
  18. Have a user-selectable mode to enable daily anti-poisoning routine
  19. Have a user-selectable mode to force anti-poisoning routine on indefinitely.
  20. Have a user-selectable 12-hour / 24-hour display mode.
  21. Use a nixie tube decimal point to indicate AM/PM in 12-hour display mode.
  22. Use a nixie tube decimal point to indicate that the radio receiver is locked.

Parts

103
QtyValueFootprintReferences
18MountingHole_PadMountingHole:MountingHole_2.7mm_M2.5_Pad_ViaH1, H2, H3, H4, H5, H6, H7, H10, H11, H12, H13, H14, H15, H16, H17, H18 +2
120.1uCapacitor_SMD:C_0603_1608MetricC1, C2, C3, C9, C10, C11, C12, C13, C14, C15, C16, C17
9TestPoint00_lib:TestPoint_Keystone_5019_MinatureTP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9
7Conn_01x02_PinConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical_SMD_Pin1RightJ1, J2, J3, J6, J7, J9, J10
6PZTA42Package_TO_SOT_SMD:SOT-223-3_TabPin2Q1, Q2, Q3, Q4, Q5, Q6
6~00_lib:IN-14 daughter boardJ11, J12, J13, J14, J15, J16
5SM4004Diode_SMD:D_MELFD1, D2, D3, D5, D6
40.5Resistor_SMD:R_2010_5025MetricR5, R6, R7, R8
41uCapacitor_SMD:CP_Elec_8x10C4, C5, C6, C7
4~Package_SO:TSSOP-14_4.4x5mm_P0.65mmU4, U5, U7, U8
31MResistor_SMD:R_0603_1608MetricR3, R9, R12
3FiducialFiducial:Fiducial_1mm_Mask3mmFID1, FID2, FID3
21kResistor_SMD:R_0603_1608MetricR1, R2
1100kResistor_SMD:R_0603_1608MetricR11
1100kPotentiometer_SMD:Potentiometer_Bourns_3269X_HorizontalRV1
110kResistor_SMD:R_0603_1608MetricR4
110kResistor_SMD:R_2512_6332MetricR10
110u00_lib:IND_BOURNS_SRR1280L1
11AFuse:Fuse_1206_3216MetricF1
11SMB5956B-13Diode_SMD:D_SMBD4
11uCapacitor_SMD:C_0603_1608MetricC8
147kResistor_SMD:R_0603_1608MetricR13
1ADC0820BCWMXPackage_SO:SOIC-20W_7.5x12.8mm_P1.27mmU6
1Battery_CellBattery:BatteryHolder_Keystone_3002_1x2032BT1
1Conn_02x05_Odd_Even00_lib:M207920542RJ17
1Conn_Coaxial00_lib:SMA_Amphenol_132289_EdgeMountJ8
1LTR-329ALS-0100_lib:LTR-329ALS-01_LTOU2
1MCP23008-xSOPackage_SO:SOIC-18W_7.5x11.6mm_P1.27mmU1
1PX1125T00_lib:PX1125TU3
1SW_DIP_x08Button_Switch_SMD:SW_DIP_SPSTx08_Slide_6.7x21.88mm_W8.61mm_P2.54mm_LowProfileSW1
1pico iCE (A)00_lib:pico iCE (A)J4
1pico iCE (B)00_lib:pico iCE (B)J5

The 102 most common of 103 parts.

More from willis936/nixie-clock-ice

1
  • 4 layers19 × 36.4 mmIN-14-daughter, the printed circuit board in 3D

    IN-14-daughter

    willis936/nixie-clock-ice

    Hardware and software source for a GPS nixie tube clock with delay correction.

    12 parts

Similar boards

  • 2 layers115 × 80 mmNixie Clock, the printed circuit board in 3D

    Nixie Clock

    PennyLekas/Nixie-Clock

    v1 is broken and required some bodge wires to work. I have not updated the schematic and PCB to correct my mistakes. It also has some deficencies in the dimming circuit resulint in a quiet, but audible whine.

    102 parts
  • 4 layers241.7 × 56.7 mmDaisy studio, the printed circuit board in 3D

    Daisy studio

    squeedee/daisy-studio

    Daisy Seed Carrier for Balanced Pro Audio

    141 parts14MIT
  • 4 layers96 × 43.9 mmRevised minh design, the printed circuit board in 3D

    Revised minh design

    nhatminh2h/SHVRIMPS

    high voltage and characterisation setup

    50 parts4GPL-3.0
  • 4 layers22.9 × 50.8 mmESP32 S2 MINI 1, the printed circuit board in 3D

    ESP32 S2 MINI 1

    jenschr/LectureFeather

    A Feather dev board based on ESP32-S2

    50 parts7
  • 4 layers118 × 118 mmEg node+boxco-1313, the printed circuit board in 3D

    Eg node+boxco-1313

    CodeClubTeam/ElectricGarden

    The repositories folder includes all of the files and repos that were created as part of the Electric Garden Project. Some folders include depreciated code that was no longer used in the final stage of the product.

    105 parts
  • 4 layersVibamix, the printed circuit board in 3D

    Vibamix

    CoolNamesAllTaken/vibamix

    An interactive ePaper nametage for playing "will it blend" with arbitrary groups of people.

    78 parts
  • 6 layers47 × 69.4 mmPeak, the printed circuit board in 3D

    Peak

    dkomeza/peak

    A small e-bike display meant for the VESC controller

    158 parts
  • 4 layers35 × 35 mmBTZ EndDevice, the printed circuit board in 3D

    BTZ EndDevice

    GoodByte-Hardware/BTZ-EndDevice

    Low-power wireless sensor board based on the nRF54L15 for BLE Mesh, Thread/Matter and Zigbee

    56 partsMIT

Questions

How big is the NixieAccurateClock PCB?

It measures 152.4 × 101.6 mm and has 4 copper layers, 1.65 mm thick.

What parts does the NixieAccurateClock use?

103 parts, built around the ADC0820BCWMX, LTR-329ALS-01, PZTA42 and SM4004. 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 NixieAccurateClock KiCad files?

From the willis936/nixie-clock-ice repository on GitHub, at the commit this page was made from: the board is hardware/KiCad/nixieAccurateClock/nixieAccurateClock.kicad_pcb and its schematic hardware/KiCad/nixieAccurateClock/HV_bleed.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the NixieAccurateClock design in my own project?

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