mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-09-14 15:16:40 +00:00
fix(heltec): joystick press drives Enter, PRG becomes Back
Swaps which physical input plays which role on the Heltec V3/V4 wired joystick: the stick's own fifth "press" contact now drives Enter (your thumb's already on the stick when you'd confirm something), and the onboard PRG button -- previously Enter -- becomes Back instead, so it no longer needs a separate wired button of its own. Pure pin reassignment in the solo_dual envs, no UITask.cpp changes: PIN_USER_BTN (Enter) is undef'd and redefined from the base env's PRG default to the joystick's press pin, and PIN_BACK_BTN takes PRG's old GPIO0. Scoped to just these two envs -- Wio Tracker L1/GAT562/MeshTiny share the same UI_HAS_JOYSTICK code path with PRG already correctly wired as their one true physical button, so their behaviour is untouched. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
e47233f557
commit
3290fa2f57
@@ -198,10 +198,13 @@ lib_deps =
|
||||
; Pair it with Settings > Keyboard > Ext. KB = Compact, which is designed to
|
||||
; need no joystick at all. The same bus is scanned for environment sensors.
|
||||
;
|
||||
; * Wired joystick: four direction pins plus a separate Back button -- the UI
|
||||
; uses Back unconditionally once UI_HAS_JOYSTICK is set, so it isn't optional.
|
||||
; PIN_USER_BTN (PRG) stays the centre/Enter press. Each contact just shorts
|
||||
; its pin to GND; target.cpp enables the internal pull-ups. Drop
|
||||
; * Wired joystick: four direction pins plus a fifth "press" contact. The
|
||||
; press contact drives Enter (your thumb's already on the stick) via
|
||||
; PIN_USER_BTN -- overridden below (-U/-D) from the PRG-button default
|
||||
; the base env sets, since PRG's GPIO0 can't be moved to the stick. PRG
|
||||
; becomes Back instead (PIN_BACK_BTN), so it no longer needs its own
|
||||
; separately-wired button. Each contact just shorts its pin to GND;
|
||||
; target.cpp enables the internal pull-ups. Drop
|
||||
; UI_HAS_JOYSTICK_UPDOWN for a left/right-only stick. JOYSTICK_ROTATION (0-3)
|
||||
; rotates the mapping if the stick is mounted sideways -- it's also a runtime
|
||||
; setting, so leave it out unless you want a different default.
|
||||
@@ -237,14 +240,18 @@ build_flags =
|
||||
; CardKB on the second I2C bus. Harmless with nothing plugged in.
|
||||
-D ENV_PIN_SDA=3
|
||||
-D ENV_PIN_SCL=4
|
||||
; Wired joystick — comment the block out for a CardKB-only build.
|
||||
; Wired joystick — comment the block out for a CardKB-only build. The
|
||||
; press contact (Enter) overrides PIN_USER_BTN from its PRG default;
|
||||
; PRG becomes Back (PIN_BACK_BTN) instead.
|
||||
-D UI_HAS_JOYSTICK=1
|
||||
-D UI_HAS_JOYSTICK_UPDOWN=1
|
||||
-D JOYSTICK_UP=23
|
||||
-D JOYSTICK_DOWN=6
|
||||
-D JOYSTICK_LEFT=47
|
||||
-D JOYSTICK_RIGHT=48
|
||||
-D PIN_BACK_BTN=33
|
||||
-D PIN_BACK_BTN=0 ; PRG button
|
||||
-U PIN_USER_BTN
|
||||
-D PIN_USER_BTN=33 ; joystick press contact -- Enter
|
||||
; -D PIN_BUZZER=<gpio>
|
||||
build_src_filter = ${Heltec_lora32_v3.build_src_filter}
|
||||
+<helpers/ui/SSD1306Display.cpp>
|
||||
|
||||
@@ -247,10 +247,13 @@ lib_deps =
|
||||
; SCL 4, one says the reverse. 3/4 is the pair either way; swap them if the
|
||||
; keyboard doesn't answer.)
|
||||
;
|
||||
; * Wired joystick: four direction pins plus a separate Back button -- the UI
|
||||
; uses Back unconditionally once UI_HAS_JOYSTICK is set, so it isn't optional.
|
||||
; PIN_USER_BTN (PRG) stays the centre/Enter press. Each contact just shorts
|
||||
; its pin to GND; target.cpp enables the internal pull-ups. Drop
|
||||
; * Wired joystick: four direction pins plus a fifth "press" contact. The
|
||||
; press contact drives Enter (your thumb's already on the stick) via
|
||||
; PIN_USER_BTN -- overridden below (-U/-D) from the PRG-button default
|
||||
; the base env sets, since PRG's GPIO0 can't be moved to the stick. PRG
|
||||
; becomes Back instead (PIN_BACK_BTN), so it no longer needs its own
|
||||
; separately-wired button. Each contact just shorts its pin to GND;
|
||||
; target.cpp enables the internal pull-ups. Drop
|
||||
; UI_HAS_JOYSTICK_UPDOWN for a left/right-only stick. JOYSTICK_ROTATION (0-3)
|
||||
; rotates the mapping if the stick is mounted sideways -- it's also a runtime
|
||||
; setting, so leave it out unless you want a different default.
|
||||
@@ -287,14 +290,18 @@ build_flags =
|
||||
; CardKB on the second I2C bus. Harmless with nothing plugged in.
|
||||
-D ENV_PIN_SDA=3
|
||||
-D ENV_PIN_SCL=4
|
||||
; Wired joystick — comment the block out for a CardKB-only build.
|
||||
; Wired joystick — comment the block out for a CardKB-only build. The
|
||||
; press contact (Enter) overrides PIN_USER_BTN from its PRG default;
|
||||
; PRG becomes Back (PIN_BACK_BTN) instead.
|
||||
-D UI_HAS_JOYSTICK=1
|
||||
-D UI_HAS_JOYSTICK_UPDOWN=1
|
||||
-D JOYSTICK_UP=23
|
||||
-D JOYSTICK_DOWN=6
|
||||
-D JOYSTICK_LEFT=47
|
||||
-D JOYSTICK_RIGHT=48
|
||||
-D PIN_BACK_BTN=33
|
||||
-D PIN_BACK_BTN=0 ; PRG button
|
||||
-U PIN_USER_BTN
|
||||
-D PIN_USER_BTN=33 ; joystick press contact -- Enter
|
||||
; -D PIN_BUZZER=<gpio>
|
||||
build_src_filter = ${heltec_v4_oled.build_src_filter}
|
||||
+<helpers/ui/SSD1306Display.cpp>
|
||||
|
||||
Reference in New Issue
Block a user