Record saved radio controls and physical SPI validation
This commit is contained in:
1 parent
4c0f2acf64
commit
901a8c4cd5
2 files changed
+177
-2
No files matched your search
@@ -222,7 +222,42 @@ hardware receipts above remain bound to their explicitly recorded images.
|
||||
- Investigate the unexplained pretrial radio-driver recovery attempts.
|
||||
- Audit controller ownership before extending buffered SPI to RAK4631 or T096.
|
||||
|
||||
No production-default promotion, all-board release qualification or CPU-sleep
|
||||
qualification is implied by the completed subsets. The machine-readable
|
||||
At this checkpoint, production-default promotion, all-board release
|
||||
qualification and CPU-sleep qualification remained open. The machine-readable
|
||||
[sanitized results](other_board_radio2_fast_switch_2026-10-23.safe.json) retain
|
||||
separate delivery, speed, compatibility and build states.
|
||||
|
||||
## Saved controls follow-up
|
||||
|
||||
Code `4c0f2acf` adds saved `radio.fast` controls across the shared CLI roles.
|
||||
Supported features default on, including boards awaiting physical testing.
|
||||
Individual controls cover SPI speed, buffered transfers, batched modulation,
|
||||
warm receive ownership, FS, packet, IQ and modem reuse. Plain SX1262 board
|
||||
transports now default to 8 MHz byte transfers. Compiled buffered transports
|
||||
can select byte transfers without moving their SPI controller. Indicator keeps
|
||||
its existing transport and compile-time exclusions.
|
||||
|
||||
The wired RAK3401 passed 19 control cases and two software-reboot persistence
|
||||
cases on the final Full repeater. Twenty-one read-only SWD samples confirmed
|
||||
the SPIM2 frequency register at 2, 4 and 8 MHz. Both profiles continued
|
||||
switching, core errors stayed zero, and no new radio-watchdog attempts were
|
||||
observed. Its original settings and gateway service were restored. The
|
||||
application update preserved its bootloader. These checks cover configuration,
|
||||
startup persistence and switching liveness; packet delivery, BLE, CPU sleep and
|
||||
the earlier XIAO loss remain separate qualifications.
|
||||
|
||||
Sequential builds passed for V4 Full Companion, RAK4631 Full Companion,
|
||||
RAK3401 Full and Reduced OTA repeaters, and the standard T1000 BLE Companion.
|
||||
The RAK4631 application including EndF is 711,400 of 712,704 bytes, leaving
|
||||
1,304 bytes. Runtime RAM available is 81,140 bytes against 72,528 required.
|
||||
|
||||
To retain Full features, the offline Reader now uses a word dictionary before
|
||||
DEFLATE. All 879 verses retain their exact wording; its pinned source and 4 KiB
|
||||
scratch capacity are unchanged. Data and all dictionary/index tables total
|
||||
33,399 bytes, saving 5,086 bytes. Corpus, malformed-token, C++11 compatibility,
|
||||
sanitizer and ARM stack checks passed. The merged Meshtext retry-limit and
|
||||
beacon tests also passed.
|
||||
|
||||
The [saved-control results](radio_switch_saved_controls_2026-10-23.safe.json)
|
||||
record the build sizes and physical test scope. Command details are in
|
||||
[Saved switching controls](../radio_profiles.md#saved-switching-controls).
|
||||
@@ -0,0 +1,140 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"source": "4c0f2acf64f4059077477d024756819d914befd7",
|
||||
"settings": {
|
||||
"saved": true,
|
||||
"load_before_radio_initialization": true,
|
||||
"supported_features_default_on": true,
|
||||
"features": [
|
||||
"warm",
|
||||
"fs",
|
||||
"packet",
|
||||
"iq",
|
||||
"modem",
|
||||
"batch",
|
||||
"buffer"
|
||||
],
|
||||
"spi_mhz_choices": [
|
||||
0,
|
||||
2,
|
||||
4,
|
||||
8,
|
||||
16
|
||||
],
|
||||
"spi_zero_means": "board default",
|
||||
"unsupported_controls_rejected": true,
|
||||
"radio_busy_or_failed_save_preserves_policy": true,
|
||||
"remote_LoRa_mutations_rejected": true,
|
||||
"timing_test_restarts_after_change": true
|
||||
},
|
||||
"hardware": {
|
||||
"board": "RAK3401",
|
||||
"role": "Full repeater",
|
||||
"source": "4c0f2acf64f4059077477d024756819d914befd7",
|
||||
"passed": true,
|
||||
"independent_cases": 19,
|
||||
"software_reboot_persistence_cases": 2,
|
||||
"physical_SPI_register_checks": 22,
|
||||
"physical_SPI_mhz": [
|
||||
2,
|
||||
4,
|
||||
8
|
||||
],
|
||||
"core_errors_after": 0,
|
||||
"new_radio_watchdog_attempts": 0,
|
||||
"settings_restored": true,
|
||||
"gateway_service_restored": true,
|
||||
"application_only_update": true,
|
||||
"bootloader_written": false,
|
||||
"radio2_switching_liveness_passed": true,
|
||||
"intentional_test_RF_packets": 0,
|
||||
"packet_delivery_qualification": false,
|
||||
"BLE_qualification": false,
|
||||
"CPU_sleep_qualification": false,
|
||||
"private_evidence_sha256": "4760f9c0789f21a01fbdbabf4eebb088a5a0898f7cedc74a6718a6966ce0c8cb"
|
||||
},
|
||||
"builds": [
|
||||
{
|
||||
"target": "RAK_3401_repeater_unified_lora_ota-full-ota",
|
||||
"source": "4c0f2acf64f4059077477d024756819d914befd7",
|
||||
"application_bytes": 635852,
|
||||
"application_limit_bytes": 815104,
|
||||
"flash_margin_bytes": 179252,
|
||||
"application_sha256": "84a9ec062c74086b0c0d423199d96e884e436083ad0357ffaed4fe2c65fd77c2",
|
||||
"runtime_ram_available_bytes": 78292,
|
||||
"runtime_ram_required_bytes": 74176,
|
||||
"memory_passed": true,
|
||||
"capabilities_passed": true
|
||||
},
|
||||
{
|
||||
"target": "RAK_3401_repeater_unified_lora_ota-reduced-ota",
|
||||
"source": "4c0f2acf64f4059077477d024756819d914befd7",
|
||||
"application_bytes": 583532,
|
||||
"application_limit_bytes": 815104,
|
||||
"flash_margin_bytes": 231572,
|
||||
"application_sha256": "56b28440999b9ce3296919908a4b20c9f169ab18f21558e35b7b91d112f54260",
|
||||
"runtime_ram_available_bytes": 81280,
|
||||
"runtime_ram_required_bytes": 74176,
|
||||
"memory_passed": true,
|
||||
"capabilities_passed": true
|
||||
},
|
||||
{
|
||||
"target": "RAK_4631_companion_radio_full",
|
||||
"source": "4c0f2acf64f4059077477d024756819d914befd7",
|
||||
"application_bytes": 711400,
|
||||
"application_limit_bytes": 712704,
|
||||
"flash_margin_bytes": 1304,
|
||||
"application_sha256": "34b61b5a6083e7a47b377188be8db182a5e52db0208f43eba63668e13f5677cb",
|
||||
"runtime_ram_available_bytes": 81140,
|
||||
"runtime_ram_required_bytes": 72528,
|
||||
"memory_passed": true,
|
||||
"capabilities_passed": true
|
||||
},
|
||||
{
|
||||
"target": "t1000e_companion_radio_ble-ota",
|
||||
"source": "4c0f2acf64f4059077477d024756819d914befd7",
|
||||
"application_bytes": 474580,
|
||||
"application_limit_bytes": 708608,
|
||||
"flash_margin_bytes": 234028,
|
||||
"application_sha256": "4129724bc2300bed9784724495f965a2e152223f0a56a2369e2bae8eb19cd261",
|
||||
"runtime_ram_available_bytes": 79524,
|
||||
"runtime_ram_required_bytes": 44864,
|
||||
"memory_passed": true,
|
||||
"capabilities_passed": true
|
||||
},
|
||||
{
|
||||
"target": "heltec_v4_2_v4_3_companion_radio_full_femon",
|
||||
"source": "4c0f2acf64f4059077477d024756819d914befd7",
|
||||
"application_bytes": 2564968,
|
||||
"application_limit_bytes": 6553600,
|
||||
"flash_margin_bytes": 3988632,
|
||||
"application_sha256": "23a1f54745f27c7be30ca748ee68c2289dd0f74fe4afcef4acc6d4781cb35693",
|
||||
"runtime_ram_available_bytes": 227768,
|
||||
"runtime_ram_required_bytes": 194336,
|
||||
"memory_passed": true,
|
||||
"capabilities_passed": true
|
||||
}
|
||||
],
|
||||
"reader": {
|
||||
"verse_count": 879,
|
||||
"all_verses_unchanged": true,
|
||||
"scratch_bytes": 4096,
|
||||
"new_static_data_bytes": 33399,
|
||||
"old_static_data_bytes": 38485,
|
||||
"static_data_savings_bytes": 5086,
|
||||
"terminal_ARM_local_stack_bytes": 6264,
|
||||
"screen_ARM_local_stack_bytes": 6424,
|
||||
"additional_caller_reserve_bytes": 1536,
|
||||
"loop_stack_bytes": 8192,
|
||||
"heap_added": false
|
||||
},
|
||||
"validation": [
|
||||
"Saved CLI and five-role early startup fixtures",
|
||||
"Driver feature masks and ordinary modulation fallback",
|
||||
"SPI clock/buffer HAL fixtures and board construction contracts",
|
||||
"Busy/RX-failure/save-failure transaction tests with sanitizers",
|
||||
"Reader corpus, corruption and ARM stack fixtures",
|
||||
"Merged Meshtext and beacon dispatcher regressions",
|
||||
"Radio scan, rollback, timing, Ethernet, diagnostics and regulator regressions"
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user