Trasferimento di file da UBUNTU a ESP

Transcript

Trasferimento di file da UBUNTU a ESP
Trasferimento di file da UBUNTU a ESP-8266.
Premessa
I System on Chip (SoC) Espressif ESP-8266 dispongono di due canali di comunicazione
teoricamente utilizzabili per scambiare dati con il mondo esterno: l'interfaccia WiFi e la seriale
RS232; quest'ultima è generalmente la soluzione prescelta per l'aggiornamento del software.
Sfortunatamente le porte seriali sono state dichiarate obsolete oltre vent'anni fa per cui i normali PC
ne sono sprovvisti, ragione per cui si è in genere costretti a ricorrere a dei cavetti di conversione
speciali come quelli basati sui chip della FTDI, per cui prima ancora di affrontare il problema del
trasferimento dei file sui piastrini ESP bisogna risolvere la questione dell'installazione e/o
dell'attivazione dei driver di controllo dei convertitori FTDI, fatto che comporta una sere di passi
che potrebbero non essere del tutto ovvi (sopratutto se si opera in ambiente Linux).
Driver FTDI per Linux
Stando a ciò che è riportato nelle "Application Note AN220: FTDI Driver Installation Guide for
Linux" la FTDI fornisce due tipi di driver per ciascuno dei diversi sistemi operativi supportati: i
virtual COM port driver (VCP) e i D2XX API driver.
In queste note ci concentreremo sui primi (VCP) poiché hanno il pregio di essere spesso già
installati nel kernel di Linux.
Per verificare la funzionalità della porta seriale bisogna innanzitutto collegare il convertitore FTDI
al nostro PC inserendolo in una porta USB. Ciò può essere patto inserendo direttamente il
convertitore, nel caso in cui questo abbia la forma di una chiavetta, oppure collegando la spina USB
nel caso in cui il convertitore si presenti come un cavo con due connettori di tipo diverso (USB e
RS232).
Inserita la spiana per attivare il convertitore e verificarne la funzionalità del driver (che si chiama
ttyUSBx dove x è un numero) bisognerà aprire una finestra di terminale e digitare:
dmesg | grep FTDI I
il sistema operativo mostrerà alcune righe di informazioni, la più importante delle quali è quella che
ci fornisce la conferma del nome del driver (che nel caso seguente è :ttyUSB0)
[
[
[
[
436.814756]
437.962229]
437.962347]
437.963449]
usb 2-1.1: Manufacturer: FTDI
usbserial: USB Serial support registered for FTDI USB Serial Device
ftdi_sio 2-1.1:1.0: FTDI USB Serial Device converter detected
usb 2-1.1: FTDI USB Serial Device converter now attached to ttyUSB0
Effettuata la verifica dovremo aggiungere il nostro nome utente (ad esempio pippo) al gruppo
dialout digitando:
sudo adduser pippo dialout I
se non ci sono problemi il sistema operativo confermerà l'esecuzione del comando con la parola
“done”.
Adding user `pippo' to group `dialout' ...
Adding user pippo to group dialout
Done.
Infine occorrerà cambiare i permessi di utilizzo del device digitando:
sudo chmod a+rw /dev/ttyUSB0 I
Trasferimento dei file utilizzando nodemcu-httpserver-master
Gli utenti di Linux potrebbero essere interessati ad avvalersi di nodemcu-httpserver-master
poiché tale strumento è compatibile con la catena di compilazione GNU, per cui si prospetta la
possibilità di automatizzare il caricamento (upload) dei file sui piastrini ESP avvalendosi dei
tradizionali makefile.
Nel caso in cui si utilizzasse il compilatore C del SDK dalla Espressif si potrebbe teoricamente
immaginare di inserire il comando di caricamento al termine della sequenza di compilazione, in
modo da effettuare automaticamente il caricamento degli eseguibili nel caso di completamento
senza errori delle operazioni precedenti.
Per utilizzare nodemcu-httpserver-master bisogna innanzitutto scaricarlo da Internet
(https://github.com/marcoskirsch/nodemcu-httpserver), estrarre la directory contenuta nel pacchetto
compresso e ricompilare l'eseguibile.
Rigenerato l'eseguibile per poter utilizzare lo strumento per caricare i file dell'esempio su di un
piastrino ESP è necessario ancora un piccolo intervento
Poiché nodemcu-httpserver-master è stato sviluppato apparentemente in ambiente Apple, è
bisogna modificare il makefile di caricamento sostituendo il nome delle porte del Mac con
quello precedentemente ottenuto (ad esempio ttyUSB0).
Nel caso in cui non ve lo ricordaste digitate il comando:
dmesg | grep FTDI I
Conoscendo il nome della porta RS232 associata al convertitore FTDI basterà editare il makefile
e sostituire la riga:
PORT=/dev/cu.SLAB_USBtoUART
facente riferimento alle seriali del Mac con:
PORT=/dev/ttyUSB0
dopodiché per effettuare l'uploading dei file elencati nel makefile sul piastrino non si dovrà far
altro che digitare il comando:
make I
Riferimenti:
http://www.ftdichip.com/Support/Documents/AppNotes/AN_220_FTDI_Drivers_Installation_Guid
e_for_Linux%20.pdf
https://github.com/marcoskirsch/nodemcu-httpserver