Electronic – arduino – How to control a VFD display with Arduino


I have a Samsung 170L40AA1 VFD display, but no controller. So I wondered if it is possible to use an Arduino to control it instead. I've found the code for controlling an Futaba NA202MD13AA, which I want to try, but I can't figure out how to connect the VFD to the Arduino.

Any pointers would be greatly appreciated!

Best Answer

If you want to experiment, you can drive a VFD using an Arduino without a controller chip. If you can't find a datasheet for your display it'll take a bit of trial and error.

First, you'll need a couple volts across the filament. This will most likely be the first and last pin. For best results this should be AC, but DC is usually acceptable. The 5v from your Arduino will be too much so put a small resistor in series with the filament, for my display, I used a 47ohm resistor. If you skip the resistor you'll see the filament glow red hot. Since these displays are not designed to be light bulbs, you shouldn't do this for more than a couple seconds, but it might be useful to confirm that you've found the filament. I found that the display was brighter if I hooked up the first pin to ground and the last pin to 5v via the resistor. I'm not sure why this is the case.

Now you probably won't be able to drive the grids with 5v, but depending on your display you might not need much higher. I have a display lit to a decent brightness at the moment with only 7v which I've pulled directly from the supply rather than going through a regulator. (If you can't do this with your Arduino, or your particular display needs 20v or something, you can use two different power supplies by connecting the ground together, though this is not a good idea long term.)

Your display will be broken into separate grids and it will probably be obvious which pins are connected to which since these things made of glass and you can look right inside. So you'll have one pin for each grid and the remaining pins connect to the individual segments that light up.

So here's where VFDs differ from LED displays. In an LED display you'll have a common anode or cathode and the individual segments will be the reverse. In VFDs, both the grids and segments are anodes. So hook up your higher voltage to at least one grid and one segment. Doing this, you can map out which pins light which segment.

This can all be done without an Arduino at all. What you'll notice now is that you can only light up the same configuration of segments for each grid. Not very useful.

You'll need to multiplex the display: light up the grids in rapid succession, changing the segments that are turned on each time. This is where a controller chip can be handy but it can be fun to write using just the Arduino.

If you have enough free pins on the Arduino for the anodes that you need, you can use a transistor on each as a switch for the higher voltage. You can use the analog pins as digital pins as well, just refer to them as pins 14-19.

The best way to multiplex a display is using an interrupt on a timer, so read up on those.

Hope this helps.


Here's a circuit with a calculator to build a voltage booster for powering VFDs.