I recently purchased the Adafruit RGB Matrix Bonnet and the 64x64 RGB LED Matrix - 2.5mm Pitch to use with my Raspberry Pi 3 A+
https://www.adafruit.com/product/3211
https://www.adafruit.com/product/3649
I followed this tutorial, but was not able to get any LEDs to show up. I then tried the rotating-block-generator.py file, and I did at least see some activity on the board. However, it was only showing LEDs on the top 16 rows, nothing on the next 16 rows, showing on the next 16 rows, and nothing on the final 16 rows. It also looked like the rotating block was off center. The terminal command I used was: sudo python3 rotating-block-generator.py --led gpio-mapping=adafruit-hat --led-cols=64 --led-rows=64 --led-slowdown-gpio=3
I looked on the forum for people who may have had a similar problem to me, and found these two posts. However, the first one seems to have not been using the adafruit bonnet, and the second one was never given a solution
viewtopic.php?p=907901&hilit=64x64#p907901
viewtopic.php?f=47&p=867747
I looked into the python files and found that the two commands seemed to be SetPixel() and SwapOnVSync() to set pixels and then display them on the board. I modified the simple square python script just to see if pixels were dead or not. My conclusions were:
- Rows 0-15 are functioning, however they will only turn varying shades of blue
- Rows 16-31 are physically not functioning, and if the y value of 16-31 is used in the SetPixel function, it will just set the row value, -15. i.e. if 17 is used it will set it for row 2
- Rows 32-47 are working perfectly and as expected
- Rows 48-63 are physically not functioning, and if the y value of 48-63 is used in the SetPixel function, it will just set the row value, -15 i.e. if 50 is used, it will set it for row 35
I attached some pictures as well as the code I was using for testing:
https://ibb.co/LCXcrFJ
https://ibb.co/QjMKWjp
Code: Select all
#!/usr/bin/env python
from samplebase import SampleBase
import time
#sudo python3 simple-square2.py --led-gpio-mapping=adafruit-hat --led-cols=64 --led-rows=64 --led-slowdown-gpio=3
class SimpleSquare(SampleBase):
def __init__(self, *args, **kwargs):
super(SimpleSquare, self).__init__(*args, **kwargs)
def run(self):
offset_canvas = self.matrix.CreateFrameCanvas()
x = 0 #Range 0-63
y = 0 #Range 0-63
#Notes on Y
#Range 16-31 is actually pixels 0-15
#Range 48-63 is actually pixels 32-47
offset_canvas.SetPixel(x, y, 255, 255, 255)
offset_canvas = self.matrix.SwapOnVSync(offset_canvas)
time.sleep(5)
# Main function
if __name__ == "__main__":
simple_square = SimpleSquare()
if (not simple_square.process()):
simple_square.print_help()
Thanks!