Skip to content

neopixel behaves oddly on esp32-s3-devkitm-1 #5679

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

Closed
jepler opened this issue Dec 7, 2021 · 0 comments · Fixed by #5892
Closed

neopixel behaves oddly on esp32-s3-devkitm-1 #5679

jepler opened this issue Dec 7, 2021 · 0 comments · Fixed by #5892
Assignees
Labels
bug esp32-s3 espressif applies to multiple Espressif chips
Milestone

Comments

@jepler
Copy link

jepler commented Dec 7, 2021

CircuitPython version

Adafruit CircuitPython 7.2.0-alpha.0-38-g121b22b0c-dirty on 2021-12-07; ESP32-S3-DevKitC-1 with ESP32S3

Code/REPL

# none

Behavior

The initial 3 flashes of the onboard neopixel work, but then after that the LED sometimes blinks random colors.

Description

No response

Additional information

This problem affects the 1 ESP32-S3-DevKitM-1 I have, but neither of the ESP32S3-DevKitC-1 (both with PSRAM) that I have.

The LED attachment is the same in both schematics, with no pull up/down to ensure the neopixel's input doesn't fluctuate. However, this seems to be typical of how neopixels are wired.

image

If the GPIO is placed in InputEnable mode (without pull up or down, i.e., just create a DigitalinOut object for the pin), it happens to stop the flickering. But since the neopixel pin is usually freed by the supervisor between color settings, it is normally placed in input disabled / output disabled / no pulls mode.

It's possible that this is just specific to the board and other boards are fine, however, I only had one board to test.

Affected module on the left:

PXL_20211207_192903939.mp4.2.mp4
@jepler jepler added bug espressif applies to multiple Espressif chips esp32-s3 labels Dec 7, 2021
@jepler jepler added this to the 7.x.x milestone Dec 7, 2021
@tannewt tannewt modified the milestones: 7.x.x, 7.2.0 Dec 20, 2021
@tannewt tannewt self-assigned this Jan 19, 2022
dhalbert pushed a commit that referenced this issue Jan 20, 2022
This tweaks the RMT timing to better match the 1/3 and 2/3 of 800khz
guideline for timing. It also ensures a delay of 300 microseconds
with the line low before reset.

Pin reset is now changed to the IDF default which pulls the pin up
rather than CircuitPython's old behavior of floating the pin.

Fixes #5679
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug esp32-s3 espressif applies to multiple Espressif chips
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants