# Analyze protocol used for Futaba VFD display, 3 data pins

I take apart a Samsung SMT-C7140 HD Unit (made obsolete by cable company, a shame) and found a nice display that I could probably reuse. It is a Futaba GL07-00006A (13-BT-246GINK). I tried to find the service manual of the Samsung unit, tried to find a datasheet of the Futaba display, however no luck.

So I started to analyse the connections of the front-panel/display and figured out that It could be possible to reuse the whole front-panel, inverter is also on the panel. The Futaba has no external driver (no chip underneath the display or on the motherboard) so I thought it might be a Chip on Glass (COG) display (because of less pins on the display), I think I am right however they call it Chip IN Glass (CIG). After figured out the pinouts (see pictures below this question), solder a header and connect an Logic Analyzer to it.

The 4 data pins on the Futaba are directly available on the flat cable connector. There are a few microcontrollers on the board and a main processor. After reading the pins with analyzer, I see something like this:

You can download the captures in a zip, did several sessions, available in Saleae Logic file format, PulseView and in VCD file format.

Tried several standard protocols and I2C gave some result on CH0 and CH1 but that seems a bit weird because of the extra two data channels (some clock or enable sequences). Also tried SPI (could be possible because of 4 data lines) however many errors or no result.

Question:

Does anybody recognize the patterns or protocol used to steer this display? Does anyone know what kind of driver is inside this display?

(image removed, see update below)

Update 04042020 (<-funny date!)

It would be nice that there was a tool to record and playback the (boot-)sequence to be sure that everything is properly connected after changes to configuration are made. Something like an audio wave player, a TTL 'wave' player. Without it is really hard to do because a mistake is easily made. When it isn't working, it could be the used protocol or the connections. It can make you quite insecure because you don't know exactly how it must perform exactly.

I have tried to hook a microcontroller (after cover the datalines on the ribbon cable) to the datalines (there are only 3 and not 4, one of them seems to be power +5V - see also updated 'schematic' below) and share ground to try some software that implement similar devices and their protocol.

Did not find any official Futaba examples, elsewhere or on the outdated looking website of Futaba itself. After register and login there are an impressive ammount of datasheets however no way to search for characteristics. Also in the datasheets there are no examples, just specifications, lack of details "how to do it" is enormous.

Came across this Noritake source and after browse their catalog of products. They provide some libraries for AVR and tried most of them. The code is..... not a beauty, sense of taste I quess. Also found "Newhaven display" and allot of other similar stuff such as Adafruit. The all do similar techniques, copy schematics and such. The most interesting I found was a datasheet of PrinceTon technology (PT6314), that looks very similar however different ONLY to the Futaba datasheet (and they provide examples in their datasheet):

[

The major difference is difference in rising and falling edge. However, I still don't know if this is the correct protocol to use. So yeah, they made it really hard to be able to reuse some stuff.

I tried a lot of things right now to safe the display will end up the landfill however have some doubts I will find the right solution. So for now, I will stop this journey (unless there is a real solution) and leave the information here maybe for future use. In hope that manufactures start to label (connections of or privide a datasheet (with examples or code) of) non-critical components of their short-life products to be able to reuse instead of throwing away.

Updated image/schematic:

• Maybe the synchronous serial mode of LCD emulation though the strobe looks inverted. Apr 1, 2020 at 23:16
• @SpehroPefhany Hi Thanks, take a look at it! Apr 1, 2020 at 23:18
• @SpehroPefhany Again, thanks. It was a real rollercoaster of info, searching and trying, see also update at question. Apr 4, 2020 at 4:59
• from a first look signal 0 seems to be data, signal 1 the "clock", signal 2 some kind of frame or control pulse and signal 3 seems like a clr/reset. What puzzels me is sometimes its 8 or 16 bits between 2 frame pulses, sometimes other numbers like 5. Going to take another look after some sleep Aug 25, 2020 at 23:14

The controller inside this VFD tube is a Princeton PT6301. It features internal character memory (2x20), 2x20 icon memory, ASCII character ROM, user defined char RAM, drivers and multiplexers for the VFD. The interface is Data (LSB first), Clk, /CS and /Reset. Checkout the datasheet for the command set.

The logic analyser trace matches the 12 char ASCII text shown on the display (eg NPO 1 HD). The string is preceded by several config/initialisation commands and followed by a 13th char to show the symbols for Dolby, email etc. That final char is one of the user defined chars that was defined as part of the config/initialisation to activate the correct segment (eg HD).

Note that your pinout diagram of the connector and the VFD tube above has some errors! Pins on the VFD (starting from the right side of your picture) should be: GND1, GND2, +35V DC (switched), 5V DC supply, OSC pin (RC network between 5V and GND), /RST, /CS, CLK, DAT, NC, NC

The 35V DC is generated on the PCB by a DC/DC converter. The 35V generator, the 5V supply and the filament supply are all enabled by Pin 3 on the external connector.

You can find a lib and example code for this display on mbed: https://os.mbed.com/users/wim/code/PT6301/wiki/Homepage

• Hi, thanks for the nice answer after all this time! Allright, that seems to be plausible however at this time I have no time to try it. Will be continued, thanks again! May 11, 2021 at 3:45
• Bill - Hi, In comments on your (now deleted) other answer, I have explained why your attempted edit was correctly rejected by reviewers, and what you can do differently to prevent that problem in future. I moved that other answer back into this answer, as you tried to do. If you can't see those comments, or if you have questions about my explanation there, please leave a comment below this one starting with @SamGibson to notify me, and I will setup a chat room for that discussion. Thanks. Jun 16, 2021 at 23:42
• Bill - Hi, Just to be clear, is that your library and code which you linked on mbed in your answer? Thanks. Jun 17, 2021 at 0:29
• @Bill Hi Bill (or Wim?), that is awesome! You made this world a better place. Still not have the time to try it however you proved already this is the solution. Accept this as an answer. Many thanks! The only Nordic chipset I have is a BBC Microbit (as a gift on a maker faire). Maybe I will port it to another platform (downloaded the code already) and post the resullts on github. Cool, cannot wait to try it. I am very happy there is still a use for such beautiful and useful part of an abandoned product. I will post updates at this question if any. Can take a while or not, depends ;-) Jun 17, 2021 at 0:33

I designed in a 1x16 character VFD display into a product back in the early 1990s. Like this one it also came from Futaba. This was a 'bare' display with no driver chip as yours seems to be.

Driving the display helps if you consider that it resembles a multi-anode thermionic valve (vacuum tube), actually a multi anode, multi grid directly heated cathode triode, where anode current results in illumination of 1 segment of 1 character. Control of the segment displayed is by 16 grids.

There are 16 anodes brought out of the display, one for each character and 16 grids, one for each segment. A common filament is the negative side of the 'tube'. In your case with 2 lines of display, there will be some method of addressing line 1 or 2 I assume.

The software to drive it is simply a typical multiplexed character and segment arrangement.

Because the display uses 'odd' (i.e. not 5V logic) voltages to drive it, I used 2x8 bit latches driving the grids and 2x8 bit latches driving the anodes. Logic level to display level voltage translation was done with 32 'digital transistors' (integrated series base resistor).

I can tell you that the task is 'non-trivial' but rather rewarding. With luck I might even be able to find the microcontroller code used (written in PL/M 51 and very readable).

• If you have decided this answer is no longer correct for the situation of the actual question being asked (as hinted in your other posting on this page) you should edit or even delete it. Oct 6, 2020 at 3:08

That looks like some sort of SPI-like protocol, but probably not byte-based -- so the number of bits is not a multiple of 8.

You channel 0 is likely "data", channel 1 is "clock", channel 2 is "latch", and channel 3 is something like "reset" or "apply".

the next steps would be:

• Zoom on the data to figure out bits encoding -- is data latched on rising or falling clock? What's the clock and data state when you emit "latch" command?
• Decode bits (using spreadsheet or a simple script) so you can can get bit patterns and determine command length
• Program Arduino to emit the same signals and hook it up to device
• Try changing various bits to experiment!

For the inspiration, here is a very simple driver chip: MAX6921. It uses SPI protocol with 20-bit words. You can see how it uses 3 lines to load and apply the data.

Unfortunately your case might be a bit more complex -- as you you seem to have 5 "commands" of varying lengths. Something that I have seen before is a "command" + "data" format -- for example, you might have 3 bits of command and command-dependent data size. You will find out more once you decode your bits!