Hi, I’m working on a project that will require controlling about 25,000 ws2812b (neopixels). Want to control them at a refresh rate of at least 25-30fps. Could someone please suggest what architecture to use (boards, parallel/serial etc.). I’ve never controlled these many LEDs, though a hundred-odd LEDs worked fine using a Arduino Uno even with the Adafruit NeoPixel library.
Teensy 3.2 can do 5440 pixels divided into 8 segments. Using e1.31 over Ethernet . 5 of those over the Ethernet network will do the job. What are you planning on doing exactly ? I might be able to help
@Chris_Rees Thanks Chris. What I’m working on is more of an art thing where these 25k LEDs are spread out in space over a fairly large area, unlike a flat display. Think of it like a 3D matrix. The LEDs will interact with the world using different sensors - sound, proximity etc. Been wanting to do this for a very long time, but with the ws2812b and microcontrollers this seems achievable at a low cost.
You said to hook up the Teensys via ethernet… is there a standard protocol for driving LEDs on ‘split up’ Teensy boards? The idea is that there will be one microcontroller that will take the input from the sensors and generate a 25k-member array with the color values of each LED. The problem is to transfer that array over to the LEDs at 30fps.
@Jeremy_Spencer Thanks Jeremy, this article’s a great read and provides a lot to think about. I guess I’ll need to split my microcontroller output to 3 Teensy’s, each driving 8 channels of a little over 1k LEDs each, to get to my total of 25k. That sounds doable. Since the 8 channels will be split on it’s own by the Octo2811 library, the problem then becomes of splitting the initial output into the 3 parts that each Teensy will get.
@Chris_Rees Very cool, Chris. Would you recommend using one of these LED controller boards driven by a microcontroller? Is there any standard data format that we can send the display data to these in (maybe via network or serial)? In your opinion is there any benefit to using LED controller devices instead of just building one using Arduino or Pi + Teensys?
This sounds like a great project! It would be very nice if you were to have one controller but the problem is pixel limitations. For 25,000 pixels and the high frame rate and using arduino style platform is that you have eliminated all most if not all of the MCU options. Mostly this is because the MCU memory and libraries capability. Perhaps a teensy 3.6 could accomplish this but your treading new ground and making your own parallel output library.
Paul does have in his octowsW811 library a sync pin and that can be used to keep all teensy synced up so they frame at the same time. He uses a video to serial method and uses the USB port on each teensy to feed its data. This would however require the multiple teensy to be placed in close proximity.
So your challenge is if you are unable to find a MCU platform capable of handling all pixels then you are going to need to use multiple MCU / controllers. This would be better in a large setup because your controller to the first pixel is going to be limited therefore having multiple controller you can spread them out and accordingly. Your next challenge is pixel distance limitation. Each pixel will repeat the signal but it’s distance to the next cannot be very far apart. It’s hard to say what that distance is because it depends on the type of chip and the type of wiring you will use to connect each One. Unless your using pixels that come already wired together then you will need to factor and find what will work in your pixel distance. One exception is the distance from the controller to the first pixel. This is because You have complete control on the signal generation and wiring to optimize your distances. I can get at least 30 ft from the controller to the first pixel pin without using rs485 differential signaling.
Going the multiple controller route then your Next objective is what method to generate your art. This can be a raspberry pi or alike or it can be a pc . The software would also need to be written or perhaps there is something out there to use.
The last challenge is to find a way to control all these controller elements. Ethernet network will allow your to span over a long distance. If it’s setup like a hub and spoke distribution from a switch then distance limitation is in the cable (100 meters). Perhaps multiple switches span over fiber will give your more distance. Teensy and the wiznet libraries are very doable with this setup but network latency must be right and not Too excessive (from what I recall in the prjc forum ).
Last and not least is power. Higher voltages will allow longer runs but this all depends on pixel spacing and the gauge of wire. 12v seems to be the popular choice for long runs of pixels. 25,000 pixels are going to need a few power supplies.
Hopefully this will help in some way and give some direction and options to make your dream come alive .
@Sumit_Gupta data format that seems to be a common is DMX. For large distribution over Ethernet the industry has evolved e1.31 protocol to do this. The theatrical and Christmas light world has used this and refined it even more. With testing I can send at least 25 FPS to my teensy3.2 using the e1.31. Look at a software called xlights. It will control many pixels and allow you to make custom layouts with multiple controllers.
youtu.be - 2017 Star Wars Christmas Light Show - A Dubstep EDM Cover of Darth Vader’s Imperial March
Another option is to make your art with xlights and use FPP players to sync up to each other. FPP commonly uses the raspberry pi. You can use master and remote setups so each player has your sequence and pixels it controls. This is all synced to the master player. FPP also has IO capacity so you could possibly use it to interact with your audiences.
I understand this won’t be easy, but the software is something I think I can make happen… it’s the physical/hardware bits that I haven’t done at this scale. It’s an art project, but needs to be self-contained so by the looks of it I’ll need to drive it at best with a pi which can take inputs from sensors and create the patterns that are needed, send that over ethernet to multiple Teensy’s to drive the pixels.
The pixels have a spacing of 6 inches all around, and these will be spread in an area of about 800 sq. ft., hanging from the ceiling. The frame/structure is made of very thick rigid steel wire (almost a thin rod), and also forms the power rails. Do you forsee any issues with power injection if these rails actually go to each pixel in parallel.
Only the data bus will be a serial cable going from pixel to pixel, but that shouldn’t be a problem as the signal will be regenerated at every hop. However, I’m now quite concerned that the distance (6 inches) between the pixels might cause timing issues as well, is that something you think might cause a problem?
I’ll go through the links you have mentioned and check out the software, I’m sure it’ll be a great starting place.
@Sumit_Gupta 6 inches is just fine no issue there. The distance varies on pixels and type of wiring but if you were pushing more than a few feet then you start running into issues.
As far as power that will vary as well. Find out the gauge of wire going to each pixel and how many amps each pixel will pull with full white. With that in mind you can guesstimate how many pixels in series before you need power injection. Make sure you calculate some head room in that guesstimate so your never at the max capacity. Voltage loss is also an issue and using 5v pixels will require more injection compared to 12v. If you like to hack electronics looks into buying used HP hot swap power supplies. If ran on 220+ these power supplies can deliver some serious watts
@Sumit_Gupta Have a look at these http://advateklights.com - PixLite Individual Control they are ArtNET/DMX/SACN drivers that can handle the amount of pixels you wan tot drive. Yo can chain them up to drive as many pixels as you want. Your refresh rate with ws2812 is going to be challenging howevr due to the technology of the pixels. I would go for the APA102/SK9822
@Leon_Yuhanov Thanks Leon, I was actually looking at the APA102 this morning, specially because of the flicker that I can see in ws2812 (it’s not very evident, but at low brightness the PWM can be seen when the gaze is moving).
These Advatek guys look pros, will certainly reach out to them, thanks for the link.
Yup. Once you factor in the cost of assembling multiple MCU, custom pcb design and manufacturing and connections to everything, not to mention custom firmware for each mcu, something like the pixlite becomes great value. 96 universes off a single controller, using industry standard protocol, leaves you more time to worry about the “art” and the power supply.