Skip to content

Commit 67547fa

Browse files
committed
Update gc9a01a.py
1 parent 7d5528f commit 67547fa

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

adafruit_rgb_display/gc9a01a.py

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,14 @@
2626
__version__ = "0.0.0+auto.0"
2727
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display.git"
2828

29-
# Command constants
30-
_NOP = const(0x00)
31-
_SWRESET = const(0x01)
32-
_SLPIN = const(0x10)
33-
_SLPOUT = const(0x11)
29+
# Constants for MADCTL
30+
_MADCTL_MY = const(0x80) # Bottom to top
31+
_MADCTL_MX = const(0x40) # Right to left
32+
_MADCTL_MV = const(0x20) # Reverse Mode
33+
_MADCTL_ML = const(0x10) # LCD refresh Bottom to top
34+
_MADCTL_RGB = const(0x00) # Red-Green-Blue pixel order
35+
_MADCTL_BGR = const(0x08) # Blue-Green-Red pixel order
36+
_MADCTL_MH = const(0x04) # LCD refresh right to left
3437
_PTLON = const(0x12)
3538
_NORON = const(0x13)
3639
_INVOFF = const(0x20)
@@ -136,9 +139,19 @@ def init(self) -> None:
136139
cols = struct.pack(">HH", self._X_START, self.width + self._X_START - 1)
137140
rows = struct.pack(">HH", self._Y_START, self.height + self._Y_START - 1)
138141

139-
for command, data in (
140-
(_MADCTL, b"\xc0"), # Set rotation to 0 and use RGB
141-
(_CASET, b"\x00\x00\x00\xef"), # Column Address Set [Start col = 0, end col = 239]
142-
(_RASET, b"\x00\x00\x00\xef"), # Row Address Set [Start row = 0, end row = 239]
143-
):
144-
self.write(command, data)
142+
def init(self) -> None:
143+
"""Initialize the display"""
144+
super().init()
145+
146+
# Initialize display
147+
self.write(_SWRESET)
148+
time.sleep(0.150) # 150ms delay after reset
149+
150+
# Set addressing mode and color format
151+
self.write(_MADCTL, bytes([_MADCTL_MX | _MADCTL_BGR]))
152+
153+
# Set addressing windows
154+
self.write(_CASET, b"\x00\x00\x00\xef") # Column Address Set [0-239]
155+
self.write(_RASET, b"\x00\x00\x00\xef") # Row Address Set [0-239]
156+
157+
time.sleep(0.150) # 150ms delay before turning on display

0 commit comments

Comments
 (0)