Any advice on getting salvaged VFD (Samsung 20T201DA2) to work?

Hi all,

I recently salvaged this 20x2 VFD from an HP DesignJet 7550M (a large format printer). I'd love to use it for other projects, but I can't any datasheets on it. I can't really find much at all.

Here it is:

I found great info on the Samsung 20T202DA2JA, which Adafruit used to sell. However, that VFD uses an NEC D16314 controller chip, and the one I have doesn't. Should this data still work? I'm no serial communication expert, but I figured the registers would be way off and the code wouldn't carry over.

I found a datasheet for the Toshiba TD62C950RF chips on the board - they are shift registers. Is that the info I need to get these things working?

I couldn't find any info on the other major chip on the board, the Samsung 9704-20T201. I figured that's the datasheet I need.

Can anyone provide direction on how to go about getting this thing to work? Any guidance would be much appreciated.

Thanks!

-Barak

I am having the exact same problem!

In a forum I found the following pinout and marked the pins which I found out to be correct after inspecting the PCB:
1: Vcc -- confirmed
2: Clock
3: GND -- confirmed
4: Data
5: Reset
-- from circuitonline.net (3rd post)

After connecting only VCC to 5v and GND the display showed random characters, I think they are picked up by signal pins from the air (?). But when I try it again now, it doesn't show anything!

Here is the circuit from the back:

(by the user fgabi on here)

OK, so you have two high voltage shift registers and a microprocessor.

The fact that is has a custom microprocessor means that the interface could be anything - though it just might be I2C.

Try hooking it up to the I2Cscanner sketch.

Make sure your 5V power supply can supply plenty of current. At least an amp or two.

Try holding the reset pin both high and low.

I measured how much current it drew: 500mA. I'll try the I2Cscanner tomorrow.
Thank you for that idea!

UPDATE:
No, no I2C interface. But while scanning, random characters showed up like before. So essentially it is working.
The other option is a SPI-like interface, but is there a way to figure out the commands?

Hi

Yes only to aware 120 days old this post I know, but then i think the information wasnt available Its is now thanks to the kind co operation of a company today Im also looking at these to see how to implement Im happy to say here is that datasheet for anyone with continued interest

See upload for datasheet

2013-0304-VFD-20T201DA2_Rev1.pdf (277 KB)

After SPI and ShiftOut only produced garbage and then bitbanging it (getting the timing right is essential!):

Video:www.youtube.com/watch?v=xgrLAmSUyys

(not all functions are implemented)

//1   VCC
//2   CLK
//3   GND
//4   DATA
//5   RESET

const int RST = 2;   // -> RESET
const int DATA = 11; // -> DATA
const int CLK = 12;  // -> CLOCK

void setup() {
  Serial.begin(115200);
  pinMode(RST, OUTPUT);
  pinMode(DATA, OUTPUT);
  pinMode(CLK, OUTPUT);
  digitalWrite(CLK, HIGH);
  reset();
  clearDisplay();
  writeText("    Thank You!");
}


void write(byte data) {
  for (int i = 0; i < 8; i++) {
    digitalWrite(DATA, (data >> 7 - i) & 0b00000001);
    delayMicroseconds(6);
    digitalWrite(CLK, LOW);
    delayMicroseconds(4);
    digitalWrite(CLK, HIGH);
    delayMicroseconds(8);
  }
  delayMicroseconds(40);
}

void reset() {
  digitalWrite(RST, HIGH);
  delay(1);
  digitalWrite(RST, LOW);
  delay(4);
  Serial.println("reset");
}

void clearDisplay() {
  write(0x01);
  Serial.println("cleared");
}

void writeText(String text) {
  byte data[text.length()];
  for (int i = 0; i < text.length(); i++) {
    char c = text.charAt(i);
    data[i] = (c >= 0x20) ? c : 0x20;
  }
  for (int i = 0; i < text.length(); i++) {
    write(data[i]);
  }
}
int i = 0;

void loop() {
  if (Serial.available())
  {
    String s = Serial.readStringUntil('\n');
    if (s.equals("CD")) clearDisplay();
    else if (s.equals("RES")) reset();
    else {
      writeText(s);
      Serial.println(s);
    }
  }
}