Esp8266: differenze tra le versioni
(firmware stub) |
m (Aggiunto die-shot) |
||
(6 versioni intermedie di 2 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
=== Hardware === | === Hardware === | ||
Informazioni sulla famiglia NodeMCU: https://www.esp8266.com/wiki/doku.php?id=esp8266-module-family | |||
Schematiche: https://github.com/nodemcu/nodemcu-devkit-v1.0/blob/master/NODEMCU_DEVKIT_V1.0.PDF | Schematiche: https://github.com/nodemcu/nodemcu-devkit-v1.0/blob/master/NODEMCU_DEVKIT_V1.0.PDF | ||
Pinout: https://github.com/nodemcu/nodemcu-devkit-v1.0/blob/master/Documents/NODEMCU_DEVKIT_V1.0_PINMAP.png | Pinout: https://github.com/nodemcu/nodemcu-devkit-v1.0/blob/master/Documents/NODEMCU_DEVKIT_V1.0_PINMAP.png | ||
Die shot: https://zeptobars.com/en/read/Espressif-ESP8266-wifi-serial-rs232-ESP8089-IoT | |||
==== Caveat ==== | ==== Caveat ==== | ||
Riga 9: | Riga 12: | ||
* D4 (GPIO2) e D8 (GPIO15) all'avvio devono essere rispettivamente HI e LOW (tramite dei pull-up/down già presenti), per cui *dovrebbero* essere usati come output. | * D4 (GPIO2) e D8 (GPIO15) all'avvio devono essere rispettivamente HI e LOW (tramite dei pull-up/down già presenti), per cui *dovrebbero* essere usati come output. | ||
* D9 (GPIO3) e D10 (GPIO1) sono condivisi con la seriale (RXD0 e TXD0). | * D9 (GPIO3) e D10 (GPIO1) sono condivisi con la seriale (RXD0 e TXD0). | ||
* D0 (GPIO16) è stupido, può essere solo scritto/letto, ma non supporta PWM o qualunque altra cosa. È usato per risvegliare il processore. | * D0 (GPIO16) è stupido, può essere solo scritto/letto, ma non supporta PWM o qualunque altra cosa. È usato per risvegliare il processore. | ||
* D11 (GPIO9) e D12 (GPIO10) sono sul lato opposto, ed etichettate come SD2 e SD3. | |||
* I pin etichettati con SD* (compresi SD2 e SD3) sono i pin SPI, e sono collegati internamente alla flash. | |||
* SD3 (D12) può essere usato come PWM/interrupt (a proprio rischio e pericolo, visto che è connesso anche alla flash), mentre il medesimo uso di SD2 (D11) provoca un reset e riavvio del sistema. | |||
Complessivamente vi sono 8 GPIO completamente funzionali, 10 se si rinuncia alla seriale, e 11 usando uno dei pin usati per la flash. | |||
=== Installazione toolchain === | === Installazione toolchain === | ||
Si raccolgono qui le procedure di installazione della toolchain per programmare l'Esp8266, nei vari casi d'uso. | Si raccolgono qui le procedure di installazione della toolchain per programmare l'Esp8266, nei vari casi d'uso. | ||
==== Linux generico ==== | ==== Linux generico ==== | ||
https://www.esp8266.com/wiki/doku.php?id=toolchain#how_to_setup_a_vm_to_host_your_toolchain | * https://www.esp8266.com/wiki/doku.php?id=toolchain#how_to_setup_a_vm_to_host_your_toolchain | ||
Scaricare esptool.py per fare il flashing: https://github.com/espressif/esptool | * Scaricare esptool.py per fare il flashing: https://github.com/espressif/esptool | ||
==== Arch Linux ==== | ==== Arch Linux ==== | ||
La procedura generica non funziona, almeno non con l'ultima versione di GCC. | La procedura generica non funziona, almeno non con l'ultima versione di GCC. | ||
È disponibile un | È disponibile un [https://aur.archlinux.org/packages/esp-open-sdk-git/ pacchetto AUR]: | ||
$ git clone https://aur.archlinux.org/esp-open-sdk-git.git | $ git clone https://aur.archlinux.org/esp-open-sdk-git.git | ||
$ makepkg - | $ makepkg -si | ||
Il PKGBUILD scaricherà e compilerà il toolchain. La procedura è decisamente lenta (>40 min). | Il PKGBUILD scaricherà e compilerà il toolchain. La procedura è decisamente lenta (>40 min). | ||
Installare esptool: | Installare esptool: | ||
# pacman -S esptool | # pacman -S esptool | ||
Riga 42: | Riga 45: | ||
In questo modo, fra le altre cose si vedono le specifiche della scheda e le dimensioni della flash (typ. 4MB). | In questo modo, fra le altre cose si vedono le specifiche della scheda e le dimensioni della flash (typ. 4MB). | ||
A questo punto è possibile compilare e flashare il firmware: | |||
$ cd nodemcu-firmware | |||
$ make | |||
$ make flash4m | |||
A questo punto il dispositivo dovrebbe essere pronto ad accogliere i file .lua! | |||
A questo scopo si può usare esplorer (https://github.com/4refr0nt/ESPlorer), disponibile in AUR per Arch. | |||
[[Categoria:Hardware]] | |||
[[Categoria:HowTo]] | |||
[[Categoria:Elettronica]] |
Versione attuale delle 17:54, 2 giu 2018
Hardware
Informazioni sulla famiglia NodeMCU: https://www.esp8266.com/wiki/doku.php?id=esp8266-module-family
Schematiche: https://github.com/nodemcu/nodemcu-devkit-v1.0/blob/master/NODEMCU_DEVKIT_V1.0.PDF
Pinout: https://github.com/nodemcu/nodemcu-devkit-v1.0/blob/master/Documents/NODEMCU_DEVKIT_V1.0_PINMAP.png
Die shot: https://zeptobars.com/en/read/Espressif-ESP8266-wifi-serial-rs232-ESP8089-IoT
Caveat
- D3 (GPIO0) DEVE essere usato come output, visto che è condiviso con la funzione di flash, se è basso all'avvio il SoC entra in modalità flash.
- D4 (GPIO2) e D8 (GPIO15) all'avvio devono essere rispettivamente HI e LOW (tramite dei pull-up/down già presenti), per cui *dovrebbero* essere usati come output.
- D9 (GPIO3) e D10 (GPIO1) sono condivisi con la seriale (RXD0 e TXD0).
- D0 (GPIO16) è stupido, può essere solo scritto/letto, ma non supporta PWM o qualunque altra cosa. È usato per risvegliare il processore.
- D11 (GPIO9) e D12 (GPIO10) sono sul lato opposto, ed etichettate come SD2 e SD3.
- I pin etichettati con SD* (compresi SD2 e SD3) sono i pin SPI, e sono collegati internamente alla flash.
- SD3 (D12) può essere usato come PWM/interrupt (a proprio rischio e pericolo, visto che è connesso anche alla flash), mentre il medesimo uso di SD2 (D11) provoca un reset e riavvio del sistema.
Complessivamente vi sono 8 GPIO completamente funzionali, 10 se si rinuncia alla seriale, e 11 usando uno dei pin usati per la flash.
Installazione toolchain
Si raccolgono qui le procedure di installazione della toolchain per programmare l'Esp8266, nei vari casi d'uso.
Linux generico
- https://www.esp8266.com/wiki/doku.php?id=toolchain#how_to_setup_a_vm_to_host_your_toolchain
- Scaricare esptool.py per fare il flashing: https://github.com/espressif/esptool
Arch Linux
La procedura generica non funziona, almeno non con l'ultima versione di GCC. È disponibile un pacchetto AUR:
$ git clone https://aur.archlinux.org/esp-open-sdk-git.git $ makepkg -si
Il PKGBUILD scaricherà e compilerà il toolchain. La procedura è decisamente lenta (>40 min).
Installare esptool:
# pacman -S esptool
Download firmware con supporto LUA
$ git clone https://github.com/nodemcu/nodemcu-firmware
Collegare l'ESP tramite una MicroUSB al computer, e verificare il funzionamento:
$ esptool --port <serial-port> flash_id
In questo modo, fra le altre cose si vedono le specifiche della scheda e le dimensioni della flash (typ. 4MB).
A questo punto è possibile compilare e flashare il firmware:
$ cd nodemcu-firmware $ make $ make flash4m
A questo punto il dispositivo dovrebbe essere pronto ad accogliere i file .lua!
A questo scopo si può usare esplorer (https://github.com/4refr0nt/ESPlorer), disponibile in AUR per Arch.