Driving multiple OLED displays on the Adafruit nRF52840 Feather #OLED #Feather #nRF52840 #Adafruit @bitbank
Larry Bank (@bitbank) demonstrates on his GitHub site and YouTube using multiple OLED displays on small microcontroller boards.
The purpose of this code is to easily control multiple 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.
Features:
———
- Supports 64×32, 128×32, 128×64 and 132×64 (SH1106) display sizes
- Includes 3 sizes of fixed fonts (6×8, 8×8, 16×32)
- Includes a function to load a Windows BMP file
- Optional backing RAM for drawing lines and pixels for systems with enough RAM
- Light enough to run on an ATtiny85
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.
See GitHub for more information and the code under GPL 3.0 license.
Post a Comment