Wireless Paper: Fix BLE after Lightsleep #3629
Merged
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.
Refactor NimBLE deinit
NimBLEDevice::deinit()
is used with Wireless Paper to achieve low current during deep-sleep (1mA -> 18µA).Previously called for both deep-sleep and light-sleep. Unable to re-init BLE after light-sleep. Bluetooth broken.
Changes implemented:
NimBLEDevice::deinit()
called only for deep-sleep.NIMBLE_DEINIT_FOR_DEEPSLEEP
. Currently enabled only for Wireless Paper.Result:
(reverted)
LED Blink disabled during light-sleep (Wireless Paper only)Without
NimBLEDevice::deinit()
, Wireless Paper BLE hardware has a prolonged run-down. After ~30 seconds, current stabilizes at ~13mA (compared to immediate 12mA with deinit).Previously, light-sleep would wake every 30 seconds to blink the LED. This caused Wireless Paper to spend significant time in inefficient "run-down" phase.
Mean current during a light-sleep period of a given duration.
A singe 180s sleep consumes 25% less power than 6 x 30s sleeps.
Changes:
LS_NO_BLINK
Result: