Il Litter-Robot 4 è una lettiera automatica che, appena uscita dalla scatola, dipende dai server Whisker e AWS. Joseph DiGiovanni ha cambiato le cose: ha sostituito il firmware cloud dell’ESP32 con ESPHome, e ora la lettiera parla solo con Home Assistant in locale. Tutte le funzioni originali restano, e in più si aprono scenari di automazione che prima erano impossibili.
Il cuore del progetto è l’ESP32, che nella scheda originale funge da ponte Wi-Fi-UART verso il microcontrollore PIC della scheda principale. DiGiovanni ha catturato i pacchetti esadecimali durante l’uso dell’app ufficiale e dei pulsanti fisici, decodificando così la comunicazione UART. Il risultato è un componente C++ per ESPHome che genera comandi, analizza le risposte e le espone a Home Assistant. Il repository su Codeberg di DiGiovanni raccoglie tutto il lavoro.
Come funziona il firmware ESPHome
Il firmware ESPHome sostituisce quello originale sull’ESP32, che continua a fare da ponte tra Wi-Fi e UART. La differenza è che i dati non viaggiano più verso i server cloud, ma restano sulla rete locale. Il componente C++ si occupa di tradurre i comandi di Home Assistant in pacchetti UART comprensibili dal PIC, e viceversa.
La sicurezza è preservata grazie all’architettura a doppio processore. La logica di controllo critica, come motori e sensori, risiede nel PIC separato, non nell’ESP32. Anche se il firmware ESP32 dovesse bloccarsi, il PIC mantiene il controllo della macchina. Inoltre, prima del flashing è possibile fare un backup completo del firmware originale, quindi il ripristino è sempre possibile.
L’header di debug sulla scheda principale è il punto di accesso per il flashing. Ha un passo di 1.27mm, quindi serve un adattatore o delle sonde sottili. Per chi vuole replicare il progetto, un ESP32 e un programmatore ESP-Prog-2 bastano per iniziare.

Cosa si guadagna in Home Assistant
Con il firmware ESPHome, la lettiera diventa un’entità completa in Home Assistant. Si possono vedere lo stato del ciclo, il livello dei rifiuti e gli errori, e si possono avviare cicli manuali. Inoltre, si possono creare automazioni: ad esempio, ricevere una notifica quando il cassetto è pieno o programmare un ciclo di pulizia a orari precisi.
La privacy è totale, perché nessun dato esce dalla rete di casa. Il funzionamento offline è garantito, e la personalizzazione è completa. Una scheda ESP32 di sviluppo è il punto di partenza giusto per chi vuole avvicinarsi a queste tecnologie di automazione locale.
Il repository del progetto conta 24 commit, 1 branch e 5 tag, per un totale di 2.1 MiB. Il codice è scritto in C++ per il 71.6% e in Python per il 28.4%. La versione del componente è la 0.9.4, e tutto è documentato per essere replicato.
Liberare un dispositivo smart dal cloud è un tema centrale per chi fa domotica seria. Il Litter-Robot 4 è solo un esempio: la stessa tecnica di decodifica UART e di firmware alternativo può essere applicata ad altri dispositivi. Il rischio è basso, grazie all’architettura a doppio processore e alla possibilità di ripristinare il firmware originale.
Il lavoro di DiGiovanni dimostra che con gli strumenti giusti si può riprendere il controllo dei propri dispositivi. In ogni caso, il progetto è un esempio chiaro di come ESPHome possa sostituire il cloud in modo pulito e sicuro.
Infine, il progetto è un ottimo punto di partenza per chi vuole capire come funziona la comunicazione UART tra processori. La decodifica dei pacchetti è spiegata nei dettagli, e il codice sorgente è disponibile per studio e modifiche. La lettiera automatica, da oggetto chiuso e proprietario, diventa un sistema aperto e integrabile.
- Backup completo del firmware originale prima del flashing
- Decodifica UART tramite cattura di pacchetti esadecimali
- Componente C++ ESPHome per comandi e risposte
- Logica critica nel PIC separato, sicurezza preservata
- Ripristino possibile in qualsiasi momento
Fonte: https://codeberg.org/Joseph-DiGiovanni/esphome-litter-robot
