What would you say if the library offer a few methods to read something back from the display controller? Like a busy flag and address counter or a character at the specific column and row?
I have some specific case in my project where reading a character at specific column and row helped me a lot, so I can provide a solution for this. In my project I'm building a small HiFi system. It has a modular approach. The main segment is a preamplifier, amplifier, FM tuner, 4x20 LCD (I'm using new-liquidcrystal library to control it from I2C port expander), Arduino Uno, power supply and some input elements (like switches, potentiometers, and so on). I have a second segment which is a phonograph that is able to play the vinyl plates. It is 12V powered from the main segment. The LCD works fine until I switch on the phonograph. When I switch on the phonograph the motor starts to work and it consumes some power (or there is some power spike) and the LCD gets totally blank but it still response to 4-bit data sent with I2C mode. I need to call begin() again and upload once again my custom characters (it looks like they have been destroyed in the CGRAM) to make it work again. I know that this is more related to the power supply but I can check the character at the specific location and use it as a workaround to make a decision if I should reinit the display.