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

    Hola, compre unos módulos ESP8266-01 y un adaptador ftdi a usb pero no puedo comunicar con el modulo wifi. Le envió comandos AT y la luz azul del esp avisa que llego algo pero no da una respuesta. Al conectarlo no me manda basura ni ninguna señal de OK. Busque en muchos lugares y no encuentro nada, intente actualizar el firmware pero el esp_flasher me dice que no se puede conectar al dispositivo. Tengo una sospecha de que el modulo no tenga firmware. Agradeceria cualquier ayuda, desde ya muchas gracias. Saludos

  • Avatar for Charly
    • Admin

    Hola Jules, bien podria ser lo que dices, pero no me atrevo a asegurarte nada porque ademas con un unico pin GPIO no va a ser muy util, especialmente porque para programarlo tiene que usarlo, pero en fin quizas sea suficiente para algo

  • Avatar for Charly

    Hola de nuevo,

    Tres de ellos estan muy claros, llevan rotulado V, RX, TX (con estos 3 no hay problema). Los otros 2 llevan respectivamente G, IO0, que intuyo que son masa y el GPIO0.

    Pero ante la duda lo consulto.

    Muchas gracias,

    Jules Armagnac

  • Avatar for Charly
    • Admin

    Hola Jules, todos los ESP-01 que he visto tenian los 8 pines y no puedo hablar de ese modelo que mencionas, pero ¿que nombres tienen rotulados esos pines?

  • Avatar for Charly

    Hola,

    Soy nuevo en esto, pero todos los esquemas que encuentro de conexionado del ESP8266-01 son con 8 pines y los venden con 5 pines..
    Alguien dispone de las equivalencias de pines y como usarlos para cambiar el firmware y cargar un programa.

    Muchas gracias,

    Jules Armagnac

  • Avatar for Charly

    Muchas gracias!…es lo que esperaba leer para adquirir ese modulo nodemcu!!..creo que me voy a ahorrar algunos dolores de cabeza. Un abrazo!

  • Avatar for Charly
    • Admin

    Hola Patricio, Efectivamente el GPIO0 del esp-01 contrala la entrada y salida del modulo en programaciaon y acaba siendo un asco por que nunca te acuerdas de como es un modo y el otro, pero esos errores de transmision son otra cosa y parece que tu arduino se agacha conla velocidad de transmision. ¿Estas usando un UNO a 115000 bits/sec?

    Los 95 miliamperios de la fuente es poco para el consumo de este chip que puede llegar a picos de 350mA segun el fabricante y tambien es algo que puede causar esos problemas de comunicacion.

    De todos modos yo he pasado a usar siempre lo modulos NODEMCU porque tienen todas las ventajas del esp8266 con todos sus pines al aire y dispuestos y ninguno de los problemas del esp-01 y te recomiendo que hagas lo mismo

  • Avatar for Charly

    Hola. Antes que nada agradezco tu predisposicion a ayudar a la comunidad.
    Despues de muchas pruebas, logré que el esp me responda, pero la unica forma fue desconectando la masa de GPIO0 (Selecciona el modo FLASH). Pero me muestra el siguiente mensaje:

    l`rl▒n’t use rtc mem data
    rl▒▒rl▒▒
    Ai-Thinker Technology Co.,Ltd.
    ready

    Luego no responde a los comando AT.
    Lo tengo alimentado con una fuente de laboratorio que me indica consimo pico de 95 ma (algo bajo para el arranque)
    Que puede estar pasando? Muchas gracias

  • Avatar for Charly
    • Admin

    Hola Carlos, si retiras el chip ya te puedes despedir de los convertidores ADC y por tanto no podras leer valores anlogicos y me imagino que lo mismo pasara con el pueto USB (Aunque esto habria q verlo)

    Ten en cuenta que el esp8266 solo tiene un convertidor analgico a digital y no 6 como arduino uno y esto es una limitacion sino usas un chip externo para tu proyecto y en cualquier caso te recomiendo que heches una ojeada a el NodeMCU que tienens en la tienda porque es un producto mucho mas comodo de usar que los esp-01

  • Avatar for Charly
    • Carlos Gil

    Muy buenas Jose Luís,
    verás. estoy meditando usar el módulo ESP8266 para realizar una tarea de mi proyecto final de la carrera (de hecho me tienen que llegar ya 2 que he comprado versión ESP-01). Pero acabo de caer en que yo necesito leer valores analógicos (humedad,temperatura), por lo que los 2 pines digitales que hay sacados en este módulo no me sirven ¿no?

    Iba a usar una placa Arduino UNO (con el microprocesador quitado) como puente entre el ESP-8266 y el puerto USB, para no tener que comprarme el adaptador. ¿Podría usar de alguna manera los pines de lectura analógicos de Arduino?¿O al haberle quitado el procesador ya no puedo acceder a ellos?

    Si ésto no es solución, ¿se te ocurre alguna o tienes algun enlace donde expliquen como hacer tal tarea?

    Muchas gracias!

  • Avatar for Charly
    • José Luis

    Buenas¡
    He encontrado la solución instalando el driver que comparte este youtuber.
    https://www.youtube.com/watch?v=aWquKi_e-3A

    Ahora me lo reconoce, a ver si me defiendo con el siguiente paso que es flashear esp8266 heehEH
    muchiisimas gracias¡

  • Avatar for Charly
    • José Luis

    Puede ser culpa del usb FTDI que te he comprado?

  • Avatar for Charly
    • José Luis

    Nada, no hay suerte. He desconectado todo y lo estoy probando sólo con el FTDI. He des-instalado drivery e instalado de nuevo y sigue con el signo de admiración. El driver que estoy instalando lo he descargado de esta página :
    muchas gracias por tu paciencia y ayuda,
    salud¡

  • Avatar for Charly
    • Admin

    Parece entonces que el driver no esta bien instalado. Desinstalalo y vuelve a empezar

  • Avatar for Charly
    • José Luis

    Muchas gracias por contestar.
    Creo que me he explicado mal, el driver que me comentas lo instale para poder comunicar la placa china clonada del mega y estoy utilizandola para el flasheo del esp8266, ya que para este estoy empleo únicamente lasa piezas que nombras arriza. El ftdi lo compré en tu tienda, es este: https://www.prometec.net/producto/adaptador-usb-a-ftdi/ y la fuente de alimentación también y la conecto para elminar dudas.
    Cuando desconecto el usb, desaparece de Administrador de dipositivos y si lo conecto, vuelve aparecer que normalidad, pero con el signo admiración.
    Un saludo y muchiisimas gracias¡

  • Avatar for Charly
    • Admin

    Hola Jose Luis,

    Desconecta el adaptador ftdi del USB. Ahora vete al administrador de dispositivos y mira si sigue apareciendo alli. SI como sospecho es asi: Borralo con suprimir. Cuando conectes de nuevo te lo reconocera. Si a pesar de todo sigue sin reconocerlo, probablemente se debe a que es un adaptador que usa los chips CHG341 que requieren un instalar driver y en cuanto lo hagas corregira tu problema

  • Avatar for Charly
    • José Luis

    Buenas¡
    Conecto todo como comentas al ftdi y alimento al esp8266 con una fuente externa, para eliminiar dudas respecto al Amperaje, pero el ordenador no me lo reconoce, ahora estoy utilizando win 10 y en administrador de dispositivos me aparece con un signo d admiración. Intento actualizar controlador en modo automático sin resultados.
    Muchas gracias por tu página y compartir tus conocimientos.
    salud¡

  • Avatar for Charly
    • Carlos

    Ok, me parece perfecto su consejo, creo que me inclinaré a seguir esa linea. Le agradezco mucho su apoyo, saludos.

  • Avatar for Charly
    • Admin

    No soy un experto en esto y quizás alguien mas quiera corregirme, pero veamos. A priori siempre pondría el regulador a la salida de la bateria, porque esta va a absorber los cambios de tensión a la entrada sin problemas y te dejara limpia la salida.

    Tampoco usaria un regulador de tension porque son muy poco eficientes energeticamente y me inclino mas a usar una fuente D-DC de tipo power UP o Power DOwn segun el caso, para garantizar la tension requerida con buena eficiencia (Ya que estamos corriendo a baterias)

  • Avatar for Charly
    • Carlos

    Se me olvidaba, es que los sensores son para ubicar en suelo a campo raso en la intemperie. Los componentes irían instalados en una carcasa sellada de PVC. De ahi la importancia de que la batería se recargue durante el día.

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