/ivl275_clock

Simple clock on IVL2-7/5 VFD tube

Primary LanguageC++GNU General Public License v3.0GPL-3.0

ivl275_clock

alt tag

So this is a simple clock I made a while ago. It combines some bad engineering decisions, but still it works. And also has cool animation for every hour change! And "random" glitch (blinking) approximately every 3 minutes (You can change it).

alt tag

Main IC's are:

  • ATmega8A - MCU to drive all together
  • DS1307 - RTC to count passed time
  • MC34063A - DC-DC to power VFD anodes/grids
  • ULN2803A - Darlington transistor array to drive VFD segments

The modularity of the circuit allows to change some blocks - You can change MCU, change RTC, or DC-DC converter - The idea stays the same. Heck, You can even change VFD Display! But in this case You need to change filament voltage and etc.

It would be better to use specialized VFD drives IC's, and AC voltage on filament, but because of the complexity of such decisions (and difficulty in acquiring such IC's), I ended up with following design:

alt tag

DC-DC Step Up 5V to 24V

It's just a simple step up converter on the MC34063A IC. You can use THIS online calculator to recalculate schematic. This voltage affect brightness of the VFD tube, and You can change brightness by changing voltage - for example put there a variable resistor, or even photoresistor! But make sure that by doing so, You won't exceed maximum voltage of the capacitor, VFD, IC, and etc.

Real Time Clock Module

In my case, I assembled this module myself, but no one stops You from using completed modules such as HW-111 for example. You can even use different IC (e.g. DS3231), but in this case You need to rewrite firmware's code. In this project I didn't use RTC libraries (such as RTCLib) - I wanted to drive RTC directly, so I put all necessary code into main cpp file.

DS1307 also generates 1 Hz square waveform that drives blinking of the DP dots.

I'm also questioning capacitors near crystal - C3 and C4. Maybe there is no need for them.

Filament voltage

As I said before - it would be better to use AC for the filament. But in my case, I simply used voltage regulator to drop 5V to approximately 1.8V. Cons of this decision - uneven brightness of the display, and maybe shorter period of display life.

ULN2803A

This IC allows us to pull VFD segments to the ground, so we can "shut" them. So yeah, by default all segments are emitting light, and by "turning off" various segments, we can display certain numbers. Kind of a "reversed" control. R2-R8 are used to prevent short circuit when we are pulling segments to the ground.

ATmega8A

I used bare ATmega8A with 8 MHz Crystals. But You can use almost any AVR MCU, and even Arduino boards.

I assembled all this on small green prototype board. It looks kinda messy at the bottom, but it's not a big problem.

alt tag

About code

I wrote this project in PlatformIO. You can take ivl275_firmware directory, compile code with PlatformIO, and upload it to Your MCU, and You good to go!

If You have any questions or suggestions, please, let me know!