Better Than Cake: Web HMI with Raspberry Pi

Web HMIs represent the technologically most modern form of HMI technology as they have the full scope of web technology available like responsiveness, video and audio capabilities, multi-user interfaces, and the ability to access those systems worldwide through the network.

Since its inception in 2012 the Raspberry Pi has grown to a huge ecosystem with many additional capabilities being developed – both in hardware and software. It initially started as a system for hobby users and people who wanted to start learning computer programming just like in the good old days of home computers in the 1980s.

The system has been created by the non-profit Raspberry Pi Foundation which aims to “put the power of computing and digital making into the hands of people all over the world”.

With the release of the Compute Module in 2014 the Raspberry Pi Foundation made it possible to integrate the full power of the Raspberry Pi into professional systems for usage in industrial environments and embedded systems such as Internet of Things (IoT) devices – and IIoT devices of course.

And from then on it did not only grow in the personal user space but also in the professional and industrial environment with many vendors offering embedded systems “Powered by Raspberry Pi”.

These are the main features of the Raspberry Pi

  • 32- and 64-Bit operating systems available (Raspberry Pi OS, Ubuntu, ArchLinux, FreeBSD, Windows 10 IoT Core and many more)
  • Standardized hardware based on ARMv7/ARMv8 architecture
  • 512MB RAM up to 8 GB RAM
  • Huge software archive, especially open-source software
  • Many hardware addons available (but not for the Compute Module as it does not feature a GPIO port)
  • High number of already answered questions because of the large community online

So why not use a web HMI powered by Raspberry Pi? Or better – why not use WebIQ on a Raspberry-Pi-powered system?

WebIQ – Your HMI on a Raspberry Pi

WebIQ is available for Raspberry Pi as well (32 and 64 Bit) and we only officially support WebIQ on a 32-Bit Raspberry Pi system currently, but in general it also works on a 64 Bit Raspberry Pi OS and Ubuntu on Raspberry Pi.

It should also work on other ARM-based systems, however due to the sheer amount of different and custom-built ARM-based systems we ask for your understanding that we cannot currently test WebIQ on all of these systems.

But then again – you can test it on your own ARM-based system yourself as you can download WebIQ for Raspberry Pi straight from the download area for free. This version is limited to 30 items and one client – but we think that this is surely enough for testing if WebIQ works on your system and meets your requirements.

Let’s Test a Simple OPC-UA Web HMI App

To test WebIQ on a Raspberry Pi for demonstration purposes I used the first Raspberry Pi version (1) that was launched in 2012 which has only 512 MB of RAM.

I have created a simple app in WebIQ Designer that uses 25 OPC UA items from the PLC that reflect actual sensor values:

The (virtual) RAM usage for WebIQ Server 2.9 looked like this (tested on Raspberry Pi OS (buster)):

  • ~10 MB RAM without any app loaded
  • ~120 MB RAM with a non-OPC-UA app (only internal items)
  • ~230 MB RAM with an OPC UA app

With this RAM usage my simple app would surely run on the Raspberry Pi 1 (remember: the original version with only 512 MB RAM) as a server – not for any kind of display attached directly to the Raspberry Pi.

But without going into identifying the technical requirements – this would be a good topic for another blog post – you can see that my app runs fine even on the very first Raspberry Pi.

Now imagine what would be possible if you were using a Raspberry Pi 4 with 8 GB of RAM (or the corresponding Compute Module in an Industrial PC)!

But What About the Browser?

If you want to use a browser for displaying your HMI on such a system with an attached touchscreen you would have to enable the desktop environment as well – so not only console access but the Linux desktop similar to the Windows desktop with the mouse-controlled interface. Also, using the built-in Chromium browser (the open-source version of Google Chrome) is recommended as it is constantly opimitzed for the hardware by the Raspberry Pi Foundation when using the original Raspberry Pi OS.
That might be different on Industrial PCs.

However, by doing a few tests you will soon find out that the browser alone might take up to 1 GB of RAM (browsers are heavyweights) which will soon lead you to the conclusion that you should use a Raspberry Pi (-powered system) that has at least 2 GB of RAM – the more the better – if you want to also show the HMI directly on a screen attached to the Raspberry Pi.

As none of the systems prior to version 4 have more than 1 GB of RAM only starting with version 4 you should be able to use a browser as well for displaying your HMI straight from the Raspberry Pi.

However, if you just want to use a Raspberry-Pi-powered system for the WebIQ Server then using an Industrial touch-screen PC for running the browser and displaying the HMI would be the best option.

I hope that this article gave you some information on running WebIQ on a Raspberry Pi.

So why not try WebIQ yourself now for free? Of course also for Windows!