A graphical control application for the Papouch DA2ETH dual-channel D/A converter.
Communicates over Spinel TCP protocol via Ethernet.
- Two independent output channels (OUT1 / OUT2)
- Slider, direct value entry (physical, RAW, percent)
- Step control with configurable step size and origin point
- Smooth sweep (ping-pong loop)
- Quick presets (0 %, 25 %, 50 %, 75 %, 100 %)
- Real-time output graph with CSV export
- Both outputs — synchronous control of OUT1 and OUT2 simultaneously
- Program sequencer for each output
- Commands:
SET,WAIT,RAMP,JUMP,REPEAT,TRIGGER TRIGGER— start or stop the other output's program from within a running program- Real-time waveform graph during program execution
- Save / load programs to files
- Commands:
- Multi-language GUI — Czech, English, German, French, Spanish (switchable at runtime)
- Simulation mode — test programs without a connected device
- Auto-reconnect and communication watchdog
- Communication log with optional packet trace
| Range | Type |
|---|---|
| 0–5 V | Voltage |
| 0–10 V | Voltage |
| 0–20 mA | Current |
| 4–20 mA | Current |
The hardware output range is configured in the DA2ETH web interface.
The software range selector must match the hardware setting.
- Python 3.10 or newer
- PyQt6
- pyqtgraph
Install dependencies:
pip install PyQt6 pyqtgraph
Run:
python da2eth_controller_V16.py
No installation required. See the Download section below.
- Go to the Releases page
- Download the latest
DA2ETH_Controller_vX.X.zip - Extract the ZIP to any folder
- Run
da2eth_controller_V16.exe
⚠️ Thetranslations/folder must be present in the same directory as the.exefile.
Without it the application will start but display placeholder text instead of labels.
da2eth_controller_V16.exe ← main executable
translations/
cs.json ← Czech (default)
en.json ← English
de.json ← German
fr.json ← French
es.json ← Spanish
- Connect the DA2ETH device to your network
- Enter the device IP address (default:
192.168.1.254) and port (10001) - Click Connect
| Command | Syntax | Description |
|---|---|---|
SET |
SET <value> <unit> <range> |
Set output to a fixed value |
WAIT |
WAIT <seconds> s |
Wait for the specified time |
RAMP |
RAMP <from> <u> <to> <u> <step> <u> <ms>ms <range> |
Smooth transition from one value to another |
JUMP |
JUMP <line> <count> x |
Jump to a program line N times |
REPEAT |
REPEAT <count> x |
Repeat the entire program N times (0 = infinite) |
TRIGGER |
TRIGGER <OUT> <START|STOP> <line> <PARALLEL|WAIT> |
Start or stop the other output's program |
Lines starting with # are treated as comments and ignored.
Install PyInstaller:
pip install pyinstaller
Build:
pyinstaller --onedir --windowed da2eth_controller_V16.py
Copy the translations/ folder into dist/da2eth_controller_V16/.
The distributable package is the entire dist/da2eth_controller_V16/ folder.
This project is licensed under the GNU General Public License v3.0.
See the LICENSE file for details.
This software is designed for the Papouch DA2ETH D/A converter.
More information: papouch.com
Unfortunately, I’m not an experienced programmer—to be honest, I’m a complete novice—but I’m eager to learn, so after coming up with the idea for this program, I decided to use VibeCoding, which is so widespread these days, with the help of Claude AI. It was a thorny and arduous journey, but all the ideas are mine; Claude created the program itself, which we subsequently modified based on my testing and observations.