From a9e6aaa46b706ff7a8ec354d13024e8969bb7d01 Mon Sep 17 00:00:00 2001 From: ZephCore T096 Date: Wed, 26 Aug 2026 19:45:45 +0200 Subject: [PATCH 01/14] t096: shared PWM brightness for the heartbeat/TX LED (unpersisted) Single LED (P0.28) doubles as heartbeat, message flash, shutdown flash and LoRa TX indicator, all sharing the same physical pin. Adds one PWM channel on that pin (heartbeat-pwm-led/lora-tx-pwm-led aliases) and a single 0-100 brightness knob (get/set led) covering every one of those events at once, deliberately RAM-only: resets to a 10% default on every reboot regardless of CLI changes made in a previous session. The existing persisted on/off gate (set leds on|off) is untouched. Boards without heartbeat-pwm-led/lora-tx-pwm-led aliases keep their current plain-GPIO behavior unchanged. --- zephcore/adapters/board/ZephyrBoard.cpp | 47 ++++++++-- .../heltec_t096_nrf52840-pinctrl.dtsi | 16 ++++ .../heltec_t096/heltec_t096_nrf52840.dts | 33 +++++++ .../heltec_t096_nrf52840_defconfig | 3 + zephcore/helpers/CommonCLI.cpp | 16 ++++ zephcore/helpers/led_gate.c | 18 ++++ zephcore/helpers/led_gate.h | 13 +++ zephcore/helpers/ui/ui_common.c | 91 ++++++++++++++----- 8 files changed, 210 insertions(+), 27 deletions(-) diff --git a/zephcore/adapters/board/ZephyrBoard.cpp b/zephcore/adapters/board/ZephyrBoard.cpp index 48320792..bdf33018 100644 --- a/zephcore/adapters/board/ZephyrBoard.cpp +++ b/zephcore/adapters/board/ZephyrBoard.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -97,14 +98,34 @@ #endif #endif -/* LoRa radio activity LED (optional — defined per-board via DT alias). Still - * called tx_led after "set leds.radio" gave it an RX mode, because the DT alias - * it comes from is named lora-tx-led on every board that has one. */ -#if DT_NODE_EXISTS(DT_ALIAS(lora_tx_led)) +/* LoRa radio activity LED (optional — defined per-board via DT alias). Still + * called tx_led after "set leds.radio" gave it an RX mode, because the DT + * alias it comes from is named lora-tx-led on every board that has one. + * + * PWM path (DT_ALIAS(lora_tx_pwm_led)) takes priority when it exists — used + * on boards where the TX LED is the same physical LED as the heartbeat + * (e.g. T096, see helpers/ui/ui_common.c), so both share the one brightness + * in helpers/led_gate.h instead of the plain GPIO path fighting over the + * pin. */ +#if DT_NODE_EXISTS(DT_ALIAS(lora_tx_pwm_led)) +static const struct pwm_dt_spec tx_led_pwm = PWM_DT_SPEC_GET(DT_ALIAS(lora_tx_pwm_led)); +#define HAS_TX_LED_PWM 1 +#define HAS_TX_LED 0 +static int tx_led_init(void) +{ + if (device_is_ready(tx_led_pwm.dev)) { + pwm_set_pulse_dt(&tx_led_pwm, 0); /* start dark, same as GPIO_OUTPUT_INACTIVE */ + } + return 0; +} +SYS_INIT(tx_led_init, APPLICATION, 90); +#elif DT_NODE_EXISTS(DT_ALIAS(lora_tx_led)) static const struct gpio_dt_spec tx_led = GPIO_DT_SPEC_GET(DT_ALIAS(lora_tx_led), gpios); +#define HAS_TX_LED_PWM 0 #define HAS_TX_LED 1 #else +#define HAS_TX_LED_PWM 0 #define HAS_TX_LED 0 #endif @@ -359,12 +380,24 @@ const char *ZephyrBoard::getManufacturerName() const void ZephyrBoard::onBeforeTransmit() { -#if HAS_TX_LED /* Honour the LED master gate ("set leds off") and then the activity mode * ("set leds.radio"). On a headless repeater this is the only LED that ever * lights, so both have to be checked here and not just in the UI layer. * onAfterTransmit() still clears the pin unconditionally, so a gate or mode * flipped mid-transmit can't strand it lit. */ +#if HAS_TX_LED_PWM + /* PWM-shared boards (T096) don't yet have the RX-pulse/pin-hold interlock + * below -- that machinery (s_tx_lit/s_rx_pulse_off) is declared only under + * HAS_TX_LED. Mode-gated brightness write only for now; see the rebase + * notes for why this is a deliberate gap, not an oversight. */ + uint8_t mode = zephcore_leds_radio_mode(); + if (!zephcore_leds_disabled() && + (mode == LEDS_RADIO_TX || mode == LEDS_RADIO_ALL)) { + uint32_t pulse = (uint32_t)((uint64_t)tx_led_pwm.period * + zephcore_led_brightness_pct() / 100); + pwm_set_pulse_dt(&tx_led_pwm, pulse); + } +#elif HAS_TX_LED uint8_t mode = zephcore_leds_radio_mode(); if (!zephcore_leds_disabled() && (mode == LEDS_RADIO_TX || mode == LEDS_RADIO_ALL)) { @@ -382,7 +415,9 @@ void ZephyrBoard::onBeforeTransmit() void ZephyrBoard::onAfterTransmit() { -#if HAS_TX_LED +#if HAS_TX_LED_PWM + pwm_set_pulse_dt(&tx_led_pwm, 0); +#elif HAS_TX_LED atomic_set(&s_tx_lit, 0); gpio_pin_set_dt(&tx_led, 0); #if ZEPHCORE_LED_PIN_SHARED diff --git a/zephcore/boards/nrf52840/heltec_t096/heltec_t096_nrf52840-pinctrl.dtsi b/zephcore/boards/nrf52840/heltec_t096/heltec_t096_nrf52840-pinctrl.dtsi index 530c5989..7deeabff 100644 --- a/zephcore/boards/nrf52840/heltec_t096/heltec_t096_nrf52840-pinctrl.dtsi +++ b/zephcore/boards/nrf52840/heltec_t096/heltec_t096_nrf52840-pinctrl.dtsi @@ -80,4 +80,20 @@ low-power-enable; }; }; + + /* Heartbeat/TX LED, PWM path (see heltec_t096_nrf52840.dts, pwm_led_white). + * Same P0.28 net as the plain gpio-leds node — free in pinctrl, no + * other peripheral claims it. */ + pwm0_default: pwm0_default { + group1 { + psels = ; + }; + }; + + pwm0_sleep: pwm0_sleep { + group1 { + psels = ; + low-power-enable; + }; + }; }; diff --git a/zephcore/boards/nrf52840/heltec_t096/heltec_t096_nrf52840.dts b/zephcore/boards/nrf52840/heltec_t096/heltec_t096_nrf52840.dts index 38bdc1cd..183a5599 100644 --- a/zephcore/boards/nrf52840/heltec_t096/heltec_t096_nrf52840.dts +++ b/zephcore/boards/nrf52840/heltec_t096/heltec_t096_nrf52840.dts @@ -15,6 +15,7 @@ #include #include #include +#include #include "heltec_t096_nrf52840-pinctrl.dtsi" / { @@ -34,6 +35,16 @@ aliases { led0 = &led_white; lora-tx-led = &led_white; + /* Same physical LED (P0.28) as led0/lora-tx-led above, reached + * through the PWM peripheral instead of a raw GPIO write. Both + * ui_common.c (heartbeat/message/shutdown) and ZephyrBoard.cpp + * (LoRa TX flash) prefer this alias over the plain GPIO one when + * it exists, so every event that used to hit led_white now goes + * through the shared brightness in helpers/led_gate.h instead — + * deliberately one dimmer for the whole LED, not a separate + * heartbeat-only control (see helpers/led_gate.h). */ + heartbeat-pwm-led = &pwm_led_white; + lora-tx-pwm-led = &pwm_led_white; sw0 = &user_button; lora0 = &lora; watchdog0 = &wdt0; @@ -51,6 +62,20 @@ }; }; + pwmleds { + compatible = "pwm-leds"; + + /* Same P0.28 net as led_white above, driven by PWM0 channel 0 + * instead. Declaring both DT nodes for one pin is an established + * pattern in this project (Heltec V4.3 does the same for its own + * LED) — only one of the two code paths is ever compiled in for a + * given purpose, selected by which alias exists. */ + pwm_led_white: pwm_led_gpio28 { + label = "White PWM LED"; + pwms = <&pwm0 0 PWM_MSEC(10) PWM_POLARITY_NORMAL>; + }; + }; + buttons: buttons { compatible = "gpio-keys"; @@ -279,6 +304,14 @@ status = "okay"; }; +/* Drives the shared heartbeat/TX LED (P0.28) via pwm_led_white above. */ +&pwm0 { + status = "okay"; + pinctrl-0 = <&pwm0_default>; + pinctrl-1 = <&pwm0_sleep>; + pinctrl-names = "default", "sleep"; +}; + &i2c0 { compatible = "nordic,nrf-twim"; status = "okay"; diff --git a/zephcore/boards/nrf52840/heltec_t096/heltec_t096_nrf52840_defconfig b/zephcore/boards/nrf52840/heltec_t096/heltec_t096_nrf52840_defconfig index 98c300e8..22dd9147 100644 --- a/zephcore/boards/nrf52840/heltec_t096/heltec_t096_nrf52840_defconfig +++ b/zephcore/boards/nrf52840/heltec_t096/heltec_t096_nrf52840_defconfig @@ -10,6 +10,9 @@ CONFIG_HW_STACK_PROTECTION=y # Enable GPIO CONFIG_GPIO=y +# Enable PWM (shared heartbeat/TX LED brightness) +CONFIG_PWM=y + # Enable UART driver CONFIG_SERIAL=y diff --git a/zephcore/helpers/CommonCLI.cpp b/zephcore/helpers/CommonCLI.cpp index b99b9e54..616cb417 100644 --- a/zephcore/helpers/CommonCLI.cpp +++ b/zephcore/helpers/CommonCLI.cpp @@ -434,6 +434,11 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch CLI_HAS_HB_LED ? "" : " (no heartbeat LED on this board)"); } else if (memcmp(config, "leds", 4) == 0) { snprintf(reply, CLI_REPLY_SIZE, "> %s", _prefs->leds_disabled ? "off" : "on"); + } else if (memcmp(config, "led", 3) == 0) { + /* Shared heartbeat/TX brightness, RAM-only — see led_gate.h. + * Checked after "leds" above so "leds" itself never falls + * through to this shorter prefix. */ + snprintf(reply, CLI_REPLY_SIZE, "> %u%%", (unsigned)zephcore_led_brightness_pct()); #ifndef ZEPHCORE_REPEATER } else if (memcmp(config, "buzzer", 6) == 0) { uint8_t mode = zephcore_buzzer_mode_from_prefs(_prefs->buzzer_quiet); @@ -754,6 +759,17 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch savePrefs(); strcpy(reply, "OK"); } + } else if (memcmp(config, "led ", 4) == 0) { + /* Brightness only, on/off stays on "set leds" above. RAM-only — + * no savePrefs() call here on purpose, see led_gate.h. Checked + * after "leds " so that command never falls through here. */ + int pct = atoi(&config[4]); + if (pct < 0 || pct > 100) { + strcpy(reply, "Error: must be 0-100"); + } else { + zephcore_led_set_brightness_pct((uint8_t)pct); + snprintf(reply, CLI_REPLY_SIZE, "OK - led=%d%%", pct); + } #ifndef ZEPHCORE_REPEATER } else if (memcmp(config, "buzzer ", 7) == 0) { /* 0 = silent, 1 = sound + vibration, 2 = vibration only, diff --git a/zephcore/helpers/led_gate.c b/zephcore/helpers/led_gate.c index 610bbb68..a9c06a3e 100644 --- a/zephcore/helpers/led_gate.c +++ b/zephcore/helpers/led_gate.c @@ -74,3 +74,21 @@ void zephcore_led_radio_hold_pin(bool held) { atomic_set(&s_radio_holds_pin, held ? 1 : 0); } + +/* Same cross-thread readers/writers as the gate above (heartbeat work queue, + * TX path, CLI) — atomic for the same reason. RAM-only on purpose: no + * savePrefs() call anywhere near this, see led_gate.h. */ +static atomic_t s_led_brightness_pct = ATOMIC_INIT(ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT); + +uint8_t zephcore_led_brightness_pct(void) +{ + return (uint8_t)atomic_get(&s_led_brightness_pct); +} + +void zephcore_led_set_brightness_pct(uint8_t pct) +{ + if (pct > 100) { + pct = 100; + } + atomic_set(&s_led_brightness_pct, pct); +} diff --git a/zephcore/helpers/led_gate.h b/zephcore/helpers/led_gate.h index 020ce72a..655b02a8 100644 --- a/zephcore/helpers/led_gate.h +++ b/zephcore/helpers/led_gate.h @@ -34,6 +34,19 @@ bool zephcore_leds_disabled(void); * progress. Safe to call from any role, with or without a UI. */ void zephcore_leds_set_disabled(bool disabled); +/* Shared PWM brightness (0-100) for boards whose heartbeat/TX LED is + * PWM-capable (DT_ALIAS(heartbeat_pwm_led) / DT_ALIAS(lora_tx_pwm_led)). + * Deliberately RAM-only, not persisted: resets to + * ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT on every reboot regardless of any + * "set led " done during a previous session. Independent of the on/off + * gate above: brightness only matters while the gate is open. No-op on + * boards without a PWM-capable LED (the getter still returns the compiled + * default, simply unused). */ +#define ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT 10 + +uint8_t zephcore_led_brightness_pct(void); +void zephcore_led_set_brightness_pct(uint8_t pct); + /* Called by zephcore_leds_set_disabled() after the flag changes. Weak no-op in * led_gate.c; helpers/ui/ui_common.c overrides it to stop/restart the heartbeat * cycle and refresh the UI's LED page. Not meant to be called directly. */ diff --git a/zephcore/helpers/ui/ui_common.c b/zephcore/helpers/ui/ui_common.c index 46d6171b..a880c1bd 100644 --- a/zephcore/helpers/ui/ui_common.c +++ b/zephcore/helpers/ui/ui_common.c @@ -22,6 +22,7 @@ #include "led_gate.h" /* shared with the LoRa TX LED */ #include +#include #include #include #include @@ -95,21 +96,63 @@ void ui_play_startup_chime(void) * only when msg count > 0, giving a visual unread-message reminder. */ -#if DT_NODE_HAS_PROP(DT_ALIAS(led0), gpios) +/* PWM path (brightness-capable, shared with the LoRa TX LED via the same + * DT_ALIAS(heartbeat_pwm_led)/DT_ALIAS(lora_tx_pwm_led) pair when a board's + * heartbeat and TX indicator are the same physical LED, e.g. T096) takes + * priority over the plain digital led0/led1 fallback. Brightness comes from + * helpers/led_gate.h — one dimmer for every event on this LED, not a + * heartbeat-only one. */ +#if DT_NODE_EXISTS(DT_ALIAS(heartbeat_pwm_led)) +static const struct pwm_dt_spec s_heartbeat_led_pwm = + PWM_DT_SPEC_GET(DT_ALIAS(heartbeat_pwm_led)); +#define HAS_HEARTBEAT_LED_PWM 1 +#define HAS_HEARTBEAT_LED 0 +#elif DT_NODE_HAS_PROP(DT_ALIAS(led0), gpios) static const struct gpio_dt_spec s_heartbeat_led = GPIO_DT_SPEC_GET(DT_ALIAS(led0), gpios); +#define HAS_HEARTBEAT_LED_PWM 0 #define HAS_HEARTBEAT_LED 1 #elif DT_NODE_HAS_PROP(DT_ALIAS(led1), gpios) static const struct gpio_dt_spec s_heartbeat_led = GPIO_DT_SPEC_GET(DT_ALIAS(led1), gpios); +#define HAS_HEARTBEAT_LED_PWM 0 #define HAS_HEARTBEAT_LED 1 #else +#define HAS_HEARTBEAT_LED_PWM 0 #define HAS_HEARTBEAT_LED 0 #endif +/* "Some heartbeat LED exists, PWM or plain GPIO" — used where the on/off + * write differs but everything else (work queue plumbing, readiness check) + * is identical either way. */ +#define HAS_ANY_HEARTBEAT_LED (HAS_HEARTBEAT_LED_PWM || HAS_HEARTBEAT_LED) + +#if HAS_HEARTBEAT_LED_PWM +static inline bool heartbeat_led_is_ready(void) +{ + return pwm_is_ready_dt(&s_heartbeat_led_pwm); +} +static inline void heartbeat_led_write(bool on) +{ + uint32_t pulse = on ? (uint32_t)((uint64_t)s_heartbeat_led_pwm.period * + zephcore_led_brightness_pct() / 100) + : 0; + pwm_set_pulse_dt(&s_heartbeat_led_pwm, pulse); +} +#elif HAS_HEARTBEAT_LED +static inline bool heartbeat_led_is_ready(void) +{ + return gpio_is_ready_dt(&s_heartbeat_led); +} +static inline void heartbeat_led_write(bool on) +{ + gpio_pin_set_dt(&s_heartbeat_led, on ? 1 : 0); +} +#endif + /* Second LED for unread-message indication. Repeaters use led1 for LoRa TX * (via lora-tx-led alias) — no offline queue, so this is companion-only. */ -#if HAS_HEARTBEAT_LED && DT_NODE_HAS_PROP(DT_ALIAS(led0), gpios) && \ +#if HAS_ANY_HEARTBEAT_LED && DT_NODE_HAS_PROP(DT_ALIAS(led0), gpios) && \ DT_NODE_HAS_PROP(DT_ALIAS(led1), gpios) && !defined(ZEPHCORE_REPEATER) static const struct gpio_dt_spec s_msg_led = GPIO_DT_SPEC_GET(DT_ALIAS(led1), gpios); @@ -122,7 +165,7 @@ static const struct gpio_dt_spec s_msg_led = #define LED_ON_MS 20 /* Normal pulse width */ #define LED_ON_MSG_MS 200 /* Pulse width when unread messages */ -#if HAS_HEARTBEAT_LED +#if HAS_ANY_HEARTBEAT_LED static struct k_work_delayable s_led_on_work; static struct k_work_delayable s_led_off_work; @@ -167,9 +210,11 @@ static void led_off_work_handler(struct k_work *work) ARG_UNUSED(work); /* Yield the pin if radio activity is holding it (shared-pin boards only; * everywhere else this always reads false). Clearing here would blank the - * LED in the middle of a transmit. */ + * LED in the middle of a transmit. Routed through heartbeat_led_write() + * rather than a direct gpio_pin_set_dt(), since s_heartbeat_led doesn't + * even exist on PWM-capable boards (see HAS_HEARTBEAT_LED_PWM above). */ if (!zephcore_led_radio_holds_pin()) { - gpio_pin_set_dt(&s_heartbeat_led, 0); + heartbeat_led_write(false); } #if HAS_MSG_LED gpio_pin_set_dt(&s_msg_led, 0); @@ -187,7 +232,7 @@ static void led_on_work_handler(struct k_work *work) if (!zephcore_leds_disabled()) { if (hb_should_light(mc) && !zephcore_led_radio_holds_pin()) { - gpio_pin_set_dt(&s_heartbeat_led, 1); + heartbeat_led_write(true); } #if HAS_MSG_LED /* The unread LED is a separate pin, so it is governed by the mode @@ -201,7 +246,7 @@ static void led_on_work_handler(struct k_work *work) } k_work_reschedule(&s_led_off_work, K_MSEC(on_ms)); } -#endif /* HAS_HEARTBEAT_LED */ +#endif /* HAS_ANY_HEARTBEAT_LED */ /* * Weak: called after s_leds_disabled changes so each UI variant can sync its @@ -212,9 +257,13 @@ __attribute__((weak)) void ui_led_on_disabled_changed(bool disabled) { ARG_UNUSE void ui_led_heartbeat_init(void) { +#if HAS_ANY_HEARTBEAT_LED + if (heartbeat_led_is_ready()) { #if HAS_HEARTBEAT_LED - if (gpio_is_ready_dt(&s_heartbeat_led)) { gpio_pin_configure_dt(&s_heartbeat_led, GPIO_OUTPUT_INACTIVE); +#else + heartbeat_led_write(false); +#endif k_work_init_delayable(&s_led_on_work, led_on_work_handler); k_work_init_delayable(&s_led_off_work, led_off_work_handler); k_work_reschedule(&s_led_on_work, K_NO_WAIT); @@ -231,15 +280,15 @@ void ui_led_heartbeat_init(void) void ui_set_heartbeat_led(bool enabled) { -#if HAS_HEARTBEAT_LED +#if HAS_ANY_HEARTBEAT_LED if (enabled && !zephcore_leds_disabled()) { - if (gpio_is_ready_dt(&s_heartbeat_led)) { + if (heartbeat_led_is_ready()) { k_work_reschedule(&s_led_on_work, K_NO_WAIT); } } else { k_work_cancel_delayable(&s_led_on_work); k_work_cancel_delayable(&s_led_off_work); - gpio_pin_set_dt(&s_heartbeat_led, 0); + heartbeat_led_write(false); #if HAS_MSG_LED gpio_pin_set_dt(&s_msg_led, 0); #endif @@ -257,18 +306,18 @@ void ui_set_heartbeat_led(bool enabled) */ void zephcore_leds_ui_sync(bool disabled) { -#if HAS_HEARTBEAT_LED +#if HAS_ANY_HEARTBEAT_LED if (disabled) { k_work_cancel_delayable(&s_led_on_work); k_work_cancel_delayable(&s_led_off_work); - gpio_pin_set_dt(&s_heartbeat_led, 0); + heartbeat_led_write(false); #if HAS_MSG_LED gpio_pin_set_dt(&s_msg_led, 0); #endif } else if (!k_work_delayable_is_pending(&s_led_on_work) && !k_work_delayable_is_pending(&s_led_off_work)) { /* Restart heartbeat only if it was stopped (avoids spurious pulse) */ - if (gpio_is_ready_dt(&s_heartbeat_led)) { + if (heartbeat_led_is_ready()) { k_work_reschedule(&s_led_on_work, K_NO_WAIT); } } @@ -292,11 +341,11 @@ void ui_set_leds_disabled(bool disabled) * No-op when LEDs are disabled or hardware is absent. */ void ui_led_flash_msg(void) { -#if HAS_HEARTBEAT_LED - if (!zephcore_leds_disabled() && gpio_is_ready_dt(&s_heartbeat_led)) { +#if HAS_ANY_HEARTBEAT_LED + if (!zephcore_leds_disabled() && heartbeat_led_is_ready()) { k_work_cancel_delayable(&s_led_on_work); k_work_cancel_delayable(&s_led_off_work); - gpio_pin_set_dt(&s_heartbeat_led, 1); + heartbeat_led_write(true); k_work_reschedule(&s_led_off_work, K_MSEC(LED_ON_MSG_MS)); } #endif @@ -308,12 +357,12 @@ void ui_led_flash_msg(void) * even at power-off. */ void ui_led_flash_shutdown(void) { -#if HAS_HEARTBEAT_LED - if (!zephcore_leds_disabled() && gpio_is_ready_dt(&s_heartbeat_led)) { +#if HAS_ANY_HEARTBEAT_LED + if (!zephcore_leds_disabled() && heartbeat_led_is_ready()) { for (int i = 0; i < 3; i++) { - gpio_pin_set_dt(&s_heartbeat_led, 1); + heartbeat_led_write(true); k_sleep(K_MSEC(100)); - gpio_pin_set_dt(&s_heartbeat_led, 0); + heartbeat_led_write(false); if (i < 2) { k_sleep(K_MSEC(100)); } From 9997eab938353b66eee995d3c5b8b285b45bd48b Mon Sep 17 00:00:00 2001 From: ZephCore T096 Date: Wed, 26 Aug 2026 19:55:16 +0200 Subject: [PATCH 02/14] t096: fold LED brightness into set/get leds instead of a new command Reuses the existing leds on|off switch for brightness too, same "one command, wording vs number" convention as led.tx/led.hb on _scratch_leds_test, rather than introducing a separate led command. Drops the legacy '1'/'0' single-char aliases from set leds while at it: same 1%/0% shadowing bug already found and fixed on led.tx/led.hb on 2026-08-16, latent here until a numeric value became meaningful. get leds now reports both: "on N%" / "off (N%)". --- zephcore/helpers/CommonCLI.cpp | 65 +++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 25 deletions(-) diff --git a/zephcore/helpers/CommonCLI.cpp b/zephcore/helpers/CommonCLI.cpp index 616cb417..5dca7a96 100644 --- a/zephcore/helpers/CommonCLI.cpp +++ b/zephcore/helpers/CommonCLI.cpp @@ -433,12 +433,16 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch cliModeName(LEDS_HB_NAMES, 4, _prefs->leds_hb_mode), CLI_HAS_HB_LED ? "" : " (no heartbeat LED on this board)"); } else if (memcmp(config, "leds", 4) == 0) { - snprintf(reply, CLI_REPLY_SIZE, "> %s", _prefs->leds_disabled ? "off" : "on"); - } else if (memcmp(config, "led", 3) == 0) { - /* Shared heartbeat/TX brightness, RAM-only — see led_gate.h. - * Checked after "leds" above so "leds" itself never falls - * through to this shorter prefix. */ - snprintf(reply, CLI_REPLY_SIZE, "> %u%%", (unsigned)zephcore_led_brightness_pct()); + /* Brightness (RAM-only, see led_gate.h) reported alongside the + * persisted on/off gate, same "state N%" convention as led.tx/ + * led.hb on the RAK3401 branch. */ + if (_prefs->leds_disabled) { + snprintf(reply, CLI_REPLY_SIZE, "> off (%u%%)", + (unsigned)zephcore_led_brightness_pct()); + } else { + snprintf(reply, CLI_REPLY_SIZE, "> on %u%%", + (unsigned)zephcore_led_brightness_pct()); + } #ifndef ZEPHCORE_REPEATER } else if (memcmp(config, "buzzer", 6) == 0) { uint8_t mode = zephcore_buzzer_mode_from_prefs(_prefs->buzzer_quiet); @@ -747,28 +751,39 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch CLI_HAS_HB_LED ? "" : " (no heartbeat LED on this board)"); } } else if (memcmp(config, "leds ", 5) == 0) { - /* Master switch for every LED on the node: heartbeat, unread-message - * and LoRa TX activity, plus the message and shutdown flashes. Not - * the display backlight — that has its own UI brightness setting. */ - int on = cliOnOff(&config[5], cliDefaults()->leds_disabled ? 0 : 1); - if (on < 0) { - strcpy(reply, "Error: must be on, off or default"); - } else { - _prefs->leds_disabled = on ? 0 : 1; - zephcore_leds_set_disabled(_prefs->leds_disabled != 0); + /* Master switch (persisted) for every LED on the node: heartbeat, + * unread-message and LoRa TX activity, plus the message and + * shutdown flashes. Not the display backlight — that has its own + * UI brightness setting. + * + * Same value orthogonal to a shared brightness (RAM-only, see + * led_gate.h) as led.tx/led.hb on the RAK3401 branch: "on"/"off" + * words only, no "1"/"0" aliases (those would shadow the 1% and + * 0% brightness values — the exact ambiguity already found and + * removed from led.tx/led.hb on 2026-08-16). A bare 0-100 number + * sets the brightness alone and never touches the switch. */ + const char* val = &config[5]; + if (memcmp(val, "on", 2) == 0 && val[2] == '\0') { + _prefs->leds_disabled = 0; + zephcore_leds_set_disabled(false); + savePrefs(); + strcpy(reply, "OK"); + } else if (memcmp(val, "off", 3) == 0 && val[3] == '\0') { + _prefs->leds_disabled = 1; + zephcore_leds_set_disabled(true); savePrefs(); strcpy(reply, "OK"); - } - } else if (memcmp(config, "led ", 4) == 0) { - /* Brightness only, on/off stays on "set leds" above. RAM-only — - * no savePrefs() call here on purpose, see led_gate.h. Checked - * after "leds " so that command never falls through here. */ - int pct = atoi(&config[4]); - if (pct < 0 || pct > 100) { - strcpy(reply, "Error: must be 0-100"); } else { - zephcore_led_set_brightness_pct((uint8_t)pct); - snprintf(reply, CLI_REPLY_SIZE, "OK - led=%d%%", pct); + char *endptr = (char *)val; + long pct = strtol(val, &endptr, 10); + bool trailing_pct = (*endptr == '%' && *(endptr + 1) == '\0'); + if (endptr == val || (*endptr != '\0' && !trailing_pct) || + pct < 0 || pct > 100) { + strcpy(reply, "Error: must be on, off, or 0-100"); + } else { + zephcore_led_set_brightness_pct((uint8_t)pct); + snprintf(reply, CLI_REPLY_SIZE, "OK - leds=%ld%%", pct); + } } #ifndef ZEPHCORE_REPEATER } else if (memcmp(config, "buzzer ", 7) == 0) { From 9e28211ce70227d9d1f3f32bbed19adb045ee193 Mon Sep 17 00:00:00 2001 From: ZephCore T096 Date: Thu, 27 Aug 2026 18:28:15 +0200 Subject: [PATCH 03/14] t096: split leds.brightness from leds on|off (final Option 1 syntax) Reverts the previous merge: "leds" now only ever parses on/off (a pure word command again, no numeric fallback), and brightness moves to its own "leds.brightness <0-100>" command instead of overloading "leds" with a value that could be either a word or a number. Checked before "leds " in the chain since it shares the same 4-byte prefix. Still RAM-only, no savePrefs() call in the brightness branch. This is the syntax settled on after comparing two options: reuse "leds" via a namespaced brightness command (chosen), vs a full per-LED led.hb/led.tx split like the RAK3401 branch (not chosen, decided to apply the "leds"/"leds.brightness" shape everywhere without exception, including any future RAK3401 rework). --- zephcore/helpers/CommonCLI.cpp | 62 ++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/zephcore/helpers/CommonCLI.cpp b/zephcore/helpers/CommonCLI.cpp index 5dca7a96..b0fd4e32 100644 --- a/zephcore/helpers/CommonCLI.cpp +++ b/zephcore/helpers/CommonCLI.cpp @@ -422,8 +422,8 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch } else if (memcmp(config, "int.thresh", 10) == 0) { snprintf(reply, CLI_REPLY_SIZE, "> %u", (uint32_t)_prefs->interference_threshold); /* MUST stay above the "leds" branch: that one compares only the first - * four characters, so "leds.radio" and "leds.hb" both match it and - * would otherwise return the master switch instead. */ + * four characters, so "leds.radio"/"leds.hb"/"leds.brightness" all + * match it and would otherwise return the master switch instead. */ } else if (memcmp(config, "leds.radio", 10) == 0) { snprintf(reply, CLI_REPLY_SIZE, "> %s%s", cliModeName(LEDS_RADIO_NAMES, 4, _prefs->leds_radio_mode), @@ -432,17 +432,13 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch snprintf(reply, CLI_REPLY_SIZE, "> %s%s", cliModeName(LEDS_HB_NAMES, 4, _prefs->leds_hb_mode), CLI_HAS_HB_LED ? "" : " (no heartbeat LED on this board)"); + } else if (memcmp(config, "leds.brightness", 15) == 0) { + /* Separate from "leds" on purpose: keeps the on/off switch a + * pure word command and the dimmer a pure number command, + * instead of one command parsing both — see led_gate.h. */ + snprintf(reply, CLI_REPLY_SIZE, "> %u%%", (unsigned)zephcore_led_brightness_pct()); } else if (memcmp(config, "leds", 4) == 0) { - /* Brightness (RAM-only, see led_gate.h) reported alongside the - * persisted on/off gate, same "state N%" convention as led.tx/ - * led.hb on the RAK3401 branch. */ - if (_prefs->leds_disabled) { - snprintf(reply, CLI_REPLY_SIZE, "> off (%u%%)", - (unsigned)zephcore_led_brightness_pct()); - } else { - snprintf(reply, CLI_REPLY_SIZE, "> on %u%%", - (unsigned)zephcore_led_brightness_pct()); - } + snprintf(reply, CLI_REPLY_SIZE, "> %s", _prefs->leds_disabled ? "off" : "on"); #ifndef ZEPHCORE_REPEATER } else if (memcmp(config, "buzzer", 6) == 0) { uint8_t mode = zephcore_buzzer_mode_from_prefs(_prefs->buzzer_quiet); @@ -750,18 +746,33 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch snprintf(reply, CLI_REPLY_SIZE, "OK%s", CLI_HAS_HB_LED ? "" : " (no heartbeat LED on this board)"); } + } else if (memcmp(config, "leds.brightness ", 16) == 0) { + /* Separate from "leds" on purpose: keeps the on/off switch a pure + * word command and the dimmer a pure number command, instead of + * one command parsing both. RAM-only, see led_gate.h — no + * savePrefs() call here. Checked before "leds " below so this + * longer, more specific prefix is never shadowed by it. */ + const char *val = &config[16]; + char *endptr = (char *)val; + long pct = strtol(val, &endptr, 10); + bool trailing_pct = (*endptr == '%' && *(endptr + 1) == '\0'); + if (endptr == val || (*endptr != '\0' && !trailing_pct) || + pct < 0 || pct > 100) { + strcpy(reply, "Error: must be 0-100"); + } else { + zephcore_led_set_brightness_pct((uint8_t)pct); + snprintf(reply, CLI_REPLY_SIZE, "OK - leds.brightness=%ld%%", pct); + } } else if (memcmp(config, "leds ", 5) == 0) { /* Master switch (persisted) for every LED on the node: heartbeat, * unread-message and LoRa TX activity, plus the message and * shutdown flashes. Not the display backlight — that has its own - * UI brightness setting. - * - * Same value orthogonal to a shared brightness (RAM-only, see - * led_gate.h) as led.tx/led.hb on the RAK3401 branch: "on"/"off" - * words only, no "1"/"0" aliases (those would shadow the 1% and - * 0% brightness values — the exact ambiguity already found and - * removed from led.tx/led.hb on 2026-08-16). A bare 0-100 number - * sets the brightness alone and never touches the switch. */ + * UI brightness setting. "on"/"off" words only, no "1"/"0" + * aliases (removed from led.tx/led.hb on 2026-08-16 for the same + * reason: they used to collide with the 1% and 0% brightness + * values on that branch — moot here since brightness now lives + * under "leds.brightness" instead, but kept out anyway for + * consistency and to reject typos cleanly). */ const char* val = &config[5]; if (memcmp(val, "on", 2) == 0 && val[2] == '\0') { _prefs->leds_disabled = 0; @@ -774,16 +785,7 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch savePrefs(); strcpy(reply, "OK"); } else { - char *endptr = (char *)val; - long pct = strtol(val, &endptr, 10); - bool trailing_pct = (*endptr == '%' && *(endptr + 1) == '\0'); - if (endptr == val || (*endptr != '\0' && !trailing_pct) || - pct < 0 || pct > 100) { - strcpy(reply, "Error: must be on, off, or 0-100"); - } else { - zephcore_led_set_brightness_pct((uint8_t)pct); - snprintf(reply, CLI_REPLY_SIZE, "OK - leds=%ld%%", pct); - } + strcpy(reply, "Error: must be on or off"); } #ifndef ZEPHCORE_REPEATER } else if (memcmp(config, "buzzer ", 7) == 0) { From dcd220766221835a1042d354a3acd7ff97d42bbc Mon Sep 17 00:00:00 2001 From: ZephCore T096 Date: Thu, 27 Aug 2026 20:36:31 +0200 Subject: [PATCH 04/14] wt2: shared PWM brightness for the status LED (heartbeat/TX/flashes) Ports the T096 "Option 1" design (single LED, get/set leds on|off persisted + get/set leds.brightness 0-100 RAM-only) to the Wireless Tracker V2, which has the same single-LED-multi-purpose situation (status_led doubles as heartbeat/message-flash/shutdown-flash/TX indicator, same as T096's P0.28). Adds a new ledc0 PWM channel on GPIO18 (same physical pin as the existing plain-GPIO status_led) with heartbeat-pwm-led/lora-tx-pwm-led aliases -- the shared C++ logic (helpers/ui/ui_common.c, adapters/board/ZephyrBoard.cpp, helpers/led_gate.c/h, helpers/CommonCLI.cpp) already existed from the T096 commits and needed no changes, being board-agnostic behind DT_NODE_EXISTS checks. CONFIG_PWM=y deliberately NOT in the board defconfig: WT2 builds via --sysbuild (mcuboot + app as two images sharing that defconfig), and mcuboot's minimal kernel config has no k_sem_give()/k_sem_take(), which the ESP32 PWM LED driver needs -- CONFIG_PWM=y there links the app image fine but fails mcuboot's link. New boards/common/esp32s3_pwm_led.conf scopes it to the app image only via EXTRA_CONF_FILE, alongside the existing esp32s3_usb.conf. --- zephcore/boards/common/esp32s3_pwm_led.conf | 15 +++++++++ .../heltec_wireless_tracker_v2-pinctrl.dtsi | 7 ++++ .../heltec_wireless_tracker_v2_procpu.dts | 32 +++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 zephcore/boards/common/esp32s3_pwm_led.conf diff --git a/zephcore/boards/common/esp32s3_pwm_led.conf b/zephcore/boards/common/esp32s3_pwm_led.conf new file mode 100644 index 00000000..97f8f3c5 --- /dev/null +++ b/zephcore/boards/common/esp32s3_pwm_led.conf @@ -0,0 +1,15 @@ +# Enable PWM on ESP32-S3 sysbuild targets (shared heartbeat/TX LED brightness, +# see the heartbeat-pwm-led / lora-tx-pwm-led devicetree aliases consumed by +# helpers/ui/ui_common.c and adapters/board/ZephyrBoard.cpp). +# +# Deliberately NOT in the board *_defconfig: that file is shared by every +# sysbuild image for the board, including mcuboot, whose minimal kernel +# config has no k_sem_give()/k_sem_take() -- CONFIG_PWM=y there links fine for +# the app image but fails mcuboot's link with "undefined reference to +# z_impl_k_sem_give/take" (drivers/pwm/pwm_led_esp32.c uses a semaphore). +# EXTRA_CONF_FILE scopes this to the app ("zephcore") image only. +# +# Build with: +# -DEXTRA_CONF_FILE="boards/common/esp32s3_usb.conf;boards/common/esp32s3_pwm_led.conf" + +CONFIG_PWM=y diff --git a/zephcore/boards/esp32/heltec_wireless_tracker_v2/heltec_wireless_tracker_v2-pinctrl.dtsi b/zephcore/boards/esp32/heltec_wireless_tracker_v2/heltec_wireless_tracker_v2-pinctrl.dtsi index 15c912d8..04c3cd3f 100644 --- a/zephcore/boards/esp32/heltec_wireless_tracker_v2/heltec_wireless_tracker_v2-pinctrl.dtsi +++ b/zephcore/boards/esp32/heltec_wireless_tracker_v2/heltec_wireless_tracker_v2-pinctrl.dtsi @@ -72,4 +72,11 @@ output-low; }; }; + + ledc0_default: ledc0_default { + group1 { + pinmux = ; + output-enable; + }; + }; }; diff --git a/zephcore/boards/esp32/heltec_wireless_tracker_v2/heltec_wireless_tracker_v2_procpu.dts b/zephcore/boards/esp32/heltec_wireless_tracker_v2/heltec_wireless_tracker_v2_procpu.dts index 3a02f53e..f3baadf8 100644 --- a/zephcore/boards/esp32/heltec_wireless_tracker_v2/heltec_wireless_tracker_v2_procpu.dts +++ b/zephcore/boards/esp32/heltec_wireless_tracker_v2/heltec_wireless_tracker_v2_procpu.dts @@ -30,6 +30,7 @@ #include #include #include +#include #include "heltec_wireless_tracker_v2-pinctrl.dtsi" / { @@ -39,6 +40,8 @@ aliases { led0 = &status_led; lora-tx-led = &status_led; + heartbeat-pwm-led = &pwm_status_led; + lora-tx-pwm-led = &pwm_status_led; uart-0 = &uart0; uart-2 = &uart2; i2c-0 = &i2c0; @@ -69,6 +72,22 @@ }; }; + /* Same GPIO18 net as status_led above, driven through the LEDC PWM + * peripheral instead of a raw GPIO write. Single LED doubling as + * heartbeat, message/shutdown flash and LoRa TX indicator (same + * "Option 1" shared-brightness pattern as T096, see helpers/ui/ui_common.c + * and adapters/board/ZephyrBoard.cpp: heartbeat-pwm-led/lora-tx-pwm-led + * aliases give every one of those events a single 0-100 brightness knob, + * RAM-only, on top of the existing persisted on/off gate. */ + pwm_leds { + compatible = "pwm-leds"; + + pwm_status_led: pwm_led_gpio18 { + label = "Status PWM LED"; + pwms = <&ledc0 0 PWM_MSEC(10) PWM_POLARITY_NORMAL>; + }; + }; + buttons: buttons { compatible = "gpio-keys"; @@ -231,6 +250,19 @@ status = "okay"; }; +&ledc0 { + pinctrl-0 = <&ledc0_default>; + pinctrl-names = "default"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + channel0@0 { + reg = <0x0>; + timer = <0>; + }; +}; + &i2c0 { status = "okay"; clock-frequency = ; From 108fc166a3445cc66cd29974e9a54af83a9b78c5 Mon Sep 17 00:00:00 2001 From: ZephCore T096 Date: Fri, 4 Sep 2026 19:50:20 +0200 Subject: [PATCH 05/14] leds: persist brightness across reboots and firmware updates leds.brightness (PWM-capable boards) was RAM-only since it was added: it always reset to ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT (10%) on every boot, regardless of what a user had last set it to. New field led_brightness on NodePrefs, following the exact same append-only pattern as leds_radio_mode/leds_hb_mode added just before it: offset 311 in RepeaterDataStore.cpp (repeater/room-server/observer, shared file), offset 174 in ZephyrDataStore.cpp (companion). Both are backward compatible by construction: a prefs file written before this field existed simply leaves it at the initNodePrefs() default (10%), which is exactly the behaviour every already-deployed node has today -- no special-casing needed to keep "10% on a new/not-yet-upgraded node" as the effective default. CommonCLI.cpp's "set leds.brightness" handler now writes the prefs field and calls savePrefs(), same as the leds.radio/leds.hb handlers right above it; "get leds.brightness" now reads from prefs instead of the RAM getter directly, for the same reason those two already do (always in sync, prefs is the source of truth). The four boot call sites (main_companion.cpp, main_repeater.cpp, main_room_server.cpp, main_observer.cpp) each gained a zephcore_led_set_brightness_pct() call seeding the RAM cache from the persisted value, mirroring the existing leds_radio_mode/leds_hb_mode lines right next to them. Verified building for heltec_t096/nrf52840 (companion) and rak3401_1watt (repeater), the two roles/datastores touched by this change. --- zephcore/adapters/datastore/ZephyrDataStore.cpp | 12 +++++++++++- zephcore/app/RepeaterDataStore.cpp | 7 +++++++ zephcore/app/main_observer.cpp | 1 + zephcore/helpers/CommonCLI.cpp | 17 +++++++++++++---- zephcore/helpers/NodePrefs.h | 3 +++ zephcore/src/main_companion.cpp | 1 + zephcore/src/main_repeater.cpp | 1 + zephcore/src/main_room_server.cpp | 1 + 8 files changed, 38 insertions(+), 5 deletions(-) diff --git a/zephcore/adapters/datastore/ZephyrDataStore.cpp b/zephcore/adapters/datastore/ZephyrDataStore.cpp index f87330ff..c991381e 100644 --- a/zephcore/adapters/datastore/ZephyrDataStore.cpp +++ b/zephcore/adapters/datastore/ZephyrDataStore.cpp @@ -907,6 +907,14 @@ void ZephyrDataStore::loadPrefs(NodePrefs &prefs) if (off < len) { prefs.leds_hb_mode = buf[off++]; } + /* Offset 174: led_brightness (ZephCore extension, since 1.17.4). Absent + * in pre-existing files -> stays at the initNodePrefs() default of + * ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT (10%), same value a fresh node + * already showed before this field was persisted. Range re-checked by + * sanitizeNodePrefs() below. */ + if (off < len) { + prefs.led_brightness = buf[off++]; + } sanitizeNodePrefs(&prefs); } @@ -1022,7 +1030,9 @@ void ZephyrDataStore::savePrefs(const NodePrefs &prefs) /* Offset 172-173: leds_radio_mode / leds_hb_mode (ZephCore extension). */ buf[off++] = prefs.leds_radio_mode; buf[off++] = prefs.leds_hb_mode; - /* Total: 174 bytes */ + /* Offset 174: led_brightness (ZephCore extension, since 1.17.4). */ + buf[off++] = prefs.led_brightness; + /* Total: 175 bytes */ bool ok = atomicReplaceFile(PREFS_FILE, buf, off); LOG_DBG("savePrefs: wrote %s, ok=%d (%d bytes), name='%.16s'", diff --git a/zephcore/app/RepeaterDataStore.cpp b/zephcore/app/RepeaterDataStore.cpp index 6dce7530..9c0d5ae4 100644 --- a/zephcore/app/RepeaterDataStore.cpp +++ b/zephcore/app/RepeaterDataStore.cpp @@ -301,6 +301,11 @@ bool RepeaterDataStore::loadPrefs(NodePrefs& prefs) { * (activity LED on transmit, heartbeat with unread indication). */ fs_read(&file, &prefs.leds_radio_mode, sizeof(prefs.leds_radio_mode)); fs_read(&file, &prefs.leds_hb_mode, sizeof(prefs.leds_hb_mode)); + /* LED brightness, offset 311 (ZephCore extension, since 1.17.4). Absent + * in <312-byte files; leaves the initNodePrefs() default of + * ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT (10%), same value a fresh node + * already showed before this field was persisted. */ + fs_read(&file, &prefs.led_brightness, sizeof(prefs.led_brightness)); fs_close(&file); @@ -467,6 +472,8 @@ bool RepeaterDataStore::savePrefs(const NodePrefs& prefs) { /* LED activity/heartbeat modes (offsets 309-310) */ fs_write(&file, &prefs.leds_radio_mode, sizeof(prefs.leds_radio_mode)); fs_write(&file, &prefs.leds_hb_mode, sizeof(prefs.leds_hb_mode)); + /* LED brightness (offset 311, since 1.17.4) */ + fs_write(&file, &prefs.led_brightness, sizeof(prefs.led_brightness)); ret = fs_sync(&file); fs_close(&file); diff --git a/zephcore/app/main_observer.cpp b/zephcore/app/main_observer.cpp index bf78338f..fe41819c 100644 --- a/zephcore/app/main_observer.cpp +++ b/zephcore/app/main_observer.cpp @@ -385,6 +385,7 @@ int main(void) zephcore_leds_set_disabled(leds_off); zephcore_leds_set_radio_mode(prefs->leds_radio_mode); zephcore_leds_set_hb_mode(prefs->leds_hb_mode); + zephcore_led_set_brightness_pct(prefs->led_brightness); LOG_INF("LEDs: %s (from prefs)", leds_off ? "disabled" : "enabled"); } diff --git a/zephcore/helpers/CommonCLI.cpp b/zephcore/helpers/CommonCLI.cpp index b0fd4e32..d9b83022 100644 --- a/zephcore/helpers/CommonCLI.cpp +++ b/zephcore/helpers/CommonCLI.cpp @@ -435,8 +435,11 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch } else if (memcmp(config, "leds.brightness", 15) == 0) { /* Separate from "leds" on purpose: keeps the on/off switch a * pure word command and the dimmer a pure number command, - * instead of one command parsing both — see led_gate.h. */ - snprintf(reply, CLI_REPLY_SIZE, "> %u%%", (unsigned)zephcore_led_brightness_pct()); + * instead of one command parsing both — see led_gate.h. Read + * from _prefs, same as leds.radio/leds.hb above, not from the + * RAM getter directly -- the two are always in sync, the "set" + * handler below writes both together. */ + snprintf(reply, CLI_REPLY_SIZE, "> %u%%", (unsigned)_prefs->led_brightness); } else if (memcmp(config, "leds", 4) == 0) { snprintf(reply, CLI_REPLY_SIZE, "> %s", _prefs->leds_disabled ? "off" : "on"); #ifndef ZEPHCORE_REPEATER @@ -749,8 +752,12 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch } else if (memcmp(config, "leds.brightness ", 16) == 0) { /* Separate from "leds" on purpose: keeps the on/off switch a pure * word command and the dimmer a pure number command, instead of - * one command parsing both. RAM-only, see led_gate.h — no - * savePrefs() call here. Checked before "leds " below so this + * one command parsing both. Persisted (since 1.17.4): a fresh + * node still starts at ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT (the + * append-only prefs format leaves this byte at the + * initNodePrefs() default on any file that predates this field), + * but once set it survives reboots and firmware updates like + * leds.radio/leds.hb above. Checked before "leds " below so this * longer, more specific prefix is never shadowed by it. */ const char *val = &config[16]; char *endptr = (char *)val; @@ -760,7 +767,9 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch pct < 0 || pct > 100) { strcpy(reply, "Error: must be 0-100"); } else { + _prefs->led_brightness = (uint8_t)pct; zephcore_led_set_brightness_pct((uint8_t)pct); + savePrefs(); snprintf(reply, CLI_REPLY_SIZE, "OK - leds.brightness=%ld%%", pct); } } else if (memcmp(config, "leds ", 5) == 0) { diff --git a/zephcore/helpers/NodePrefs.h b/zephcore/helpers/NodePrefs.h index 2779a81a..29dc90b9 100644 --- a/zephcore/helpers/NodePrefs.h +++ b/zephcore/helpers/NodePrefs.h @@ -95,6 +95,7 @@ struct NodePrefs { uint8_t leds_disabled; // 1 = all LEDs off (heartbeat, unread, LoRa TX) uint8_t leds_radio_mode; // LEDS_RADIO_* — activity LED source (0 = TX, as before) uint8_t leds_hb_mode; // LEDS_HB_* — heartbeat LED behaviour (0 = all, as before) + uint8_t led_brightness; // 0-100, PWM-capable boards only; ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT on a new node // Power saving uint8_t powersaving_enabled; // GPS settings @@ -284,6 +285,7 @@ static inline void sanitizeNodePrefs(NodePrefs* p) { p->leds_disabled = saneBool(p->leds_disabled, 0); p->leds_radio_mode = saneEnum(p->leds_radio_mode, LEDS_RADIO_MAX); p->leds_hb_mode = saneEnum(p->leds_hb_mode, LEDS_HB_MAX); + p->led_brightness = clampPref(p->led_brightness, 0, 100); p->meshtimesync = saneBool(p->meshtimesync, 0); /* Fallback must be the initNodePrefs() default (ON). It was 0, so a byte * that was neither 0 nor 1 silently switched adaptive CAD off instead of @@ -386,6 +388,7 @@ static inline void initNodePrefs(NodePrefs* prefs) { prefs->leds_disabled = 0; // LEDs on prefs->leds_radio_mode = LEDS_RADIO_TX; // activity LED on transmit, as before prefs->leds_hb_mode = LEDS_HB_ALL; // heartbeat + unread, as before + prefs->led_brightness = ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT; // 10%, new node prefs->powersaving_enabled = 0; prefs->gps_enabled = 0; prefs->gps_interval = 300; // 5 minutes diff --git a/zephcore/src/main_companion.cpp b/zephcore/src/main_companion.cpp index a347485e..607cb588 100644 --- a/zephcore/src/main_companion.cpp +++ b/zephcore/src/main_companion.cpp @@ -1603,6 +1603,7 @@ int main(void) zephcore_leds_set_disabled(leds_off); zephcore_leds_set_radio_mode(companion_mesh.prefs.leds_radio_mode); zephcore_leds_set_hb_mode(companion_mesh.prefs.leds_hb_mode); + zephcore_led_set_brightness_pct(companion_mesh.prefs.led_brightness); ui_set_heartbeat_led(!leds_off); LOG_INF("LEDs: %s (from prefs)", leds_off ? "disabled" : "enabled"); diff --git a/zephcore/src/main_repeater.cpp b/zephcore/src/main_repeater.cpp index a6ab9e7f..8a66f7e1 100644 --- a/zephcore/src/main_repeater.cpp +++ b/zephcore/src/main_repeater.cpp @@ -775,6 +775,7 @@ int main(void) zephcore_leds_set_disabled(leds_off); zephcore_leds_set_radio_mode(lp->leds_radio_mode); zephcore_leds_set_hb_mode(lp->leds_hb_mode); + zephcore_led_set_brightness_pct(lp->led_brightness); LOG_INF("LEDs: %s (from prefs)", leds_off ? "disabled" : "enabled"); } diff --git a/zephcore/src/main_room_server.cpp b/zephcore/src/main_room_server.cpp index 0c7718e2..18f20bb2 100644 --- a/zephcore/src/main_room_server.cpp +++ b/zephcore/src/main_room_server.cpp @@ -660,6 +660,7 @@ int main(void) zephcore_leds_set_disabled(leds_off); zephcore_leds_set_radio_mode(lp->leds_radio_mode); zephcore_leds_set_hb_mode(lp->leds_hb_mode); + zephcore_led_set_brightness_pct(lp->led_brightness); LOG_INF("LEDs: %s (from prefs)", leds_off ? "disabled" : "enabled"); } From 2667817ba2af25f8f69b654ed4073252bd37a5e6 Mon Sep 17 00:00:00 2001 From: ZephCore T096 Date: Fri, 4 Sep 2026 20:21:48 +0200 Subject: [PATCH 06/14] board: extend TX/RX LED pin-share arbitration to PWM-shared boards The RX-pulse/pin-hold interlock (s_tx_lit/s_rx_pulse_off/ zephcore_led_radio_hold_pin) was gated by HAS_TX_LED alone, so it never compiled in for any PWM-capable board (HAS_TX_LED_PWM). Left two real gaps: - T096 and Wireless Tracker V2 alias heartbeat and TX activity to the SAME physical PWM LED (ZEPHCORE_LED_PIN_SHARED's intent exactly), but had none of the arbitration that protects every plain-GPIO board with the same wiring -- a transmit and a heartbeat tick could still clip each other on the shared PWM channel. - All PWM boards, RAK3401 included, had no onPacketReceived() blink at all: "set leds.radio rx" (or "all") silently did nothing on the activity LED, since that whole code path only existed under HAS_TX_LED. Fixed by widening every "#if HAS_TX_LED" guard around this machinery to "#if HAS_TX_LED_PWM || HAS_TX_LED", and adding a small tx_led_write(bool) helper (mirroring heartbeat_led_write() in helpers/ui/ui_common.c) so the shared interlock logic doesn't need to know which path is compiled in -- only the final write differs. ZEPHCORE_LED_PIN_SHARED itself gained a PWM branch: true when heartbeat-pwm-led and lora-tx-pwm-led alias the same DT node (T096, WT2), same as it already was for the GPIO led0/lora-tx-led case. RAK3401's two PWM LEDs are on distinct nodes, so it correctly stays unshared -- no arbitration overhead there, but it does now get the RX blink like every other PWM board. The heartbeat side (helpers/ui/ui_common.c) needed no change: it already checks zephcore_led_radio_holds_pin() unconditionally through heartbeat_led_write(), from the LED brightness persistence commit earlier today. Verified building for heltec_t096/nrf52840 (shared PWM LED), heltec_wireless_tracker_v2/esp32s3 (shared PWM LED), and rak3401_1watt (two independent PWM LEDs, confirms ZEPHCORE_LED_PIN_SHARED stays 0 there). --- zephcore/adapters/board/ZephyrBoard.cpp | 85 +++++++++++++++---------- 1 file changed, 51 insertions(+), 34 deletions(-) diff --git a/zephcore/adapters/board/ZephyrBoard.cpp b/zephcore/adapters/board/ZephyrBoard.cpp index bdf33018..4ba758c8 100644 --- a/zephcore/adapters/board/ZephyrBoard.cpp +++ b/zephcore/adapters/board/ZephyrBoard.cpp @@ -111,14 +111,8 @@ static const struct pwm_dt_spec tx_led_pwm = PWM_DT_SPEC_GET(DT_ALIAS(lora_tx_pwm_led)); #define HAS_TX_LED_PWM 1 #define HAS_TX_LED 0 -static int tx_led_init(void) -{ - if (device_is_ready(tx_led_pwm.dev)) { - pwm_set_pulse_dt(&tx_led_pwm, 0); /* start dark, same as GPIO_OUTPUT_INACTIVE */ - } - return 0; -} -SYS_INIT(tx_led_init, APPLICATION, 90); +/* Init deferred to the combined tx_led_init() below (with the GPIO path), + * since both now also need to arm s_rx_pulse_off -- see that block. */ #elif DT_NODE_EXISTS(DT_ALIAS(lora_tx_led)) static const struct gpio_dt_spec tx_led = GPIO_DT_SPEC_GET(DT_ALIAS(lora_tx_led), gpios); @@ -130,7 +124,8 @@ static const struct gpio_dt_spec tx_led = #endif /* True when this board wires the activity LED to the same pin as the heartbeat - * (8 of the supported boards do). Only those pay for the arbitration hold in + * (8 of the supported boards do, counting only the plain-GPIO ones -- see the + * PWM branch below for the rest). Only those pay for the arbitration hold in * led_gate.c — everywhere else the two LEDs are independent and the calls * compile out. led1 is checked as well because ui_common.c falls back to it * when a board has no led0. */ @@ -141,10 +136,36 @@ static const struct gpio_dt_spec tx_led = DT_NODE_EXISTS(DT_ALIAS(led1)) && \ DT_SAME_NODE(DT_ALIAS(led1), DT_ALIAS(lora_tx_led)) #define ZEPHCORE_LED_PIN_SHARED 1 +/* PWM equivalent: true when heartbeat and TX activity are aliased to the same + * PWM LED node (T096, Wireless Tracker V2). Not the case on every PWM board -- + * RAK3401 has two independent PWM LEDs (green/blue), so this stays 0 there and + * the hold below is correctly never taken. */ +#elif HAS_TX_LED_PWM && DT_NODE_EXISTS(DT_ALIAS(heartbeat_pwm_led)) && \ + DT_SAME_NODE(DT_ALIAS(heartbeat_pwm_led), DT_ALIAS(lora_tx_pwm_led)) +#define ZEPHCORE_LED_PIN_SHARED 1 #else #define ZEPHCORE_LED_PIN_SHARED 0 #endif +/* PWM-or-GPIO write for the activity LED, mirroring heartbeat_led_write() in + * helpers/ui/ui_common.c -- same reasoning: the write itself must not care + * which path is compiled in, only the callers (onBeforeTransmit/ + * onAfterTransmit/onPacketReceived/rx_pulse_off_handler below) do. */ +#if HAS_TX_LED_PWM +static inline void tx_led_write(bool on) +{ + uint32_t pulse = on ? (uint32_t)((uint64_t)tx_led_pwm.period * + zephcore_led_brightness_pct() / 100) + : 0; + pwm_set_pulse_dt(&tx_led_pwm, pulse); +} +#elif HAS_TX_LED +static inline void tx_led_write(bool on) +{ + gpio_pin_set_dt(&tx_led, on ? 1 : 0); +} +#endif + #include LOG_MODULE_REGISTER(zephcore_board, CONFIG_ZEPHCORE_BOARD_LOG_LEVEL); @@ -194,8 +215,8 @@ static const struct device *const fuel_gauge_dev = #define HAS_FUEL_GAUGE 0 #endif -/* Initialize activity LED GPIO at boot */ -#if HAS_TX_LED +/* Initialize activity LED (PWM or GPIO) at boot */ +#if HAS_TX_LED_PWM || HAS_TX_LED /* Width of the receive blink. A transmit holds the LED for its whole airtime, * but a receive is a single edge — the packet is over by the time the driver * hands it up — so RX has to be a fixed one-shot. 30 ms is deliberately longer @@ -208,7 +229,9 @@ static const struct device *const fuel_gauge_dev = * interlock that keeps an RX one-shot from clearing a pin that TX still owns: * the two are driven from different threads (radio TX path vs system work * queue), so without it a pulse landing mid-transmit would blank the LED for - * the rest of the packet. */ + * the rest of the packet. Applies equally to the PWM-shared boards (T096, + * Wireless Tracker V2): same race, same fix, just written through + * tx_led_write() instead of a bare gpio_pin_set_dt(). */ static atomic_t s_tx_lit; static struct k_work_delayable s_rx_pulse_off; @@ -220,7 +243,7 @@ static void rx_pulse_off_handler(struct k_work *work) if (atomic_get(&s_tx_lit)) { return; } - gpio_pin_set_dt(&tx_led, 0); + tx_led_write(false); #if ZEPHCORE_LED_PIN_SHARED zephcore_led_radio_hold_pin(false); #endif @@ -228,9 +251,15 @@ static void rx_pulse_off_handler(struct k_work *work) static int tx_led_init(void) { +#if HAS_TX_LED_PWM + if (device_is_ready(tx_led_pwm.dev)) { + pwm_set_pulse_dt(&tx_led_pwm, 0); /* start dark, same as GPIO_OUTPUT_INACTIVE */ + } +#else if (gpio_is_ready_dt(&tx_led)) { gpio_pin_configure_dt(&tx_led, GPIO_OUTPUT_INACTIVE); } +#endif k_work_init_delayable(&s_rx_pulse_off, rx_pulse_off_handler); return 0; } @@ -384,20 +413,10 @@ void ZephyrBoard::onBeforeTransmit() * ("set leds.radio"). On a headless repeater this is the only LED that ever * lights, so both have to be checked here and not just in the UI layer. * onAfterTransmit() still clears the pin unconditionally, so a gate or mode - * flipped mid-transmit can't strand it lit. */ -#if HAS_TX_LED_PWM - /* PWM-shared boards (T096) don't yet have the RX-pulse/pin-hold interlock - * below -- that machinery (s_tx_lit/s_rx_pulse_off) is declared only under - * HAS_TX_LED. Mode-gated brightness write only for now; see the rebase - * notes for why this is a deliberate gap, not an oversight. */ - uint8_t mode = zephcore_leds_radio_mode(); - if (!zephcore_leds_disabled() && - (mode == LEDS_RADIO_TX || mode == LEDS_RADIO_ALL)) { - uint32_t pulse = (uint32_t)((uint64_t)tx_led_pwm.period * - zephcore_led_brightness_pct() / 100); - pwm_set_pulse_dt(&tx_led_pwm, pulse); - } -#elif HAS_TX_LED + * flipped mid-transmit can't strand it lit. Same interlock on PWM-shared + * boards (T096, Wireless Tracker V2) as on plain-GPIO ones -- only the + * final write (tx_led_write()) differs. */ +#if HAS_TX_LED_PWM || HAS_TX_LED uint8_t mode = zephcore_leds_radio_mode(); if (!zephcore_leds_disabled() && (mode == LEDS_RADIO_TX || mode == LEDS_RADIO_ALL)) { @@ -408,18 +427,16 @@ void ZephyrBoard::onBeforeTransmit() #if ZEPHCORE_LED_PIN_SHARED zephcore_led_radio_hold_pin(true); #endif - gpio_pin_set_dt(&tx_led, 1); + tx_led_write(true); } #endif } void ZephyrBoard::onAfterTransmit() { -#if HAS_TX_LED_PWM - pwm_set_pulse_dt(&tx_led_pwm, 0); -#elif HAS_TX_LED +#if HAS_TX_LED_PWM || HAS_TX_LED atomic_set(&s_tx_lit, 0); - gpio_pin_set_dt(&tx_led, 0); + tx_led_write(false); #if ZEPHCORE_LED_PIN_SHARED zephcore_led_radio_hold_pin(false); #endif @@ -428,7 +445,7 @@ void ZephyrBoard::onAfterTransmit() void ZephyrBoard::onPacketReceived() { -#if HAS_TX_LED +#if HAS_TX_LED_PWM || HAS_TX_LED uint8_t mode = zephcore_leds_radio_mode(); if (zephcore_leds_disabled() || (mode != LEDS_RADIO_RX && mode != LEDS_RADIO_ALL)) { @@ -444,7 +461,7 @@ void ZephyrBoard::onPacketReceived() #if ZEPHCORE_LED_PIN_SHARED zephcore_led_radio_hold_pin(true); #endif - gpio_pin_set_dt(&tx_led, 1); + tx_led_write(true); /* Reschedule rather than schedule: back-to-back packets should extend the * blink, not have the first one's handler cut the second one short. */ k_work_reschedule(&s_rx_pulse_off, K_MSEC(RX_PULSE_MS)); From 85ba2e3eb5dd16b50ffa228a020af3ee7ebfb1f5 Mon Sep 17 00:00:00 2001 From: ZephCore T096 Date: Fri, 4 Sep 2026 21:11:29 +0200 Subject: [PATCH 07/14] board: wire V4.3's existing PWM LED node into the brightness/mode system heltec_wifi_lora32_v43_procpu.dts already declared a pwm-leds node for its single onboard LED (pwm_led_white, LEDC0/GPIO35, generic pwm-led0 alias) -- it just never had the two project-specific aliases (heartbeat-pwm-led / lora-tx-pwm-led) that helpers/ui/ui_common.c and adapters/board/ZephyrBoard.cpp actually look for. T096 and Wireless Tracker V2 have had this wired for a while; V4.3 was simply never included in that earlier rollout, not blocked by anything in its hardware -- the PWM path was sitting there unused this whole time, confirmed by grepping for any other consumer of pwm-led0/pwm_led_white before touching it (none). Aliased both roles to the same node, same as T096/WT2: this board has only one physical LED, shared between heartbeat and LoRa TX activity. ZEPHCORE_LED_PIN_SHARED and the RX-pulse/pin-hold arbitration (extended to PWM boards earlier today, commit a57d4c7) apply automatically since both aliases point at the same node. Gives V4.3 the full leds.radio/leds.hb/leds.brightness set for the first time: leds.radio previously had no effect at all on this board (no activity LED aliased whatsoever), leds.brightness was accepted but inert (no PWM-capable LED reachable). Verified building for heltec_wifi_lora32_v43/esp32s3 with boards/common/esp32s3_pwm_led.conf (same flag already used for WT2). --- .../heltec_wifi_lora32_v43_procpu.dts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/zephcore/boards/esp32/heltec_wifi_lora32_v43/heltec_wifi_lora32_v43_procpu.dts b/zephcore/boards/esp32/heltec_wifi_lora32_v43/heltec_wifi_lora32_v43_procpu.dts index 8539360e..3a8e266b 100644 --- a/zephcore/boards/esp32/heltec_wifi_lora32_v43/heltec_wifi_lora32_v43_procpu.dts +++ b/zephcore/boards/esp32/heltec_wifi_lora32_v43/heltec_wifi_lora32_v43_procpu.dts @@ -47,6 +47,13 @@ led0 = &led0; pwm-0 = &ledc0; pwm-led0 = &pwm_led_white; + /* Single physical LED, shared between the heartbeat and LoRa TX + * activity roles (same node aliased twice), same pattern as T096 and + * Wireless Tracker V2 -- see helpers/ui/ui_common.c and + * adapters/board/ZephyrBoard.cpp (ZEPHCORE_LED_PIN_SHARED covers the + * arbitration between the two roles automatically). */ + heartbeat-pwm-led = &pwm_led_white; + lora-tx-pwm-led = &pwm_led_white; uart-0 = &uart0; i2c-0 = &i2c0; lora0 = &lora0; From 5261aabdcad7d264782e957896826026e84abd32 Mon Sep 17 00:00:00 2001 From: ZephCore T096 Date: Sat, 5 Sep 2026 00:26:50 +0200 Subject: [PATCH 08/14] leds: default brightness 100%, matching pre-existing hardware behavior ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT was 10 on the branch this was developed on (a local preference for that project's own compiles). For general use it should default to what every PWM LED already ran at before this setting existed: full brightness. Also fixes a stale led_gate.h comment that still said "RAM-only, not persisted" after brightness became a persisted NodePrefs field. --- zephcore/helpers/NodePrefs.h | 2 +- zephcore/helpers/led_gate.h | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/zephcore/helpers/NodePrefs.h b/zephcore/helpers/NodePrefs.h index 29dc90b9..85eb3166 100644 --- a/zephcore/helpers/NodePrefs.h +++ b/zephcore/helpers/NodePrefs.h @@ -388,7 +388,7 @@ static inline void initNodePrefs(NodePrefs* prefs) { prefs->leds_disabled = 0; // LEDs on prefs->leds_radio_mode = LEDS_RADIO_TX; // activity LED on transmit, as before prefs->leds_hb_mode = LEDS_HB_ALL; // heartbeat + unread, as before - prefs->led_brightness = ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT; // 10%, new node + prefs->led_brightness = ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT; // 100%, new node prefs->powersaving_enabled = 0; prefs->gps_enabled = 0; prefs->gps_interval = 300; // 5 minutes diff --git a/zephcore/helpers/led_gate.h b/zephcore/helpers/led_gate.h index 655b02a8..29ec69b8 100644 --- a/zephcore/helpers/led_gate.h +++ b/zephcore/helpers/led_gate.h @@ -36,13 +36,13 @@ void zephcore_leds_set_disabled(bool disabled); /* Shared PWM brightness (0-100) for boards whose heartbeat/TX LED is * PWM-capable (DT_ALIAS(heartbeat_pwm_led) / DT_ALIAS(lora_tx_pwm_led)). - * Deliberately RAM-only, not persisted: resets to - * ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT on every reboot regardless of any - * "set led " done during a previous session. Independent of the on/off - * gate above: brightness only matters while the gate is open. No-op on - * boards without a PWM-capable LED (the getter still returns the compiled - * default, simply unused). */ -#define ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT 10 + * Persisted via NodePrefs (prefs.led_brightness); ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT + * only seeds the RAM cache on a fresh node with no saved value yet (100%, + * matching the brightness every PWM LED ran at before this setting existed). + * Independent of the on/off gate above: brightness only matters while the + * gate is open. No-op on boards without a PWM-capable LED (the getter still + * returns the compiled default, simply unused). */ +#define ZEPHCORE_LED_DEFAULT_BRIGHTNESS_PCT 100 uint8_t zephcore_led_brightness_pct(void); void zephcore_led_set_brightness_pct(uint8_t pct); From fd668177cf8a988de22e17c1074e29ef49a48389 Mon Sep 17 00:00:00 2001 From: ZephCore T096 Date: Fri, 4 Sep 2026 22:19:24 +0200 Subject: [PATCH 09/14] ui: on-screen LED settings menu (brightness by step size) Long press on the LEDs page now enters a 3-level menu instead of toggling on/off directly: row select (4 rows: on/off + three brightness step sizes, +/-20%/+/-5%/+/-1%), then value edit for whichever brightness row was picked. Tap = next row / +step, 2 taps = back one level / -step, long press = select / confirm. Brightness changes apply live via the existing lock-free zephcore_led_set_brightness_pct() and persist through a new deferred action (UI_ACTION_LED_BRIGHTNESS_SAVE / mesh_set_led_brightness_pct), mirroring the existing leds_disabled toggle's pattern rather than the unrelated display-backlight UI_ACTION_BRIGHTNESS_SAVE. Compile-checked on T096, Wireless Tracker V2 and V4.3 (all three share this button-UI code; the joystick UI is untouched). --- zephcore/helpers/ui-button/ui_pages.c | 124 +++++++++++++++++--- zephcore/helpers/ui-button/ui_pages.h | 8 ++ zephcore/helpers/ui-button/ui_task.c | 91 +++++++++++++- zephcore/helpers/ui/ui_mesh_actions.cpp | 21 ++++ zephcore/helpers/ui/ui_mesh_actions.h | 3 + zephcore/helpers/ui/ui_mesh_actions_stubs.c | 1 + 6 files changed, 226 insertions(+), 22 deletions(-) diff --git a/zephcore/helpers/ui-button/ui_pages.c b/zephcore/helpers/ui-button/ui_pages.c index 0822baf2..734f5467 100644 --- a/zephcore/helpers/ui-button/ui_pages.c +++ b/zephcore/helpers/ui-button/ui_pages.c @@ -18,6 +18,7 @@ #include "ui_task.h" #include "display.h" #include +#include #include #include @@ -1303,36 +1304,121 @@ static void render_buzzer(void) draw_centered(y + 8, buf); } +/* Step size (percentage points) for the LEDs submenu's three brightness + * rows (1/2/3) — row 0 is the plain on/off toggle, no step. Mirrors + * leds_menu_step() in ui_task.c, which applies the actual +/-step on + * tap/2-tap; kept as a separate copy since that file owns input handling + * and this one owns rendering, matching this codebase's per-file split. */ +static inline uint8_t leds_menu_row_step(uint8_t row) +{ + switch (row) { + case 1: return 20; + case 2: return 5; + default: return 1; + } +} + static void render_leds_mono(void) { char buf[24]; - int y = CONTENT_Y; - snprintf(buf, sizeof(buf), "LEDs: %s", - state.leds_disabled ? "off" : "on"); - mc_display_text(0, y, buf, false); - y += LINE_H; + if (state.leds_menu_level == 0) { + int y = CONTENT_Y; + + snprintf(buf, sizeof(buf), "LEDs: %s", + state.leds_disabled ? "off" : "on"); + mc_display_text(0, y, buf, false); + y += LINE_H; - draw_centered(y + 8, - state.leds_disabled ? "Press to Enable" : "Press to Disable"); + draw_centered(y + 8, "Long press: menu"); + return; + } + + if (state.leds_menu_level == 1) { + uint8_t brightness = zephcore_led_brightness_pct(); + + for (uint8_t row = 0; row < 4; row++) { + int y = centered_row(row, 4); + const char *cur = (state.leds_menu_row == row) ? "> " : " "; + + if (row == 0) { + snprintf(buf, sizeof(buf), "%sLED: %s", cur, + state.leds_disabled ? "OFF" : "ON"); + } else { + snprintf(buf, sizeof(buf), "%s+/-%u%% %u%%", cur, + leds_menu_row_step(row), brightness); + } + mc_display_text(0, y, buf, false); + } + return; + } + + /* leds_menu_level == 2: value edit for the selected brightness row */ + uint8_t step = leds_menu_row_step(state.leds_menu_row); + uint8_t brightness = zephcore_led_brightness_pct(); + + snprintf(buf, sizeof(buf), "Brightness +/-%u%%", step); + draw_centered(centered_row(0, 4), buf); + + snprintf(buf, sizeof(buf), "%u%%", brightness); + draw_centered(centered_row(1, 4), buf); + + draw_centered(centered_row(2, 4), "tap+ 2tap-"); + draw_centered(centered_row(3, 4), "hold = done"); } #if MC_DISPLAY_COLOR_PANEL static void render_leds_color(void) { - int y = CONTENT_Y; + char buf[24]; - draw_badge(0, y, "LED", state.leds_disabled ? UI_COLOR_DISABLED - : UI_COLOR_OK); - mc_display_color_text(32, y, - state.leds_disabled ? "off" : "on", - state.leds_disabled ? UI_COLOR_DISABLED - : UI_COLOR_OK); - y += LINE_H + 4; - draw_centered_color(y, - state.leds_disabled ? "Press to enable" - : "Press to disable", - UI_COLOR_VALUE); + if (state.leds_menu_level == 0) { + int y = CONTENT_Y; + + draw_badge(0, y, "LED", state.leds_disabled ? UI_COLOR_DISABLED + : UI_COLOR_OK); + mc_display_color_text(32, y, + state.leds_disabled ? "off" : "on", + state.leds_disabled ? UI_COLOR_DISABLED + : UI_COLOR_OK); + y += LINE_H + 4; + draw_centered_color(y, "Long press: menu", UI_COLOR_VALUE); + return; + } + + if (state.leds_menu_level == 1) { + uint8_t brightness = zephcore_led_brightness_pct(); + + for (uint8_t row = 0; row < 4; row++) { + int y = centered_row(row, 4); + bool sel = (state.leds_menu_row == row); + uint16_t color = sel ? UI_COLOR_OK : UI_COLOR_LABEL; + const char *cur = sel ? "> " : " "; + + if (row == 0) { + snprintf(buf, sizeof(buf), "%sLED: %s", cur, + state.leds_disabled ? "OFF" : "ON"); + } else { + snprintf(buf, sizeof(buf), "%s+/-%u%% %u%%", cur, + leds_menu_row_step(row), brightness); + } + mc_display_color_text(0, y, buf, color); + } + return; + } + + /* leds_menu_level == 2: value edit for the selected brightness row */ + uint8_t step = leds_menu_row_step(state.leds_menu_row); + uint8_t brightness = zephcore_led_brightness_pct(); + + snprintf(buf, sizeof(buf), "Brightness +/-%u%%", step); + draw_centered_color(centered_row(0, 4), buf, UI_COLOR_LABEL); + + snprintf(buf, sizeof(buf), "%u%%", brightness); + draw_centered_color(centered_row(1, 4), buf, UI_COLOR_VALUE); + + draw_centered_color(centered_row(2, 4), "tap+ 2tap-", UI_COLOR_LABEL); + draw_centered_color(centered_row(3, 4), "hold = done", UI_COLOR_LABEL); } #endif /* MC_DISPLAY_COLOR_PANEL */ diff --git a/zephcore/helpers/ui-button/ui_pages.h b/zephcore/helpers/ui-button/ui_pages.h index b924f22c..2a2191d5 100644 --- a/zephcore/helpers/ui-button/ui_pages.h +++ b/zephcore/helpers/ui-button/ui_pages.h @@ -97,6 +97,14 @@ struct ui_state { /* LEDs page */ bool leds_disabled; /* true = LEDs off */ + /* On-screen LEDs submenu (long press to enter, see action_page_enter() + * and action_page_next/prev() in ui_task.c): + * 0 = not in the submenu (plain "LEDs: on/off" page) + * 1 = row select — leds_menu_row picks 0=on/off, 1/2/3=brightness step + * 2 = value edit — leds_menu_row's row is being adjusted + * Always reset to 0 when leaving the submenu; never persisted. */ + uint8_t leds_menu_level; + uint8_t leds_menu_row; /* Sensors page */ int16_t temperature_c10; /* centi-degrees C */ diff --git a/zephcore/helpers/ui-button/ui_task.c b/zephcore/helpers/ui-button/ui_task.c index 969cbe87..2db4824a 100644 --- a/zephcore/helpers/ui-button/ui_task.c +++ b/zephcore/helpers/ui-button/ui_task.c @@ -35,6 +35,7 @@ #include "ui_task.h" #include "ui_pages.h" #include +#include #include #ifdef CONFIG_ZEPHCORE_UI_BUZZER @@ -237,9 +238,44 @@ static void schedule_render(void) /* ========== Button Action Functions ========== */ /* Each action checks capabilities internally — no #ifdef in the switch. */ +#ifdef CONFIG_ZEPHCORE_UI_DISPLAY +/* Step size (percentage points) for each of the LEDs page's three + * brightness rows — see render_leds()/render_leds_mono()/render_leds_color() + * in ui_pages.c for the on-screen "Brightness +-N%" labels. Row 0 is the + * plain on/off toggle and has no step. */ +static inline uint8_t leds_menu_step(uint8_t row) +{ + switch (row) { + case 1: return 20; + case 2: return 5; + case 3: return 1; + default: return 0; + } +} +#endif + static void action_page_next(void) { #ifdef CONFIG_ZEPHCORE_UI_DISPLAY + struct ui_state *s = get_state(); + + if (s->leds_menu_level == 1) { + /* Row select (level 1): single tap cycles to the next row */ + s->leds_menu_row = (uint8_t)((s->leds_menu_row + 1) % 4); + schedule_render(); + return; + } + if (s->leds_menu_level == 2) { + /* Value edit (level 2): single tap = +step, clamped at 100 */ + uint8_t step = leds_menu_step(s->leds_menu_row); + uint8_t cur = zephcore_led_brightness_pct(); + uint8_t next = (uint8_t)((cur + step > 100) ? 100 : cur + step); + + zephcore_led_set_brightness_pct(next); + mesh_set_led_brightness_pct(next); + schedule_render(); + return; + } ui_pages_next(); #endif schedule_render(); @@ -248,6 +284,27 @@ static void action_page_next(void) static void action_page_prev(void) { #ifdef CONFIG_ZEPHCORE_UI_DISPLAY + struct ui_state *s = get_state(); + + if (s->leds_menu_level == 1) { + /* Row select (level 1): "2 taps" backs out of the menu one + * level at a time, same as everywhere else in this UI. */ + s->leds_menu_level = 0; + schedule_render(); + return; + } + if (s->leds_menu_level == 2) { + /* Value edit (level 2): "2 taps" = -step, clamped at 0 — + * the mirror of the single-tap +step above. */ + uint8_t step = leds_menu_step(s->leds_menu_row); + uint8_t cur = zephcore_led_brightness_pct(); + uint8_t next = (uint8_t)((cur < step) ? 0 : cur - step); + + zephcore_led_set_brightness_pct(next); + mesh_set_led_brightness_pct(next); + schedule_render(); + return; + } ui_pages_prev(); #endif schedule_render(); @@ -300,10 +357,38 @@ static void action_page_enter(void) action_buzzer_toggle(); break; - case UI_PAGE_LEDS: - /* Toggle LED on/off */ - action_leds_toggle(); + case UI_PAGE_LEDS: { + /* 3-level menu: level 0 (not shown here, see the leds_menu_level + * checks in action_page_next/prev above) is the plain "LEDs page, + * long press" state. Long press: + * level 0 → 1: enter the menu (row select), cursor on row 0 + * level 1 → row 0 selected: toggle on/off, stay in row select + * level 1 → row 1/2/3 selected: enter value edit for that row + * level 2 → confirm, back to row select (one level, not exit) */ + struct ui_state *s_led = get_state(); + + switch (s_led->leds_menu_level) { + case 0: + s_led->leds_menu_level = 1; + s_led->leds_menu_row = 0; + schedule_render(); + break; + case 1: + if (s_led->leds_menu_row == 0) { + action_leds_toggle(); + } else { + s_led->leds_menu_level = 2; + schedule_render(); + } + break; + case 2: + default: + s_led->leds_menu_level = 1; + schedule_render(); + break; + } break; + } case UI_PAGE_OFFGRID: { /* Double-press confirmation (CONFIRM_WINDOW_MS window) */ diff --git a/zephcore/helpers/ui/ui_mesh_actions.cpp b/zephcore/helpers/ui/ui_mesh_actions.cpp index 21acdc7e..911de9c6 100644 --- a/zephcore/helpers/ui/ui_mesh_actions.cpp +++ b/zephcore/helpers/ui/ui_mesh_actions.cpp @@ -48,6 +48,7 @@ LOG_MODULE_REGISTER(zephcore_ui_actions, CONFIG_ZEPHCORE_UI_ACTIONS_LOG_LEVEL); #define UI_ACTION_GPS_DUTY_SAVE BIT(12) #define UI_ACTION_DISPLAY_ROTATE_SAVE BIT(13) #define UI_ACTION_INPUT_ROTATE_SAVE BIT(14) +#define UI_ACTION_LED_BRIGHTNESS_SAVE BIT(15) /* Module-local pointers, set by init */ static CompanionMesh *s_mesh; @@ -70,6 +71,7 @@ static atomic_t pending_offgrid_enabled; static atomic_t pending_leds_disabled; static atomic_t pending_ble_disabled; static atomic_t pending_brightness; +static atomic_t pending_led_brightness; static atomic_t pending_wake_on_msg; static atomic_t pending_screen_off_secs; static atomic_t pending_path_hash_mode; @@ -208,6 +210,18 @@ extern "C" void mesh_set_leds_disabled(bool disabled) k_event_post(s_mesh_events, s_mesh_event_ui_action); } +/* LED PWM brightness (0-100), distinct from prefs.display_brightness (screen + * backlight, see mesh_save_brightness). Caller applies the live effect via + * zephcore_led_set_brightness_pct() directly (lock-free atomic, same as the + * CLI path in CommonCLI::handleCommand) before calling this — this only + * defers the flash write to the mesh thread. */ +extern "C" void mesh_set_led_brightness_pct(uint8_t pct) +{ + atomic_set(&pending_led_brightness, (atomic_val_t)pct); + atomic_or(&pending_ui_actions, UI_ACTION_LED_BRIGHTNESS_SAVE); + k_event_post(s_mesh_events, s_mesh_event_ui_action); +} + /* Disable power regulators for System OFF. * Only touches sensor power and buzzer power-gate regulators. * GPS is handled separately by gps_power_off_for_shutdown(). @@ -288,6 +302,13 @@ extern "C" void mesh_handle_ui_actions(void) need_save = true; } + if (actions & UI_ACTION_LED_BRIGHTNESS_SAVE) { + uint8_t br = (uint8_t)atomic_get(&pending_led_brightness); + s_mesh->prefs.led_brightness = br; + LOG_INF("led_brightness=%u%% (button)", br); + need_save = true; + } + if (actions & UI_ACTION_BLE_TOGGLE) { bool bd = atomic_get(&pending_ble_disabled) != 0; s_mesh->prefs.ble_disabled = bd ? 1 : 0; diff --git a/zephcore/helpers/ui/ui_mesh_actions.h b/zephcore/helpers/ui/ui_mesh_actions.h index 032b499b..1adf7667 100644 --- a/zephcore/helpers/ui/ui_mesh_actions.h +++ b/zephcore/helpers/ui/ui_mesh_actions.h @@ -58,6 +58,9 @@ void mesh_ble_set_enabled(bool enable); void mesh_set_buzzer_mode(uint8_t mode); void mesh_set_offgrid_mode(bool enable); void mesh_set_leds_disabled(bool disabled); +/* LED PWM brightness (0-100). Caller must apply the live effect itself via + * zephcore_led_set_brightness_pct() before calling this — it only persists. */ +void mesh_set_led_brightness_pct(uint8_t pct); void mesh_disable_power_regulators(void); void mesh_reboot_to_ota_dfu(void); void mesh_save_brightness(uint8_t brightness); diff --git a/zephcore/helpers/ui/ui_mesh_actions_stubs.c b/zephcore/helpers/ui/ui_mesh_actions_stubs.c index 555a13e0..5313923c 100644 --- a/zephcore/helpers/ui/ui_mesh_actions_stubs.c +++ b/zephcore/helpers/ui/ui_mesh_actions_stubs.c @@ -20,6 +20,7 @@ __attribute__((weak)) void mesh_ble_set_enabled(bool enable) { ARG_UNUSED(enable __attribute__((weak)) void mesh_set_buzzer_mode(uint8_t mode) { ARG_UNUSED(mode); } __attribute__((weak)) void mesh_set_offgrid_mode(bool enable) { ARG_UNUSED(enable); } __attribute__((weak)) void mesh_set_leds_disabled(bool disabled) { ARG_UNUSED(disabled); } +__attribute__((weak)) void mesh_set_led_brightness_pct(uint8_t pct) { ARG_UNUSED(pct); } __attribute__((weak)) void mesh_disable_power_regulators(void) {} __attribute__((weak)) void mesh_reboot_to_ota_dfu(void) {} /* Repeater builds persist orientation through RepeaterDataStore in From 4c7f98d11f8b2843d1c376ad0a4b99271120bd9f Mon Sep 17 00:00:00 2001 From: ZephCore T096 Date: Fri, 4 Sep 2026 23:56:49 +0200 Subject: [PATCH 10/14] ui: polish LED settings menu after hardware testing (T096, V4.3) Keep the on/off toggle as row 0 of the row-select list (long press toggles, stays at level 1) rather than splitting it into a read-only header -- confirmed against real hardware that losing cursor access to it was a regression from the first iteration. Also: "LEDs" plural everywhere (matches the "set/get leds" CLI regardless of how many physical LEDs a board has), ON/OFF uppercase, "Bright" abbreviation with 2-digit zero-padded steps for column alignment on the row list, full "Brightness" on the plain LEDs page (shows the live percentage there too), and on the color-panel boards (T096, WT2) the on/off status text/badge use UI_COLOR_OK (cyan on T096)/UI_COLOR_ERROR (red) instead of the plain selection highlight. Iterated live against T096 and V4.3 screens over several flash/test cycles. --- zephcore/helpers/ui-button/ui_pages.c | 60 ++++++++++++++++----------- zephcore/helpers/ui-button/ui_task.c | 5 +-- 2 files changed, 38 insertions(+), 27 deletions(-) diff --git a/zephcore/helpers/ui-button/ui_pages.c b/zephcore/helpers/ui-button/ui_pages.c index 734f5467..6db6710c 100644 --- a/zephcore/helpers/ui-button/ui_pages.c +++ b/zephcore/helpers/ui-button/ui_pages.c @@ -1326,7 +1326,12 @@ static void render_leds_mono(void) int y = CONTENT_Y; snprintf(buf, sizeof(buf), "LEDs: %s", - state.leds_disabled ? "off" : "on"); + state.leds_disabled ? "OFF" : "ON"); + mc_display_text(0, y, buf, false); + y += LINE_H; + + snprintf(buf, sizeof(buf), "Brightness: %u%%", + zephcore_led_brightness_pct()); mc_display_text(0, y, buf, false); y += LINE_H; @@ -1342,10 +1347,10 @@ static void render_leds_mono(void) const char *cur = (state.leds_menu_row == row) ? "> " : " "; if (row == 0) { - snprintf(buf, sizeof(buf), "%sLED: %s", cur, + snprintf(buf, sizeof(buf), "%sLEDs: %s", cur, state.leds_disabled ? "OFF" : "ON"); } else { - snprintf(buf, sizeof(buf), "%s+/-%u%% %u%%", cur, + snprintf(buf, sizeof(buf), "%sBright +/-%02u%% %u%%", cur, leds_menu_row_step(row), brightness); } mc_display_text(0, y, buf, false); @@ -1357,14 +1362,12 @@ static void render_leds_mono(void) uint8_t step = leds_menu_row_step(state.leds_menu_row); uint8_t brightness = zephcore_led_brightness_pct(); - snprintf(buf, sizeof(buf), "Brightness +/-%u%%", step); + snprintf(buf, sizeof(buf), "Bright +/-%02u%% %u%%", step, brightness); draw_centered(centered_row(0, 4), buf); - snprintf(buf, sizeof(buf), "%u%%", brightness); - draw_centered(centered_row(1, 4), buf); - - draw_centered(centered_row(2, 4), "tap+ 2tap-"); - draw_centered(centered_row(3, 4), "hold = done"); + draw_centered(centered_row(1, 4), "1xTAP: +"); + draw_centered(centered_row(2, 4), "2xTAP: -"); + draw_centered(centered_row(3, 4), "hold: OK"); } #if MC_DISPLAY_COLOR_PANEL @@ -1375,14 +1378,18 @@ static void render_leds_color(void) if (state.leds_menu_level == 0) { int y = CONTENT_Y; - draw_badge(0, y, "LED", state.leds_disabled ? UI_COLOR_DISABLED + draw_badge(0, y, "LEDs", state.leds_disabled ? UI_COLOR_ERROR : UI_COLOR_OK); mc_display_color_text(32, y, - state.leds_disabled ? "off" : "on", - state.leds_disabled ? UI_COLOR_DISABLED + state.leds_disabled ? "OFF" : "ON", + state.leds_disabled ? UI_COLOR_ERROR : UI_COLOR_OK); y += LINE_H + 4; - draw_centered_color(y, "Long press: menu", UI_COLOR_VALUE); + snprintf(buf, sizeof(buf), "Brightness: %u%%", + zephcore_led_brightness_pct()); + draw_centered_color(y, buf, UI_COLOR_VALUE); + y += LINE_H; + draw_centered_color(y, "Long press: menu", UI_COLOR_LABEL); return; } @@ -1392,17 +1399,24 @@ static void render_leds_color(void) for (uint8_t row = 0; row < 4; row++) { int y = centered_row(row, 4); bool sel = (state.leds_menu_row == row); - uint16_t color = sel ? UI_COLOR_OK : UI_COLOR_LABEL; const char *cur = sel ? "> " : " "; if (row == 0) { - snprintf(buf, sizeof(buf), "%sLED: %s", cur, + /* On/off status color (cyan/green vs red) wins + * over the plain selection highlight here — it's + * a status indicator first, a menu row second. */ + snprintf(buf, sizeof(buf), "%sLEDs: %s", cur, state.leds_disabled ? "OFF" : "ON"); + mc_display_color_text(0, y, buf, + state.leds_disabled ? UI_COLOR_ERROR + : UI_COLOR_OK); } else { - snprintf(buf, sizeof(buf), "%s+/-%u%% %u%%", cur, + uint16_t color = sel ? UI_COLOR_OK : UI_COLOR_LABEL; + + snprintf(buf, sizeof(buf), "%sBright +/-%02u%% %u%%", cur, leds_menu_row_step(row), brightness); + mc_display_color_text(0, y, buf, color); } - mc_display_color_text(0, y, buf, color); } return; } @@ -1411,14 +1425,12 @@ static void render_leds_color(void) uint8_t step = leds_menu_row_step(state.leds_menu_row); uint8_t brightness = zephcore_led_brightness_pct(); - snprintf(buf, sizeof(buf), "Brightness +/-%u%%", step); - draw_centered_color(centered_row(0, 4), buf, UI_COLOR_LABEL); - - snprintf(buf, sizeof(buf), "%u%%", brightness); - draw_centered_color(centered_row(1, 4), buf, UI_COLOR_VALUE); + snprintf(buf, sizeof(buf), "Bright +/-%02u%% %u%%", step, brightness); + draw_centered_color(centered_row(0, 4), buf, UI_COLOR_VALUE); - draw_centered_color(centered_row(2, 4), "tap+ 2tap-", UI_COLOR_LABEL); - draw_centered_color(centered_row(3, 4), "hold = done", UI_COLOR_LABEL); + draw_centered_color(centered_row(1, 4), "1xTAP: +", UI_COLOR_LABEL); + draw_centered_color(centered_row(2, 4), "2xTAP: -", UI_COLOR_LABEL); + draw_centered_color(centered_row(3, 4), "hold: OK", UI_COLOR_LABEL); } #endif /* MC_DISPLAY_COLOR_PANEL */ diff --git a/zephcore/helpers/ui-button/ui_task.c b/zephcore/helpers/ui-button/ui_task.c index 2db4824a..e85e752c 100644 --- a/zephcore/helpers/ui-button/ui_task.c +++ b/zephcore/helpers/ui-button/ui_task.c @@ -241,15 +241,14 @@ static void schedule_render(void) #ifdef CONFIG_ZEPHCORE_UI_DISPLAY /* Step size (percentage points) for each of the LEDs page's three * brightness rows — see render_leds()/render_leds_mono()/render_leds_color() - * in ui_pages.c for the on-screen "Brightness +-N%" labels. Row 0 is the + * in ui_pages.c for the on-screen "Bright +/-N%" labels. Row 0 is the * plain on/off toggle and has no step. */ static inline uint8_t leds_menu_step(uint8_t row) { switch (row) { case 1: return 20; case 2: return 5; - case 3: return 1; - default: return 0; + default: return 1; } } #endif From ce565cfc95bfad6a6b06141e358e5c3d110ae375 Mon Sep 17 00:00:00 2001 From: ZephCore T096 Date: Sat, 5 Sep 2026 00:06:37 +0200 Subject: [PATCH 11/14] ui: LEDs page off-state back to liquidraver's UI_COLOR_DISABLED Revert the earlier UI_COLOR_ERROR (red) choice for "off" on the LEDs page. Every other on/off page in this UI (BLE, GPS, offgrid...) uses UI_COLOR_DISABLED per liquidraver's own convention (see af96039f); red stays reserved for actual critical thresholds (low battery, RX error count). UI_COLOR_OK is untouched either way -- still cyan on T096 (local, officialized 29/08), still green everywhere else including WT2 (liquidraver default, bd35d9d8). --- zephcore/helpers/ui-button/ui_pages.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/zephcore/helpers/ui-button/ui_pages.c b/zephcore/helpers/ui-button/ui_pages.c index 6db6710c..8b792637 100644 --- a/zephcore/helpers/ui-button/ui_pages.c +++ b/zephcore/helpers/ui-button/ui_pages.c @@ -1378,11 +1378,11 @@ static void render_leds_color(void) if (state.leds_menu_level == 0) { int y = CONTENT_Y; - draw_badge(0, y, "LEDs", state.leds_disabled ? UI_COLOR_ERROR + draw_badge(0, y, "LEDs", state.leds_disabled ? UI_COLOR_DISABLED : UI_COLOR_OK); mc_display_color_text(32, y, state.leds_disabled ? "OFF" : "ON", - state.leds_disabled ? UI_COLOR_ERROR + state.leds_disabled ? UI_COLOR_DISABLED : UI_COLOR_OK); y += LINE_H + 4; snprintf(buf, sizeof(buf), "Brightness: %u%%", @@ -1402,13 +1402,17 @@ static void render_leds_color(void) const char *cur = sel ? "> " : " "; if (row == 0) { - /* On/off status color (cyan/green vs red) wins - * over the plain selection highlight here — it's - * a status indicator first, a menu row second. */ + /* On/off status color wins over the plain + * selection highlight here — it's a status + * indicator first, a menu row second. Uses + * UI_COLOR_DISABLED for "off", same as every + * other on/off page in this UI (BLE, GPS, + * offgrid...) — red (UI_COLOR_ERROR) stays + * reserved for actual critical thresholds. */ snprintf(buf, sizeof(buf), "%sLEDs: %s", cur, state.leds_disabled ? "OFF" : "ON"); mc_display_color_text(0, y, buf, - state.leds_disabled ? UI_COLOR_ERROR + state.leds_disabled ? UI_COLOR_DISABLED : UI_COLOR_OK); } else { uint16_t color = sel ? UI_COLOR_OK : UI_COLOR_LABEL; From 6c506c7cc0d5a4544733d6e55f0deaaebb207474 Mon Sep 17 00:00:00 2001 From: ZephCore T096 Date: Sat, 5 Sep 2026 03:20:10 +0200 Subject: [PATCH 12/14] ui: LED menu polish round 2 -- selection color, level-2 layout, wording - Row 0 (LEDs: ON/OFF) on color panels now follows the same selection-based color rule as every other row (green only means "cursor is here"), dropping the earlier always-on status-color special case that could be read as the cursor sitting there when it wasn't. - Level 1 and level 2 anchor flush at the top (manual y, no centered_row()), matching every other page's layout instead of visually starting one line down. - Level 2 hints reformatted to "1x TAP : +" / "2x TAPs : -" / "Hold : OK" (aligned colons). Dropped the blank line between title and hints tried in the previous iteration -- it would not fit V4.3's shorter mono screen without further changes there. - Color panels (T096, WT2) show "Bright." instead of the full "Brightness" tried previously; V4.3's mono "Bright" is unchanged. Iterated live against WT2 hardware. --- zephcore/helpers/ui-button/ui_pages.c | 67 ++++++++++++++++----------- 1 file changed, 39 insertions(+), 28 deletions(-) diff --git a/zephcore/helpers/ui-button/ui_pages.c b/zephcore/helpers/ui-button/ui_pages.c index 8b792637..fdb566cb 100644 --- a/zephcore/helpers/ui-button/ui_pages.c +++ b/zephcore/helpers/ui-button/ui_pages.c @@ -1341,9 +1341,9 @@ static void render_leds_mono(void) if (state.leds_menu_level == 1) { uint8_t brightness = zephcore_led_brightness_pct(); + int y = CONTENT_Y; for (uint8_t row = 0; row < 4; row++) { - int y = centered_row(row, 4); const char *cur = (state.leds_menu_row == row) ? "> " : " "; if (row == 0) { @@ -1354,26 +1354,34 @@ static void render_leds_mono(void) leds_menu_row_step(row), brightness); } mc_display_text(0, y, buf, false); + y += LINE_H; } return; } - /* leds_menu_level == 2: value edit for the selected brightness row */ + /* leds_menu_level == 2: value edit for the selected brightness row. + * Title flush at the top (matches every other page's anchor), then + * the three tap/hold hints with aligned colons -- no blank line + * (4 lines total, same budget as the row-select list). */ uint8_t step = leds_menu_row_step(state.leds_menu_row); uint8_t brightness = zephcore_led_brightness_pct(); + int y = CONTENT_Y; snprintf(buf, sizeof(buf), "Bright +/-%02u%% %u%%", step, brightness); - draw_centered(centered_row(0, 4), buf); + mc_display_text(0, y, buf, false); + y += LINE_H; - draw_centered(centered_row(1, 4), "1xTAP: +"); - draw_centered(centered_row(2, 4), "2xTAP: -"); - draw_centered(centered_row(3, 4), "hold: OK"); + mc_display_text(0, y, "1x TAP : +", false); + y += LINE_H; + mc_display_text(0, y, "2x TAPs : -", false); + y += LINE_H; + mc_display_text(0, y, "Hold : OK", false); } #if MC_DISPLAY_COLOR_PANEL static void render_leds_color(void) { - char buf[24]; + char buf[28]; if (state.leds_menu_level == 0) { int y = CONTENT_Y; @@ -1395,46 +1403,49 @@ static void render_leds_color(void) if (state.leds_menu_level == 1) { uint8_t brightness = zephcore_led_brightness_pct(); + int y = CONTENT_Y; for (uint8_t row = 0; row < 4; row++) { - int y = centered_row(row, 4); bool sel = (state.leds_menu_row == row); const char *cur = sel ? "> " : " "; + /* Every row, including on/off, follows the same rule: + * selected = highlight color, otherwise plain label + * color — no special-casing the on/off status here, + * so green only ever means "cursor is here", matching + * rows 1-3 (avoids implying the cursor sits on row 0 + * when it doesn't). */ + uint16_t color = sel ? UI_COLOR_OK : UI_COLOR_LABEL; if (row == 0) { - /* On/off status color wins over the plain - * selection highlight here — it's a status - * indicator first, a menu row second. Uses - * UI_COLOR_DISABLED for "off", same as every - * other on/off page in this UI (BLE, GPS, - * offgrid...) — red (UI_COLOR_ERROR) stays - * reserved for actual critical thresholds. */ snprintf(buf, sizeof(buf), "%sLEDs: %s", cur, state.leds_disabled ? "OFF" : "ON"); - mc_display_color_text(0, y, buf, - state.leds_disabled ? UI_COLOR_DISABLED - : UI_COLOR_OK); } else { - uint16_t color = sel ? UI_COLOR_OK : UI_COLOR_LABEL; - - snprintf(buf, sizeof(buf), "%sBright +/-%02u%% %u%%", cur, + snprintf(buf, sizeof(buf), "%sBright. +/-%02u%% %u%%", cur, leds_menu_row_step(row), brightness); - mc_display_color_text(0, y, buf, color); } + mc_display_color_text(0, y, buf, color); + y += LINE_H; } return; } - /* leds_menu_level == 2: value edit for the selected brightness row */ + /* leds_menu_level == 2: value edit for the selected brightness row. + * Title flush at the top (matches every other page's anchor), then + * the three tap/hold hints with aligned colons -- no blank line + * (4 lines total, same budget as the row-select list). */ uint8_t step = leds_menu_row_step(state.leds_menu_row); uint8_t brightness = zephcore_led_brightness_pct(); + int y = CONTENT_Y; - snprintf(buf, sizeof(buf), "Bright +/-%02u%% %u%%", step, brightness); - draw_centered_color(centered_row(0, 4), buf, UI_COLOR_VALUE); + snprintf(buf, sizeof(buf), "Bright. +/-%02u%% %u%%", step, brightness); + mc_display_color_text(0, y, buf, UI_COLOR_VALUE); + y += LINE_H; - draw_centered_color(centered_row(1, 4), "1xTAP: +", UI_COLOR_LABEL); - draw_centered_color(centered_row(2, 4), "2xTAP: -", UI_COLOR_LABEL); - draw_centered_color(centered_row(3, 4), "hold: OK", UI_COLOR_LABEL); + mc_display_color_text(0, y, "1x TAP : +", UI_COLOR_LABEL); + y += LINE_H; + mc_display_color_text(0, y, "2x TAPs : -", UI_COLOR_LABEL); + y += LINE_H; + mc_display_color_text(0, y, "Hold : OK", UI_COLOR_LABEL); } #endif /* MC_DISPLAY_COLOR_PANEL */ From 2031c102cfb2ae370d782fb6bf9aa8e6296df9ba Mon Sep 17 00:00:00 2001 From: ZephCore T096 Date: Sat, 5 Sep 2026 13:51:14 +0200 Subject: [PATCH 13/14] docs: add illustrated LED menu guide (EN+FR) Bilingual (English then French) walkthrough of the 3-level on-screen LED menu, screenshots from Wireless Tracker V2, same code path as T096/V4.3. For testers following the linked PRs. --- zephcore/docs/led-menu-guide.pdf | Bin 0 -> 376543 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 zephcore/docs/led-menu-guide.pdf diff --git a/zephcore/docs/led-menu-guide.pdf b/zephcore/docs/led-menu-guide.pdf new file mode 100644 index 0000000000000000000000000000000000000000..71b38e9b3ecc3b490b27e100e2e2188ab5dfc38c GIT binary patch literal 376543 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


{6&JeZKdxR zzug=SHUB<6O=)F<`$9Ac6$Gl&d3Mz_d)lQioD|`IMo?0C$rLMi=&P-oo=V55m*UsY2vT{&$)ppG(*;1?jK>FO|PECta zZPU5Dm&hwd2RE9(=bUIvb_)a9M^dxaUcV5BcPnOYxK(~ZWpJg#X>qvpeLr!Eb!j`K z+NabGSz)`g`40Zfu@AL;gW#wK$~Tz>^-mXyW&4FjIU!dsOk#Js*@!Gb;lFNf+q@Yu z308~zoXCAQTPcQ`IY5{0hl#kB^HS&Zd2SBihFBr1A43<%eXmn_DfNW03_L8qgVTFtb;#%&3JUT{l46i98#Q) zYq20H%?;&^xz`hVpL1T`3?UJHE{FB=d0U8-Nq(LwAMV1imE~sSv2!%OG>q$AL#koD z8uLzBX2$%nYQs!YZ_0wZnsq1LaJwpTvV$7IzzH9>O}=jIX$PKLXu!}~mJea_TE%yNA< z8b%{rMJ@nGGpZVuCiwV~EjP$6H#x(9e=w=Z;J^lA!+cjPvX9gmqMEjYj_(uh6phelT8A?#h|KCXrJgFzH4oU+e4|Rv<+dGdJ3gbjU`cr%bFyi)ghJ4kHUT zJp(}{is>@&duoLmC(ReLw1Z%RUmQzfyY0%Zr%!VBVl{S(MV}Uf$lOSiIJY(TbZM6d zb!g+A{3=9RxU|axxR1RrLf%3?dJPZ4xZMR3;)=iPVemTg*J(}+|9|J zJ}n;V-D!!l3{G+pecUJ>A{5u5?0q=K$hJ&_3Bgheqy~8F!&-A<%3kLDM)$O$OGCl4 z!FIo0aSsbmSA|-G^{ekspg>x9&N7Fxx!a39F2_4XSxmlzRUHCv*|fV<=k)j7+hC*=X%(f zD#qCBHJt;je6V9=mqJ~PZ-nk(+uE!<_fo%mOrZcL2IpA=leG62pHRcW0#aI;lBGh2 zJmIIkz6^N4BG1TY*zRkmLItv zo&M6&BFxB(-FbgE&9tKT!GMS`UZa9Z?&rJ3BrmOf&K>4Y{>;;Qsxqps&HqlMb8da_ z2mUEM&YS7RJ+KYqiQhQ$j3J58zxS8l9|_Pz2|NdjQXw5Z>c*hCr-_V-_Drr)y)ez@ zlwN^^XtAz1-vL&kIFyEc^x|5Cs?iwo-W+KR5_7S3p-CnJ7gc_$wk#}8m@^zgbX2U~ zI`90vs|3F)CQED6R9ZoQ{_a0*E>^b(B9l`E6H+ z9H*7Mi0|B8O)Hw5P_}&8POFX0Dzr+p!2h}R9=+B{*2>ne@@|&mhXMDj#(hD1ZBP4;%BXi%OI1ip zV@6!;)2{A|Wf#6}D zcK#El%&-UfsPS6dVQoPEmz-GYmtVJ%SaUzYc=vbrm-lbFc%+pyPN_FF=RcXTx^~gc zz7Aa*;D>4b8F!ct22G-xJ;A=|zV?DEdvVUs{{EeTeCOG>F?ifiEXV+kCvgw9l~()q zF=He~*_Y7mKW`DE0Dgsym@T$DcB2;f6K>!Ae6U*<3v{*{$<6fh2dre>`aK4TJ7`mo z)tf5JH`9X*GG3OZ&FH+f48udZC8HpEq<&>f32JpplTm#KXj(YWgtBuDTj`s66qcu4 zWA7`~ZE?hHqT`^PYir@#m^QfSX9+EYnEtB-`Pb&KGSwXR=pZ-+f;FL(El-so$=
MI20a7pS*a5oF2PJWwrfKy)#N4@~wGZ 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%0A5rQJZh{fRcKZ=`LReM#HDJsd37LSgbtt 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 literal 0 HcmV?d00001 From 2ef443f9969a7af9d78f35e6358271499bb0701b Mon Sep 17 00:00:00 2001 From: ZephCore T096 Date: Sat, 5 Sep 2026 13:54:38 +0200 Subject: [PATCH 14/14] docs: move LED menu guide to the repo's existing docs/ convention Committed one level too deep in the previous commit (zephcore/docs/ instead of docs/, this repo's actual root-level documentation folder alongside ADAPTIVE_CAD.md, ARCHITECTURE.md, etc). --- {zephcore/docs => docs}/led-menu-guide.pdf | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename {zephcore/docs => docs}/led-menu-guide.pdf (100%) diff --git a/zephcore/docs/led-menu-guide.pdf b/docs/led-menu-guide.pdf similarity index 100% rename from zephcore/docs/led-menu-guide.pdf rename to docs/led-menu-guide.pdf