Convert a Parallel LCD to I2C

In this project we convert a common parallel LCD to I2C and add 8 input buttons, all using just 2 ports (a4/a5) on the arduino. We used a 16 port MCP23017 i2c chip, which allows 16 inputs, 16 outputs, or 8 of each.

The connections between the Hitachi type parallel LCD (2 or 4 line) and the MCP23017 are shown in the photo.

SDA (pin 13 on the MCP23017) connects to Arduino A4, and SCL (pin 12) connects to Arduino A5. Some suggest 4.7k pull up resistors (pin 13 to +5v and pin 12 to +5v) but this project works fine without them.

Notice the 220 Ohm resistor on the LCD k (cathode, gnd) connection. This is a MUST!

sspence65,

Very intrigued by your work here. Would this approach also work interfacing with a TFT's parallel connection? For example, piggy-backing with MCUFriend's driver for the ST7789?