bclose

Modificando el firmware ESP8266

Reprogramando el software de base del módulo WIFI

Objetivos

 

 

    • Conectar el ESP8266 a nuestro PC mediante un adaptador FTDI a USB.
    • Mostrar el diagrama de conexiones para controlar el ESP8266 y para Actualizarlo.
    • Probar los comandos AT directamente con PUTTY.
    • Actualizar el módulo WIFI ESP8266 con un nuevo Firmware.
 

Material requerido.

ProtoboardUna Protoboard .
conexionesAlgunos cables de protoboard, preferiblemente Dupont macho/hembra.
Vista frontal Un módulo WIFI ESP8266
Vista frontal Un adaptador FTDI a USB
Fuente para protoboard Quizas una fuente de alimentación externa de 3.3V si fuera necesario

Mas sobre WIFI y ESP8266

 

No cabe duda de que el módulo ESP8266 WIFI, es uno de los que más interés despiertan en nuestros amables lectores. No solo es barato y nos permite conectar nuestros Arduinos (Entre otros micro controladores) a la red WIFI, sino que además es razonablemente sencillo.

Buena parte de las consultas que recibimos en Prometec.net se refieren a este magnífico módulo, y por eso vamos a tratar de ampliar un poco la información que presentamos en tutoriales previos, cubriendo algunos temas que inicialmente no nos atrevimos, pero en vista del interés que el ESP8266 despierta, vamos a entrar en algunas cuestiones más técnicas, con las que esperamos no abusar de la paciencia de nuestros sufridos seguidores.

En sesiones anteriores vimos la forma de conectar el ESP8266 a nuestros Arduinos y también, ejemplos de cómo programar le modulo mediante comandos AT, para realizar toda una colección de procedimientos relacionados con la conexión a nuestras WIFIs.

Pero es importante que sepáis, que este módulo nos es simplemente un dispositivo WIFI, sino que es un completo SOC (Sistem On Chip) o lo que es lo mismo que incluye un procesador completo además del stack TCPIP y el interface WIFI, cuya potencia es algo inferior al de un Arduino UNO, pero que tiene la enorme virtud de estar incluido en un todo en uno, en este chip.

 
  • De hecho, tenemos previsto montar una sesión específica, para ver como programar directamente el SOC del ESP8266 para ahórranos el Arduino en ciertos casos (Que nos perdone san Máximo Banzi).  

Por eso no debería sorprendernos el hecho de que podemos reprogramar el Firmware básico de este módulo, bien para corregir errores, añadir nuevas prestaciones, porque como iremos viendo hay bastantes modelos de ESP8266 y no solo el que estamos acostumbrados, e iremos hablando un poco de todo ello en futuras sesiones.

Pero para empezar conviene que veamos el procedimiento general de actualizar el firmware y las conexiones precisas porque nos va a servir  para más de una cosa en el futuro.

 

Consideraciones previas a la actualización

 

Ya hemos comentado que hay varias razones por las que puede interesarnos reinstalar el firmware del módulo WIFI ESP8266.

 
  • Instalar una versión más reciente del mismo.
  • Corregir diferentes errores.
  • Asegurarnos de que el modulo funciona correctamente 

Esto no quiere decir que debas flashear el Firmware porque no consigues comunicarte con el modulo las primeras veces que lo usas. Lo más probable es que no sea necesario y tengas un problema de cualquier otro tipo.Tened en cuenta que actualizar el firmware de un sistema electrónico es siempre una operación de riesgo, y es imprescindible que tengas claro lo que estáis haciendo y porque.

No quisiera ser el responsable de la muerte prematura de varias docenas de módulos ESP8266, por incluir aquí un tutorial de como instalar un nuevo firmware. Así que antes de empezar, vamos a hacer unas cuantas consideraciones previas:

 
  • Si tienes dudas no lo hagas. Puedes dañar irreparablemente tu módulo WIFI.
  • Si a pesar de todo quieres seguir, no instales nuevo Firmware si no tienes claro lo que esperas conseguir.
  • Si pones en marcha la instalación de un nuevo firmware, ten en cuenta que el proceso no se puede interrumpir hasta que termine él solito.
  • Si lo interrumpes por cualquier motivo o se te va la luz en el proceso, casi seguro que te puedes despedir del módulo ESP8266. Son baratos, pero tampoco es cuestión de quemarlos a lo tonto.
  • Si aún no he conseguido meterte miedo en el cuerpo, ya estás listo para seguir leyendo  

Para efectuar la actualización del Firmware vamos a necesitar varias cosas, que tenemos que conseguir previamente. En primer lugar un programa para gestionar el envió del Firmware al módulo.

Yo voy a usar (Por diferentes razones) el aparentemente, programa oficial, llamado ESP8266_flasher que podéis descargar de aquí, Aunque hay más programadores que podéis usar como por ejemplo el XTCOM_UTIL (Pero que a mí no me sirve por el FTDI que uso usa el COM15 y este XTCOM solo acepta hasta el COM6).

También necesitaremos el binario del firmware que queremos volcar a nuestro ESP8266, La descarga de mas arriba incluye la version 0.9.2.2 pero podeis conseguir versionas mas actualizadas aquí Y por último vamos a necesitar usar un adaptador FTDI a USB para conectar nuestro modulo al PC y lanzar la actualización. Empecemos con las conexiones

 

Conexión del ESP8266 al FTDI

 

Para programa el modulo tenemos que conectarlo a un PC desde el que volcarle el Firmware, y la manera más sencilla es usar un adaptador FTDI a USB, que podéis conseguir por muy poco dinero en la red. Vista frontal El que yo he usado no es este exactamente, pero tanto da, porque lo de menos es el modelo exacto. Lo que necesitamos es simplemente un modo de convertir USB a puerta serie que podamos inyectar en el ESP8266. Podéis utilizar cualquiera que tengáis disponible y adaptar los pines, porque el nombre será el mismo aunque la distribución de pines sea diferente. Para poder Flashear el módulo necesitáis hacer dos cosas:

 
  • Poner GPIO0 a LOW (Selecciona el modo FLASH)
  • Poner CH_PD a HIGH (Es el module select)  

Y con eso el módulo está listo. El resto consiste en conectar RXD y TXD cruzados entre el ESP8266 y el adaptador FTDI, y conectar GND y VCC, que recordad es de 3,3V Por eso, para reprogramar la memoria Flash del módulo, vamos a hacer las conexiones así: Conetando modulo wifi a USB Y si simplemente queremos usarlo desde el PC, las conexiones son las mismas con excepción de que dejamos al aire la patilla GPIO0. Volveremos a conectarlo mas adelante. Como hay que conectar a GND y VCC mas de un cable, vais a necesitar una protoboard para hacer los empalmes, no se puede hacer tan bonito como veis arriba (La vida es dura)

Cuando conectéis el USB FTDI a vuestro PC os levantara una puerta serie. Necesitamos saber cuál es para indicárselo al programa de volcado. Para ello si estáis en Windows podéis hacer: INICIO\Equipo\Botón derecho\Administrar Boton de inicio Y podréis ver en administrador de dispositivos / Puertos (COM y LPT) el número de puerto asignado, en mi caso COM15: Administrador de dispositivos

Probando el módulo ESP8266

 

Una de las cosas que más dolores de cabeza parece producir con este módulo WIFI, es acertar con la velocidad de comunicación adecuada. Con mucha frecuencia recibimos consultas acerca de que solo pueden ver basura cuando te conectas a él y nos preguntan que hacer.

Tenéis que entender que a priori no sabemos cuál es la velocidad a la que el modulo viene programado. Según el manual es de fábrica a 9.600 baud, pero me consta que esto varía bastante. Por ejemplo sé que algunos módulos vienen a 115.200 baud y alguno me he encontrado a 38.400.

Así que es mejor no fiarte y probar todas la posible velocidades antes de dar por supuesto nada y este montaje que os planteamos aquí es ideal para ir probando las velocidades de transmisión con otro viejo conocido nuestro: PUTTY. Confugracion FDTI serie

 
  • IMPORTANTE Antes de nada, para probar la comunicación serie tenéis que aseguraros de que vuestro módulo ESP8266 está en condiciones de escuchar la puerta serie, y para eso aseguraros de que habéis desconectado el GND del pin GPIO0, si lo dejáis conectado, no os escuchará.  

Poned vuestra puerta COM e ir variando la velocidad, desde 115200, 57600, 38400, 19200,9600, 4800, 2400, 1200, e intentad la comunicación. Seguro de que con una lo lograréis y basta con que escribáis AT por ejemplo para que veáis que hay contacto:

Comunicacion con FTDI y ESP8266 Si lo que leéis es basurilla o chinitos variados, probad con la siguiente velocidad tranquilamente, (No vais a estropear el módulo así, tranquilos) Después podéis ir probando los comandos que consideréis, pero de esto modo tan sencillo podéis comprobar el módulo WIFI sin arrancar Arduino siquiera, solo necesitáis el adaptador FTDI a USB.

Podéis probar todos los comandos que vimos en las sesiones anteriores, pero recordad también que los cambios de firmware pueden afectar a la sintaxis de los comandos.

 

Actualizando el Firmware

 

Ya vimos antes que el flasher incluye el firmware 0.9.2.2, que podemos instalar en nuestros módulos o podemos haber descargado las nuevas versiones. En ambos caso disponemos de un fichero con extensión bin que podemos volcar a nuestro módulo ESP8266 En el momento actual la nueva versión es la 9.5.0 AT, pero de todos modos con el ESP8266_flasher viene incluido la versión 0.9.2 del firmware por si no encontráis otra, y con esto ya podemos pasar a ejecutar el Flasher.

Cuando arrancáis el programa os aparece esta pantalla, que deberéis rellenar con vuestra información. Configuracion basica Con el botón BIN, elegís el firmware que queréis volcar (El fichero que habéis descargado)y en mi caso le indico que tengo el Adaptador en la puerta COM15. Pulsad el botón de Download y recibireis una serie de mensajes que indican que está volcando el firmware al módulo:

Volcando el nuevo firmware Si no hay errores mayores, cuando finalice, vuestro ESP8266 tendrá instalada la nueva versión de firmwareque le habéis volcado.

 
  • A mí siempre me da un error final que dice que no puede salir del modo FLASH, pero me funciona correctamente y por lo qué he leído por Internet parece normal.
  • Parece que el error significa que no puede salir del modo FLASH porque tenemos conectado a LOW el pin GPIO0 y eso le fuerza a estar en el modo de programación.  

Si por la razón que sea, no os permite actualizar el firmware o si a pesar de que os lo permite vuestro ESP8266 sigue comportándose raro, hay una segunda dirección de seguridad para instalar el firm, en la dirección 0x40000080 en lugar de la 0x00000, pero no me preguntéis que significa esto.

 
  • Aunque en mi caso ha conseguido recuperar un módulo ESP8266 que ya daba por perdido, porque no se avenía a razones de ningún modo. Así que si la situación es lo suficientemente desesperado puedes probarlo.  

 

Resumen de la sesión

 

 

    • Hemos visto como conectar el ESP8266 a nuestro PC mediante un adaptador FTDI a USB, para probar los comandos AT el módulo directamente.
    • Usamos Putty para probar esos comandos sin necesidad de Arduino.
    • También vimos como conectar el adaptador para permitirnos actualizar el firmware del módulo WIFI.

 
 
 

 

 

(59) Comments

    • Alvaro

    Hola,
    tengo un problema, cuando estoy flasheando el modulo con el nuevo firmware a eso de la mitad de la carga me sale una alarma de seguridad de pantalla azul que me cierra todo y me reinicia el PC he revisado toda las conexiones y estan bien, el erasing da inicio en el ejecutable pero como digo se reinicia con alarma WDF violación, podrian ayudarme , seguí los pasos de esta pagina http://www.prometec.net/firmware-esp8266/ micropanel y tuve el mismo resultado

    • Hola alvaro, pues no se que decirte. Te aseguro que ha flasheado multiples veces mis esp8266 sin problemas. ¿Que version de windows usas?

    • Carlos

    Hola, siguiendo los pasos, durante el flasheo me marca este error: “Invalid head of packet” probé corriéndolo varias veces y dicho error me puede salir prácticamente en cualquier punto, es decir, nunca sale en 6% 0 99% por decir algo. Que puedo hacer?

    • Hola Carlos, ¿estas seguro de haber elgido correctamente tu modelo de esp8266 en la seleccion de tarjeta?

  • Hola,

    Muchas gracias por tu artículo. Tengo un problema, cuando entro a la consola de Putty no me permite escribir nada, así como también en el ESP8266 Flash Downloader me arroja “connecting ….Failed to connect”. Las conexiones las tengo bien dado que en el programa Termite me arroja “MEM CHECK FAIL!!! Ai-Thinker Technology Co. Ltd. invalid” y cuando lo conecto mal (intencionalmente) no arroja nada. Tendrás algún consejo de ayuda? Gracias de antemano.
    También he probado con una fuente de 3.3v por separado y GND comunes.

    • Hola Miguel. Tiene toda la pinta de una mala conexion o mala velocidad de la puerta serie. Puesto que recibas bien al mensaje de bienvenida parece que estas usando algun cable defectuoso.

      Cambialo y me cuentas a ver que tal

  • Buenos dias, a que se refiere con poner GPIO 0 a LOW Y ch_pd a HIGH, o bueno eso como se debe de hacer?

    • La idea es que conectes el pin GPIO o a GND o masa y el pin CH_PD a tension de 3.3V

    • Josep Lluís

    Buenos días.

    Primero de todo agradecerte todo el trabajo que estas realizando en esta web. Es una referencia siempre que me surge alguna duda.

    Actualmente estoy enredando con diferentes módulos ESP8266 y mirando de empezar a “domotizar” la casa. Aprovechando que tengo un NAS Synology he instalado en él Domoticz y he encontrado ejemplos de como enviar información desde un ESP8266, pero no acaba de funcionar.

    Todo este rollo te lo cuento porqué buscando como solucionar el tema, me he encontrado con un desarrollo que están implementando sobre el ESP8266 y creo que te puede interesar. Se trata de un firmware que substituye al que lleva el ESP8266 y que una vez instalado permite el acceso al módulo mediante un cliente web. Se llama ESPEasy (http://www.letscontrolit.com/wiki/index.php/ESPEasy).

    Estoy impaciente por empezar a trastear con el y seguro que si no lo conocías te va a parecer muy interesante. Creo que simplifica enormemente la programación de cualquier ESP8266.

    Un saludo.

    • Hola Jose Luis,

      Ya conecia el espeasy pero hacia meses que no no lo revisaba y se me habia olvidado, aprovechare para darle otra vuelta. Muchas gracias por el apunte

    • Gabo

    Hola. ¿Existe la forma de configurar este módulo para repetir la señal de mi actual servicio de internet y utilizarlo como un punto de acceso en el cual se puedan conectar varios dispositivos, teniendo éstos acceso a internet? Si la respuestas es afirmativa ¿cuál es el proceso que debo de seguir para realizarlo? El módulo que tengo actualmente es como el que se puede ver en la imagen del siguiente enlace
    https://www.miki.tienda/images/nodemcu.jpg

    Saludos y gracias.

    • Hola Gabo,

      Me imagino que me preguntas que si se puede usar este modulo como repetidor wifi y dado qu en principio el modulo puede conectarse en modo AP acces point deberias poder hacerlo.

      Pero me temo que nunca he intentado esto y no me atrevo a ofrecerte una pista

    • Julian

    Hola:

    Tengo el modulo ESP8266 con una funete de 3 volt e intente hacer el tutorial de la pagina http://www.prometec.net/arduino-wifi/, puede conectarme al wifi de la casa sin embargo al momento de confirmar con la direccion IP en el navegador me decia que superaba el tiempo de espera, trata de hacer un ping a la IP pero tampoco.
    Pense entonces que tenia que actualizar el firmware y siguiendo las instrucciones llego hasta hacer la prueba en el putty identificando el com6, puedo digitar el comando AT pero cuando le doy enter no pasa nada…. he provado con todas las velocidades y no muestra nada. Para que necesitamos saber la velocidad??? en el tutorial no se indica que hacer despues que se conoce esa informacion.
    Finalmente procedi a cargar el archivo .bin (que por cierto el link de descarga que tiene en drive no sirve) y me muestra un error “Failed to connect” la conexiones la he revisado varias veces, he invertido el tx y rx y nada….

    por favor a la espera de su apoyo.

    • Hola Julian,

      No estoy seguro de entender bien tu problema, porque si corres ese primer ejemplo de esp8266 que me indicas en la web, no puedes acceder via web. Para ello tendras que correr el ejemplo de servidor web ¿Vale? no sirve cualquiera, pero supongamos que has cargado el ejemplo de web server.

      Para comunicarte con putty debes asegurarte de que tu esp y putty estan de acuerdo a la misma velocidad, porque sino sera imposible.

      Si no recibes nada, ni siquiera basura en el putty suele ser sintoma de malas conexiiones.

      Espero que esto te ayude

Give a Reply

WordPress Anti-Spam by WP-SpamShield

¡Oferta!

Promoción especial de abril.

Tu robot educativo por

49,95

Ir al producto