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 script.
In its current state, the script lets you:
- Select waveform, amplitude, frequency, and DC offset
- Run sweeps, bursts, or arbitrary waveforms
- Save and recall up to 10 presets (you can also recall directly from the generator)
- Use the ARB Manager to download waveforms from the generator or upload new ones (not fully tested yet!) — it also shows the waveforms currently stored
- Send direct SCPI commands through a built-in CLI
- Grab screenshots from the generator display (saved in the same directory as the script)
Use it as-is or tweak it for your own setup. Programming in Python and PyQt5 isn’t my main profession — I’m more of a hardware guy — so if you try it and find bugs (there will be some), I’d love to hear from you.
Script source and details: ToGo-Lab Git Repository
The program talks to the SDG2042X over a simple socket connection on port 5025 using SCPI commands.
You can call the script with the -ip
parameter (try also --help
). This is handy if you launch it via a .desktop
file.
The functions are straightforward, so there’s no detailed documentation yet. I hope most of the features are self-explanatory. Each GUI tab covers one main function. See more details in the Gitea repo:
- Basic – waveform, frequency, amplitude, offset, phase, and output control
- Burst – configure burst mode, trigger source, cycles, and delay
- Sweep – set up linear or logarithmic sweeps, start/stop frequency
- ARB Manager – list, upload, and download arbitrary waveforms (still experimental)
- SCPI CLI – the command-line interface for direct SCPI communication
- Presets – store and recall up to 10 custom setups; presets are saved in a text-based
.dat
file. This tab is especially useful — you can adjust settings directly on the generator, then read them back and save them as presets. The file is easy to edit manually if needed.
You can take screenshots at any time. They’re stored as .bmp
files in the working directory, with the date and time included in the filename.

