-
Notifications
You must be signed in to change notification settings - Fork 344
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
Display upgrades #242
Display upgrades #242
Conversation
Today I managed to test this PR for Power.
Similar results I found in another board, this needs further examination. Why the reduction in time actually increases power usage. Maybe the booster code uses more power. |
* Move BusyCallback * Move constructor pins
* It makes more sense to put it in the Display class * The reset should be 2ms, 10ms is worst case * Also there was a disable call based on display that makes more sense to put in the default boot switch statement
* Avoid a redundant reset after a reset The display is always reset after a hard reset and there is no need to re-reset it
* Reduce the phase on times from 40ms->10ms * Increase the driving strength, this reduces a little the power usage as well * Reduces 220ms the display update -80ms the power on of the display -140ms the display partial update - Note: This may have side effects, but I saw none tested on Watchy v1.0, display should be same on other Watchy boards
* Allow to be changed dynamically between display updated.
* The display takes 16ms to power on During this time we can render the content and finally display it * The call is optional if we do not call it then the old code path is used * Moved the init to constructor
db4eb82
to
f369b6f
Compare
I will continue investigating other things like:
|
* Implemented by overloading the virtual method _reset() in GxEPD2_EPD * Tested to write straight away and works ok. Seems unnecessary. * 10ms might look like little but the ESP is not sleeping and CPUs are on. This is probably using 0.1 uAh (10% of display update total cost)
Last change removes a redundant 10ms delay after the hard reset.
-21% energy usage compared to master. |
Amazing work!!! Apologies it took so long to merge, thank you !! |
This PR has commits that affect the display in these aspects:
In all, this change makes display update take 250ms less (650ms -> 400ms).
Not all of the time saved is power saved, since some of that time the CPU was in light sleep already.
I theoretically computed that the power reduced ~30% (~9mA * 650ms = 6mW -> ~10mA * 400ms = 4mW)
I would value that this change is tested before merging, specially the changes: