EEVblog #717 - How To Hack Vacuum Fluorescent Displays

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

Step#1 - find the datasheet

👍︎︎ 3 👤︎︎ u/Enlightenment777 📅︎︎ Feb 24 2015 🗫︎ replies
Captions
hi today we're going to take a look at vacuum fluorescent displays or VFDs we're going to have a little quick look at how they work on the whiteboard and then we're going to look at possibly getting a salvaged unit like this operational now this one was sent into the mailbag our segment sorry I forgot who what sent it in but thank you very much and it is a complete vacuum fluorescent display module from a company called a Babcock here and it's a custom-designed by them it's like a I don't know count the number of characters by two lines and you've no doubt seen these vacuum fluorescent displays they comment on audio gear and things like that incredibly common in the 70s and 80s for all sorts of year old old calculators and things like that used to have vacuum fluorescent displays and they've got lots of good qualities to them there they're really bright so they can be used in really high ambient light environments but you can dim them really low as well and they just look beautiful I think vacuum fluorescent displays so ah these even is still popular even today although they're quite delicate and not fragile and they can age because hence the name vacuum fluorescent display they are actually there is a vacuum inside there you can see that port there that is the vacuum extraction port to suck all the air out of these things and they've got a glass top on them so yeah they are a little bit delicate this one's had a little chip taken out of it but I believe the vacuum inside is just fine and dandy so anyway you can get these in all sorts of Salvage gear that people just toss in the dumpster and they can be really nice to actually reverse engineer them get them up and run it again and actually program especially these are dot matrix ones they just look really good and this one's not only dot matrix but it's got a ya cursor underneath as well as you can see under each one so let's take a look at it and hopefully we can get this puppy up and working and reverse engineer this interface here figure out the protocol to make it talk let's give it a go very quick explanation time here of how vacuum fluorescent displays work if you haven't seen them before and will be able to physically see the construction of this inside the unit I'll show you in a minute now what we've got here please excuse the crew do this model didn't have time to build at the scale or to paint it we've got three different elements here - a vacuum fluorescent display all this stuff is inside a vacuum hence the name vacuum fluorescent display now on the bottom of the unit here so this is the bottom this is the middle and this red one is the top II on the bottom in blue we've got our anode and that is a phosphor coated element phosphor like your fluorescent tubes for your lights for example when electrons strike them they actually fluoresce and generate light and that's where the light is coming from so that's on the base of the display here and I've shown like a 3 by 4 matrix display but it can be a 7 segment display could be practically any unlimited weird shape you want you just shape it in whatever thing you want and it's a conductive element coded in a fluorescent material now on top of that we have a grid mesh a very fine metal mesh and that has to be as see-through as possible otherwise you won't be able to see the light coming out from the anode elements on the back here so that's why the vacuum fluorescent displays have that sort of wire mesh II kind of look you know that sort of not completely solid look because you're actually looking through a metal mesh but it's a very important aspect to it and then on top you've probably seen these if you've looked at vacuum fluorescent displays you'll typically have two wires strung from end to end in this case we'll see them actually run all the way over all of the individual I characters on our matrix display here so these are just two wires on top and this is the cathode and they're made of tungsten wire and they're the things that actually emit the electrons so these things work exactly like old-school triode valves we've got ourselves the cathode filament here so you're putting usually an AC voltage on that and that generates heats up and generates electrons they burn off the surface and and they can head towards and bounce off the fluorescent material on the anode so what we do i've shown these three here in the different because they're physically constructed like this in this case the cathode at the top it's going to be a negative potential compared to the mo down here so we put a positive voltage on here relative to our cathode filament here and bingo our electrons peel off here and if assuming that the grid is not there and doing anything and they're attracted towards the positive anode down here and of course when an electron hits that fluorescent material it glows and the entire surface of that particular element or whatever the shape the 7-segment display or you know little animal or something on there you can have any shape you want so when you've got a grid here like this in the middle you put that at the same positive potential as the mo down here and the electrons are being emitted by the cathode can just go straight through the grid and fluoresce the anode but aha if you want to turn that particular segment off ie that dot off on your seven segment display or on your dot-matrix character display then you just put that to the same negative potential as the cathodes and then the election electrons are still coming off here but they're just going to bounce back like that they're not going to get through to the anode so the N Oh doesn't glow and bingo by controlling the voltage on your grid here this inner material then you can determine whether or not you're going to turn your your individual elements of your anodes are going to turn off or on and what sort of voltages are we talking about here well this filament here will be typically around about 4.5 volts RMS for example might be a typical filament supply value as so that is an AC signal there to generate the electrons what do we need to the anode well in this positive potential here relative to this cathode up here you're talking about 20 volts or there abouts maybe up to 30 volts maybe as low as 15 maybe 15 to 30 is about a typical range for that now the voltage can actually be a bit higher here and they can be lower here for the filament drive voltage for example we're just talking like ballpark examples here and as you might suspect the filament current here because it's just a tungsten wire is going to be quite high current so it's going to be responsible for the main current draw of one of these vacuum fluorescent displays and of course on something like a dot matrix display here you're going to be driving these as a multiplex start display you're not going to drive these ecstatically with each one so maybe like a seven set a single seven segment display you might drive statically for example but even when you got say you know ten seven segment display characters then you pretty much go to drive a multiplex just like you would a regular LED display but of course the problem with the higher voltages here is that you can't drive these with your typical art TTL logic you probably can't even drive these with 4000 series CMOS up to 15 volts for example you might be able to get away with it I think that some people have actually yet done that be you pretty much need discrete high voltage our transit ever individual transistor drivers for these things or dedicated VFD our display driver chips which you'll find typically on one of these things they won't be using discrete transistors here so that's the annoying part about vacuum fluorescent displays is that if you don't actually have the controller attached to it and actually as we're going to try and do here actually reverse engineer the controller and figure out how to drive it then if you've just got the vacuum fluorescent display with the bare pins sticking out then you've really got your work cut out for you you've got to do the high voltage drivers the Moldy place you're going to do the fill a/c filament supply and all that sort of stuff and well it's you can argue it's not really worth the effort that's why we're just going to do one that's sort of like an off-the-shelf full out like controller even though we have no idea how you know no specs no datasheet for it but the good thing is is that they've got the drivers built-in typically they're going to be like a serial or parallel digital interface with some sort of microcontroller especially in the case of this one here where we've got a yellow a forty character by a two line dot-matrix character display there's got to be some sort of microcontroller in there to drive that so the interface should be relatively straightforward so that's the plan haven't actually tried it yet so if I guess if it doesn't work you might not see this video but anyway let's go over the bench see if we can actually get this get some characters on the display of this thing so if we have a look inside this Babcock vacuum fluorescent display we'll see exactly the same elements that we were talking about on the whiteboard there and there you go you can clearly see the cathode tungsten wires going across the top like that you can see that they're physically on the top due to the parallax there and you can see that they're all joined down to this metal strip here so they're all electrically connected and also to the ones up here they've just got three going across like that very common to have our two for example but these are relatively high so they've decided to put three on here so we're obviously going to have one pin on the vacuum fluorescent display probably on the corner here if we have a spin it around aha there we go it's likely that one you can see some metal branching off there and then through so that's very very likely to be the the top part of that site cathode filament there and that is confirmed if we flip it over like this tada there's that thicker trace go in all the way with LBJ across here and down to this part of the circuit and there we go that's our generator there's our it looks like we've got ourselves a little light transformer there do it yep so that's generating our likely AC at supply voltage for our cathode there and the other one bingo is likely to be that corner pin there so no surprises whatsoever and that would be a typical pin out on one of these vacuum fluorescent displays of course you're going to have the cathode either side like this so you can have one pin here and one pin on the other side pretty easy to find those and the other really interesting thing is that you can see the grid down in there really very clearly and each one is separate you can see electrically isolated between these two characters so these two characters on the top and bottom display are sharing the one grid there and if you move the display around like that you can actually see that the grid is actually sandwiched between the anode and the cathode as we saw on the whiteboard and then the NA driver chips are Texas Instruments teal 48 r10 and I'll link in the datasheet down below these are nominal 60 volt output rated I think 40 milliamps our current capability as well so these are typical VFD our display driver chips they've got five of those here outside the display and hidden under the display which we can't see there's another seven of them I believe so on the board itself we have the vacuum fluorescent display module which is all our socketed very nice you could actually lift that out but imagine the pin force actually required to lift that out geez without breaking off the break in the glass top on there I wouldn't like to attempt to do that only if you're happy you certainly wouldn't just leave it up at one end and hope it comes out that is an absolute monster we've got our arm a filament and high voltage display driver over here we were to bodged sort of heatsink just bent over the edge there like that anyway this is designed to go into a bit of gear so it doesn't really matter power import which we'll take a look at we've got those display drivers I talked about there's another seven under there by the looks of it so there you go there's a whole bunch of them they're just done by the way our serial input art latched output driver chips ten individual outputs and then we've got ourselves a processor here which is a a Babcock branded one by the way the date code of this board and the chips on here end of 1989 so yeah a good 25 years old this board but hey I think she's still going to work 12 megahertz crystal this is probably like this will not be in a Babcock custom ASIC it'll just be like a programmed micro controller from the Euro 805 one or something that equivalent so the first thing we need to do is figure out how to power this thing I did show this in the mailbag video I did actually power it up and well there's only one input connector here unless you count power coming through here which I don't think so I think it is completely power from here it's a dead giveaway the big pins and the big filter cap so how do you determine the pin out on here there's no silkscreen like this while you look at the cap you can see the negative of the cap it's the pin on this side you can see that that trace is going over to this pin so this pin is going to be the negative input this pin here is going to be the positive input on the left here so there's no input protection there at all and then what voltage are we going to have here well it's pretty damn obvious I don't see much in the way of regulation although something like this could be a discrete transistor regulator but I don't think so I think that's driving the transformer up in there so really I think it's like going straight across the chip and what we can do is get the 5 volt of course in we're talking like you notan on 1989 vintage chip here nothing's going to be 3.3 volts on here it's all going to be 5 volt our logic the micro of course is going to be at 5 volts so it's a safe bet to say that this is a dedicated 5 Volt in but you could actually measure that so our positive input their pin 40 of this micro here which is most likely there we go to be 5 volts and bingo it is and then you can check the ground over here between the ground pin and bingo so our input here is directly across this chip you know it's going to absolutely be 5 volts no worries at all so how would you pair up a board you've never are powered up before safely well we go to channel 3 here we've set it to what 5 volts of course and then our current limit ah look I if you wanted to be game you'd set it to 1 amp say but hey let's go point 1 amps like that so that'll set our common current limit and then we can switch this sucker on and when see that no it's dropped down to 5 volts so it's hitting that hundred milliamp current limit there and well you know it obviously needs more current than that a huge vacuum fluorescent display like this is going to draw a whole lot more so hey switch that off and then we'll whack that back up to one amp current limit switch it on and yeah we've got a five volts it's drawing you know 777 milliamps there that's a nice number I like that and tada let's have a look it is flashing look at that we're going to a digit over here be careful of the high voltage circuitry on this side don't want to go pokey around there but look we've got ourselves a blinking cursor so that's obviously to do that requires that this are micro actually work hear that so it powers up it's doing something that's driving all the serial drivers doing the right thing and you wouldn't get that if the vacuum in here was you know it leaked out and there was no more vacuum so the vacuum fluorescent display is working the micro is working everybody's happy all now we're going to do is figure out the interface over here so let's take a look at this carnage connector here and it's going to either be a serial or a parallel interface I'm not likely to be both but look you can see all the pins on this top side are all shorted together look at that all except that one going off over there to a little jumper link a 75e six whatever the hell that means but anyway there's a jumper link in there maybe we can experiment with that later but all of those are shorted out so they're likely ground we can measure those of course before we go hooking up to the theme and look what I got here this is our micro of course on the bottom and we've got one two three four five six seven eight eight pins going off to the micro in one bus bingo that's going to be an 8-bit IO port on the micro absolutely no doubt about it so and then we've got these ones here going off that's actually a pull-up resistor network there oops better be careful fleeing this thing around flipping it over you can hear the tungsten wires inside go so skip depend on our micro there and these other ones up they've got them presumably pull-up resistors once again we can measure that to see where the resistor network goes there but so we've got one two three four four other inputs here so it's got to be some sort of parallel interface so there's going to be a parallel interface is going to be like a power 8-bit data port like this which will no doubt take the ASCII character you would do it in ASCII just because like if I was the design engineer and they said design is a VFD module we have an interface like this that had to hook up to something else you know and parallel whatever how would you do it well you know the ASCII code the 8-bit ASCII code or seven bit 8-bit ASCII code straight on there bingo you'd most likely have some sort of that latch load line for example something like that you would probably have a reset line in there that reset the whole display because this micro is of course going to have the buffer inside it's going to buffer all the characters that you are send to it and then a couple of other pins yeah I don't know what they're doing maybe there's some other serial interface but no I mean I doubt it I don't know what the other pins for but anyway I think there's got to be some sort of latch low pin with an 8-bit interface at a reset line at a minimum and a very quick check is that a pull-up or a pulldown network it is a pull-up network no surprises that would have been my guess and I sold some pins on there the good thing about a card edge connector exactly not point one in so I'm some more usable headers because these are all ground pins on here I've actually put on three ground pins here that's just handy you never know when you have to attach various you know like logic analyzer grounds and things like that so it's worth putting a couple more on there didn't want to do the whole row but at least have more than one and I said before I don't think any of those pins on the side are outputs here but hey just to probe them because we don't want to go injecting signals into this thing without you know at least doing some basic checks so of course those data pins there they're all going to be inputs so I'll check the other ones as our 5 volts no that's just the up pull up so it's not no I'm pretty damn sure it's not actually outputting that 5 volts otherwise there's no reason have a pull up there the reason you never pull up is because it's an input so oh we've got a curious looking one look at that we're getting getting some frequency there what is that it doesn't it's not it's not telling me it's not displaying that frequency we can a see a couple that there we go I've I see coupled the input channel here and bingo bang on 12 megahertz uh-huh let's trace this sucker I think I know what this is now the pin is actually on the bottom side there and it pops up through this via and you can see the trace goes around here around here snaking its way around there around the crystal and I lose it after that point but as able to buzz it out and it actually goes to pin at 39 there of this 40 pin micro so it's no surprises that we actually see 12 megahertz on here what we're getting is just some stray capacitive coupling between that trace and because it's running right near the crystal there and obviously it's an input because if it was an output and be felt you know it would be low impedance drive on the output so it wouldn't be the just astray capacitive coupling wouldn't be enough to get that sort of amplitude which we'll see in which was you know 300 400 millivolts or something like that I think it was on that pin so that one is most likely an input pin rather than an output would you believe it would have been absolutely perfect just to plug and Arduino straight onto there like that on this pin header but it's the bloody incorrect not point one millimetre pin space in there that screws it up dammit but hey nothing you can't fix by simply resole during those on a staggered arrangement with that pin there and there we go it fits on nicely this Joss enough room there staggered wise to actually get those up pins and soldered directly and so that's a really neat solution look at that I can just drive those digital inputs directly all I do is hook up a ground awesome and check it out that is the complete interface we've got all our lines we've got dart this is the ground line running over here like that and we've got all of our digital lines there and we've got that extra input that we saw that had the floating line that went next to the clock that one's going all the way up all the way over there like that so there's really neat and tidy we can just plug your USB straight into there our five volt power on the main board and Wow Bob's your uncle well where we go and we've figured out the reset pin on here without even doing anything look I got it turned on there's our cursor and we haven't even got the Arduino plugged in but look there we go so we're resetting so it looks like that extra pin over there is like some sort of reset / blanking line something like that and if you're curious to see what the filament supply voltage is well we can measure straight across that but be very careful when you're probing around nan ground reference circuits like this at the moment we don't have the Arduino hooked up to the USB here so this is and it's hooked up to our floating rygl supply so it's complete in floating system relative to mains earth so we can safely put our ground point on any part our ground clip lead of our silla scope which is connected to mains earth here but if we once we plug in the computer here I've done a whole video on this it's called how not to blow up your oscilloscope and this is one way to do it when you plug in your USB on here the ground is mains earth reference most likely for through your computer unless you're completely using an isolated battery-powered laptop so anyway we can get in here and we can probe these are the two pins on our filament there we go and the average value you can see in the bottom left-hand corner there six point eight volts especially recently high for a and RMS voltage anyway you can it's not a sine-wave it's just a square wave that's which is just fine that's very typical and bingo look at that I found our flushing cursor you have to look through all the pins of course it's going to be in the physical vicinity down here it had to be sort of on this end of the display where it's actually flashing and sure enough there we go there's our lip lip lip and of course it's going to be a multiplex display so that's why we're getting the frequency there and that's being multiplexed at like a 60 Hertz or something like that so there you go you can see the on-off bursts like that and of course it's multiplexed in that part down in there and then it's just completely switched off down in that part so there you go and of course by adjusting the duty cycle and the frequency in there you can adjust the brightness of the display oh and I forgot to mention the voltage we're at 20 volts per division here so this is a particularly high voltage board so it's like 40 look at that like 45 volts or thereabout so yeah pretty high by the way I just wanted to mention even if you couldn't figure out like the proto the interface protocol to this micro or anything like that I mean not as long as your work out it you should be able to get it but let's assume you can't hey you can just suck that thing out and as I said these are just serial input VFD drivers so we have the data on these we've got the pin outs we can just figure out where the input chain is - the serial thing and just drive them directly with our own micro or with our Arduino or whatever you want to use so you know you don't really have to reverse engineer this if you don't want to now check it out this is my first shot at an Arduino sketch here and I've just start basically put the letter H on the data line here and I haven't even got in there and set all the pins but by default because that pull-up resistor on there those are what I think are those for our control lines I've only done a pin number one on the Arduino there I've just said it low four times ever even I just uploaded it and look what I got tada I got lucky look um it looks like that pin one is some sort of test pin or something obviously when you pull it low when I first hooked up the Arduino powered it on it didn't do anything all I got was the cursor because that pin was being pulled high by that resistor network there but obviously when I pulled that pin one low look it's going into a test sequence where it just writes all the characters so that's not my Arduino sketch doing that that's the building processor in there actually got a test routine so bingo I found what one of the pins does pin one on my ID when I got to figure out which pin on there but anyway that is the test pin awesome sometimes you get lucky like that in fact in fact that probably should have been what it sort of was going to be my first step is to actually just start toggle each one of those pins low and high but I just download the sketch to make sure the Arduino worked and it was all hooked up to my Arduino and bang I got lucky Beauty so what I'll do is I'll just change that here from low to high and I'll recompile redownload that and we should see that actually stopped and bingo yep it stopped and now it's it's doing Louie look every yeah it was doing something funny the X the Arduino is pulsing a little lines etc etc so but look it's actually stopped updating that now and if I put that back low this is a crude way to do it of course you could you know have buttons or do do whatever but let's just download that again and the it's downloading the sketch doing silly stuff see it pulsate in there and bingo we're back to the scroll in test mode awesome where it prints out all the ASCII characters embedded in that thing fantastic so processor is definitely working as we suspected weird wood of course we got the cursor there and it's printing out the entire character said absolutely brilliant see I wouldn't have immediately guessed that one of those was a test line it's you know it's something that the designer may or may not have included it's not something that you'd first guess but sure enough it's hey the designer was thinking I need to test these things in production of course so hey what do you do have a pin just strap it low on there to test the modules in production of course a test routine like that built-in but yet we found it no worries it's pin number one on the Arduino whatever it goes to now I'll go in and not toggle the other pins and see what happens and like I said I expect another line to be say a data latch line or something like that so it's not latching any data at the moment it's just toggling that one pin bingo check it out I'm starting to right there and what I did there as I just started out like each pin I just start toggled low for a hundred milliseconds there and I finally got to the point where well pin three on the Arduino that's the thing that actually latched in the individual data so I should be able to get this to display anything I still don't know about the other pins I was just sort of randomly I tried setting them high first so I had all of the all of the control lines high and then I was totally in each one low and that didn't seem to work but it seems that if I keep them low they're all of them low and then toggle pin three high bingo that's the down latch pin just as I expected and of course I'm only putting in a H at the moment and yes it is an ASCII character because I put in at the top of the Arduino sketch I put in the binary representation on the data port pins over here for the uppercase H so which is us 72 decimal I think it is so there you go I should be now able to just produce any text I want on the screen so I know what the reset pin is we figured that out before we even hooked up the Arduino we now know what the test pin is we now know what the latch pin is still going to figure out what the other ones are but each time you enter in a data it just shifts the character to the next location that's pretty much how I expected that something like this to work it could be a really dumb display like there may be no like a control thing as I said where you can actually set the cursor location I don't know but at least I've got it up and running so I can clear the screen and display text that's the main thing that's basically working and of course you don't need an Arduino to experiment like this I could have just start wired on some dip switches or some table switches on to a panel and then just you know toggle all the switches until I until I got it to do something you know so and it whatever floats your boat and of course I was writing data to it very slowly before and by default I was pulsing the latch line like for a hundred milliseconds as I said like you start off really slow like that because you don't know on these unknown systems that you're trying to debug how fast or how capable they are I've actually processing those as I suspected an input latch so you start out something really slow you know like a hundred milliseconds something like that now I've dropped it down to ten milliseconds and it's still latching the data just fine you can push it and push it and push it until you find the limits if you want to actually you know push the speed limits of updating this thing but there it's just a display it doesn't matter but that is relevant to other things you try to debug though and by the way I still haven't figured out whether or not it's actually a load of high transition of that pin or hide a low I haven't figured out the polarity after you know play around with the code on a one-off basis to see when it actually updates but yet that's no problem and of course they just happen to guess the correct order of the bits like a for the data bus so what which was the least significant bit which was the most significant bit used a bit of intuition there in that it would be in a certain direction based on the layout and stuff like that if I actually figured out exactly what that chip is and you could have got it to be on an 8-bit data bus port most likely you can figure out that way but yeah I mean it would have been fairly obvious if I started writing in data in there which was sort of you know garbage but the same each time then I would have flipped the bits and and figured it out that way so it's not too hard I got relatively lucky based on an educated guess and how do I know if I've got the polarity of that clock penal wrong well I've written my out little string parsing routine here and I'll restart this thing and you'll see that here we go tada it's missing the H at the front so obviously the bits aren't toggled correctly so I've to get that first byte so it's fine to that so yeah I obviously got that clock pin it's not active low it looks like it clocks the data in on active high so I've changed that around and bingo there it is hello world hacked by the eevblog we got our H right at the start so that's how I knew I had those bits on the edge there back to front no worries so there you go I'm pretty happy with this that yet we basically hacked this thing and easily figured out the well it's some simple protocol here was just a parallel data input latched as I suspected it could have been much trickier than that but hey you know I I put the odds at like you know 80 90 percent pretty high that that's what it was going to be why because that's how I would have designed it now I've had a bit of a play around with the other control pins on here and I can't really get it to do anything obvious try it or various combinations and well yeah I don't think I want to spend too much time on it at the moment maybe if I had a really good use for this thing that I'd actually pursue that and figure out exactly what those are pins do they may do nothing it may just have that simple ability to what reset the cursor like that and just start wrap from the fortieth character over to the 41st and that's it so you know you could try and you know debug this thing until the cows come home to figure out what those extra pins do and they may do well and truly nothing so anyway I've got it to a usable point because you can always print a string of up 40 characters there even if you want you know just something here and then something here or something in the middle you can just do that in software so as it stands it's completely hacked completely usable so I'm very happy with that so I'll leave it at that so I hope you enjoyed that little reverse engineering slash hack video of getting a VFD up and running anyway the video has been much longer than I intended so there you go I will on too much I am the waffle master but anyway if you liked that please give it a big thumbs up because that helps a lot and if you want to discuss it jumping over the eevblog foreign live YouTube comments leave eevblog comm comments all that sort of stuff catch you next time you you
Info
Channel: EEVblog
Views: 293,885
Rating: 4.9535456 out of 5
Keywords: Vacuum Fluorescent Display, pcb, hacking, reverse engineering, how to, how it works, oscilloscope, vfd, arduino, arduino uno, arduino leonardo
Id: clUVEyi_YNM
Channel Id: undefined
Length: 35min 42sec (2142 seconds)
Published: Mon Feb 23 2015
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.