Author Topic: PiCap ws2811 string limit is MUCH lower than 800 pixels.... :(  (Read 542 times)

Offline dkulp

  • Developer
  • ******
  • Join Date: Sep 2013
  • Location: Framingham, MA
  • Posts: 1,545
  • Kudos: 89
    • KulpLights.com
PiCap ws2811 string limit is MUCH lower than 800 pixels.... :(
« on: November 27, 2018, 08:40:00 AM »



I'm doing some testing on the pi's trying to reproduce the stoppages (haven't been able to reproduce that yet), but ran into an interesting discovery:  outputting 800 pixels on is taking 31.8ms which is obviously too long for 25ms.    It's something in the rpi_ws2811 library as the call to ws2811_render (which sends the data to the pixels) is calculating that the required time is 24.3ms (which is still "too close"), but is then taking 31.8ms. 


Up to around 615 pixels, the calculated time and the "actual" time are almost exact.   At 600 pixels, it calculates at 18.3ms and that's exactly how long it takes.    Once I hit 620 pixels, the calculated time is 18.9, but the actual time is at 24.6.  I don't know if that amount of data is exceeding some sort of DMA size or something.    I really have no idea.   However, I thought I'd let everyone know.

Offline jnealand

  • Developer
  • ******
  • Join Date: Aug 2013
  • Location: Kennesaw, GA
  • Posts: 2,920
  • Kudos: 68
Re: PiCap ws2811 string limit is MUCH lower than 800 pixels.... :(
« Reply #1 on: November 27, 2018, 09:56:54 AM »
Is that a per port issue or a total for both ports.  I have two PiCaps in use with port 1 being 600 ws2811s in a matrix and port 2 having 240 ws2811s in a MegaSpinner.  Have not noticed any timing issues.  Everything I do is at 50ms
Jim Nealand
Kennesaw, GA all Falcon controllers, all 12v Master Remote Multisync with Pi and BBB P10 and P5

Offline pixelpuppy

  • Hero Member
  • *****
  • Join Date: Aug 2015
  • Location: Dallas, TX
  • Posts: 1,396
  • Kudos: 44
Re: PiCap ws2811 string limit is MUCH lower than 800 pixels.... :(
« Reply #2 on: November 27, 2018, 10:27:15 AM »
That's with 25ms (40fps) timing.  But what if we're using the default 50ms (20fps) timing?  Should be able to hit 1,000 easy, and not see problem till maybe 1200 or so, no?
-Mark

Offline dkulp

  • Developer
  • ******
  • Join Date: Sep 2013
  • Location: Framingham, MA
  • Posts: 1,545
  • Kudos: 89
    • KulpLights.com
Re: PiCap ws2811 string limit is MUCH lower than 800 pixels.... :(
« Reply #3 on: November 27, 2018, 12:06:24 PM »



It's the "max per port" timing.  So 600ish on either port.   And is only an issue with 25ms sequences.  With 50ms sequences, you can hit about 1250 or so per port, maybe a little more.   I just pushed and update that moves the ws2811_render call to a background thread so we do get the full 25ms to send it, and if the last call isn't finished in time, it may just skip a frame here or there.  Thus, it should impact the main threads a lot less. 




 

Back to top