Retro-Futuristic Hybrid Clock

by Yakroo in Circuits > Clocks

10981 Views, 76 Favorites, 0 Comments

Retro-Futuristic Hybrid Clock

hybb.2png.png
Screenshot 2025-11-23 190439.png
Retro-Futuristic Hybrid Clock Update4 #trending #circuitpython
Retro-Futuristic Hybrid Clock:Update 3 #trending #circuitpython
Retro-Futuristic Hybrid Clock : Update 2 #trending #circuitpython
Retro-Futuristic Hybrid Clock : PICO2 CIrcuitpython #trending #circuitpython
01c7bcd9-29e3-44f6-ba93-75597c0b64f2.jpg

A Retro-Futuristic clock combining dual LCDs, 3-bit filament LEDs, and WS2812 effects—blending cyberpunk style with steampunk warmth.

Supplies

Raspberry PI PICO x1

ST7789 1.14 Inc x2

DS3231 x1

ULN2003 x1

WS2812 x1

FUSE 30mm x3

LED Filament x3

Inspiration & Concept

c9c920a3-447a-45a3-a698-a9bdf03325b6.jpg
2bb99c76-5359-4d00-90d0-ee2c08a1252c.jpg
9a4a1cc6-39e5-49dc-8ae9-7b2314b557a9.jpg

This project was born from my long-time fascination with clocks — not just as tools to tell time, but as objects of beauty.


I have always loved both retro aesthetics and modern technology, and I wanted to find a way to blend these two worlds seamlessly into a single creation. My goal was to design a clock that feels warm and nostalgic, while still harnessing the precision and flexibility of digital systems.


As someone who learned electronics in the age of digital technology, I also wanted this clock to reflect a hands-on way of thinking — combining physical hardware with digital logic. Elements like binary indicators are not only visual details, but also mental exercises, keeping the brain active and reinforcing the fundamentals of digital logic in a playful, artistic way.


I chose to emphasize the seconds display because seconds are the only part of time that never stops moving. Unlike hours and minutes, which feel calm and static, seconds are alive — they pulse, flow, and constantly remind us that time is always in motion. Through animated LEDs and light effects, I translated this continuous movement into a visual performance of time itself.


The Retro-Futuristic Hybrid Clock represents my desire to merge craftsmanship, technology, and imagination into a single piece. It is both a functional clock and a creative expression — where past aesthetics meet modern digital thinking, and where time becomes something to experience, not just to read.


What This Clock Does

db8c66d0-28cd-443a-b938-f09919115f01.jpg

The Retro-Futuristic Hybrid Clock visualizes time through three synchronized layers, combining digital displays, hardware lighting, and animated effects into a single cohesive experience.


The dual ST7789 TFT screens present the hours and minutes using custom Nixie-style digits, delivering a clean and high-contrast retro look while maintaining modern brightness and clarity.


The tens of seconds are displayed using real hardware binary outputs through illuminated filament tubes driven by a ULN2003 driver array. This third, purely physical display transforms logical binary counting into a living visual element, reinforcing the emotional blend of machinery and computation.


For the flowing motion of time, a WS2812 LED strip acts as a dynamic “second hand.” Each illuminated pixel represents the passing seconds, continuously running from 0 to 10 and looping endlessly, creating a constant sense of motion and rhythm.


All three display layers are synchronized by a Raspberry Pi Pico 2 running CircuitPython and a DS3231 real-time clock module, ensuring that every visual element updates simultaneously with precise timing.


Together, these layered displays transform time from simple numeric data into a living visual performance — not just something to be read, but something to be seen moving and evolving in space.


Designed

29483313-188a-40e9-8297-a1a2b168db65.jpg
4c22bc12-0255-4e0e-b24d-58831bee0ff5.jpg
15e218b1-3f74-498e-a126-30befb94f0df.jpg
e2a744e8-680b-48eb-9ed1-71db464da189.jpg

The Retro-Futuristic Hybrid Clock is a time-keeping project designed to merge the precision of modern digital systems with the charm of physical analog light. Inspired by a blend of Cyberpunk and Steampunk, the clock delivers a unique way of displaying time—clean on LCDs yet warm and mechanical through real hardware lighting.

Powered by a Raspberry Pi Pico 2 + CircuitPython and synced with a DS3231 RTC, the system manages multi-layer displays, binary hardware outputs, and animated light effects with impressive accuracy.

Digital Display – Dual ST7789 LCD Panels

09d160a7-aebe-4bfd-bfeb-d9d65029c098.jpg
79227df5-9a44-4d14-bee4-5454f91f17c9.jpg
83182a3e-1386-488e-b009-fb40b93ff2a7.jpg

Two ST7789 LCD screens independently display hours and minutes.

Using custom bitmap Nixie-style digits, the clock preserves a retro aesthetic with the crisp clarity of modern LCDs.

Each display is controlled through its own chip-select pin (CS1 / CS2), allowing frame-accurate switching without flicker.

Binary Output – 3-Bit Filament LEDs (GPIO Driven)

Restro2.png
779f4fab-b13b-439a-94f9-e5aeb20a133c.jpg
29483313-188a-40e9-8297-a1a2b168db65.jpg

Beyond the digital visuals, the clock adds a physical analog layer for displaying the tens of seconds.


Three illuminated LED filament bulbs are driven through OUT1, OUT2, and OUT3 (GPIO 13 / 14 / 15), forming a hardware 3-bit binary counter. Instead of counting individual seconds, this binary system represents the tens of seconds position of the time display:


0s → 10s → 20s → 30s → 40s → 50s → repeat


Each full 10-second cycle of the WS2812 LED “second counter” triggers the binary output to advance by one step, updating the filament bulbs to the next binary state:


001 → 010 → 011 → 100 → 101 → 110 → repeat

This approach converts the logical counting of time into visible hardware action — allowing observers to watch the passage of time not only as numbers on a screen, but as glowing binary patterns formed by real physical light.


The warm filament glow contrasts beautifully with the crisp digital displays, creating a visual fusion that feels like a steampunk indicator system driven by a futuristic electronic brain.


Neo-Analog Light – WS2812 (0–10 Second Timer)

4c22bc12-0255-4e0e-b24d-58831bee0ff5.jpg
Screenshot 2025-11-25 095555.png

A WS2812 strip lights up from LED index 2 → 9, forming a 10-second sweep.

Each LED lights for exactly 1 second, creating a smooth “progress timeline.”

When the sweep completes:

→ The binary filament LEDs increment by 1

→ Giving a deep-layer representation of sub-minute time

This fuses cyberpunk neon motion with steampunk glow, creating a hybrid visual language.


Circuit

Resto_FutureCir2.png
Resto_FutureCir.png
51b2ddb6-aad1-47a9-b04b-34284980e51d.jpg

The clock system uses a Raspberry Pi Pico2 to control all hardware in real time, featuring the following functions:

✔ 1) Dual LCD ST7789 Displays

The system uses two ST7789 TFT displays with separate CS1 and CS2 lines.

Each display operates independently and is used to show hours and minutes.

✔ 2) Nixie/Digit Style Hour–Minute Display

The digits shown on the ST7789 screens are not standard fonts.

They are rendered using custom Nixie Tube / Retro Digital graphics,

creating a vintage Nixie-style digital appearance.

✔ 3) Binary Output System (GPIO13/14/15 → ULN2003 → LED Filament)

The firmware outputs a 3-bit binary value via GP13, GP14, and GP15,

driving LED Filament tubes through a ULN2003A driver.

This output represents the tens of seconds.

Examples:

10, 20, 30, 40, 50 seconds → LEDs illuminate according to the actual binary code.

✔ 4) WS2812 Effect for 0–10 Seconds

A WS2812 (NeoPixel) LED strip is used to display a glowing “second hand”.

The animation is based on:

second % 10 → running pixel position

After 10 seconds, the effect resets and loops again.

✔ Summary of All Features

  1. Two ST7789 displays
  2. Nixie-style hour–minute digits
  3. Binary Output on GP13/14/15 for tens-of-seconds
  4. WS2812 running-pixel effect for 0–10 seconds
  5. High-accuracy RTC DS3231
  6. Synchronized dual-display updates
  7. Pixel-running animation on the displays
  8. Hardware 3-bit binary counter output


PCB

db8c66d0-28cd-443a-b938-f09919115f01.jpg
reto_fut2.png
20240111_110007.jpg
20240111_110022.jpg
20240111_110028.jpg

Comming Sooon

CODE

Screenshot 2025-11-25 025601.png

https://github.com/YakrooThai/Contests/blob/main/Instructables/Retro-Futuristic-Clock.py


🧠 Software Architecture – How the Hybrid Clock Works

The Retro-Futuristic Hybrid Clock is driven by a single CircuitPython program running on Raspberry Pi Pico.

This script synchronizes three independent display systems into one seamless clock:

  1. Digital Time Displays → Dual TFT screens (ST7789) for Hours and Minutes
  2. Binary Filament Indicators → 3 LED filaments showing the tens-of-seconds in binary
  3. Animated Second Sweep → WS2812 (NeoPixel) LED strip acting like a moving second-hand

All time is sourced from a highly accurate DS3231 RTC module to eliminate drift and ensure long-term stability.

🧩 Overall Program Structure

The Python code is logically divided into four major sections:

① System Initialization

Before the clock can run, all hardware peripherals must be prepared:

RTC Setup


rtc = DS3231(i2c)
  1. Initializes communication with the DS3231 Real-Time Clock module
  2. Provides accurate hour, minute, and second values regardless of power cycling

Display Setup


display_hour = ST7789(...)
display_min = ST7789(...)
  1. Two independent ST7789 TFT displays are initialized using separate CS pins
  2. This allows:
  3. One dedicated screen for hours
  4. One dedicated screen for minutes
  5. Avoids flickering or screen multiplexing artifacts

LED Filament Output Pins


ledA = DigitalInOut(GP13)
ledB = DigitalInOut(GP14)
ledC = DigitalInOut(GP15)
  1. Three GPIO pins used as binary data lines
  2. LEDs act as 3-bit binary indicators representing the values:

BinaryTens of Seconds

000

0 seconds

001

10 seconds

010

20 seconds

011

30 seconds

100

40 seconds

101

50 seconds

This creates a mechanical-looking time readout using physical light rather than digits.

NeoPixel LED Strip


pixels = NeoPixel(GP0, 10)
  1. A 10-LED WS2812 strip functions as a dynamic second-hand
  2. Every LED corresponds to one second
  3. Instead of flashing numbers, the second is shown as a moving glowing point

🔁 Core Time Update Loop

The entire clock runs in a continuous real-time synchronization loop:

② Read Current Time


now = rtc.datetime
hour = now.tm_hour
minute = now.tm_min
second = now.tm_sec
  1. Fetches the precise time from the RTC hardware every cycle
  2. The clock is not dependent on software timing or delay estimates

③ Digital Screen Refresh

Each screen updates only when necessary:


if new_time_detected:
draw_hour_digit()
draw_minute_digit()
  1. Prevents over-refreshing which reduces flickering
  2. Raster graphics are used instead of fonts to reproduce the Nixie-style visuals
  3. Bitmapped digits maintain consistent resolution across devices

④ NeoPixel Second Sweep


led_position = second % 10
pixels.fill(0)
pixels[led_position] = active_color
pixels.show()

This creates:

  1. A smooth LED “sweep” effect
  2. One LED lit per second
  3. Reset every 10 seconds

The result is a visual second-hand similar to mechanical clocks but with modern LED glow.

⑤ Binary Filament Counter

Every 10-second boundary updates the filament display:


if second % 10 == 0:
tens_counter += 1
update_binary_filaments(tens_counter)

Each filament corresponds to a binary weight:

  1. LED A → bit 0 (1)
  2. LED B → bit 1 (2)
  3. LED C → bit 2 (4)

This creates a physical binary clock embedded directly into the main timepiece.

🔂 Synchronization Across Three Displays

One of the strengths of this design is that no subsystem runs independently:

  1. RTC delivers authoritative time.
  2. TFT displays, NeoPixel sweep, and filament binary LEDs all update based on the same time data.
  3. No guessing, no drifting animations, and no asynchronous flicker.

This results in:

✅ Perfect synchronization

✅ High visual coherence

✅ Reliable day-long operation


Final

This project is the result of combining my love for clocks, retro aesthetics, and modern electronics into a single creative build.


The Retro-Futuristic Hybrid Clock shows how technology can be more than just functional — it can also be expressive, artistic, and emotionally engaging. By merging digital displays with physical lighting and motion effects, this clock turns time into a living visual experience rather than static numbers.


I hope this project inspires other makers to explore creative ways of blending art and engineering, and to build devices that tell stories as well as tell time.


Thank you for reading, and I look forward to seeing how others might expand, remix, or re-imagine this idea.