Howdy,

I am having a perplexing issue where I can get an I2C LCD to partially work with my Teensy 4.1 with LiquidCrystal_I2C. The LCD has an I2C 'backpack' board which is connected to 3.3V, GND, and SDA & SCL (pins 18 & 19) on the Teensy. The LCD responds to lcd.setBacklight(); but not to lcd.print()

Here is my code:

Code:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 8, 2);

void setup() {
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("setup");
}

void loop() {
  lcd.setBacklight(1);
  delay(1000);
  lcd.setBacklight(0);
  delay(1000);
  lcd.print("loop");
}
What is weirding me out is that the LCD backlight blinks as expected, it just doesn't want to print. So I assume I2C is working or at least mostly working...

I have tried (to no effect):
  • two different I2C LCD modules (a 16x2 and 8x2). Both modules work with Arduino Uno so it's not LCD contrast or faulty LCDs.
  • adding 2.2k ohm pullup resistors on SDA & SCL (pins 18 & 19) to 3.3V However, the LCD's I2C backpack datasheet listed it as 3.3V compatible (in addition to 5V) without indicating pullup resistors are required.
  • I tried one or two alternative LCD libraries with no luck (don't remember which ones, should've written it down)


Any suggestions?