Maximum number of pixels supported

  • I am just getting started on a project. I am not using Hyperion as an Ambilight, instead using it for effects/holiday lighting. I would like to control up to 1400 pixels of APA102 with a single Pi. The strips are 48 pixels per meter and I will be using just short of 30 meters of LEDs. I have configured and tested 15 meters (720 LEDs) and it works fine. When I go to the 4th roll (960 LEDs), it will no longer work and when the Pi is booted the config file is blanked.


    Is there an absolute limit to the number of pixels that can be controlled? Is there any change I can make to accommodate a larger number than I successfully have controlled?


    I will be using several Hyperion controllers, the rest will have fewer than 500 pixels, but this one was going to control a long horizontal run, so I would like the effects to be contiguous.

  • The blank config file may have been my fault. I was just doing a quick bench assembly to test the concept. I was uploading the config with WinSCP file then power cycling the Pi to reboot. I was probably doing it too fast without giving WinSCP a proper exit. After I wrote the post I changed my approach and now am careful to close the WinSCP session, then I reboot the Pi through a command. This stopped the file from getting blanked.


    The Pi is powered by a separate power supply, the LED strings are powered by a single 70A power supply. For testing the LED strips are powered at each end, with the data and clock daisy chained. At full white, the draw is right at 10A per 5 meters, but the LEDs are a little warm in the middle of each strip. When I install them, if I can prove they will work on the bench, I will inject power every 2.5 meters at a minimum. I will be using this 70A supply and another 40A supply when installed.


    Now that I got all of my self-created problems out of the way :oops:, I have been able to test further. I can go with up to 20 meters of LEDs for a total of 960 and it all works fine. If I add another string for a total of 1200 or two for a total of 1440 I no longer get the boot up splash nor am I able to control them through the Hyperion software. I have tested it several times and I hit a wall after 960.


    I am using a HomeSeer (home control software) plug-in to control the Hyperion instance.


    If there is not a physical limitation that stops me just shy of 1000 LEDs, I will need to dig deeper into any problems I might be creating.

  • I don't know as this is a little above my experience level. Since there doesn't appear to be a limitation in the Hyperion design, I will do some more testing next week. I have seen people do several thousand LEDs on an Arduino or Pi, but that was with different software. I'll make sure I have plenty of current available throughout the strips and gradually increase the numbers from 960 and see if/when it hits a wall. Alternately, I may go with 30 or 36 LEDs per meter and keep the count below 1000.


    I will post back after I do more structured testing instead of cobbling it together with spit and bailing wire :eek:
    If I have solid 5V and ground throughout the series of strips and it still hits a wall then I will go with a lower count.

  • That is an interesting read. From looking at the photographs it seems like I might have clones, because the die size looks small. They are represented as APA102 and they do work perfectly up to 1007 LEDs. I did some more testing that seems to point to some sort of hard limit - I think.


    I tried this with my original 48 LEDs per meter and some 36 LED per meter strips. Both sets have the same individual LEDs, just different densities. All 6 of the 5 meter LED strips are powered at both ends. I can set either configuration for 1007 LEDs and they work fine. I get the boot up splash and can control effects. If I set it for 1008 LEDs the boot up splash doesn't happen and any control fails.


    I can make my lighting project work with less than 1007 LEDs as long as the density is 36 LEDs per meter. I would rather use the original plan for about 1400 if there are any ideas why I am hitting this hard limit.

  • Thanks for the help!


    I added spidev.bufsiz=65536 to cmdline.txt


    Checked it:
    cat /sys/module/spidev/parameters/bufsiz


    And now it works fine with 1440 and I am sure it will do more.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!