Files

3.5 KiB
Raw Permalink Blame History

ToGo-Lab / SDG2042X Linux GUI ToGo-Lab Edition

Author: Thomas Gohle ToGo-Lab


Intro

A PyQt5-based control GUI for the Siglent SDG2042X Arbitrary Waveform Generator.
Runs on Linux and communicates over LAN using the instruments SCPI interface.

Overview

This first public release provides a functional desktop interface for the SDG2042X.
It allows full access to the basic generator functions, presets, ARB manager, sweep, burst, and a SCPI command console.
Data and settings are stored in an editable text file (SDG2042x.dat) for transparency and portability.

Future versions will maybe add:

  • Configurable paths for screenshots and data files
  • More user preferences saved between sessions
  • Extended ARB upload/download handling
  • CLI options beyond IP address
  • UI refinements and better error reporting

Contributions, forks, and suggestions are very welcome (I am more the HW guy, programming is not my finest profession).
If you encounter bugs or have ideas, please send me a mail with description & logs. Help are very welcome!

How It Works

The program uses a simple socket connection (port 5025) to talk SCPI to the SDG2042X.
Each GUI tab corresponds to an instrument feature:

Tab Function
Basic Waveform, frequency, amplitude, offset, phase, output control
Burst Configure burst mode, trigger source, cycles, delay
Sweep Configure linear/log sweeps
ARB Manager List, upload, and download arbitrary waveforms
SCPI CLI Direct SCPI command line
Presets Store and recall up to 10 custom setups

Screenshots are fetched via SCDP and stored as .bmp (or .bin if undecodable).


Command Line Usage

python3 SDG2042X_V0.1.py [options]

Options

  -ip <addr>, --ip <addr>   Prefill IP address in GUI
  -h, --help                Show help message

Example:

python3 SDG2042X_V0.1.py --ip 192.168.1.120

The Preset File SDG2042x.dat

Presets are stored as plain text in key-value form and can be edited manually.
A fresh file is created automatically if missing.

Example:

# SDG2042X presets
SLOT1_NAME=Test 1
SLOT1_BSWV=C1:BSWV WVTP,SINE,FRQ,1KHZ,AMP,1V,OFST,0V,PHSE,0
SLOT1_OUTP=ON
SLOT2_NAME=
SLOT2_BSWV=
SLOT2_OUTP=
...
SLOT10_NAME=
SLOT10_BSWV=
SLOT10_OUTP=

Each slot (110) holds:

  • NAME user label
  • BSWV waveform setup string (as queried from instrument)
  • OUTP output state (ON/OFF)

The GUIs Store button reads back settings from the generator and saves them.
Recall sends those settings back to the SDG2042X.


Requirements

  • Python ≥ 3.7
  • PyQt5
  • LAN-connected Siglent SDG2042X (default SCPI port 5025)

Install dependencies:

sudo apt install python3-pyqt5

License, Contribution and Feedback

Default license: CC-BY-NC-4.0 / Creative Commons Attribution-ShareAlike 4.0 International
You may use, modify, and redistribute with attribution to ToGo-Lab. Feel free to fork, enhance, or suggest features.


Contact

Thomas Gohle
tgohle@togo-lab.io
https://togo-lab.io