Puesta en marcha del SoC WiFi ESP8266 ESP-12 en una protoboard.

En la entrada anterior os hablé de las bondades de este módulo WiFi que además tiene un microcontrolador y memoria mucho más potentes que Arduino. Algo así como un Arduino supervitaminado y un módulo WiFi todo en uno, de ahí lo de SoC (System On Chip).

Si echáis un vistazo al modelo ESP8266 ESP-01 veis que tiene unas patillas metálicas a modo de pins con las que podemos enganchar el módulo en una protoboard de manera simple sin tener que soldar nada, o bien, conectarlo a la protoboard a través de conectores tipo dupont. Es decir, está preparado para hacer prototipos con nuestra protoboard. Sin embargo, el módulo ESP8266 ESP-12 está más orientado a ser soldado en la PCB (placa de circuito impresa) del producto final y, en el caso que quieras hacer un prototipo y conectarlo a tu protoboard necesitas algunos pasos extras.

En la imagen podéis ver los un módulo ESP8266 ESP-01 con sus pines de conexión.

ESP8266 ESP-01 con sus pins para conectarlo directamente a la protoboard

Como he dicho, el módulo ESP8266 ESP-12 está pensado para ser soldado en una PCB final, por lo que en vez de pins como la ESP8266 ESP-01, tiene unos “castellated holes” (no se como se traduce al castellano), que son una especie de medias circunferencias con cobre a los lados a modo de terminales que hacen muy fácil la soldadura SMD a otras PCB. Es decir, con el estaño, las puedes soldar a la superficie de otra PCB. Esto, como habréis imaginado no nos sirve para nada, ya que nuestro propósito en la fase de prototipado es la de conectar el módulo a la protoboard mediante pins que se puedan conectar o desconectar facilmente sin soldaduras.

Una imagen con una placa que tienen “castellated holes” para que os hagáis una idea de que estoy hablando.

castellated holes en el borde de un circuito impreso.

Una de las soluciones quizás, más fáciles que he visto, son unos circuitos impresos que venden en Ebay a modo de adaptadores, que permiten soldar esos “catellated holes” al adaptador y éstos a su vez, llevan unos pins de conexión preparados para ser enganchados a la protoboard, ya que la separación entre pines es de 0,1 pulgadas, o lo que es lo mismo, la separación standard de agujeros de las protoboard. Además, estos adaptadores llevan en su reverso impreso las conexiones para colocarles un regulador de linea de 5V a 3,3V SMD.

adaptador de los chinos de Ebay para el ESP8266 ESP-12

No son una mala solución, pero implican comprar algo externo solo para poder hacer prototipos. Además, tendremos que soldar sí o sí.

Y ya que tenemos que soldar, una alternativa fácil y rápida a los citados adaptadores es la de soldar cables de protoboard tipo dupont macho-macho que se utilizan en las interconexiones de las protoboard. Para hacer que las soldaduras sean fuertes, en concreto, en el módulo ESP8266 ESP-12, justo detrás del “castellated hole” de cada terminal, tenemos unos agujeros “through-hole” donde podemos pasar el conector dupont macho antes de soldarlo y así hacer más solida la soldadura.

En la imagen podéis ver mi módulo con todos sus terminales soldados a cables dupont macho-macho. Solo tener cuidado de no crear puentes de estaño entre diferentes soldaduras y que los pines dupont no lleguen a tocarse entre si o, a la carcasa metálica del “shield” del chip. Un total de 16 cables. 8 cables por lado.

ESP8266 ESP-12 con los pines de los cables dupont de protoboard ya soldados

Ok, ahora que tenemos el módulo preparado para ser conectado a una protoboard, ya podemos empezar a preparar las conexiones mínimas necesarias para hacer funcionar el chip y a la vez poder programarlo (flashearlo).

ESQUEMA DE UNA DEV BOARD SIMPLE

Tras probar y probar diferentes schematics, os pongo un schema hecho con fritzing (una aplicación que recomiendo para todo aquel que haga prototipos con tarjetas de desarrollo. Simple, funcional, portable y multiplataforma) del esquema electrónico mínimo, estable electronicamente y funcional para flashear y probar nuestros prototipos con el módulo ESP8266 ESP-12.

esquema electronico de lo necesario para flashear y trabajar con el ESP8266 ESP-12

Os resumo a continuación lo más importante:

– CH_PD,  y GPIO_2 siempre en HIGH mediante resistencias de 10k a 3,3V (pull-up)

– GPIO_15 siempre a LOW mediante resistencia de 10k a Tierra (pull-down)

– GPIO_0 a HIGH mediante resistencia de 10K (pull-up) para el funcionamiento normal del chip o a GND para cuando necesitemos flashear el chip. Modo normal cuando el interruptor S1 esta abierto o modo flasheo cuando S1 esta cerrado.

– REST a HIGH mediante resistencia de 10K (pull-up) en modo normal pero que cuando se pulsa el pulsador S3 se resetea (reinicializa) el chip. Necesario si queremos resetear el chip en modo normal o resetearlo en modo flasheo justo despues de cerrar el interruptor S1.

En la siguientes imágenes podéis ver el anterior esquema montado en mi protoboard incluyendo el adaptador USB a serie que explico más abajo. En vez de interruptor S1, he dejado un cable negro que podéis ver a la derecha de la primera imagen. Cuando quiero flashear, lo conecto directamente a GND. En la segunda imagen, se ven más claramente las resistencias pull-up, pull-down y el botón de reset.

 Vista del ESP8266-01 y el adaptador USB a serie conectados a la protoboard 1Vista del ESP8266-01 y el adaptador USB a serie conectados a la protoboard 2

MODO FLASHEO O MODO NORMAL

Para el funcionamiento normal del chip, es decir, que nada más conectarlo empiece a ejecutar el firmware que hayamos grabado o el que venga de serie, necesitamos tener el pulsador S3 y el interruptor S1 abiertos.

En el caso que queramos reinicializar el chip (como si quitásemos la corriente y la volviésemos a conectar), tan solo deberemos pulsar el pulsador S3.

Para flashear el chip con el firmware que queramos, debemos cerrar el interruptor S1 para que GPIO_0 se conecte directamente a GND y acto seguido pulsar el pulsador S3 para que el chip se reinicie en modo flasheo. Tras flashear el firmware podemos volver a abrir el interruptor S1 y reiniciar el chip en modo normal pulsando el pulsador S3 RESET.

El ESP8266 ESP-12 en la protoboard preparado para ser programado

FUENTE DE ALIMENTACION DC 3,3V

Para alimentar toda la electrónica veis que se utiliza 3,3V continua (DC), ya que el chip solo funciona a este voltaje. No intentéis alimentarlo con más voltaje, como por ejemplo los típicos 5V de Arduino, ya que podéis freir el chip o en el mejor de los casos acortar drasticamente su vida útil.

Por otro lado, he visto algún vídeo de Youtube que utiliza 2 pilas AA o AAA para alimentarlo y ésto, no es una buena idea,  ya que dos pilas en serie os darán 3V cuando están totalmente cargadas, pero a lo largo del tiempo su voltaje disminuye, por lo que o no funcionará o el chip empezará a comportarse de manera inestable, como encenderse para acto seguido apagarse o ver caracteres extraños cuando lo conectéis a la consola serie. Si queréis alimentarlo con pilas, que sean 3 en serie, que os darán 4,5V y podéis regular la salida con un regulador de linea a 3,3V.

La alimentación DEBE ser 3,3V y podéis conseguirla de muchos modos, entre los cuales:

– Fuente de alimentación standard o ajustable que permite 3,3V regulados.

– Fuente de alimentación, baterías o pilas por debajo de 3,3V y con un circuito Boost Converter- Step Up  (no recomendado por tener bobinas que podrían generar interferencias en el módulo WiFi) que os amplifique la corriente a 3,3V

– Fuente de alimentación, baterías o pilas por encima de los 3,3V y con un circuito Step Down/Buck Converter (no recomendado por tener bobinas que podrían generar interferencias en el módulo wifi) o bien una regulador de linea que os baje el voltaje a 3,3V.

– Cargador de móviles USB o corriente desde el puerto USB de un ordenador que os dará 5V con un regulador de linea 3,3V. Opción altamente recomendada ya que no genera interferencias y el regulador de linea no se calentará en exceso (generan perdidas en forma de calor).

Todas las opciones citadas anteriormente son válidas, aunque teniendo en cuenta que el chip consume un máximo de 300mA sin ningún componente externo añadido, aseguraros que la fuente de alimentación que elijáis os permita alrededor de 500mA para estar seguros.

CONEXION AL PC PARA FLASHEAR EL CHIP CON NUEVO FIRMWARE POR PUERTO SERIE

Como habréis notado, en el esquema anterior no he añadido el adaptador USB a serie necesario para flashear el chip o simplemente, para enviar o recibir datos por serie durante la fase de prototipado. La razón… que quiero prestarle una atención especial a esta parte.

esquema electronico de la conexion del adaptador USB a serie al ESP8266 ESP-12

Lo importante es conectar la señal TX (transmisión) del adaptador USB a serie al pin RX (recepción) del módulo ESP8266 ESP-12 y la señal RX del adaptador serie al pin TX del módulo. Es decir, la transmisión de uno a la recepción del otro en ambos sentidos. Vamos, una comunicación serie en toda regla.

En el caso que el adaptador USB a serie tenga un pin 3,3V, no debéis utilizarlo, ya que el módulo ya está alimentado utilizando una fuente de alimentación externa y la gran mayoría de adaptadores no permiten la salida de potencia requerida por el módulo ESP8266 ESP-12. Lo que no debéis olvidar es conectar el GND del adaptador al GND de la fuente de alimentación para evitar problemas.

Este adaptador USB to serial puede ser de la marca o tipo que preferáis, pero debe cumplir una condición básica: Las señales TX y RX lógicas deben funcionar a nivel de 3,3V. Digo esto porque muchos solamente funcionan a 5V y otros permiten 5V o 3,3V. En el caso que sea de voltaje dual y lleve un jumper de selección, no os olvidéis de ponerlo en modo 3,3V. Si no tuviera jumper de selección, pero aún así fuese de voltaje dual como es el adaptador PL2303HX que utilizo, aseguraros que las señales TX y RX no sobrepasen el umbral de los 3,3V.

En la siguiente imagen podéis ver mi adaptador USB a serie donde unicamente tengo cableados los pines TX, RX y GND. En concreto se trata de un adaptador PL2303HX comprado en Ebay por 0,99$

Detalle del adaptador USB a serie. Solo se utilizan los pines TX, RX y GND

Si por alguna extraña razón, solo tuvierais un adaptador USB a serie de solamente 5V pon “level shifting 5V to 3.3V voltage divider” 🙂 en tu buscador de Internet favorito.

Y a menos que me olvide algo, eso es todo para este Post. En el siguiente, os enseñaré a conectarle sensores, pantallas y otros cacharritos a los pines GPIO y empezar a construir gadgets con conexión WiFi y todo lo que ello conlleva. Ya estamos metidos de lleno en lo que los hipsters tecnológicos llaman IoT (Internet of Things o el Internet de las Cosas en el idioma de Cervantes)

Para finalizar, unas fotitos que hice este fin de semana mientras utilizaba el ESP8266 ESP-12 para manejar una pantalla OLED por I2C a 3,3V por supuesto:

El ESP8266 ESP-12 manejando una pantalla OLED por I2C 1El ESP8266 ESP-12 manejando una pantalla OLED por I2C 2El ESP8266 ESP-12 manejando una pantalla OLED por I2C 3El ESP8266 ESP-12 manejando una pantalla OLED por I2C 4El ESP8266 ESP-12 manejando una pantalla OLED por I2C 5

La splash screen que no falte!!!

Si te ha gustado y quieres compartir esta página..