-
Notifications
You must be signed in to change notification settings - Fork 7.5k
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 driver and Wi-fi driver coexistence. (IDFGH-10681) #11907
Comments
RMT and Wi-Fi have issue working together, see led_strip - RMT-based driver for WS2812B/SK6812/APA106 LED strips — esp-idf-lib 1.0 documentation.
More information about it here : LED Strip Driver.
You can run the task interacting with your led strip on another core by using xTaskCreatePinnedToCore(). |
I'll try it in my example and will comment the results. |
Hi @guirespi, could you please share the latest status of this issue? Thanks. |
Hi @Sherry616, I've already separated the WIFI and RMT tasks into different cores. The bug is less frequent but still happen. It's been a couple months since I worked on the project that uses the RMT driver and WIFI, but, I remember I use Nimble BLE too. So, do I need to keep the Nimble task in another core too? |
There're some limitations you may want to know when using the RMT driver. https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/rmt.html#faq Although this documentation is written for the new RMT driver which only appears in the esp-idf v5.x For the legacy driver you're using the esp-idf v4.x, I would provide the following suggestions:
BTW, can you use a logic analyzer to capture the signal on the RMT GPIO when it fails to blink the LED? Can you also provide your crash log? |
Hi, For now it's quite difficult to use the logic analyzer on the project. The logs were provided in this issue, the program just stops waiting for an interruption. Regards. |
Thanks for reporting, since 4.4 is end of life, suggest to update to much newer versions, feel free to reopen if the issue still happens |
Answers checklist.
IDF version.
v4.4.2
Operating System used.
Windows
How did you build your project?
Eclipse IDE
If you are using Windows, please specify command line type.
None
Development Kit.
ESP32 WROVER KIT
Power Supply used.
USB
What is the expected behavior?
Wi-fi and RMT driver for WS2812 should coexist without freezing the program. The code I made starts a task that constantly creates and delete anoter task that turn the WS2812 leds.
What is the actual behavior?
When try to connect to an non existent SSID and the RMT driver is used to turn on and turn off a WS2812 led strip, the program freezes. Neither Wi-fi or led strip do something after.
Steps to reproduce.
Compile and run the following code . The base is the 'station' project in the examples folder (esp_idf>examples>wifi>getting_started). Then I add the component led_strip (esp_idf>examples>common_components) to the components folder.
This a draft code, the production code uses a different implementation of led_strip component but, I achieve to recreate the same scenario with espressif's components. In the production code, the program freezes after several hours of use and it is always at the use of the RMT driver.
This is the code I use in the 'station_example_main.c' file. In using the ESP-IDF v4.4.2.
Debug Logs.
More Information.
I don't know if this is related to #7602 but, I tried the same code with an S3 and stills freezes or crash.
The text was updated successfully, but these errors were encountered: