Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
Adding support for the low power coprocessor of the ESP32C6, which is named lp_core instead of ULP in the ESP-IDF, but for Tasmota it will be supported by the existing ULP module.
The internal changed API is abstracted away for the ULP module.
ADC and some other things are not supported before ESP-IDF 5.4, but can be added in the future.
The recommended way for code generation is to build an ESP-IDF project and then use the web application of Tasmotas docs to convert this to a barebone application in Berry.
https://tasmota.github.io/docs/ULP/#export-from-esp-idf-project
The use of this lp_core will very likely stay a niche use case in the context of Tasmota, but the performance is pretty amazing. When diving down from the usual C code to hand optimized assembly, it is possible to create bursts of 200 nanoseconds. This allows bit banging with a WS2812 LED strip, that I could successfully control with the lp_core alone.
It clearly shows the potential to offload relevant work to this coprocessor in special applications.
Some cleanups of the code and removal of code sections for older ESP-IDF versions.
Checklist:
NOTE: The code change must pass CI tests. Your PR cannot be merged unless tests pass