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
origin/dev's ESP32Board::getIRQGpio() references P_LORA_DIO_1 from the
base header, which is compiled before the variant header. Move the pin
to a -D build flag (matching every other ESP32 board) so it is visible
globally.
- Fix I2C pins in variant.h (GPIO21/22 → GPIO4/5 per datasheet)
- Fix GPS UART pins in platformio.ini (UART0 1/3 → UART1 21/19)
- Fix radio_set_tx_power signature (uint8_t → int8_t)
- Remove conflicting duplicate defines between variant.h and Board.h
(P_LORA_BUSY was RADIOLIB_NC vs 13, ADC_MULTIPLIER was 1.85 vs 5761)
- Remove stale LoRa/WisBlock defines from variant.h (Board.h is
authoritative)
- Remove "ethernet" and "can" from board JSON connectivity
- Use static SPIClass for radio init (matches Heltec V3 convention)
- Remove build_unflags=-Os (keep size optimization for 4MB flash)
Verified against RAK11200/RAK13300 datasheets
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).
Compile fails due to user_btn not declared in board target.
Fixes:
- Add MomentaryButton declaration for user_btn in variants/xiao_nrf52/target.cpp
- Add momentary button helper include in variants/xiao_nrf52/target.h
- Add extern linkage for MomentaryButton -> user_btn in variants/xiao_nrf52/target.h