OLED display inconsistent with 3.3 Volts

I recently purchased a OLED display (64x128 monochrome) - ADA326. I cannot get it to power up the display consistently on my arduino nano 33 iot. It works perfectly on my arduino uno r3.
When I powerup the nano, the display starts properly about 20% of the time. Mostly the display just stays black. When the display does successfully start, the device continues to work perfectly until I power down the arduino or press the reset button.
I am using the adafruit ssd1306 library and running the example program ssd1306_128x64_i2c.ino.
My device looks a little different than that shown at Monochrome 0.96 128x64 OLED graphic display | Adafruit ADA326 | Core Electronics Australia.


Hey Russell,

Welcome to the forum.

Does your board look like this? Adafruit released a new version fairly recently, the site will be updated to reflect the changes soon.

The major differences are the JST-SH connections on the back for I2C and a slightly different form factor, but otherwise the electrical properties, pinout, and addresses should be identical to the previous release.

When you say that the display starts properly 20% of the time, how many pixels are glowing on the screen at that time and are they dimmer than usual compared to when you’re running off the Uno? Just curious whether somehow there’s excess current draw causing a voltage drop.

The description and a quick check on my end revealed this draws ~15-25mA from what I’ve found (varies quite significantly depending on the number of active pixels, this is just the range for the max I’ve found depending on input voltage)

Description: Display current draw is completely dependent on your usage: each OLED LED draws current when on so the more pixels you have lit, the more current is used. They tend to draw ~20mA or so in practice but for precise numbers you must measure the current in your usage circuit.

Given that the Uno R3 can kick out 200mA at ~20mA per pin but the Nano 33 IoT can only handle 7mA per pin I’d assume that it is possibly overloading the Nano causing a voltage drop and cutting out. If possible, can you please send through a photo of the set up that you’ve got between your Nano and the OLED? It may give us a better idea of what could be going wrong.


Thanks for the your informative response.
I discovered that a direct link from the display Vin pin to the arduino +3.3V worked far better than linking via the breadboard power rail.
So I replaced the link from the screen Vin pin to the power rail and the link from the arduino +3v3 pin to the power rail and it appears to have fixed the problem.Not sure why.
I also had to insert a delay in my code before initializing the display.Two seconds seems to be sufficient.
Currently, the screen is performing flawlessly.


Hi Russell
Some of these breadboards do not have a continuous connection the whole length of the power rail but it is broken into segments of 5 or 10 pins. Something funny might have been going on here if this is your case. The red line would be a clue, is it continuous or does it have breaks between some 5 pin groups. A continuity check would not hurt.

If you are using pre made link wires with pins or sockets (or both) pre crimped on them do not rule out dodgy crimps. Been known to happen.
Cheers Bob


Hi Bob,
The links were home-made, short pieces of sold core wire with the ends stripped.
I’m thinking that the arduino has barely enough grunt to turn on the display on. It still does fail to start on rare occasions. I’m considering a separate power supply for the display.


Good idea. That would eliminate one possibility.
Cheers Bob

1 Like