Riprogrammiano il modulo ESP8266

ESP8266 è un SoC GENIALE che associa un processore low-power a 32bit alla potenza di un chip WiFi 802.11 b/g/n capace di funzionare anche in modalità access point e tutto per meno di 5 dollari.

esp

ESP8266 di default contiene un firmware capace di replicare una seriale a distanza mediante il canale WiFi e funzionante con comandi AT; mediante tale chip possiamo ad esempio rendere WiFi una scheda come Arduino o MSP430-Launchpad ma ancora più interessante è la possibilità di riprogrammare il SoC integrando l’applicazione all’interno dello stesso chip.

Incominciamo installando un po di dipendenze e creiamo una directory per l’installazione dei tool necessari alla compilazione dei nuovi firmware. Il tutorial di riferimento si trova qui https://github.com/esp8266/esp8266-wiki/wiki/Toolchain e può essere seguito tranquillamente sebbene nei comandi sia presente qualche piccola imprecisione.

Fatto ciò compiliamo ed installiamo i cross-compilatori che ci permetteranno di compilare gli eseguibili per questa architettura e ricordiamoci di aggiungere al path la directory dei binari.

Personalmente mi è capitato di avere  qualche difficoltà nell’installare tutti i pacchetti a causa di alcuni server non raggiungibili ma è bastato riprovare a distanza di qualche ora per vedere il tutto funzionare.

Possiamo installare ora l’SDK  del modulo con i comandi seguenti.

Cambiamo le directory di compilazione nel makefile aggiornandole con quelle installate …

… e scarichiamo un po di librerie e di header file che ci serviranno per i nostri progetti.

Scarichiamo ed installiamo esptool ed esptool.py.

Per chi non ha pazienza esiste anche un’immagine per VirtualBox sviluppata ad-hoc per lavorare con ESP8266 e disponibile all’indirizzo http://bbs.espressif.com/viewtopic.php?f=5&t=2.

Possiamo quindi compilare un esempio, utilizziamo Blinky che va scaricato e compilato digitando i seguenti comandi.

Se tutto ha funzionato dovremmo ottenere due files nella cartella firmware ovvero firmware/0x00000.bin e firmware/0x4000.bin non rimane che collegare il modulo e programmarlo.

ESP8266_PINOUT_zps7b7f8eb6

I pin del modulo vanno collegati nel seguente modo:

  • TX da collegare al pin TX della seriale
  • CH_PD da collegare al positivo dell’alimentazione (+3,3 volts)
  • RST da non collegare
  • +3v3 da collegare all’alimentazione (+3,3 volts)
  • GND da collegare al negativo dell’alimentazione
  • GPIO2 da collegare al positivo dell’alimentazione (+3,3 volts)  per la fase di programmazione 
  • GPIO1 da collegare al negativo dell’alimentazione per la fase di programmazione 
  • RX da collegare al pin RX della seriale

ATTENZIONE! Il modulo necessita una alimentazione a 3,3 Volts e può arrivare a consumare più di 200mA! E non dite che non vi avevo avvertito … Se però il modulo fa un po di fumo non necessariamente è un errore vostro … su qualche modulo è stata montata una resistenza da 4,7 Ohm invece che da 4,7k Ohm per limitare (o forse sarebbe meglio dire NON limitare) la corrente che circola nel led rosso (maggiori informazioni qui http://rayshobby.net/?p=10241).

Effettuato tutti i collegamenti si può lanciare il comando di programmazione del dispositivo controllando che nel Makefile la porta seriale corrisponda a quella realmente in uso sul computer.

Questo comando consente di riprogrammare l’ESP8266 caricandoci sopra i nostri firmware custom e rendendo il modulo totalmente indipendente … beh niente male per un modulo da 5 dollari!!!

Email this to someoneShare on FacebookShare on Google+Share on LinkedInTweet about this on TwitterPin on PinterestPrint this page

5 Comments


  1. Veramente molto ermetica la spiegazione .

    Penso che qualche indicazione vada data ai lettori !!!

    In sostanza non si capisce che cosa si deve fare e per ottenere che cosa !

    Grazie

    Ambro

     

    Reply

  2. Ciao Ambro,

    hai ragione, questa è una introduzione  a come flashare NodeMCU su ESP, ma poi per farci qualcosa occorre caricare uno script in Lua.

    Se sei impaziente trovi qualche esempio qui

    http://nodemcu.com/index_en.html

    altrimenti aspetta un mio prossimo post 🙂 per una moodlight basata su ESP!

     

    Ciao,

    IW2HJD

    Reply

    1. Ciao Raffa,
      urca che bella board 🙂

      Dovrebbe bastare l’USB on board e premere il pulsante flash dopo aver lanciato il comando opportuno. Se c’è il firmware di default e ti colleghi con putty (115200bps 8N1 – confermo) ti dovrebbe rispondere al comando AT dicendoti OK. Funziona?

      Ciao,
      Valerio

      ESPlorer e LuaLoader possono aiutarti

      Reply

      1. Ciao Valerio,

        ho lottato tanto … alla fine cercando, cercando, cercando … ho provato a mettere i paremetri a 9600 e il tutto mi funzionava. Ho visto anche Esplorer.

        Grazie 1000 e buoni progettini. Hai guadagnato una persona in più che ti segue 🙂

        Ciao Raffa

        Reply

Leave a Reply

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