Skip to content

valleyprn-stack/nixie-clock-github

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OLED Nixie Clock

A retro-inspired digital clock using four 1.3" OLED displays to recreate the aesthetic of vintage nixie tubes. Features 11 animated themes, battery monitoring, and distributed architecture across four Arduino Nanos.

Clock Preview

Features

  • 11 Animated Themes: Classic, Sparkle, Scan, Rain, Fire, Pulse, Neon, Matrix, Flicker, Blink, and Glitch
  • Real-Time Clock: DS3231 RTC module for accurate timekeeping
  • Battery Monitoring: Dual 18650 batteries with voltage display and percentage gauge
  • USB-C Charging: TP4056-based charging circuit
  • Distributed Architecture: Four Arduino Nanos for smooth animations without memory constraints
  • Unique Design: OLED screens hang like flags from vertical posts

Hardware Requirements

Component Quantity Notes
Arduino Nano (or clone) 4 ATmega328P
1.3" SH1106 OLED Display 4 SPI interface
DS3231 RTC Module 1 With battery backup
18650 Li-ion Battery 2 In parallel
TP4056 Charging Module 1 USB-C preferred
MT3608 Boost Converter 1 Set to 5V output
HiLetgo Voltage Sensor 1 0-25V module
Momentary Push Button 1 For controls
Perfboard/PCB - For wiring

Architecture

┌─────────────────┐    Serial    ┌─────────────────┐
│   Nano 1        │───────────────│   Nano 2        │
│   (Master)      │              │   (Voltage)     │
│   Hour Tens     │              │   Hour Ones     │
│   RTC + Button  │              │   + Voltage     │
└─────────────────┘              └────────┬────────┘
                                          │ Serial
                                 ┌────────┴────────┐
                                 │   Nano 3        │
                                 │   (Gauge)       │
                                 │   Minute Tens   │
                                 │   + Battery %   │
                                 └────────┬────────┘
                                          │ Serial
                                 ┌────────┴────────┐
                                 │   Nano 4        │
                                 │   (Display)     │
                                 │   Minute Ones   │
                                 └─────────────────┘

Quick Start

  1. Print the enclosure - STL files in /stl folder
  2. Upload code - Upload each sketch to its corresponding Nano
  3. Wire everything - Follow the wiring guide in /docs
  4. Calibrate voltage - See CALIBRATION.md
  5. Set the time - Hold button 5 seconds to enter time-setting mode

Controls

Action Function
Short press Cycle through themes
Hold 5 seconds Enter time-setting mode
Hold 2.5 seconds (in set mode) Switch between H/M/S/AM-PM
Hold 5 seconds (in set mode) Save and exit

Project Structure

├── code/
│   ├── nano1_master/       # Master - RTC, buttons, hour tens
│   ├── nano2_voltage/      # Voltage monitoring, hour ones
│   ├── nano3_gauge/        # Battery gauge, minute tens
│   └── nano4_display/      # Minute ones display
├── stl/
│   ├── enclosure-main.stl  # Main housing
│   ├── enclosure-lid.stl   # Top cover
│   ├── display-cover.stl   # OLED screen covers
│   └── stand-short.stl     # Display stand
├── docs/
│   ├── INSTALLATION.md     # Detailed setup guide
│   ├── CALIBRATION.md      # Voltage calibration
│   └── BUILD_GUIDE.html    # Complete builder's guide
└── images/

Dependencies

Install these libraries in Arduino IDE:

  • U8g2 - Graphics library for OLED displays
  • RTClib - For DS3231 RTC communication
  • Wire - I2C communication (built-in)
  • SPI - Display communication (built-in)
  • SoftwareSerial - Inter-nano communication (built-in)

Documentation

Themes Preview

# Theme Description
0 Classic Clean, static nixie-style digits
1 Sparkle Random pixel sparkles around digits
2 Scan Horizontal scanning line effect
3 Rain Matrix-style falling particles
4 Fire Animated flame effect at digit base
5 Pulse Gentle brightness pulsing
6 Neon Glowing neon sign aesthetic
7 Matrix Digital rain overlay
8 Flicker Vintage tube flicker simulation
9 Blink Subtle periodic blink
10 Glitch Random digital glitch effects

Why Four Arduinos?

The Arduino Nano has only 2KB of RAM. Running smooth animations, multiple themes, RTC communication, and voltage monitoring simultaneously exceeds this limit. The distributed architecture:

  • Eliminates memory constraints
  • Prevents SPI bus contention
  • Allows independent display updates
  • Enables smoother animations
  • Provides headroom for future features

Troubleshooting

Clock loses time rapidly

  • Likely a defective/counterfeit DS3231 module - replace it

Display shows "X"

  • Serial communication lost between Nanos - check TX/RX wiring

Voltage reads incorrectly

Theme animations stutter

  • Normal on complex themes; the distributed architecture minimizes this

License

MIT License - See LICENSE for details.

Acknowledgments

  • U8g2 Library by olikraus
  • RTClib by Adafruit
  • Inspired by classic nixie tube clocks of the 1960s-70s

About

arduino style nixie cock powered by quad nanos with rtc

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages