sig ist ein kleines, schnelles Python-CLI-Tool zum Auslesen von Messwerten
(Frequenz, RMS, Peak-to-Peak) aus einem Siglent SDS1202X-E Oszilloskop
über LAN (SCPI).
Das Tool ist bewusst Linux-like gehalten:
sig freq
sig rms
sig pkpkIntern wird PyVISA verwendet, die Messwerte werden über PAVA? (und optional den Cymometer / Frequency Counter) abgefragt. Features
✅ Linux-CLI (sig …)
✅ Verbindung über LAN (stabiler als USB)
✅ Unterstützt C1 / C2
✅ Frequenzanzeige in kHz mit Dezimalpunkt
✅ RMS & PKPK
✅ Sauberer Umgang mit „kein Signal“ (nan)
✅ Läuft zuverlässig mit Siglent SDS1202X-E Firmware 1.3.26
✅ Kein GUI, perfekt für Scripts & Automatisierung
Voraussetzungen
Linux
Python ≥ 3.9
Siglent SDS1202X-E
Netzwerkverbindung zum Oszilloskop
SCPI über LAN aktiviert
Python-Abhängigkeiten:
pip install pyvisa pyvisa-py
Projektstruktur
siglent/
├── sig.py # CLI-Tool
├── venv/ # Python venv (optional, empfohlen)
├── freq_scop.py # Tests / Experimente
├── scps_scope.py
└── README.md
git clone https://github.com/DL2DBG/siglent.git cd siglent
python3 -m venv venv source venv/bin/activate
pip install pyvisa pyvisa-py
Linux-Command sig (Wrapper)
Empfohlen ist ein Wrapper in ~/bin, damit sig wie ein echtes Linux-Kommando verwendet werden kann. /home/ulrich/bin/sig
#!/usr/bin/env bash
set -euo pipefail
REPO="/home/ulrich/Dokumente/GitHub/siglent"
VENV="$REPO/venv"
CLI="$REPO/sig.py"
exec "$VENV/bin/python3" "$CLI" "$@"
chmod +x ~/bin/sig
Falls nötig: export PATH="$HOME/bin:$PATH"
usage: sig [-h] [-i IP] [-c {C1,C2,both}] [--idn] [--raw] {freq,rms,pkpk,all}
sig: error: the following arguments are required: cmd
sig freq
C1 freq=7010.000 kHz C2 freq=nan kHz
sig rms
sig pkpk
sig all
sig freq -c C1 sig rms -c C2
sig freq -i 192.168.178.54
Standard: PAVA?
C1:PAVA? FREQ C1:PAVA? RMS C1:PAVA? PKPK
Diese Methode ist:
schnell
stabil
direkt an die Scope-Messanzeige gekoppelt
Die Frequenz kann in diskreten Schritten erscheinen (z. B. 7010 / 7020 kHz). Das ist kein Bug, sondern die interne Quantisierung der Messfunktion.
Optional kann der Cymometer (CYMT?) genutzt werden (Frequency Counter), der bei sauberen Triggerbedingungen oft genauer ist. Bekannte Einschränkungen
C2 zeigt nan, wenn:
Kanal aus
kein verwertbares Signal
USB-SCPI ist beim SDS1202X-E firmwareabhängig problematisch → LAN empfohlen
Nur getestet mit SDS1202X-E, andere SDS-Modelle evtl. kompatibel
Gerät: Siglent SDS1202X-E
Firmware: 1.3.26
OS: Linux
Python: 3.12
pyvisa / pyvisa-py
MIT License (oder nach Wunsch anpassen) Motivation
Kleines, schnelles Tool für:
Labor
Embedded-Entwicklung
HF-Experimente
Automatisierte Messungen
Shell-Skripte
Ohne GUI, ohne Overhead. Beitragen
Pull Requests, Issues und Verbesserungen sind willkommen 🙂
Parts of this project (design, debugging, documentation) were developed with the assistance of ChatGPT (OpenAI) as an interactive programming aid.