Hace unas semanas en uno de mis habituales «paseos» por Aliexpress me encontré con una placa ESP8266-Pro que, en principio, parecía muy interesante; un verdadero chollo.
Se trataba de la placa ESP8266-Pro con 8 MB (si, mega bytes) de RAM.
Parecía una placa prácticamente igual que la NodeMCU sin USB, con el doble de memoria y bastante más barata.
La realidad es que, aunque la placa tiene muy buena pinta no existe absolutamente ninguna información y el vendedor, cuando le preguntas simplemente te dice que no tiene nada de información (con todo su morro). Muchos clientes se han quejado en las opiniones de Aliexpress pero siguen dejando 5 o 4 estrellas (incomprensible).
Tratando de utilizarla como las placas habituales no hay manera… pruebas y pruebas y no se puede… vamos, una placa que no vale para nada. No es que sea mucho dinero (pedí dos placar y el envío por Aliexpress Standard Shipping, unos 8€ en total) pero, ¡joder! me siento engañado…
El caso es que me puse a investigar con el multímetro en una mano y el datasheet del ESP8266EX en la otra y he encontrado por qué no funciona y cómo solucionarlo…
Lo que sucede con esta placa es que engaña… uno se espera que sea algo como el NodeMCU y es, más bien, algo como un módulo ESP12E más un regulador de voltaje de 3.3V, nada más (bueno, si 8 MB de memoria en vez de 4).
Total, ¿por qué no funciona y que hay que hacer para que funcione?
Bueno pues lo primero es que el ESP8266EX tiene un pin CH_EN (o chip_enable) que hace que el ESP8266EX funcione. Este pin hay que ponerlo a 3.3V (preferiblemente a través de una resistencia de unos 10K) para que el chip empiece a funcionar; hasta ese momento el chip está muerto.
En mi caso, y puesto que la resistencia tiene que estar siempre puesta y no hay que quitarla para nada, opté por soldarla directamente entre el pin CH_EN (marcado como EN en esta placa) y el punto de 3.3V del regulador. Añado las fotos detalladas por si pueden ayudar.
El siguiente problema, y el que más me ha costado localizar, es que el bootloader que incorpora la placa espera en el momento del arranque que el pin 15 tenga un nivel bajo, y hasta que no esté a nivel bajo no arranca. De manera que tenemos que poner dicho pin a negativo (preferiblemente a través de una pequeña resistencia, yo he usado una de 74 ohm).
En este caso, como no necesito el pin 15 he soldado, igual en en el caso anterior, la resistencia directamente como se puede ver en las fotos detalladas.
Por último nos falta el último paso, y es que para ponerlo en modo programación (para poder flashearlo) hay que poner el pin IO0 a nivel bajo (es decir, a negativo).
A diferencia del NodeMCU, y placas similares, que entran de forma automática en el modo programación simplemente dando a la opción correspondiente desde el Arduino IDE, esta placa hay que meterla manualmente en el modo de programación, lo que es bastante incómodo.
Para Entrar en el modo de programación, como se hace de forma puntual, simplemente conecto con un cablecillo el IO0 con GND para entrar en el modo de programación. Es un poco incómodo porque hay que ponerlo y quitarlo manualmente cada vez que queremos flashearlo pero bueno…
Por cierto… ya que estaba metido en harina, he aprovechado para comprobar ese pulsador misterioso (antes de empezar la investigación, no sabía si era un pulsador de reset o para entrar en el modo de programación) y, efectivamente, he comprobado que está conectado entre el terminal RST y GND para poder hacer reset al ESP8266.
Resumiendo: Tras unas horas de investigación, he conseguido programar el ESP-8266 Pro pero mi conclusión es que no merece la pena comprarlo para ahorrar un euro. Es mucho mejor comprar el NodeMCU, que es mucho más fácil de programar, está perfectamente documentado y no hay que andar haciendo «ñapas» para que funcione correctamente. Otra cosa será ver si se le puede sacar provecho a esos 8 MB de memoria, aunque mucho me temo que, para la mayoría de aplicaciones, tendremos más que de sobar con los 4 MB del NodeMCU.