/marax_timer

Primary LanguageC++MIT LicenseMIT

marax_timer with shot counter and water refill notification

This repository is a fork of alexrus' marax_timer with some additional tweaks, it is still in testing and could have lots of bugs. Use at your own risk

timer.ino additional tweaks:

  • Counts the number of shots pulled. Shots above 15 seconds are counted. (currently not working perfectly yet)
  • After pulling the 9th shot, a "refill water!" notification will appear and shot count will reset.
    • The MaraX water tank will last about 9 shots with an additional 10s flush after each shot.
  • Shot count data is saved into EEPROM and the data is retrieved on boot
  • Display an image on standby mode (just for fun)
  • To reset the shot count to zero before 9 shots are pulled, hold the FLASH button on the nodemcu board within the first 2 seconds after power on. (don't hold before power on!)

timer_wifi.ino

  • All the tweaks above but better way to reset shot count using a web interface.
  • Requires Wi-Fi connection to work. Change SSID and PASSWORD in the sketch code.
  • Check the IP address on your router's admin page or use the Serial Monitor on Arduino.

This project was designed to be used with a Lelit MaraX espresso machine (like the Lelit Mara PL62X), but it works (only the timer functionality) with any espresso machine that has a vibration pump.

Hardware

The following hardware is needed:

  • NodeMCU (ESP8266)
    • Tested with a NodeMCU V2 CP2102 board
  • 0.96" OLED display
    • Tested with a 4-pin version
  • Reed sensor
    • Normally closed and normally opened works
  • Wires
  • 3D printed case (https://www.thingiverse.com/thing:2937731)

Hardware Connections

Connect the OLED display like this: Remember that different display versions have different orders of VCC, GND, and data pins.

The reed switch goes to ground and D7.

The reed switch will be glued onto the machine's vibration pump like this:

If you have a Lelit MaraX machine, open the underside of the machine and you will see a 6-pin connector.

Connect pin 3 of the machine (RX) to pin D6 (TX) of NodeMCU

Connect pin 4 of the machine (TX) to pin D5 (RX) of NodeMCU

In case this does not work, change the pins connection (pin 3 to D5 & pin 4 to D6)

Software

In order to make NodeMCU work with Arduino IDE, follow these instructions: https://www.instructables.com/id/Quick-Start-to-Nodemcu-ESP8266-on-Arduino-IDE/

Operation

When the pump will start, the timer on the screen will also start counting.

When the pump is stopped, the time will remain printed on the screen (if more than 15 seconds have passed) until the next time the pump is activated.

The time is not recorded unless 15 seconds have passed because the MaraX machine starts the pump by itself from time to time to fill the boiler with water.

The display should go to sleep after 1 hour and will wake up when the pump is started.

If the timer immediately starts, even when the machine is off, a wrong reed sensor is used. To solve it, replace the reed sensor with another type (normally opened / normally closed) or change the reedOpenSensor to true in the timer.ino file.

UI

Dependencies

This project uses the following dependencies:

More information

More information about the project and progress can be found here.