ESP-01 NanoBoard (ESP8266)

La ESP-01 NanoBoard è una piccola “motherboard” per i famosi moduli ESP-01 (ESP8266) con alcune funzionalità per facilitarne l’utilizzo: adattatore seriale-USB (CH340), regolatore a 3.3V con fusibile ripristinabile sulla USB, connettore per un alimentatore esterno, expander opzionale di 16 GPIO, connettore I2C, connettore GPIO (ESP-01), connettori per le GPIO dell’espander, circuito per l’upload automatico (da Arduino IDE), tasto USER configurabile con jumper a saldare, tasto RESET, vari led di controllo.

1. Introduzione

L’idea base è stata quella di riutilizzare i moduli ESP-01 che molti hanno nel cassetto per realizzare una schedina “da battaglia” facile da usare e programmare, ideale per principianti e per ambiti “educational”.

Nelle foto seguenti è mostrata una scheda completamente assemblata (ovvero incluse le parti opzionali relative all’expander GPIO realizzato con uno MCP23017 alimentato a 3.3V):

Il breve video seguente mostra la NanoBoard mentre viene effettuato l’upload “automatico” dall’IDE di Arduino di un programma demo che fa lampeggiare il led GPA0 collegato all’expander MCP23017 attraverso una interfaccia I2C:

Da notare che per abilitare l’upload automatico dall’IDE di Arduino è necessario selezionare dal menù “TOOLS” nella riga “Reset Method” il valore “nodemcu” (anziché il valore di default pari a “ck”).

2. L’expander GPIO opzionale

Nello schema elettrico della NanoBoard è prevista una sezione opzionale che può non essere “popolata” sul PCB. Tale sezione è relativa all’expander di 16 GPIO realizzato con un integrato del tipo MCP23017 tramite interfaccia I2C collegata ai pin GPIO0 e GPIO2 del modulo ESP-01.

Poiché il modulo ESP-01 ha solo due pin disponibili come GPIO (GPIO0 e GPIO2), quando viene attivata l’interfaccia I2C non sarà possibile utilizzarli per altro.

Di seguito una NanoBoard  “lite” assemblata senza i componenti opzionali dell’expander:

 

3. Configurazione del tasto USER

Il tasto USER può essere configurato attraverso dei jumper a saldare. Sono possibili due scelte: collegato al pin GPIO0 del modulo ESP-01 in modo da operare come il tasto FLASH del noto modulo nodeMCU, oppure collegato al pin GPA1 dell’espander GPIO (MCP32017).

Utilizzando l’IDE di Arduino la seconda scelta è quella che consiglio, in modo da evitare che il tasto possa eventualmente interferire con la il collegamento I2C che utilizza i pin GPIO0 e GPIO2 dello ESP-01. Naturalmente nel caso in cui l’expander GPIO non fosse installato l’unica scelta possibile è la prima.

I jumper di configurazione (SJ1 e SJ2) si trovano sul lato posteriore del PCB.

Notare che le “reference” SJ1 e SJ2 stampate sul PCB sono state scambiate per errore (sorry…). La posizione corretta è evidenziata nella foto:

Vicino ai due jumper ho riportato una tabella per ricordare le due possibili configurazioni (desumibili ovviamente anche dallo schema elettrico).

La foto precedente mostra la configurazione in cui il tasto USER è collegato al pin GPA1 dell’expander (SJ1 saldato, SJ2 aperto).

Nella foto seguente è invece rappresentata l’altra possibile scelta (SJ1 aperto, SJ2 saldato), ovvero tasto USER collegato a GPIO0 del modulo ESP-01, che nel caso specifico è l’unica possibile in quanto l’expander opzionale non risulta essere installato sul PCB:

 

4. Schema elettrico

Di seguito lo schema elettrico della NanoBoard (scaricabile in pdf nella sezione “Documentazione & Download”):

Analizzando lo schema è possibile identificare i vari blocchi che compongono la Nanoboard.

In particolare la sezione dell’alimentatore (U2) con fusibile autoripristinabile lato USB (F1), il convertitore seriale-USB realizzato con un CH340G (U3), l’expander GPIO opzionale realizzato con un MCP23017 (U1).

Si noti che poichè il modulo ESP-01 rende disponibili solo due pin di I/O (GPIO0 e GPIO2), gli stessi sono usati sia per l’interfaccia I2C (connettore J5) che per il connettore GPIO (J6). Di conseguenza è necessario prestare attenzione nel caso si vogliano utilizzare entrambi contemporaneamente.

A tal proposito i due led GPIO0 e GPIO2 (D7 e D8) sono “disaccoppiati” con due transistor (Q3 e Q4) al fine di minimizzare la corrente assorbita sulle porte GPIO0 e GPIO2 stesse.

Il circuito costituito da Q1 e Q2 è quello che si occupa di effettuare l’upload automatico comandato dall’IDE di Arduino. In realtà, da alcuni test che ho condotto, con l’ultima versione dell’IDE (1.8.x) tale circuito non sarebbe più necessario in quanto è stata modificata la modalità di generazione dei segnali DTR e RTS da parte dell’IDE stesso. Comunque, essendo questo l’approccio suggerito da Espressif ed essendo tale circuito universalmente adottato dai vari moduli basati sullo ESP8266EX che implementano l’upload “automatico”, ho comunque deciso di mantenerlo per motivi di eventuale compatibilità.

 

5. Documentazione & Download

VOTO
2 commenti
  1. gianmagna dice:

    direi che il pcb è una buona scelta per cui mi sono chiesto se hai qualche stampato da vendere ,ho 4 moduli esp 01 due con basic ,uno con i comandi AT originale e uno col firmware nodemcu.
    Per ora mi sono limitato a provarli , ora vorrei usarne due per casa , home automations.
    Il tuo stampato mi farebbe comodo.
    fammi sapere grazie
    Gianfranco

    Approvazioni

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento