Skip to the content
PCBKitNew board
2 layers69 × 54 mmController board, the printed circuit board in 3D

Controller board

andia89/MaraXEvolution6

This repository contains the hardware design and firmware for the MaraX Evolution main controller board. This project is designed to replace the stock controller of the Lelit Mara X espresso machine, adding advanced…

Size
69 × 54 mm
Copper layers
2
Thickness
1.6 mm
Parts
75
Nets
73
Pads
221
Tracks, vias
548, 72
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
25 Dec 2025
Updated
28 Sep 2026

Overview

Controller board is an open-source printed circuit board by andia89, from the andia89/MaraXEvolution repository on GitHub. It is a 2-layer board of 69 × 54 mm with 75 parts on 73 nets, routed with 548 tracks and 72 vias.

It is built around the ADS1115IDGS, AQV212 and IE092503-1, with the LM4050AEM3-3.0+T and BSS138 among its other parts. Its parts include 40 resistors, 13 capacitors, 10 connectors, 5 ICs and 4 transistors. It belongs with the ESP32 and AVR (ATmega, ATtiny) boards of this library.

Main components

5

README

README.md

MaraX Evolution - Main Controller

License Platform Status

Screenshot

Videos

Pressure profiling with a blind flange. The pressure follows a complicated profileReal shot with the custom Controller. The profile is set to produce a flat 9bar shot that stops at 40g (since the valve is not closed by the lever there will always be some additional coffee coming out after the pump stopped). As one can see the pressure neatly follows the 9bar (at one point I adjusted with the flow control paddle so that is when the pressure dropped). The grind was way to fine for this shot :D

This repository contains the hardware design and firmware for the MaraX Evolution main controller board. This project is designed to replace the stock controller of the Lelit Mara X espresso machine, adding advanced features such as PID temperature control, pressure profiling, weighing scale integration, and WiFi connectivity.

Features

Core Control

  • Hybrid Thermal Control: Utilizes a custom Feed-Forward + PID algorithm (feedForwardHeater) that estimates heat loss based on ambient vs. boiler temperature, offering better stability than standard PIDs.
  • Dual-PID Architecture: Dedicated PID loops for Temperature (Boiler/HX) and Pump (Pressure/Flow).
  • Smart State Machine: Manages states including COOLING_FLUSH, STEAM_BOOST, and STANDBY.
  • Performs all tasks the original Lelit MaraX machine does as well (boiler refill, water tank presence detection, relay activations etc...)

Profiling & Extraction

  • Pressure Profiling: Real-time pump dimmer control via Zero-Cross detection.
  • Flow Profiling: (Requires MaraX Evolution Scale) Target specific flow rates (g/s) using Kalman-filtered weight data.
  • Gravimetric stopping: (Requires MaraX Evolution Scale) Stop the shot after a set amount of time or when a certain weight is reached
  • Advanced Profiles: Supports manual control, flat 9-bar shots, or complex JSON-based profiles (Ramped or Stepped).

Integration & Connectivity

  • WiFi & MQTT: Full smart home integration. Reports sensors (boiler_temp, pressure, weight) and accepts commands remotely.
  • Telnet CLI: Built-in command-line interface for debugging and calibration over WiFi.
  • ESP-NOW HMI: Low-latency connection to the optional MaraX Evolution HMI.
  • OTA Updates: Update firmware wirelessly without opening the machine.

Maintenance

  • Automated Cleaning: Built-in backflush program (CLEANING_START -> CLEANING_PUMPING -> PAUSE).
  • Scale Calibration: Integrated wizard for taring and calibrating the load cell.

Repository Structure

  • controller_board/: KiCad v6 hardware design files (schematics, PCB layout, and fabrication files).
  • firmware/: PlatformIO project source code for the ESP32-based controller.

Hardware Assembly

  1. PCB Fabrication: Use the Gerber and Drill files provided in controller_board/jlcpcb/production_files/ to order the PCB.
  2. Assembly: Solder the components according to the BOM (BOM-controller_board.csv). The board features an Arduino-Nano ESP32 compatible footprint. See Assembly for details
  3. Installation: Replace the existing Mara X controller with this board, ensuring all connections (sensors, pump, heating element) are mapped correctly.

Firmware Compilation

The firmware is modular. You can enable/disable hardware features via platformio.ini build flags:

cpp
build_flags = 
    -D HAS_PRESSURE_GAUGE
    -D HAS_SCALE
    -D HAS_SCREEN

The firmware is built using PlatformIO.

  1. Install VSCode and the PlatformIO extension.
  2. Clone this repository.
  3. Open the firmware folder in PlatformIO.
  4. Configure platformio.ini if necessary (e.g., to select specific build environments or upload ports)
  5. Click the Build icon (checkmark) to compile.
  6. Connect your Arduino Nano ESP32 board via USB and click Upload (select env:firmware build environment).
  7. For subsequent uploads OTA should be enabled (you might have to adjust IP-address in platformio.ini) and selecting the env:firmware-ota environment

User Guide

Parts list

Assembly instructions

Support me

I had way too much fun building the MaraX Evolution—it turned into quite the obsession! I am definitely planning to tackle another coffee machine and give it the same "Evolution" treatment.

However, espresso machines are expensive! :D

If you enjoy this project or use it daily, please consider supporting me.

Your Support = Your Vote

When you support me on Ko-fi or Patreon, please leave a comment telling me which coffee machine you want me to do next.

Think of it as a voting system: As soon as I have enough funds to cover the machine with the most votes (and the parts to mod it), I will buy it, reverse-engineer it, and build an open-source controller for it. If you have the MaraX and still want to support me, you can also tell me if there is a specific feature you want to have!

I will keep track of the money earned and will update occasionally the votes on the different coffee machines that are requested

Limitations

  • The MaraX is a very good heatexchanger machine, using quite sophisticated hardware to achieve superior temperature stability than a lot of other HX machines out of the box. It is, however, not a dual boiler machine and as such perfect temperature control is almost impossible. I played around a lot with PID values and was able to come up with some good values (and some pretty sophisticated feed forward control), but still perfect stability is almost impossible (or only if one tunes the PID super conservative, but then it takes hours to heat the machine)
  • This is not a cheap project. Most parts can be sourced pretty cheaply, but I used good ADC chips (the ADS1115) and one unfortunately obsolete LM1830 chip for boiler water level detection as well as a pretty expensive power supply for the 12V power. Most of these things could certainly be done cheaper (and maybe someday will). All in all expect to spend a bit of money if you go for the full set (which is recommended).
  • In the end the softweare got waaaaay more complicated than I originally anticipated. Some software was written using AI but I went through all of it and made sure it made sense to me. There certainly will be bugs as there is an infinite amount of edge cases I certainly have not considered. Please report any bugs you may find

Disclaimer & Safety Warning

PLEASE READ CAREFULLY BEFORE PROCEEDING.

1. I am a Hobbyist, Not a Professional I am not a professional mechanical, electrical, or software engineer. This project was created purely as a personal hobby undertaking for educational purposes. The code and hardware designs provided here are not certified, tested to industrial standards, or guaranteed to be bug-free.

2. Warranty Voiding Modifying your espresso machine, uploading custom firmware, or opening the chassis will almost certainly void your manufacturer’s warranty. By proceeding with any instructions or files from this repository, you accept full responsibility for the loss of any existing warranty or support from the original manufacturer.

3. No Liability This software and hardware documentation is provided "AS IS", WITHOUT WARRANTY OF ANY KIND, express or implied.

  • I am not responsible for any damage to your machine (bricking the device, burning out components, leaks, etc.).
  • I am not responsible for any personal injury or property damage (including fire or electrical shock) resulting from the use of this project.
  • You assume all risk associated with modifying your hardware and running this software.

4. High Voltage & Pressure Warning Espresso machines involve Mains Electricity (110V/220V), Water, and High Pressure. This is a dangerous combination.

  • Never work on the machine while it is plugged in.
  • Ensure you have a proper understanding of electrical safety before attempting any hardware modifications.
  • Improper handling of the boiler or pressure lines can result in explosion or severe burns.

Use this project entirely at your own risk.

If you find anything that you think could be improved (be it software/electrical or mechanical side) please let me know, and feel free to open a Pull request

Licensing

This project is dual-licensed to protect the work while allowing for personal study and modification.

  • Firmware: The main source code located in the /firmware directory is licensed under the PolyForm Noncommercial License 1.0.0. You may modify and use it for personal projects, but you cannot use it for commercial products.

    • Third-Party Libraries: This firmware includes modified versions of the following libraries, which remain under their original licenses:
  • Firmware: The hardware designs, schematics, and 3D models located in the /controller_board and /hv_board directories are licensed under the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) license.

Please see the LICENSE file in each respective subdirectory for the full legal text.

Similar projects

Idea for controlling the pump via an AC dimmer has been done in https://github.com/larszi/marax-pressure-mod. A complete overhaul of control software is currently proposed by the great project in https://github.com/variegated-coffee (they try to make a one-fit all solution though)

Parts

75
QtyValueFootprintReferences
2010KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2, R3, R10, R13, R18, R20, R22, R24, R28, R30, R31, R32, R33, R35, R38 +4
6220Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR23, R25, R26, R34, R36, R39
4100nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC7, C8, C9, C11
41uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C5, C10
4470Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR14, R27, R37, R40
4BSS138Package_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4
330KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR17, R19, R21
247KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR6, R29
10Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR15
10.05uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC6
10.22uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3
11-100kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR16
11K5Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR12
11nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC4
120uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC13
1300Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR8
147uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC12
15K6Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR11
1705530002molex1:CONN_705530002_03_MOLJ4
1705530041molex1:CONN_70553-xxxx_07_MOLJ5
1ADS1115IDGSPackage_SO:VSSOP-10_3x3mm_P0.5mmU1
1AQV212AQV212:DIP762W47P254L880H410Q6NIC1
1Arduino_Nano_ESP32footprints:Arduino_NanoA1
1Boiler fill sensorfootprints:280377-2_TYCCN1
1Brew switchfootprints:280377-2_TYCCN7
1HV Boardfootprints:PinHeader_1x06_P2.00mm_VerticalJ2
1Heater SSR Relayfootprints:280377-2_TYCCN5
1IE092503-1footprints:IE0925031U3
1LM1830NLM1830N:PDIP14_19P56X6P35_ONSU2
1LM4050AEM3-3.0+Tfootprints:SOT95P237X112-3NIC2
1MISC LEDSfootprints:280389-2_TYCCN6
1Sensor brew boilerfootprints:280377-2_TYCCN4
1Sensor steam boilerfootprints:280377-2_TYCCN3
1Water level detectorfootprints:280377-2_TYCCN2

The 73 most common of 75 parts.

Questions

How big is the Controller board PCB?

It measures 69 × 54 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Controller board use?

75 parts, built around the ADS1115IDGS, AQV212, IE092503-1 and LM4050AEM3-3.0+T. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Controller board KiCad files?

From the andia89/MaraXEvolution repository on GitHub, at the commit this page was made from: the board is controller_board/controller_board.kicad_pcb and its schematic controller_board/controller_board.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Controller board design in my own project?

Its repository states no licence, so its author keeps all rights: ask andia89 before reusing the design.

More from andia89/MaraXEvolution

1
  • 2 layers69 × 54 mmHv board, the printed circuit board in 3D

    Hv board

    andia89/MaraXEvolution

    This repository contains the hardware design and firmware for the MaraX Evolution main controller board. This project is designed to replace the stock controller of the Lelit Mara X espresso machine, adding advanced…

    33 parts6

Similar boards

  • 2 layers109.5 × 35 mmVerstärker schaltung, the printed circuit board in 3D

    Verstärker schaltung

    Megamann77/UW_Lautsprecher_for_OTS_Mic

    Autonomer, druckdichter Sprachverstärker für die Taucherausbildung. Nimmt das Signal des Mikrofons einer OTS-Vollgesichtsmaske ab und gibt es über einen Körperschallwandler an der POM-Gehäusewand ins Wasser.

    41 parts1CERN-OHL-S-2.0
  • 4 layers100 × 49.8 mmExpansion board, the printed circuit board in 3D

    Expansion board

    reubenstr/zuko

    A quadruped robot dog!

    75 parts51MIT
  • 2 layers165.1 × 110 mmRDL revE4, the printed circuit board in 3D

    RDL revE4

    jericholab/rdl

    Resistance Data Logger

    120 parts8GPL-2.0
  • 2 layers100 × 100 mmLed controller v5, the printed circuit board in 3D

    Led controller v5

    jacob-jarick/esp-solar-contoller

    esp8266 and esp32 based solar controllers targetting fronius inverter users

    119 parts5GPL-3.0
  • 2 layers90 × 71 mmPower extender, the printed circuit board in 3D

    Power extender

    StarGate01/power-extender

    Hardware and software for a power and IO extension PCB with current monitoring and I2C interface.

    78 parts5MIT
  • 2 layers65 × 68 mmFolkraceCar2020, the printed circuit board in 3D

    FolkraceCar2020

    CASE-Association/FolkraceCar

    Project for the Folkrace robot that CASE Board used in the Swedish Robotic Championship 2020

    74 parts2Apache-2.0
  • 4 layers65.6 × 91.8 mmKronos V1, the printed circuit board in 3D

    Kronos V1

    AddeyX/Kronos-Hardware

    Kronos - By AddeyX

    229 parts1
  • 2 layers88.8 × 52.3 mmMM36-Data Expansion, the printed circuit board in 3D

    MM36-Data Expansion

    KazanNinja/MM36-Data-Hub

    ESP32 based DAQ board. Fit with a 4 external 16bit 5V capable ADCs, 6-DOF IMU, and GPS breakout. Has two 5V > 3.3V & 12V > 3.3V voltage dividers

    84 parts1