book collections email follower instructable user
Picture of Vacuum Fluorescent Display Watch

That whole project started a while back with an hackaday article from 2014 in which [Johngineer] build the 'ChronodeVFD', a wristwatch made from an old soviet vacuum fluorescent display. It kind of triggered the 'shut up and take my money' reflex in me, but as it wasn't for sale and didn't have any design details available I quickly had to scrap that.

Fast forward a bit, during a late night eBay shopping spree (as one usually does...), I stumbled upon a listing from an Ukrainian guy who sold an IVL2-7/5 VFD - the exact same model used for the ChronodeVFD. After a bit of back and forth with the seller I ended up with a box of these babies neatly wrapped in what seems like Russian newspaper - nice!
However, I now realised that I had no clue how to drive these things or even how they worked, so some googling was in order.

Step 1: What the Hell Is an VFD and How Does It Work?

Picture of What the Hell Is an VFD and How Does It Work?

Vacuum fluorescent displays work kind of like a CRTs where accelerated electrons are bombarded on a layer of phosphor which then emits this typical blue-greenish light. VFDs are driven with much lower voltages compared to CRTs which is why they are often found in small consumer equipment predating the LCD-era.

In order to create free electrons a filament is heated within the VFD, the cathode (at negative, or in our case ground potential). This creates an electron cloud around the filament, which will be accelerated towards any positively charged surface, here the plates of the anode. This on its own works already, but would require a separate pin for each segment on the display to drive it. To reduce the number of inputs, most VFDs are multiplexed with a matrix above each substructure like a 7-segment. Only when the plate and its matrix are at a positive voltage electrons will hit the phosphor surface.

The IVL2-7/5 is controlled with an anode voltage of around 24V for the matrix and plates. The filament is heated with 2.4V AC. The AC is needed to even out the voltage difference between the filament and the anode. If DC is used, the side closer to ground will be at a higher voltage difference (0-24V vs 2.4-24V) and may be brighter than the other side. In practice the difference is hardly noticeable.

eburman4 months ago
So here's another stupid question. How do I configure the time zone for my region? I checked out the pool NTP service but it doesn't make any sense to me. I'm on the West Coast of The United States. My time zone would be Los Angeles. What should I change TZ_INFO to? Maybe I should be using a different server in the United State as well?
eburman eburman4 months ago
Hey I figured something out for myself for a change. Appropriate TZ text is found here:
and I just deleted the de. from the server so that it would zero in on something closer to me: Cheers!
pakue (author)  eburman4 months ago
Great! I think the NTP server always just return the UTC time and the offset is calculated via the string, so the server shouldn't matter much. The latency may however be better if you choose one closer to you.
eburman4 months ago
Oh boy! Usually before I start a project I check to make sure that I understand how to use the code and that I can get the code to compile on my system before I invest a lot of money. I just now realized that I have no clear idea how to do this using PlatformIO. I may eventually be able to figure it out, but it's going to be a steep learning curve for me. You mention that you have used Arduino to write this code. Is there any chance that you could post the code files in a format that I can use directly in the Arduino IDE? I'm comfortable with the Arduino IDE platform and I know how to use it with ESP-32 boards. PlatformIO....not so much.
pakue (author)  eburman4 months ago
No worries, it's easy to compile it with the Arduino IDE.
All you need are the files in the Code/src folder. The contents of the 'main.cpp' is what you paste in your Arduino project. The remaining files go in your Arduino library folder within a folder called "Vfd_Display". The 'Password_example.h' is a template for your Wifi credentials, that should be renamed to 'Password.h'. You probably have to install the 'Adafruit-MCP23017' and 'OneButton' library via the Arduino IDE as well, but then it should compile.

Let me know if you have any issues.
eburman pakue4 months ago
Beauty! It worked! I'm able to compile and load into an ESP-32 DEV board that I happen to have on hand. Date and time is showing up in the serial monitor. Now I just have to wait for the PCB and parts to show up in the mail. Thanks again!
RumpelS4 months ago
A nice project. But I doubt that it is a good idea to run it from a battery. In a few days the battery will be empty.
pakue (author)  RumpelS4 months ago
Thanks! Yes the battery runtime is very short on an alkaline cell as the VFD need quite a bit of power. The design also works with a 14500 lithium cell (just keep in mind to use one with build in protection circuit) for 6-8 hours if the display is constantly on. If everything is in deep sleep the battery lasts more than a month as far as I can tell. But you can also power it through USB as long as there is no battery installed.
eburman pakue4 months ago
Just double checking. A 14500 lithium ion battery is 3.7 volts. That will work o.k. with your circuit?
pakue (author)  eburman4 months ago
Yes, the MP3120 will act as a linear regulator above Vcc input voltages. In the V1.0 I just had a voltage sense line from the battery directly to the ESP32 to check the battery level, but with a lithium cell at 4.2V this could have damaged the it. The V1.1 has a voltage divider to mitigate this.
Just make sure to get a 14500 cell with build in protection as the circuit would drain the battery below its minimum charge voltage.
eburman pakue4 months ago
Great! However I'm having a hard time finding a battery that specifically states that it includes a built in protection circuit. Do you have any specific recommendations? Anything on Amazon?

eburman4 months ago
Have made it into a wearable wristwatch like Johngineer did?
pakue (author)  eburman4 months ago
It just needs a watch band, but I haven't gotten around to making one yet.
Ideally I'd like to make it also from leather.
eburman pakue4 months ago
Well I love this project! I'm so happy that you were generous enough to put in all the time and effort to share it. I'm going to give it a try. I've ordered the parts and the PCB from OSH Park. I hope it all works out. If you do make it into a wearable watch I hope that you follow up with an Instructables showing how you made the leather strap. I'd be willing to give that a try as well. Good Job!
pakue (author)  eburman4 months ago
Nice! Looking forward to yours!
burzurk4 months ago
Please please what is the adjustable board holding device you are using in the animated gif/video? I've been looking for something like this for ages.

also nice job!
pakue (author)  burzurk4 months ago
eburman4 months ago
I also bought a bunch of those Russian VFD displays off of eBay a while back when I saw the ChronodeVFD project on Hackerspace hoping that one day the designer would share his PCB files. But sadly he has never responded to questions and it seems that he must have dropped off of the face of the Earth (R.I.P). So I'm really very ecstatically thrilled that you worked out a similar project. I was very pleasantly surprised when your project showed up. Thank you sooooooo much for that! I'm sourcing the parts and I think that everything is going to be good through Mouser. I'm planning on using your Gerber files to order some PCB's through JLCPCB. I've been wanting to try their service out for a while now so this is my chance. I'm wondering about the strap slots. Some of your photos show them uncut and one photo shows them drilled out. Does the PCB that comes from JLCPCB come with professionally drilled slots? It would look kind of nasty if I had to drill them out with my Dremel tool. Also, what option did you select so that the PCB tracings have a gold finish? I'd like to do that too. Are there any other options besides the matte black finish that I should select so that it comes out extra special good? I think that the purple finish that OSH Park uses is really beautiful, but man do they charge a lot! But it does look like they support the drilled slots. Not sure JLCPCB does. Let me know please. Thanks again!
pakue (author)  eburman4 months ago
I'm glad you like it! That's why I made I open source. If you need any help or more details let me know and I'll try to help.
Yes, the strap holes were supposed to be routed out, but I didn't follow up on them as I wanted to get the boards done for a conference. I guess one needs to tell the PCB house that the slots should be plated and (at least for JLCPCB) they need to be marked on the edge cuts layer, which I didn't do. I updated the design and gerbers just now, but I'd suggest you add that you want slot plating in the comment section of your order too.
The boards in the pictures were gold plated, ENIG-RoHS is the option for that. They are also with a glossy black solder mask, however JLCPCB recently changed the black color option to a matt finish (looks also fancy imo).
Most components were sourced from and in case you don't find everything on Mouser.

Good luck!
eburman pakue4 months ago
Thanks for updating the Gerber files. I notice that there are now two zip files in the master folder: "VFD_Watch-V1.1-RS-274x" and "VFD_Watch_V1.1." What are the differences? Which one should I submit to the PCB fabricator? And when I order I should specifically comment "Please include slot plating?" Sorry for the bonehead questions but I really haven't used these services much and I don't want to drop the money until I know that I've got things right. In fact I think I'll go with OSH Park which quotes $28.90 for just three boards but they are really beautiful. Cheers!
pakue (author)  eburman4 months ago
No worries, I'm happy to help.
The RS-274 format is an older version for gerbers and the other one is the X2 version. Someone asked for them a couple days ago. Both should work with most manufacturers.
Yeah, the comment can't hurt, JLCPCB usually asks again if something is unclear. If you order via Oshpark you can also upload the '.kicad_pcb' file directly and it will convert it.
leoo134 months ago
On github, did you fix the PCB?
pakue (author)  leoo134 months ago
The USB wiring? Yes, that is fixed and also the battery volt sensing works with 14500 lithium cells.
leoo13 pakue4 months ago
file cannot opened. gerber/ cam formats are supported(we need gerber file in format of RS-274x)thank
pakue (author)  leoo134 months ago
I exported them again for RS-274x:
Let me know if that works better.
leoo13 pakue4 months ago
YES. It works Thank you very much.
leoo134 months ago
pakue (author)  leoo134 months ago
Not that I’m aware of, but it looks very good.
Will have a read through it, thanks!
Very clean!
audreyobscura4 months ago
I didn't know about vacuum 7-segs like this! They look so stylish!