hannah mishin

Portfolio and Blog of artist and technologist Hannah Mishin.  

Russian Tricolor VFD Indicator Clock

This is an ongoing project, paused and resumed again in Summer 2018.

I found these Soviet new-old stock tri-color indicators on Ebay, ILV2-5x7M.  

I am interested in making a clock - one which is not necessarily for telling THE time, but indicating the passing of time and the unique configuration of this display presents an interesting challenge.


The datasheet came in Russian - I translated the text.

HERE is a PDF of my graphical translation (likely crude, but the requisite information is available).

I mocked up a straight driver circuit using only PNP/NPN to test the wiring.

Vacuum Fluorescent Displays are high impedance capacitive loads.

“Electrons are emitted from a cathode (filament) and are controlled by a grid. The voltage on the grid determines whether the electrons are repelled or allowed to collide with a phosphor coated anode. Electrons striking the anode cause light to be emitted from the phosphor. The resultant light emission produces the specific wavelength light and resultant color.”

Excellent description of VFD functionality found HERE.

See this blog post about troubleshooting VFDs here: 


The above linked blog post explains a great deal of the logic of VFD displays. That blog incorrectly drives the filaments and does not control for the multiplex rate properly. Part of the troubleshooting of this post will be in developing the hardware for the filament driver and properly controlling the code.

This display has 3 colors: Blue, Red, and Green.  There are 5 lines with 7 of each color in each line - therefore, I have 35 Blue segments, 35 Red segments, and 35 Green segments.

This makes 105 individual segments.

There are 5 Grids, representing one (in the image below) horizontal row.

The 21 addressable pins are for the vertical rows (called "lines" in the datasheet), 1 pin per color, per row.   


By turning on the blue line 1 and grid row 1, I can individually turn on the top left most blue segment. I will want to use other lines and grids - I will send a binary code through a micro-controller [0, 0, 0, 0, 1].  This would bypass the first 4 blue segments (those on the left most side of the VFD) and only light the last blue segment - while enabling other grid (row) activity on the first vertical line. 

(I think that paragraph might make sense, if unclear, send me a message.)

The Datasheet Provides Electrical Parameters as Follows:

Current Glow: 225mA Voltage Glow: 2.8v (filament specs)

Impulse current of elements of no more than mA     

        green glow: 7mA           

        red glow: 10mA           

        blue glow: 10mA

Impulse (pulsed) elements of voltage - the voltage of the elements pulsed     

        green glow:  25v           

        red, blue glow: 50v

Impulse GRID current of no more than: 10mA

Impulse GRID voltage: 25v


Beginning the wiring and coding.  I tested the transistor circuitry to control the grids with some LEDs.


The Russian VFD has five lines of segments of colors.  By switching the grids on and off I can multiplex the component.

Each Grid gets a circuit which is comprised of one TIP120 - (NPN), two 10K resistors, and an IRF9510 - (Here is a nice write up of a Mosfet PNPs and a nice Youtube Video by L. Loflin using more succinct language and maths for PNP Transistors in general). 

The below graphic is the circuit driving each element (grid, green, red, and blue).

Because of size constraints for the enclosure, I purchased some SMD IRF9510s in the form of D2Paks.(this footprint is HUGE)

The TIP120 is now an outdated, no longer manufactured component (to my knowledge).  There are no SMD versions of TIP120s. I purchased several N-type BJTs which have similar electrical attributes. The FZT851CT-ND worked just fine.  

I air wired these and tested output coming from the teensy - to confirm the current from the Teensy would trigger this NPN.

2018-09-08 12.09.03.jpg

So I laid out my board with these components.


Because of the enclosure I am planning, I rearranged the components and the enclosure shape is the board shape.



After wiring up each connection, I am still tight on space. However, I have decided to make each unit contain two VFDs

Therefore, all further discussion of the circuit will contend with driving two VFDs. 

I am using a MAX6921 20 output VFD driver chip. 

Two MAX6921 ICs will handle the Blue and Red Segments (both driven with 50 volts at 10mA).  There are seven of each, totaling 14 Outs from the 6921 IC.  To drive two VFDs I double this number and have a total of 28 segments to drive, requiring 2 MAX6921 chips. 

The Green Segments accept 25 volts and cannot be driven by the same MAX6921 chip driving the other segments and thus need to be driven from a separate IC with its own VBB.  I will have 14 total green segments to drive (driving 2 VFDs per clock). 

I have decided, for ease of coding coupled with the electrical parameters requiring the Green Segments to be driven by a separate chip, to segregate these three MAX6921 ICs to handle colors only.  (one MAX6921 for Blue, one for Red, and one for Green)  

The Grids (5 rows, 5 Grids) will be directly driven from the Teensy 3.6, using the NPN / PNP graphic above. 

I could have coupled the Grids to be driven to the green segment 6921 IC, but for a myriad of reasons, I have chosen to keep the grids independent of the segments.

Here is a link to the pinout of the Teensy 3.6. 

I made the below graphic to help navigate the mess of pins and arrays of components. 

There is a great deal of small print (pinouts etc.) in this image. See    THIS    link for a pdf for higher resolution.

There is a great deal of small print (pinouts etc.) in this image. See THIS link for a pdf for higher resolution.

I have most of the circuit configured. The only thing remaining is the Filament. With a circuit like this, breadboarding is a nightmare and can be prone (at least for me) to wires loosening and errors in hooking up components, so I went ahead and made a board with pins in and out for breadboarding the filament driver. Below is the schematic of the board at this stage.

Here   is a link to a larger file

Here is a link to a larger file


The Filament is likely the most difficult item to drive.  It is finicky - and should be considered in great detail if you are driving a VFD. Driving the filament improperly will case permanent damage to the device (if not egregious, it will occur over a longer period of time).

The filament should be thought of as an Incandescent light bulb, it is only a bit of tungsten, and can consume ample amounts of current. As the wire heats, it can consume more etc. Therefore it is imperative to protect the current going to the filament.

The Noritake site describes the ideal characteristics required to drive a filament and mentions the ideal frequency to drive the filament and that the filament should be driven with a biased DC source.


In some investigations of best circuitry to apply, I stumbled across this amazing blog: KevinRye.net

Kevin Rye   ’s Filament Driver Circuit

Kevin Rye’s Filament Driver Circuit

He implements a LM9022 VFD Filament Driver IC into his project. These ICs are obsolete, but a quick Ebay search led me straight to many options for new-old-stock. With some simple discreet components I should be oscillating awesomely for my circuit.

Screenshot 2018-10-22 07.28.40.jpeg

The ILV2-5x7M provide data about only ONE of the pins are designated a filament pin. After reviewing the datasheet, the bias voltage provided by this IC should be used for the filament. A simple conductivity test confirmed that the two cathodes are connected to the filament.

Technically, the VFD datasheet refers to the filament as:

“cathode of the extension of the inner surface of the cylinder”

The circuit above calls for two filament pins. I have two cathode pins. Connecting Pin 8 of the LM9022 to what I have been calling a filament and connecting the two cathode pins to pin 5.

filament driver.JPG

What is happening is that the cathode and the “filament” are transposing their polarity. They are phase locked outputs offset from one another.

These VFDs are no longer available (or vary in their availability). As such, I need to know that when I drive the VFDs I can reliably do so without causing damage to the components. The breadboard adaptable circuit above will allow me to quickly prototype and verify different methodologies for driving the filament.

Once I am certain that the Filament is being driven in a healthy way, I will run a random sequence on a single VFD for an extended period of time to ensure that the way the component is being driven is safe for the component.

NOTE: Pulsing Filament for Proper testing functionality
When prototyping the VFD, I found that the filament MUST be pulsed to allow all segments to power on. When driving the Filament from straight DC, the VFD will behave, at least with this VFD, inaccurately.


I am using Macetech’s Chronodot. This RTC uses I2C communication protocols. The Teensy 3.6 has more than one I2C port. As such, when using Wire.h one must configure the pins.

I am using SDA2 and SCL2 - as such


Teensy 3.6 requires external PullUp Resistors to the I2C busses.

The SDA and SCL pins are used to communicate with the ChronoDot, using the I2C standard interface. The I2C bus requires pullup resistors from SDA and SCL to VCC. Since many devices that have I2C buses already have the resistors in place, these are not provided with the ChronoDot. But there are two locations for 4.7K or 10K resistors to be soldered, in case your controlling device does not have its own pullup resistors.


This VFD requires several types of voltages:

50VDC, 25VDC, 3.3VDC, 5VDC, 2.8VDC


2018-11-27 22.06.24-2.jpg
2018-11-07 21.25.04-2.jpg


VFD ASSEMBLY 2 v105 copy.jpg

Links for Casting with Silicone and Resin:

Guerrilla Guide - Excellent glossary of terms

Pressure Pot/Vacuum Chamber - Clear explanation of tools / when/why to use them.

2018-09-17 10.32.29-1.jpg

Test fit (above) from FormLabs Form2 Resin Printer- snaps together well. A touch of material removal here and there - but good fit.

Because I will be taking these 3D Prints and casting them to duplicate the prints by 10.

<< Prep for Casting >>

As I am using crystal clear resin, I want to ensure that the mold has the best possible version of the objects — no pit marks, filled, wet sanded, and buffed.

Below are indicators as to where pit marks are, some filled etc.

2018-10-11 07.41.24.jpg

<< Casting Information - Planning ahead >>

I will be casting into a silicone mold - some 2 part, some simple box casts. I am not a fan of the super-bad-for-you elements of the majority of crystal clear casting resins. As such I plan to use Entropy Resins - Super Sap CCR - a Bio Based crystal clear casting resin with much less health risk and better for our planet. (Datasheet)

This resin calls for the use of a Platinum Cure Silicone. Because of the tight tolerances of the enclosure, I can tolerate very little shrinkage. As such, my research led me to the EasyMold Silicone Rubber. (Datasheet)

-- This is an extremely viscous silicone — as such, plan to sweat a bit when mixing and get some seriously strong stirring sticks.


Because I will be using a pressure pot for the resin casts it is imperative that I also use the pressure pot for the silicone. Any bubbles present in the silicone could burst in the pressure pot and this could cause the silicone mold to fail and require recasting.

So I will degas the silicone - pour into the mold - and place the mold in a pressure pot.

2018-11-04 15.55.00.jpg
2018-10-31 12.28.40.jpg

When casting the resin, preheat the silicone mold at 200 degrees F for an hour prior to casting. This can prevent errors in casting (flow, bubbles, edge rounding etc.)

2018-11-04 12.22.14.jpg

The above images are a simple one sided mold, where flashing and uneven casting were machined flat…. The second part I am casting will be a two part mold-