MaraTUI – Rust/Ratatui firmware for the Lelit Mara with native MQTT Discovery

I've been building a custom firmware for my Lelit Mara X espresso machine and wanted to share it here, since HA integration is a first-class feature rather than an afterthought.

What it is: an ESP32 reads the machine's telemetry over UART and drives a small ILI9341 320×240 display showing live boiler/HX temps, an extraction timer, and a post-shot quality readout. Everything also goes out over MQTT.

Why it might interest this forum specifically: building with --features home-assistant makes the firmware publish MQTT Discovery configs directly. On every connect it sends retained discovery payloads and the entities just show up. Boiler temp, HX temp, target temp, mode (coffee/steam/offline), heat and pump state, extraction events and a cup counter all come through as proper HA entities.

It started from the idea in esphome-marax, but the implementation is a full rewrite: Rust on esp-idf-svc instead of ESPHome YAML, a redrawn UI using ratatui and mousefood. I've created a custom PCB, so you can order a complete DIY kit.

Repo, screenshots and the full entity/topic reference: https://github.com/ololonly/maratui

Happy to answer wiring/protocol questions if anyone has a Mara and wants to try it.