Uno R3 + LCM1602 IIC V1 = not detected by scanner


as the title says, I have:

  1. Arduino Uno R3
  2. LCM1602 IIC V1, soldered like this: VCC -> 5V, GND -> GND, SDA -> A4, SCL -> A5
  3. Also a BH1750 light sensor soldered the same way

LCD was not working (squares not replaced with text), so I tried this scanner:

Here are results:

  1. If both are connected, it hangs on the first Wire.endTransmission();
  2. If only LCD is connected, same thing happens
  3. If only BH1750 is connected, it detects its 0x23 address correctly

Also, if you leave three cables soldered to LCD - VCC, GND and SDA - the scanner doesn't hang. It hangs if you leave only VCC, GND and SCL. There's 0 voltage on empty SDA and ~1 on SCL.

What could this mean? I see no short circuit (if there was one, which one is the most likely one?), could the LCD be just broken? Or do I need resistance somewhere?

Sounds like an issue with the SCL signal.
It could be that there is a short to ground in which may cause the master think the slave is doing infinite clock stretching which will cause the master to wait. (Seems like it should eventually timeout but perhaps it isn't).
Or it could b something else.
Can you post some photos of your LCD with backpack so we can take a look at it and inspect the board and the soldering?

My hd44780 library includes a diagnostic test sketch that you could run when the LCD is connected and see what it can determine about the SCL and SDA signals.
hd44780can be installed using the IDE library manager.
You can read more about it here: GitHub - duinoWitchery/hd44780: Extensible hd44780 LCD library

The i/o class for LCD backpacks is hd44780_I2Cexp and the diagnostic sketch is called I2CexpDiag.

--- bill

Thanks for your reply, it was a faulty soldering between the I2C module and LCD, I used another LCD I bought and it worked.