/marax_monitor

Show data of Lelit's MaraX (PL62X) espresso machine with an ESP8266 on a Nextion display

Primary LanguageC++GNU General Public License v3.0GPL-3.0

marax_monitor

Shows temperature data and pump activity of Lelit's MaraX (PL62X) espresso machine with an ESP8266 on a 3.2" Nextion display marax_monitor

Introduction

Lelit's MaraX (PL62X) espresso machine is a quite interesting device because of it's "coffee mode", i.e. temperature is regulated by measuring the HX temperature instead of the steam temperature. The control unit of the machine provides a serial interface which allows us to read all relevant data.

There are already many projects out there which read and display the machine's data, but I want to draw your attention to following two projects from where I got a lot of ideas and information (thank you!):

Since a Nextion display was laying around in my lab, I created marax_monitor which does the following:

  • Display and plot temperatures on a Nextion display Display
  • Display a shot timer (a reed switch has to be attached to the vibration pump) Shot timer
  • Send data via MQTT to Node-RED and display data on it's dashboard Node-RED dashboard

Additionally I've added ArduinoOTA for being able to upload updates over the network.

The device is powered by an 18650 LiPo battery, that's why I've added a battery shield and a simple circuit for auto power off the monitor after an hour of inactivity for saving energy. The battery lasts for about one week.

We're using marax_monitor for some weeks now and especially the shot timer is a feature which we do not want miss any more. I also like to watch the temperature profiles which is not so trivial I've thought of before.

BOM

Note: I just used components which were available in my lab.

Required:

Optional (for battery powering):

  • Boost converter, e.g. WEMOS battery shield
  • Battery, e.g. LiPo 18650

Optional (for auto power off functionality):

  • PNP and NPN MOSFETs, resistors, diode

or

Case (STL files for 3D printer):

Wiring

MaraX

Note: You don't have to remove the complete housing of your espresso machine or empty the boiler. Just turn the machine 90 degrees backwards. Control unit and vibration pump can be easily reached by only removing the maintenance hatch on the bottom.

  • The three wires of the serial connection (GND, D5 and D6) have to be connected to the GND, RX and TX pins of the MaraX control unit (2nd, 3rd and 4th pin from the center to the edge). For details please have a look on calin's excellent post on reddit or screenshot below

  • Reed switch has to be attached to the vibration pump (I used double sided tape). For details please have a look at alexrus' great marax_timer project

MaraX' control box

Monitor

Note: As already mentioned I used components laying around my lab and put them together quick and dirty.

Device ESP8266
GND pin from MaraX' control unit (2nd pin) GND
RX pin from MaraX' control unit (3rd pin) D6
TX pin from MaraX' control unit (4th pin) D5
1st wire from reed switch D3
2nd wire from reed switch GND
RX pin from Nextion display D1
TX pin from Nextion display D7
GND pin from Nextion display GND

Optional (for auto power off and battery status):

Device ESP8266
Gate of NPN MOSFET (power drive) D0
Push button (for power on/off) D2
Voltage divider for battery status A0

The circuit for the auto power off functionality I've taken from Michael Ruppe (thank you!).

Sketch Prototype Circuit board front Circuit board back Assembled

Software

Used libraries for ESP8266 sketch:

Nextion display

Project file for Nextion display (edited on Nextion Editor V1.61.2):

Miscellaneous

  • MaraX' control unit sends data via serial interface about twice per second. But marax_monitor reads and displays this data only every 5 seconds because that's enough
  • If you've implemented auto power off: the device will be powered off after an hour of inactivity. You can manually power off by long pressing the power off button. By short pressing the power off button the counter for auto power off will be reset.