Programmatore di ESP8266-01 definitivo

ESP8266-programmer-ultimate-flash-reset-GPIO Programmatore di ESP8266-01 definitivo Fai da te (DIY)

Gente, immagino abbiate già un’idea di cosa sono i moduli wifi basati su chip ESP, dal “vecchio” ESP8266 al più recente ESP32. Se vi siete mai interessati di IOT questi li conoscete già. Quello che forse non sapete è che anche il minuscolo ESP8266-01 ha delle potenzialità eccezionali (oltre che un costo ridicolo). Ovviamente, per sfruttarle al meglio, può vi servire il programmatore di ESP8266-01 definitivo.

Col giusto software, il piccolo ESP 01 non solo può fornire connessione WiFi al vostro progetto, ma può DIVENTARE IL VOSTRO PROGETTO.

Tipo? Beh, può diventare un WiFi repeater, molto utile per estendere la portata del vostro router con -circa- 2€ di spesa. Oppure potrebbe diventare un divertente molestatore di reti WiFi per trollare i vostri amici, sia creando dozzine di reti fittizie, sia disconnettendoli da quella vera. Questi firmware saranno trattati in articoli dedicati ma già da ora vi ricordo che lo scherzo è bello finchè dura poco: fate in modo che la cosa sia divertente per tutti e non fate cazzvolate (soprattutto considerate l’aspetto legale della cosa, ognuno è responsabile di quello che fa). Volendo potete attaccare il modulo sopra un relè e farlo diventare un “attuatore IOT”, o anche collegarlo ad un termometro, facendolo diventare un “sensore IOT”, che magari vi salva il trend di temperatura e umidità su un server MQTT.

Sicuramente farò altri articoli sui diversi firmware, questa pagina invece sarà dedicata alla creazione del programmatore, che è abbastanza utile se si vogliono provare parecchi firmware (d’ora in poi “FW”) diversi.

Modulo e adattatore di base

ESP8266-programmer-ultimate-flash-reset-GPIO-modules-801x1024 Programmatore di ESP8266-01 definitivo Fai da te (DIY)

Sfortunatamente l’ESP8266-01 non è stato creato per essere piazzato su una breadboard, infatti anche per questo ci sono adattatori appositi. In più il suo funzionamento intrinseco non aiuta. Programmarlo e debuggarlo è una cosa abbastanza noiosa per via di cavetti da spostare e rispostare, e comunque è richiesto un adattatore seriale-USB, visto che il modulo base ne è sprovvisto.

Poco male, avrà pensato qualcuno, si fa presto a disegnare un modulino dedicato, con una UART e dei pin femmina dedicati per L’ESP. Infatti i primi modulini seriali-USB dedicati sono usciti presto, e sono effettivamente comodi per inviare comandi AT all’ESP.

Con questi primi moduli il processo dell’upload del nuovo FW è molto, molto veloce: non si può caricare nessun FW!  (⊙_☉)

Imbarazzante, ma non è tutto. Dopo un po’ qualcuno ha pensato che la possibilità di caricare altro software non era proprio da buttare, quindi ha creato un altro modulo con un selettore a slider (interruttore bistabile) che può impostare il modulo in flashing mode, cioè la modalità che lo rende pronto per ricevere il nuovo FW. Non si è ben capito a cosa serva avere un bistabile per la selezione della modalità di caricamento del FW. Infatti appena dopo il flash del FW uno normalmente vorrebbe uscire da questa modalità, in modo da far eseguire il nuovo software non appena questo viene caricato, senza dover scollegare e ricollegare l’USB. Ma forse sono solo io che non apprezzo “stimolare” senza motivo le USB il mio PC… Molto bene, è uscita quindi una terza versione del programmatore che stavolta infatti ha un semplice pulsante monostabile al posto dello switch bistabile. Hey, ottima idea! Oddio, il pulsante è un po’ piccolino e un po’ coperto dall’ESP, ma amen, funziona in maniera sensata. Quello che non capisco è cosa costasse aggiungere un secondo pulsantino, per resettare i’ESP senza dover scollegare la USB. Ogni persona ragionevole avrebbe investito -tipo due centesimi- in un secondo pulsante, ma loro no. Hanno deciso che per riavviare la CPU,  cioè per impostarla in flash mode o in modalità normale, si debba ancora togliere e rimettere l’USB.

Ormai sospetto che sia una presa per il culo…  (ಠ_ಠ)

Perché nessun produttore può semplicemente copiare questo, questo, questo o anche questo design e farci programmare gli ESP-01 in pace senza molestare le USB???   (ノ☉ヮ☉)ノ

Ma niente paura, se non possiamo comprarlo possiamo sempre costruirlo. Con un paio di pulsanti e un po’ di cavo creeremo il nostro “Programmatore di ESP8266-01 definitivo”.

Aggiungete anche il mio case dedicato da stampare in 3D e potrete digievolvere lo “stupido” programmatore base in uno strumento carino e funzionale. Dopo varie prove ho deciso di progettare il case per i classici e diffusissimi pulsanti da PCB da 6x6mm, noti anche come “pulsanti tattili” da PCB. Per i meno distratti: si, nelle varie foto vedrete dei pulsanti diversi. Ho semplicemente deciso di cambiarli con alcuni che avevano il “gambo” più lungo per mia semplice comodità, anche quelli col gambo corto sono facilmente raggiungibili.

Ora è il momento dei link (affiliati) dei moduli:

ESP8266-01: Bangood, Amazon.

ESP8266-01 modulo programmatore: Bangood, Amazon.

Pulsanti: Bangood, Amazon.

Per costruire il tutto vi servono solo minime attrezzature per fare saldature, se vi manca qualche attrezzo potete dare un’occhio qui.

Cablaggio e assemblaggio

ESP8266-programmer-ultimate-flash-reset-GPIO-wiring-scheme Programmatore di ESP8266-01 definitivo Fai da te (DIY)

Guardando il modulo da sotto, c’è solo da connettere i due pulsanti al pin GND e rispettivamente al Gpio0 (per il flash mode) e al pin di reset. I pulsanti hanno quattro terminali, serve che vi dica che i fili devono essere saldati ai terminali “sullo stesso lato”? Mi sento buono e ve lo dico…  I fili devono essere tagliati di una misura adeguata, non c’è troppissimo spazio all’interno. Comunque fate prima le saldature  e poi incollate i pulsanti, altrimenti la faccenda si complica.

ESP8266-programmer-ultimate-flash-reset-GPIO-soldering-726x1024 Programmatore di ESP8266-01 definitivo Fai da te (DIY)

Una volta fatte le saldature non resta che incollare i pulsanti al case, io ho usato del Super Attack, fate solo attenzione ad incollare i pulsanti al case e non i pulsanti al loro interno. Ora, prima di incollare le due metà del case, suggerisco un check che i pulsanti facciano il loro lavoro (mettete il multimetro a bippare se legge continuità, puntate i terminali sui pin in questione e premete il pulsante). Anche qualche goccia di colla a caldo sui terminali esposti dei pulsanti non farà male, eviterete cortocircuiti nel caso l’incollaggio di un pulsante non venga bene e si muova.

ESP8266-programmer-ultimate-flash-reset-GPIO-programming-test-1002x1024 Programmatore di ESP8266-01 definitivo Fai da te (DIY)

Molto bene, ora incolate le due metà e avrete realizzato il vostro programmatore di ESP8266-01 definitivo!

536c814e4dc7826d26eca79836f6a4d8_preview_featured Programmatore di ESP8266-01 definitivo Fai da te (DIY)

Utilizzo

Ora le nostre fatiche saranno ripagate…dopo aver installato i driver…

Il nostro programmatore di ESP usa il chip USB/seriale CH340G, non farò un tutorial per ogni sistema operativo, anche perchè ormai è un chip diffuso e le guide si sprecano. Diciamo che per velocizzare i più, per Windows potete leggere qui.

Fatto questo siamo a cavallo, l’utilizzo è banale. Con un pulsante riavviate la cpu, con l’altro impostate la flash mode (quindi premete e rilasciate il pulsante di reset mentre tenete premuto il pulsante di flash).

Ora avrete un’interfaccia molto COM-oda da usare come target per caricare il FW che preferite. Potete usare l’IDE di Arduino, i tool della Expressif, o enne altri strumenti.

State sintonizzati per gli articoli sui FW che penso valga la pena conoscere e/o provare!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.