Skip to content

Easily configurable lab assistant that logs data using SCPI protocol

Notifications You must be signed in to change notification settings

b1f6c1c4/lab-scpi

Repository files navigation

lab-scpi

Easily configurable lab assistant that logs data using SCPI protocol

Workflow

  1. Connect all of your SCPI-compatible test equipments (DMMs, AFGs, oscilloscopes, DC power supplies, spectrum analyzers, etc.) to a central computer. Supported connection methods include:

    • SCPI over TTY over USB (/dev/ttyUSB0)
    • SCPI over TCP over LAN (IP address + port)
    • (TODO) SCPI over USBTMC (/dev/usbtmc0)
  2. Write a YAML configuration describing your setup:

    channels:
      dmm: !tcp
        host: 10.11.13.200
        port: 5025
      ps: !tty
        dev: /dev/ttyUSB0
        baud: 9600
        stop: 2
  3. In the same YAML file, write your testing plan:

    steps:
      - !send {channel: ps, cmd: 'OUTP ON'}
      - !delay {seconds: 1}
      - !send {channel: dmm, cmd: 'MEAS:VOLT:DC?'}
      - U1: !recv {channel: dmm, unit: V}
      - !send {channel: ps, cmd: 'OUTP OFF'}
      - !send {channel: dmm, cmd: 'MEAS:VOLT:DC?'}
      - U2: !recv {channel: dmm, unit: V}
      - U: !math {op: '-', operands: ['U1', 'U2'], unit: V}
  4. Download and compile lab-scpi:

    git get b1f6c1c4/lab-scpi
    cd lab-scpi
    cmake -G Ninja -S . -B cmake-build-release -DCMAKE_BUILD_TYPE=Release
    cmake --build cmake-build-release
  5. Run the executable:

    ./cmake-build-release/lab <path-to-config>.yaml <path-to-data>.json