Fixes#2313. Hold the Function Button ~5s to power off (matches the
board's stock firmware timing); any press wakes it back up, since the
chip is fully halted in SYSTEMOFF and can't measure hold duration
while off. The power LED blinks 3x on both shutdown and wake/boot to
confirm the action registered.
ThinkNodeM6Board::powerOff() now arms the button as a GPIO wake source
(pull-up + SENSE_LOW) before entering SYSTEMOFF via NRF52Board::powerOff().
Scoped to simple_repeater and simple_room_server only, since
companion_radio already has an in-flight change (#2837) moving its
button handling into UITask.
Tested on hardware: shutdown, wake, and LED feedback all verified on
a physical ThinkNode M6 repeater.
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).