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

rmt_neopixel no longer works (on esp32c6) #389

Closed
thedevleon opened this issue Mar 6, 2024 · 3 comments · Fixed by #402
Closed

rmt_neopixel no longer works (on esp32c6) #389

thedevleon opened this issue Mar 6, 2024 · 3 comments · Fixed by #402

Comments

@thedevleon
Copy link

thedevleon commented Mar 6, 2024

We used the rmt_neopixel sample before to control an WS2812 RGB LED, however, it seems to have stopped working in recent versions of esp-idf-hal / esp-idf-svc.

To reproduce, I have created a fresh project via cargo generate esp-rs/esp-idf-template cargo that targets the esp32c6, and copy-pasted the rmt_neopixel sample.
I simply adjusted the esp_idf_hal imports to esp_idf_svc::hal, and the GPIO pin to suit our custom PCB.

I get the following output, and the LED does not light up.

I (41) boot: ESP-IDF v5.1-beta1-378-gea5e0ff298-dirt 2nd stage bootloader
I (42) boot: compile time Jun  7 2023 08:02:08
I (43) boot: chip revision: v0.0
I (46) boot.esp32c6: SPI Speed      : 40MHz
I (51) boot.esp32c6: SPI Mode       : DIO
I (56) boot.esp32c6: SPI Flash Size : 4MB
I (61) boot: Enabling RNG early entropy source...
I (66) boot: Partition Table:
I (70) boot: ## Label            Usage          Type ST Offset   Length
I (77) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (84) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (92) boot:  2 factory          factory app      00 00 00010000 003f0000
I (99) boot: End of partition table
I (103) esp_image: segment 0: paddr=00010020 vaddr=42000020 size=49f00h (302848) map
I (173) esp_image: segment 1: paddr=00059f28 vaddr=40800000 size=060f0h ( 24816) load
I (180) esp_image: segment 2: paddr=00060020 vaddr=42050020 size=20260h (131680) map
I (208) esp_image: segment 3: paddr=00080288 vaddr=408060f0 size=04d60h ( 19808) load
I (216) boot: Loaded app from partition at offset 0x10000
I (216) boot: Disabling RNG early entropy source...
I (228) cpu_start: Unicore app
I (228) cpu_start: Pro cpu up.
W (237) clk: esp_perip_clk_init() has not been implemented yet
I (244) cpu_start: Pro cpu start user code
I (244) cpu_start: cpu freq: 160000000 Hz
I (244) cpu_start: Application information:
I (247) cpu_start: Project name:     libespidf
I (252) cpu_start: App version:      1
I (256) cpu_start: Compile time:     Mar  6 2024 15:42:59
I (262) cpu_start: ELF file SHA256:  0000000000000000...
I (268) cpu_start: ESP-IDF:          v5.1.3
I (273) cpu_start: Min chip rev:     v0.0
I (278) cpu_start: Max chip rev:     v0.99 
I (283) cpu_start: Chip rev:         v0.0
I (288) heap_init: Initializing. RAM available for dynamic allocation:
I (295) heap_init: At 4080BE80 len 00070790 (449 KiB): D/IRAM
I (301) heap_init: At 4087C610 len 00002F54 (11 KiB): STACK/DIRAM
I (308) heap_init: At 50000000 len 00003FE8 (15 KiB): RTCRAM
I (315) spi_flash: detected chip: generic
I (319) spi_flash: flash io: dio
W (323) rmt(legacy): legacy driver is deprecated, please migrate to `driver/rmt_tx.h` and/or `driver/rmt_rx.h`
W (333) timer_group: legacy driver is deprecated, please migrate to `driver/gptimer.h`
I (342) sleep: Configure to isolate all GPIO pins in sleep state
I (349) sleep: Enable automatic switching of GPIO sleep configuration
I (356) coexist: coex firmware version: 77cd7f8
I (361) coexist: coexist rom version 5b8dcfa
I (366) app_start: Starting scheduler on CPU0
I (371) main_task: Started on CPU0
I (371) main_task: Calling app_main()

Please see the following repo to reproduce the issue, and make sure to adjust the GPIO to match the devkit you have:
https://github.com/thedevleon/esp-idf-led

I can rule out a defective LED or wrong GPIO, since a no_std sample based on the esp-template and the hello_rgp sample works just fine.

@github-project-automation github-project-automation bot moved this to Todo in esp-rs Mar 6, 2024
@thedevleon thedevleon changed the title rmt_neopixel no longer works rmt_neopixel no longer works (on esp32c6) Mar 6, 2024
@Vollbrecht
Copy link
Collaborator

Vollbrecht commented Mar 6, 2024

Yeah i can at least confirm the problem. For comparison i run the rmt_musical_buzzer example and it still produces the output correctly.

So its eithere on method only used in the neopixel example or how the neopixel example itself works

@adrianpanicek
Copy link

It works on v0.42.5 some changes since must have broken it

@thedevleon
Copy link
Author

thedevleon commented Mar 12, 2024

It works on v0.42.5 some changes since must have broken it

Can confirm, downgrading to v0.42.5 and ESP_IDF_VERSION = "v5.1.1" makes the LED light up again.

andber1 added a commit to andber1/esp-rs-demo that referenced this issue Mar 25, 2024
@github-project-automation github-project-automation bot moved this from Todo to Done in esp-rs Apr 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants