NeoPixel Timing Issue with SparkFun IoT RedBoard - RP2350

Trying out a new board (SparkFun IoT RedBoard - RP2350) and the AstronautDemo (I’d post a link to the demo, but I’m new here and can only include two html links…)

I couldn’t get the NeoPixel to work correctly with either of the default timings in:

https://github.com/micropython/micropython/blob/e9a26791e5be6cda3a173b74087626d3cabafaa8/drivers/neopixel/neopixel.py

The two default timings are (400, 850, 800, 450) and (800, 1700, 1600, 900) but using either of these resulted in more-or-less random behavior of the onboard NeoPixel.

Adafruit’s has NeoPixel documentation here:

https://learn.adafruit.com/adafruit-neopixel-uberguide/advanced-coding

Their documentation says that the WS2812 datasheet timing is incorrect and they recommend the (400, 850, 800, 450) timing used in the Micropython neopixel driver. But, as I said, that didn’t work on my board.

Despite Adafruit’s statement that the datasheet values are wrong, I was able to use them - (350, 800, 700, 600) - successfully.

I also found that I could use the Adafruit values if I changed the first “400” to “399” - (399, 850, 800, 450).

Also note that both Adafruit and the datasheet say that the timings have a range of ±150ns, so any of the three timing sets - (400…, (399…, or (350… - should actually work.

Anyway, I guess I’m just posting this in case anyone else runs into the issue.

That’s curious; thank you for posting what ended up working (and not!) :smiley: