Don't give up! I spent the last 3 years troubleshooting this circuit with an LM4871 chip with the goal of supplying a low voltage alternating square wave current across the filament of vacuum fluorescent displays. Spoiler alert: it was the addition of a single 10Ω resistor to lower the voltage from ~5V down to ~3.3V.
I started my vfd adventures with this display from an old microwave. At that time I solved the problem of running a 3V, ~150mA current across the filament by simply connecting the microcontroller's 3.3V and GND pins to either end of the vfd. The problem with that is the voltage drop across the filament, as the number of electrons jumping to the grids and segments decreases across the distance of the filaments. So some of the segments glow in the wrong places when a grid is being activated in a different location.
This works to balance out the current across the filament but it uses up 4 microcontroller pins, which aren't always available, even with the high-GPIO Teensy boards I typically use.
My next step was to make an H-bridge circuit out of transistors, with 4 microcontroller pins driving it to create an alternating square wave signal across the filament.
This works to balance out the current across the filament but it uses up 4 microcontroller pins, which aren't always available, even with the high-GPIO Teensy boards I typically use.
Along the way I read about driving vfd filaments with amplifier chips, which led to trying out the LM4871. I made a breakout pcb since it's an SMD chip, and made this circuit on a breadboard. It worked beautifully so I proceeded to design a pcb. Once I connected the pcb—with simple 5V input from the microcontroller and square wave output to both ends of the filament—I was disappointed to see the same ghost segments lighting up that I did with the original 3V current. I dropped the project for a while, having descended into the "valley of sorrows" (as I once heard Massimo Banzi say). I picked it up from time to time to experiment with changing the capacitor values, which did show me that the value of C2 controls the frequency of the signal, to the point that with a high enough capacitance value the segments visibly blink. Interesting but not helpful.
After 3 years I felt I had exhausted my troubleshooting ideas and was going back to review and record any measurements I could in preparation for posting the problem on Reddit for inspiration. Somehow I had never compared the voltage output of the breadboard compared to the pcb, and I found that the pcb circuit produces ~5V compared to the ~3V from the breadboard. So all I needed to do is add a 10Ω resistor on pin 5 (in the schematic above) to drop the voltage enough for the right power ratio between the filaments and grids/segments!
Why the difference? My guess is the breadboard provides just enough resistance to reduce the current, and putting the circuit on a pcb reduces that resistance, which is an interesting lesson. A further finding, which confused me during those 3 years of frustration, was that if I connected the pcb to the filament with alligator clip wires instead of soldering it directly to the circuit the ghosting disappeared. Now my guess is that alligator clip wires also increase the resistance like the breadboard, especially if they are cheap ones.
So it's great to have this problem solved and to be a bit wiser as a result. On to more vfd projects. I have a good one waiting to be put to work.
No comments :
Post a Comment