Probably some of you are struggling in finding a proper LCD driver that would work on any circuit. Just wanted to point out that I found some time to improve my current LCD library so it would support a mixed pin connection case. Earlier you had to connect LCD in a pretty strict way where pins had to be aligned and attached to single AVR port. Sometimes this can’t be done due to various reasons – you want to use those pins for other alternative functions, or you want to trace your PCB better, etc.
In this updated version of library there are two more modes added: LCD_4BIT_M and LCD_8BIT_M that allow controlling LCDs either in 4 or 8-bit mode but with any pin connection layout. So data pins and control pins can be connected to any PIN and any port. Couple examples should give some clue on how to start using it. If you used this library for some project, you only need to modify header file while project source code can remain the same. Download LCD library here.