Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

DA2ETH Controller

A graphical control application for the Papouch DA2ETH dual-channel D/A converter.
Communicates over Spinel TCP protocol via Ethernet.


Features

  • 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
  • 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

Supported Output Ranges

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.


Requirements

Running from source

  • Python 3.10 or newer
  • PyQt6
  • pyqtgraph

Install dependencies:

pip install PyQt6 pyqtgraph

Run:

python da2eth_controller_V16.py

Running the pre-built executable (Windows)

No installation required. See the Download section below.


Download (Windows executable)

  1. Go to the Releases page
  2. Download the latest DA2ETH_Controller_vX.X.zip
  3. Extract the ZIP to any folder
  4. Run da2eth_controller_V16.exe

⚠️ The translations/ folder must be present in the same directory as the .exe file.
Without it the application will start but display placeholder text instead of labels.


File Structure

da2eth_controller_V16.exe   ← main executable
translations/
    cs.json                 ← Czech (default)
    en.json                 ← English
    de.json                 ← German
    fr.json                 ← French
    es.json                 ← Spanish

Connection

  1. Connect the DA2ETH device to your network
  2. Enter the device IP address (default: 192.168.1.254) and port (10001)
  3. Click Connect

Program Sequencer — Command Reference

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.


Building from Source (Windows)

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.


License

This project is licensed under the GNU General Public License v3.0.
See the LICENSE file for details.


Device

This software is designed for the Papouch DA2ETH D/A converter.
More information: papouch.com


About making program

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.

About

This program serves as a control interface for a Papouch D/A converter. It allows you to control each channel separately, set and change output ranges, control both channels together, or use a simple built-in editor to create a simple program for controlling the output—separately, in parallel, or in dependent mode—and many other useful features.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages