Objective: establish whether a standard I2C backpack for an LCD would drive a Vacuum Fluorescent Display.

You will need: Arduino UNO (or similar), a generic I2C LCD backpack, display, breadboard and patch cables.


Picture of illuminated VFD

In this project I wanted to determine whether an I2C LCD backpack could drive a Vacuum Fluorescent Display (VFD). Many years ago I had experimented with VFDs connected to the parallel port of a PC in native 4-bit mode and that worked but needed a separate power supply because the current demand can be several hundred milliamps. On the plus side, and in most cases, the pinout and control protocols of basic text VFDs are the same as an HD44780-compatible LCD and so, apart from the concern over the current draw, should work with the same program whether using 4- or 8-bit parallel or I2C.

Assembling The Components

My preferred Arduino, both for developing programs and production use, is the Micro as it can be fitted to a breadboard and is more compact than the Uno. I connected the VFD to the I2C backpack using all 14 connections and then the backpack to the Micro using the four I2C connections. For the initial test I connected a 5VDC power supply directly to the Micro's GND and +5V pins, rather than possibly damage the Arduino’s on-board regulator by powering it from the USB. Once that was working, I measured the current required and found it to be about 500mA (460mA for the VFD and 40mA for the Micro) with all matrix elements illuminated. This was just on the limit of what can be provided by the Micro's on-board regulator. And it's not clear what the current limit of the I2C backpack is though it clearly works with no hot-spots detected.


A final repatch so that the Micro was powered by a USB cable resulted in a successful conclusion with the I2C interface driving the VFD, though any larger VFD would certainly require a direct supply and not one through the Micro's regulator.


The VFD that I used had the designation VFM202MDA2-1. The VFM means "vacuum fluorescent module" and the 202 indicates 20 columns by 2 rows. However, if you search for this on the Internet, there is very little information about it. The only other designation on the PCB was PC-0458-03-DS and a search for this yielded nothing of interest.

I have another, smaller VFD, with the designation 20T202DA1J. This is a Samsung device and there was much more information available with many second hand devices on offer at $30-40.

Alternative Sources

VFDs are used extensively in retail checkouts - and they're usually big! I bought a 20x2 module from Ebay and dismantled it to find out whether it could be connected easily to an Arduino or Raspberry Pi. These retail models are designed for connection to PC systems and so do not have a parallel or I2C interface. Rather, they have a serial connection with both a 9-pin D-type serial plug for data and a USB for power. They use a subset of the DEC VT100 escape sequences to position the cursor, clear the display, set country code, etc. Power consumption is stated to be 440mA (max) at 5V. This Wincor Nixdorf document covers the BA63 and contains the escape sequences.

On an Arduino you need to connect up the 9-pin plug to the serial connections,