ESP32 liquid crystal I2C

I've been using an I2C liquid crystal library for a while now (one I found on GitHub) and I've faced a lot of compatibility issues when using an Arduino Nano ESP32-S3 and an I2C backpack module.

Does anyone have experience with using I2C and the ESP32 and can recommend a new library for me to try? The one I'm currently using seems to be the root cause of a lot of my code issues, which can be difficult to diagnose. Thank you

can you give a link to the LCD display and ESP32 you are using?
post your code (using code tags</>)?

this works with the display in the photo

// ESP32  20*4 Blue LCD

//YWROBOT
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 20, 4);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup() {
  Serial.begin(115200);
  delay(3000);
  Serial.println("ESP32 LCD test");
  lcd.init();  // initialize the lcd
  lcd.init();
  // Print a message to the LCD.
  for (int i = 0; i < 3; i++) {
    lcd.backlight();
    delay(250);
    lcd.noBacklight();
    delay(250);
  }
  lcd.backlight();  // finish with backlight on

  lcd.setCursor(1, 0);
  lcd.print("ESP32 Hello, world!");
  lcd.setCursor(2, 1);
  lcd.print("Ywrobot Arduino!");
  lcd.setCursor(0, 2);
  lcd.print("Arduino LCM IIC 2004");
  lcd.setCursor(2, 3);
  lcd.print("Power By Ec-yuan!");
}


void loop() {
    // when characters arrive over the serial port...
    if (Serial.available()) {
      // wait a bit for the entire message to arrive
      delay(100);
      // clear the screen
      lcd.clear();
      // read all the available characters
      while (Serial.available() > 0) {
        char ch=Serial.read();
        // display each character to the LCD
        if(ch >= ' ') lcd.write(ch);
      }
    }
}

using an ESP32 GPIO21 SDA and GPIO22 SCL

Even a direct link to the library used could help us much more...

There are several more.

Hello. What I think you mean is that the avr architecture (for arduino boards) doesn´t allow to run correctly the library on the esp32, which is a different architecture. Probably a message like this might appear to you while compiling:

It is in spanish, but what it means is that the avr architecture of the I2C Liquid Crystal library is not compatible with the esp32 architecture and might have some problems while running. It will compile, but there can be some unexpected problems, what I recommend you is:
a) Use a different screen
b)Find a different library

I´m not an expert and I don't have the best english but hopefully this answer can help you

<LiquidCrystal_I2C.h>
If you have compiler warnings switched on, you do see a number of messages concerning at least the use of the binary marker B (example B00100110), which appears now to be deprecated, with some of tool chains for the newer ESP32 microcontrollers.