I'm working on a custom board for a 4 zone greenhouse heater using the Atmega2561. I can program the board just fine, but I cannot get the LCD working over the i2c bus.

This does not appear to be a software issue because I've successfully uploaded a basic i2c hello-world sketch which does work on the Arduino Uno, but the LCD is still not displaying any characters on this atmega2561 board.enter image description here

The LCD is at the bottom right, LCD1.

I've checked the i2c address is correct (for what it's worth), and the LCD works fine on various Arduinos that I have lying around. I have checked the contrast on the I2C backpack. I do have power to the LCD, but all I'm seeing is blocks on the screen. I've double checked that SCL on the LCD is routed to pin 25 / PDO and SDA is routed to pin 26 / PD1. I've got pull-up resistors on the I2C bus.

What am I missing?

edit: logic runs at 5v i2c backpack is PCF8574. The LCD is 20x04. schematics The code is generated by tcMenu - just working out how to paste this in.

  • \$\begingroup\$ At least the schematics are missing. Please add them in the question. And information about which LCD model it is. Or maybe you are not referring to the LCD but the I2C "backpack"? How do you power it and with what voltage? What voltage is your I2C bus and where is the code that uses it? \$\endgroup\$
    – Justme
    Commented Oct 15, 2023 at 21:05

1 Answer 1


You don't give enough details and the schematics are too blurry to be of any use.

But your LCD connector has data and clock swapped in regard to how at least a couple of PCF8574 I2C LCDs expect it.

You say they are not swapped but do double check that data and clock are not swapped.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.