New LiquidCrystal library - LCD library

I've been using the standard LiquidCrystal library to a while with both LCD shields (DFRobot) and standalone LCD, both in 4 bit mode. These are 16 x 2 displays.

I have just received some I2C backpacks to convert these to I2C.

My first thought was to move to the New LiquidCrystal Library as it uses all the same Classes and Methods but supports different interface methods, including I2C.

When looking to set it up I noticed there is no option to set the data line connections, as there is with the stabard parallel constructor. Also it wants a #define for the backlight pin, where my backpacks control backlight through the I2C chip (PCF8574).

I finally got it working with a standard LiquidCrystal_I2C library from the main Arsuino site, which controls the hackling with a setBacklight() call, rather than needing a separate Arduino pin to do so.

There appears to be two different LiquidCrystal_I2C libraries, one which controls the backlight through I2C and the other that requires backlight control via a separate Arduino pin. The I2C implementation in New LiquidCrystal Library seems to be based on the latter.

For full backwards compatibility it would need to support both methods and also have the flexibility to define whether backlight is on a pin or I2C (and which expanded bit) plus able to define the expanded bits for the other LCD lines.

Another really good idea for flexibility would be to have an optional declaration for contrast, leave it hardware via a trimmer or control in software via PWM/Analog pin.

I see that the I2C pin configuration is planned for v1.13.

Of course, if I'm missing something here and it already does the above then I welcome any pointers in the right direction.

Many thanks.