HMI on Raspberry Pi: Turn a $60 Computer Into an Industrial Touchscreen
Dedicated HMI panels cost hundreds to thousands of dollars. A Raspberry Pi 5, a touchscreen, and a web dashboard cost a fraction of that — and for monitoring-focused HMIs, they do the same job. The catch is reliability: an operator panel has to boot into the dashboard, survive power cuts, and never drift into the desktop.
This guide covers the two parts of a Pi HMI: what runs the dashboard and how to make it behave like an appliance.
Two Ways to Run an HMI on a Pi
1. The Pi serves the dashboard
The Pi runs a small web server and serves the HMI page over the LAN. Operators open it in any browser — or a kiosk browser full-screened on a touch monitor. This is the classic "web HMI" deployment and the easiest to maintain: update the file on the Pi, and every screen refreshes.
2. The Pi is the operator station
The Pi has a touchscreen attached and runs a full-screen kiosk browser pointed at the dashboard. The operator never sees a desktop — they see the HMI, all day, every day. This is the setup that replaces a dedicated HMI panel.
For a single-file web HMI, both patterns use the same artifact: one HTML file that connects to the PLC over WebSocket.
Hardware You Actually Need
| Component | Recommendation |
|---|---|
| Board | Raspberry Pi 4 or 5 (Pi 5 is noticeably snappier for big dashboards) |
| Display | Official 7" touchscreen, or any HDMI monitor + USB touch overlay |
| Power | Official PSU, ideally on a small UPS or at least a surge protector |
| Storage | A quality SD card or SSD; SSDs are dramatically more power-cut-tolerant |
| Network | Wired Ethernet — do not run a plant panel on Wi-Fi if you can help it |
Making It Kiosk-Ready
A dashboard that boots into a web page is 90% of the way there. The last 10% is making it boringly reliable:
- Auto-start the kiosk browser on boot — a systemd service launches the browser full-screen, pointed at the dashboard URL (or the local file).
- Disable the desktop chrome — no taskbar, no cursor after idle, no Alt-Tab. Kiosk mode flags in the browser handle most of this.
- Add a watchdog — if the browser crashes, a watchdog restarts it. If the Pi hangs, a hardware watchdog (or a cron job poking a GPIO) reboots it.
- Prevent screen sleep — the panel must never go black mid-shift. Disable DPMS and screen blanking.
- Read-only root (optional) — for the paranoid: an overlay filesystem means power cuts can't corrupt the OS.
Reality check: SD cards are the #1 failure point of Pi panels. A dashboard that writes logs constantly will wear out a cheap card in months. Use an SSD, or at minimum a high-endurance card, and keep writes off the card.
Connecting to the PLC
The dashboard connects to the PLC over the plant network. Two rules matter:
- Keep the PLC traffic on the OT network. The Pi can have two interfaces — one to the PLC subnet for data, one to the office LAN for the dashboard — but the simplest secure setup is one isolated network where the panel, PLC, and any gateways live together.
- Never expose the PLC port to the internet. If you want remote visibility, expose a read-only view through a VPN or a separate service — not the raw PLC port.
If the PLC does not speak WebSocket directly, a gateway on the network translates its protocol (Modbus, S7, EtherNet/IP, OPC UA) into the variable feed the dashboard consumes.
Is a Pi Good Enough for Production?
For monitoring and operator interaction — yes. A Pi 5 renders dashboards, gauges, and charts without breaking a sweat, and a well-configured kiosk boots into the HMI in under a minute.
For safety-rated control — no. The browser is not a certified safety layer. E-stops and interlocks belong in hardwired circuits, exactly as they do with any other HMI.
For harsh environments — check the operating range. A consumer Pi in a 50 °C cabinet next to a molding machine will not last. Industrial panel PCs exist for a reason; a Pi HMI wins on cost, not on environmental ratings.
Voltrus HMI + Raspberry Pi
Voltrus HMI was built for exactly this deployment. You design the dashboard on your Mac — gauges, buttons, charts, alarm banner — bind widgets to PLC variables, and deploy to a Raspberry Pi 5 with one click. The included Pi agent serves the dashboard on port 8080 with versioning and rollback, so updating a screen is a redeploy, not a re-image.
Deploy Your First Pi HMI
Voltrus HMI builds single-file dashboards and pushes them straight to a Raspberry Pi 5. Kiosk mode, PIN roles, and multi-language screens included.
Explore Voltrus HMI →