In SSD1309 datasheet (this is an OLED driver), I found some misleading information:

enter image description here

VDD is 1.65V to 3.3V for IC logic
VCC is 7V to 15V for panel driving

I couldn't find any resources on how VCC is driven, so I believe these LED displays has some boost-converter onboard, which converts 3.3V to 7V or similar. Can anyone confirm this based on this board?

enter image description here

On the other hand, datasheet says "nothing" about driving its I2C or SPI voltage tolerances.

Many online resources which uses an Arduino for these displays like this:

enter image description here

Obviously, the red wire is 3.3V, that's fine. However, I2C levels on Arduino (I believe based on this) are driven at 5V.

In SSD1309's datasheet, DC characteristics:

enter image description here

High Logic Input Level: min 0.8*VDD
Low Logic Input Level: max 0.2*VDD

VDD = 3.3V.

This mean I can provide high logic input with minimum of 0.8*3.3V = 2.64V. What is the maximum can it be 12V?

Obviously not, and as there is "Maximum ratings" section:

enter image description here

Am I looking for parameter Vin? Is it referring to SDA, SCL, etc pins?

In this case, these pins' max voltage tolerance is VDD+0.3V=3.6V. So providing 5V to these pins would cause harm to the device. How is then this supposed to work with Arduinos?

  • \$\begingroup\$ Why assume only one of \$V_{DD}\$ and \$V_{CC}\$ is an input? \$\endgroup\$
    – greybeard
    Mar 25, 2023 at 15:04
  • \$\begingroup\$ There are tons of different modules built around that controller. Look at the docs for the specific one you have, not for the bare controller chip. \$\endgroup\$
    – Mat
    Mar 25, 2023 at 15:09
  • 1
    \$\begingroup\$ In the picture of the back of the display module, L1, D1, and the stuff to the right of them, look like they could be a boost converter \$\endgroup\$
    – user555045
    Mar 25, 2023 at 15:13

1 Answer 1


Only a guess but it looks like the board has a boost converter, the U1, L1 and D1 strongly suggest a switching regulator.

And the SSD1309 data sheet says logic levels are referenced to VDD which is 3.3V. Maximum logic input is VDD+0.3V. The inputs are not 5V tolerant.

The I2C IO levels on that Arduino in the picture is 5V. There are also Arduinos with 3.3V IO levels.

It's not supposed to work with 5V Arduinos. But if you don't have the datasheet for that display module, you don't know if it has an onboard level shifter on the PCB so even if the SSD1309 itself can't handle 5V on I2C, the PCB may contain a level shifter.

If you have no documentation for the board/module you bought, you need to reverse engineer or otherwise figure out how it works, or only buy stuff with proper documentation.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.