OK. Long time, again, since last post and things have taken a U-Turn. I have decided not to use the Peggy design. It was a great starting point but I started to see more potential in the Arduino. It just so happens that a post on the Arduino forum caught my eye about a person who made a Shift Register library for the Arduino. This library used a chain of Shift Registers to give individual control over each lights brightness. Also included were functions to group lights into sets of 3 which allows easy setup of RGB LED’s. They called this library ShiftPWM. It was allowing non PWM shift registers to do PWM via software control. Within a short space of time and some discussion on the the forum boards improvements were made to the code that increased its performance allowing a whopping 768 LED count with 32 levels of brightness. That is 100 more LED’s than the Peggy could control but this would use ALOT of Shift Registers to achieve a matrix. I tested the setup and it worked very well and it was as easy as “point and set” to get the PWM working. I asked the library creator (ElcoJacobs) if the library could be adapted to work on a matrix. He said that he would look into but that he didn’t have a matrix to test on. A couple of weeks later he came back with ShiftMatrix. A library using the same techniques but setup to run a matrix of LED’s instead of a chain.

I did some testing with this and was able to help identify some issues which he was able to fix. Now I have a stable matrix updating at 50hz that can handle 768 LED’s with 32 brightness levels. ShiftMatrix like ShiftPWM is a set and forget PWM system. You just tell the library which LED, x and y co-ordinates, and what brightness level you want and then the library does all the shifting bits and PWM calc for you.

I immediately set about revising my Processing Code to work with this matrix and it was VERY easy to get working. Within the space of one day I had a 16×16 test matrix running with streaming video. And best of all I think I can scale this up. By making it modular and just streaming out more data. More about that in a minute.

My new goal. To try and make a 16×16 RGB matrix and have video stream to that. If that can be accomplished I then want to test being modular and make a second martrix (with its own controlling Arduino). If I can sync the two together then I should be able to scale up to 32×32 RGB. If I can accomplish this I will be VERY happy! 🙂

Sadly I have not even begun to make the large matrix. Strangely that might turn out to be a blessing. If I can make the RGB test work then I would probably not have used it and if I do end up going Mono color I think it will be alot more than 25×25 like the Peggy. So I am fairly happy that I hadn’t had time to make it yet.

So now for the demo. This is 16×16, 15fps/32 brightness levels. Using just 1 Arduino, 2x MBI5026, 16xPNP transistors and 4x 8×8 Red LED matrix.

To get the library involved go to:

I hope to update again soon. I haven’t posted any code as I am still working on the Processing side of things.