this post was submitted on 13 Apr 2026
5 points (100.0% liked)

Ask Electronics

4100 readers
29 users here now

For questions about component-level electronic circuits, tools and equipment.

Rules

1: Be nice.

2: Be on-topic (eg: Electronic, not electrical).

3: No commercial stuff, buying, selling or valuations.

4: Be safe.


founded 2 years ago
MODERATORS
 

Going to try my hand at sniffing the data driving a WS2812 chain for some future projects, and I'm wondering if anyone has tried this or knows of any existing resources for doing this. I'm fairly confident I can implement it with some RP2040 PIO since I have some pi pico boards laying around. Web searches for the topic aren't turning up much of use, just a billion tutorials for driving the bus.

My only concern that might pose a problem is if the GPIO pins introduce noise or create other issues on the bus I'm trying to observe.

top 5 comments
sorted by: hot top controversial new old
[–] hendrik@palaver.p3x.de 2 points 3 hours ago* (last edited 2 hours ago) (2 children)

Not sure how easy it is to sample a digital signal that fast. The specs say it's 350ns - 800ns. So my calculator says that's about 3MHz. I don't think noise etc will be an issue. And an opendrain input should be fine and not mess with the bus. You'll likely have to find a good approach to read at that speed. Or find a suitable peripheral.

The correct tool might be an oscilloscope / logic analyzer.

But maybe have a look at some projects like "micro logic analyzer for RP2040", seems it's possible to sample digital signals up to 100MHz. There's several projects like that out there. But I think the correct search term is "RP2040 logic analyzer".

I don't think a lot of people "sniff" some WS2812 bus. You can have a look at other project's code to generate all sorts of effects.

[–] GandalfDG@beehaw.org 2 points 34 minutes ago

fortunately the RP2040's programmable IO can run at 40x that 3MHz rate, so with a working program I should be able to differentiate short and long pulses and convert them back to bits. My application shouldn't need to know exact colors, rather just detecting certain patterns or an on/off threshold state for a specific light in the chain.

[–] cmnybo@discuss.tchncs.de 3 points 1 hour ago (1 children)

The WS2812 only runs at 800kbps. That's well within the capabilities of one of those 24 MHz FX2 based USB logic analyzers that you can get for less than $10. Sigrok has a protocol decoder for the WS2812 LEDs.

[–] GandalfDG@beehaw.org 1 points 33 minutes ago (1 children)

well, it's more being able to detect long vs. short pulses, as it's not the logic level but the pulse width that encodes the bits.

[–] cmnybo@discuss.tchncs.de 1 points 2 minutes ago

With a 24MHz sample rate, there will be 30 samples per bit. The narrowest a pulse for the WS2812 can be is 220 ns, which will be about 5 samples. That's more than enough to decode it.