RGB LED matrixes ! FUN – FUN – FUN *UPDATED, March 15th – 2015*

I’m still very ill for the moment, but besides working half-time, and spending most of the rest of my time sleeping, I still try to learn some new things 🙂 I got a few RGB LED matrixes for Valentines’ day … (I bought Christel an extra AppleTV to watch Netflix in the bath) Sparkfun & AdaFruit both sell these 32×32 pixels LED matrixes. (so, 1024 LEDs per panel) I currently own 18 of these panels, and my goal will be to connect 60 of them, to form a large display. (320×192 pixels will be almost 2 meters width by 1,20 meters height)

At start, I used one Teensy 3.1+ board, together with one of those LED matrixes.
Next, I made a test with 6 of these panels, connected to 1 teensy board. (good for 96×64 pixels) Currently, I have 3 teensy boards, each controlling 5 panels. (good for a total of 160×96 pixels) During next weekend, I will connect the last 3 panels, so I will have 192×96 pixels. (For my birthday, upcomming in April, I will surely get another 12 or 18 of these panels)
Because everything is “plug-and-play” if you use the TeensyMatrix PCBs, you have your array “up-and-running” in less then 15 minutes !

At first, I wrote a conversion software, creating raw byte-stream files, that could be read of an SD card, 1-on-1 onto the Teensy, passing it directly to the framebuffer of the LED panels. This gave me a 24bits colors – 25 fps – 140 Hz refresh rate. (overclocking the Teensy 3.1+ to 144 Mhz) Due to my health-issues, I can only work on this during weekends, about 2 (max. 4) hours per weekend !

Next, I wrote a dotNET application, so I could stream the images directly to the Teensy 3.1+ boards. (they use USB1.1, so max. 12 mBit – connected to a 10-port USB2.0 hub (480 Mbit) I created 3 separate threads (one for every teensy), keeping them syncronized by sending the last 64 bytes to every teensy syncronously. I “only” get 18 fps, but because of the high refreshrate, this is still acceptable. Also, because of the simultanous threads for every teensy, this will stay the same, framerate will not drop, even not when finally connecting 10 teensys 🙂

It’s very hard to capture those RGB panels on video. In reality the colors are more accurate/colorful. Also, the image on the display is super-stable (120 & 140 Hz !) Because the capture-frequency of the videocamera is close to the refresh-rate of the RGB panel, you get this “bad quality”. You need to believe me on my word that in reality, everything is super fine ! 🙂

Here are 2 movies of the 96×64 tests:
Teletubbies at 96×64 pixels – demo movie
WipeOut at 96×94 pixels – demo movie

Here are 2 movies of the 160×96 tests:
Aquarium at 160×96 pixels – demo movie
‘Need for Speed’ at 160×96 pixels – demo movie

Update – march 1st – 2015
I added my last 3 panels (for the moment) I now have 192×96 pixels.
(with 3 Teensys, each teensy controlling 192×32 pixels)
Also, I started writing to the framebuffer directly, instead of using the SmartMatrix API, this increased my framerate a bit 🙂
Today I also ordered 14 extra panels (along with a few extra Teensy 3.1+ boards)
Actually, Christel is paying these, for my upcomming birthday in April ! So, somewhere in April, I will have 256 x 128 pixels 🙂

Some extra movies (with the new 192×96 pixels resolution)
I’m to Sexy – Right said Fred – 192×96 pixels – demo movie
‘Need for Speed’ – Koenigsegg race – 192×96 pixels – demo movie

Update – march 8th – 2015
Last weekend, I started designing my own Truss system. Drawing in Solidworks only took about 2 hours or so. Since then, I started printing the “plates” to hold the bars for this system together. I use 10mm aluminium hollow pipe. Costs about 2.60 euro per 2 meters.
Sure beats the hell out of the 100+ euro per meter some sellers ask for Trusses 🙂
So, after getting the aluminium tubes, I did fit together 3 sections. (did take me about 5 minutes to assemble)
The pieces to 3D print are fairly simple. I uploaded it to Thingiverse, check it out here.

Update – march 15th – 2015
Last night, I finished mounting the first Truss (2 meters) – see picture 3 🙂

This entry was posted in Blog, Digital Vision, Electronics, Mechanics. Bookmark the permalink.

4 Responses to RGB LED matrixes ! FUN – FUN – FUN *UPDATED, March 15th – 2015*

  1. swets says:

    echt super mooi , die displays’.
    ik ben ook wel eens met die led displays van Baco bezig geweest…. maar zo goed heb ik ze nooit aan de gang gekregen….

    • Kris says:

      Hey Arjan,

      Leuk dat ik jou hier op mijn webstek mag aantreffen 🙂
      Ik kijk af en toe ook wel eens op jou site. (en met interesse volg ik je CNC avonturen en je propeller clock enzo)
      Ik ben een beetje bezeten door LED matrixen. M’n allereerste display was met het handje gesoldeerd. (128×64 LEDs, single-color)
      de 2de display was ook single-color, en heb ik nogsteeds, die was gebouwd uit 8×8 matrixjes, en een MAX7219 per matrixje. (ooit voor minder dan 20 eurocent per stuk, 150 van die MAX7219 kunnen kopen van een overstock)
      En nu die RGB LEDmatrixen, net een droom die uitkomt 🙂

      Nuja, met m’n achtergrond als analyse-programmeur, is de software op zich, een peuleschil voor mij 🙂


  2. Hi Kris,

    I’m Louis the SmartMatrix Library author. Really nice project, that’s a big display!

    I ported Fadecandy to run on the Teensy 3.1 and drive SmartMatrix panels. The project is still a work in progress, mostly finishing up the USB driver to have unique info and add documentation, but you can use it now. You might get better framerate and color correction. Micah spent a bunch of time making sure the USB stream is fast.



    • Kris says:

      Hi Louis,

      Nice to meet you 🙂
      Because my matrix is still “growing”, I will certainly have a look at the FadeCandy this weekend.
      (after the last upcomming growth-spurt, I will definitely document this project on my blog.
      Thank you for this information and keep up the good work !

      best regards from Belgium,

Leave a Reply

Your email address will not be published. Required fields are marked *