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 →