Edwin Park
New member
Hi,
I have a question: is it possible to modify the OctoWS2811 library to change the output pin assignments?
Here's why I'm asking: I'm working on a Persistence Of Vision project where we're using a Teensy 3.0 to drive two WS2811 strips spaced 180 degrees apart from each other and spun around a central axis. Let's call them strip A and B, and at startup let's say that strip A is in front and strip B is in back. The Teensy is loaded up with a static bitmap image to be displayed. During the first half rotation, strip A displays the left half of the image while strip B displays the right half. At the end of a half rotation strip A is now in back and strip B is in front, so for the second half rotation strip A needs to display the right half image while strip B displays the left half image.
We want to move to OctoWS2811 because of its speed and the fact that it frees up cpu time during display updates, but it requires the pixel data for all the strips it is driving to be interleaved at the byte level. This means that if we want to do what I just described and just send the same image data to different strips at different times, we would either need to rewrite every bit in the image for the alternate representation, which eats up cpu time, or we would need to store multiple interleaved image representations, which eats up memory. It would be much easier however to just keep a single image representation and somehow tell OctoWS2811 to change the output pin assignments. I know the OctoWS2811 library doesn't support this now, but my question is, would it be possible to modify it to do this? How difficult would it be?
Thanks,
Edwin
I have a question: is it possible to modify the OctoWS2811 library to change the output pin assignments?
Here's why I'm asking: I'm working on a Persistence Of Vision project where we're using a Teensy 3.0 to drive two WS2811 strips spaced 180 degrees apart from each other and spun around a central axis. Let's call them strip A and B, and at startup let's say that strip A is in front and strip B is in back. The Teensy is loaded up with a static bitmap image to be displayed. During the first half rotation, strip A displays the left half of the image while strip B displays the right half. At the end of a half rotation strip A is now in back and strip B is in front, so for the second half rotation strip A needs to display the right half image while strip B displays the left half image.
We want to move to OctoWS2811 because of its speed and the fact that it frees up cpu time during display updates, but it requires the pixel data for all the strips it is driving to be interleaved at the byte level. This means that if we want to do what I just described and just send the same image data to different strips at different times, we would either need to rewrite every bit in the image for the alternate representation, which eats up cpu time, or we would need to store multiple interleaved image representations, which eats up memory. It would be much easier however to just keep a single image representation and somehow tell OctoWS2811 to change the output pin assignments. I know the OctoWS2811 library doesn't support this now, but my question is, would it be possible to modify it to do this? How difficult would it be?
Thanks,
Edwin