Skip to content
robin-cachy edited this page Jun 10, 2026 · 5 revisions

open-EE-workbench Wiki

A non-proprietary, cross-compatible VISA toolset for automating the modern electronic engineering workbench.

Built on PyVISA and PyVISA-py with SCPI dialect coverage across 69 instrument families from 15 vendors — Keysight, Rigol, Rohde & Schwarz, Tektronix, Siglent, Agilent, and more.


Setup

1. Clone and install

git clone https://github.com/kerstensrobin/open-EE-workbench
cd open-EE-workbench
python install.py

install.py installs all required Python packages and, on Linux, creates a .desktop launcher so the app appears in your application menu.

Required packages (installed automatically): pyvisa, pyvisa-py, pyusb, pyserial, flask, flask-socketio, pywebview

Optional (prompted during install):

  • zeroconf — enables mDNS / LAN instrument discovery

2. Linux: USB permissions

On Linux, USBTMC devices (scopes, AWGs, PSUs over USB) need a udev rule so PyVISA-py can access them without root:

python core/nachoVisa.py --fix-udev

Re-plug your USB instruments after running this. You only need to do it once.

If you run the GUI first and hit permission errors, the scan window has a Fix udev permissions button that shows the exact command to run.

3. Scan your bench

python core/nachoVisa.py

This queries every USB and LAN VISA instrument it can find, identifies them against the eewBackbone database, and saves the result as a workbench file in workbenches/. You name the workbench (e.g. lab_desk, portable_rig) and it becomes the active workbench used by all scripts and the GUI.

Common options:

python core/nachoVisa.py --usb-only                # skip LAN scan
python core/nachoVisa.py --host 192.168.1.50       # probe a specific IP
python core/nachoVisa.py --subnet 192.168.1.0/24   # scan a subnet
python core/nachoVisa.py --save my_lab             # save without prompting
python core/nachoVisa.py --debug                   # verbose output

You can also scan from the GUI: any tab has a Scan button in the nav bar that opens the scan window.

Instrument scan window

4. Launch the GUI

./open-eew                      # Linux / macOS — native PyWebView window
./open-eew --browser            # open in system browser instead
./open-eew gu128desk            # pre-load a named workbench
open-eew.bat                    # Windows

Or directly:

python app.py
python app.py --browser
python app.py --port 5173       # use a different port

5. Switch workbenches

python core/nachoVisa.py --set-active my_other_lab

Or use the workbench selector dropdown in the GUI nav bar.


Pages

Page Contents
eewBackbone SCPI command database: structure, inheritance, adding new instruments
Workbench and Instruments Workbench files, instrument roles, GUI workbench tab, manual assignment
CLI nachoVisa.py, setWorkbench.py, and standalone scripts
GUI - Automation Built-in parametric tests: DC sweep, PSU interrupt, AC sweep, DMM logger
GUI - Plot Specific Datasheet-style plots with live canvas — IV Curve, Transfer Characteristic
GUI - Sandbox Build custom tests with the column-based pipeline editor
About Testing Engineering context for every test: what it measures and when to use it

Clone this wiki locally