Skip to content

Evidence

Every number of the article comes from the tables below. scripts/test.sh runs twister (the native_sim bus test with five noise patterns and the build for the M2S010 MKR Kit); scripts/evidence.py reads the twister reports and the firmware image and writes evidence/results.md and evidence/results.json, included here unchanged.

Results

Generated by scripts/evidence.py from the twister run of 2026-10-26T18:51:18+00:00 (Zephyr 2b6696d39565, zephyr/gnu).

Bus test on native_sim

Scenario Test cases Moderate noise: corrupted bytes / CRC errors / events lost Heavy noise: delivered + reported lost (of 100), master→slave slave→master
baton.bus 8/8 14 / 20 / 0 of 200 100 + 7 93 + 7
baton.bus.seed_7 8/8 17 / 28 / 0 of 200 100 + 0 100 + 3
baton.bus.seed_42 8/8 11 / 18 / 0 of 200 93 + 22 80 + 20
baton.bus.seed_1234 8/8 20 / 32 / 0 of 200 84 + 42 62 + 42
baton.bus.seed_31337 8/8 14 / 24 / 0 of 200 100 + 0 100 + 0

Memory on the M2S010 MKR Kit (Cortex-M3, -Os)

Item Bytes
Library code (src/) 5986
Zephyr glue (baton_zephyr.c) 1598
Node state (struct baton_zephyr_data) 1256
Protocol thread stack 1024
Whole sample image: text / data / bss 29348 / 188 / 8204

Reading the noise columns

  • Moderate noise flips one bit in about 1 of 150 bytes on the wire. The test requires every one of 200 events (100 in each direction) to arrive exactly once and in order, and no event to be reported lost.
  • Heavy noise flips one bit in about 1 of 40 bytes. The test requires that no event is duplicated or reordered, and that delivered + reported lost ≥ sent in both directions: every event either arrives or its sender is told. An event whose acknowledgement was destroyed is delivered and reported, so the sum may exceed 100.
  • CRC errors are counted by all three nodes, so one corrupted byte can be counted more than once (every node that hears the frame rejects it).

The raw twister report is evidence/twister_report.xml; hardware captures will be added to evidence/hardware/.