This artifact packages the retained source, controller binaries, selected E1–E7 experiment folders, diagnostic timing evidence, recovered current build files, and manuscript-support material for:
SD-I/O: Actuation-Gated Runtime Reconfiguration for Embedded Control Nodes
It is an evidence package, not a claim that every unmeasured property was validated. The primary evidence is the raw source, command traces, runtime logs, and retained result summaries.
- GitHub repository: https://github.com/ProSoDiAC/sdio-runtime-reconfiguration
- Version: v1.0-submission-2
- Artifact size: approximately 11 MiB for the unpacked evidence payload, excluding the generated release tarball.
- Public-release redaction: completed for the requested personal home path and
sensitive-term audit. Historical
/root/microros_officialbuild/capture paths remain in retained evidence because they do not identify a person and preserve the recorded execution context.
Code and software are licensed under BSD-3-Clause. Logs, metadata, documentation, and manuscript-support data are licensed under CC BY 4.0. See LICENSE for the content scopes, license notices, and third-party-material qualification.
- Repository HEAD at packaging: 6ab00902567fe35e05fff0efe0fb61780ce3be9f
- Git description: milestone_m74_end_to_end_demo-dirty
- Metadata capture time: 2026-07-22T18:40:47+02:00
- The complete pre-artifact dirty-state record is in firmware/build_metadata/git_status_short.txt.
The source commit identifies the repository baseline. The retained experiment folders were untracked at packaging, and the repository was dirty; consult each scenario's git_state.txt and the central metadata before making provenance claims.
- firmware/source: copied firmware source, headers, configurations, board overlay, and build variant.
- firmware/patches: retained pre-existing patch files.
- firmware/recovered_current_build_not_scenario_bound: recovered .config, ELF, BIN, HEX, map, and linker command, plus hashes.
- firmware/build_metadata: Git state, capture time, build hashes, and the binary-identity limitation.
- controllers/e3_c_sources: six retained E3 controller C sources.
- controllers/e3_wasm_artifacts: six retained E3 WASM artifacts.
- controllers/e3_common_input_outputs.csv: verified common source-level input and output matrix.
- controllers/e3_artifact_checksums.csv: artifact sizes, additive checksums, and SHA-256 digests.
- experiments/E1_safe_baseline through experiments/E7_overhead_determinism: retained selected article scenario folders.
- experiments/failed_or_partial_runs_available: only explicitly retained failed or partial attempts.
- host_scripts: copied host tooling plus E3 reproduction/check scripts.
- manuscript_support: retained paper evidence, drafts, figures, and top-level result CSV files.
Each scenario contains result_summary.md where retained, along with command traces and MCU event/telemetry logs. Start with:
less experiments/E1_safe_baseline/result_summary.md
less experiments/E2_controller_upgrade/result_summary.md
less experiments/E3_controller_portfolio/result_summary.md
less experiments/E4_model_update_binding/result_summary.md
less experiments/E5_policy_bundles/result_summary.md
less experiments/E6_distributed_prediction/result_summary.md
less experiments/E7_overhead_determinism/result_summary.md
Search primary logs directly rather than relying only on summaries:
rg -n "ERR|WARN|OK |RUNTIME|STATE_DEBUG|PERF_" experiments/E*/logs
Failed and partial attempts are deliberately retained and labeled separately. Do not merge their observations into the selected successful runs.
The retained build flags are in experiments/E3_controller_portfolio/scripts/build_controllers.sh. To rebuild without overwriting retained artifacts:
OUT=$(mktemp -d)
for src in controllers/e3_c_sources/*.c; do
name=$(basename "$src" .c)
clang --target=wasm32 -Oz -nostdlib -fno-builtin \
-Wl,--no-entry -Wl,--export=controller_update -Wl,--strip-all \
-Wl,--initial-memory=65536 -Wl,--max-memory=65536 \
-Wl,-z,stack-size=512 "$src" -o "$OUT/$name.wasm"
done
Compiler version metadata was not retained, so a rebuild is functional reproduction evidence and is not guaranteed to be byte-identical. Inspect exports and memory with:
wasm-objdump -x "$OUT/smooth_duty.wasm"
Run the copied C sources through the host harness and compare with the retained matrix:
python3 host_scripts/reproduce_e3_common_input_outputs.py \
> /tmp/e3_common_input_outputs.csv
diff -u controllers/e3_common_input_outputs.csv \
/tmp/e3_common_input_outputs.csv
Check current copied WASM identities with:
python3 host_scripts/check_e3_artifacts.py
The common-sequence values are independent source-level function calls. They document behavioral distinctness and are not closed-loop performance measurements.
The firmware records timing values in nanoseconds after converting Zephyr cycle counts. For each PERF line:
- SAMPLES is the number of observations accumulated since the applicable RESET_PERF_STATS.
- AVG is the integer arithmetic mean in nanoseconds.
- MIN and MAX are the smallest and largest observed values in nanoseconds.
- A zero-sample metric reports zeros and means that instrumented path did not record an observation in that interval.
- PERF_CTRL surrounds the active controller update.
- PERF_PKG surrounds native MPC package dispatch when active.
- PERF_CONTROL_THREAD surrounds command processing, the control step, and actuator-output application for one control-service iteration.
- RECONFIG LATENCY_NS is the last recorded reconfiguration latency.
Interpret values within the phase and reset boundaries in experiments/E7_overhead_determinism/result_summary.md. These are observed, instrumented diagnostics from one retained execution, not WCET bounds, deadline guarantees, or formal hard-real-time certification.
- One selected run is retained per E1–E7 scenario; failed/partial attempts are preserved separately where available.
- No statistical repeatability claim is supported: repeated independent trial distributions were not retained.
- Byte-identical firmware use across all E1–E7 is not proven. The recovered current build is explicitly not scenario-bound.
- E7 is diagnostic timing evidence, not WCET analysis or certification.
- Events used best-effort transport; no retained persistent MCU-side critical fault counter establishes lossless critical-fault observability.
- E6 supports neighbor-target propagation only, not a complete retained DMPC cost trace suitable for full distributed-optimization validation.
- Resource evidence is static/configured. Runtime stack, heap, and buffer high-water marks were not retained.
- E3 verifies six bounded ABI-compatible examples and a common runtime workflow; it does not prove arbitrary-controller support or comparative closed-loop performance.
- The selected E3 final run succeeded after constrained-memory rebuilding. Its earlier allocation-failure attempt remains available and must not be treated as uploaded-controller execution evidence.
The repository URL, version, dual-license structure, public-release redaction, versioned tarball, and author metadata are prepared for the corrected Zenodo artifact release. The final version DOI will be assigned on the Zenodo landing page for this corrected release and should be the DOI cited in the manuscript. See RELEASE_CHECKLIST.md.