Files
0003-SDG2042X-PyQt-GUI-for-…/README.md

120 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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:
</br>
| 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
```bash
python3 SDG2042X_V0.1.py [options]
```
**Options**
```
-ip <addr>, --ip <addr> Prefill IP address in GUI
-h, --help Show help message
```
Example:
```bash
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:
```text
# 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:
```bash
sudo apt install python3-pyqt5
```
---
## License, Contribution and Feedback
**Default license:** [CC-BY-NC-4.0 / Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc/4.0/)
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](mailto:tgohle@togo-lab.io)
[https://togo-lab.io](https://togo-lab.io)