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 pio ledstrip #4818
Rp2040 pio ledstrip #4818
Conversation
Hey there @Papa-DMan, CODEOWNERS = ["@Papa-DMan"] And run (message by NeedsCodeownersLabel) |
Okay I've figured it out. When the api call was made to run |
I have pushed some more changes to make the whole thing very dynamic, and allows multiple led strips etc. Untested, but compiles. |
Okay so I've just tested it with my scope and it is putting out the right times both when selecting a chipset and using custom timings in the yaml. However all the data is zero instead of the pixel data regardless of what the light is set to. |
I will set up a board today to actually test it |
rgb order is already correct in buffer, so dont name these rgb etc
Ok I have fixed it and it now sends the actual pixel out, but its only sending a single pixel, not the 8 i have configured |
Is this fully working for you with multiple pixels? |
It is somewhat working with multiple Pixels. I am only getting about half of the configured Pixels getting lit up, and when they are the color isn't correct. On my 300 LED WS2812B test strip I set to full red the result is a pattern of 8 pixels at red 9 pixels at blue and 8 pixels at green for the first half of the strip, the second half is off. |
That is the exact result I was getting. Will try your latest commit |
Dang off-by-1 bugs...haha Working perfectly now |
What does this implement/fix?
While waiting for fastled to push a release with their rp2040 support, finishing my uni courses, and some encouragement from members in this community I decided to take a look at writing a write a very basic led strip driver for the rp2040 from scratch
This driver utilizes the programmable IO state machines in the RP2040, I wrote out the assembly code for a couple of known chipset timings.
Types of changes
Pull request in esphome-docs with documentation (if applicable): esphome/esphome-docs#2917
Test Environment
Example entry for
config.yaml
:Checklist:
tests/
folder).If user exposed functionality or configuration variables are added/changed: