If the module is this one:
LCD1602 I2C Module
https://www.waveshare.com/wiki/LCD1602_I2C_Module
then it uses a AIP31068L instead of a PCF8574 connected to a HD44780. I guess most folks are more familiar with the latter. LCD1602 modules are pretty robust and there is a good chance the issue can be fixed via software. Based on my use of the latter in the past, here are two things to look at:
Often, LCD1602 libraries have a software reset function to reset the module to a known state at the start of the program. It's best to do a soft reset at program start. The soft reset sequence in the AIP31068L is similar to that of HD44780, so it should be easy to cook up or find such reset code if the library does not have one.
Second item is to check the delay timings used in the LCD1602 library. If the library uses timings based on a fosc of 270 khZ, that's only the typical spec. Min fosc is 190 kHz and often old HD44780 code is pretty generous with delay times to make sure the LCD module has ample time to execute.
E.g. The time for the chip to clear its display RAM is 1.53 ms typical. Scale that to a worst case fosc of 190 kHz -- I use 2.2 ms in my PIC code (5V PCF8574/HD44780) instead.
LCD1602 I2C Module
https://www.waveshare.com/wiki/LCD1602_I2C_Module
then it uses a AIP31068L instead of a PCF8574 connected to a HD44780. I guess most folks are more familiar with the latter. LCD1602 modules are pretty robust and there is a good chance the issue can be fixed via software. Based on my use of the latter in the past, here are two things to look at:
Often, LCD1602 libraries have a software reset function to reset the module to a known state at the start of the program. It's best to do a soft reset at program start. The soft reset sequence in the AIP31068L is similar to that of HD44780, so it should be easy to cook up or find such reset code if the library does not have one.
Second item is to check the delay timings used in the LCD1602 library. If the library uses timings based on a fosc of 270 khZ, that's only the typical spec. Min fosc is 190 kHz and often old HD44780 code is pretty generous with delay times to make sure the LCD module has ample time to execute.
E.g. The time for the chip to clear its display RAM is 1.53 ms typical. Scale that to a worst case fosc of 190 kHz -- I use 2.2 ms in my PIC code (5V PCF8574/HD44780) instead.
Statistics: Posted by katak255 — Fri Jun 13, 2025 12:53 am