Firmware for the Akafugu VFD Modular Clock
C C++ Objective-C
Latest commit 55b2aca Sep 11, 2013 @perjg perjg Updated README
Failed to load latest commit information.
Time.c #define FLASH, reduce ram on 4.7.2 to new low! Nov 22, 2012
button.h Initial commit Nov 20, 2011
flw.h Integrated FLW code with latest version of FW Nov 7, 2012
font-16seg.c Changes to support GPS, including Time Zone, and auto display of Date Oct 6, 2012
globals.h #define FLASH, reduce ram on 4.7.2 to new low! Nov 22, 2012
piezo.c improve compatibility with gcc 4.7.2 Nov 21, 2012
piezo.h add tick(), 3 tier menu (dst rules) Nov 17, 2012
rtc.c Merge branch 'date_and_gps' into GPSfixes Nov 12, 2012
rtc.h Cache alarm time. Fix alarm setting bug that caused setting to always… Nov 11, 2012
twi-lowlevel.h Initial commit Nov 20, 2011
twi.c Initial commit Nov 20, 2011

Modular VFD Clock Firmware

PS: This firmware is for version 1 of the VFD Modular Clock.

If you have version 2 of the base board (marked with mk2), please use the VFDDeluxe firmware instead:

Akafugu Modular VFD Clock

Firmware for the Akafugu Modular VFD Clock

The VFD Modular Clock is a clock based on old-fashioned VFD Display Tubes.

VFD is short for Vacuum Flourescent Display. A VFD display is typically green or blue, and emits a bright light with high contrast. VFD Displays are often found in car radios.

A VFD Display tube looks like an old Vacuum Tube, the predecessor to the transistor. The inside of the tube contains segments that can be lit up to form numbers and letters. Most tubes contain segments for one digit, and several must be stacked together to make a complete display.

The clock itself is modular, it comes with a base board, which is powered by an ATMega328p microcontroller and contains a high-voltage VFD driver that is used to light up the display shield that sits on the top board.


The VFD Modular Clock is based on the ATMega328P microcontroller. The firmware is written for the avr-gcc compiler and covers all basic clock functionality such as setting time and alarm, brightness and 24h/12h time.

The clock comes pre-installed with firmware: To update it you will need to solder a 2x3 male header to the ISP port on the board and then use an ISP programmer and avrdude. see here for more instructions.