From 47c05d2dc34bbe7c9960d2fb44a4d780c2e89c79 Mon Sep 17 00:00:00 2001 From: David Glaude Date: Wed, 10 Mar 2021 01:28:02 +0100 Subject: [PATCH 01/10] Initial untested version... Module structure copied over from keybow2040.py Translation table from https://github.com/pimoroni/rgbmatrix5x5-python/blob/master/library/rgbmatrix5x5/is31fl3731.py --- adafruit_is31fl3731/rgbmatrix5x5.py | 98 +++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 adafruit_is31fl3731/rgbmatrix5x5.py diff --git a/adafruit_is31fl3731/rgbmatrix5x5.py b/adafruit_is31fl3731/rgbmatrix5x5.py new file mode 100644 index 0000000..987286e --- /dev/null +++ b/adafruit_is31fl3731/rgbmatrix5x5.py @@ -0,0 +1,98 @@ +# SPDX-FileCopyrightText: Tony DiCola 2017 for Adafruit Industries +# +# SPDX-License-Identifier: MIT + +""" +`adafruit_is31fl3731.RGBmatrix5x5` +==================================================== + +CircuitPython driver for the IS31FL3731 charlieplex IC. + + +* Author(s): Tony DiCola, Melissa LeBlanc-Williams, David Glaude + +Implementation Notes +-------------------- + +**Hardware:** + +* `5x5 RGB Matrix Breakout + `_ + + +**Software and Dependencies:** + +* Adafruit CircuitPython firmware for the supported boards: + https://github.com/adafruit/circuitpython/releases + +""" + +# imports +from . import IS31FL3731 + + +class RGBmatrix5x5(IS31FL3731): + """Supports the Pimoroni RGBmatrix5x5 with 5x5 matrix of RGB LEDs """ + + width = 25 + height = 3 + + # pylint: disable=too-many-arguments + + def pixelrgb(self, x, y, r, g, b, blink=None, frame=None): + """ + Blink or brightness for x, y-pixel + + :param x: horizontal pixel position + :param y: vertical pixel position + :param r: red brightness value 0->255 + :param g: green brightness value 0->255 + :param b: blue brightness value 0->255 + :param blink: True to blink + :param frame: the frame to set the pixel + """ + x = (4 * (3 - x)) + y + + super().pixel(x, 0, g, blink, frame) + super().pixel(x, 1, r, blink, frame) + super().pixel(x, 2, b, blink, frame) + + # pylint: disable=inconsistent-return-statements + # pylint: disable=too-many-return-statements + # pylint: disable=too-many-branches + + @staticmethod + def pixel_addr(x, y): + + lookup = [ + (118, 69, 85), + (117, 68, 101), + (116, 84, 100), + (115, 83, 99), + (114, 82, 98), + (113, 81, 97), + (112, 80, 96), + (134, 21, 37), + (133, 20, 36), + (132, 19, 35), + (131, 18, 34), + (130, 17, 50), + (129, 33, 49), + (128, 32, 48), + (127, 47, 63), + (121, 41, 57), + (122, 25, 58), + (123, 26, 42), + (124, 27, 43), + (125, 28, 44), + (126, 29, 45), + (15, 95, 111), + (8, 89, 105), + (9, 90, 106), + (10, 91, 107), + (11, 92, 108), + (12, 76, 109), + (13, 77, 93), + ] + + return lookup[x][y] From 1aea97b0b876bfd3b5eaad921a470ba5413b448e Mon Sep 17 00:00:00 2001 From: David Glaude Date: Wed, 10 Mar 2021 01:41:29 +0100 Subject: [PATCH 02/10] Rainbow demo for RGBmatrix5x5 Based on the Keybow2040 rainbow demo by Sandy Macdonald Totally untested... --- examples/is31fl3731_RGBmatrix5x5_rainbow.py | 85 +++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 examples/is31fl3731_RGBmatrix5x5_rainbow.py diff --git a/examples/is31fl3731_RGBmatrix5x5_rainbow.py b/examples/is31fl3731_RGBmatrix5x5_rainbow.py new file mode 100644 index 0000000..6783c28 --- /dev/null +++ b/examples/is31fl3731_RGBmatrix5x5_rainbow.py @@ -0,0 +1,85 @@ +# SPDX-FileCopyrightText: 2021 Sandy Macdonald, David Glaude +# SPDX-License-Identifier: MIT + +""" +Example to display a rainbow animation on the 5x5 RGB Matrix Breakout. + +Usage: +Rename this file code.py and pop it on your Raspberry Pico's +CIRCUITPY drive. + +This example is for use on the Pico Explorer Base or other board that use the same SDA/SCL pin. + +Author(s): Sandy Macdonald, David Glaude. +""" + +import time +import math +import board + +from adafruit_is31fl3731.RGBmatrix5x5 import RGBmatrix5x5 as Display + +# pylint: disable=inconsistent-return-statements +# pylint: disable=too-many-return-statements +# pylint: disable=invalid-name + + +def hsv_to_rgb(hue, sat, val): + """ + Convert HSV colour to RGB + + :param hue: hue; 0.0-1.0 + :param sat: saturation; 0.0-1.0 + :param val: value; 0.0-1.0 + """ + + if sat == 0.0: + return (val, val, val) + + i = int(hue * 6.0) + + p = val * (1.0 - sat) + f = (hue * 6.0) - i + q = val * (1.0 - sat * f) + t = val * (1.0 - sat * (1.0 - f)) + + i %= 6 + + if i == 0: + return (val, t, p) + if i == 1: + return (q, val, p) + if i == 2: + return (p, val, t) + if i == 3: + return (p, q, val) + if i == 4: + return (t, p, val) + if i == 5: + return (val, p, q) + + +# Create the I2C bus on a Pico Explorer Base +i2c = busio.I2C(board.GP21, board.GP20) + +# Set up 5x5 RGB matrix Breakout +display = adafruit_is31fl3731.RGBmatrix5x5(i2c) + +step = 0 + +while True: + step += 1 + for y in range(0, 5): + for x in range(0, 5): + pixel_hue = (x + y + (step / 20)) / 8 + pixel_hue = pixel_hue - int(pixel_hue) + pixel_hue += 0 + pixel_hue = pixel_hue - math.floor(pixel_hue) + + rgb = hsv_to_rgb(pixel_hue, 1, 1) + + display.pixelrgb( + x, y, int(rgb[0] * 255), int(rgb[1] * 255), int(rgb[2] * 255) + ) + + time.sleep(0.01) From 18cc92742a73d3d9354e0f84c5d1de0eee7f5235 Mon Sep 17 00:00:00 2001 From: David Glaude Date: Wed, 10 Mar 2021 12:24:53 +0100 Subject: [PATCH 03/10] Now it run (no hardware to check) To make it more easy to troubleshoot, the code goes red, then green, then blue... and only then goes rainbow. --- examples/is31fl3731_RGBmatrix5x5_rainbow.py | 24 ++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/examples/is31fl3731_RGBmatrix5x5_rainbow.py b/examples/is31fl3731_RGBmatrix5x5_rainbow.py index 6783c28..60bba4d 100644 --- a/examples/is31fl3731_RGBmatrix5x5_rainbow.py +++ b/examples/is31fl3731_RGBmatrix5x5_rainbow.py @@ -15,6 +15,7 @@ import time import math +import busio import board from adafruit_is31fl3731.RGBmatrix5x5 import RGBmatrix5x5 as Display @@ -63,7 +64,28 @@ def hsv_to_rgb(hue, sat, val): i2c = busio.I2C(board.GP21, board.GP20) # Set up 5x5 RGB matrix Breakout -display = adafruit_is31fl3731.RGBmatrix5x5(i2c) +display = Display(i2c) + +for y in range(0, 5): + for x in range(0, 5): + display.pixelrgb(x, y, 255, 0, 0) + time.sleep(0.1) + +time.sleep(0.5) + +for y in range(0, 5): + for x in range(0, 5): + display.pixelrgb(x, y, 0, 255, 0) + time.sleep(0.1) + +time.sleep(0.5) + +for y in range(0, 5): + for x in range(0, 5): + display.pixelrgb(x, y, 0, 0, 255) + time.sleep(0.1) + +time.sleep(0.5) step = 0 From 44611ab1ec59f3d2422ea32babfd8539236c684d Mon Sep 17 00:00:00 2001 From: David Glaude Date: Mon, 15 Mar 2021 00:46:55 +0100 Subject: [PATCH 04/10] Add 5x5 to the list of supported board --- README.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/README.rst b/README.rst index 0fd4124..343989d 100644 --- a/README.rst +++ b/README.rst @@ -23,6 +23,7 @@ This driver supports the following hardware: * `Pimoroni 17x7 Scroll pHAT HD `_ * `Pimoroni 28x3 (r,g,b) Led Shim `_ * `Pimoroni Keybow 2040 with 4x4 matrix of RGB LEDs `_ +* `Pimoroni 5x5 RGB Matrix Breakout https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout`_ Dependencies From 3e7447528172c64dd54c35bf2e3b3d99aa5357ba Mon Sep 17 00:00:00 2001 From: David Glaude Date: Mon, 15 Mar 2021 00:48:40 +0100 Subject: [PATCH 05/10] Update README.rst --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 343989d..4994569 100644 --- a/README.rst +++ b/README.rst @@ -23,7 +23,7 @@ This driver supports the following hardware: * `Pimoroni 17x7 Scroll pHAT HD `_ * `Pimoroni 28x3 (r,g,b) Led Shim `_ * `Pimoroni Keybow 2040 with 4x4 matrix of RGB LEDs `_ -* `Pimoroni 5x5 RGB Matrix Breakout https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout`_ +* `Pimoroni 5x5 RGB Matrix Breakout `_ Dependencies From 23e0462a1f3b7f4527078a2dd5a3c2ead0aa6f13 Mon Sep 17 00:00:00 2001 From: David Glaude Date: Mon, 15 Mar 2021 01:22:38 +0100 Subject: [PATCH 06/10] Update examples.rst Add link to example RGB Matrix 5x5 and merging color example. Still missing the Keybow2040. --- docs/examples.rst | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/examples.rst b/docs/examples.rst index 6c51f3d..2162570 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -47,11 +47,17 @@ libraries. CircuitPython does not support PIL/pillow (python imaging library)! :caption: examples/is31fl3731_pillow_numbers.py :linenos: -Led Shim Example ----------------- +Colorfull Examples +------------------ Example that work on the RGB Led Shim. .. literalinclude:: ../examples/is31fl3731_ledshim_rainbow.py :caption: examples/is31fl3731_ledshim_rainbow.py :linenos: + +Example that work on the RGB Matrix 5x5. + +.. literalinclude:: ../examples/is31fl3731_RGBmatrix5x5_rainbow.py + :caption: examples/is31fl3731_RGBmatrix5x5_rainbow.py + :linenos: From 6f2ecca85677d54825fdd958c39e923733cbf556 Mon Sep 17 00:00:00 2001 From: David Glaude Date: Mon, 15 Mar 2021 01:47:15 +0100 Subject: [PATCH 07/10] Update rgbmatrix5x5.py This code is duplicate with the first entry in Keybow2040 lookup by Pimoroni design. The lookup could be replaced by a function like in led-shim as led-shim and matrix 5x5 use the same table. --- adafruit_is31fl3731/rgbmatrix5x5.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adafruit_is31fl3731/rgbmatrix5x5.py b/adafruit_is31fl3731/rgbmatrix5x5.py index 987286e..52fdb1f 100644 --- a/adafruit_is31fl3731/rgbmatrix5x5.py +++ b/adafruit_is31fl3731/rgbmatrix5x5.py @@ -63,7 +63,7 @@ def pixelrgb(self, x, y, r, g, b, blink=None, frame=None): @staticmethod def pixel_addr(x, y): - + # pylint: disable=duplicate-code lookup = [ (118, 69, 85), (117, 68, 101), From 876f835b16d50b7076970044832aba5978897127 Mon Sep 17 00:00:00 2001 From: James Carr Date: Thu, 10 Jun 2021 12:56:54 +0100 Subject: [PATCH 08/10] Speed up examples pylint by serialising the call --- .pre-commit-config.yaml | 1 + ...GBmatrix5x5_rainbow.py => is31fl3731_rgbmatrix5x5_rainbow.py} | 0 2 files changed, 1 insertion(+) rename examples/{is31fl3731_RGBmatrix5x5_rainbow.py => is31fl3731_rgbmatrix5x5_rainbow.py} (100%) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 354c761..50866b2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -28,6 +28,7 @@ repos: hooks: - id: pylint_examples name: pylint (examples code) + require_serial: true description: Run pylint rules on "examples/*.py" files entry: /usr/bin/env bash -c args: ['([[ ! -d "examples" ]] || for example in $(find . -path "./examples/*.py"); do pylint --disable=missing-docstring,invalid-name $example; done)'] diff --git a/examples/is31fl3731_RGBmatrix5x5_rainbow.py b/examples/is31fl3731_rgbmatrix5x5_rainbow.py similarity index 100% rename from examples/is31fl3731_RGBmatrix5x5_rainbow.py rename to examples/is31fl3731_rgbmatrix5x5_rainbow.py From 6c798fec8ef6153524379a04bc2a33806de38674 Mon Sep 17 00:00:00 2001 From: James Carr Date: Thu, 10 Jun 2021 12:57:47 +0100 Subject: [PATCH 09/10] Update the lookup tables for the rgbmatrix5x5. Update the example for the rgbmatrix5x5. Rename the example for the rgbmatrix5x5 - pylint didn't like the capitals in the name. Tweak some of the other examples to pass pylint. --- adafruit_is31fl3731/rgbmatrix5x5.py | 39 +++---- examples/is31fl3731_keybow_2040_rainbow.py | 4 +- examples/is31fl3731_pillow_animated_gif.py | 7 +- examples/is31fl3731_rgbmatrix5x5_rainbow.py | 113 ++++++++++++-------- 4 files changed, 91 insertions(+), 72 deletions(-) diff --git a/adafruit_is31fl3731/rgbmatrix5x5.py b/adafruit_is31fl3731/rgbmatrix5x5.py index 52fdb1f..7f73539 100644 --- a/adafruit_is31fl3731/rgbmatrix5x5.py +++ b/adafruit_is31fl3731/rgbmatrix5x5.py @@ -1,4 +1,8 @@ # SPDX-FileCopyrightText: Tony DiCola 2017 for Adafruit Industries +# SPDX-FileCopyrightText: Melissa LeBlanc-Williams 2021 for Adafruit Industries +# SPDX-FileCopyrightText: David Glaude 2021 +# SPDX-FileCopyrightText: James Carr 2021 + # # SPDX-License-Identifier: MIT @@ -9,7 +13,7 @@ CircuitPython driver for the IS31FL3731 charlieplex IC. -* Author(s): Tony DiCola, Melissa LeBlanc-Williams, David Glaude +* Author(s): Tony DiCola, Melissa LeBlanc-Williams, David Glaude, James Carr Implementation Notes -------------------- @@ -37,9 +41,8 @@ class RGBmatrix5x5(IS31FL3731): width = 25 height = 3 - # pylint: disable=too-many-arguments - def pixelrgb(self, x, y, r, g, b, blink=None, frame=None): + # pylint: disable=too-many-arguments """ Blink or brightness for x, y-pixel @@ -51,48 +54,40 @@ def pixelrgb(self, x, y, r, g, b, blink=None, frame=None): :param blink: True to blink :param frame: the frame to set the pixel """ - x = (4 * (3 - x)) + y + x += y * 5 - super().pixel(x, 0, g, blink, frame) - super().pixel(x, 1, r, blink, frame) + super().pixel(x, 0, r, blink, frame) + super().pixel(x, 1, g, blink, frame) super().pixel(x, 2, b, blink, frame) - # pylint: disable=inconsistent-return-statements - # pylint: disable=too-many-return-statements - # pylint: disable=too-many-branches - @staticmethod def pixel_addr(x, y): - # pylint: disable=duplicate-code lookup = [ (118, 69, 85), (117, 68, 101), (116, 84, 100), (115, 83, 99), (114, 82, 98), - (113, 81, 97), - (112, 80, 96), - (134, 21, 37), - (133, 20, 36), (132, 19, 35), + (133, 20, 36), + (134, 21, 37), + (112, 80, 96), + (113, 81, 97), (131, 18, 34), (130, 17, 50), (129, 33, 49), (128, 32, 48), (127, 47, 63), - (121, 41, 57), - (122, 25, 58), - (123, 26, 42), - (124, 27, 43), (125, 28, 44), + (124, 27, 43), + (123, 26, 42), + (122, 25, 58), + (121, 41, 57), (126, 29, 45), (15, 95, 111), (8, 89, 105), (9, 90, 106), (10, 91, 107), - (11, 92, 108), - (12, 76, 109), - (13, 77, 93), ] return lookup[x][y] diff --git a/examples/is31fl3731_keybow_2040_rainbow.py b/examples/is31fl3731_keybow_2040_rainbow.py index 92088a1..098ce37 100644 --- a/examples/is31fl3731_keybow_2040_rainbow.py +++ b/examples/is31fl3731_keybow_2040_rainbow.py @@ -19,7 +19,7 @@ import math import board -import adafruit_is31fl3731 +from adafruit_is31fl3731.keybow2040 import Keybow2040 as Display # pylint: disable=inconsistent-return-statements # pylint: disable=too-many-return-statements @@ -64,7 +64,7 @@ def hsv_to_rgb(hue, sat, val): i2c = board.I2C() # Set up 4x4 RGB matrix of Keybow 2040 -display = adafruit_is31fl3731.Keybow2040(i2c) +display = Display(i2c) step = 0 diff --git a/examples/is31fl3731_pillow_animated_gif.py b/examples/is31fl3731_pillow_animated_gif.py index e33f626..9d22cd8 100644 --- a/examples/is31fl3731_pillow_animated_gif.py +++ b/examples/is31fl3731_pillow_animated_gif.py @@ -57,13 +57,10 @@ loops = 1 # IS31FL3731 only supports 0-7 -if loops > 7: - loops = 7 +loops = min(loops, 7) # Get the frame count (maximum 8 frames) -frame_count = image.n_frames -if frame_count > 8: - frame_count = 8 +frame_count = min(image.n_frames, 8) # Load each frame of the gif onto the Matrix for frame in range(frame_count): diff --git a/examples/is31fl3731_rgbmatrix5x5_rainbow.py b/examples/is31fl3731_rgbmatrix5x5_rainbow.py index 60bba4d..d6b2442 100644 --- a/examples/is31fl3731_rgbmatrix5x5_rainbow.py +++ b/examples/is31fl3731_rgbmatrix5x5_rainbow.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021 Sandy Macdonald, David Glaude +# SPDX-FileCopyrightText: 2021 Sandy Macdonald, David Glaude, James Carr # SPDX-License-Identifier: MIT """ @@ -10,7 +10,7 @@ This example is for use on the Pico Explorer Base or other board that use the same SDA/SCL pin. -Author(s): Sandy Macdonald, David Glaude. +Author(s): Sandy Macdonald, David Glaude, James Carr """ import time @@ -18,14 +18,11 @@ import busio import board -from adafruit_is31fl3731.RGBmatrix5x5 import RGBmatrix5x5 as Display - -# pylint: disable=inconsistent-return-statements -# pylint: disable=too-many-return-statements -# pylint: disable=invalid-name +from adafruit_is31fl3731.rgbmatrix5x5 import RGBmatrix5x5 as Display def hsv_to_rgb(hue, sat, val): + # pylint: disable=too-many-return-statements """ Convert HSV colour to RGB @@ -35,7 +32,7 @@ def hsv_to_rgb(hue, sat, val): """ if sat == 0.0: - return (val, val, val) + return val, val, val i = int(hue * 6.0) @@ -47,61 +44,91 @@ def hsv_to_rgb(hue, sat, val): i %= 6 if i == 0: - return (val, t, p) + return val, t, p if i == 1: - return (q, val, p) + return q, val, p if i == 2: - return (p, val, t) + return p, val, t if i == 3: - return (p, q, val) + return p, q, val if i == 4: - return (t, p, val) + return t, p, val if i == 5: - return (val, p, q) + return val, p, q + + # Will never reach here but it keeps pylint happier + return val, val, val # Create the I2C bus on a Pico Explorer Base -i2c = busio.I2C(board.GP21, board.GP20) +i2c = busio.I2C(board.GP5, board.GP4) # Set up 5x5 RGB matrix Breakout display = Display(i2c) -for y in range(0, 5): - for x in range(0, 5): - display.pixelrgb(x, y, 255, 0, 0) - time.sleep(0.1) -time.sleep(0.5) +def test_pixels(r, g, b): + # Draw each row from left to right, top to bottom + for y in range(0, 5): + for x in range(0, 5): + display.fill(0) # Clear display + display.pixelrgb(x, y, r, g, b) + time.sleep(0.05) -for y in range(0, 5): - for x in range(0, 5): - display.pixelrgb(x, y, 0, 255, 0) - time.sleep(0.1) -time.sleep(0.5) +def test_rows(r, g, b): + # Draw full rows from top to bottom + for y in range(0, 5): + display.fill(0) # Clear display + for x in range(0, 5): + display.pixelrgb(x, y, r, g, b) + time.sleep(0.2) -for y in range(0, 5): + +def test_columns(r, g, b): + # Draw full columns from left to right for x in range(0, 5): - display.pixelrgb(x, y, 0, 0, 255) - time.sleep(0.1) + display.fill(0) # Clear display + for y in range(0, 5): + display.pixelrgb(x, y, r, g, b) + time.sleep(0.2) -time.sleep(0.5) -step = 0 +def test_rainbow_sweep(): + step = 0 -while True: - step += 1 - for y in range(0, 5): - for x in range(0, 5): - pixel_hue = (x + y + (step / 20)) / 8 - pixel_hue = pixel_hue - int(pixel_hue) - pixel_hue += 0 - pixel_hue = pixel_hue - math.floor(pixel_hue) + for _ in range(100): + for y in range(0, 5): + for x in range(0, 5): + pixel_hue = (x + y + (step / 20)) / 8 + pixel_hue = pixel_hue - int(pixel_hue) + pixel_hue += 0 + pixel_hue = pixel_hue - math.floor(pixel_hue) - rgb = hsv_to_rgb(pixel_hue, 1, 1) + rgb = hsv_to_rgb(pixel_hue, 1, 1) - display.pixelrgb( - x, y, int(rgb[0] * 255), int(rgb[1] * 255), int(rgb[2] * 255) - ) + display.pixelrgb( + x, y, int(rgb[0] * 255), int(rgb[1] * 255), int(rgb[2] * 255) + ) - time.sleep(0.01) + time.sleep(0.01) + step += 3 + + +while True: + test_pixels(64, 0, 0) # RED + test_pixels(0, 64, 0) # GREEN + test_pixels(0, 0, 64) # BLUE + test_pixels(64, 64, 64) # WHITE + + test_rows(64, 0, 0) # RED + test_rows(0, 64, 0) # GREEN + test_rows(0, 0, 64) # BLUE + test_rows(64, 64, 64) # WHITE + + test_columns(64, 0, 0) # RED + test_columns(0, 64, 0) # GREEN + test_columns(0, 0, 64) # BLUE + test_columns(64, 64, 64) # WHITE + + test_rainbow_sweep() From cba39c18e96f7d7f1ae62335bbc029c436777d9c Mon Sep 17 00:00:00 2001 From: James Carr Date: Mon, 21 Jun 2021 23:10:09 +0100 Subject: [PATCH 10/10] Get the docs to generate --- adafruit_is31fl3731/keybow2040.py | 2 +- adafruit_is31fl3731/rgbmatrix5x5.py | 2 +- docs/api.rst | 13 +++++++++++-- docs/examples.rst | 12 ++++++------ 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/adafruit_is31fl3731/keybow2040.py b/adafruit_is31fl3731/keybow2040.py index d8946a9..58677aa 100644 --- a/adafruit_is31fl3731/keybow2040.py +++ b/adafruit_is31fl3731/keybow2040.py @@ -3,7 +3,7 @@ # SPDX-License-Identifier: MIT """ -`adafruit_is31fl3731.charlie_bonnet` +`adafruit_is31fl3731.keybow2040` ==================================================== CircuitPython driver for the IS31FL3731 charlieplex IC. diff --git a/adafruit_is31fl3731/rgbmatrix5x5.py b/adafruit_is31fl3731/rgbmatrix5x5.py index 7f73539..916c9a7 100644 --- a/adafruit_is31fl3731/rgbmatrix5x5.py +++ b/adafruit_is31fl3731/rgbmatrix5x5.py @@ -7,7 +7,7 @@ # SPDX-License-Identifier: MIT """ -`adafruit_is31fl3731.RGBmatrix5x5` +`adafruit_is31fl3731.rgbmatrix5x5` ==================================================== CircuitPython driver for the IS31FL3731 charlieplex IC. diff --git a/docs/api.rst b/docs/api.rst index 6a34fc9..95e7dea 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -10,11 +10,20 @@ .. automodule:: adafruit_is31fl3731.charlie_wing :members: +.. automodule:: adafruit_is31fl3731.keybow2040 + :members: + +.. automodule:: adafruit_is31fl3731.led_shim + :members: + .. automodule:: adafruit_is31fl3731.matrix :members: -.. automodule:: adafruit_is31fl3731.scroll_phat_hd +.. automodule:: adafruit_is31fl3731.matrix_11x7 :members: -.. automodule:: adafruit_is31fl3731.led_shim +.. automodule:: adafruit_is31fl3731.rgbmatrix5x5 + :members: + +.. automodule:: adafruit_is31fl3731.scroll_phat_hd :members: diff --git a/docs/examples.rst b/docs/examples.rst index 2162570..e14b4b8 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -47,17 +47,17 @@ libraries. CircuitPython does not support PIL/pillow (python imaging library)! :caption: examples/is31fl3731_pillow_numbers.py :linenos: -Colorfull Examples ------------------- +Colorful Examples +----------------- -Example that work on the RGB Led Shim. +Example that works on the RGB Led Shim. .. literalinclude:: ../examples/is31fl3731_ledshim_rainbow.py :caption: examples/is31fl3731_ledshim_rainbow.py :linenos: -Example that work on the RGB Matrix 5x5. +Example that works on the RGB Matrix 5x5. -.. literalinclude:: ../examples/is31fl3731_RGBmatrix5x5_rainbow.py - :caption: examples/is31fl3731_RGBmatrix5x5_rainbow.py +.. literalinclude:: ../examples/is31fl3731_rgbmatrix5x5_rainbow.py + :caption: examples/is31fl3731_rgbmatrix5x5_rainbow.py :linenos: