Cover Full Meshtext board families in CI and record RF qualification
This commit is contained in:
1 parent
170c1761d0
commit
1f1d98eed8
2 files changed
+106
-2
No files matched your search
@@ -29,13 +29,18 @@ jobs:
|
||||
python3 -B scripts/check_nrf52_companion_reader.py .pio/build/RAK_4631_companion_radio_full/firmware.elf
|
||||
python3 -B scripts/check_nrf52_companion_ota_workspace.py .pio/build/RAK_4631_companion_radio_full/firmware.elf
|
||||
|
||||
- name: Qualify direct-OTA-only XIAO Full Companion
|
||||
# This configuration has no Meshtext/Ethernet application callbacks.
|
||||
- name: Qualify XIAO Full Companion with Meshtext and direct OTA
|
||||
run: >-
|
||||
bash build.sh build-firmware Xiao_nrf52_companion_radio_full
|
||||
--firmware-version v1.18.0.1-halo-keymind-cascade-dev
|
||||
--radio-preset usa-cascade-fixed --profile cascade --require-ota
|
||||
|
||||
- name: Qualify T1000-E Full Companion with LR1110 Meshtext
|
||||
run: >-
|
||||
bash build.sh build-firmware t1000e_companion_radio_full
|
||||
--firmware-version v1.18.0.1-halo-keymind-cascade-dev
|
||||
--radio-preset usa-cascade-fixed --profile cascade --require-ota
|
||||
|
||||
- name: Qualify unified T114 Full Companion with automatic screen detection
|
||||
run: >-
|
||||
bash build.sh build-firmware Heltec_t114_companion_radio_full
|
||||
@@ -162,6 +167,34 @@ jobs:
|
||||
--firmware-version v1.18.0.1-halo-keymind-cascade-dev
|
||||
--radio-preset usa-cascadia --profile cascade --auto
|
||||
|
||||
- name: Qualify Heltec V2 Full Companion with SX1276 Meshtext
|
||||
run: >-
|
||||
bash build.sh build-firmware Heltec_v2_companion_radio_full
|
||||
--firmware-version v1.18.0.1-halo-keymind-cascade-dev
|
||||
--radio-preset usa-cascade-fixed --profile cascade --require-ota
|
||||
|
||||
esp32-constrained-companion-smoke:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Build Environment
|
||||
uses: ./.github/actions/setup-build-environment
|
||||
- name: Qualify C3 Full Companion with all transports and Meshtext
|
||||
run: >-
|
||||
bash build.sh build-firmware Xiao_C3_companion_radio_full
|
||||
--firmware-version v1.18.0.1-halo-keymind-cascade-dev
|
||||
--radio-preset usa-cascade-fixed --profile cascade --require-ota
|
||||
- name: Qualify C6 Full Companion with Meshtext
|
||||
run: >-
|
||||
bash build.sh build-firmware Xiao_C6_companion_radio_full_
|
||||
--firmware-version v1.18.0.1-halo-keymind-cascade-dev
|
||||
--radio-preset usa-cascade-fixed --profile cascade --require-ota
|
||||
- name: Qualify Tracker V2 Full Companion with shared cold storage
|
||||
run: >-
|
||||
bash build.sh build-firmware heltec_tracker_v2_companion_radio_full_femon
|
||||
--firmware-version v1.18.0.1-halo-keymind-cascade-dev
|
||||
--radio-preset usa-cascade-fixed --profile cascade --require-ota
|
||||
|
||||
cross-platform-smoke:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@@ -584,6 +617,9 @@ jobs:
|
||||
python3 -B test/test_identity_and_settings_recovery.py -v
|
||||
python3 -B test/test_contact_cache.py -v
|
||||
python3 -B test/test_one_key_dm_shared_queue.py -v
|
||||
python3 -B test/test_one_key_dm_compact_held.py -v
|
||||
python3 -B test/test_companion_shared_ota_capacity.py -v
|
||||
python3 -B test/test_espnow_raw_initialization.py -v
|
||||
|
||||
- name: Verify Ethernet RF harness framing, TX lock, isolation and safe serial ownership
|
||||
run: |
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
# Full Companion Meshtext defaults, 2026-10-23
|
||||
|
||||
The T1000-E image originally installed on MercerWoodMesh did not expose
|
||||
`get mt.status`. Its LR1110 board was outside the former default-enable gate.
|
||||
Commit `127d1bec2` enables Meshtext for supported ESP32/nRF52 Full Companions,
|
||||
independently of board/chip-name macros. Explicit overrides, ESP-NOW primary
|
||||
exclusion and actual modem/profile validation remain in force.
|
||||
|
||||
## Physical interoperability
|
||||
|
||||
The T1000-E and Heltec V4.3 OLED ran Full Companion `127d1bec2`. The independent
|
||||
witness was XIAO S3 WIO running official Meshtastic `2.7.26.54e0d8d`, hardware
|
||||
model 81, controlled using SDK 2.7.11. Its official radio pins match the WIO
|
||||
carrier. No nRF52 bootloader or SoftDevice was replaced for this campaign.
|
||||
|
||||
Meshtext used US LongFast: 906.875 MHz, BW250, SF11, CR5, public AQ key,
|
||||
16-symbol preamble. Both Companions retained a 917 MHz/BW62.5/SF7/CR5 primary.
|
||||
No test transmissions used 910.525 MHz. Generic retries were off, MT hop limit
|
||||
was 1, and the stock witness was CLIENT_MUTE with MQTT disabled.
|
||||
|
||||
| Check | Independently received |
|
||||
| --- | --- |
|
||||
| T1000-E to V4 and stock witness | 5/5 at each receiver |
|
||||
| V4 to T1000-E and stock witness | 5/5 at each receiver |
|
||||
| Paced stock witness to both Companions | 3/3 at each receiver |
|
||||
| Primary MeshCore, T1000-E to V4, MT still active | 3/3 |
|
||||
| Primary MeshCore, V4 to T1000-E, MT still active | 3/3 |
|
||||
|
||||
Each of the three paced stock messages increased V4 Meshtext RX by one and
|
||||
completed TX by one with `mt.rebroadcast on`, without an originated V4 message.
|
||||
T1000-E TX remained unchanged with rebroadcast off. This verifies forwarding
|
||||
activity; it does not establish an isolated, exclusively one-hop route.
|
||||
V4 was left with `mt.rebroadcast on`. The temporary primary test channel was
|
||||
removed after its six messages.
|
||||
|
||||
The initial sweep used 14-second observation windows and reported missing
|
||||
messages. One appeared in the next window. Follow-up sends, paced 45 seconds
|
||||
apart, reached both receivers after 9.6, 15.2 and 20.6 seconds from the local
|
||||
stock queue request. Short-window misses therefore are not a reliable RF-loss
|
||||
measurement and are not counted as successful deliveries. Dual-profile RX
|
||||
remains time-shared; these checks do not promise lossless simultaneous reception.
|
||||
|
||||
Private raw evidence and identity-bound flashing logs are retained under
|
||||
`/home/mesh/hwtest/mt-longfast-20261023` and the matching Pi directory.
|
||||
|
||||
## Build and memory checks
|
||||
|
||||
The T1000-E, V4.3 Full and Heltec V2 Full images passed linking, executable
|
||||
Meshtext capability checks and memory/flash budgets. At merged source
|
||||
`170c1761d`, XIAO C3, C6, nRF52, S3 WIO, Heltec CT62 and Tracker V2 Full also
|
||||
passed. Compile qualification is separate from physical board qualification.
|
||||
|
||||
The first C3 build failed the unchanged runtime heap guard. Constrained Full
|
||||
recipes now borrow idle queue storage for explicit OTA, retain all 224 normal
|
||||
queued frames and all 15 held private messages, and store only authenticated
|
||||
message fields needed for later delivery. Constant initialization also removes
|
||||
unused ESP-NOW primary workspace from LoRa-only images. No feature was disabled.
|
||||
Final C3 linked headroom was 146000 bytes against the existing 145952-byte
|
||||
requirement, which includes a 16384-byte transient margin.
|
||||
|
||||
Native coverage includes the board/include-order default matrix, linked-code
|
||||
packaging and override contracts, real-crypto protocol interoperability,
|
||||
224/128 queue ownership and wraparound, compact-message ACK/dedup/FIFO/retry
|
||||
behavior, and ESP-NOW initialization/fragmentation under sanitizers. CI now
|
||||
builds T1000-E and SX1276 Full plus constrained C3/C6/Tracker Full images.
|
||||
|
||||
LLCC68 still cannot use SF11 at BW250. Its manufacturer modulation limits
|
||||
exclude LongFast; enabling software cannot add that hardware mode.
|
||||
Reference in new issue
Block a user