* TwoButtonExtened mirrors TwoButton but added joystick functionality
* basic ui navigation with a joystick
settings->joystick.enabled setting added and SETTINGS_VERSION
incremented by one in InkHUD/Persistence.h
in seeed_wio_tracker_L1_eink/nicheGraphics.h enable joystick and
disable "Next Tile" menu item in
implement prevTile and prevApplet functions in
InkHUD/WindowManager.h,cpp and InkHUD/InkHUD.h,cpp
onStickCenterShort, onStickCenterLong, onStickUp, onStickDown,
onStickLeft, and onStickRight functions added to:
- InkHUD/InkHUD.h,cpp
- InkHUD/Events.h,cpp
- InkHUD/Applet.h
change navigation actions in InkHUD/Events.cpp events based on
whether the joystick is enabled or not
in seeed_wio_tracker_L1_eink/nicheGraphics.h connect joystick events to
the new joystick handler functions
* handle joystick input in NotificationApplet and TipsApplet
Both the joystick center short press and the user button short press can
be used to advance through the Tips applet.
dismiss notifications with any joystick input
* MenuApplet controls
allows menu navigation including a back button
* add AlignStickApplet for aligning the joystick with the screen
add joystick.aligned and joystick.alignment to InkHUD/Persistence.h for
storing alignment status and relative angle
create AlignStick applet that prompts the user for a joystick input and
rotates the controls to align with the screen
AlignStick applet is run after the tips applet if the joystick is
enabled and not aligned
add menu item for opening the AlignStick applet
* update tips applet with joystick controls
* format InkHUD additions
* fix stroke consistency when resizing joystick graphic
* tweak button tips for order consistency
* increase joystick debounce
* fix comments
* remove unnecessary '+'
* remap joystick controls to match standard inkHUD behavior
Input with a joystick now behaves as follows
User Button (joystick center):
- short press in applet -> opens menu
- long press in applet -> opens menu
- short press in menu -> selects
- long press in menu -> selects
Exit Button:
- short press in applet -> switches tile
- long press in applet -> nothing for now
- short press in menu -> closes menu
- long press in menu -> nothing for now
---------
Co-authored-by: scobert <scobert57@gmail.com>
Co-authored-by: HarukiToreda <116696711+HarukiToreda@users.noreply.github.com>
This is a non-breaking change that increases the internal representation
of node counts from uint8_t (max 255) to uint16_t (max 65535) to support
larger mesh networks, particularly on ESP32-S3 devices with PSRAM.
Changes:
- NodeStatus: numOnline, numTotal, lastNumTotal (uint8_t -> uint16_t)
- ProtobufModule: numOnlineNodes (uint8_t -> uint16_t)
- MapApplet: loop counters changed to size_t for consistency with getNumMeshNodes()
- NodeStatus: Fixed log format to use %u for unsigned integers
Note: Default class methods keep uint32_t for numOnlineNodes parameter
to match the public API and allow flexibility, even though internal node
counts use uint16_t (max 65535 nodes).
This change does NOT affect protobuf definitions, maintaining wire
compatibility with existing clients and devices.
* 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>
* 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