Lab 11.18 - Fresh-session runtime sweep after RX common re-init¶
Objective¶
Test whether starting each overlay iteration in a completely fresh SSH session
— rather than reusing persistent connections — changes the rx_valid_count
result, and sweep several combinations of start_offset and rx_common_ctrl
value in that fresh-session mode.
Labs 11.16 and 11.17 reused paramiko SSH connections across iterations.
There is a possibility that a leftover IIO or SSH state from a previous
iteration poisons the next one. This lab controls for that by opening a
fresh SSH connection (and fresh iio.Context) at the start of every iteration.
Sweep design¶
The script sweeps a configurable grid of:
start_offsetvalues (default: 0, 31, 62, 93, 127);rx_common_ctrlvalues (default: 0x70000000, 0x70000001, 0x70000003).
For each combination, a fresh paramiko session is created, the overlay is
reloaded, the AD9361 is configured, rx_common_ctrl is written, the host TX
burst is started, and rx_valid_count / received_bits are polled.
Each iteration ends by rebooting the board back to the stock shell before the next combination is attempted, guaranteeing a clean start state.
Files¶
| Path | Purpose |
|---|---|
blocks/block_11_integrated_sdr_project/python/lab_11_18_runtime_rx_common_reinit_fresh_session_sweep.py |
fresh-session grid sweep, JSON results |
Run¶
python blocks/block_11_integrated_sdr_project/python/\
lab_11_18_runtime_rx_common_reinit_fresh_session_sweep.py \
--bit-bin tmp/bridge_rx_only.wordswap.bit.bin \
--start-offsets 0,31,62,93,127 \
--rx-common-ctrl-values 0x70000000,0x70000001,0x70000003 \
--json-out docs/assets/lab118_fresh_session_sweep_live.json
A full 5×3 = 15-point sweep with reboot between iterations takes approximately 30–45 minutes.
Expected outputs¶
| File | Content |
|---|---|
docs/assets/lab118_fresh_session_sweep_live.json |
per-combination counter results |
| Console summary | any (start_offset, rx_common_ctrl) pair with rx_valid_count > 0 |
Interpreting the result¶
| Outcome | Interpretation |
|---|---|
Some combination yields rx_valid_count > 0 |
connection state was a factor; use the winning combination |
All combinations yield rx_valid_count = 0 |
the starvation is in hardware or the bitstream, not in host session state |
Live result on 2026-06-23¶
All tested combinations produced rx_valid_count = 0. The fresh-session
isolation did not change the outcome from Labs 11.16 and 11.17. The evidence
now strongly indicates that the root cause is within the bridge_rx_only
bitstream or the AD9361 → PL interface configuration, not in the host-side
software state or the start_offset / rx_common_ctrl parameter choices.
The next diagnostic step moved to external RF observation (Labs 11.20–11.23) to verify whether the TX path at least radiates correctly while the RX bring-up continues in parallel.
Report checklist¶
- [ ] State the grid dimensions (start_offset values × rx_common_ctrl values).
- [ ] Attach the JSON sweep file.
- [ ] Note any combination with
rx_valid_count > 0. - [ ] Confirm that each iteration started from a stock-shell reboot.
Engineering conclusion template¶
A fresh-session sweep over ____ (start_offset, rx_common_ctrl) combinations was
completed. Each iteration started from a stock-shell reboot. rx_valid_count > 0
was observed for combinations: ____ (or "none"). The fresh-session isolation did /
did not change the outcome because ______.