1.3" OLED Module White and Blue Not Displaying Anything but Returning the I2C Address

I have purchased this “1.3" OLED Module White and Blue Color 128X64”. But it is not turning on and not showing any sign on the display at all. Now I don’t think it’s completely damaged, as I2C scanner code is returning the address back as 0x3C. Unfortunately it is not displaying anything.

I am aware of this product has the SH1106 chip. So I did use appropriate libraries to test such as Adafruit_SH1106.h, Adafruit_SH110X.h, U8glib.h as well as U8g2lib.h. Also I have tested tested the soldering points and jumper wire connections too. Lastly I have tried adding 10K resistance on both SDA and SCL pins with 5V of Arduino. But no luck. Is there anything can be done?

Fyi, This cheap display doesn't have any SMD resistor on the back to change addresses as I have seen in my other threads.

Device sale page: https://www.aliexpress.com/item/32713935448.html

At the outset I have no experience or knowledge of this display module...but one that I had replaced in my hand held oscilloscope (and used the same driver chip as the scope's original display) did not seem to display anything on connecting. It was a LCD unit though. Hope this is of some help...

Turned out that the original board (along with the mainboard) had a different way of providing the voltage to its brightness (or was it contrast) pin. I looked at the display board's datasheet and worked out a simple voltage divider scheme to get that voltage for the replacement display. Also, the original display did not have any backlight but the replacement unit had that...so it was a simple matter of providing the required voltage to it.

How did I know that its not broken but an power/voltage issue? View the display at an angle (not facing it) then power on/off or send data to it. There should be some very faded or dim display...

Have you tried using
#include <Adafruit_SSD1306.h>
That is what I always use for these OLED displays.

Ahem. :roll_eyes:

The OP is talking about an OLED. :grin:

Yes - that is why the disclaimer at the beginning of my reply :slightly_smiling_face:

Just to clarify...the one that I had replaced was a LCD unit. Not sure how it is with LED or OLED displays - I'd reckon they too need some sort of brightness control.

I've edited my earlier post to call this out...

Please post a link to the actual display that you have bought. e.g. Ebay sale page.

We need to see the pcb in order to identify your display. Either from your photo or (preferably) a photo on the sale page.

This means that we can give accurate advice instead of random guesswork.

David.

Well, (O)LED displays do not have a "backlight" and the brightness of the pixels is according to the data controlling them, nothing to do with a hardware connection or variable. How else could they operate?

OLED controller chips determine brightness and contrast.
You set the appropriate registers.

None of this is relevant. Until we have identified the actual display.

Oh, and rohitbd was writing about an LCD anyway. You don't need a backlight on a transreflective LCD (in daylight). You always need some form of backlight on a transmissive type. And it tends to be dumb.

David.

As he later clarified. But the OP was not. :grin:

Hi, I have added the device sale page link in the post. Please have a look.

Yes. I have mentioned all those libraries I have tested with. I did test with SSD libraries too, but as the chip is different in this display, I thought it's irrelevant to mention those.

Thanks for the link. The controller is almost certainly SH1106.
There is no voltage regulator. So you should connect VCC pin to 3.3V on your Arduino.

I suggest that you install U8g2lib via IDE Library Manager and use this constructor:

U8G2_SH1106_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

Run all the examples.

Please report back with a clear description of what you are using.
It is not helpful to just "mention" random libraries.

David.

And also have level shifters on the I2C lines if you are using this on a 5V Arduino. Otherwise use external pull up resistors to 3V3 and in software immediately after the I2C begin use a pinMode call on both pins set just as INPUT.

Something you are specificity requested not to do.
You may want to read this before you proceed:-
how to get the best out of this forum

Please DO NOT hijack threads. In this case you have confused other members about what problem they are trying to answer.

I am connecting this to an arduino nano 3V3 to vcc. I have used this constructor for u8g2 and 3,4 examples from full_buffer as well as page_buffer. But no luck.

I don't have a level shifter with me right now. As arduino nano is 5V, I also think 3V3 and 5V logic incapability could be the reason. I will buy one and get back with the result. But is there any chances that I have already damaged the chip by feeding it 5V?

Sadly yes, but it is not certain, I have known OLED displays survive this sort of thing but I haven't used such a basic model of display. I wouldn't bin the device until you have something working.

You could always try the second option for a solution I outlined. If you have any questions about this then please ask. From the resistors on the back of your display it looks like there are already 10K pullup resistors on the board so you don't need external ones. Although two lots of 10K only give you 5K and 1.8K is the design value for a 3V3 system.

You can't use full_buffer examples on a page_buffer constructor,
However you can use page_buffer examples on all constructors.

Your module has onboard pullups. They should be fine unless you have excessive stray capacitance on the bus.
In an ideal world there would never be any 5V GPIO Arduinos.
The SSD1306 and SH1106 datasheets do not permit 5V logic.
In practice they both appear to be input voltage tolerant.

I would not give up hope yet. But your cavalier approach to wiring, libraries, testing, ... might have damaged the controller.

David.

Oh dear! I do that all the time when suggesting modules people need. :thinking:

No, you should not use pinMode(). SDA, SCL should be controlled by the hardware TWI peripheral.

Please explain. A link to the sale page is the best way to document the actual item that you have bought.
It enables readers to identify the display and offer accurate advice.

Yes, it might be bad publicity for a shop with a faulty product.
But 9 times out of 10 readers can solve the OP's problem (which helps others and shows the product was ok)

David.

Can you explain why not.

Nothing wrong with supplying the link. It is doing it to the first post because it makes posters who ask for links look stupid because they are in the first link. So it disrupts the flow of the dialogue.

Now I am really confused !

A question solved with the first reply might make a short thread.
But it makes a happy punter.

David.