LCD 16x2 3.3V - Can only write to the 0,0 cursor position

Hello All,

I’ve got one of these LCDs from SparkFun: Basic 16x2 Character LCD - Red on Black 3.3V - LCD-09051 - SparkFun Electronics

I’ve got it wired up to a mega in the following manner:
RS → 44
RW → gnd
Enable → 42
D4 → 46
D5 → 48
D6 → 50
D7 → 52

When I try the following sketch, everything works well:

#include <LiquidCrystal.h>
LiquidCrystal lcd(44,42,46,48,50,52);
void setup() {
  lcd.begin(16, 2);
  lcd.setCursor(0,0);
  lcd.print("1");
}

void loop() {
}

and it prints a 1 at Col 0 and Row 0,

However if I change the cursor position to (0,1), it still prints at 0,0.

If I change the cursor position to (1,0) it fills ever pixel at 0,0

If I change the cursor position to (1, 5) it does the same.

Any thoughts?

Cheers.

What happens when you try to display strings instead of a single character?

#include <LiquidCrystal.h>

//LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);      // put your pin numbers here

void setup()
  {
  lcd.begin(16, 2);                          // put your LCD parameters here
  lcd.print("hello, world!");
  lcd.setCursor(0,1)
  lcd.print("it works!");
  }

void loop()
  {
  }

Don