Yet another LiquidCrystal_I2C library

Small suggestion - the "internal reset / initialization " , I may not be using same term as Hitachi doc does, is really done internally on power up. No software needed for that.

Hitachi calls it 'Initializing by Internal Reset Circuit' and it does indeed happen on power up. This is not a problem when the display is used as originally intended, as a clock display or as visual feedback to the operator of a printer or other device. In those cases:

  • the power supply design is part of the overall product design and it can be made to satisfy the requirements
  • the LCD is always powered up at the same time as whatever is controlling it, probably a microprocessor
    In our application neither of these applies:
  • the power supply is frequently an inexpensive wall wart or a computer USB port
  • and >>> the controlling microprocessor may be reset while the LCD controller keeps running <<<

So we can't rely on 'Initializing by Internal Reset Circuit'.

It has its own timing and the result is "all character bits " are on.

No - the display is left OFF, just as it is left OFF in the recommended 'Initializing by Instruction' flowcharts.

Most of the time when people are having problems only some of the character bits are on. These would be the ones that correspond to the first line of the memory (there are only two) and they are the upper row of a two row display, the first and third rows of a four row display, and the left half of most 16x1 displays (which are internally 8x2).

So the back-light is important.

The backlight has nothing to do with the LCD controller and is not mentioned in the Hitachi datasheet. Most displays didn't have a backlight in the digital stone age and those that did required a separate 100v+ power supply (I have some around here somewhere).

Granted it is very hard to see some current displays without a working backlight so that should be dealt with first.

Don