# 1.12" Mono OLED i2c Breakout – no Micro Python driver?

**URL:** <https://forums.pimoroni.com/t/1-12-mono-oled-i2c-breakout-no-micro-python-driver/23055>\
**Category:** Support\
**Created:** [October 6, 2023, 12:19pm UTC](https://forums.pimoroni.com/t/1-12-mono-oled-i2c-breakout-no-micro-python-driver/23055 "2023-10-06T12:19:39Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [October 6, 2023, 12:19pm UTC](https://forums.pimoroni.com/t/1-12-mono-oled-i2c-breakout-no-micro-python-driver/23055/1 "2023-10-06T12:19:39Z")

</div>

Just bought the 1.12" Mono OLED (128x128, white/black) Breakout – I2C  
[1.12" Mono OLED (128x128, white/black) Breakout – I2C (pimoroni.com)](https://shop.pimoroni.com/products/1-12-oled-breakout?variant=29421050757203)  
There is no Micro Python driver on Pimoroni’s Micro Python github page?

Anybody have a working sh1107 Micro Python Library? I having a very hard time getting the ones I have found online to work?

---

<div class="post-metadata">

**Author:** ![hel](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/hel/32/6075_2.png) [@hel](https://forums.pimoroni.com/u/hel)\
**Post date:** [October 6, 2023, 1:03pm UTC](https://forums.pimoroni.com/t/1-12-mono-oled-i2c-breakout-no-micro-python-driver/23055/2 "2023-10-06T13:03:49Z")

</div>

I think you might be able to drive this one with PicoGraphics - it’s on the ‘supported display’ list anyway `DISPLAY_I2C_OLED_128X128`

> <https://github.com/pimoroni/pimoroni-pico/blob/main/micropython/modules/picographics/README.md#supported-displays>

Let me know if it works and I’ll update the shop page to say it’s Pico compatible :)

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [October 6, 2023, 3:15pm UTC](https://forums.pimoroni.com/t/1-12-mono-oled-i2c-breakout-no-micro-python-driver/23055/3 "2023-10-06T15:15:39Z")

</div>

Thank you very much, I was not aware of that bit of info. There weren’t any Micro python examples for it, so I just assumed it hadn’t been ported over to Micro python yet.  
This got me Hello World

Is that the correct way to set the pen, as this display only has the one color?

```auto
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.clear()
display.set_font("bitmap8")
display.set_pen(15) # White

display.text("Hello World", 0, 0, scale=2)

display.update()

```

---

<div class="post-metadata">

**Author:** ![hel](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/hel/32/6075_2.png) [@hel](https://forums.pimoroni.com/u/hel)\
**Post date:** [October 6, 2023, 4:20pm UTC](https://forums.pimoroni.com/t/1-12-mono-oled-i2c-breakout-no-micro-python-driver/23055/4 "2023-10-06T16:20:50Z")

</div>

Hoorah!

I reckon so, I think that’s how the other displays that use PEN\_1BIT work. It might try and dither the black and white if you use `set_pen` with numbers in between 1 and 14, like Inky Pack / Badger?

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [October 6, 2023, 5:08pm UTC](https://forums.pimoroni.com/t/1-12-mono-oled-i2c-breakout-no-micro-python-driver/23055/5 "2023-10-06T17:08:13Z")

</div>

It’s working, just seemed weird entering (15) instead of (255, 255, 255).  
Works with my Pico Breakout Garden and my Pico W Explorer. Does not want to work with my Pico Inventor, the device I bought it for? All, as far as I know are running 120.6.  
I’ll flash nuke it reflash it and have another go in a bit. Need to take a little break first.  
Thanks for pointing me in the right direction. =)

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [October 7, 2023, 11:45am UTC](https://forums.pimoroni.com/t/1-12-mono-oled-i2c-breakout-no-micro-python-driver/23055/6 "2023-10-07T11:45:31Z")

</div>

Fabbed up a custom 4 socket i2c attachment board that plugs into the QWICC connector. And plugged that into my Pico W Explorer. Then played with the code a little.

 ![Camera 5_08-53-36](https://us1.discourse-cdn.com/flex016/uploads/pimoroni/original/2X/c/c8f1b37047aef905b9cecdac586efce58b4e5e51.jpeg)

```auto
from picographics import PicoGraphics, DISPLAY_I2C_OLED_128X128

from pimoroni_i2c import PimoroniI2C

i2cbus = PimoroniI2C(20, 21)

display = PicoGraphics(display=DISPLAY_I2C_OLED_128X128, bus=i2cbus)
display.clear()
display.set_font("bitmap8")
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("Explorer", 25, 100, scale=2)

display.update()

```
