I2C driver for New Haven LCD display

The example codeshare driver has great abstraction of the primitives. I’d use that driver, and change the initialisation to reflect what you need (but honestly, they are probably compatible and you only need change the number of lines and characters in the macro definitions). Sure, while you’re testing it’s good to write your own simple code…

The example init does a number of transactions at once (no call to delay between) so why don’t you create a single transaction for them: I2C_out(0x14); I2C_out(0x78); I2C_out(0x5E); I2C_out(0x6D); I2C_out(0x0C); I2C_out(0x01); I2C_out(0x06);

I actually think you need to go back to the fundamentals - if your first transaction fails, that’s a sign of wrong address (no response from device) or a wiring issue. Yes, that could be caused by a short and failure.

I helped with the testing of the eeprom since I had one - send me a display and I’ll test it for you, as I don’t have anything that’s even similar.