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

add lp_core to Berry ULP module #22567

Merged
merged 1 commit into from
Nov 30, 2024
Merged

Conversation

Staars
Copy link
Contributor

@Staars Staars commented Nov 30, 2024

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:

  • The pull request is done against the latest development branch
  • Only relevant files were touched
  • Only one feature/fix was added per PR and the code change compiles without warnings
  • The code change is tested and works with Tasmota core ESP8266 V.2.7.8
  • The code change is tested and works with Tasmota core ESP32 V.3.1.0.241117
  • I accept the CLA.

NOTE: The code change must pass CI tests. Your PR cannot be merged unless tests pass

@Jason2866 Jason2866 merged commit bed1417 into arendst:development Nov 30, 2024
59 checks passed
@Staars Staars deleted the ULP_LP branch December 18, 2024 19:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants