Yet another LiquidCrystal_I2C library

enjoyneering:
As I mentioned, the library can work with custom i2c shields.

LiquidCrystal_I2C lcd(PCF8574_ADDR_A21_A11_A01, 4, 5, 6, 16, 11, 12, 13, 14, POSITIVE);

Where LCD pin no.4 connected to PCF8574 port P0 (pin 4), LCD pin no.5 connected to PCF8574 port P1 (pin 5),
LCD pin no.6 connected to PCF8574 port P2 (pin 6), LCD pin no.16 connected to PCF8574 port P3 (pin 7) and etc

for example if for some reason the LCD pin no.4 connected to PCF8574 port P7 (pin 12) and LCD pin no.14 connected to PCF8574 port P0 (pin 4). Your initialization string will be:

LiquidCrystal_I2C lcd(PCF8574_ADDR_A21_A11_A01, 14, 5, 6, 16, 11, 12, 13, 4, POSITIVE);

The library was almost finished a while ago, the real trick for me was to make it work with any custom shields.

I do not use shields, however, I was under the impression that shield is an hardware interface to processor board hence the LCD I2C shield connection is the I2C - two wire interface - if you prefer to call it that way.
So I2C LCD shield hardware should be concerned only with the I2C interface pins.

The hardware interface between PCF8574 and the LCD itself , or customization, is just a matter of passing correct parameters to the class constructor.
Jim