diff --git a/README.md b/README.md index d39e060..c600957 100644 --- a/README.md +++ b/README.md @@ -163,6 +163,10 @@ the pod bay doors. On an ESP32 running at 240Mhz, I was able to time 40 pixels at 1.2 milliseconds. I timed showLeds() at 3.0 milliseconds at 100 LEDs. +However, if you use more than one controller ( see the THREADING document ), +three different controllers each will do 100 LEDs in 3 milliseconds. I have tested +this with 1, 3, and 6 controllers. They all take the same amount of time. + If 30 milliseconds makes 30fps, then you should be able to do 1000 pixels on one of the two cores, and still, potentially, have the ability to do some extra work, because you've got the other CPU. diff --git a/THREADING.md b/THREADING.md index 01982fe..da6bf5c 100644 --- a/THREADING.md +++ b/THREADING.md @@ -16,9 +16,12 @@ for this platform --- and it's a little weird. For this platform, when you do a showLeds(), it keeps track of the number of calls, and when you reach the same number of calls as the number of allocated -controllers, it actually spins up all of them together. +controllers, it actually spins up all of them together. I believe +this is intended to work because showLeds() will call each +of them in turn, so you use that. -To say that's "peculiar" stretches the point. +I worry if you try to call the showLeds on individual controllers +and hope the right thing happens. You'd prefer an interface called something like "flushLeds" which acts on all the known controllers, or takes the list of controllers