- Joined
- Jul 30, 2026
- Messages
- 121
- Thread Author
- #1
Short answer: Freeze hardware revisions, RF path, software commits or versions, configuration, input data and analysis steps, then test a clean rebuild. Reproducibility means another person can obtain the same result within stated tolerance—not merely run the same application.
Before you start
- Define the project's purpose and one measurable success criterion before listing hardware.
- Document the complete RF and data path, including antenna, feedline, filters, gain, SDR, sample rate, software and processing output.
Step-by-step method
- Step 1: Create a bill of materials with exact revisions, connector map, clock source and calibrated gain/loss values.
- Step 2: Export configuration files, dependency versions and build commands. Use checksums for firmware, FPGA images and recorded datasets.
- Step 3: Archive a short legal input recording plus metadata and a script that produces the key measurement or figure from it.
- Step 4: Rebuild on a clean system or container and document expected numeric tolerance, known nondeterminism and hardware-specific steps.
Concrete example
A GNU Radio file alone is insufficient if the OOT module commit, sample file format and SDR master clock are missing. Add those plus one expected output checksum or measured range.How to judge the result
The project is reproducible when a clean environment follows the documentation without hidden files and reaches the declared result within tolerance. A second person should be able to distinguish an expected hardware-dependent difference from an actual failed reproduction.What to record
- Use equal observation windows and unchanged receiver settings for before-and-after comparisons.
- Include raw counts, signal-to-noise ratio or error rate alongside screenshots so the improvement is measurable.
- Record failed approaches and constraints; they often make a build log more useful than a polished final photograph.
Common mistakes
- Changing several parts between baseline and result, then crediting one component without evidence.
- Publishing a polished result without the versions, settings, failures and measurement needed to reproduce it.
- Using latest as a dependency version makes the project change over time and prevents exact restoration.