Wemos D1 mini + Luxorparts OLED (SSD1306, I2C) not working

I’m trying to use an OLED screen with my Wemos D1 mini but nothing I try is working. I’ve tried all examples I can find on Google but non of them will make the screen even give a little sign of life.
I’ve also tried an I2C scanner which only says that no devices could be found.

I’ve tried different addresses, the default 0x3C and both printed addresses on the screen, 0x7A and 0x78 without any luck. But since the I2C scanner isn’t finding it, I assume the address is a later problem.

But let’s start from the beginning, have I connected everything correctly?
VCC → 3V3
SCL → D2
SDA → D1

First off. Choose intuitive colours for your jumper wires. e.g. Red for +ve, Black for GND.

According to the first Google image for "Wemos D1 pinout" it says D1 = SCL, D2 = SDA. According to your photo, Slave = 0x78 (8-bit). Arduino uses 7-bit Slave addresses i.e. 0x3C

The device controller is either SSD1306 or SH1106. Try both constructors with the u8g2 library demo.

When you have found the correct constructor, Run all the examples to gain familiarity with what the library can do.

Only at this stage would you try to write your own code. i.e. 1. verify hardware 2. verify library 3. attempt your software.

We have all been there. Pull out all your hair before realising a wire was wrong in (1)


Thanks for the reply!

You are probably right about D1 and D2, even though I've tried to switch them earlier without any luck. But I'm going with D1 = SCL and D2 = SDA.

I've tried the u8g2 HelloWorld example with different settings, with both SSD1306 and SH1106. Nothing happens.

I just found a thread here with the same display, bought from the same store: https://forum.arduino.cc/index.php?topic=508303.msg3464959 I've tried the constructors in that thread, still nothing.

It's working now! The display can handle 3.3V and 5V so I tried to connect VCC to 5V and voilà! It worked!