Building huge displays with LED strips


Building RGB LED displays is one of the most interesting programming and engineering challenges we see here on Hackaday. Not only do the creators of large displays and LED cubes have to deal with the power requirements of driving a whole bunch of LEDs, but there’s also the issue of getting the frame rate high enough to display video. It’s a non-trivial task, but [Paul Stoffregen] has an interesting solution. He wrote an LED strip library that can control eight meter-long LED strips that can also be used on daisy chained Teensy 3.0 microcontrollers for really large displays.

[Paul]‘s LED library works with LED strips based on the WS2811 LED controller IC. These chips are the most common controller chips for the individually controllable LED strips you can find at Adafruit or hundreds of Chinese resellers. The library requires DMA transfer to display images, so if you’re looking to build a ginormous RGB LED display, you might want to pick up a few of [Paul]‘s Teensy 3.0 boards

[Paul] also created a Processing app that takes a video file and turns it into serial data for his LED strip library. You can check out a video of this app, library, and a 60×32 RGB LED display after the break.


  1. polossatik says:

    Seing all those leds reminds one again how many pixels even vga resolution actually has….

  2. W00f says:

    Damn, too bad it don’t support LDP8806; i could have tried it on my 16*32 matrix :’(

  3. Galane says:

    VGA is 307200 pixels. How much would an LED strip VGA display cost?

  4. Tom says:

    Finally, now i can make my 60 meter wide, 2,300 000 euro costing Full HD video wall!

  5. Another Tom says:

    I see dead pixels..

  6. rGd says:

    he didn’t hear about the niftyled project, yet :)

  7. Whatnot says:

    At this rate somebody on hackaday is going to finalize a HD LED display before the industry did.

  8. “for really large displays” … who did the math? How large a display could you bild with chained teensy 3.0′s?

    • That would be me. I did the math. I’ve been working on this library and its documentation for quite some time. A tremendous amount of analysis, design and careful verification went into making this scalable without performance loss.

      Of course there are always going to be challenges as you scale up to very large sizes… mostly the cost of the LEDs, their power requirements, and the man-hours required to physically build the problem. But here are the technical issues….

      As you scale up to an extremely large LED array, assuming you follow the 1000 LEDs per Teensy 3.0 guideline, eventually a few technical problems will come into play.

      USB bandwidth is the main issue. With 30 Hz video, each Teensy gets 180 kbytes/sec, and if you play a 60 Hz progressive video, it’s 360 kbytes/sec. Each Teensy can easily handle these speeds, and each runs completely separate, other than listening for the frame sync pulse. Somewhere around 20 to 40 Teensys, the total is going to become a substantial part of USB 2.0 bandwidth. You probably want to keep the total under half of USB’s capacity. You might need USB 3.0. No matter what, you must use good quality USB hubs. Single-TT HUBs will cause problems, but if you buy Mulit-TT hubs, you should be ok.

      Another issue is transmitting the frame sync signal. At some point, perhaps even as few as 8 boards, you’ll probably need to use a 50 to 100 ohm resistor on the frame sync pin. This is more a function of the physical wire you use. Using a good quality cable like CAT5 twisted pair with the ground and frame sync on a pair will help. If the wire runs a different path than the ground (as I did in this 1920 LED demo), the signal can get ringing and other transmission line effects.

      At huge sizes, the you’ll probably need to add buffer chips to transmit the frame sync pulse to each group of other boards. This too is pretty easily solved. However, with only a wire, it doesn’t matter which board is the master sending the pulse and which others receive it. That makes things very easy. If you add unidirectional buffer chips like a 74HC245, then it’ll become important to make sure the intended board is the master. The first board in the list in movie2serial’s setup() is the master. You’ll just need to make sure the port corresponding to the board with those buffers is listed first.

      The final problem, which I doubt would ever be an issue on any modern computer, might be lack of CPU time to process the original video material into the many streams for each board. The code might need to be rewritten in C. However, running on a MacBook Air (certainly not the fastest machine), the demo was using 8% CPU time. I didn’t investigate the CPU usage in detail, but it was approximately the same just running without sending to any boards, so most of that 8% is probably the video decode, screen updates, or other stuff Java and Processing are doing to play the video.

  9. novel says:

    Hi Paul
    I was checking the project you did with the LPD8806 the “led wall”. I have some strips of this type and by now i got bored having the same pattern all the time, i want to do something different and the ” led wall ” is my answer, but smaller, so i can create my own patterns.
    How was the connection in that project? do you have a block diagram?
    Once you download videos to the mini-pc and then by connecting the teensy does it imediatly start sending data to the display? don’t you need an external monitor to see and select what you want to send to the display?
    Why did you include a mini-pc? do you really need it? is not enough just having the iphone?
    Thank you

  10. Michal says:

    There is also a system to control huge projects and any-shape LED screens –

  11. kathy says:

    I’m interested in assembling an LED light curtain which will variously display patterns (SD card controller) and/or input from a webcam. Kinda like a coarse, flexible monitor. In the end Im seeking to create a simple, ineffective invisibility shield to be utilized as part of a project at the Burning Man. As i look around the web trying to figure it all out I see a bunch of LED strips and LED “pixels” which use this controller or that and Im trying to figure out what the differences are and whether they’re pertinent to my purpose. In particular Ive seen ws2811 LED pixels/addressable strips like this one and Im now beginning to see some products with a WS2811 chip. Does anyone know how these two parts differ in practice?

  12. hussain says:

    does anyone know the power requirement for 92 * 32 pixels led screen. plz do answer anyone of you.

    • Each LED needs approx 1/4 watt if you turn it on fully white (all 3 colors to 255). 2944 LEDs at 0.25 watts each is 736 watts. Remember to factor in power supply efficiency. Cheap switching power supplies are usually about 70% efficient, so to output 736 watts, they’ll draw about 1050 watts.

      My OctoWS2811 library page has more detailed advice about powering up large LED arrays, plus a number of other practical issues you’ll face in building such a project.

  13. Michal says:

    We did one similar installation, 14x3m approximately:

    It’s also made from LED strips and controlled over LED Strip Studio system. The nice thing about strips is, the shape of the LED screen doesn’t have to be rectangle … or it doesn’t have to be plain/2D.

  14. Thomas says:

    Hi there,

    I am thinking about ceating a suit, fully covered by RGB leds, with a pich of somehow 1,6cm. I’d like to run video and animations on it…. battery powered….

    not another LED T-Shirt!

    my first calculations are about that i need to have aprox. 5.000 LED divided into aprox. 120 strips, distributed over boby, back, arms and legs,

    LED’s may not need to run at full brightness.

    Not only In terms of power I have no clue how to deal with it using battery power for some hours. Also cableing of the many strips makes me worry.

    I’d like to run it with arduino or similar,

    it would be great if someone of you could give me some hints please or should I better forget it.

    thank you in advance


  15. Does it can work like a normal computer display?how much does it cost to build one like 5m x 3m? Thanks

  16. Dayle Grady says:

    This is awesome but the power requirement to drive all these is insane. isn’t there a way to refresh these at a rate that is faster than the eye so you can drive 1000LED’s for eg, but power much less than that?

    • The controller WS2811 chip inside the LED package already does this. It rapidly pulses the 3 LEDs, depending on the RGB color you write. If you write color #800000, the red LED is rapidly pulsed at 50% duty cycle, causing it to use about half the power compared to writing a bright red with color #FF0000.

      At Maker Faire in San Mateo last year, the Crashspace guys brought a 2000 LED display, using about the same number of LEDs I used in this demo, but their’s ran the LEDs at no more than about 15%. It was on large wooden panels painted black and it still looked pretty good when viewed indoors during the day.

      The two obvious downsides are you get a limited range of colors and intensities by using only the bottom 25 to 38 numbers from a 0 to 255 range, and the whole thing just isn’t nearly as bright.

      But if you’re thinking there might be some magical trick where you can get the brightness and full range of color and intensity by somehow pulsing faster than human perception, then no. You simply can’t get the intensity without the power.

      • Dayle Grady says:

        Hmm thanks Paul. I wonder where I remember reading something like that, that now has me confused. Being the man in the know I certainly believe you, unfortunately it isn;t what I wanted to hear :)

  17. Erwin says:

    heres the link.. i think its an amazing project and i want to be able to replicate

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s