Dopo aver utilizzato in alcuni esempi il firmware MicroPython sulla scheda ESP8266
MicroPython – Esempi nodi con DHT11, Relé ed MQTT
in questo articolo viene mostrato come generare il firmware MicroPython per la scheda ESP8266.
Il sistema operativo è Debian 9 già incontrato in precedenza per le utility esptool
MicroPython – Python su dispositivi embedded
Collegarsi con l’utenza scelta su Debian 9, sviluppo nel nostro caso; sotto la home creare la cartella Micropython e successivamente la cartella esp8266
1 2 3 4 |
mkdir Micropython cd MicroPython mkdir esp8266 cd esp8266 |
Il codice sorgente di MicroPython è presente al link
Le istruzioni per compilare il firmware per l’ESP8266 sono presenti al link
Clonare il repository
1 |
git clone https://github.com/micropython/micropython |
Scaricare il cross compilatore, come indicato qui
Come indicato al link sopra, scarichiamo i sorgenti del cross compilatore sempre dalla cartella esp8266
1 |
git clone --recursive https://github.com/pfalcon/esp-open-sdk |
Installare i prerequisiti per la compilazione
1 |
sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial sed git unzip bash help2man wget bzip2 libtool-bin |
Procedere alla compilazione del cross compilatore
1 2 |
cd esp-open-sdk make STANDALONE=y |& tee make0.log |
Dopo la compilazione esportare nel PATH la cartella dei binari del cross compilatore
1 |
export PATH=/home/sviluppo/Micropython/esp8266/esp-open-sdk/xtensa-lx106-elf/bin:$PATH |
Accedere alla cartella micropython presente in ~/Micropython/esp8266
1 |
cd ~/Micropython/esp8266/micropython |
Eseguire
1 |
git submodule update --init |
per aggiungere le dipendenze esterne.
Si compila il cross compilatore MicroPython
1 |
make -C mpy-cross |
Si compila infine l’immagine per l’ESP8266 con il comando
1 2 3 |
cd ports/esp8266 make axtls make |
Il firmware è generato nella cartella ports/esp8266/build con il nome firmware_combined.bin.
Procedere al caricamento del firmware sulla scheda con il comando
1 |
esptool.py --port /dev/ttyXXX erase_flash |
dove in /dev/ttyXXX va inserito il riferimento alla porta seriale cui è connesso l’ESP8266.
Nel nostro caso il deploy ha avuto esito positivo con il comando
1 |
make PORT=/dev/ttyUSB0 deploy |
E’ possible caricare l’immagine firmware_combined.bin con il comando
1 |
esptool.py --port /dev/ttyUSBX --baud 460800 write_flash --flash_size=detect 0 firmware-combined.bin |
Nel prossimo articolo si analizza come compilare all’interno del firmware dei moduli aggiuntivi MicroPython
MicroPython – Compilazione MicroPython per ESP8266 con moduli aggiuntivi