PWM auto-phasing for lights by default (new behavior) unless SetOption134 1
#14590
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:
ESP32 only (including ESP32C3/S2)
You can revert to previous behavior (synced PWM) with
SetOption134 1
Change in behavior for PWM. Until now all PWM phases were synced and started at the same time. This could cause increased stress on the power supply because the instantaneous power is high, even if average is low. This was also blocking from using H-bridge.
Now the default behavior is that each PWM pulse starts at the end of the previous pulse (yellow is PWM1, blue is PWM2). This also makes H-bridge possible as long as PWM1+PWM2 do not exceed 100% (possibly use
LedTable 0
to disable gamma correction)This feature also works for PWM inverted
PWMi
, the phase is based on the active part of the pulse (high forPWM
, low forPWMi
).This feature has currently no impact on
PWM
(whenSetOption15 0
).This PR also includes minor refactoring of PWM ESP32 functions to remove inlines.
Checklist:
NOTE: The code change must pass CI tests. Your PR cannot be merged unless tests pass