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.
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...
Yes - that is why the disclaimer at the beginning of my reply
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.
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.
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.
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.
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.
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)
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.