Skip to content

Latest commit

 

History

History
177 lines (141 loc) · 7.13 KB

README.md

File metadata and controls

177 lines (141 loc) · 7.13 KB

VFD Display Project

Some notes on building a display driver for a Futaba 16-LY-01ZL alphanumeric display. It seems that Futaba no longer manufactures or supports these devices, but they are commonly available for secondhand purchase. The device has 37 pins at 0.2in spacing.

This is a vacuum flourescent display (VFD), which is a variant of the vacuum tube. A small AC current is used to heat a filament (cathode) when then produces electrons via thermionic emission. The electrons are naturally attracted to anodes, if they are positively charged. Each anode is coated with a flourescent material, and glows a distinctive amber/green color when active. Between the cathode and anode is a grid that controls whether the electrons flow.

This particular one is a sixteen digit alphanumeric display. Each digit has sixteen segments, plus three more indicators: a dot in the upper left corner (Q) and a decimal (R) and comma (S) in the lower right corner. Each segment corresponds to one anode, and each digit is controlled by a separate grid. As a result, the display can be multiplexed much like a multi-digit LED display.

.             S
 --- ---         HHH GGG
|\  |  /|       AI  N  LF
| \ | / |       A I N L F
 --- ---         PPP OOO
| / | \ |       B J M K E
|/  |  \|       BJ  M  KE
 --- ---         CCC DDD
         .               Q 
          /                R

Datasheets and Testing

No datasheet is available for the device itself, however, it is mentioned in this datasheet for DC/AC inverters, which provides some key parameters:

Converter Ef r.m.s Vac If (mAac) V1 (Vdc) V2 (Vdc) I1 (mAdc) max. I2 (mAdc) max. Display
CD-1884N 7.2 75 -47 -58 20.4 7.5 16-LY-01ZL
CD-1884P 7.2 75 58 - 29.9 - 16-LY-01ZL

There are two power supply variants here: the N variant sets both the cathode and anodes well below ground, while the P variant sets the cathode at ground (+/- the small AC voltage) and the anodes and grids at 58V. Ef is the AC voltage applied to the filament to generate electrons, and V1 is the potential difference between cathode and anodes.

We can test the pinouts quickly by using some lower voltages that are easily available with components on hand. Handily, the connections for the filament (either end) and grids are easily visible through the glass, while the anode connections are printed on the back of the device. Test by applying 3.3V DC to the filament pins, and then using +30VDC to the grids and anodes to light up various segments:

Pin Type Number
1 Filament X
2 Anode I
3 Grid 1
4 Anode S
5 Grid 2
6 Anode J
7 Grid 3
8 Anode K
9 Grid 4
10 Anode L
11 Grid 5
12 Anode M
13 Anode N
14 Grid 6
15 Anode O
16 Grid 7
17 Anode P
18 Grid 8
19 Anode Q
20 Grid 9
21 Anode R
22 Grid 10
23 Anode A
24 Grid 11
25 Anode B
26 Anode C
27 Grid 12
28 Anode D
29 Grid 13
30 Anode E
31 Grid 14
32 Anode F
33 Grid 15
34 Anode G
35 Grid 16
36 Anode H
37 Filament Y

Block Diagram

There are 35 lines to be controlled. If we leave out the dot, decimal, and comma, then we need 32 GPIO lines in order to control 16 grids and 16 anodes. The MCP23008 gives us eight I/O lines controllable via I2C, and matches up nicely with an eight-way power driver (UDN2981) and eight-way resistor bus that switches the 30V power. Four of each of those can be stacked on an I2C bus as follows:

MCU -> I2C -> | -> MCP23008 => UDN2981 => Pulldowns => 8 Grids  (bank 0)
              | -> MCP23008 => UDN2981 => Pulldowns => 8 Anodes (bank 1)
              | -> MCP23008 => UDN2981 => Pulldowns => 8 Anodes (bank 2)
              | -> MCP23008 => UDN2981 => Pulldowns => 8 Grids  (bank 3)
                   /               ^
                  /                |
5V Power ----------> Boost -> 30V Power
                   Converter

Circuit Board

Fritzing PCB File

Circuit Board

Bill of Materials

Quantity Part Description Datasheet Source
1 16-LY-01ZL Futaba 16-Digit Alphanumeric VFD none ebay
4 UDN2981 High-Side Power Drivers(x8) datasheet ebay
4 MCP23008 I2C I/O Expander (x8) datasheet digikey
4 4609X-AP1-103LF 100K Resistor Array digikey
1 5-35V Step-Up Power Module amazon
1 Arduino Nano (or similar MCU) amazon
1 15 Ohm, 1W Resistor (R1 filament driver)
2 4.7K Ohm, 1/4W Resistor (R2/R3 I2C pullups)

Build

Here is the board fresh from JLCPCB:

Finished Board

Here is the board populated with parts and the display. (Note that the display faces away from the board.)

Populated Board

And here is the board powered up for the first time, showing all segments on. Note that there is some variation in brightness across the digits. This is because I am using DC across the filament, which results in some voltage drop from one end to the other:

Board Powered Up

Principle of Operation

For the convenience of board layout, note that the MCP23008 outputs are in reverse order from the transistor array, so we end up with the following correspondence between output registers and display pins:

Bank I2C Addr 7 6 5 4 3 2 1 0
Bank 0 0x20 G9 G10 G11 G12 G13 G14 G15 G16
Bank 1 0x21 I J K L M N O P
Bank 2 0x22 A B C D E F G H
Bank 3 0x23 G1 G2 G3 G4 G5 G6 G7 G8

To display a single character, we must send the appropriate bit pattern to banks 1/2, and then enable one character by setting one bit low in banks 0/4. Each digit must be shown in turn at a rate of about 100Hz.

Working Code

The following Arduino project VFD-Display puts this into action. Briefly, the MCP23008 module provides access to the four banks via I2C. The VFDController module stores the 16-character array and transforms ASCII into appropriate segments on the controller. The VFD-Display main program sets up the controller, and cycles through the digits.

As provided, it will display "YOUR NAME HERE" which you can replace with your own message. If the Arduino remains connected to the serial port, you can write arbitrary ASCII lines which will then be displayed.

I mounted the board and power supply on a piece of acrylic and use it as my office desk nameplate:

Office Nameplate

Because of the dynamic display, the photo doesn't quite capture all of the characters simulataneously, but it looks quite nice to the human eye.