OLED - leakage current on I2C - change SCL to INPUT!?

i am running an OLED display (128x64) successfully via I2C.
using a TAU Board - similar to Zero with SAMD21 cpu.
using external pullup resistors on the I2C.

i am shutting down the display sometimes to save battery energy (basically working).
a) if i use the sleep function of the display, i have 1mA leakage current from the 4k7 pullup to the display SDA.
b) now i use a loadswitch to cut the powersupply of the display completely,
but now i have a leakage current of 9mA on the SCL line, because SCL is high on the cpu side and the display SCL seems to be on GND level.

i tried to change the SCL Pin (17 on TAU) to INPUT (high resistance) in the code, but there is no change …
i am affraid that pin is not assigned in the way i suppose it is!?
how can i switch the SCL pin to INPUT and back to SCL-function when i would like to turn on the OLED again.


The I2C bus takes zero current when idle. Most OLED controllers can be sent to sleep. Which controller are you using?

As a general rule, SPI or I2C devices take no interface current when not active. For an SPI or I2C device to work properly it must be powered. It can not implement 3-state without power.

Removing power from an I2C slave will mean that it starts to conduct current through the Bus pullup resistors.


You could power the pullups from an output port set HIGH during use, LOW or INPUT during sleep.