Skip to content


Repository files navigation

GitHub release license liberapay Downloads

Ownership and License

The contributors are listed in CONTRIB.TXT. This project uses the GPL v3 license, see LICENSE.TXT. EEZ Studio uses the C4.1 (Collective Code Construction Contract) process for contributions. To report an issue, use the EEZ Studio issue tracker.



EEZ Studio is a free and open source cross-platform low-code visual tool for desktop and embedded GUIs. Built-in EEZ Flow enables the creation of complex scenarios for test and measurement automation, and the Instruments feature offers remote control of multiple devices and T&M equipment including EEZ BB3 T&M chassis and EEZ H24005 programmable power supply and any other T&M devices that support SCPI from manufacturers such as Keysight, Rigol, Siglent, etc.

EEZ Studio Project

EEZ Studio Project

  • Modular visual development environment for designing TFT display screen decorations and defining user interaction (embedded GUI)
  • Generate C++ code for embedded GUI functionality that can be directly included in STM32CubeIDE for BB3 and other STM32 target platforms or Arduino IDE for H24005 and other Arduino compatible target platforms
  • Instrument definition file (IDF) builder with context sensitive SCPI commands help (based on Keysight’s Offline Command Expert command set XML structure) suitable for EEZ Studio Instrument and Keysight Command Expert
  • SCPI command help generator based on bookmarked HTML generated directly from .odt file using EEZ WebPublish extension for OpenOffice/LibreOffice.
  • LVGL (Light and Versatile Graphics Library) support
  • Project templates (using repositories) and comparison of projects
  • Drag&drop editor for creating instrument's desktop dashboard (for remote control and management)
  • Flowchart based low-code programming for desktop dashboard


EEZ Studio Instrument

EEZ Studio Instrument

  • Dynamic environment where multiple instruments can be configured and easily accessed
  • Session oriented interaction with each SCPI instrument
  • Serial (via USB), Ethernet and VISA (via free R&S®VISA) T&M instrument interfaces support
  • Direct import of EEZ Studio generated IDFs and Keysight’s Offline Command Expert command sets
  • IEXT (Instrument EXTension) catalog with growing number of supported instruments (Rigol, Siglent, Keysight, etc.)
  • History of all activities with search/content filtering
  • Quick navigation via calendar ("heatmap") or sessions list view
  • Shortcuts (hotkeys and buttons) that can be user defined or come predefined from imported IDF. The shortcut can contain single or sequence of SCPI commands or Javascript code.
  • Javascript code for task automation (e.g. logfile, or programming list upload/download, etc.) can be also assigned to the shortcut
  • SCPI commands context sensitive help with search
  • File upload (instrument to PC) with image preview (e.g. screenshots)
  • File download (PC to instrument) automation for transferring instrument profiles
  • Simple arbitrary waveform editor (envelope and table mode)
  • Displaying measurement data as graphs
  • FFT analysis, harmonics and simple math functions (Period, Frequency, Min, Max, Peak-to-Peak, Average)
  • Export graphs as .CSV file

New functionality is under development thanks to the sponsorship of the NGI0 PET and NGI0 Entrust funds from NLnet. The following milestones have been achieved so far:

  • M1 - Visual editor
  • M2 - Interpreter for PC
  • M3 - Interpreter for BB3
  • M4 - Debugger for PC
  • M5 - Debugger for BB3
  • M6 - EEZ flow engine unification
  • M7 - Multilanguage support in project
  • M8 - Widgets advanced control
  • M9 - Project templates
  • M10 - integration
  • M11 - New EEZ Flow extensions
  • M12 - LVGL integration
  • M13 - Standalone Flow dashboard
  • M14 - Home page modifications and enhancements
  • M15 - Enhancements (more examples, extension manager, MQTT)
  • M16 - Online help, enhancements, bug fixing for “Actions”
  • M17 - Online help, enhancements, bug fixing for “Widgets”


64-bit OS is required in all cases.


Depending on your linux distribution, choose one of the listed packages (.deb, .rpm) and start the installation using the associated installer. In addition, there is a self-executing .AppImage version that, after downloading, needs to enable the Allow executing file as program under file Permissions before starting it. If you encounter a problem running the .AppImage version on your Linux distribution, try running it using the --no-sandbox option, i.e. ./EEZ-Studio-[version].AppImage --no-sandbox


Download, unpack and move to Applications.


Download and start EEZ_Studio_setup.exe.


The Nix flake provides a derivation for EEZ Studio or an overlay that provides that derivation. It can be used to install the project using Nix package manager.

Build and run from source (all operating systems)

Only Linux:

sudo apt-get install build-essential libudev-dev libnss3

Only Raspbian:

Install Node.js 16 and npm on Raspberry Pi:

sudo apt-get install build-essential libudev-dev libopenjp2-tools ruby-full
sudo gem install fpm

All platforms:

git clone
cd studio
npm install
npm run build

Start with:

npm start

Create distribution packages (except MacOS and Raspbian):

npm run dist

On MacOS:

npm run dist-mac-arm64


npm run dist-mac-x64

On Raspbian:

npm run dist-raspbian


To build:

nix build 'github:eez-open/studio'

To start:

nix run 'github:eez-open/studio'


The USB TMC driver must be installed if you want to access the T&M instrument using the USB-TMC interface from EEZ Studio Instrument section.


Download and start Zadig. Select your device, select libusb-win32 and press "Replace Driver" button:



You will probably need to add your Linux account to the usbtmc group before you can access the instrument using EEZ Studio. Connect your instrument with a USB cable and turn it on. Wait until booting is complete. Now check the instrument group name by entering the following command:

ls -l /dev/usbtmc*

In case it is root, enter the command:

sudo groupadd usbtmc

Now, add your account () to the group:

sudo usermod -a -G usbtmc <username>

A reboot is required. After that, the gid of /dev/usbtmc0 should be set to usbtmc and you are ready to use your instrument via USB-TMC interface.


Q: Where is the database file by default? A: Depending on the operating system, it can be:

  • Linux: ~/.config/eezstudio/storage.db
  • Mac: ~/Library/Application\ Support/eezstudio/storage.db
  • Windows: %appdata%\eezstudio\storage.db

The default created database as well as its location can be changed later through the options in the Settings section of EEZ Studio.

Q: Where are the IEXTs (Instrument EXTensions) used to access T&M instruments stored? A: Depending on the operating system, it can be:

  • Linux: ~/.config/eezstudio/extensions
  • Mac: ~/Library/Application\ Support/eezstudio/extensions
  • Windows: %appdata%\eezstudio\extensions