Record final emergency power and constrained-profile build checks

This commit is contained in:
mikecarper committed 2026-10-28 05:07:58 -07:00
1 parent 8c2ddc9ac7
commit c9acec474b
3 files changed
+309

No files matched your search

+5
View File
@@ -69,6 +69,11 @@ See [CLI Availability by Firmware Build](cli_build_matrix.md) for the role and
profile matrix. Commands depend on compiled features; some portable builds
omit WebConfig while retaining the complete role CLI and compact WiFi updater.
Small-flash Mini and STM32 Companion profiles, plus RAK4631 Full Companion,
use shorter human-readable validation replies. Command syntax, returned
values, protocol acknowledgements and destructive-operation warnings stay
the same.
See [CLI Command Availability Matrix](cli_command_availability.md) for the
command-by-command nRF52 and ESP32 build tables.
@@ -81,6 +81,34 @@ The [safe machine-readable report](emergency_power_2026-10-28.safe.json) records
ELF, package and manifest hashes. Package hashes were independently compared
with every corresponding memory-manifest entry.
### Integration checks
Eight further normal builds at
[`8c2ddc9ac`](https://github.com/mikecarper/MeshCore/commit/8c2ddc9ac)
pass after the concurrent USB-mode and MediaMesh changes. Constrained profiles
use shorter human validation replies and help descriptions; commands, returned
values, protocol acknowledgements and destructive-operation warnings remain.
Runtime timers and flags are grouped to remove alignment padding. Saved-record
layouts, features and filesystem capacity are preserved.
| Firmware | Linked flash / limit, bytes | Available / required RAM, bytes |
| --- | ---: | ---: |
| RAK4631 Repeater Full | 687,512 / 815,104 | 83,156 / 83,136 |
| RAK4631 Repeater Reduced | 620,020 / 815,104 | 85,696 / 81,088 |
| Wio E5 Mini Repeater | 245,260 / 245,760 | 43,880 / 32,288 |
| RAK4631 Full Companion | 712,092 / 712,704 | 81,284 / 74,576 |
| RAK3x72 USB Companion | 228,924 / 229,376 | 24,448 / 17,408 |
| Wio E5 Mini USB Companion | 228,816 / 229,376 | 24,424 / 17,408 |
| Wio E5 USB Companion | 228,892 / 229,376 | 24,456 / 17,408 |
| TinyRelay USB Companion | 228,992 / 229,376 | 24,448 / 17,408 |
Linked flash counts exclude packaging and alignment overhead; normal linker
and package checks also pass. The Mini retains its 16 KB filesystem. Native
checks compare the reviewed reply substitutions and unchanged C++ control
flow. The final RAK Companion ELF passes both RFC8032 vectors with a 1,904-byte
signing frame under the 2,048-byte limit, plus four OTA workspace lifetime checks.
These Companions do not gain the infrastructure emergency-sleep feature.
## Physical trials
Each board entered manual radio sleep, woke for a real one-minute override,
@@ -509,5 +509,281 @@
"real_five_percent_battery_qualified": false,
"continuous_45_minute_sleep_qualified": false,
"bench_source_sha256": "2c4799cb239f9d092d5cf46c0366408aa95f766f786f56af4b913e07b636418f"
},
"integration_builds": [
{
"artifact_target": "RAK_4631_repeater_lora_ota_no_external_sensors-full-ota",
"pio_environment": "RAK_4631_repeater",
"source_commit": "8c2ddc9ac",
"passed": true,
"linked_flash_bytes": 687512,
"flash_limit_bytes": 815104,
"capability_checks": {
"passed": 16,
"total": 16
},
"ota_update_verified": true,
"memory": {
"passed": true,
"elf_sha256": "a5a590f54660ca2b0c57bcc8f5400659fe46b4f3dd379ad0b2ab924c63519512",
"available_internal_bytes": 83156,
"largest_internal_region_bytes": 83156,
"required_heap_bytes": 83136,
"required_contiguous_bytes": 19168
},
"memory_manifest_sha256": "a9f6ab28eeed7138b9f38f483c69db031491cfd91859ae05374acdff46bf1a45",
"capabilities_manifest_sha256": "46615a33db71a170d2be3a5c52274f7e1e2c5d256f681ca2d324d96a643b2e34",
"artifact_files": {
"RAK_4631_repeater_lora_ota_no_external_sensors-full-ota-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.uf2": {
"sha256": "81c4d857839f7b94ffa472a3a2ad6eee213e2cf45831bbd24fdb5e33c8afe16a",
"size_bytes": 1375232
},
"RAK_4631_repeater_lora_ota_no_external_sensors-full-ota-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.zip": {
"sha256": "8b1a3ba59a5ff684439f376e8169746e3aff19c081dfec763a20038dfc8a6241",
"size_bytes": 688395
}
}
},
{
"artifact_target": "RAK_4631_repeater_lora_ota_no_external_sensors-reduced-ota",
"pio_environment": "RAK_4631_repeater",
"source_commit": "8c2ddc9ac",
"passed": true,
"linked_flash_bytes": 620020,
"flash_limit_bytes": 815104,
"capability_checks": {
"passed": 14,
"total": 14
},
"ota_update_verified": true,
"memory": {
"passed": true,
"elf_sha256": "59c70ac3c4f22650d2c5a0739624e5e29a3a61b7abfda3614e4171a476c9f5c7",
"available_internal_bytes": 85696,
"largest_internal_region_bytes": 85696,
"required_heap_bytes": 81088,
"required_contiguous_bytes": 19168
},
"memory_manifest_sha256": "fa7b6eb7d08aa0a74641d3e691c407d7699c68689b40fe84a80bc78be579709e",
"capabilities_manifest_sha256": "c3804a710f03f5e7b3ac3404830de418e370ce813bd5279a9eb3350b056052f4",
"artifact_files": {
"RAK_4631_repeater_lora_ota_no_external_sensors-reduced-ota-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.uf2": {
"sha256": "dcfad8950921952ee9360e255f62762c79ecb536750eca8d297f7409af07895e",
"size_bytes": 1240576
},
"RAK_4631_repeater_lora_ota_no_external_sensors-reduced-ota-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.zip": {
"sha256": "0a3842418293cae5ea1281fb30a76c376737a258521ed9081d7229c6a5acaa32",
"size_bytes": 620903
}
}
},
{
"artifact_target": "wio-e5-mini_repeater",
"pio_environment": "wio-e5-mini_repeater",
"source_commit": "8c2ddc9ac",
"passed": true,
"linked_flash_bytes": 245260,
"flash_limit_bytes": 245760,
"capability_checks": {
"passed": 1,
"total": 1
},
"ota_update_verified": false,
"memory": {
"passed": true,
"elf_sha256": "bf433b151be10a89ca6a04bea98ba7692999743eee0406bc95a55436db120dd2",
"available_internal_bytes": 43880,
"largest_internal_region_bytes": 43880,
"required_heap_bytes": 32288,
"required_contiguous_bytes": 10240
},
"memory_manifest_sha256": "f4f244b033e1538445aee5c32de9381e393e63dd4f4c137a701bf17fcc15b8c2",
"capabilities_manifest_sha256": "8f65ac10ba9398904097eb525d179be5a8b9884fe140479eeba2e0e93f886044",
"artifact_files": {
"wio-e5-mini_repeater-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.bin": {
"sha256": "da39a4dd6028faa014541d8baae8b1079c9ff16384aeb8cb04b54ed375f494f1",
"size_bytes": 245608
},
"wio-e5-mini_repeater-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.hex": {
"sha256": "d6787f7c1435cb7f0d6a21acc5c115f135af534466745d4c4c16ae3d3dd5e457",
"size_bytes": 690891
}
}
},
{
"artifact_target": "RAK_4631_companion_radio_full",
"pio_environment": "RAK_4631_companion_radio_full",
"source_commit": "8c2ddc9ac",
"passed": true,
"linked_flash_bytes": 712092,
"flash_limit_bytes": 712704,
"capability_checks": {
"passed": 15,
"total": 15
},
"ota_update_verified": true,
"memory": {
"passed": true,
"elf_sha256": "a931669843dce4536a067f28705149da5190d086470c09e195c5576fa985afef",
"available_internal_bytes": 81284,
"largest_internal_region_bytes": 81284,
"required_heap_bytes": 74576,
"required_contiguous_bytes": 11008
},
"memory_manifest_sha256": "120a9b53156b581edd67ddc049c774e15a33e751c50990281ec3b8df425da6ab",
"capabilities_manifest_sha256": "520af68ff60e2e1c8dbfe6da1313f5e067094958fb966d4dd66d764615fb2b1d",
"artifact_files": {
"RAK_4631_companion_radio_full-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.uf2": {
"sha256": "4666c141fed3fa20ad92e57ab39fa839b34bb5db05385202e564220fe8c56bbd",
"size_bytes": 1424384
},
"RAK_4631_companion_radio_full-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.zip": {
"sha256": "951bb37464998e455c0a6032a3779fe072268babfc161fd04aee8fbcae39aa7e",
"size_bytes": 712975
}
}
},
{
"artifact_target": "RAK_3x72_companion_radio_usb",
"pio_environment": "RAK_3x72_companion_radio_usb",
"source_commit": "8c2ddc9ac",
"passed": true,
"linked_flash_bytes": 228924,
"flash_limit_bytes": 229376,
"capability_checks": {
"passed": 0,
"total": 0
},
"ota_update_verified": false,
"memory": {
"passed": true,
"elf_sha256": "6ced0f235f78bc90f178aabd2c31241d64df4bd86f131b6c6d37a4e213205ba1",
"available_internal_bytes": 24448,
"largest_internal_region_bytes": 24448,
"required_heap_bytes": 17408,
"required_contiguous_bytes": 5120
},
"memory_manifest_sha256": "7200af66aed34e13a123fc4a683a95f3bb74de40622c90c524af998a9a0135d9",
"capabilities_manifest_sha256": "8c602dc990fbfcea540a0a05d44747aa701bd61d08f92d0b12045b7f883ceff1",
"artifact_files": {
"RAK_3x72_companion_radio_usb-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.bin": {
"sha256": "411324849a06570bed4bc500c6b3c0ec977ef00870a02124194d1f79522b8565",
"size_bytes": 229276
},
"RAK_3x72_companion_radio_usb-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.hex": {
"sha256": "a9afd0bae4923669596cc58b21dce8d42687bd42c287482d7e1339e60a659308",
"size_bytes": 644946
}
}
},
{
"artifact_target": "wio-e5-mini_companion_radio_usb",
"pio_environment": "wio-e5-mini_companion_radio_usb",
"source_commit": "8c2ddc9ac",
"passed": true,
"linked_flash_bytes": 228816,
"flash_limit_bytes": 229376,
"capability_checks": {
"passed": 0,
"total": 0
},
"ota_update_verified": false,
"memory": {
"passed": true,
"elf_sha256": "2ddb4009fb776c09ce69da048655964b3a6e54e18f2f630f5af5f6d113b11b3e",
"available_internal_bytes": 24424,
"largest_internal_region_bytes": 24424,
"required_heap_bytes": 17408,
"required_contiguous_bytes": 5120
},
"memory_manifest_sha256": "0fecade0c4edc49f0263ec72c383ee7de0ca4a4e08950b2300e4b679776f1520",
"capabilities_manifest_sha256": "c993c9a05190aad3dfefdf5e6071d73b8bd804ff6d1aba6636008c6bcd4ad9dd",
"artifact_files": {
"wio-e5-mini_companion_radio_usb-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.bin": {
"sha256": "a7ab04710b8aa979fab7b61ab3e0fb2a6dc7d205189907c9f3609da412bf5f79",
"size_bytes": 229168
},
"wio-e5-mini_companion_radio_usb-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.hex": {
"sha256": "c0308378d6f69ae8de24176d3730b0465243f23a92d1ffca634e9503cb3d2b49",
"size_bytes": 644639
}
}
},
{
"artifact_target": "wio-e5_companion_radio_usb",
"pio_environment": "wio-e5_companion_radio_usb",
"source_commit": "8c2ddc9ac",
"passed": true,
"linked_flash_bytes": 228892,
"flash_limit_bytes": 229376,
"capability_checks": {
"passed": 0,
"total": 0
},
"ota_update_verified": false,
"memory": {
"passed": true,
"elf_sha256": "e0de0678e0d0f19207d56a617b60c89e036a9b0fac5c4927c1308869ab806646",
"available_internal_bytes": 24456,
"largest_internal_region_bytes": 24456,
"required_heap_bytes": 17408,
"required_contiguous_bytes": 5120
},
"memory_manifest_sha256": "9ee86224a19ff34c4cf93c1e9b69d93dd46f7787d67dbd8bc22d930a58e48961",
"capabilities_manifest_sha256": "0c546a1a946a3c331ddb32ee3df304a161fa51cdcb37e63b19184de8d38c4924",
"artifact_files": {
"wio-e5_companion_radio_usb-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.bin": {
"sha256": "cb984309506ec4ecb3a892208720c116679a9f3f5d8c72b662be78f52cf060cd",
"size_bytes": 229244
},
"wio-e5_companion_radio_usb-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.hex": {
"sha256": "19de565271061002d74651cb8de4d8d440ec54eb64aa3ccf127c60b5f8dec459",
"size_bytes": 644869
}
}
},
{
"artifact_target": "Tiny_Relay_companion_radio_usb",
"pio_environment": "Tiny_Relay_companion_radio_usb",
"source_commit": "8c2ddc9ac",
"passed": true,
"linked_flash_bytes": 228992,
"flash_limit_bytes": 229376,
"capability_checks": {
"passed": 0,
"total": 0
},
"ota_update_verified": false,
"memory": {
"passed": true,
"elf_sha256": "4289c0f88b4da7bc218288b4761006829b52babfaa80b740fe5e50f170e561c7",
"available_internal_bytes": 24448,
"largest_internal_region_bytes": 24448,
"required_heap_bytes": 17408,
"required_contiguous_bytes": 5120
},
"memory_manifest_sha256": "1bc96e6770725262a2db53de4963de6b3d308e552c2cb57cc37ba5fcec462fe1",
"capabilities_manifest_sha256": "9fa181658288ea207c14fdccd059c1020c0778518deafe664ead19eab8062de2",
"artifact_files": {
"Tiny_Relay_companion_radio_usb-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.bin": {
"sha256": "53d2b0ffe4f1ed89bb04e3dd35ca617d9a428f81465970076d06c9d00f8dceab",
"size_bytes": 229344
},
"Tiny_Relay_companion_radio_usb-v1.18.0.1-halo-keymind-cascade-dev-8c2ddc9a.hex": {
"sha256": "505741dec9122439f72a27ca1f6937ed1d2e6b653fb3eb364a2b8cb3f673f032",
"size_bytes": 645134
}
}
}
],
"integration_scope": "Eight normal capacity-checked builds following concurrent USB-mode and MediaMesh changes. Only human CLI prose is shortened in constrained profiles; feature and filesystem scope, command syntax, structured values, protocol acknowledgements and destructive warnings remain. RAM-only timer/flag grouping removes padding without changing serialized layouts. Linked flash counts exclude packaging and alignment overhead; normal link/package checks passed.",
"additional_arm_checks": {
"source_commit": "8c2ddc9ac",
"elf_sha256": "a931669843dce4536a067f28705149da5190d086470c09e195c5576fa985afef",
"crypto_rfc8032_vectors_passed": 2,
"crypto_sign_frame_bytes": 1904,
"crypto_frame_limit_bytes": 2048,
"ota_workspace_lifetimes_passed": 4,
"scope": "Linked ARM execution, not physical timing or load qualification."
}
}