diff --git a/docs/test-results/rak3401_radio2_sf5_bw500_p384_2026-10-23.md b/docs/test-results/rak3401_radio2_sf5_bw500_p384_2026-10-23.md index 6d4c4ea12..b32d6ad0f 100644 --- a/docs/test-results/rak3401_radio2_sf5_bw500_p384_2026-10-23.md +++ b/docs/test-results/rak3401_radio2_sf5_bw500_p384_2026-10-23.md @@ -93,9 +93,10 @@ time. An unplugged-USB, SWD-only sleep experiment would be a separate test. Source inspection found concrete speed candidates, without changing this baseline: RAK currently uses the default 2 MHz byte-at-a-time SPI path, -although a buffered nRF52 HAL exists; the retune path also performs modem -queries during setup and maximum-airtime calculation. Their individual costs -were not measured by this capture. Faster switching and any receiver repair +although a buffered nRF52 HAL exists; the retune path also queries the modem +during setup and repeats the IQ workaround. Its custom airtime override already +uses cached parameters and does not issue a second modem query. Their individual +costs were not measured by this capture. Faster switching and any receiver repair need fresh source-bound RF validation before a qualification claim. ## Controller correction and restoration diff --git a/test/test_profile_sx1262_iq_cache.py b/test/test_profile_sx1262_iq_cache.py index 642ed52c0..6bf242af2 100644 --- a/test/test_profile_sx1262_iq_cache.py +++ b/test/test_profile_sx1262_iq_cache.py @@ -21,7 +21,8 @@ class ProfileIqCacheTest(unittest.TestCase): recipe.read_text(), re.MULTILINE): opt_ins.append(recipe.relative_to(ROOT).as_posix()) self.assertCountEqual(opt_ins, ["variants/sensecap_indicator-espnow/platformio.ini", - "variants/lilygo_tdeck/platformio.ini"]) + "variants/lilygo_tdeck/platformio.ini", + "variants/rak3401/platformio.ini"]) def compile_run(self, source): with tempfile.TemporaryDirectory() as folder: diff --git a/variants/rak3401/platformio.ini b/variants/rak3401/platformio.ini index ccb776f2b..aed1e4878 100644 --- a/variants/rak3401/platformio.ini +++ b/variants/rak3401/platformio.ini @@ -19,6 +19,10 @@ build_flags = ${nrf52_base.build_flags} -D OLED_AUTO_DETECT=1 ; shared WisBlock SSD1306 / SH1106 screen support -D RADIO_CLASS=CustomSX1262 -D WRAPPER_CLASS=CustomSX1262Wrapper + ; Retain acknowledged LoRa/IQ state only across owned warm RX profile hops. + ; Sleep, TX/CAD, reset and failed commands still revoke these caches. + -D MC_SX1262_FAST_MODEM_CACHE=1 + -D MC_SX1262_FAST_IQ_CACHE=1 -D LORA_TX_POWER=22 -D SX126X_CURRENT_LIMIT=140 -D SX126X_RX_BOOSTED_GAIN=1