Noritake itron VFD to LCD Smartie

I have here a Noritake VFD Display number GU140X16G-7003 module that I would like to get running on LCD Smartie. What I have done so far is come up with some code from some other bits of code and I have it displaying something from Smartie but I'm having some trouble getting it working correctly.

I have it running in LCD Smartie via the Matrix.dll display driver. I have it as a 2x20 Character display but it seems like the display thinks it is a 1x40 instead and also cannot find home position at all. Upon resetting the display it will start up in a strange state after the splash message appears that I have written into the code. The strange state is that the "Home" position is completely random. If anyone can give this a look over for me and tell me what I've done wrong here that would be greatly appreciated. Mind you, I am getting data on the display from LCD Smartie, just not desirable like a normal HD44780 2x20 would behave.

Noritake_to_Smartie.ino (8.62 KB)

the example code specifies column x rows (i.e. lcd.begin(16, 2))

   lcd.begin(2, 20);

gcjr:
the example code specifies column x rows (i.e. lcd.begin(16, 2))

   lcd.begin(2, 20);

I just swapped them around and I'm getting the same results :frowning:

also in the vfd.begin section was, in the original code,

vfd.begin(140, 16);

and I changed it also to

vfd.begin(20, 2);

With the same results. I'm not sure if there is a command handler missing or something, this is the bit I'm stuck on. At the end of the day, this is like three codes kind of smashed together to get something to kind of work which surprised me when I actually got data from LCD Smartie to come on to the display, but dissapointed when the lines were mixed.

I have added a bit more to the sketch now. I think I may have it to where it will home every time now. I'm still having the problem with it not acting like a 2x20 display though! Any thoughts?

Noritake_to_Smartie.ino (9.51 KB)

i would find some example code for the LCD library you're using and in a separate sketch figure out how to use it properly for the device you're using.

I did. I have a whole demo library that I used to make the sketch you see here.

here's the hello world example

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis() / 1000);
}

gcjr:
here's the hello world example

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis() / 1000);
}

Yes I understand that. Don't let the liquid crystal stuff fool you in the code. It is only there for the code to actually compile.