* Add BaseUI support for L1 EInk
* Fix Eink offset
* Add joystick
* Updates
* Adjust Seeed Wio Tracker L1 E-Ink variant (#7326)
* Rename variant
Needs the -inkhud suffix to work correctly with the web flasher
* Display driver for ZJY122250_0213BAAMFGN
* Remove dead code from nicheGraphics.h
Remnants of T-Echo's nicheGraphics.h file, which was used as a template.
* Use ZJY122250_0213BAAMFGN driver
Improves display health. We don't need as many full refreshes now.
* Tidying
* board_check = true
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Consolidation
* Add hack for existing InkHUD button functionality
---------
Co-authored-by: todd-herbert <herbert.todd@gmail.com>
* Initial support for the ThinkNode M5
* Update variants/esp32s3/ELECROW-ThinkNode-M5/platformio.ini
Co-authored-by: Austin <vidplace7@gmail.com>
* Cleanup variant.h for Elecrow Thinknode M5
* Properly detect battery voltage
* Turn backlight off when screen sleeps
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Austin <vidplace7@gmail.com>
* Tests to identify display model
* (InkHUD) SSD1682 controller IC
Has a few quirks, gets its own base class
* (InkHUD) E0213A367 Display
For Heltec Wireless Paper V1.1.1, V1.2
For Heltec VM-E213 V1.1
* (InkHUD) Select display model at boot
* (BaseUI) Wrapper to combine multiple GxEPD2 drivers
Workaround for issue of GxEPD2_BW objects not having a shared base class. Allows us to select a driver at runtime.
https://github.com/meshtastic/firmware/issues/6851#issuecomment-2905353447
* (BaseUI) Select E-Ink model at boot
* (InkHUD) SSD1682 deep sleep
* (InkHUD) No deep sleep for SSD1682
* (InkHUD) Fully no-op deep sleep for SSD1682
* t3s3 e-paper support
* remove GPS autodetect (which leads to crashes during startup when no GPS present)
* update EINK defines
* keep definitions for external GPS connector but disable GPS auto scan by default
* Refactor EInkDisplay
A lot of variant specific code is merged, with the macros pushed to the respective variant.h files.
"Dynamic Partial" code has been purged, pending a rewrite.
* fix: declare class only if USE_EINK, init all members
* refactor: move macros to platformio.ini
Responds to https://github.com/meshtastic/firmware/pull/3299#issuecomment-1966425926
* fix: EInkDisplay::connect() references old macros
Usage was in a block of variant-specific code, which had been intentionally left untouched.
* fix: remove duplicate macros from variant.h
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Use a mixture of full refresh, partial refresh, and skipped updates, balancing urgency and display health.
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
E-ink panel is DEPG0213BNS800. Otherwise, identical to v1.1 (?)
Partial refresh supported, but not implemented in this commit.
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Break i2cScan out into a set of classes for scanning i2c
* refactor i2cscan addresses to be structs that allow addressing by port + address
* build whoopsies
* trunk fmt
* trunk fmt
* lost some build fixes from the merge
* more cleaning for build safety, RTC behavior