Commit Graph

8 Commits (master)

Author SHA1 Message Date
Daniel Ansorregui be185cbd54 Remove delay after hard reset
* 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)
2024-01-16 23:15:29 +00:00
Daniel Ansorregui f369b6f207 Allow AsyncPowerOn
* 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
2024-01-13 19:11:22 +00:00
Daniel Ansorregui 8103df1499 Refactor DarkBorder
* Allow to be changed dynamically between
  display updated.
2024-01-13 19:08:52 +00:00
Daniel Ansorregui 84c0cd106c Set boosters configuration
* 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
2024-01-13 18:24:19 +00:00
Daniel Ansorregui f2c0c91a61 Refactor Display Init
* 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
2024-01-13 18:23:45 +00:00
Daniel Ansorregui 2b21e50c2f Move Display specifics
* Move BusyCallback
* Move constructor pins
2024-01-13 18:19:37 +00:00
wjgeorge 3c73c7e2c8 Add new static member WIDTH_VISIBLE 2023-04-21 23:13:53 -04:00
Daniel Ansorregui 5c27f4721f Optimise GxEPD2 Display
* This change implements certain
  speed improvements on top of
  upstream GxEPD2 that are not fully
  accepted by the upstream maintainer.
* The change Adds a new WatchyDisplay class
  and implements the mods in there.

* Using transactions for SPI communication
* Remove extra delays for yield()
* Remove 10ms active waits in resets

* This reduces (874ms -> 657ms) the display
  update. Making it more responsive and
  Saving 21mJ/update or 2.6mAh/day
2022-08-03 17:08:12 +01:00