Vacuum Fluorescent Display Watch

5,479

59

30

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?

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.

Step 2: Testing

Initially I didn't have a datasheet for the display, so I had to resort to trial-and-error testing. The filament pins can easily be found by measuring the resistance between them as it should be in the order of tens of Ohms. All the other pins are either a short or open circuit.
In the end I found the original datasheet, so this wasn't really necessary...

Step 3: Circuit Design & PCB Layout

The watch was designed with the following specifications in mind:

  • Run (briefly) from a AA alkaline battery
  • Compact size
  • Wifi & Bluetooth
  • Easily programmable

The brain of the watch is an ESP32 (Wroom-32 module) as it can be programmed via Arduino and has build in Wifi/Bluetooth and a very low power sleep mode. To interface with the ESP32 a FTDI USB-Serial converter was used.

The most challenging part of this project was to get the different power supply correctly designed. The VFD needs 24V for its anode and ideally 2.4V AC for the filament. The ESP32 also need its share of 3.3V at more than 240mA when heavily using wireless communications. All that has to be squeezed out of a 1.5V AA alkaline cell.

Early on the 2.4V AC was replaced by just using 3.3V on the filament and modulating the output with an H-bridge to not burn up the filament. It actually can survive 3.3V for a bit, but quickly turns into a light bulb...

The 3.3V is generated using a MP3120 boost converter, that is specifically designed to work with single cell alkaline batteries. It can theoretically go down to 0.8V, but in practice only at very low currents. But it has a built in linear regulator, that allows the use of batteries with higher than 3.3V voltage like 14500 lithium cells.

24V for the VFD comes also from a boost converter MCP1663. This one is less efficient due to the high step-up from 3.3V to 24V. The display also works at lower voltages down to 16V, but loses much of its brightness.

To switch the 24V on the display anodes 2 high-side switching ICs TBD63783A with a 16 bit I2C expander (MCP23017) are used. This can also be done with discrete PNP & NPN transistors, but due to limited board area I opted for the more integrated solution.

The whole design and layout was done with KiCad5.

Step 4: Assembly and Some Troubleshooting

The PCB were ordered from JLCPCB with black solder mask and gold plating (because why not...). The assembly was done by hand.

Initially the USB-Serial converter didn't work, but after some troubleshooting this was due to mixed up data lines on the USB connector, that were fixed with some bodge wires as seen in the picture above.

Step 5: Code

The software was written with Arduino using PlatformIO.

The full source code and design files can be found on GitHub:

https://github.com/Pakue95/VFD_Watch

Thanks for reading!

Share

    Recommendations

    • Frozen Treats Challenge

      Frozen Treats Challenge
    • Sensors Contest

      Sensors Contest
    • Colors of the Rainbow Contest

      Colors of the Rainbow Contest

    30 Discussions

    0
    None
    eburman

    5 weeks 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?

    2 replies
    0
    None
    pakueeburman

    Reply 5 weeks 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.

    0
    None
    eburman

    5 weeks 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.

    2 replies
    1
    None
    pakueeburman

    Reply 5 weeks 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.

    0
    None
    eburmanpakue

    Reply 5 weeks 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!

    0
    None
    RumpelS

    5 weeks 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.

    4 replies
    0
    None
    pakueRumpelS

    Reply 5 weeks 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.

    0
    None
    eburmanpakue

    Reply 5 weeks ago

    Just double checking. A 14500 lithium ion battery is 3.7 volts. That will work o.k. with your circuit?

    1
    None
    pakueeburman

    Reply 5 weeks 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.

    0
    None
    eburmanpakue

    Reply 5 weeks 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?

    0
    None
    eburman

    5 weeks ago

    Have made it into a wearable wristwatch like Johngineer did?

    3 replies
    1
    None
    pakueeburman

    Reply 5 weeks 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.

    0
    None
    eburmanpakue

    Reply 5 weeks 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!

    1
    None
    pakueeburman

    Reply 5 weeks ago

    Nice! Looking forward to yours!

    1
    None
    burzurk

    Question 5 weeks 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!

    1 answer
    1
    None
    eburman

    5 weeks 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!

    2 replies
    0
    None
    pakueeburman

    Reply 5 weeks 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 Arrow.com and lcsc.com in case you don't find everything on Mouser.

    Good luck!

    0
    None
    eburmanpakue

    Reply 5 weeks 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!