I've updated the current LiquidCrystal library to support 40x4 displays (Seiko M4024) and 8-bit interface, while maintaining backward compatibility with the 4-bit interface and current 20/40 x 2 line displays. The update provides support for both 'enable' lines to be used with positional tracking managed within the library, and not in the application.
Unfortunately, I do not have either a 20x2 or a 20x4 display to verify that I didn't break things. Is there anyone willing to provide feedback on this?
Also, if the changes are acceptable to the community, how to I get them submitted for future releases?
Thanks for the pointer to this other version of the library.
I looked into the source for it, and it contains the same issues that the current library has relating to displays that have two controllers (Upper and Lower). The issue is lack of explicit initialization of the lower controller (E2 line) section when lcd.begin is called. Without initialization, the M4024 display glitches, resulting in 4th line write failures.
Having said that, the author(s) of the library you referred me to should be commended for the other features that they added, and particularly for their benchmarking studies.
While it would be nice to get the official Arduino LiquidCrystal library updated,
I think it will be much more likely that you can get your updates into either (or both) of these replacement
libraries.