Document remaining fast-switch gaps and preserve the held M4 SPI expectation
This commit is contained in:
1 parent
9d02b74e29
commit
e4907edd5f
2 files changed
+41
-3
No files matched your search
@@ -118,6 +118,36 @@ application limit both at the baseline and after the changes; that
|
||||
pre-existing overflow remains a separate build limitation. No all-builds or
|
||||
all-boards release qualification is claimed here.
|
||||
|
||||
## Other board families
|
||||
|
||||
This is a source inventory, not a claim that every connected test node has
|
||||
been reflashed or physically qualified with these changes.
|
||||
|
||||
| Family | Current code defaults | Remaining gap |
|
||||
| --- | --- | --- |
|
||||
| ESP32 SX1262, including V3/V4/R8, T-Deck and Station G2/G3 | Buffered SPI and shared fast RX caches across 36 target directories | Board-specific hardware validation; RC32 retains its 4 MHz explicit bus and 2 MHz fallback, T-Deck retains 8.888888 MHz |
|
||||
| RP2040 SX1262: RAK11310, Pico W, Waveshare LoRa, XIAO RP2040 | Buffered 8 MHz and shared fast RX caches | Broader physical validation |
|
||||
| Other nRF52 SX1262 targets, including RAK4631/Tag, XIAO nRF52, T114/T096, ikoka and Nano G2 | Shared fast RX caches; prior 2 MHz byte transfers retained in the 32-source constructor inventory | BLE-compatible buffered SPI and board/role bus ownership |
|
||||
| LR1110: T1000-E, ThinkNode M3, Wio WM1110, Minew ME25LS01; ESP32 ThinkNode M7/M9 | Existing buffered 16 MHz and separate LR1110 fast RX state | Physical qualification varies; ThinkNode M4 still retains its prior 2 MHz transport |
|
||||
| SX1276: Heltec V2, T-Beam SX1276, T-LoRa V2.1, T3S3 SX1276, GEPRC Linkflow 900 | Prior byte-transfer path and separate SX1276 driver | Buffered transfers and chip-specific profile-switch work |
|
||||
| LR1121: Waveshare ESP32-S3 and nRF52 Muzi Duo | Prior byte-transfer path and separate LR1121 driver | Chip-specific transfer/profile-switch work |
|
||||
| SX1268 options: Generic E22, MeshAdventurer, Tenstar C3 | Buffered SPI already present | Separate SX1268 driver does not inherit the SX1262 fast RX caches |
|
||||
| STM32WL integrated radio; LR2021 on Meshnology W12 and SenseCAP MeshTracker X1 | Separate internal-radio or radio/FEM drivers | Driver-specific speed work |
|
||||
|
||||
Most held nRF52 radio buses use SPIM3. Its anomaly-198 register workaround
|
||||
[conflicts with an enabled SoftDevice](https://devzone.nordicsemi.com/f/nordic-q-a/68556/enabling-workaround-for-anomaly-198-crashes-softdevice/281285).
|
||||
Moving to SPIM2 also needs an ownership
|
||||
audit: RAK4631 SD recipes reserve it for the RAK15002, while several display
|
||||
boards already use SPI1/SPIM2. Single-interface counts alone do not prove that
|
||||
the controller is free. Indicator remains excluded, and MeshPocket remains
|
||||
outside physical testing.
|
||||
|
||||
The inventory exposed one stale LR1110 test that still required the restored
|
||||
ThinkNode M4 buffered constructor. Its expectation now preserves both the
|
||||
shared fast RX state and the intentionally conservative M4 transport. The
|
||||
LR1110 and actual nRF52/RP2040 constructor suites passed all 11 focused tests;
|
||||
this correction changes no firmware behavior.
|
||||
|
||||
## Fresh witnessed RF test
|
||||
|
||||
The normal production image from `1b97c089a` was installed and its running
|
||||
|
||||
@@ -18,7 +18,9 @@ class LR1110ProfileSwitchTests(unittest.TestCase):
|
||||
"t1000-e": "Nrf52BufferedRadioHal",
|
||||
"wio_wm1110": "Nrf52BufferedRadioHal",
|
||||
"thinknode_m3": "Nrf52BufferedRadioHal",
|
||||
"thinknode_m4": "Nrf52BufferedRadioHal",
|
||||
# Fast RX ownership is independent of the SPI transport. Keep M4
|
||||
# on its prior bus until its SPIM3/BLE transfer path is qualified.
|
||||
"thinknode_m4": None,
|
||||
"minewsemi_me25ls01": "Nrf52BufferedRadioHal",
|
||||
"thinknode_m7": "ESP32BufferedRadioHal",
|
||||
"thinknode_m9": "ESP32BufferedRadioHal",
|
||||
@@ -30,8 +32,14 @@ class LR1110ProfileSwitchTests(unittest.TestCase):
|
||||
target_source = (variant / "target.cpp").read_text()
|
||||
self.assertIn("-D RADIO_CLASS=CustomLR1110", config)
|
||||
self.assertIn("-D WRAPPER_CLASS=CustomLR1110Wrapper", config)
|
||||
self.assertIn(f"{hal} radioHal(", target_source)
|
||||
self.assertIn("new Module(&radioHal,", target_source)
|
||||
if hal is not None:
|
||||
self.assertIn(f"{hal} radioHal(", target_source)
|
||||
self.assertIn("new Module(&radioHal,", target_source)
|
||||
else:
|
||||
self.assertNotIn("BufferedRadioHal", target_source)
|
||||
self.assertIn(
|
||||
"new Module(P_LORA_NSS, P_LORA_DIO_1, P_LORA_RESET, P_LORA_BUSY, SPI)",
|
||||
target_source)
|
||||
|
||||
esp32_hal = (ROOT / "src/helpers/radiolib/ESP32BufferedRadioHal.h").read_text()
|
||||
nrf52_hal = (ROOT / "src/helpers/radiolib/Nrf52BufferedRadioHal.h").read_text()
|
||||
|
||||
Reference in new issue
Block a user