This repository contains the hardware designs, 3D printed parts, and firmware for the MaraX Evolution Human-Machine Interface (HMI).
Designed to replace the standard LEDs and switches of the Lelit Mara X, this unit provides a rich touchscreen interface, real-time extraction charting, and a physical rotary encoder for tactile control. It communicates wirelessly with the Main Controller via ESP-NOW, ensuring a low-latency, wire-free installation.
-
Real-Time Charting: Live visualization of Pressure (bar) and Flow Rate (g/s) during the shot.
-
Live Telemetry: Monitors Boiler Temp, HX Temp, Shot Timer, and Weight.
-
System Status: Clear indicators for Heating, Ready, Steam Boost, and Error states.
-
Profile Editor: Built-in Web Server to create, edit, and save complex pressure/flow profiles graphically from your phone or PC.
-
Profile Management: Store up to 32 custom profiles on the device.
-
Manual Control: "Fly-by-wire" manual mode using the rotary encoder to control pump pressure/flow in real-time.
-
Configuration: Adjust PID targets, brew temperatures, and steam settings directly from the screen.
-
Scale Calibration: On-screen wizard to tare and calibrate the MaraX Evolution Scale.
-
Cleaning Assistant: Guided backflush/cleaning cycles with on-screen instructions.
-
Auto-Pairing: Seamlessly pairs with the Main Controller via ESP-NOW protocol.
-
HMI/: Nextion Editor source files (.hmi), compiled binaries (.tft), and asset generation scripts. -
firmware/: PlatformIO project for the HMI controller (ESP32). -
hardware/: STL files for the 3D printed housing and mounting brackets.
The HMI consists of:
-
Microcontroller: Arduino Nano ESP32 (handling Logic, WiFi, Web Server).
-
Display: Nextion Edge Series (NX4848E028-011C).
-
Input: Rotary Encoder and Push Button (for precise adjustments).
-
Housing: Custom 3D printed enclosure.
The firmware is built using PlatformIO.
- Install VSCode and the PlatformIO extension.
- Open the
firmwaredirectory in PlatformIO.
For the first installation, you must connect the ESP32 directly to your computer.
- Connect the ESP32 via USB.
- Select the default environment (
env:hmi) in PlatformIO. - Click the Upload button (Right Arrow icon).
Once the HMI is installed in the machine and connected to your WiFi, you can update it wirelessly.
- Ensure your computer and the HMI are on the same WiFi network.
- Select the ota environment (
env:hmi-ota) in PlatformIO. - Click Upload. PlatformIO will detect the network port and flash the device over the air.
The HMI firmware is designed to run on an Arduino Nano ESP32.
-
WiFi Setup: On first boot, the HMI will create a WiFi Access Point (AP) named
esp32-arduino-screen-Setup. Connect to it to configure your home WiFi. -
Web Interface: Once connected, access the Profile Editor at
http://esp32-arduino-screen.local(or the device IP). -
Pairing: The HMI automatically broadcasts an ESP-NOW pairing request. Ensure the Main Controller is powered on; they will find each other automatically.
This project is dual-licensed to protect the work while allowing for personal study and modification.
-
Firmware: The source code located in the
/firmwaredirectory is licensed under the PolyForm Noncommercial License 1.0.0. You may modify and use it for personal projects, but commercial use is prohibited.- Third-Party Libraries included: Modified versions of Nextion_X2 (MIT).
-
Hardware: The hardware designs, schematics, and 3D models located in the
/HMIand/hardwaredirectories are licensed under the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) license.
Please see the LICENSE file for the full legal text.
Part of the MaraX Evolution Ecosystem.
