Skip to content

About

Describe, draw or bring your own HMI screen and ship it to embedded Linux panels: a desktop Studio with AI Design and a coding agent, a Qt-free C + LVGL panel runtime, and atomic SSH deploys with automatic rollback. PySide apps deploy too, with their Qt runtime installed on demand.

Resources

Stars

18 stars

Watchers

0 watching

Forks

Repository files navigation

EmbeddedDisplay Studio

Describe it. Design it. Wire it. Ship it to the glass.

A desktop studio for embedded Linux HMI panels — an AI designer, a canvas the size of the panel,
a coding agent that wires your PLC, and one-click deploys to a 1.4 MB C + LVGL runtime that rolls itself back.

Release CI License Presented at the Berkeley x DeepMind Hackathon

Python Runtime AI Yocto

Quick start  ·  Features  ·  How it works  ·  Guide  ·  Changelog


One brief to a running metro cab display: AI design, Designer finish, Modbus wiring by the agent, deploy, and the live panel

One sentence to a running Namma Metro Purple Line cab display on a real Toradex panel — every step inside the Studio.


Note

Presented at the Berkeley × DeepMind Hackathon

EmbeddedDisplay Studio was presented at the Berkeley × DeepMind Hackathon: a brief described in plain words, designed by AI, wired to the hardware and deployed to a real embedded panel — live, from one desktop app.


Features

AI Design generating a cab display from a brief

AI generates the UI

Describe the screen in plain words. The model plans the content; a deterministic compiler lays it out for the panel's glass — including a full train cab display from one brief.
Finishing the AI's screen in the Designer

Edit it in the Designer

The AI's screen is an ordinary design. Edit text, drop in logos, bind tags, set alarms and actions — then Tidy up re-lays the page.
The coding agent mapping every tag to a Modbus register

A coding agent wires the hardware

The IDE's agent maps every value to a Modbus register on your PLC, rebinds the design and proves it with the hardware daemon's self-test.
Deploying to the panel and mirroring it live

Deploy with rollback

Validate, upload, checksum, atomic swap. If the screen does not render within 25 s the panel rolls itself back. Mirror the live glass in the Studio.
The real 10.1-inch panel running the cab display
The deployed design on the real 10.1" panel, driven by the bench simulator.

Also in the box

  • The panel's own renderer, everywhere — canvas and previews are drawn by the same C runtime that runs on the glass, so what you see is what ships.
  • 52 widgets — industrial, avionics, automotive, rail and animated GIFs (speed arc, station line, train consist…), each in QML and in C. Save any group as a custom widget.
  • Simulate without hardware — Tag Lab waveforms, and tagsim flies a whole aircraft or runs a train between stations so every reading agrees.
  • Operator runtime — expression bindings, action lists with confirm, alarm priorities, latching and shelving, history, keypad, screen idle.
  • Bring your own Qt app — PySide6 and PySide2 applications deploy too; the Studio installs their runtime on demand.

How it works

The Studio edits and previews a design and deploys it over SSH; on the panel, hmi-ui draws it and hmi-hwd owns the hardware
Layer Owns
1 hmi-hwd — hardware daemon (C) GPIO, ADC, serial, Modbus TCP/RTU, CAN, USB/HID, I2C/SPI sensors, history, safe states
2 hmi-ui — panel runtime (C + LVGL, DRM/KMS) the design file, bindings, alarms, pixels
3 deployment atomic install, health check, rollback

Widgets never touch hardware: they bind to tags that arrive over a loopback socket (the contract).

Quick start

Tip

No hardware needed: the daemon simulates its I/O and Tag Lab drives any tag a design invents.

Packaged — download the Windows or Linux build from the latest release. Nothing to install.

From source (Python 3.12):

python -m pip install -r requirements.txt
python main.py

A panel (once, over SSH, no reflash):

ssh-copy-id root@<panel-ip>
python deploy/provision_panel.py --host <panel-ip>

Then: Design → AI Design, describe the screen → Simulate → connect the panel from the device chip → Deploy.

Documentation

The guide The Studio's modes, AI Design, Code, deploying, the runtime, bundles, architecture, hardware
Contract Wire protocol, bundle format, filesystem layout, reliability rules
AI layout compiler How a brief becomes a screen
Code IDE and agent The Code mode and its opencode agent
Hardware daemon and tagsim hmi-hwd, Modbus, the historian and the bench simulator
Changelog Every release
Screenshots
Design mode

Design

Simulate mode

Simulate

Code mode

Code

Deploy mode

Deploy

What's new in 0.1.4

Design from a picture
Attach a screenshot or mock-up to the AI Design brief: the screen comes back laid out the way the picture is, in its colours, with its main picture cut in.
Cockpit widgets and moving pictures
A vertical gear rail, six-tyre pressures, coloured dials and vitals bars, status-strip icons, and ShAnimatedImage playing a GIF on the panel.
A hardware daemon in C
hmi-hwd drops Python: GPIO, ADC, serial, Modbus TCP/RTU, CAN, USB and HID devices, I2C/SPI sensors and the historian, same wire protocol.

MIT licensed — see LICENSE. LVGL and Tabler Icons are MIT; the packaged Studio carries PySide6 and Qt, unmodified, under the LGPL-3.0.

FLYVI TECHNOLOGIES · EMBEDDED DISPLAY ENGINEERING

About

Describe, draw or bring your own HMI screen and ship it to embedded Linux panels: a desktop Studio with AI Design and a coding agent, a Qt-free C + LVGL panel runtime, and atomic SSH deploys with automatic rollback. PySide apps deploy too, with their Qt runtime installed on demand.

Resources

Stars

18 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages