Skip to content

Commit 051180a

Browse files
authored
Merge pull request #18 from makermelissa/master
Updated to work with Matrix Portal
2 parents e7b7e4a + 3918851 commit 051180a

File tree

2 files changed

+52
-5
lines changed

2 files changed

+52
-5
lines changed

adafruit_matrixportal/matrix.py

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
1515
**Hardware:**
1616
17+
* `Adafruit Matrix Portal <https://www.adafruit.com/product/4745>`_
1718
* `Adafruit Metro M4 Express AirLift <https://www.adafruit.com/product/4000>`_
1819
* `Adafruit RGB Matrix Shield <https://www.adafruit.com/product/2601>`_
1920
* `64x32 RGB LED Matrix <https://www.adafruit.com/product/2278>`_
@@ -46,25 +47,70 @@ class Matrix:
4647
4748
"""
4849

49-
# pylint: disable=too-few-public-methods
50+
# pylint: disable=too-few-public-methods,too-many-branches
5051
def __init__(self, *, width=64, height=32, bit_depth=2, alt_addr_pins=None):
5152

5253
if alt_addr_pins is not None:
5354
addr_pins = alt_addr_pins
55+
elif hasattr(board, "MTX_ADDRA"):
56+
if height <= 16:
57+
addr_pins = [board.MTX_ADDRA, board.MTX_ADDRB, board.MTX_ADDRC]
58+
elif height <= 32:
59+
addr_pins = [
60+
board.MTX_ADDRA,
61+
board.MTX_ADDRB,
62+
board.MTX_ADDRC,
63+
board.MTX_ADDRD,
64+
]
65+
else:
66+
addr_pins = [
67+
board.MTX_ADDRA,
68+
board.MTX_ADDRB,
69+
board.MTX_ADDRC,
70+
board.MTX_ADDRD,
71+
board.MTX_ADDRE,
72+
]
5473
else:
5574
addr_pins = [board.A0, board.A1, board.A2, board.A3]
5675

76+
if hasattr(board, "MTX_R1"):
77+
rgb_pins = [
78+
board.MTX_R1,
79+
board.MTX_G1,
80+
board.MTX_B1,
81+
board.MTX_R2,
82+
board.MTX_G2,
83+
board.MTX_B2,
84+
]
85+
else:
86+
rgb_pins = [board.D2, board.D3, board.D4, board.D5, board.D6, board.D7]
87+
88+
if hasattr(board, "MTX_CLK"):
89+
clock_pin = board.MTX_CLK
90+
else:
91+
clock_pin = board.A4
92+
93+
if hasattr(board, "MTX_CLK"):
94+
latch_pin = board.MTX_LAT
95+
else:
96+
latch_pin = board.D10
97+
98+
if hasattr(board, "MTX_OE"):
99+
oe_pin = board.MTX_OE
100+
else:
101+
oe_pin = board.D9
102+
57103
try:
58104
displayio.release_displays()
59105
matrix = rgbmatrix.RGBMatrix(
60106
width=width,
61107
height=height,
62108
bit_depth=bit_depth,
63-
rgb_pins=[board.D2, board.D3, board.D4, board.D5, board.D6, board.D7],
109+
rgb_pins=rgb_pins,
64110
addr_pins=addr_pins,
65-
clock_pin=board.A4,
66-
latch_pin=board.D10,
67-
output_enable_pin=board.D9,
111+
clock_pin=clock_pin,
112+
latch_pin=latch_pin,
113+
output_enable_pin=oe_pin,
68114
)
69115
self.display = framebufferio.FramebufferDisplay(matrix)
70116
except ValueError:

docs/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ Table of Contents
2626
.. toctree::
2727
:caption: Related Products
2828

29+
* Adafruit Matrix Portal <https://www.adafruit.com/product/4745>
2930
* Adafruit Metro M4 Express AirLift <https://www.adafruit.com/product/4000>
3031
* Adafruit RGB Matrix Shield <https://www.adafruit.com/product/2601>
3132
* 64x32 RGB LED Matrix <https://www.adafruit.com/product/2278>

0 commit comments

Comments
 (0)