The long press already reached board.powerOff(), but nothing armed a wake
source, so the board stayed dead until a reset or a USB reconnect. Arm the
user button (pull-up + SENSE_LOW) before entering SYSTEMOFF, after waiting
for the release: SENSE is level triggered and a still pressed button wakes
the board up immediately. If the button is never released, reboot instead:
SYSTEMOFF would wake up right away anyway, so make the reset explicit.
GPIO output latches survive SYSTEMOFF, so shut the switched rails down as
well (GNSS, RGB led supply, EEPROM, battery divider, EN1/EN2, PWR_EN), in a
shutdownPeripherals() override so they go down after the radio and the GNSS
receiver. Give pins 36 and 34 a name while there.
Tested on a ThinkNode M3 companion_radio_ble: a long press powers the board
off (the USB device disappears and stays away), a short press brings it
back, and holding the button past the timeout reboots.
If Bluefruit.begin fails, BLE OTA mode won't actually start and the board might require a reboot to reattempt.
Fixes:
- Bluefruit.begin returns false in NRF52Board.startOTAUpdate if OTA mode fails to start. User is notified of the fault through existing error message in CommonCLI and can reattempt "start ota" command.
mkdocs will only consider the first H1 (if any) and subheaders under it for the table of contents
this increases the header levels of everything below "important concepts" by 1 so that the table of contents correctly resolves them
The room server never supported RX boosted gain, while the repeater
does. Three consequences on SX1262/SX1268 boards:
- boosted gain was never applied to the radio at boot, so a room server
ran in power-saving RX mode while an identical repeater ran boosted -
a real receive-sensitivity difference with nothing pointing at it
- _prefs.rx_boosted_gain was never initialised (the prefs are memset to
0 before defaults are set), so it defaulted to off
- 'set radio.rxgain on' replied "Error: unsupported" but CommonCLI had
already written the value to prefs and saved them, so a stale setting
survived reboot and was never applied
Mirror the repeater's implementation: initialise the pref default under
the same USE_SX1262/USE_SX1268 and SX126X_RX_BOOSTED_GAIN guards, apply
it during radio init, and override setRxBoostedGain() so the CLI reports
success and takes effect.
Built Heltec_v3_room_server (SX1262) and LilyGo_T3S3_sx1276_room_server
(guards compile out cleanly).