the 0.96 not shown anything

I have an 0.96 OLED that is the blue color and I tried many codes to turn it on but it didn't work and I also used the SSD_1306 library code samples but it hadn't yet shown anything too. what should I do? is there any way to test my OLED?

My board is Arduino UNO.

Hi alirezaaraby,

A picture of your OLED would have been welcome as well as mentioning what kind of Arduino you are using. Displays such as the 0.96 OLEDS come in several tastes: SPI and I2C. The SPI devices have 7 pins while the i2c carry a modest 4 pins.
On my website Thesolaruniverse/ you can find a post 'How to wire and run a 128×32 OLED display with SSD1306 driver with an Arduino'. This concerns a 128*32 i2c OLED, while the post 'Connecting a 128×64 OLED display with SSD1306 driver to an Arduino with a SPI interface' describes the 7-pin SPI 0.96 OLED.

Be sure to double-check your wining. Note that most OLEDS are 3.3V devices. Some are 5V compatible so be caeful.
Good luck, photoncatcher

Simple rules:

  1. post link to the actual display that you bought.
  2. quote standard Arduino by name. Non-standard by link.
  3. post wiring diagram. photo of pencil drawing is fine
  4. quote "library example code" by name

Yes, it takes 5 minutes from your life.
But you will get an immediate answer (instead of extra questions)

You can find most displays on the Internet. We need to see the pcb side to identify it. If you don't have your actual shop link, just say that your item pcb "looks like" this web link.


Hi, thanks for your attention.

Below is my Arduino:\

Below is my OLED module:

Below is my Circuit:

And below is my simple code that I use it:

From your Bangood link:

Input Voltage: 3.3V ~ 6V
Compatible I/O Level: 3.3V, 5V

However the photo of the pcb implies a 3.3V only VCC module.
Please compare the pcb of your module with the photo on the Banggood link.
Do the components look the same? Do the copper traces look the same?

I suggest that you connect VCC pin to the 3.3V pin on your Uno.

Change line #52 in your INO file to

  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Your module is 0x3C


Hi alirezaaraby,

I have several SSD1306 OLEDS in my display collection. Some of them work with the Adafruit library while others work only correctly with the <ug8lib.h> or <u8g2lib.h> library (by Olikraus - on Github). u8g2 can be installed via the library manager.
success - photonatcher

Go on. A SSD1306 is still a SSD1306 whether you use Adafruit or U8g2.

I2C versions still needs the correct Slave ads i.e. 0x3C or 0x3D
The actual SSD1306 chip requires 3V on its VCC pin. So modules need a 3V regulator if you want to supply 5V.

Yes, Adafruit uses lots of SRAM for a buffer. But so does U8g2 F constructor.
The U8g2 1 , 2 , 4 contructors use small buffers but more complex screen drawing.


  • post a real picture of your setup where we can see each wire connection between the Arduino and the display including the pcb print of the display if it is really in the order VCC GND SCL SCA (your schematic says something different).
  • run a I2C Scanner and see the result, if the display can be identified and has the expected bus address. post the result of the I2C Scanner.