Introduction: Shield for Arduino From Old Russian VFD Tubes: Clock, Thermometer, Volt Meter...

About: I'm in love with electronics.

    This project took almost half a year to complete. I cannot describe how much work went into this project. Doing this project alone would take me forever so I had some help from my friends. Here you can see our work compiled in one very long instructable.

    Features of this project:

    • Compatible only with Arduino UNO boards
    • Drives four IV-3/ IV-3a/ IV-6 VFD tubes. Those tubes are very power efficient, even are more efficient than Nixie, and look pretty cool. Energy efficiency is almost equal to an LED matrix. I think they look better than nixie.
    • Power supply 12V DC + 5V DC via Arduino board; a stabilized 12V supply is required
    • Enclosure design (CAD files) optional
    • possible applications: clock, thermometer, voltmeter, counter, scoreboard, ...
    • multiple Arduino example sketches available

    I know that the text in this instructable is very long but please try to read and watch every text and photo here. Some photos are not great but this is everything I can do. I know I'm not the best photographer.

    This project was originally posted in axiris but I modified and explained a lot of small things without them you will be asking yourself what has gone wrong.


    You can see the count of every part, but I recommend you to print Part List.pdf to use it for a shopping list and later for soldering the parts on PCB. I've bought everything from local stores or desoldered it from non-working devices, but if you cant do just like I did, you can order the parts from Aliexpress or Amazon or another store.

    Carbon Film Resistors 1/4W 5% Aliexpress link that has every resistor that you will need in this list

    • 1x 510 Ω
    • 2x 1K Ω
    • 1x 2K7 Ω
    • 1x 3K9 Ω
    • 13x 10K Ω
    • 12x 68K Ω
    • 12x 100K Ω
    • 12x 220K Ω

    Ceramic/ MKT/ MKM Capacitors

    Electrolytic Semiconductors

    Discrete Semiconductors

    Integrated Circuits

    • ICM7555 timer IC (must be CMOS version, do not use a standard 555 !) Aliexpress link

    Connectors and Diverse Parts

    If you want to make a clock you can use the optional battery-backed RTC DS1307, but if you want to make it smart use an esp8266. You can use the big esp8266 or the small esp8266-01, but I recommend using the small for the clock to look better. If you want to make it even smarter combine esp8266 with a 1-Wire sensor. The sketch supports DS1820, DS18B20, DS18S20, and DS1822. Temperature is displayed every minute.

    Step 1: Overview of the Project

    This Arduino shield is capable of driving 4x Russian IV-3, IV-3a or IV-6 seven-segment VFD tubes. 4x 3mm LEDs provide background lighting for the tubes. The design is completely based on through-hole components, no SMD components were used. As such, the PCB can easily be assembled by anyone who has some soldering experience. Also, the components used are cheap and easily available. As this was designed as a more educational, easy to build project it is not the best possible solution to drive these VFD tubes from a technical point of view. Instead of the BC547 and BC557 transistors, we could have used A2982W source drivers, or we could have replaced the transistors by a Supertex high voltage source driver IC with an internal shift register. Unfortunately, these may be hard to get and come very often in SMD packages.

    Step 2: Assembly Hints

    This instructable PCB is designed for someone who has advanced experience with assembling electronics. If you believe that it is too complicated for your skill level please do not try to assemble it or ask a friend to make it for you.

    Take your time - this kit should take 2-3 hours to complete if uninterrupted or more. I make it for less than 2 hours, but I'm with more than 2 years of everyday experience in soldering.

    Ensure your work area is well lit (daylight preferred), clean and tidy.

    Assemble the board in the order as stated in the instructions here - read and understand each step before you perform each operation. Because after a mistake there is almost no turning back.

    It is assumed that you understand that semiconductors (diodes, ICs, transistors) or electrolytic capacitors are polarized components. Appropriate markings are silk-screened on the PCB and shown on the board schematic.

    The following tools and materials will be required to assemble the PCB:

    • A good quality soldering iron (25-40W) with a small tip (1-2 mm)
    • Wirecutter and pliers
    • Basic multimeter for voltage tests and for identifying the resistors.
    • A magnifying glass to read the small device markings is often helpful.
    • Solder – lead/tin solder is preferred. Lead-free solder, as now required to be used in commercial products in Europe, has a much higher melting point and can be very hard to work with. Do not use any flux or grease.
    • Desoldering wick (braid) can be useful if you accidentally create solder bridges between adjacent solder joints.

    Power supply

    The IV-3/IV-3a/IV-6 VFD shield needs the Arduino to be powered from a 12 V DC power supply to function properly. Use only a regulated switching power adapter capable of delivering 12 V DC / 300 mA.

    Do not use an unregulated "transformer style" wall adapter. These deliver easily more than 16 V with a light load and will cause damage to the IV-3 VFD shield as the 12 V supply voltage is quite critical. You must be very careful not to reverse the polarity of the power supply or you are risking to kill the Arduino, VFD shield, power supply and possibly starting a fire or electrocute yourself.

    Put some insulating tape on the metal shield of the USB connector of your Arduino before connecting the IV-3 shield to avoid solder connections touching the metal and being shorted.

    Step 3: PCB Overview and Circuit Diagram

    You can order the PCB from PCBWay. If you are a new user USE THIS LINK TO GET 5$ FOR FREE AFTER YOUR REGISTRATION after that your first 5 PCBs are free and you only need to pay for the delivery which is around 6 USD with China air post. As you can see in the last photo the shield is the same size as my debit card from Revolut. Photos shown here for some people may look like they are trying to read Chinese.

    Step 4: Assembly

    Finally, we got to the assembly progress... In the following steps 5-19, we are going to assemble the PCB step by step. It may be helpful to keep the PCB overview and the circuit diagram at hand during assembly by printing it or leaving it on your PC while soldering. After every step, carefully compare your PCB with the pictures here and check for errors and solder faults.

    Step 5: Diodes and IC Socket

    Mount the following diodes:

    • D1: 1N400x or equivalent
    • D2...D5: 1N5819 schottky diode

    Watch the polarity and be careful to mount the right diode in the right place.

    Solder D2 and D3 from the component side and trim the wires on the solder side as short as possible as they are positioned above the metal USB connector shielding of the Arduino.

    Mount the 8 pole IC socket for IC1. Do not place IC1 in the socket at this stage.

    Step 6: Electrolytic Capacitors

    Mount the following electrolytic capacitors:

    • C5...C8: 22µF 50V radial electrolytic capacitor
    • C9, C10: 100µF 25V radial capacitor
    • Bend the leads 90 degrees and mount the capacitors flush to the PCB. Watch the polarity. I know I'm getting you annoyed with this Watch the polarity already, but it's very important.

    It is recommended to solder C6, C7 and C8 from the component side and to trim the leads as short as possible on the solder side as they are positioned above the metal shield of the Arduino USB connector.

    Step 7: Ceramic Capacitors

    Its no problem to use another shape its important to be the same value and material for these capacitors.

    Mount the following ceramic capacitors:

    • C1: 2n2
    • C2, C3: 8n2 or 22nF (*)
    • C4: 100n

    Please note that the values of C1...C3 are somewhat critical as C1 defines together with R5 the operating frequency of the voltage tripler and C2, C3 define the filament current for the VFD tubes.

    (*) mount 8n2 for IV-3 and IV-3a tubes, mount 22nF for IV-6 tubes.

    Step 8: 10K Resistors

    Mount the 10 kilo-ohm resistors (brown – black – orange – gold)


    Mount them vertically as in the picture.

    Step 9: 68K Resistors

    Mount the 68 kilo-ohm resistors (blue-grey – orange-gold)


    Mount them vertically as in the picture.

    Step 10: 220K Resistors

    Mount the 220 kilo-ohm resistors (red – red – yellow – gold)


    Mount them vertically as in the picture.

    Step 11: 100K Resistors

    Mount the 100 kilo-ohm resistors (brown – black – yellow – gold)


    Mount them vertically as in the picture.

    Step 12: Remaining Resistors

    Mount the remaining resistors:

    • R1: 510 ohm (green – brown – brown – gold)
    • R2, R3: 1 kilo-ohm (brown – black – red – gold). You may need to adjust the value depending on the tube backlight LEDs you plan to use.
    • R4: 2.7 kilo-ohm (red – violet – red – gold)
    • R5: 3.9 kilo-ohm (orange – white – red – gold)

    Step 13: Arduino Headers

    Mount the Arduino stackable headers. The headers will not really be used to stack other Arduino shields on top of this shield but they help to determine the mounting height of several components and the VFD tubes.

    Push the headers through the PCB and plug them in your Arduino. Turn upside down and solder 1-2 pins for each connector. So the connector spacing will be correct. Remove the shield from the Arduino and solder the remaining pins.

    Step 14: Power Transistors

    Mount the following transistors:

    • T26: BC639
    • T27: BC640

    Do not replace these transistors with standard types. Mount them so that the top of their housings is lower than the Arduino headers.

    Insert IC1 ICM7555 (*) into its socket and plug the shield into an Arduino and apply power. The voltage measured between the cathode of D5 and the Arduino ground should be around 32...34V. I didn't do this because I'm sure in me, but you better do it.

    Use a CMOS version (ICM7555, TLC555 LMC555, …), do not use a standard 555 timer!

    Step 15: NPN Transistors

    Mount the BC547B transistors

    T1 … T13

    Mount them so that the top of their housings stays below (or is flush with) the Arduino headers.

    Step 16: PNP Transistors

    Mount the BC557B transistors

    T14 … T25

    Mount them so that the top of their housings stays below (or is flush with) the Arduino headers.

    Step 17: Tube Backlighting LEDs (optional)

    You can use 3mm standard LEDs in any color for tube backlighting purposes, even RGB color fading LEDs.

    Bend the leads of the LEDs so that the LEDs fit in the 3mm holes underneath the VFD tubes, then solder them to the PCB. Pay attention to polarity. The short lead of the LED (cathode) is soldered to the pad closest to the LED name silk-screen marking (D6 … D9).

    It may be necessary to insulate the leads of D9 to avoid them touching the ISP connector on the Arduino.

    The LEDs are connected to a PWM output on the Arduino and can be dimmed using the software. This will however not work properly when you use RGB color fading LEDs.

    If it is easier for you, it is also possible to mount the LEDs after the VFD tubes are soldered in place. Due to the mounting technique, it is also easy to replace the LEDs later on if you decide you would like to have another backlighting color.

    Step 18: VFD Tube Mounting

    This is one of the most important steps of building your shield.

    Guide the tube wires gently through their respective holes on the PCB. Make sure the short lead on the tubes goes through the hole without solder pad.

    Now the digits should face the front of the PCB.

    If you have difficulties getting the wires of the tubes through the holes you can cut them as a "spiral" so you can move 1 wire at a time through the holes. Pay attention to make the shortest wire not too short as we are going to mount the tubes with some distance from the PCB.

    Once the tubes are in place align them more or less by hand. The bottom of the tubes should be approximately 1-2 mm below the top of the Arduino stackable headers.

    If you are using the optional acrylic enclosure, you can use the top and bottom plates as an alignment tool.

    Solder two leads of each tube to the PCB. Once this is done, you can still adjust the tube alignment by reheating the solder joints.

    If you are satisfied with the tube alignment, you can finally solder the remaining tube wires in place and trim the excess leads with a small wire cutter.

    Do not try to change the alignment of a tube after it is soldered in place as this may cause mechanical stress and may lead to a defective tube.

    Step 19: Final Test

    Finally the test... Upload the demo sketch to the Arduino and disconnect the Arduino from the computer's USB port.

    Plug the finished VFD shield on top of the Arduino. Make sure no metal part of the Arduino touches the solder joints of the VFD shield.

    Connect the 12 V DC power adapter to the Arduino power connector and turn the power on.

    After a few seconds the VFD tubes should start counting from 0 to 9 in an endless loop. The decimal separator dots of the VFD tubes should form a binary 4 bit counter.

    Tube backlighting should dim every few seconds and turn on again.

    Check the tube filament wires carefully. They should glow very faintly with a deep red color. If they are glowing too much, lower the values of C2 and C3. On the other hand, if the filament barely glows and the digits are too dim, you can experiment by increasing the values for C2 and C3.

    Step 20: Acrylic Enclosure (optional)

    The First 2 files are CAD files. I recommend you opening "Enclosure for Shield User Manual for on-screen viewing.pdf" and watching the steps for Acrylic enclosure from there.

    Step 21: Software

    Every library that you will need is in the comments at the beginning of every sketch.

    Direct Access

    Provides direct access to the tubes and LEDs. You can turn on and off individual segments and dots in the tubes, and control a PWM duty cycle for illuminating the LEDs.

    Ordinary clock

    Just clock that is set up thru serial monitor and nothing too fancy, but after around 1 day the clock is back with around 1 minute

    Smart Clock.

    • Added support for optional battery-backed DS1307 RTC.
    • Added support to work only with esp8266 thru RX and TX
    • Added displaying of temperature in Celsius degrees when a 1-Wire sensor is connected. The sketch supports DS18B20, DS18S20, and DS1822. Temperature is displayed every minute.

    For the esp8266 to work with the clock you will need to flash the esp and make a special bridge shown here how to put in deep sleep mode to save power. Also will need to set up the WIFI credentials and the time zone from the code on the esp. If you don't have experience with esp8266 read here to learn more about installation the board in Arduino IDE.


    Works with 1-Wire temperature sensors. The program supports DS1820(different wiring, check for it on the internet), DS18B20, DS18S20, and DS1822.

    Volt Meter

    This program displays voltage measured on pin A5.


    Example animation of tubes, PWM animation of LEDs.

    Clocks Contest

    Participated in the
    Clocks Contest