Close
0%
0%

Single-AA NiMH VFD Clock from a Recycled Calc

A VFD clock built from a recycled calculator display, powered by a single AA NiMH cell with USB backup and custom VFD driving.

Similar projects worth following
0 followers
This project is a custom vacuum fluorescent display clock built from a recycled calculator VFD module.

The clock is controlled by an ATmega328P and an HV5812 high-voltage shift-register driver. The main goal was to reuse the original calculator VFD display and build a practical clock around it, including multiplexed VFD driving, high-voltage generation, filament supply, automatic brightness control, USB power detection, battery backup and status diagnostics.

A key part of the project is the power system. The clock can run from a single AA NiMH cell, while USB 5 V can be connected for normal operation and backup. The design includes Schottky OR-ing of 5 V branches, controlled VFD oscillator shutdown, high-voltage and filament sensing, and status LEDs for easier diagnostics.

The build also documents several practical issues that appeared during development: VFD ghosting, blanking timing, filament behavior, high-voltage measurements, oscillator inhibit control, brownout preventio

This project is a custom VFD clock built from a recycled calculator vacuum fluorescent display.

The display is driven by an ATmega328P microcontroller and an HV5812 high-voltage shift-register driver. The clock uses multiplexed VFD driving, controlled blanking, automatic brightness control, USB power detection, battery voltage monitoring, RGB ambient lighting and status diagnostics.

One of the main goals was to make the clock operate from a single AA NiMH cell, rather than from a lithium cell or a conventional multi-voltage supply. USB 5 V can be connected for normal operation, while the NiMH cell remains part of the power system. The design includes Schottky OR-ing of the 5 V branches, a local VFD oscillator inhibit function, and additional capacitance on the 5 V logic rail to prevent brownout during power-path transitions.

The VFD power section was one of the most challenging parts of the build. The project required testing the original-style filament and high-voltage converter, solving VFD ghosting issues, tuning the multiplex timing, and adding safe firmware control for blanking and oscillator shutdown.

Later revisions added diagnostic LEDs for 5 V, USB, VFD high voltage and filament activity. The HV and filament indicators are sensed by the ATmega through high-value resistor dividers, so the sensitive VFD power supply is not significantly loaded.

The final clock combines reused vintage display technology with a compact custom control system and a cyberpunk-inspired mechanical design.

VFDClock3.jpg

JPEG Image - 2.35 MB - 06/30/2026 at 21:45

Preview

VFDClock2.png

Portable Network Graphics (PNG) - 2.26 MB - 06/30/2026 at 21:45

Preview

VFDClock4.jpg

JPEG Image - 2.22 MB - 06/30/2026 at 21:45

Preview

VFDClock9.jpg

JPEG Image - 2.13 MB - 06/30/2026 at 21:45

Preview

VFDClock8.jpg

JPEG Image - 2.64 MB - 06/30/2026 at 21:45

Preview

View all 9 files

  • 1 × Recycled calculator VFD display
  • 1 × ATmega328P Microprocessors, Microcontrollers, DSPs / ARM, RISC-Based Microcontrollers
  • 1 × HV5812 high-voltage shift register
  • 1 × 32.768 kHz watch crystal
  • 1 × Single AA NiMH cell

View all 18 components

  • Oscillator Inhibit and Power-Path Fix

    Sciter5 hours ago 0 comments

    One of the later improvements was adding firmware-controlled shutdown of the VFD oscillator.

    Originally, the clock could blank the VFD display, but the high-voltage and filament converter continued running. I wanted the firmware to be able to shut down the VFD power section completely when the display was intentionally turned off.

    The oscillator is built around a ZTX851 transistor. The inhibit circuit uses an ATmega328P output pin driving a BC547 transistor, which pulls the base drive of the oscillator transistor down through a resistor. Initial tests with a 220 ohm resistor only reduced the oscillation amplitude, but did not stop the oscillator completely. Oscilloscope measurements showed that the oscillator was still running, just in a weakened state.

    Changing the resistor to 100 ohm solved the problem. With the inhibit signal active, the oscillation stops completely, the VFD high voltage drops to zero, and the filament supply also disappears. Measurements confirmed that the BC547 is not stressed: the voltage across the 100 ohm resistor during shutdown is only about 0.12 V, so the current is roughly 1.2 mA.

    A second issue appeared after adding Schottky OR-ing between the USB 5 V supply and the internal 5 V branch. When the oscillator was shut down, the ATmega briefly lost power during the transition between supply paths and restarted. Adding capacitance to the shared 5 V logic rail fixed the brownout. In the final build, a 220 uF capacitor was enough to keep the ATmega running during the transition.

    The firmware now handles the VFD shutdown as a local power-section state change, not as a full system reset. When the oscillator is disabled, the ATmega continues running and keeps time. When the VFD section is enabled again, the firmware restarts the VFD driver sequence safely: oscillator on, delay for power recovery, HV5812 cleared, multiplex state reset, and then the display is unblanked.

    This made the clock behave much more like a finished device: the display can be turned off cleanly, the VFD power section is not running unnecessarily, and the time is preserved.

View project log

  • 1
    The complete step-by-step build guide is available in the Instructables article linked in the project links section.

    In short, the build consists of these main stages:

    1. Salvage and identify the recycled calculator VFD display.
    2. Reverse-engineer the filament and high-voltage supply requirements.
    3. Build the ATmega328P + HV5812 VFD driver section.
    4. Implement multiplexing, blanking and brightness control in firmware.
    5. Add the single-AA NiMH / USB power system.
    6. Solve VFD ghosting and blanking timing issues.
    7. Add firmware-controlled VFD oscillator inhibit. The ATmega drives a BC547 transistor, which pulls down the ZTX851 oscillator base drive through a 100 ohm resistor. This allows the firmware to shut down the VFD high-voltage and filament converter when the display is intentionally turned off.
    8. Add power-path stabilization for the 5 V logic rail. A capacitor on the shared 5 V rail prevents the ATmega from resetting during the transition between the internal 5 V branch and USB power.
    9. Add status indicators for 5 V, USB, VFD high voltage and filament activity. The 5 V and USB LEDs are simple hardware indicators, while the HV and filament LEDs are firmware-controlled. HV is sensed through a 1 MΩ / 47 kΩ divider on A4, and filament activity is sensed through a similar divider on A5.
    10. Finish the mechanical construction, auxiliary LED/support PCB and front-panel styling.

    This Hackaday project page is mainly used for development logs, design notes and technical updates. The Instructables page contains the full illustrated build log.

View all instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates