Skip to content

Commit 1cd06c0

Browse files
authored
Merge pull request #21 from FoamyGuy/displayio_9x_compatibility
9.x Compatibility
2 parents 507e935 + d445cc7 commit 1cd06c0

6 files changed

+60
-8
lines changed

adafruit_displayio_sh1107.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,26 @@
2727
"""
2828

2929
import sys
30-
import displayio
30+
31+
32+
try:
33+
from busdisplay import BusDisplay as Display
34+
from fourwire import FourWire
35+
except ImportError:
36+
from displayio import Display
37+
from displayio import FourWire
38+
3139
from micropython import const
3240

3341
try:
3442
from typing import Union
43+
44+
try:
45+
from i2cdisplaybus import I2CDisplayBus
46+
except ImportError:
47+
# pylint: disable=ungrouped-imports
48+
from displayio import I2CDisplay as I2CDisplayBus
49+
3550
except ImportError:
3651
pass
3752

@@ -130,7 +145,7 @@
130145
_ROTATION_OFFSET = 90
131146

132147

133-
class SH1107(displayio.Display):
148+
class SH1107(Display):
134149
"""
135150
SH1107 driver for use with DisplayIO
136151
@@ -146,7 +161,7 @@ class SH1107(displayio.Display):
146161

147162
def __init__(
148163
self,
149-
bus: Union[displayio.I2CDisplay, displayio.FourWire],
164+
bus: Union[I2CDisplayBus, FourWire],
150165
display_offset: int = DISPLAY_OFFSET_ADAFRUIT_FEATHERWING_OLED_4650,
151166
rotation: int = 0,
152167
**kwargs

examples/displayio_sh1107_game_of_life.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,14 @@
1212

1313
import board
1414
import displayio
15+
16+
# Compatibility with both CircuitPython 8.x.x and 9.x.x.
17+
# Remove after 8.x.x is no longer a supported release.
18+
try:
19+
from i2cdisplaybus import I2CDisplayBus
20+
except ImportError:
21+
from displayio import I2CDisplay as I2CDisplayBus
22+
1523
import adafruit_displayio_sh1107
1624

1725
displayio.release_displays()
@@ -93,7 +101,7 @@ def conway(output):
93101

94102
i2c = board.I2C() # uses board.SCL and board.SDA
95103
# i2c = board.STEMMA_I2C() # For using the built-in STEMMA QT connector on a microcontroller
96-
display_bus = displayio.I2CDisplay(i2c, device_address=0x3C)
104+
display_bus = I2CDisplayBus(i2c, device_address=0x3C)
97105

98106
# SH1107 is vertically oriented 64x128
99107
WIDTH = 128

examples/displayio_sh1107_mono_128x128_test.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,18 @@
99

1010
import board
1111
import displayio
12+
13+
# Compatibility with both CircuitPython 8.x.x and 9.x.x.
14+
# Remove after 8.x.x is no longer a supported release.
15+
try:
16+
from i2cdisplaybus import I2CDisplayBus
17+
18+
# from fourwire import FourWire
19+
except ImportError:
20+
from displayio import I2CDisplay as I2CDisplayBus
21+
22+
# from displayio import FourWire
23+
1224
import terminalio
1325
from adafruit_display_text import bitmap_label as label
1426
from adafruit_displayio_sh1107 import SH1107, DISPLAY_OFFSET_ADAFRUIT_128x128_OLED_5297
@@ -18,12 +30,12 @@
1830
# For I2C
1931
i2c = board.I2C() # uses board.SCL and board.SDA
2032
# i2c = board.STEMMA_I2C() # For using the built-in STEMMA QT connector on a microcontroller
21-
display_bus = displayio.I2CDisplay(i2c, device_address=0x3D)
33+
display_bus = I2CDisplayBus(i2c, device_address=0x3D)
2234

2335
# For SPI:
2436
# import busio
2537
# spi_bus = busio.SPI(board.SCK, board.MOSI)
26-
# display_bus = displayio.FourWire(spi_bus, command=board.D6, chip_select=board.D5, reset=board.D9)
38+
# display_bus = FourWire(spi_bus, command=board.D6, chip_select=board.D5, reset=board.D9)
2739

2840
# Width, height and rotation for Monochrome 1.12" 128x128 OLED
2941
WIDTH = 128

examples/displayio_sh1107_random_motion.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,14 @@
1212
import time
1313
import board
1414
import displayio
15+
16+
# Compatibility with both CircuitPython 8.x.x and 9.x.x.
17+
# Remove after 8.x.x is no longer a supported release.
18+
try:
19+
from i2cdisplaybus import I2CDisplayBus
20+
except ImportError:
21+
from displayio import I2CDisplay as I2CDisplayBus
22+
1523
import terminalio
1624

1725
# can try import bitmap_label below for alternative
@@ -24,7 +32,7 @@
2432
# Use for I2C
2533
i2c = board.I2C() # uses board.SCL and board.SDA
2634
# i2c = board.STEMMA_I2C() # For using the built-in STEMMA QT connector on a microcontroller
27-
display_bus = displayio.I2CDisplay(i2c, device_address=0x3C)
35+
display_bus = I2CDisplayBus(i2c, device_address=0x3C)
2836

2937
# SH1107 is vertically oriented 64x128
3038
WIDTH = 128

examples/displayio_sh1107_simpletest.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@
1111

1212
import board
1313
import displayio
14+
15+
# Compatibility with both CircuitPython 8.x.x and 9.x.x.
16+
# Remove after 8.x.x is no longer a supported release.
17+
try:
18+
from i2cdisplaybus import I2CDisplayBus
19+
except ImportError:
20+
from displayio import I2CDisplay as I2CDisplayBus
21+
1422
import terminalio
1523

1624
# can try import bitmap_label below for alternative
@@ -23,7 +31,7 @@
2331
# Use for I2C
2432
i2c = board.I2C() # uses board.SCL and board.SDA
2533
# i2c = board.STEMMA_I2C() # For using the built-in STEMMA QT connector on a microcontroller
26-
display_bus = displayio.I2CDisplay(i2c, device_address=0x3C)
34+
display_bus = I2CDisplayBus(i2c, device_address=0x3C)
2735

2836
# SH1107 is vertically oriented 64x128
2937
WIDTH = 128

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
# SPDX-License-Identifier: Unlicense
44

55
Adafruit-Blinka
6+
Adafruit-Blinka-Displayio

0 commit comments

Comments
 (0)