community italiana di domotica personale
 
Riprogrammare firmware su dispositivi ESP8266 (Sonoff, Shelly, ecc.) – MASTERGUIDE

Riprogrammare firmware su dispositivi ESP8266 (Sonoff, Shelly, ecc.) – MASTERGUIDE

SCOPI DEL PROGETTO:
CONCETTI AFFRONTATI:
  • Riprogrammazione firmware
COMPONENTI SOFTWARE UTILIZZATE:
DISPOSITIVI FISICI UTILIZZATI:
  • il dispositivo da (ri)programmare
  • un adattatore USB/TTL (FTDI) e relativo cavo di connessione USB (solitamente necessario ma talvolta opzionale)
  • dei cavetti di connessione Dupont ed eventualmente contatti pin (opzionali)
  • un saldatore (opzionale)
  • un computer di supporto (Apple, Windows o Linux)
PROGETTO MAGGIORMENTE INDICATO PER:

Tutti gli ambienti

NOTE E DISCLAIMER
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata e realizzata SOLO da personale qualificato;
  • qualsiasi modifica non prevista attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno infatti puro scopo didattico) e fa decadere garanzia, omologazioni e certificazioni di qualità; dei dispositivi interessati;
  • tutte le tecniche descritte si intendono applicate a software e firmware aggiornati alle ultime versioni disponibili;
  • gli articoli di inDomus sono totalmente indipendenti e non sponsorizzati. Se mai questo cambiasse, verrà segnalato chiaramente sulle pagine oggetto di sponsorizzazione;
  • questa pagina è materialmente scritta e manutenuta da più individui: non ci si aspetti né si pretenda un supporto personale. In caso di difficoltà, chiedere supporto alla community sul nostro forum o sulla nostra chat;
  • se hai bisogno di orientarti, c'è la mappa.
Revisione guida: 4.0

Abstract

Ogni dispositivo elettronico contiene a grandi linee una piccola porzione software, chiamata firmware, che ne determina funzioni e comportamento. La nostra automobile è dotata di diversi firmware; ne possiede uno la lavatrice, il nostro telecomando, persino una radiosveglia è dotata di un proprio firmware.

I dispositivi basati su SOC ESP8266 (processori dotati di Wi-Fi piuttosto in voga per il basso costo, le limitate dimensioni e la grande versatilità) non sono da meno: tutti montano un proprio firmware, solitamente scritto e compilato dal produttore. Un classico esempio viene dai dispositivi della linea ITEAD Sonoff “Smart Home” o della linea Shelly “Home Automation Systems”, i NodeMCU, i Wemos e molti altri i quali, prevalentemente, montano tale processore.

Usando una similitudine, riprogrammare (o flashare) il firmware di un dispositivo è come sovrascrivere per intero una videocassetta VHS. Bene: i dispositivi che montano questi SOC si prestano facilmente a tale riprogrammazione, la quale, per lo più, viene effettuata allo scopo di dotare i componenti di funzionalità aggiuntive (o comunque diverse) da quelle di fabbrica.

È il caso di firmware alternativi come il Tasmota, ESPurna, ESPHome e altri, firmware gratuiti scritti per dispositivi basati su questi SOC (come i Sonoff, gli Shelly e molti altri): vengono implementati per “liberare” i dispositivi dal firmware di fabbrica e implementare, appunto, molte funzionalità aggiuntive.

La presente guida illustra come riprogrammare – a prescindere dal firmware (purché concepito per tale tipologia di SOC) – un dispositivo basato su ESP8266. È infatti più che sufficiente un’unica guida omnicomprensiva, dato che le metodologie sono fondamentalmente sempre le stesse.

Si parte

Come funziona?

Per (ri)programmare (o flashare) un dispositivo basato su ESP8266 i passi operativi sono, a grandi linee:

  • dotarsi di un firmware adatto, precompilato o da compilare a mano;
  • collegare il dispositivo al computer tramite un adattatore USB/TTL e relativi cavi di connessione;
  • avviare la procedura di flash (o riprogrammazione).

A seguire approfondiamo i vari aspetti, prima di passare all’attività di riprogrammazione vera e propria.

FIRMWARE

Il firmware, solitamente, è rappresentato da una serie di file contenenti il codice (scritto in linguaggi anche molto diversi tra loro) e le impostazioni di base del dispositivo (ad esempio il nome e la password della nostra rete Wi-Fi sulla quale il dispositivo, all’accensione, proverà ad entrare automaticamente).

Tali file di codice e di impostazioni, quando passati per le mani di un compilatore, vengono “tradotti” in un unico file detto “compilato”: solitamente dotato di estensione “.bin“, tale file rappresenta il contenuto che verrà scritto sul dispositivo al posto del firmware preesistente.

È quindi chiaro come sia necessario disporre del file compilato del firmware che ci interessa, che sia esso precompilato da qualcun altro o compilato a mano da noi stessi.

Alcuni esempi di firmware custom per ESP8266 sono:

PRECOMPILATO

Un file precompilato (messo a disposizione dal programmatore del firmware, come per esempio nel caso di Tasmota, o oppure compilato con gli strumenti previsti per ESPHome) viene solitamente utilizzato da chi debba aggiornare il medesimo firmware sovrascrivendone la versione precedentemente installata sul dispositivo, oppure direttamente come nuovo firmware per un dispositivo, a patto che il firmware precompilato disponga di una modalità AP (Access Point), ovvero una modalità per la quale, dopo la riprogrammazione del dispositivo, esso funga in automatico da Access Point Wi-Fi, il che permette di collegarvisi direttamente al solo scopo di configurarne l’accesso alla rete Wi-Fi domestica tramite una propria intefaccia.
In assenza di questa funzione, al primo riavvio il dispositivo non saprebbe a quale rete collegarsi e sarebbe, in definitiva, inutilizzabile.

Tornando al caso dell’aggiornamento, se per esempio volessimo aggiornare un interruttore Sonoff Basic precedentemente programmato e configurato con firmware Tasmota 6.4 con la più nuova versione 6.5, sarà sufficiente scaricare il compilato messo a disposizione dal programmatore e scriverlo sul dispositivo. Tale compilato non contiene alcuna impostazione (per esempio l’accesso alla Wi-Fi), ma questo non è un problema: al primo riavvio il dispositivo saprà dove andare a leggere in memoria le impostazioni già precedentemente configurate con la 6.4. Restando sull’esempio di Tasmota, dato che tra le tante funzionalità esso fornisce anche l’aggiornamento OTA (Over-The-Air), per aggiornare il firmware non è neppure necessario collegarsi fisicamente al dispositivo, ma è sufficiente “passargli” il firmware precompilato tramite browser oppure tramite tool appositi sfruttando la rete Wi-Fi come mezzo di comunicazione.

COMPILATO A MANO

Spesso, invece, quando invece si riprogramma per la prima volta un ESP8266, la compilazione a mano (o meglio, la configurazione del firmware e poi la compilazione) è una delle pratiche più tradizionali anche se, come spiegato sopra, non necessariamente sempre obbligatoria.

La compilazione manuale si rende solitamente necessaria quando il firmware in questione non dispone di una modalità AP sopra spiegata: è pertanto necessario configurare il firmware a monte, prima della compilazione, con le informazioni necessarie al collegamento del dispositivo target alla Wi-Fi domestica.

Quanto detto vale non solo quando si riprogramma “per la prima volta”, ma anche quando si migra da un tipo di firmware ad un altro (eg. da Tasmota a ESPurna e viceversa, o altri).

Modalità di riprogrammazione

Tramite USB/TTL (FTDI) O CAVO USB

È la modalità utilizzata quando si tratta di riprogrammare il componente con un compilato contenente le proprie impostazioni (quindi un dispositivo al quale viene cambiato radicalmente il firmware, vedi sopra), sebbene nulla vieti di utilizzarla anche in caso di aggiornamento del firmware in caso si voglia evitare una procedura OTA (Over-The-Air).

Alcuni board, come per esempio il NodeMCU o il Wemos D1 Mini non hanno bisogno di alcun adattatore, in quanto presentano una porta di connessione USB. Per riprogrammarli è infatti sufficiente collegarli al computer di appoggio tramite un cavo USB (tipicamente USB/micro USB).

In altri casi (per esempio con i Sonoff) si utilizza  semplice ed economico dispositivo, chiamato USB/TTL (o FTDI) il quale funge da “ponte” tra il nostro computer e il dispositivo da riprogrammare.

USB/TTL FTDI
schema di un USB/TTL generico.

Tale dispositivo presenta da un lato una connessione USB standard; dall’altra, quattro contatti i quali rappresentano:

  • un polo positivo 3,3v (VDD) – (non 5v: in caso sia presente sull’USB/TLL un selettore di tensione, accertarsi sia impostato a 3,3v);
  • un polo negativo ground (GND);
  • TX (o TXD);
  • RX (o RXD).

Tali contatti vanno collegati sulla board del dispositivo da riprogrammare, avendo cura di collegare polo positivo e negativo con i corrispondenti sulla board, mentre TX e RX vanno collegati con i loro duali, ovvero TX con RX e RX con TX (sbagliare questo passaggio è uno degli errori più classici quando si provvede alla riprogrammazione).

I due poli + e – servono ad alimentare la board, mentre TX e RX servono rispettivamente ad inviare/ricevere i dati in fase di programmazione.

Per collegare questi quattro poli alla board del dispositivo da riprogrammare si utilizzano, solitamente, dei cavetti di connessione Dupont ed eventualmente dei contatti pin (opzionali). Quest’ultimi possono essere saldati alla board, ma solitamente è sufficiente appoggiarli ai contatti per far sì che la connessione funzioni (ad esempio, vedi anche “metodo fresco bucato“).

A seguire, un esempio relativo ai contati di connessione del Sonoff POW:

Sonoff POW - Connession USB:TTL - 2
esempio di connessione

Limitandosi a collegare tramite USB/TTL il computer al dispositivo, quest’ultimo si limita ad accendersi e diventare operativo. Per far sì che sia pronto a ricevere un nuovo firmware, andrà prima impostato in modalità “flash”, come vedremo dopo.

SOFTWARE

Per riprogrammare un ESP8266 utilizzando un USB/TTL è ovviamente anche necessario utilizzare un software ad hoc. Ve ne sono molti come Atom (disponibile per Windows, Mac, Linux) e/o di esptool (vedi guida all’uso) o Tasmotizer, se si vuole usare esptool ma con interfaccia grafica (vedi guida all’uso).

Gli utenti che installano per la prima volta un firmware ESPHome su un dispositivo solitamente utilizzano ESPHome Flasher (solo Windows) oppure ESPHome Dashboard, ma anche  il buon vecchio esptool (vedi sopra) è più che adeguato.

Vedremo a seguire come configurare ed utilizzare, nello specifico, Atom.

Tramite OTA

Come anticipato sopra, in alcuni casi i firmware permettono di installare una nuova versione (un aggiornamento, quindi) utilizzando una procedura OTA (Over-The-Air), ovvero tramite un processo che, via browser o altre modalità, permette di installare un precompilato aggiornato sul dispositivo. Questo approccio è particolarmente gradito quando i dispositivi sono in esercizio e sono irraggiungibili con facilità (basti pensare a un interruttore intelligente installato a muro).

Nel caso di Tasmota, per esempio, ad ogni nuovo rilascio di versione (che su inDomus non manchiamo mai di notificare) è sufficiente collegarsi al repository messo a disposizione dallo sviluppatore, scaricare l’aggiornamento e, tramite browser (o strumenti come TasmoAdmin), provvedere all’aggiornamento via Wi-Fi.

N.b. nel caso del firmware Tasmota è necessario scaricare l’aggiornamento (“tasmota.bin“) e l’aggiornamento minimale (“tasmota-minimal.bin“). Questo perché non è possibile installare direttamente l’aggiornamento (il file è troppo grosso per la memoria del dispositivo, pena la sovrascrittura dei dati relativi alle impostazioni) ed è necessario prima aggiornare con la versione minimale, poi con quella completa e definitiva.
Tramite SonOTA

Esiste – per la riprogrammazione dei soli dispositivi Sonoff – anche un’altra tecnica che NON prevede l’uso di connettori fisici come l’USB/TTL. Tale tecnica utilizza un software Open Source (SonOTA) e la Wi-Fi domestica; dato che abbiamo appurato un rischio brick utilizzando tale tecnica, non la caldeggiamo, rimanendo convinti della procedura manuale tramite USB/TTL la quale, sebbene inizialmente più ostica, è quella che dà risultati più certi e sicuri.

TRAMITE DIY VIA OTA

Dal 2019 alcuni nuovi componenti della linea ITEAD “Sonoff Smart Home” (eg. i Sonoff Basic R3, o il Sonoff Mini), supportano nativamente la riprogrammazione del firmware senza necessità di connessione fisica. Questa procedura, illustrata in questa guida ad hoc, è più sicura di quella illustrata nel punto precedente (SONOTA), ma resta comunque mediamente pericolosa in termini di un rischio brick.

ATTENZIONE: Utilizzando il firmware precompilato Tasmota (quello solitamente più utilizzato – qui la pagina dedicata alla declinazione DIY) è necessario usare il file tasmota-lite.bin.

La procedura

Vediamo infine come provvedere a riprogrammare il firmware di un dispositivo ESP8266.

Analizzeremo due casistiche specifiche:

  • Caso 1: dispositivo sul quale il firmware che andremo a scrivere sia diverso da quello preesistente (eg. firmware Tasmota che va a sostituire quello di fabbrica) il quale non offra modalità AP;
  • Caso 2: dispositivo sul quale andremo ad aggiornare un firmware custom già presente oppure installare un nuovo firmware precompilato che offra modalità AP;

Caso 1: nuovo firmware (senza AP)

Se il firmware che andremo a installare non offre modalità AP, allora siamo costretti a compilare il nostro firmware dotandolo delle informazioni necessarie a far accedere automaticamente il nostro dispositivo ESP8266 nella Wi-Fi domestica post-riprogrammazione.

La procedura prevede l’uso combinato di Atom e di un adattatore USB/TTL.
La sequenza è la seguente:

Una tantum:

  1. installare e configurare Atom.
  2. collegare l’adattatore USB/TTL via USB al computer per scoprire la porta COM assegnatagli.

Ogni volta si riprogramma con nuovo firmware un dispositivo ESP8266:

  • scaricare l’ultima versione del firmware;
  • aprire il firmware con Atom;
  • configurare e compilare il firmware;
  • collegare l’adattatore USB/TTL alla board del dispositivo;
  • collegare l’adattatore USB/TTL alla USB del computer avendo cura di impostare il dispositivo in modalità “flash“;
  • effettuare l’upload del firmware;
  • verificare la bontà della riprogrammazione.

Attività una tantum

1) Installare Atom

ATOM LogoAtom è, in primis, un editor di testo molto potente e versatile. La sua particolarità sta nel fatto di essere modulare, ovvero prevede la possibilità di installare una serie di pacchetti aggiuntivi, tra i quali quelli necessari a compilare firmware/software, scrivere codice in diversi linguaggi e molto altro.

Ecco perché inDomus adotta Atom come editor preferito: non solo serve è utile a compilare firmware, come vedremo, ma è anche ottimo come editor per file di configurazione relativi agli HUB domotici e molto altro.

Atom si scarica gratuitamente (per Windows, macOS e Linux) dal sito https://atom.io/.
Una volta scaricato, installarlo come un qualunque freeware reperibile da Internet.

Per gli scopi della presente guida è necessario, una volta installato ed eseguito, installare un pacchetto aggiuntivo chiamato “platformio-ide“.

Per farlo recarsi presso:

  • su WindowsMenu: File > Settings > Install
  • su macOSMenu: Atom > Preferences > Install
  • su LinuxMenu: Edit > Preferences > Install

e nella buca di ricerca cercare, per l’appunto, “platformio-ide“. Una volta trovato il pacchetto, cliccare su “Install”.

ATOM install packages

 
N.b. L’installazione di Atom + platform-io può prevedere l’installazione di ulteriori pacchetti aggiuntivi, come per esempio Python. Qualora l’installer chiedesse tali aggiunte, provvedere a soddisfare la sua richiesta (pena il mancato funzionamento successivo del tool).

Dopo l’avvenuta installazione chiudere e riaprire Atom , che a questo punto  provvederà a installare una serie di pacchetti integrativi in modo completamente automatico.

Al termine, PlatformIO chiederà di riavviare per un’ultima volta Atom.

2) Scoprire la porta COM

Un adattatore USB/TTL (FTDI) è il semplice dispositivo che ci permette di mettere in comunicazione il nostro computer e il cuore del dispositivo basato su SOC ESP8266.

Senza bisogno, per il momento, di collegare tale dispositivo a quello da riprogrammare, provvedere invece a collegare quest’ultimo (tramite cavo USB) al nostro computer. In caso vengano richiesti dei driver, provvedere all’installazione.

Selezionare poi la voce di menu di Atom PlatformIO > Serial Monitor.
Si aprirà una finestra come segue:

Dopo un istante, nella voce “Port” verrà indicata quale porta COM il computer abbia assegnato al modulo USB/TTL.
Prenderne nota.
Scollegare ora il modulo dalla porta USB.

NOTA per gli utenti Apple: Atom dovrebbe identificare una porta diversa dalla classica COMx. Per capire come configurare la porta in questa casistica, far riferimento a questo thread. Al di lì di quanto espresso nel link, si ricordi sempre di installare il corretto driver per Mac del proprio adattatore USB/TLL.

Dopo aver installato il driver corretto, nel system report del Mac, alla voce USB, dovrà (collegando l’adattatore USB/TTL), una voce analoga a quella che segue:

FT232R on Mac

Riprogrammazione vera e propria

Ora che Atom è installato e configurato e la porta COM è nota, è possibile scaricare, configurare e compilare il firmware.

Dato che dove scaricare, come configurare e come compilare il firmware dipende dal firmware stesso, a questo punto si fa una piccola deviazione sulla guida che segue, la quale spiega passo passo i vari aspetti  legati ai vari firmware.

Seguendo e portando a compimento la guida che segue, si arriva al punto di aver configurato e dunque compilato il proprio firmware:

Compilare un firmware custom per ESP8266 (Tasmota, ESPurna ecc.) con Atom

MODALITÀ “Flash”

A questo punto siamo pronti a collegare il nostro dispositivo all’adattatore USB/TTL e poi quest’ultimo alla porta USB del computer.

ATTENZIONE! NON COLLEGARE CONTEMPORANEAMENTE IL DISPOSITIVO ALL’ADATTATORE USB/TTL E ALLA CORRENTE DI RETE 220V!
RICORDARSI DI SCOLLEGARE LA CORRENTE DI RETE DAL DISPOSITIVO!!!

Prima cosa, dunque, collegare i quattro contatti dell’USB/TTL sulla board (nelle modalità spiegate prima) dopodiché, prima di collegare anche la porta USB al computer, provvedere ad eseguire l’azione necessaria (in base al dispositivo) al fine di impostarlo in modalità “flash”.

La modalità “flash” è la modalità nella quale l’ESP8266 si predispone ad accogliere un nuovo firmware, oppure a concedere la lettura del firmware preesistente, oppure cancellarlo.

N.b. Non tutte le board hanno bisogno di essere impostate in modalità flash per provvedere alla riprogrammazione del firmware. Il Wemos D1 Mini, per esempio, una volta collegato via cavo USB/micro USB al computer di appoggio è automaticamente pronto ad accogliere il nuovo firmware.

Per fare ciò è necessario – solitamente – collegare tra loro due punti specifici della board: il punto denominato GPIO0 e il contatto usato anche in connessione dell’USB/TTL denominato GRN (ground, terra). Questi due punti devono essere messi a contatto tra di loro mentre si collega l’USB/TTL alla porta USB, dopodiché vanno disconnessi.

Ricapitolando:

  • collego l’USB/TTL alla board;
  • metto in connessione GPIO0 e GND;
  • collego la porta USB dell’USB con la porta USB del computer;
  • rimuovo la connessione tra GPIO0 e GND.

A questo punto il dispositivo sarà in modalità “flash”.

La procedura può risultare complicata, ma spesso ci viene in aiuto la natura stessa del dispositivo. Alcuni, infatti, invece di obbligarci a cercare il GPIO0 e trovare il modo di collegarlo con un filo al GND ci offrono delle soluzioni specifiche. Per esempio, nel caso del Sonoff Basic è sufficiente tenere premuto il pulsante presente sulla board durante la connessione USB per farlo entrare in modalità “flash”.

Come mandare in flash mode il proprio dispositivo dev’essere oggetto di ricerca personale. Abbiamo però messo a disposizione un elenco di tecniche relative ai Sonoff:

Come impostare la modalità “flash” nei dispositivi Sonoff

UPLOAD

A questo punto tutto è pronto per riprogrammare il dispositivo:

  • abbiamo effettuato la configurazione e la compilazione del firmware;
  • abbiamo impostato la modalità “flash” sul dispositivo”

quindi non ci resta che sovrascrivere il firmware sul dispositivo tramite upload.

N.b. in caso si voglia effettuare un backup del firmware preesistente, fare una piccola deviazione al capitolo seguente.

Per avviare la procedura, cliccare presso Atom su:

Menu: PlatformIO > Upload

così facendo, il software provvederà a collegarsi al dispositivo tramite l’adattatore USB/TTL e provvederne così alla sua riprogrammazione.

Se al termine della procedura apparirà “SUCCESS” (analogamente alla schermata relativa alla compilazione del firmware), tutto sarà andato per il verso giusto. In caso invece la procedura fallisca (“FAILED“), ripetere i passi sopra, avendo cura di verificare con attenzione la configurazione della COM e delle connessioni.

VERIFICHE

Una volta andata a buon fine la riprogrammazione è necessario verificare che tutto funzioni correttamente. Disconnettete il cavo USB per poi riconnetterlo subito, questa volta SENZA impostare in modalità “flash” il dispositivo: questo farà sì che esso venga alimentato e cominci a funzionare normalmente senza che entri in modalità di programmazione.

A questo punto il dispositivo si sarà acceso e sarà entrato nella nostra Wi-Fi, in quanto già informato rispetto alle coordinate d’accesso. Per collegarsi ad esso è però necessario scoprire quale IP il nostro router gli abbia assegnato, cosa che a priori non possiamo conoscere.

Per far questo è sufficiente cliccare su  “PlatformIO > Serial Monitor” e, nella schermata che segue:

selezionare alla voce “Baudrate” impostare “115200“, mentre il campo “Port‘ dovrebbe configurarsi automaticamente sulla base della porta COM assegnata dal computer all’adattatore USB/TTL.

Cliccando su “Start” dovrebbe apparire una schermata come segue:

PlatformIO-Tasmota-confi

la quale dovrebbe indicare l’IP ottenuto dal dispositivo nel momento in cui è entrato nella rete Wi-Fi, in questo caso “10.0.1.43“. Ora, aprendo un qualsiasi browser sul proprio computer, si inserisca nell’indirizzo l’IP poco fa ottenuto e premere invio.

Il tipo di interfaccia varia in base al firmware; in caso di Tasmota dovrebbe apparire una schermata analoga a quella che segue:


Caso 2: aggiornamento o nuovo firmware (con AP)

Se il firmware che andremo a installare è un aggiornamento precompilato oppure un firmware ex-novo precompilato il quale fornisca modalità AP, allora la procedura è certamente più semplice.

Nel primo caso (aggiornamento), le strade sono due:

  • aggiornamento con connessione fisica;
  • aggiornamento via OTA (Over-The-Air), se offerto dal firmware;

nel secondo caso, la strada è solo quella di un aggiornamento tramite connessione fisica, ma senza il bisogno di utilizzare Atom (come nel “Caso 1“) per compilare e poi uploadare il firmware.

Analizziamo prima la modalità di aggiornamento OTA, poi le due casistiche per le quali è prevista la connessione fisica, per l’aggiornamento o per nuovo firmware dotato di modalità AP.Connessione fisica

Laddove si tratti di installare un aggiornamento non effettuabile OTA oppure un nuovo firmware dotato di modalità AP, allora la modalità che prevede connessione fisica rimane l’unica possibilità.

A differenza del “Caso 1“, in questo scenario non abbiamo bisogno di compilare a mano il firmware, perché:

  • inviando un aggiornamento, andremmo a sovrascrivere solo il firmware, mentre la porzione di memoria contenente le informazioni necessarie all’accesso alla Wi-Fi non verrebbe toccata, pertanto al riavvio post-aggiornamento il dispositivo sarebbe nella possibilità di rientrare in rete senza problemi;
  • inviando un firmware ex-novo dotato di modalità AP, post-riprogrammazione il dispositivo non saprebbe su quale Wi-Fi accedere (a differenza del “Caso 1”), ma offrendosi come Access Point permetterebbe l’utente di accedere ad esso, fornirgli le coordinate di accesso alla Wi-Fi domestica, risolvendo così il problema a valle.

In questo scenario, ogni volta che si riprogramma con nuovo firmware un dispositivo ESP8266 la procedura è la seguente:

  • scaricare l’ultima versione del firmware in formato precompilato;
  • collegare l’adattatore USB/TTL alla board del dispositivo;
  • scoprire la porta COM ad esso assegnata;
  • collegare l’adattatore USB/TTL alla USB del computer avendo cura di impostare il dispositivo in modalità “flash;
  • effettuare l’upload del firmware;
  • verificare la bontà della riprogrammazione.
ESPTOOL & TASMOTIZER

Per effettuare l’upload del firmware utilizzeremo esptool, piccolo grande software gratuito il quale permette di

  • effettuare la riprogrammazione di un dispositivo ESP8266;
  • effettuare il backup del firmware di cui è dotato un dispositivo ESP8266;
  • effettuare la cancellazione totale del firmware di cui è dotato un dispositivo ESP8266.

Analogamente a come fa Atom, esptool è un software che, tramite l’uso di USB/TTL, permette di riprogrammare il firmare di un dispositivo ESP8266. Inoltre, abilita alla possibilità di effettuare un backup del firmware in uso sul dispositivo, oltre a permettere la cancellazione totale dello stesso.

Uno dei più classici campi di utilizzo di esptool è quello dedicato all’upload di firmware come Ravencore; quest’ultimo è un firmware per ESP in grado di fornire diretta compatibilità con Apple HomeKit ai componenti basati su SOC ESP8266.

Per tutte le operazioni consentite da questo semplice ma potente tool è necessario che il dispositivo sia impostato in modalità “flash”; è inoltre necessario conoscere la porta COM sul quale l’adattatore USB/TTL è configurato presso il computer in uso.

L’upload si effettua tramite un semplice comando, a grandi linee come segue:

esptool.py --port COMx write_flash -fs 1MB -fm dout 0x0 nomefile.bin

Dove COMx è il nome della porta COM sul quale l’adattatore USB/TTL è attestato e nomefile.bin è il nome del file precompilato del firmware da uploadare (che sia un aggiornamento o un firmware ex-novo).

Come effettuare backup, restore (quindi upload) e cancellazione dei firmware su dispositivi ESP8266, la guida è la seguente:

Backup, restore e cancellazione del firmware di un ESP8266 via esptool

esptool ha l’unico limite di essere utilizzabile solo tramite interfaccia a riga di comando; la soluzione (per chi preferisse un’interfaccia grafica) è quella di utilizzate Tasmotizer, tool il quale comunque si basa su esptool (il quale dev’essere installato sul sistema) ma che offre, per l’appunto, una comoda interfaccia (vedi guida).

OTA

L’OTA (Over-The-Air) è invece una procedura che permette di utilizzare la connessione Wi-Fi per aggiornare i firmware. Tale procedura varia da firmware a firmware; solitamente si effettua tramite browser e interfaccia web offerta dal firmware stesso.

Ciò di cui si ha bisogno è, di base, del file compilato del firmware da aggiornare: una volta “dato in pasto” all’interfaccia web, sarà il firmware stesso a provvedere all’aggiornamento di sé. Tale file compilato può essere scaricato come precompilato o compilato manualmente con le tecniche spiegate sopra.

TASMOTA

Per aggiornare un dispositivo precedentemente programmato Tasmota è sufficiente compilare manualmente la versione aggiornata del firmware e recuperare il file “firmware.bin” (vedi la voce “nota bene” alla fine del passaggio indicato indicato). In realtà è necessario prima compilare il firmware “minimal” (ovvero “default_envs = tasmota-minimal” nel file plaformio.ini), accantonare il file “firmware.bin” risultante dalla compilazione, ricompilare il firmware “completo” (“default_envs = tasmota” – oppure distribuzione in lingua – nel file plaformio_override.ini) e mettere da parte il secondo file “firmware.bin“.

In alternativa, è possibile scaricare tali file direttamente dalla rete, messi a disposizione precompilati dallo sviluppatore di tale firmware.

Successivamente, è necessario collegarsi tramite web browser al dispositivo dotato di firmware Tasmota e selezionare “Firmare Upgrade”: alla voce “Upgrade by file upload“, selezionare il file “firmware.bin” di cui sopra relativo alla versione “minimal”, poi cliccare il bottone “Start upgrade” e attendere semplicemente la conclusione dell’operazione. Al termine, ricollegarsi all’interfaccia web e rifare la procedura, questa volta passandogli il file “firmware.bin” del firmware “completo”.

Qui è disponibile una guida dedicata all’aggiornamento massivo dei Tasmota con un’unica operazione centralizzata oppure singolarmente.


Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa.