Mangiatoia WP8621: modifica, installazione e orari dei pasti

Tempo di lettura: ~15 minuti · Tempo di esecuzione: ~1 ora (saldatura e flash) + 15 minuti di configurazione · Pubblico: chi vuole una mangiatoia automatica collegata a JoyReef ed è disposto ad aprirla e saldare tre fili

🔵 Guida avanzata (tecnica) — non fa parte del percorso onboarding 01-08. È la guida più impegnativa della raccolta: prevede di aprire un apparecchio, saldare e sostituirne il firmware. Se non hai mai saldato, questa non è la guida da cui cominciare.


1. Cosa stai per fare

La VSON WP8621 è una mangiatoia automatica da acquario che si compra già fatta, per una trentina di euro. Di fabbrica parla con il cloud del produttore attraverso la sua app: funziona, ma è un mondo chiuso, non sa niente della tua vasca e non compare da nessuna parte in JoyReef.

Dentro c'è un chip BK7231N, lo stesso di moltissimi dispositivi WiFi economici. Sostituendo il firmware originale con OpenBeken — un firmware libero, molto diffuso, pensato proprio per questi chip — la mangiatoia smette di parlare col cloud del produttore e comincia a parlare con il tuo portale.

Alla fine di questa guida avrai una mangiatoia che:

⚠️ Cosa stai accettando. Aprire l'apparecchio e sostituirne il firmware fa decadere la garanzia, e l'app del produttore non funzionerà mai più: il dispositivo diventa tuo per intero, cloud compreso. Il flash può anche andare male e lasciare la mangiatoia temporaneamente muta — si recupera (vedi sez. 10), ma mettilo in conto. Non è un'operazione da fare di fretta la sera prima di partire.

💡 Perché "porzioni" e non "secondi". Dentro il tamburo c'è uno sportello che a ogni giro si apre e si richiude. Una porzione non è "N secondi di motore", ma "ruota finché lo sportello ha compiuto un giro completo": così la dose è sempre la stessa anche se il motore rallenta o il cibo fa resistenza. Ed è anche una questione pratica — fermarsi con lo sportello aperto lascerebbe continuare a cadere il cibo in vasca. Questa logica vive a bordo, non nel portale.


2. Cosa ti serve

Hardware

Software

pipx install ltchiptool bk7231tools
pipx inject bk7231tools pycryptodome

⚠️ Il +5V dell'adattatore non si usa mai. Molti CP2102 hanno due pin di alimentazione, 3V3 e +5V. Qui serve solo il 3V3: i 5 V danneggiano il modulo. Se il tuo adattatore ha un jumper per la tensione, controlla che sia su 3.3 V prima di collegare qualsiasi cosa.


3. Aprire la mangiatoia

Scollega l'alimentazione, togli il serbatoio del cibo e apri il guscio: le due metà si separano e restano unite dai fili del motore. La scheda che ci interessa è quella verde e stretta, con il jack di alimentazione a un'estremità e il modulo WiFi — la parte con l'antenna serigrafata a zigzag — all'altra.

Il guscio aperto della WP8621: in basso a sinistra la scheda WP8621_V12 con il modulo WiFi001_V20, a destra il motore, il microinterruttore e il tamburo

I pad di test sono serigrafati sulla scheda verde, accanto al modulo — non sul modulo stesso. Ne useremo tre:

Pad Dove sta Cos'è
TX colonna a sinistra del modulo trasmissione seriale (è il pin P11 del chip)
RX subito sopra TX ricezione seriale (P10)
GND in alto, accanto a VDD massa

💡 GND non è insieme agli altri due. MOD, RX e TX stanno incolonnati a sinistra del modulo, mentre VDD e GND sono in alto, dall'altra parte della fila di piazzole. Cercarlo sotto TX è tempo perso.

VDD e MOD non servono e non vanno collegati.

La scheda WP8621_V12: a sinistra del modulo i pad MOD, RX e TX incolonnati, in alto VDD e GND

💡 Sul chip c'è scritto BL2028N, e va bene così. È la stessa cosa di un BK7231N: la sigla cambia col fornitore del modulo, il silicio no. Se sul tuo si legge BL2028N, sei nel posto giusto — e resta valido quanto detto più avanti sulla build da usare.


4. Saldare i tre fili

Salda un cavetto su ciascuno dei tre pad. Sono piccoli: punta fine, poco stagno, e verifica con una lente che non ci siano ponticelli fra un pad e l'altro.

Poi collega all'adattatore, incrociando TX e RX:

Adattatore CP2102 Modulo WP8621
TXD RX incrociato
RXD TX incrociato
GND GND dritto

Schema di collegamento fra l'adattatore CP2102 e i pad del modulo, con TX e RX incrociati

⚠️ Mai due alimentazioni insieme. Durante il flash la mangiatoia resta alimentata dal suo jack DC, e dall'adattatore prendi solo GND. Non collegare il 3V3 dell'adattatore mentre il jack è inserito: sono due sorgenti in conflitto.

Fai uscire i tre cavetti dal guscio senza schiacciarli e tieni la mangiatoia appoggiata in modo stabile: durante il flash non dovrà muoversi.


5. Flash di OpenBeken

5.1 Prima di tutto, il backup

Non saltare questo passo. Il backup è ciò che trasforma un errore in un inconveniente.

ltchiptool flash read bk7231n stock-originale.bin -d /dev/ttyUSB0 -t 300

Il comando aspetta che il chip entri in modalità download, e per farcelo entrare bisogna resettarlo mentre lui sta in ascolto (vedi 5.2). Quando finisce, hai un file da 2 MB: conservalo fuori dal PC, insieme alla data.

⚠️ Il backup contiene le credenziali WiFi e la chiave del dispositivo. Non pubblicarlo, non metterlo in un repository, non mandarlo in chat.

Verificalo rileggendolo una seconda volta e confrontando: se i due file hanno lo stesso sha256sum, la lettura è buona.

5.2 Il reset deve essere vero

È il punto in cui quasi tutti si bloccano, quindi leggilo prima di provare.

Quando la scheda è alimentata dal jack DC, i condensatori dell'alimentatore interno tengono su la tensione per qualche secondo dopo che hai staccato. Uno stacca-riattacca rapido non resetta il chip: la finestra di download non si apre, e puoi insistere all'infinito senza capire perché.

Stacca, conta fino a quindici, riattacca. Dieci-quindici secondi veri. Se vuoi accorciare, premi il pulsante della mangiatoia da spenta: scarica i condensatori.

La sequenza giusta è:

  1. lanci il comando ltchiptool (legge o scrive) e lo lasci in attesa;
  2. solo dopo stacchi l'alimentazione, aspetti 15 secondi, riattacchi;
  3. il comando aggancia e comincia.

5.3 Scrivere OpenBeken

Scarica da github.com/openshwprojects/OpenBK7231T_App la release, e prendi il file OpenBK7231M_QIO_*.bin.

⚠️ BK7231M, non BK7231N. Sembra l'opposto di quello che dovresti scegliere, e invece è giusto: nella nomenclatura di OpenBeken la sigla BK7231M indica un BK7231N con le chiavi di cifratura a zero, che è esattamente il caso della WP8621. Con la build BK7231N il dispositivo non si avvia.

ltchiptool flash write OpenBK7231M_QIO_1.18.309.bin \
  -f bk7231n -s 0x0 -d /dev/ttyUSB0 -b 115200 -t 400

I parametri -f e -s sono obbligatori: il file QIO non viene riconosciuto da solo. La velocità va forzata a 115200.

⚠️ Mani ferme per almeno un minuto. Questa è la trappola peggiore di tutta la guida. Dopo aver riattaccato l'alimentazione non vedi subito se ha agganciato, e la tentazione è di staccare e riprovare — ma se nel frattempo la scrittura è iniziata, interromperla corrompe la flash a metà e la mangiatoia non si avvia più. Tieni il terminale in vista e aspetta di leggere le righe Erasing and writing at 0x...: da quel momento non toccare più niente finché non finisce.

Al termine (233 settori, un paio di minuti) scollega l'adattatore. Puoi lasciare i tre cavetti saldati — non danno fastidio e ti serviranno se un giorno vorrai tornare al firmware originale.

5.4 Il primo avvio

Riattacca l'alimentazione. La mangiatoia crea una rete WiFi aperta chiamata OpenBK7231M_XXXXXX. Collegati con telefono o PC, apri il browser su 192.168.4.1, entra in Config → Configure WiFi e inserisci nome e password della tua rete di casa.

Dopo il riavvio la mangiatoia entra nella tua rete. Trova il suo indirizzo IP dal pannello del router e aprilo nel browser: se vedi la pagina di OpenBeken, il pezzo difficile è fatto.


6. Aggiungere la mangiatoia al portale

Da qui in avanti è tutto dal browser.

Sul portale vai su Dispositivi → Aggiungi mangiatoia (la trovi anche da Mangiatoie, anche quando l'elenco è vuoto).

Passo 1 — Come si chiama. Scegli un nome e, se vuoi, la vasca.

⚠️ Scegli un nome corto e non cambiarlo più. Il nome non è un'etichetta: entra nell'indirizzo con cui la mangiatoia si presenta al portale. Un nome lungo fa sforare il comando di configurazione, che il dispositivo tronca senza dirlo. "Cucina" va bene, "Mangiatoia della vasca principale del salotto" no.

Premi Genera i comandi: il portale crea le credenziali e ti mostra due comandi da incollare.

Il primo passo del wizard: il campo con il nome "Cucina" e la vasca selezionata


7. Incollare i comandi e collegarla

I comandi sono due e vanno incollati separatamente: insieme non funzionano. Fra l'uno e l'altro c'è un passaggio che non si può fare da riga di comando.

7.1 Apri nel browser l'indirizzo IP della mangiatoia.

7.2 Premi Config, poi Execute Custom Command.

💡 Non cercare la voce "Console". In OpenBeken non esiste: il posto dove si incollano i comandi si chiama Execute Custom Command, dentro Config.

7.3 Incolla il primo comando (connessione e ingressi) e premi Submit.

7.4 Se il portale ti mostra un passo sulla porta, fallo ora: Config → Configure MQTT, scrivi la porta nel campo Port e premi Submit.

⚠️ La porta si imposta solo da quel form. Il comando MqttPort non esiste in questo firmware: se lo mandi, il dispositivo risponde senza errori e prosegue lasciando la porta com'era. Compila tutti i campi del form, non solo la porta: quelli che lasci vuoti vengono azzerati.

7.5 Torna su Execute Custom Command, incolla il secondo comando (regole di erogazione) e premi Submit.

7.6 Torna alla pagina iniziale e premi Restart.

⚠️ Il riavvio non è un consiglio, è un passo obbligatorio. Il secondo comando memorizza le regole, non le esegue: partono al riavvio successivo. Una mangiatoia a cui hai incollato tutto ma che non hai riavviato risulta collegata sul portale e non eroga, che è il modo più fastidioso di sbagliare — sembra tutto a posto.

7.7 Sul portale premi Verifica il collegamento. Dopo il riavvio la mangiatoia impiega una decina di secondi a ricollegarsi.

Il portale conferma che la mangiatoia è collegata


8. Provare l'erogazione

Apri la pagina della mangiatoia. Vedi lo stato in tempo reale — sportello, motore, livello del cibo, inceppamento — e l'orologio di bordo.

Scegli 1 porzione e premi il pulsante di erogazione. Deve succedere questo, in una quindicina di secondi:

subito il motore parte
dopo ~2 s lo sportello risulta aperto
dopo ~13 s lo sportello torna chiuso e il motore si ferma
l'indicatore di inceppamento resta spento

⚠️ Massimo 3 porzioni per erogazione. Il controllo anti-inceppamento a bordo è armato su un tempo che copre tre giri del tamburo: chiedendone quattro scatterebbe un falso allarme che tronca la dose a metà. Se servono dosi più abbondanti, metti due orari ravvicinati invece di una porzione in più.

💡 Controlla di nuovo dopo un minuto. Su questo dispositivo un falso allarme di inceppamento, quando c'è, arriva in ritardo. Guardare solo lo stato immediato non basta a dire che è andata bene.

L'orologio di bordo

Nella pagina c'è l'ora che la mangiatoia crede siano. Guardala. Gli orari dei pasti li conta lei, non il portale: se il suo orologio è sfasato, i pasti escono all'ora sbagliata e non c'è nessun altro punto in cui te ne accorgeresti.

Se il portale segnala uno scarto, il caso tipico è il cambio dell'ora legale, che va rimandato al dispositivo. Il pulsante accanto all'ora la richiede di nuovo: la mangiatoia risponde in una decina di secondi.

Il livello del cibo

L'indicatore di livello è una barriera ottica: dice "vedo cibo" oppure "non vedo cibo", non quanto ne resta.

💡 Taralo con il tuo mangime. A quale riempimento la barriera si libera dipende dalla granulometria: fallo scendere una volta sola osservando quando cambia l'indicatore, e saprai quanto tempo hai davanti quando scatta.


9. Programmare gli orari dei pasti

Nella sezione Orari dei pasti aggiungi un orario, scegli i giorni della settimana e il numero di porzioni (da 1 a 3). Puoi impostarne fino a otto.

La sezione degli orari dei pasti con due orari impostati: 08:30 tutti i giorni e 19:00 dal lunedì al venerdì

Al salvataggio il portale scrive gli orari dentro la mangiatoia e li attiva subito, senza aspettare un riavvio.

💡 Gli orari non dipendono dal portale. Una volta salvati vivono nel dispositivo: se il portale è in manutenzione, se salta la linea o se stacchi il router, i pasti continuano a uscire. È il motivo per cui la mangiatoia tiene la schedulazione a bordo invece di riceverla al momento.

Se al salvataggio il portale ti avvisa che gli orari non sono ancora arrivati, la mangiatoia era irraggiungibile: restano in attesa e vengono rimandati da soli appena si ricollega. L'avviso si spegne quando ci sono riusciti.

Verificare che ci siano davvero

Se vuoi la controprova, apri nel browser:

http://<ip-della-mangiatoia>/api/lfs/autoexec.bat

Devi vedere una riga per ogni orario, più una riga iniziale che è il battito con cui la mangiatoia si fa viva ogni due minuti:

addRepeatingEventUID 120 -1 92 PublishChannels
addClockEvent 17:42 0x7f 40 SetChannel 30 1

💡 Questa è la verifica che conta. Il file è ciò che la mangiatoia rilegge a ogni avvio: se gli orari sono lì, sopravvivono a un blackout.


10. Se qualcosa non va

ltchiptool resta in attesa e non aggancia mai. Il reset non è stato vero: i condensatori tenevano su la tensione. Stacca, aspetta quindici secondi pieni, riattacca (vedi sez. 5.2). Controlla anche che TX e RX siano incrociati.

Dopo il flash la mangiatoia non dà segni di vita. Quasi sempre è la scrittura interrotta a metà. Non è un guasto definitivo: il chip ha la modalità di download nella ROM e si riaggancia sempre — anzi, con l'avvio rotto è perfino più facile, perché non prova nemmeno a partire. Ripeti la scrittura, stavolta senza toccare niente. Se hai il backup, puoi anche tornare al firmware originale.

Ho usato la build BK7231N e non parte. È il caso descritto nella sez. 5.3: serve OpenBK7231M_QIO. Riscrivi con il file giusto.

Il portale dice che è collegata, ma non eroga. Manca il riavvio del passo 7.6. Le regole erano solo memorizzate.

La verifica del collegamento non riesce. Nove volte su dieci è la porta. Riapri Config → Configure MQTT e controlla che il campo Port contenga il valore indicato dal portale: il comando incollato non può impostarla, e se il form non è stato compilato la porta è rimasta quella di prima.

I pasti escono all'ora sbagliata. Guarda l'orologio di bordo nella pagina della mangiatoia (sez. 8). È lui a decidere, non il portale.

Il cibo continua a scendere dopo l'erogazione. Il tamburo si è fermato con lo sportello aperto, cioè c'è stato un inceppamento. Svuota e ricarica il serbatoio: spesso è mangime troppo grosso o umido che fa ponte.


Dove andare adesso