32x32 RGB LED Matrix, Node.js, Raspberry Pi, PixelPusher, Polymer
Since i made LED matrix web controlled on a 8x8 monochrome matrix, i had the urge to extend it and do it in a 32x32 color matrix. And so after some years i did just that, i bought one 32x32 RGB led matrix and started to investigate my options.
Upon some research i found this github repo from hzeller which contains some great documentation on wiring and setting things up, he also has a PixelPusher protocol implementation which i end up using rpi-matrix-pixelpusher.
I then proceeded to create one editor with Polymer in order to interact with the matrix, the editor allows one to pick two colors, foreground (LMB) and background (RMB) and then paint over a squared matrix matching the 32x32 RGB LED matrix, the editor also had a rubber and a quick shortcut to switch foreground and background colors as a bonus, it allows to choose the color with transparency, which in a LED case reflects on it's intensity and i could not have done it without ColorPicker which i had to fork in order to provide a context for the instance for it to work inside a Polymer based component.
At first i tried it with a Raspberry Pi 2 but it could not handle properly the canvas server and the led matrix at the same time it was solved with a upgrade to a Raspberry Pi 3 in which it worked smoothly.
I took it for a test drive by creating a Facebook event in which 31 friends participated, with soo many people at the same time the lag was dully noted between the action and the camera stream, sometimes taking more than 5 seconds for the action to be visible on camera.
Even though it was great fun and one experiment to repeat.
A more thorough tutorial will follow in the future when some of the quirks have been solved.