LCD not seen by i2c-scanner sketch

I always use a level shifter when interfacing any 3v MCU with these LCD backpack devices. The reason being is that the LCDs need 5v to get proper contrast and using 5v for VCC causes the on board PCF8574 to run at 5v which means it is using/expecting a 5v i2c bus that shouldn't be connected to a 3v MCU which is using/expecting a 3v i2c bus.

Also, some of these LCD backpacks have pullups on them and some don't.
So that can be a difference between devices.

Also, when they have onboard pullups they are pulled up to the VCC input voltage.
That is normally 5v. This is why I always run a level shifter.

As far as level shifters goes, I have seen two types.

One type has a 5v input on the high side, and the 3v on the low side is an output.
With these devices I hook up 5v input to the MCU 5v and leave the 3v output disconnected.
I prefer this type of level shifter.

The other type has two voltage inputs.
i.e. a 5v input and 3v input for this application.
This type of level shifter must be hooked up to 5v for the 5v side and 3v for the 3v side.

Using an UNO is not necessarily a good test as the AVR Wire library turns on the pullups on the SDA and SCL lines.
If the backpack does not have pullups on it, it will still usually work on the AVR even without external pullups.
But that same device will not work on most of the 3v MCUs since they typically don't have pullups on their boards so there will be no pullups on the SDA and SCL lines.

--- bill