As part of rebuilding my electronics test bench for future projects at ToGo-Lab, I wanted a simple way to control my Siglent SDG2042X remotely from my Ubuntu box. So I wrote a small PyQt5 GUI.
The script lets you:
- Adjust waveform, amplitude, frequency, and offset
- Run sweeps, bursts, or arbitrary waveforms
- Save and recall up to 10 presets, you also can recall from the generator.
- ARB Manager let you download wave forms from the generator and upload also new ones (not fully tested yet!).
- Send direct SCPI commands
- Grab screenshots from the generator display (stored in the same directory as the script — this will change in a future version)
It’s open, editable, and meant to be shared.
Programming Python and with PyQt5 isn’t my main profession — I’m more of a hardware guy — so if you try it and find bugs (there will be ones, script not fully tested yet), I’d love to hear from you.
Script source and details: ToGo-Lab Git Repository
Overview
This first public release (v0.1) 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 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 welcome.
If you find a bug or have ideas, please open an issue or submit a pull request.
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).

