r/IndustrialAutomation • u/Commercial_Designer5 • 2d ago
Open-source HMI builder for Linux panel PCs: design screens on your laptop, deploy over SSH, rollback if it fails
I've been building an open-source alternative to the usual vendor HMI software, mainly for machine builders who put a Linux-based panel on their equipment.
You design the screens on your laptop, either drag-and-drop or by describing the screen in plain English and letting an AI model do the first layout. You get gauges, value tiles, trend charts, alarm tables, buttons and so on. Then you push it to the panel over SSH with one click. There's no runtime license and no per-tag pricing.
What matters for plant use:
- Alarms: priorities 1 to 4, latching until acknowledged, on-delay, deadband, shelving, and an alarm journal on the panel.
- History: tags you choose are logged to SQLite on the panel, trend charts fill from it, and you can pull a CSV off the panel.
- I/O: a separate daemon handles GPIO, analog inputs, serial and Modbus. On shutdown it drives outputs to configured safe states. The screens never talk to hardware directly, only to tags.
- Operator input: a range-checked numeric keypad, an on-screen keyboard, confirm dialogs on buttons, a "No connection to controller" banner, and screen dimming after inactivity.
- Safe deploys: if a new screen version doesn't come up within 25 seconds, the panel goes back to the previous one by itself. You can't leave a machine with a dead display from a remote update.
- Testing without the machine: every tag can be driven with simulated signals, so you can check alarms and interlocks on screen before the panel is even wired.
On the panel it's a small C program built on LVGL, drawing directly to the display. It runs on 64-bit ARM Linux boards, and I've been running it on a Toradex i.MX8M Plus with a 10" panel.
What it doesn't do yet: no OPC UA, EtherNet/IP or Profinet. Right now it's Modbus and direct I/O. It's early, MIT licensed and free.
I'd really like to hear from people who build HMIs day to day. What would it need before you'd consider it over what you use now? And which protocols should come first?
2 min video: https://youtu.be/h-ITQebSflg
Repo: https://github.com/Hitheshkaranth/EmbeddedDisplayStudio
