Python example and drivers for sh1107

Hi Folks,

I bought your wonderful Pimoroni OLED 128x128 on a breakout for the Mini Garden Hat, along with a scd41 co2 sensor and the bme280, and some others. All the examples needed a bit of care and attention, but the bme and the scd are working nicely now (using IC2). But the sh1107 is proving a little resistant to my charms. Even if I download the latest sh1107 Adafruit driver from github, it hasn’t been upgraded for the displayio/ic2displaybus change yet (I imagine it’s on your backlog).

I’m happy to help if you can give me some guidance, but I need some hints, please.

Kind regards,


That OLED is usable in Micro Python with Pimoroni’s custom uf2 file, if that help’s. I’m using one on my Inventor 2040W via Pimoroni’s Pico Graphics.

from picographics import PicoGraphics, DISPLAY_I2C_OLED_128X128

from pimoroni_i2c import PimoroniI2C

i2cbus = PimoroniI2C(4, 5)

display = PicoGraphics(display=DISPLAY_I2C_OLED_128X128, bus=i2cbus)
display.set_pen(15)  # White

display.text("Pimoroni", 25, 0, scale=2)
display.text("128 x 128", 25, 20, scale=2)
display.text("i2c OLED", 25, 40, scale=2)
display.text("On A", 40, 60, scale=2)
display.text("Pico W", 35, 80, scale=2)
display.text("Inventor", 25, 100, scale=2)


This sounds as if you are using CircuitPython. What kind of problems do you have, any exception trace? And if this is really a problem with the CircuitPython SH1107 driver, you would be probably better of creating an issue in the respective Adafruit repo for the driver. Pimoroni just sells the hardware, they don’t support CircuitPython.

Nevertheless, I usually run CircuitPython too on my boards, so I might be able to help once you provide sufficient information about the problem.