Files
radar_system/docs/sn9000_setup.md
T
2026-05-20 16:20:34 +03:00

4.9 KiB
Raw Blame History

SN9000 (PLANAR SNVNA / Иридиум) Setup

This project controls the PLANAR SN9000 multi-port VNA through the SNVNA companion application running on an external PC. The production path is:

SN9000 --USB 2.0--> SNVNA host PC --HiSLIP/VISA--> radar_system

For complete run-mode instructions see docs/operation_modes.md. For run_config.json field reference see docs/run_config.md.

The SN9000 hardware has no built-in SCPI server; the SNVNA application on the companion PC exposes the SCPI HiSLIP server (default port 4880). This project uses HiSLIP only, with the same pyvisa + IVI VISA stack already required by K209 — there is no additional dependency.

For maximum throughput the driver:

  • Uses HiSLIP, not raw TCP Socket.
  • Keeps one persistent VISA session.
  • Sends FORM:DATA REAL32 and FORM:BORD SWAP (little-endian) once.
  • Pre-configures 10 traces covering all S-parameters of the 2×4 matrix so one trigger drives both stimulus ports.
  • Sends the entire acquisition as one synchronized SCPI message: TRIG:SING;*OPC?;:SENS:DATA:CORR? S11;:SENS:DATA:CORR? S31;…;:SENS:DATA:CORR? S62. The K209 setup notes the same constraint: splitting TRIG:SING from the data queries can return -211,"Trigger system is not in the trigger wait state".

Topology (manual p. 1457):

Trace Output position Stimulus port Input position Receiver port
S11 0 1 (reflection) 1
S31 0 1 0 3
S41 0 1 1 4
S51 0 1 2 5
S61 0 1 3 6
S22 1 2 (reflection) 2
S32 1 2 0 3
S42 1 2 1 4
S52 1 2 2 5
S62 1 2 3 6

Required Components

Install these on the machine that runs the SN9000 smoke test or acquisition process:

  1. SNVNA companion application from Planar.

    • The SN9000 hardware is connected to this host over USB 2.0.
  2. IVI VISA runtime and development files.

    • Must support TCPIP HiSLIP resources.
    • Suitable implementations include NI-VISA or Keysight IO Libraries Suite.
    • If K209 already works on this host, no additional install is needed.
  3. Project Python environment.

    • Use the repository virtual environment, not system Python.
    • Install requirements.txt into .venv.

SNVNA HiSLIP Server

Start SNVNA with the SN9000 connected over USB 2.0. Enable HiSLIP server on port 4880. From the SNVNA UI:

System -> Settings -> Remote control network settings -> HiSLIP server -> On
System -> Settings -> Remote control network settings -> HiSLIP port -> 4880

Verify that the server is listening:

ss -ltnp | grep 4880

If SNVNA runs on a different machine from radar_system, set radar.remote_host to that machine's IP address.

The VISA resource string the driver assembles is:

TCPIP0::<radar.remote_host>::hislip0,<radar.remote_port>::INSTR

run_config.json

"radar": {
  "model": "sn9000",
  "remote_host": "127.0.0.1",
  "remote_port": 4880,
  "driver_mode": "native"
}

The 2×4 virtual switch matrix is enforced automatically; do not edit switches.port1 / switches.port2 or run.combos for SN9000 mode — the config codec rewrites them on load.

Python Smoke Test

Use the project virtual environment:

.venv/Scripts/python.exe -m python_app.scripts.sn9000_smoke_test ^
  --host 127.0.0.1 --port 4880 ^
  --start-hz 1000000 --stop-hz 3000000000 ^
  --points 201 --ifbw-hz 10000 --power-dbm -10 ^
  --no-preset

Expected result:

SN9000 IDN: Planar, SN9000-N, ...
SN9000 collection OK: traces=8, points=201, first_hz=..., last_hz=..., mean_abs_s21=...

Use --no-preset for the first smoke test to avoid resetting the current SNVNA session. Remove it when testing the full driver setup path.

SN9000 Limits

The SNVNA SCPI surface exposes service capability queries identical to K209:

SERV:SWE:FREQ:MAX?    Upper frequency bound in Hz.
SERV:SWE:FREQ:MIN?    Lower frequency bound in Hz.
SERV:SWE:POIN?        Maximum sweep point count.
SERV:SWE:POW:MAX?     Upper power bound in dBm.
SERV:SWE:POW:MIN?     Lower power bound in dBm.

The base SN9000 model covers 0.3 MHz .. 9 GHz; power range is -45 .. +10 dBm up to 6 GHz, and -45 .. +2 dBm from 6 GHz to 9 GHz (manual p. 58). IF bandwidth selectable in the 1, 1.5, 2, 3, 5, 7 sequence across decades from 1 Hz to 300 kHz (manual p. 58, 1261).