{ "_comment": "Replay of the recorded VNA_AlGo tank005 dataset through the full pipeline (no hardware). The replay producer feeds the raw ring; pair it with NEUTRAL preprocess sets (calibration=1, reference=0) so the already-preprocessed recording passes through unchanged. Create them via GUI 'Create neutral sets' (name: neutral_replay) or python -m python_app.scripts.create_neutral_preprocess_sets --config .", "radar": { "model": "librevna_multi", "serial": "206830985532", "driver_mode": "mock", "multi_device": { "slave_serials": [ "206930965532", "206930A15532" ], "force_external_reference": true, "recovery_attempts": 3, "output_switch_positions": 1, "input_switch_positions": 1, "stimulus_switch_positions": 1 }, "replay": { "dataset_dir": "/home/awe/Documents/VNA_AlGo/librevna_multi_2-6GHz_751pts_-3dBm_tank005/librevna_multi_2-6GHz_751pts_-3dBm_tank005/preprocessed", "loop": true, "rate_scale": 1.0 }, "sweep": { "start_hz": 2000000000.0, "stop_hz": 6000000000.0, "if_bandwidth_hz": 50000.0, "stimulus_power_dbm": -3.0, "points": 751 } }, "switches": { "port1": { "name": "port1", "driver_mode": "mock", "driver": "h7992", "radar_port": 1, "positions": 2, "default_position": 0, "gpio_chip": "/dev/gpiochip0", "pin_a": 17, "pin_b": 27, "invert_logic": false }, "port2": { "name": "port2", "driver_mode": "mock", "driver": "h7992", "radar_port": 2, "positions": 4, "default_position": 0, "gpio_chip": "/dev/gpiochip0", "pin_a": 22, "pin_b": 23, "invert_logic": false } }, "control_button": { "enabled": false, "gpio_chip": "/dev/gpiochip0", "pin": -1, "active_low": true, "bias": "", "debounce_ms": 50, "action": "capture_tmp_reference" }, "run": { "settling_ms": 0, "idle_sleep_ms": 2, "continuous": true, "processing_live_config_path": "python_app/runtime/processing_live.json", "locator_server": { "device_id": 3, "protocol_version": 1, "host": "0.0.0.0", "port": 8888, "max_payload_bytes": 65536, "client_queue_size": 32, "logger_name": "locator_runtime" }, "combos": [ { "input": 0, "output": 0 }, { "input": 1, "output": 0 }, { "input": 2, "output": 0 }, { "input": 3, "output": 0 }, { "input": 0, "output": 1 }, { "input": 1, "output": 1 }, { "input": 2, "output": 1 }, { "input": 3, "output": 1 } ] }, "preprocess": { "s21": { "calibration": { "set_name": "neutral_replay", "bundle_path": "" }, "reference": { "set_name": "neutral_replay", "bundle_path": "" } }, "s11": { "calibration": { "open": { "set_name": "", "bundle_path": "" }, "short": { "set_name": "", "bundle_path": "" }, "load": { "set_name": "", "bundle_path": "" } }, "reference": { "set_name": "", "bundle_path": "" } }, "notch": { "enabled": false, "bands_hz": [], "taper_width_hz": 40000000.0, "taper_type": "cosine" } }, "gpr": { "relative_permittivity": 1.0, "tx_geometry": [ { "output_pos": 0, "x_m": 0.785, "y_m": 0.0, "z_m": 0.0 }, { "output_pos": 1, "x_m": -0.785, "y_m": 0.0, "z_m": 0.0 } ], "rx_geometry": [ { "input_pos": 0, "x_m": -0.42, "y_m": 0.0, "z_m": 0.0 }, { "input_pos": 1, "x_m": 0.48, "y_m": 0.0, "z_m": 0.0 }, { "input_pos": 2, "x_m": 0.18, "y_m": 0.0, "z_m": 0.0 }, { "input_pos": 3, "x_m": -0.12, "y_m": 0.0, "z_m": 0.0 } ] }, "rings": { "raw": { "name": "/radar_raw_simulator", "capacity": 50, "slot_size_bytes": 2097152 }, "raw_tap": { "name": "/radar_raw_tap_simulator", "capacity": 50, "slot_size_bytes": 2097152 }, "preprocessed": { "name": "/radar_preprocessed_simulator", "capacity": 50, "slot_size_bytes": 2097152 }, "preprocessed_tap": { "name": "/radar_preprocessed_tap_simulator", "capacity": 50, "slot_size_bytes": 2097152 }, "results": { "name": "/radar_results_simulator", "capacity": 50, "slot_size_bytes": 2097152 } }, "gui": { "version": 1, "switches": { "combo_mode": "text", "combos_text": "0:0,1:0,2:0,3:0,0:1,1:1,2:1,3:1", "single_input": "0", "single_output": "0" }, "processing": { "selected_mode": "sar3d", "sar3d": { "input_positions": "0,1,2,3", "output_positions": "0,1", "min_depth_m": 3.2, "max_depth_m": 10.0, "start_freq_mhz": 2000.0, "stop_freq_mhz": 6000.0, "speed_m_s": 0.854, "ignore_socket_speed_enabled": true, "look_angle_deg": 6.0, "frame_radius": 6, "voxel_m": 0.02, "bp_ground_depth_m": 1.25, "comp_range_power": 0.3, "use_compensation": true, "normalize_each_frame": true } }, "preprocess_dialog": { "set_name": "neutral_replay", "radar_config_dir": "", "use_all_radar_configs": false, "median_sweep_count": 5 } } }