Main Content

Control multiple OLED displays on one or more I2C buses simultaneously.

The purpose of this code is to easily control mulitple SH1106/SSD1306 OLED displays using a minimum of GPIO lines. The number of displays is not tied to the number of I2C buses if they have unique addresses. For example, if you have 4 displays that all use address 0x3C, then you’ll need 4 I2C buses to control them. This can be done with as few as 5 GPIO lines if you arrange them to share the SCL wire. In the other extreme, you can control 16 unique OLED displays with 9 wires (8 I2C buses) if you have 8 set to address 0x3C and 8 set to address 0x3D. The library addresses each display individually by bus and I2C address.

Here is a Youtube video of it in action on an nRF52840 Feather. The line draw function is very efficient, so even driving 2 displays over a bit-banged I2C bus, it can draw quite quickly.”

Link to article