
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.
Subscribe for weekly videos
Seing all those leds reminds one again how many pixels even vga resolution actually has….
Damn, too bad it don’t support LDP8806; i could have tried it on my 16*32 matrix :’(
Would you believe I made something similar for LDP8806 almost a year ago? It only does streaming from the computer, not locally generated graphics. The more expensive LDP8806 is much easier than WS2811 because it has flexible and easy timing requirements. All that program does is grab each packet and rapidly burst the bytes out the pins.
You can get my code for streaming to thousands of LDP8806s here:
http://forums.adafruit.com/viewtopic.php?f=47&t=25854&p=143049#p143049
So far, at least 2 projects have used it for large-scale LED projects. You can find photos and info at these pages:
http://www.dorkbotpdx.org/blog/armatronix/led_video_wall
http://hackrockcity.org/post/24363042425/domestar-may-2012-domestar-appeared-on-the
I believe at least one of these, maybe both, where covered by Hack-a-Day when they were published.
Of course, for a new project, my new OctoWS2811 library will save you a lot of money, because the WS2811 strips are much less expensive. It’s also possible to build projects that run without a PC.
VGA is 307200 pixels. How much would an LED strip VGA display cost?
I recently got a 5 meter/150 led individually addressable led strip in Shenzhen for about $24. (Adafruit sells a similar strip for $24 per *meter* last I checked)
So 307200 pixels / 150 pixels per strip = 2048 strips
2048 strips * $24 per strip = $49 152
Subtract a 30% from that and you’ll end up at about $35 000.
The display would be 21 meters (69 ft) wide and 15 meters (49 ft) high.
Back yard drive in!
You’d need a hell of a back yard. More like stick it on the hills a mile away and everybody watches it from their roof.
Wow, any guesses on wattage?
307200 leds at about 0.25 watt each = 76KW (all pixels full white)
At 120 volts that is 640 Amps
I don’t live in US so I can only guess what rating the main fuses in an average home there is, but in Sweden my last house had 3 x 25 Amp fuses @ 230 volt which should be like 3 x 50 Amp @ 120 volts in US.
So about about the same power draw as 4 to 5 medium sized houses maxed out….
It’s mixed. Common circuits from 15-40 amp generally. Rarely people install higher, sometimes even triple phase. I’d expect whomever does such things to be a machinist or electrician that likes their shop time.
Ha…. So that would mean 640 amp / 32 per house = 20 houses. The electrical bill for watching a movie on this would be really nasty … :-)
5 meters for $25 ? link please.
Just search AliExpress for “Dream color strip”
‘Dream color strip’ is not addressable.
Looks like this one is close
http://www.aliexpress.com/item/LED-dreaming-colorful-30Leds-M-Striplight-Several-hundred-kinds-of-transformation-method-warranty-2-years/506707633.html
Wow that site is hard to use.
You must’ve found the only one that isn’t! :-P
Sorry, no link. I bought it in person from the vendor at Seg Market in the Huaqiang Bei area when I was there with Ian from DangerousPrototypes on the Global Geek Tour.
Yeah, the best price I can see is 6.50 a meter. This project is 32 meters, so $208, bit pricey :P http://www.aliexpress.com/item/factory-wholesale-WS2811-IC-30LEDS-M-LED-digital-strip-Waterproof-DC12V-Free-Shipping-25m-lot/727243711.html
price isn’t too bad if you have a better use than ‘hey this is cool’. I could see a club do something like this on a bigger scale.
$6.50/meter is cheap…. but check the specs carefully. That one looks like 32 LEDs per meter. The strips used in the demo have 60 LEDs per meter, for a total of 1920 LEDs in 32 meters.
I paid(*) $380 plus $40-something for shipping to get the 1920 LEDs (32 meters) used in the demo. At the time, that seemed to be the cheapest available on Aliexpress. As you can see in the video, I neglected to buy any spares! For a real project, always buy some spares, especially if getting the cheapest ones directly from China. The three power supplies were $20 each, plus $21 shipping, and the wood, paint, and misc supplies added about $25. I already had the Teensy 3.0s.
(*) Actually, PJRC paid for all this stuff…. :-)
Finally, now i can make my 60 meter wide, 2,300 000 euro costing Full HD video wall!
Tom’s two-thousand inch TV. Everybody come and see…
Be sure to bring your own welding goggles, it might get bright.
To shoot that video, I has to buy a special neutral density filter, basically shaded goggles for my camcorder…. and that was for only 1920 LEDs.
I see dead pixels..
he didn’t hear about the niftyled project, yet :)
At this rate somebody on hackaday is going to finalize a HD LED display before the industry did.
From http://hackaday.com/2013/02/21/led-marquee-uses-discrete-through-hole-lights/ to this.
That would be 90 LEDs to 1920 in four days. Linearly: 457.5 LEDs added daily. Only 20,627 days and a few hours till 4K!!!!!!!
Wait a second. …*grumble*..*grumble**…..Lets try that again. 9.48 square to 43.8 square..**something…something..MATHS!!!**…HA only 358 days to 4k! I’ll see you on February 17, 2014 then.
And curse http://xkcd.com/605/ and it’s heathen ways.
“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.
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
There is also a system to control huge projects and any-shape LED screens – http://www.youtube.com/watch?v=S8nPihPglcM