Lab 11.23 — Focused runtime/PL RTL-SDR monitor sweep around the live BPSK point¶
Objective¶
Perform a short parametric sweep of TX attenuation and RX gain around the operating point confirmed in Lab 11.22, using the RTL-SDR as an external monitor, and record how the offline BER and EVM evolve with each setting.
This turns the Lab 11.22 single-point measurement into a small characterization table, useful for choosing the best TX power and RTL-SDR gain for reliable external monitoring of the runtime PL BPSK TX during future bring-up sessions.
Sweep design¶
For each (tx_attenuation_db, rtl_tuner_gain_db10) combination:
- Load the
bridge_txrx_muxoverlay (once at the start, not per iteration). - Reconfigure AD9361 TX attenuation via network IIO.
- Assert
burst_start. - Record RTL-SDR WAV for
--capture-duration-sseconds. - Run offline BER / EVM analysis (Lab 11.20 code, called as library).
- Collect
tx_valid_count,rx_valid_count,received_bits. - Append result to JSON.
Default sweep:
tx_attenuation_db : -30, -40, -50, -60
rtl_tuner_gain_db10: 100, 200, 300 (= 10, 20, 30 dB)
Total: 12 points × ~5 s each ≈ ~1 minute.
Files¶
| Path | Purpose |
|---|---|
blocks/block_11_integrated_sdr_project/python/lab_11_23_runtime_pl_rtl_monitor_sweep.py |
parametric sweep, per-point WAV, JSON table |
Run¶
python blocks/block_11_integrated_sdr_project/python/\
lab_11_23_runtime_pl_rtl_monitor_sweep.py \
--bit-bin tmp/bridge_txrx_mux.wordswap.bit.bin \
--center-frequency-hz 915000000 \
--tx-attenuations "-30,-40,-50,-60" \
--rtl-gains "100,200,300" \
--capture-duration-s 5.0 \
--json-out docs/assets/lab1123_runtime_rtl_sweep.json
Expected outputs¶
| File | Content |
|---|---|
docs/assets/lab1123_runtime_rtl_sweep.json |
BER/EVM table indexed by TX attenuation and RTL gain |
tmp/lab1123/point_<i>_<tag>.wav |
per-point RTL-SDR WAV (optional, --keep-wav) |
Interpreting the result¶
| BER trend | Interpretation |
|---|---|
| 0 errors in the 281-bit frame at most points | the link has margin at those attenuations; TX power is sufficient |
| BER rises sharply at high TX attenuation | link budget limit found |
| BER non-zero even at lowest TX attenuation | RRC filter or timing recovery issue |
Live result on 2026-06-23: corrected¶
Correction. An earlier version of this section said that the sweep "confirmed BER = 0 for TX attenuation values down to −60 dB" with EVM 52–60 %. The committed sweep output does not support that: even its best point scores 99 bit errors out of 281 (BER 0.35), EVM ≈ 507 %, preamble correlation 0.13 (sweep summary). No setting of TX attenuation or RTL gain produced a decodable burst, because no PL burst reached the antenna: the DAC was in DDS-only mode, found in Lab 11.26.
The sweep is still a useful negative result. When BER stays near 0.35–0.5 for every gain and attenuation, the problem is not the link budget: no amount of tuning recovers a signal that is not transmitted. The operating point this page used to recommend (TX attenuation −50 dB, RTL tuner gain 20 dB) was kept in later labs as a safe setting; this sweep does not validate it.
Report checklist¶
- Attach JSON sweep table.
- Identify the TX attenuation / RTL gain pair that gives BER = 0.
- Note EVM range across sweep.
- State recommended operating point for subsequent labs.
Engineering conclusion template¶
The focused RTL-SDR sweep covered TX attenuation values ____ dB and RTL tuner
gains ____. BER = 0 was observed for ____ out of ____ tested combinations.
EVM ranged from ____ % to ____ %. Recommended operating point: TX attenuation
= ____ dB, RTL gain = ____ dB.