Interfacing with IEE VFD...

Hello all,

I'm currently working on interfacing the arduino with an old VFD. Everything appears to be working smoothly (power, serial connection), but for some reason when I send commands to the VFD it either prints characters (other than what I sent) or simply displays "#".

I've simply been using the following code for testing:

int i;

void setup()
{
  beginSerial(19200);
}

void loop()
{ 
  delay(5000);
  Serial.print(14);
  //Serial.print("A");
  Serial.print(0x3E, BYTE);
  //for (i = 0; i < 30; i++) Serial.print(i, BYTE);
}

Nothing seems to work as it should.

The data sheet is at:
docs.bgmicro.com/pdf/acs1375.pdf

As far as I can tell, the data sheet indicates that I need to send the hex value "3E" to send it into self test mode - but when I try it just prints a "#"...

The jumpers on the VFD are set for the correct baud, and for serial mode - and I've confirmed that it's in working condition using my PC and LCDC. Any ideas on what I'm doing wrong?

Thanks!

for (i = 0; i < 30; i++) Serial.print(i, BYTE);

This just sends the ASCII characters 0 to 30, according to the data sheet these are user definable locations so I would be surprised if you saw anything predictable. What are you expecting?

Oh, the loop was just me playing around to see what would happen after "Serial.print(0x3E, BYTE);" failed to do what I wanted - I didn't expect to get much out of it.

I would expect that line to do one of two things - either put the VFD into self test mode (as listed in the control codes on page 26) or print the character ">" (as per the default character set). Instead, it just prints "#".

Even beyond what gets printed on the display, how can 0x3E be both the ">" and a control code? And simply attempting to print ascii text with Serial.print doesn't seem to get me anything but random characters and "#"s either.

Okay - I've done some more testing, including changing the baud rate, just to be sure.

Still nothing.

Based on my limited knowledge, I'm starting to get the sense that it's some kind of timing issue - which would explain why there isn't an 1-1 correlation between the characters I send and what is displayed on the screen.

Is there any way to adjust the timing?

Assuming my baud is set correctly, "Serial.print(0x3E, BYTE);" should be doing something other than displaying "#", right?

With the following code:

void setup()
{
  beginSerial(9600);
}

void loop()
{ 
  Serial.print(0x3E, BYTE);
}

I get a series of triangular characters on the screen - specifically 0x83, according to the ASCII character set in the data sheet.

Converting to binary:
0x3E = 00111110
0x83 = 10000011

Hmm...

I think I've got it - for anyone following this...

The VFD needs RS232 - not TTL.

OK, you might like to look up a chip called the MAX232, made by Maxim.