Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rp2040 using a PIO state machine for each "strip." #329

Open
WestfW opened this issue Sep 12, 2022 · 1 comment
Open

rp2040 using a PIO state machine for each "strip." #329

WestfW opened this issue Sep 12, 2022 · 1 comment

Comments

@WestfW
Copy link

WestfW commented Sep 12, 2022

Currently on rp2040, a PIO state machine is allocated for each strip.
This limits the number of strips that can be supported to 8, and consumes PIO SMs that may be needed for other purposes.
Since the show() implementation is still synchronous (waits until the full bit stream has been written to the strip), there doesn't seem to be much benefit to the separate SMs, and I think the time needed to set up the PIO is small compared to the time required for show()...

(Ideally, I guess it would be nice if the PIO program could have its pin definitions updated on the fly without having to completely reconfigure it. I don' know whether that's possible.)

https://forum.arduino.cc/t/problem-when-using-neopixels-and-pdm-mic-on-rp2040/1030886/1
https://forums.adafruit.com/viewtopic.php?t=194183

@hlcm0
Copy link

hlcm0 commented May 18, 2024

I also encountered your problem recently.
changes in #389 fixed setPin for rp2040, allow it to support more than 8 strips.
hope this helps : )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants