ESP32 (2) – L’ambiente di sviluppo

luca 12/12/2016 6

Dopo aver introdotto, nel precedente articolo, il chip ESP32 e la scheda di sviluppo ufficiale di Espressif, oggi vediamo come installare e utilizzare l’ambiente di sviluppo ufficiale.

Vi mostrerò l’installazione in ambiente Windows perché è quella più complessa. L’ambiente di sviluppo e le guide per la sua installazione sono disponibili anche per Linux e MacOS.

Il framework di sviluppo ufficiale per il chip ESP32 è stato rilasciato da Espressif su Github, con licenza opensource (Apache 2.0) e chiamato Espressif IoT Development Framework (idf per brevità).

Per poterlo utilizzare su S.O. Windows, è necessario avere a disposizione una suite di comandi e toolchains GNU (make, bash…). Espressif ha scelto di fornire una versione di MSYS2 già preconfigurata.

Scarichiamo quindi l’archivio ZIP dal sito di Espressif e scompattiamolo nella root del disco C, in modo che tutto venga installato nella sottocartella C:\msys32:

Assicuratevi di utilizzare sempre l’ultima versione della toolchain; il link per il download è disponibile nella documentazione ufficiale

esp32-07

Facciamo doppio click su minigw32.exe per eseguire una shell bash:

esp-idf000

Possiamo ora clonare il repository Github di idf in modo da averne una copia locale. Dobbiamo scegliere una cartella locale dove memorizzare tale copia locale, per semplicità utilizziamo la home dell’utente.

Spostiamoci quindi in tale cartella e lanciamo il comando di clone:

$ cd
$ git clone --recursive https://github.com/espressif/esp-idf.git

esp32-09

E’ possibile che durante l’esecuzione del comando git clone, appaiano alcuni messaggi di errore tipo: not a valid identifier; questi errori sono causati da un bug noto e possono essere ignorati.

Al termine del processo, l’ambiente di sviluppo è disponibile nella sottocartella esp32-idf:

esp32-10

Per poterlo utilizzare durante la compilazione dei nostri progetti, dobbiamo esportare tale path come variabile di ambiente IDF-PATH:

$ export IDF_PATH=~/esp-idf

Colleghiamo la scheda!

Siamo ora pronti per collegare la nostra development board al computer.

Se abbiamo già i drivers corretti, una volta collegata apparirà tra i dispositivi del computer come nuova porta seriale:

esp32-12

In caso contrario, i drivers necessari si trovano sul sito ufficiale di Silicon Labs.

Hello World

Come da prassi, proviamo a compilare e caricare sulla nostra scheda di sviluppo un programmino che stampa a video (tramite la connessione seriale-usb) la scritta Hello world.

Tra gli esempi distribuiti insieme all’ambiente di sviluppo, è compreso proprio 01_hello_world. Per compilarlo, spostiamoci nella sua cartella e lanciamo il comando make:

$ cd
$ cd esp-idf/examples/01_hello_world/
$ make

Ci apparirà un menu di configurazione, di cui parleremo diffusamente in un prossimo articolo. Per ora dobbiamo semplicemente indicare al flasher la porta USB alla quale è collegata la nostra scheda.

Selezioniamo quindi Serial flasher config, quindi /dev/ttyUSB0 (che è quella di default):

esp32-14

Inseriamo il nome della porta corretta (identificata sopra), quindi confermiamo con OkSave ed Exit:

esp32-16

Al termine della compilazione, è possibile caricare il programma sulla scheda utilizzando il comando:

make flash

esp32-17

Se ora ci colleghiamo, tramite un emulatore terminale, alla porta seriale della scheda di sviluppo con la corretta velocità (115200) dovremmo vedere il programma in esecuzione:

esp32-18

(il programma stampa la scritta “Hello world!”, conta 10 secondi e riavvia il chip…)

6 Comments »

  1. Other Paul 10/05/2017 at 11:13 - Reply

    Presumably the Espressif ZIP archive you mentioned will occasionally get updated. As I can find no quick and obvious path to this zip from either github or espressif (I’ve spent the past half-hour looking), could you provide a URL on espressif’s site that points you to their latest zip – on the grounds that such a URL might change less frequently than that to which it refers :)

    • luca 10/05/2017 at 14:48 - Reply

      Hi Paul, you’re right… the best way to find the link is the official documentation. I’ll update the article accordingly

      • Other Paul 10/05/2017 at 16:46 - Reply

        Thanks. But unhappily there is more. Not that it matters to me, but I cannot find any trace of 01_hello_world in the esp-idf gittery (gittage?).

        More seriously, I’m looking to make one of their wifi examples but the make – after several rumblings – just ends up saying that

        … yada yada yada …
        CC flash_qio_mode.o
        CC bootloader_start.o
        AR libmain.a
        LD bootloader.elf
        /bin/sh: python: command not found

        And indeed the distribution shows an absence of python in /usr/bin. Thing is I already have python (both 2.7 and 3) installed under a separate cygwin environment but MSYS2 isn’t in the same universe (its / is not the same as my cygwin’s) and cannot see it. I have so many different IDEs (MPLAB, Atmel, Xilinx, not to mention GNU) living on this machine it’s hard to keep track of which one’s being used for what piece of hardware. :). I suppose I’ll have to install yet another python just for MSYS2. Gaah!

        Just thought I’d mention a first-world problem!

        • luca 10/05/2017 at 21:18 - Reply

          Hi Paul! Try running the “minigw32.exe” executable instead of “msys2.exe”… it should solve your issue

      • Other Paul 10/05/2017 at 23:32 - Reply

        mingw32.exe works – python appears to be known on that route, so thanks! But – although I get a bootloader.bin out of it, it just won’t go via (in my case) /dev/ttyS20 onto the board, Boot buttion has no effect. All I get is

        serial.serialutil.SerialException: could not open port ‘/??/COM21′: WindowsError(123, ‘The filename, directory name, or volume label syntax is incorrect.’)

        As it happens I have a prior prog flashed onto it (via the arduino ide) and I can see its output coming in with a ‘cat < /dev/ttyS20' so I'm pretty confident the mingw config is correct.

        • luca 11/05/2017 at 09:32 - Reply

          Paul if you are under Windows, in menuconfig enter “COM21″ (without quotes) as serial port for the flasher

Leave A Response »

Questo sito usa i cookie per poterti offrire una migliore esperienza di navigazione maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi