Of IVL2-7/5s

A project log for VFDuino

An arduino VFD clock

Brad ArnettBrad Arnett 04/30/2016 at 00:540 Comments

To set the scope of what I am and am not going to talk about here:

Now that I've gone through that, this thing took me far longer than it should have to figure out, partly because I'm not an engineer, and partly because documentation for this thing is dodgy at best. Having that been said, it has a clear backing and all the traces inside are visible, so it's not hard to puzzle through. Lets look:

The thing that surprises me is that an easy 50% of the pictures out there have the thing pictured upside down according to the data sheet (handy information providedhere). One side of the VFD has 16 pins on it, and the other side has 7(!) but you don't actually need those 7. You can use them, or you can cut them off. What, you say?! Well, those 7 are actually duplicates of some of the ones on the opposite. Technically, this doesn't matter, as if you design your build from the upside down perspective, it works perfectly still, but when talking about the pins, it's important to keep a common perspective, and this is the one I'll be using.

The bottom pins are the ones I'll be talking about, because they're the ones I use. Numbered, from left to right, they are:

  1. Filament
  2. Grid 1
  3. Top dot of colon
  4. Middle segment
  5. Bottom left segment
  6. Grid 2
  7. Bottom right segment
  8. Grid 3 (the colon)
  9. Bottom dot of colon
  10. Bottom segment
  11. Grid 4
  12. Top right segment
  13. Top left segment
  14. Top segment
  15. Grid 5
  16. Filament

The top pins are duplicates of the filament and grid pins. Using them might make sense, or it might not. If you want to use them, just look through the VFD to see which grids they correspond to. They're not too hard to trace.

Next, we'll start with making it do something. To start, you need current passing through the filament to get any reaction. I use 3.3V because it's conveniently offered by the Arduino and also within range for VCC for everything else I have attached. It's a little hot for the filament, and you'll see a slight red glow from it, but I don't think it's enough to cause any real lasting harm. Don't go higher than this. Note that 3.3V may shorten the life of your VFD though, so if you feel up to it, check out a calculator for a voltage divider and reduce it to something lower. It's rated for 2.4V, but I think you could go as low as 1.2V and still get output, though I haven't tried it myself. The grids and the segments both use the same voltage (24V), which is convenient to us. You can also drive them at a much lower voltage, though I suspect that they'll be dimmer as a result. I use about 14V myself and still get enough glow to comfortably read in anything except maybe direct sunlight. Overall, what this means is that you can make this work off of two voltage rails, a 1.2V-3.3V rail (I'll call this 'low voltage') and 14V-24V rail (I'll call this 'high voltage'), and a common ground.

So at a minimum, you should be able to light up a segment by connecting:

If you want to make sure your entire VFD is working properly, connect pin 1 and 16 as above, and everything else to high voltage. If it doesn't light up with '88:88', then something's gone wrong. Check voltages, make sure you're delivering enough current (an Arduino Uno should be able to handle this), and then try another VFD. One of mine was shot, and I spent more time troubleshooting that than I should have. Most vendors for these seem to sell them in sets, so I'm sure you have another one.

An observant person at this point would exclaim, "But wait! I can't get just one digit to light up! If I power all the grids, all the segments light up." Yup. You have to cycle through each grid with the right configuration for the proper segments in order continuously. The trick is to do this fast enough that you can't see the flicker in the screen. This isn't as hard to do as it sounds, though it does require some planning. In code, I insert a delay between each digit that lasts about 3ms. Because this is faster than the human eye can see, there's no apparent flicker. I'm sure that's just not an optimum value, and should probably be tweaked as appropriate to your own build.

Sometime in the next couple days I'll talk about the NCP1403, which is the component I use to generate the high voltage rail used in my full clock.