Hi, first post, looking for some advice or assistance…
With the following hardware (from Pimoroni):
- P4-2121-16S-HL 2P2751A 32x32 LED Matrix
- Adafruit RGB Matrix Bonnet
- Raspberry Pi 3 running DietPi
and either of the following libraries (from GitHub):
- hzeller/rpi-rgb-led-matrix
- adafruit/rpi-rgb-led-matrix
Whatever method I attempt to drive the panel with (C or Python, my own code or any of the included Samples/ Utils) I cannot get the odd rows on my panel to light. Have iterated through almost all of the possible configurations (row address type/scan mode/multiplexing etc) in an attempt to resolve the issues but everything outside of the settings listed in the code below makes it worse.
This is the best I can get…
However, I have noticed that when I step through the display with SetPixel (as in the code below) instead of dropping down a row as Y increments the panel lights the same (even) row twice, with the LEDs getting visibly brighter on the pass that should be lighting the odd-numbered row.
Here is a video of this weird double lighting (YouTube)
Finally, here is the code I used to step through each pixel and discovered it was lighting each even row twice:
#!/usr/bin/env python3
import time
import sys
from rgbmatrix import RGBMatrix, RGBMatrixOptions
# Configuration for the matrix
options = RGBMatrixOptions()
options.rows = 32
options.cols = 32
options.chain_length = 1
options.parallel = 1
options.hardware_mapping = 'adafruit-hat'
options.row_address_type = 0
options.scan_mode = 0
options.multiplexing = 0
options.gpio_slowdown = 2
matrix = RGBMatrix(options=options)
# Try to set a pixel
x = 0
y = 0
r = 255
g = 0
b = 0
while y < 32:
while x < 32:
matrix.SetPixel(x, y, r, g, b)
x += 1
print (x, " - ", y)
time.sleep(.05)
x = 0
y += 1
# Wait for CTRL-C
try:
print("Press CTRL-C to stop.")
while True:
time.sleep(100)
except KeyboardInterrupt:
sys.exit(0)
I am starting to think that I have faulty hardware but any help is much appreciated.