Reversing the VFD
I had a broken Philips DVD player lying around for sometime, so I decided I’ll take out the LCD panel inside it and play a little.
First of all, I discovered that it was a VFD not a LCD, but programmatically that wasn’t a huge difference !.
The unit contained 7 digits, each digit was a 16 segment VFD, And was driven by an ET16312n chip !
First thing was to get the datasheet to know how to wire the panel to my computer, and how to talk to it !
After some research I found the NEC datasheet and learned that most VFDs have the same NEC standard and if you manage to program one panel, it’s most likely that any other brand will work the same way with minor mods in your code !
After some tracing I managed to get the serial leads, which were STB, CLK, Din, Dout (Din and Dout are shorted on my board, input is read on the rise of CLK, and outputs are read on the fall of CLK)
After wiring those pins to my parallel port (Yeah I didn’t have a serial interface and I’m too lazy to buy one, and I’m bad with soldering too !),
I connected the STB pin to pin 2, Din/Dout to pin 3 and the STB to pin 4 on my parallel port.
Power connections are give in the datasheet pins 7, 14, 27 are for Vss, Vdd, Vee respectively (You’ll need to power sources for that, Vss it in the 5.5 v Range, and Vee goes down to -30 volts (That’s a VFD thing, don’t ask)
After all the wiring and powering is done, it’s time to go to my PC and start writing a driver code !
My box runs Ubuntu, you’ll just need the `build-essential` package for this. You probably have it, if not just “sudo apt-get install build-essential”
You can go ahead and download the code attached to this post, it’s written in C, just compile and connect your panel and things should work right away
I’ve written the code to read text from a file, then scroll it on the screen (since we can only have 6 chars displayed at a time)
Another issue that came across me was how the encoding of the characters worked, I tried lots of methods but the easiest (for me) was to calculate it by pen and paper, took around 20 minutes to calculate the binary representation from letters from A to Z. they are defined in the 16seg.h header file for your convenience
Here’s a picture of the final product, hope you like it:
For the time being that’s all I reached and all I’m going to do on this project, it can be pushed further but for my concerns, it was just for fun and I don’t really need it. however there are many cool uses that can be done (since it contains push buttons and an IR sensor), think about the possibilities, perhaps yet another twitter notifier that works via a TV remote ??
If you have questions leave it in the comments or email me, I’d be happy to help anytime !