VFD-Boy Development (Adventures in Interfacing a Vacuum Fluorescent Display with the ATMEGA32u4)

So a while ago I saw these floating around on ebay after staying up late one night looking at unique vacuum fluorescent displays I can’t afford online :sweat_smile: But this one was quite affordable and has the same resolution as the arduboy! It’s a 128x64 dot matrix multiplexed display. I went ahead an bought it, it finally arrived today.


If you’ve never heard of VFDs (Vacuum Fluorescent Displays), you’ve probably at least seen them! They’re often used at cash registers to display your total in bright fluorescent blue or green. They’re similar to neon displays like nixie tubes, but a bit different considering the environment inside the tube is practically the opposite. While nixie tubes are filled with a noble gas (neon), VFDs have all gasses removed from it. Nixie tubes require high voltages applied to a mesh anode, so that certain segments will glow with a orange plasma on whichever cathode is selected. They don’t get very hot, at most around 40C, but they still use a lot of volts, around 140-170V on the anode. Vacuum fluorescent displays, however, run at much lower voltages and use a different method to illuminate segments, but look very similar from afar.

They work much like a miniature CRT TV, without the magnetic fields. In a CRT an electron gun in a vacuum tube creates an electron beam that hits a phosphor screen, and two coils change where that gun aims on the screen, bending the electron beam, and we do this really really fast to make an entire image across the screen. A VFD Uses a much more specific method to illuminate phosphors, but they both are illuminating phosphors with electrons to create a visual effect. In a VFD, there are a few very very thin tungsten cathode wires suspended horizontally across the display. Underneath the cathode is a mesh which will be our interface for selecting segments and brightness. lastly, there is the anode, which is the segment shape coated in phosphor. The cathode is driven at 2.4vAC, so that the wires constantly give off electrons from low heat due to thermionic effect. These are naturally attracted to the Anode, so to stop all the phosphors from glowing, the mesh is ran at ~24vDC. This give the mesh a negative charge, repelling the electrons and not allowing them through the mesh to the phosphors. We can change exactly where and how much negative charge we give the mesh in order to control which segments get lit up and how bright. That’s why for something like the 128x64 dot matrix, it needs to be multiplexed. That’s a lottt of outputs. Almost all VFDs however come with shift registers and some other circuitry already installed either in-glass or on pcb that has been interfaced for you.

Phew! Now that the short tech lesson is over, we can get onto the meat: I now actually have the 128x64 VFD! The listing didn’t have a datasheet but I was lucky in that the part number was very visible in the display itself on the back, shown here.

A quick search on duckduckgo led me to this datasheet first which is pretty good!

This is probably going to be my biggest arduboy project, and I have no idea how long it will take until it’s finally done, but I want to design a driver and interface for this display that could be driven by the 32u4 and a lithium ion battery. It’s probably not going to be easy, but I’ve had a slight obsession with VFDs lately, so I’ll end up working on this until I have a reliable working pcb for it!

If anyone else wants to contribute to this with knowledge or advice, feel free to chime in! Or if you just want to learn along with me and/or try it yourself, keep an eye out on this post and ask lots of questions! I’ll update as I learn and make progress with this :slight_smile: I think the first step should be designing a small enough power circuit to step up and down the voltage for the 24vDC and the 2vAC, which will also need a circuit to convert to AC obviously. Though I have seen this used with some minor circuitry and PWM, it seems true AC is better for the life of these things, DC tends to burn it out even in PWM. After that is figuring out how to interface the display with the 32u4 in the most basic ways.

2 Likes

From research I’ve done, dc filament drive wont necessarily burn it out faster so long as the max current spec is respected, just that large displays will have an illumination gradient due to the non-uniform electric field along the length of the tube. But if you can rig up something like a simple 555 sinusoidal ac supply then that’s ideal. Looks like the display you have is one of noritake’s newer chip in glass models so that’ll be much easier to control than having to manually multiplex with external circuitry.

1 Like

Good to know! I found recently someone interfacing a different vfd with lower current ratings who ran the filaments using a low voltage H-bridge driver, which seems pretty clever.

You can get around the need for an H bridge if you float one end of the filament ends to a virtual ground set to half supply and then just feed either a squarewave or sinusoidal oscillator to the other end. From the perspective of the filament it’ll see both a positive and negative wave whose peak to peak is the supply rail voltage. This effectively generates a full wave from a half bridge. I’ve used similar tricks for various motor/inverter drives before.

1 Like

Neat!! that sounds like a pretty good way to go about it with a microcontroller

1 Like

@Mr.Blinky has a vfd Arduboy I love it I want to do some steampunk version some time.

3 Likes

I saw that last night actually! Though it’s got a green silkscreen pcb as part of the display, and also costs significantly more than the MN12864k (between 3-8 times more expensive). The pixels itself were so pretty though and only motivated me more to keep researching how to drive the mn12864k. The chip-in-glass model is just so pretty and cheap comparitively, at only $26 when I got mine, it’s begging to be fancifully incorporated into some niche tech

Yeah the display I use is pretty expensive even used ones still are $30-$40 if you can find them. But they are pretty amazing driven by an ASIC.

There’s also a version that is driven by an ATMEGA so it’s totally doable to drive this chip-in-glass version with an ATMEGA32U4

Looking forward to see this project progress.

2 Likes

Sick! That’s really cool honestly. I might end up trying to drive a IVL2-7/5 VFD at the same time, which is just four 7-segment display anodes and two dots, for showing the time. I’ve never driven a VFD before so trying these two projects at once is giving me useful insight on how to implement both. I found a couple kicad and EAGLE pcb projects that look to be great starting points. One is a watch for the IVL2-7/5 driven by a single AA battery and uses an ESP32 WROOM-32 to control it. The other is a project to drive different VFDs that are like the MN12832JC, including the MN12864K, as they seem to have the same pinouts? still deciphering the pcb design, but looks promising. My one goal for how to shape the pcb that I’m going to make is to not let the back of the display be covered by the pcb. It’s a beautiful display and while the back isn’t going to be lighting up with fancy pixels, it’s still interesting to look at, and I want my final product to be able to showcase this.

Dont care about downsides I LOVE IT :heart_eyes: :heart_eyes: :heart_eyes:

Is make me :sob:

Is mandatory to put my hands on one of such beauteful bijutery.

So I stayed up all night making a schematic on kicad for interfacing the VFD with a teensy4.0. I used a project based on the teensyLC to guide me, since the pinout can be the same and leaves tons of pins open for other uses(namely taking in data from a 32u4 and controlling the VFD accordingly. Maybe. Not sure if that’s the best way to do things yet, but it seems so) thanks to teensy4.0’s insanely over-engineered capabilities like nearly every pin being PWM capable, whereas the 32u4 only has a few. The 32u4 also has a few interrupt capable pins, but are usually populated for pwm uses. But the teensy4.0 has interrupt capabilities for all of the pins!

So things are coming together. Next step is to design a pcb that can show off just how sexy this display is. While the front doesn’t need to show off it’s edges, the back is an incredible piece of technology, with laser-traced strips of silver foil in the module that are really pretty when looked at closely. Most people will definitely be more enamored with the light of the display itself, but I think a few people night appreciate keeping the back visibile, and it not, at least I will!

I’ll post the schematics when I wake up :sleeping: it’s 10:45am and I have not slept asdghkl

Here’s a post about it all: https://twitter.com/polarisvoid/status/1441781268027363330?s=19

Any progress on this? I am keen to see how this comes out.

1 Like

Some! Learning to use kicad was a bit less straightforward than I originally thought, so it’s been a little slow. But I’m making good progress! Hoping to be done with it in the next few days (I’m out of town right now but I’m probably gonna end up working on it anyways lol) so I can finally get my grimy maker hands on that sweet sweet PCB design I have in my head. I’m going to try and interface the display with a teensy 4.0 and then interface that with a 32u4 sending screen data. If you have any advice on the latter, I’d be glad to know anything.

Got the PCB designed! Just gotta order it now, I’m thinking OSHpark for the manufacturer, they seem to have good prices and reviews.

I have the KiCad and Gerber files over on my Github under an MIT license so if anyone wants to grab it and/or make some better tweaks and changes (This is my first time designing PCBs, there’s definitely room for improvement) just go for it. Here’s a peak at the schematics and PCB:


^The teensy 2.0 and those many holes on the right aren’t connected to anything for prototyping the interface between the teensy 4.0 and 2.0, and eventually the rest of the arduboy accoutrements.

Hmm. I don’t have much experience sourcing smd parts, know any good PCB assembly services that will do this with a provided bill of materials and pcb files?

JLCPCB and PCBWAY will do smd assembly, not sure about though hole though. They will also need what is known as a centroid file (most pcb cad programs can generate this for you) which contains the information about component coordinate positions and orientations for the pick and place machine to do its thing.

1 Like

Thanks! That’s great info :grin:

1 Like

All through hole components are manually assembled, is quite expensive.

They can be. JLCPCB’s SMT assembly service says that they don’t do through hole components unless you specifically pay for it, which is fine, the only through hole components I have on the PCB are connectors, the microcontrollers, and the display itself, none of which I mind soldering myself. Through-hole is easy, I just don’t want to waste time soldering smd components with a degraded soldering iron.

Currently pretty broke from being unemployed though, so I likely won’t be able to order this for while. Unfortunately that means this project will be on a little hiatus until I can afford to splurge. Once I can and get everything working I’ll do three or four of them since I’d have the PCBs anyways. I’ll probably give the extras away in a raffle or something though. (Maybe a prize for a future unofficial arduboy jam? :thinking:)