Hello,
I have soldered the I2C with a typical 16x2 LCD display and I have this problem that it always shows squares.
I am not sure why it happens, but here is the code
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// Initialize the LCD
lcd.init();
// Turn on the backlight
lcd.backlight();
// Clear the display
lcd.clear();
// Set the cursor to column 0, line 0
lcd.setCursor(0, 0);
// Print a message to the LCD
lcd.print("Hello, World!");
// Set the cursor to column 0, line 1
lcd.setCursor(0, 1);
// Print a second message
lcd.print("I2C Tutorial");
}
void loop() {
// Main loop does nothing
}
Take a look at the product page you have postet - they show a decent and consistent soldering.
The solder points should shine, solder should be on both side of the mounting hole.
E and D0 seem to be shorted on your picture.
Redo your soldering.