Waveshare Industrial HMI
The Waveshare Industrial HMI is an all-in-one touch display designed for industrial environments. You can use it as a dedicated terminal to run your Heisenware Apps, for example for worker guidance.
This guide explains how to resolve display issues on newer Debian versions and how to configure a resilient 24/7 kiosk terminal.
Display fix for Debian 13 (Trixie)
If you install or upgrade to Debian 13 (Trixie) 64-bit on a Raspberry Pi 5 inside a Waveshare Industrial HMI enclosure, the built-in screen and touch interface might fail to initialize during boot. The internal display remains blank while the external HDMI ports continue to output a signal.
This happens because the newer kernel and Wayland graphics stack in Trixie do not automatically detect the internal MIPI DSI connection without a defined hardware overlay in the boot configuration.
Prerequisites
Ensure you have:
A Raspberry Pi 5 mounted in the Waveshare HMI enclosure.
An external HDMI monitor and a keyboard to complete the configuration.
Root or
sudoaccess to the device.
Configure the DSI overlay
The Waveshare display connects to the Raspberry Pi through the internal DSI port. To activate the screen, touch digitizer, and front-facing camera, add the proprietary device tree overlays (dtoverlay) to the boot configuration file.
Step 1: Access the boot configuration
Connect an external HDMI monitor and boot the device. Open a terminal and edit the firmware configuration file:
sudo nano /boot/firmware/config.txtLegacy configuration path
Older versions of Raspberry Pi OS located this file at /boot/config.txt. Debian Bookworm and Trixie store it strictly in the /boot/firmware/ directory.
Step 2: Add the Waveshare overlays
Scroll to the bottom of the config.txt file and append the specific overlay that matches your screen size.
For the 8.0-inch display:
For the 10.1-inch display:
Step 3: Enable the internal camera (optional)
If your HMI unit features a built-in 5MP front camera, add the following line directly below your display overlay:
Step 4: Save and reboot
Save your changes (Ctrl+O, Enter) and exit the nano editor (Ctrl+X). Reboot the system to apply the new kernel settings:
Troubleshoot the display
If the screen does not turn on after a reboot, verify that the Trixie image includes the necessary compiled overlay file by running:
If the terminal outputs a "No such file or directory" error, download the .dtbo file manually from the Waveshare GitHub repository, place it in the /boot/firmware/overlays/ directory, and reboot the system.
Kiosk setup
Configure your Industrial HMI All-in-one Touch Display (featuring a 10-point touch screen and Wayland display server) to run a resilient, 24/7 fullscreen Progressive Web App (PWA). This setup ensures persistent local storage, hides the mouse cursor for touch optimization, and disables system power-saving features.
Phase 1: Configure system and power settings
Configure the operating system to log in automatically and prevent the display from turning off.
Enable desktop autologin and disable screen blanking: Open the system configuration tool:
Navigate to System options > Boot / auto login > Desktop autologin.
Navigate to Display options > Screen blanking > No.
Exit the tool without rebooting.
Disable hardware console blanking: Prevent the Linux kernel from turning off the display output by editing the command-line configuration:
Append a single space followed by
consoleblank=0to the very end of the existing line of text. Do not create a new line. Save your changes (Ctrl+O,Enter) and exit (Ctrl+X).
Phase 2: Optimize the touch interface
Wayland ignores legacy X11 cursor utilities. To hide the mouse cursor for a touch-only user interface, install a transparent cursor theme.
Download and install the theme:
Set the theme as default:
Add the following lines, then save and exit:
Phase 3: Create the self-healing kiosk script
This script launches the browser, prevents crash-recovery popups while preserving local storage, and restarts the browser automatically if the process exits.
Create the script file:
Add the execution logic: Replace
https://your-specific-url.comwith the actual URL of your App.Make the script executable:
Phase 4: Configure autostart
Hook the script into the Wayland display manager to launch it automatically on boot.
For labwc (Trixie and newer Bookworm):
Phase 5: Reboot the system
Reboot the system to apply all changes:
Last updated
Was this helpful?