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.

 

  Tienda España Tienda Mexico
Vista frontal  Un ESP8266 01 Un ESP8266 01
Vista frontal Un adaptador USB a FTDI Un adaptador USB a FTDI
Cables Dupont Macho-Hembra Cables Dupont Macho-Hembra Cables Dupont

 

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 podéis conseguir versiones 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.

 
 
 

 

 

Para porder realizar consultas a nuestros expertos, tienes que ser suscriptor. Suscribiendote nos ayudas a mantener este proyecto en marcha.

¡ Quiero Suscribirme !

Si ya eres premium y no puedes comentar haz login. Hacer login

(85) Comments

  • Avatar for Charly
    • Juan carlos macho mangas

    Yo diria que tienes algun problema co las conexiones porque deberia conservar la cofiuracion al apagar

  • Avatar for Charly
    • Angel

    Hola tengo el siguiente problema lo flasheo y bien pero cuando lo desconecto y lo conecto para alugna aplicación pierde el firware alguna solución.. saludos

  • Avatar for Charly
    • Admin

    Hola Manolo, En principio, en cuanto vuelques un programa al nodemcu con arduino, borrara el LUA de tu esp8266 ¿Vale?

    El problema de que no te levante el puerto com es simplemente instalar el driver adecuado

  • Avatar for Charly
    • Manolo

    Hola, he tenido la experiencia de utilizar el esp8266-1 con el ide de arduino sin problema siguiendo tus instrucciones. Ahora me he comprado un esp8266 NODECUM V3 con LUA y al conectarlo al PC el administrador de dispositivo no lo reconoce en el puerto COM. He instalado los drive CP1202 de Silabs y nada. ¿ debo buscar otro o no es ese el problema?. En caso afirmativo, ¿ cual me sugieres que pruebe?
    Otra duda, si consigo que me lo reconozca, ¿ debo cargar el programador «Arduino as ISP» en el ESP8266 NODECUM para eliminar el LUA, o al cargar un programa de ejemplo ya desaparece el LUA?.
    Gracias de antemano.
    Un saludo

  • Avatar for Charly
    • Admin

    Hola Juan, Este es un tema que del que s ehabla mucho en los foros y la respuesta es que si usando esptool.

    https://steve.fi/Hardware/backup-and-restore/

    No lo he usado personalmente pero no parece haber problemas

  • Avatar for Charly
    • Admin

    Buenos dias Juan,

    No tengas miedo de estropear tu modulo si lo flasheas. Siempre puede ocurrir una averia pero no tiene porque y yo lo he hecho muchas veces sin problemas.
    No es necesario que lo flashees, porque ya trae su propio firm, pero normalmente e sun lenguaje llamado LUA y si quieres usarlo como arduino, cuando lo programes lo vaciaras, pero insisto no es grave

  • Avatar for Charly
    • Juan

    Hola

    ¿Hay alguna forma de hacer un backup del firmware para luego poder restaurarlo?

    Gracias.

  • Avatar for Charly
    • Juan

    Hola

    Tengo un modulo de éstos con el siguiente firmware:

    AT+GMR

    AT version:1.2.0.0(Jul 1 2016 20:04:45)
    SDK version:1.5.4.1(39cb9a32)
    Ai-Thinker Technology Co. Ltd.
    Dec 2 2016 14:21:16

    ¿es necesario flashearlo?
    ¿se estropearía si intentara mandarle un programa desde el ide de arduino?

    muchas gracias

  • Avatar for Charly
    • Admin

    Hola Juan, si. y creo que tienes el firm necesario para descargar en el tuto

  • Avatar for Charly
    • Juan

    Hola

    Quisiera flashear el ESP8266-01 y meterle un firmware para que trabajara de forma independiente del arduino, pero no he encontrado ese firmware. ¿Has conseguido utilizarlo sin arduino?

    Gracias.

  • Avatar for Charly
    • Admin

    Siento decirte que no he usado estos modulos

  • Avatar for Charly
    • Admin

    Hola David, si ha sprobado dos modulos y nada tiene que haber algo mas, es poco probable que los dos esten dañados, pero no se que decirte sin probarlo

  • Avatar for Charly
    • Forumisto

    Hola

    ¿sabes como viene configurado el módulo del enlace?

    http://www.ebay.es/itm/5V-Wifi-Relay-Module-ESP8266-TOI-APP-Controled-For-Smart-Home-Automation-Board/302155052825?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

    consta de:
    -placa con relé y adaptador para el esp8266-01
    – esp8266-01

    he pedido uno, y mucho me tengo que voy a tener que reprogramarlo

    gracias

  • Avatar for Charly
    • David

    Hola
    Dos días y no consigo que funcione. He probado 3 modulos wifi en un arduino mega y nano y llego hasta el comando AT+CWJAP. Siempre me da ERROR en las dos redes a las que me puedo conectar. Visto esto, he intentado actualizar el firmware pero al conectar con el Putty llego a poder escribir AT pero al presionar enter, el cursor vuelve al principio de linea y no hace nada. He probado todas las velocidades y varios módulos y nada, lo mismo. También he probado otra consola (Tera Term) y no he conseguido nada
    Alguna idea?

  • Avatar for Charly
    • Admin

    Hola PAco, He tenido que reflashear mas de uno de estos modulos debido a comportamientos extraños y en todos los casos se corrigieron los problemas

  • Avatar for Charly
    • Paco

    Hola, Últimamente me ha dado por hacer proyectos con el ESP-01, anteriormente ya había trabajado con estos módulos y funcionaban perfecto y los deje por algún tiempo, el problema es que ahora funcionan de manera extraña he revisado el conexionado una y otra vez y nada, estoy trabajando con el ide de arduino y un modulo serial-usb los programas se cargan perfectamente desconecto el modo programación pero a la hora de que se ejecutan el modulo no hace lo que debería y la luz roja del indicador del modulo se hace mas tenue y se calienta, he notado que en el puerto serial manda basurilla pero estoy seguro que esa es la velocidad correcta por que ya había trabajado con esos módulos antes, de echo probé con tres módulos y todos hacen lo mismo de echo son nuevos (solo los tenia guardados), tengo la ligera sospecha de que de alguna forma se desprogramaron del firmare original y por eso el interprete de arduino no reconoce los comandos, estoy pensando en reflashearlo, alguna recomendación.

  • Avatar for Charly
    • Admin

    Pues no estoy seguro de que decirte Juan, hace un tiempo que no juego con estos modulos porque me he pasado a los nodemcu por su mayor sencillez pero lo que describimos en los tutos nos ha funcionado sin problemas

  • Avatar for Charly
    • Pablo

    hola, buena información, solo que ya no existe la carpeta que mencionas donde vendría el firmware actualizado, saludos

  • Avatar for Charly

    Hola, gracias por el tutorial, está perfectamente explicado…
    Quería hacerte una pregunta porque no se que sucede… he actualizado el firmware del ESP a la versión que proporcionas en el link que incluye el programa para flashearlo. El caso es que todo ok y estoy conectado a trvés de un FTDI al PC 115200 baudios, escribo AT y devuelve OK, pero prácticamente todos los comandos me devuelven ERROR. No puedo cambiar la tasa de baudios ni nada, con AT+CIOBAUD=9600 devuelve ERROR, igual que si pregunto con AT+CIOBAUD?. Es cierto que según el juego de comandos que te facilita el fabricante pone obsoleto, pero aun así, usando AT+UART_DEF = 9600,8,1,0,0 me devuelve ERROR también lo mismo si pregunto.
    En fin, he probado m,ultitud de comandos y solo me acepta: AT, AT+RST, AT+CIFSR, AT+CWMODE? (y cambiar el modo también con AT+CWMODE=1 o 2 o 3) y AT+GMR que me devuelve esta version 00170901.

    He probado a resetearlo de fabrica con AT+RESTORE pero me devuelve ERROR.

    Alguna idea de que puede estar pasando y/o como solucionarlo.

    Gracias.

  • Avatar for Charly
    • Admin

    Hola alvaro, Hay dos firm que puedes cargar en el esp8266. Uno que viene de fabrica que te permite comunicarte via el puerto serie mediante comandos AT y otro que carga el emulador de arduino

    Puedes caragar el que prefieras. SI optas por el de arduino, este no se pierde aunque luego le cargues diferentes programas arduino ¿Vale? SOlo se perdera si vuelves aintalar el firm de comandos AT

Para porder realizar consultas a nuestros expertos, tienes que ser suscriptor. Suscribiendote nos ayudas a mantener este proyecto en marcha.

¡ Quiero Suscribirme !

Si ya eres premium y no puedes comentar haz login. Hacer login