I experienced a reproducible crash attempting to run two is31fl3741 with the two RGB Matrix boards in serial over STEMMA QT connector. I was using unmodified CircuitPython demo code from the learn guide with the slow rainbow color sweep. Devices are listed below. Problem is reproducible 100% of all listed devices. Note: using just one RGB Matrix the code appears to run fine on the same dev boards. Used two short 50mm STEMMA QT male to STEMMA QT male connectors. Tried demo with power over USB C and also with only power from a charged lipo battery.
In all cases with two matrixes in serial, the demo runs for 10 seconds or so (don't quote me on the exact time) and appears to work mirroring the actions on both matrix boards. Then it crashes and cause the mcu to restart (much like a soft reboot when a file is saved). Reproducible every time, with any combo mcu board and power option.
The example code runs fine with a single RGB Matrix board. When a second RGB Matrix is added in serial, the code appears to work at first mirroring the two the RGB Matrix boards. But after some number of seconds it crashes and the board reboots.
I tested this rainbow color sweep sample code from the learn guide on all the STEMMA QT-equipped dev boards I had handy: Adafruit Trinkey RP2040, Feather RP2040, SparkFun Thing Plus Lipo 2040, Pimoroni Pico Lipo 2040. All were running freshly flashed CircuitPython Version '7.0.0 on 2021-09-20'
This is not a critical issue for me. I was trying to wire two RGB Matrix boards in serial over STEMMA QT to see what happened. Code is below. Besides added import os and printing out os.uname() this is the demo from the Learn Guide at https://learn.adafruit.com/adafruit-is3 ... cuitpython
Code is shown here for convenience:
Code: Select all
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
import time
import busio
import board
import adafruit_is31fl3741
from random import randint
from rainbowio import colorwheel
from adafruit_is31fl3741.adafruit_rgbmatrixqt import Adafruit_RGBMatrixQT
import os
print(os.uname())
is31 = Adafruit_RGBMatrixQT(busio.I2C(board.SCL, board.SDA), allocate=adafruit_is31fl3741.PREFER_BUFFER)
is31.set_led_scaling(0xFF)
is31.global_current = 0xFF
is31.enable = True
wheeloffset = 0
while True:
for y in range(9):
for x in range(13):
is31.pixel(x, y, colorwheel((y * 13 + x) * 2 + wheeloffset))
wheeloffset += 1
is31.show()