1.12" Mono OLED (128x128, white/black) Breakout – I2C

Hi, has anyone any experience or code for getting double height text to work with this display?

I’m using the ssh1106 driver on a Raspberry Pico and it works fine but I would love to be able to use larger text size for some parts of the display. I can do it with a lot of images converted to bytearrays but its cumbersome to do it, a simple add on code or plugin for use with micropython would be very useful.

Thanks in anticipation.
Chas

Where did you get the driver for the ssh1106? What you can do is really going to be dictated by that (as far as I can see Pimoroni don’t have their own library yet?).

Hi Shoe,

I used this one: pico-micropython-examples/sh1106.py at master · raspberrypi/pico-micropython-examples · GitHub

but there is nothing related to text size or fonts in the driver that I can see.

That driver just uses Micropython’s framebuf, which only supports an 8x8 font, so you’d have to build an image and blit that, I imagine.

That’s what I thought. Yes have created a series of ByteArrays for the characters but as mentioned, it’s a long winded process. I’m sure in time support for double height fonts will occur, just have to be patient. :)

I very nearly said “just draw it in PIL”, but then I think you’d have to port PIL to Micropython first… :-)

1 Like

MicroPython SH1107 driver and large text method

Hi, I came up against this kind of problem and have written an extension to the MicroPython framebuf module to extend the FrameBuffer class with an additional large_text method. It allows you to double, treble, quadruple (or even more if you have the space). I have it running on a Raspberry Pi Pico. It has an I2C interface and can be used via this SH1107 driver.
Hope this might be useful to others.