32 x 32 Matrix / RGB Bonnet - Can't set odd rows

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.