This is my attempt to replace the old PCF8574 or MCP23008 -based I2C to LCD adapters. The MCP23008 requires a ridiculous amount of I2C data to be written to output a character. PCF8574 based adapter is better but still requires 4 bytes for each character. This is not a problem with devices with fast I2C mastering capabilities but when, for example, bitbanging I2C with a slow CPU - this becomes quite slow.
In this adapter - the Atmel 328p is acting as a I2C slave and controls HD44780 based LCD via 4-bit interface.
Additionally I've added controlling the backlight which can also be put to "breathing" -mode via 328p PWM so, it does not load CPU of I2C master.
KiCad PCB files can be found here:
https://github.com/voutti/board_fast_lcd
Firmware for the board as well as an example C (oscar64) lib + test app for Commodore 64 (user port or cassette port) can be downloaded here:
https://github.com/voutti/fast_lcd