Why my I2C OLED displays kept Failing ?

I have these:- https://www.waveshare.com/2.42inch-oled-module.htm#none; https://robu.in/product/waveshare-2-42inch-oled-display-modulec-128x64-resolution-spi-i2c-communication/

i have bought 5 oled displays (waveshare make). in which 2 of them are working fine. 3 of them died while testing. They even turn off by themselves while working. Testing conditions are :- BeagleBone Black using i2c interface, using Luma.oled python library, 3.3v power, soldered the pins that turnon i2c in back.

They work on the first time but they kept failing one after another, failing me they arent even responding in i2cdetect (to check address). how can i increasing the life of these displays. maximum screen on time i used them is 30 mins with 10s screen rotation. not using any pullup simply just DIN and CLK

do you have the RST pulled low or just floating ?
also, are you pulling the DC pin low/high or just leaving it float ?
The DC pin can be used to change the I2C address: Set Low, the 7-bit I2C address is 0x3C; Set High, the I2C address is 0x3D.

1 Like

Whatever you do, you should not let any pin float.

Make sure you follow the wiring suggested on your linked page.

Unless you have been royally screwed by these robu.in people,
the only other reason for any electronic to die this fast is if you’re powering it wrong.

I don’t think you are though…

Just out of curiosity, what board and what pins are you using?


Sir can you please elaborate
This settings got it running, they fail after working for a day or two. I have purpose for running 24x7.
Since using i2c interface i only use scl and sda and not bothering with other other wires (im still a noob). 3D address is confirm i have used it before. When using i2cdetect it is not showing anything 3c/3d nothing!
Oh, and the oled is using ssd1309 driver.

I would connect the RST pin to a GPIO pin, or maybe the SYS_RESET pin on P9. A GPIO pin would be best as you can then reset the display at any time and also guarantee that you give it a long enough low pulse, which SYS_ReSET might not do.

The module requires a reset pulse to initialise itself and just leaving it unconnected is probably the main reason you can not get the display to work or only work sometimes/briefly

I would also wire up the CS pin, although probably only needed if using the SPI interface.

Have a look at this web page where the display is wired to a Pi. Note that both RST and CS are connected.
WaveShare to Pi

1 Like

What command are you using to scan the bus.

If you don’t see the address you have either not loaded the overlay, wrong scan command, or either piece of hardware has a possible blown io port. Get a simple aht10 temp sensor and connect it to the i2c bus and see if to appears in the scan.