32x32 Pixel RGB LED Matrix

XCore Project reviews, ideas, videos and proposals.
Posts: 13
Joined: Sat May 17, 2014 11:51 am

32x32 Pixel RGB LED Matrix

Post by lberezy »

Version: 1
Status: Alpha
License: BSD
Download: https://github.com/lberezy/rgb-matrix-xcore


My StartKit arrived in the mail a few days ago so I decided to get to know how it all worked with a small project. I decided to have a go at interfacing a generic 32x32 pixel RGB LED matrix I found from an online seller in China. These panels are completely without documentation, but I found Adafruit were selling a similar (nay, identical) panel with a bit of provided code for the Arduino, which was invaluable for reverse-engineering the board.

Turns out its a semi-parallel sequential control system in which you clock in two rows of pixel data at a time through a shift register before latching it to the LED drivers.

The Xmos chip appears to be super powerful for this task and after reading just a bit of the documentation I got something working!

I did notice that the "killer app" for the XCore seems to be its parallel threaded architecture, so if anyone could give me some advice as to how best modify my code to best make use of this, that would be fantastic! (there's a section in the refreshDisplay() routine that could be clocking in pixel data whilst waiting on the delay there)

I've tried to implement Binary Coded Modulation in order to get greater bit-depth out of the panel (LEDs can only be ON or OFF and must be constantly refreshed), but it's not working so great. If anyone has any experience doing software PWM or BCM, then that would be a massive help.

Anyway, the code is up on GitHub with some more information, go check it out!