Errori durante la programmazione del ESP8266

Errori durante la programmazione del modulo WiFi ESP8266

Chiunque abbia avuto a che fare con i moduli WiFi basati sul SoC (System on Chip) ESP8266, conosce come la loro programmazione possa essere un vero e proprio inferno. In questo breve articolo andrò a descrivere la mia esperienza.

Tralasciamo la parte di installazione del SDK, del IDE e di tutti i tools software necessari allo sviluppo del software ed alla successiva programmazione e soffermiamoci solo ed esclusivamente sull’hardware per la programmazione.

I moduli basati sul ESP8266, come l’ESP-03 o l’ESP-12, si programmano semplicemente tramite un convertitore USB – seriale TTL con tensione del livello logico positivo pari a 3.3V. Questi convertitori, in inglese, sono chiamati USB to serial o USB to serial TTL e nella maggior parte dei casi montano chip della FDTI (leader di mercato) o altri chip come il CH340, CH341, ecc.

La programmazione sembrerebbe quindi semplicissima: basta connettere 3 fili (TX, RX e GND) dal modulo al convertitore USB, avviare il modulo nello stato di programmazione e lanciare ESPTOOL per effettuare la programmazione:

Se si è fortunati, la programmazione si conclude correttamente al 100% ma se per caso ESPTOOL si interrompe bruscamente rilasciando questo errore,

potete star certi che inizieranno i problemi. Riprovando più volte a programmare il modulo, la percentuale di avanzamento può variare ma inesorabilmente non arriva a conclusione. Sono stato un giorno a cercare di capire cosa potesse essere il bug dietro a questo problema: ho verificato il Makefile, ho provato ad effettuare la programmazione da un PC WIndows, OSX e Linux, ho modificato ESPTOOL, ho provato più moduli (ESP-03, ESP-12). Tutto inutilmente.

Preso dallo sconforto ho iniziato a prendere in considerazione l’unica cosa nella catena di programmazione che non avevo mai considerato e che davo per scontato non avesse problemi: il convertitore seriale-USB.

Il convertitore che stavo utilizzando era il seguente

USB-Serial converter FT232RL

USB-Serial converter FT232RL

basato sul chip della FDTI FT232RL ed acquistato su Ebay a pochi euro. Non avrei mai potuto pensare che fosse il convertitore il problema dato che osservavo perfettamente tutti i messaggi inviato dal modulo. Nonostante questo, il convertitore non può essere usato per programmare l’ESP8266. Cercando in rete ho anche scoperto che questo modulo monta un chip FDTI non originale (clone cinese) che è l’origine dei problemi. Cambiato il convertitore USB-seriale con un prodotto con chip FDTI originale e non ho più avuto alcun errore.

Sono riuscito a programmare il modulo anche tramite Arduino Due (originale) sfruttando le porte TX e RX come illustrato qui.

Consiglio: per programmare correttamente l’ESP8266 munirsi di un convertitore USB-seriale che monti chip FDTI originali e non siano cloni cinesi. Per esempio:

  1. FTDI FT232RQ (4D Systems uUSB-PA5 Adapter, disponibile qui)
  2. FTDI FT232H (C232HD-EDHSP-0 cable, disponibile qui)

 

Chi volesse, può inviarmi foto e modello del convertitore USB-seriale che utilizza per programmare correttamente i vari moduli basati sul ESP8266 e sarò ben contento di aggiungerli all’articolo.

 

Ciao!!!


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *