By Simone Panja
Time is invaluable. Once it’s gone, it can’t be recovered. So why spend it waiting for a vacuum to reach 27.5 inches of mercury or “inHg” before manually shutting off a valve when that same time could be spent assembling products or packing orders? That simple question sparked the idea behind building a human-machine interface (HMI) that was not only functional, but intuitive, reducing wasted time and operator error, as well as minimizing the potential for damage.
Design for Simplicity
At Phase Dock, a 16-character x 2-line (1602) LCD screen is used to operate the thermoforming machinery that Chris designed and built. Only six buttons are used to navigate through simple menus to set parameters like run-time and temperature. This compact interface was effective for linebending acrylic, which is a relatively simple manufacturing process. But it was obvious that it wouldn’t work for the vacuum control. Navigating multiple pages with limited input mechanisms can quickly become overwhelming and increase the potential for mistakes.
As we began designing the vacuum control HMI for the CNC machine, it became clear that speed and simplicity would be key. To make the interface as intuitive as possible, we needed to minimize button complexity while supporting fast navigation of multiple screens and configurable settings.
Evolve the Hardware
The solution was to design the CNC HMI around a single rotary encoder with an integrated pushbutton feature. This choice allows users to quickly scroll through options, adjust values, and navigate between pages using one consistent interaction, reducing operator cognitive load while maintaining flexibility.
The final system is built on a 480×320 SPI-driven TFT display, controlled by an ESP32 microcontroller and paired with a CP210x USB-to-serial chip for communication with a computer. Three primary libraries support the HMI’s functionality:
- TFT_eSPI by Bodmer to render the display;
- AiEsp32RotaryEncoder to handle rotary encoder input; and
- Preferences to store user-defined upper and lower pressure limits in non-volatile memory.
The prototype was assembled using a Phase Dock WorkBench, which provided an organized and accessible platform for integrating the hardware components. Since I had limited hardware experience, this setup allowed me to focus on software development and system behavior without being overwhelmed by wiring complexity. The WorkBench also provided a convenient reliable way to transport the project between my home and Phase Dock as I developed and tested the code.

Match the HMI to the Hardware and the Requirements
The main interface page displays two dials: the left dial represents the level of vacuum in the tank, and the right one represents vacuum at the workholding table.

Each dial is designed to visually mimic a physical vacuum gauge, giving operators immediate feedback in a format they already understand. To validate dial behavior during development, I used potentiometers to simulate sensor inputs. The ESP32’s analog-to-digital converter (ADC) reads the potentiometer values and maps them to the appropriate positions on each dial.
To improve clarity and safety, the table pressure dial flashes red when its value drops below a defined threshold (currently hard-coded to 20 inHg).
At the top of the interface, the current compressed air pressure reading is displayed (also currently hard-coded), and when this value falls below the user-defined lower limit, the system indicates that the compressed air valve has been activated.
Pressing the rotary encoder brings the user to a second page, where upper and lower pressure limits can be configured.

This menu design was inspired by a tutorial from The Curious Scientist, who demonstrated an advanced menu system for a 20-character x 4-line (2004) LCD. Users can rotate through selectable fields, press to select or modify values, and view the current compressed air reading and pump status for added clarity.
Returning to the main dial display is as simple as selecting the “Back to Dial” option.
Establish and maintain guiding principles
Throughout the design process, simplicity and practicality remained the guiding principles. The HMI needed to be easy for operators to use while remaining reliable and accurate in its functionality.
In future iterations, I hope to implement an alarm system that detects rapid drops in vacuum pressure, an important safety enhancement that could potentially avert dangerous operating conditions.
In the final post, I’ll summarize the things I learned that will make me a better engineer and more valuable employee.
Becoming a Better Engineer Part One >

