Upgrade de firmware do módulo ESP8266 69

Neste post vamos mostrar como realizar o upgrade de firmware do módulo wifi ESP8266, deixando o módulo mais estável e eliminando bugs das versôes anteriores. O módulo que utilizamos tem versão de firmware 1.1.1, mas o procedimento é o mesmo para outras versões.

IMG_3447

Como interface entre o programa de gravação e o módulo ESP8266, vamos utilizar a serial do Arduino Uno (pinos 0 e 1). Você também pode utilizar um módulo FTDI para realizar essa comunicação serial.

Preparação do Arduino Uno

Antes de efetuar a montagem do circuito, carregue o programa abaixo no Arduino, para garantir que a porta serial não esteja ocupada:

Circuito upgrade módulo ESP8266

Para realizar o upgrade, siga o esquema de ligação abaixo. Observe que na alimentação do módulo ESP8266 usamos uma fonte externa de 3.3V. Os push-buttons são utilizados para o reset do módulo e também para entrar em modo flash (gravação). Os resistores são de 10K:

Circuito Arduino ESP8266

Verificando a versão do firmware

Para verificar a versão do firmware antes de efetuar o upgrade, usamos o Termite (download), com a configuração de baud rate de 115200, padrão do ESP8266.

Digite o comando AT na parte inferior do programa, e o módulo deve responder com OK. Em seguida, digite AT+GMR para que seja exibida a versão atual do firmware:

Termite - Firmware atual

A tela acima mostra que estamos utilizando o firmware SDK versão 1.1.1, com versão de comandos AT 0.25.0.0

Download Firmware ESP8266 e ESP Flash Download Tool

Para atualização do módulo, faça o download do ESP Flash Download Tool neste link. A versão que utilizamos é a 2.4:

Flash Download Tool

A versão mais atual do firmware disponível no momento é a 1.5.0. Acesse este link e no final da página baixe o arquivo esp_iot_sdk_v1.5.0_15_11_27.zip. Note que essa é a versão utilizada para montar esse post, e pode ter sido atualizada.

Firmware ESP8266

Preparação do ESP Flash Download Tool

Nesse passo vamos entrar no ESP Flash Download Tool para ler as informações do módulo e preparar o processo de upgrade. Ao executar o programa, são abertas duas janelas: a tela principal do programa, e uma tela de log:

Flash Download Tool - Tela Inicial

Selecione a porta COM na parte inferior do programa. No circuito, mantenha pressionado o botão RST, e em seguida pressione o botão Flash. Solte então o botão RST e solte o botão flash, para que o módulo entre em modo de programação. De volta ao programa, acione o botão START para que as informações do módulo sejam lidas e mostradas em DETECTED INFO, no lado direito:

Selecione a opção SpiAutoSet e selecione os 4 arquivos abaixo, em Download Path Config:

ESP8266_Flash_toolFirmwareesp_iot_sdk_v1.5.0binesp_init_data_default.bin

ESP8266_Flash_toolFirmwareesp_iot_sdk_v1.5.0binblank.bin

ESP8266_Flash_toolFirmwareesp_iot_sdk_v1.5.0binboot_v1.4(b1).bin

ESP8266_Flash_toolFirmwareesp_iot_sdk_v1.5.0binat512+512user1.1024.new.2.bin

Preencha também os endereços (ADDR), ao lado de cada arquivo, conforme a tela abaixo. A tela do ESP Flash ficará assim:

Pressione START para que o upgrade seja iniciado. A tela de console mostra o status da gravação e a porta serial sendo fechada (com closed), ao final do processo:

Flash Download Tool - Console

Após o update, desligue a energia do módulo e ligue-o novamente.

Versão do firmware atualizado

Utilize novamente o Termite para verificar a versão atualizada do firmware, com o comando AT+GMR, como fizemos no início do procedimento:

Termite - Firmware

A nova versão do firmware é a SDK 1.5.0, com versão de comandos AT 0.51.0.0.

Nessa nova versão de comandos AT, para alterar o baud rate (velocidade de comunicação) do módulo , utilize o comando AT+UART_DEF. Para alterar a velocidade para 9600, por exemplo, utilize:

AT+UART_DEF=9600,8,1,0,0

Confira também o nosso tutorial de utilização do ESP8266 com web server no post Tutorial Módulo Wireless ESP8266 com Arduino.

Gostou ? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no final do artigo), comente e visite nossa loja FILIPEFLOP!

Posts Relacionados

Deixe uma resposta para Odair Carlos Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

69 Comentários

  1. olá boa noite estou tentando atualizar o firmware e está apresentando erro aos 97%, ” writing at 0x000fc000…. error when download firmware

    1. Então esse problema apareceu em um dos meus modulos ESP porem no segundo que tentei obtive sucesso, estou procurando a causa do erro

  2. Boa noite,
    Mesmo com este tutorial não estou a conseguir a comunicação entre o arduino e o ESP8266.
    é necessário realizar alguns passou previamente?

    1. Bom dia,

      Você conseguiu alterar a velocidade de comunicação do módulo ?

      Adilson – Equipe FILIPEFLOP

      1. Boa noite,
        Não, apenas me mostra na janela de comandos: “Versao firmware” e “**Final**”, ou seja, não estou a conseguir uma comunicação entre o arduino e o ESP8266.
        Terei de fazer alguns passos previamente ?

  3. Excelente!!! Realizei a comunicação com a interface serial-usb prolific direto no pc, sem o arduino, funcionou perfeitamente.

    1. Como voce fez com o modulo usb-serial?

  4. Boa Dia,

    O esp não esta respondendo no Termite , porem, quando são feitas as configurações no flash o mesmo entra em modo de programação, contudo, não aparece a porcentagem de carregamento e no final do programa aparece erro e closed.

  5. Olá, tive o mesmo problema com a comunicação do esp. Não responde no TERMITE, o código no flash nao chega a aparecer a porcentagem. Entra em modo de programação, ao apertar start, carrega e da erro.

  6. Como faço pra atualizar o esp com o módulo FTDI ?

  7. Tive o mesmo erro na hora de atualizar o firmware, resolvi o problema usando a biblioteca esptool para linux. Assim que chegar em casa escrevo o que eu fazia e se achar mando o firmware que funcionou aqui.

  8. No termite todo comando que eu digito retorna ERROR. No Esp Flash fica toda hora FAIL. a frequência que aparece o erro no termite é p 19200 o que não tem no esp flash

    1. Boa noite.
      Conseguiu resolver esse problema? Também estou com ele.

    2. Oi, pessoal. Estou com o mesmo problema. Vcs conseguiram resolver?

  9. Após apertar RST e F e soltar como informado no tutorial e depois apertar botão START para que
    as informações do módulo sejam lidas e mostradas em DETECTED INFO, dá erro no flash dowload , o seguinte erro False serial port open erro.
    Mas a porta que estou informando esta correta é a com COM 3 que uso para programar o arduino.
    O que pode estar acontecendo?

    1. Conseguiu resolver ? Estou com o mesmo problema

  10. Galera preciso de uma ajuda de alguem que já tenha experiência com o módulo wifi esp8266.
    Comprei recentimente o Modelo: ESP-01 e ele não responde de maneira alguma os comandos AT e as funções da biblioteca WeeESP8266.
    Já testei vários códigos diferentes, com o arduino mega fazendo divisores de tenção pros sinais e com o arduino Due tb.
    Já alterei a velocidade da serial de 9600 e para 115200.
    Já fiz o Upgrade de firmware do módulo.
    Nada resolveu. Aguem tem ideia do que mais pode ser feito?
    Agradeço desde já.

    1. Pedro, aconteceu isso comigo, atualizei e tudo e depois nada. Descobri que numa das montagens queimei a entrada RX dele por que não usei um resistor. Quando não usa ele ate funciona por um tempo, mas depois vai dar problema. Eu achei mais fácil fazer todo o procedimento pelo adaptador USB TTL do que pelo arduino.

      Edilson Maia Favero
    2. Pega o módulo e sente a temperatura dele, se estiver esquentando já era.

      Edilson Maia Favero
  11. Fiz aqui porém o esp fica com o led azul e vermelho acesso enviando muita coisa sem parar . aparece muito []

    1. Eu tive o mesmo problema. Você provavelmente deve ter ligado o GND no GPIO2 por engano.

  12. Segui as instruções e a atualização foi feita.
    Funcionou perfeitamente.
    Obrigado.

    1. Que fonte utilizou de 3,3?

  13. Bom dia, por que a fonte de 3,3v tem que ser externa sendo que o Arduíno fornece?

    1. Pq dependendo da situação ele pode exigir até 300mA de corrente, e o limite do Arduino é de 50mA.

    2. Opa, pois em algumas funções de atualização de valores o ESP consome mais ou menos 150mA. Sendo que o arduino fornece apenas 50mA.

  14. Estou com um problema no meu microcontrolador. Não responde nem ao comando AT inicial. Já testei com todos os BAUDRATEs.

    Comprei o meu microcontrolador com vocês, pedido 324FFF a uma sema e ainda não consegui testar nenhum dos seus exemplos. Estou tentando atualizar o firmware agora e não consigo resposta.

    1. Estou com o mesmo problema … logo no início no termite ao dar o comando AT já recebo a resposta de ERROR, sendo que os pinos estão montados corretamente e usei uma fonte externa para suprir o módulo ESP8266

      1. Opa,
        Este erro vem da placa, isso quer dizer que voce esta se conectando com ela, o que pode estar acontecendo é que quando voce manda o comando AT, ele esta com sujeira, e vem ERRO, pois o comando não foi encontrado.

        se voce esta usando o TERMINATE. Clique em va na opção marque ‘Append CR-LR’. Pode resolver o problema.

        Mesmo com este erro voce pode atualizar o firmware. Muito importante é:
        – Pino CPI00 ‘DESLIGADO’ – ESP em modo normal;
        – Pino CPI00 ‘ATERRADO’ – ESP em modo programador, para atualizar firmaware.
        (A cada troca de estado deste pino deve ser desligada e ligada o ESP).

        1. (ajustado erros de tag)
          Opa,
          Este erro vem da placa, isso quer dizer que voce esta se conectando com ela, o que pode estar acontecendo é que quando voce manda o comando AT, ele esta com sujeira, e vem ERRO, pois o comando não foi encontrado.

          se voce esta usando o TERMINATE. Clique em “settings” va na opção “transmitted text” marque ‘Append CR-LR’. Pode resolver o problema.

          Mesmo com este erro voce pode atualizar o firmware. Muito importante é:
          – Pino CPI00 ‘DESLIGADO’ – ESP em modo normal;
          – Pino CPI00 ‘ATERRADO’ – ESP em modo programador, para atualizar firmaware.
          (A cada troca de estado deste pino deve ser desligada e ligada o ESP).

          1. Estava enviando o comando AT e estava retornando ERROR. Fiz a mudança no Termit descrita acima marcando “Append CR-LR” e funcionou!!!!

            Obrigado Eduardo!!

            Fabricio Piccinin
  15. Pessoal tive alguns problemas parecidos, mas descobri que o meu módulo era diferente, vou deixar uma página para identificarem os de vocês mais facilmente, caso não saibam ler em ingles com a tradução do google ja fica bem fácil entender.

    http://www.esp8266.nu/index.php/Tutorial_ESPEasy_Firmware_Upload

    Edilson Maia Favero
  16. Olá pessoal,

    Ao enviar comandos AT pelo Termite obtenho apenas a seguinte resposta:

    AT

    ERROR

    Ou seja, retorna apenas uma mensagem de erro.

    Estou utilizando a configuração padrão do Termite, ou seja, a que vem pré configurada na instalação do software.

    Já testei com alguns Baudrates diferentes e sempre o mesmo problema.

    Alguém poderia me ajudar com sugestões ou mesmo experiências parecidas ?

    Obrigado desde já !

    1. Olá Henrique,

      Você disse que está usando as configurações padrão do Termite. Mas você se lembrou de mudar o baudrate pra 115200?

      Abraços.

      Samuel Pereira
      Instituto Nacional de Telecomunicações

  17. Bom dia. A ligação dos pinos TX e RX não deveria ser invertida?

    1. Boa tarde José,

      Não, porque neste caso a placa Arduino está apenas servindo de “passagem” entre o computador e o ESP8266. A ligação fica realmente como mostra o circuito.

      Abraço!

      Adilson – Equipe FILIPEFLOP

  18. Eu fiz o teste com o termite e aparece o seguinte
    àààà
    eu usei o comando att e apareceu :
    AT
    à[00]

    o q fazer? e se eu continuar om o segundo passo resolverá?

    João Marcos de Andrade
  19. Olá.

    Estou tentando utilizar um ESP-12E como módulo WiFi para Arduino. Mas não consegui sequer obter respota para os comandos AT entre o Arduino e o ESP, então presumi que o módulo pode ter vindo sem o mínimo necessário (interpretador AT). Assim sendo, pensei que seria necessário fazer o upload de uma flash ao módulo… tentei utilizar o Arduino Mega para tal, mas só obtive a mensagem de “chip sync failed”.

    Segui a pinagem sugerida pelo fabricante para fazer o flash (GPIO15 em baixa, e GPIO0 e 2 em alta; Reset em Alta, Enable em Alta), e para a ligação entre os TX e RX, eu utilizo um conversor lógico para interfacear 5 volts com 3.3v.

    Vi que o pino de alimentação do Arduino fornece até 200mA, e o ESP consome, no máximo 170mA, portanto penso que alimentação não é problema.

    Alguma ideia do que possa ser?

    Então

    1. Amigo se você conseguir ou conseguiu utilizar o esp 8266-12e poderia me ensinar como ? agradeço meu emaill é [email protected]

    2. Eu também estou com problemas neste mesmo ESP, segui este tutorial para fazer um flash e agora quando ligo o ESP em modo programação ele fica apresentando apenas uma leitura no monitor serial do Arduino e no Termite também

      Fatal exception (0):
      epc1=0x40100088, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000

      vários deste por segundo, alguém tem alguma noção do que pode ser e uma solução?

      1. Ola voce conseguiu corrigir o seu problema? estou na mesma situação, meu esp8266 só fica me retornando a mensagem Fatal exception (0):
        epc1=0x40100088, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000

        Não consigo nem atualizar seu firmware. qualquer dica que voce puder me dar ja é valido!

        Eduardo Silva Cardoso
  20. Boa tarde

    Você poderia me ajudar!?
    Estou com diversos problemas ao fazer o upgrade do meu esp8266, eu nao consigo fazer ele comunicar direito, ele começa comunicar, ele pega os MACs porem para nessa parte… Tentei usando o pl2303 e o cp2102 (conversores usb) e nao consegui nem mesmo usando o arduino… Ja não sei o que fazer, tentei com 3 esps diferentes e nada… Alguma ideia!? Obrigado

  21. Fiz a atualização do firmware mas quando utilizo o software Termite para ver a versão quando dou os comandos não aparece nada!! (sistema operacional windons 8.1)

    1. Mesma coisa aqui!

    2. Estou com o mesmo problema aqui. Será que tem a possibilidade de o meu módulo não ter vindo com nenhum firmware gravado e o procedimento para gravação ser diferente do procedimento para upgrade?

  22. Adilson eu estou fazendo o projeto da Estação de medição de temperatura Open-Source com Arduino e IoT feito pelo Pedro Bertoleti (https://www.embarcados.com.br/estacao-de-medicao-de-temperatura-com-arduino-e-iot-comunicacao/), mas estou com dúvidas de como conectar o meu ESP8266 no compudador para gravar o meu firmware pela IDE do Arduíno e utiliza-lo como Wi-Fi. No artigo do Pedro Bertoleti ele baixou a biblioteca do ESP8266 e indicou o artigo do Pedro Minatel (http://pedrominatel.com.br/pt/eletronica/esp8266-o-guia-basico-de-hardware/) para conectar o ESP8266 no computador, mas eu achei muito confuso e não entendi muito bem, lá ele fez a montagem esquemática do circuito um pouco parecida com a sua, ma lá ele usou a placa FTDI FT232 um regulador de tensão de 3,3V e uma porta USB, que eu não entendi para que serve já que a placa FTDI já tem uma entrada USB e também usou dois botões um para o reset e outro para o boot mode. A minha pegunta é a seguinte se eu utilizar a montagem esquemática do seu circuito e baixar a biblioteca do ESP8266 no Arduíno para gravar o meu código e utiliza-lo como Wi-Fi dará certo? pelo o que eu entendi para que eu consiga utilizar o ESP8266 como Wi-Fi eu preciso fazer o reset/flash não é isso mesmo? você poderia me ajudar?

    1. Bom dia Marcel,

      Dá certo sim, você pode usar esse esquema para fazer o upgrade de firmware, depois adicionar a placa na IDE e realizar a programação normalmente.

      Abraço!

      Adilson – Equipe FILIPELOP

      1. muito obrigado Adilson irei fazer isso então, parabéns pelo Artigo muito bom. Abraços.

        1. Valeu Marcel. Abraço! 🙂

          1. Beleza Adilson, eu montei o meu circuito igual ao seu para fazer o upload do meu código no ESP8266, mas eu não estou conseguindo. O compilador me retorna o seguinte erro: warning: espcomm_sync failed
            error: espcomm_open failed
            error: espcomm_upload_mem failed
            error: espcomm_upload_mem failed

            Eu fiz a configuração do ESP8266 pela a IDE do Arduino pelo Bords Manager. Será que estou fazendo alguma coisa de errado? ou pode ser também um problema no meu ESP8266?

            Abraços.

            Marcel Philippe
  23. Pessoal, quem estiver enfrentando problemas em utilizar o ESP8266 no Termite (mensagens de erro, etc), se atentem a dois pontos: No desenho de ligações está faltando um fio conectando o GND do arduino no GND da protoboard; Configurem o “settings” do termite exatamente igual a esta foto: http://api.ning.com/files/FbzLmqb7FY6djLRU*IJyaWfG5soiRJKqYOkIjOzTPCzXX6Eqi5OaGJv9XAp1H*srRPJ8ka9KXM6lg-IiQ*j2Tyi9NeoBGwoB/Termiteconfgurao.JPG

    Fazendo isso consegui resolver meu problema. espero que ajude

    1. Seria interessante o adm da página adicionar esses pontos ao post

    2. Procurei por toda parte sobre isso mas so depois de muito procurar e reinstalar o firmware li seu comentario, Obrigado hahah

    3. Valeu!
      Agora Sim Funcionou!
      Parabéns!

    4. Boa tarde, onde eu encontro o settings?
      Obrigada.

  24. Boa noite pessoal,

    Alguém saberia dar uma dica de atualizar o firmware do ESP-05. Este módulo não tem o GPIO0 para ligar a chave de flash… Alguém já teve sucesso fazendo a atualização via cloud/OTA ?

    1. Bom dia amigo! Você conseguiu fazer a atualização do Modulo ESP-05. Tambem tenho este modulo e nao encontrei nenhuma maneira de atualiza-lo. Desde ja obrigado.

      1. Olá Carlos,

        Infelizmente não consegui. Agora comprei o ESP-07 que vem com o pino do GPIO0 para ligar a chave, assim se precisar poderei atualizar o firmware.

        abs

  25. Muito boa materia… ajudou e muito!
    Deu tudo certo a atualização depois de vários erros por causa do tamanho do caminho de onde estava o programa…. foi só transferir a pasta para a raiz do PC e rodou certinho!
    E realmente, apenas a versão 2.4 funciona… a mais nova 3.4 não funciona para esta atualização!
    Abraços!

  26. Depois do upgrade meu ESP fica com o led azul aceso direto e quando conecto ao Termite ele começa a escrever um monte de caracteres especiais sem parar…
    Para ele parar eu tenho que colocar em modo flash de novo, mas ele fica sem responder, somente aceita o flash.
    Refiz o processo de flash 3x e nada. O que poderia ser?

  27. Ola alguem sabe me dizer como posso ligar o modulo esp8266 esp-05? e se eu posso usar o cabo Cabo Conversor USB TTL PL-2303HX ?? estou querendo comprar mais tenho duvida de como posso ligar ele

  28. Tem como eu fazer esse upgrade usando o linux?? se sim quais programas alternativos?

  29. Boa noite, eu vi o artigo de como conectar o esp8266 e nao tive sucesso algum, a unica coisa q aparecia no meu serial print era “Versão do Firmware ** Final **”, só, nao aparece erro e nem caracter estranho, é como se o programa ignorasse o codigo e reconhecesse só o Serial.print. Tentei fazer tudo o q os comentarios sugeriram, montei e remontei o circuito exatamente igual ao circuito q estava na pagina mais de 10x, e nada. Quando abro o termite e digito AT nao aparece resposta alguma, absolutamente nada, nem mensagem de erro e nem caracter aleatorio, só fica na caixa de texto o “AT” q eu digitei. Alguem aqui sabe qual é o tem alguma solução pra esse problema, a impressao que dá é q todos os pragramas ignoram tudo o q faço por que nao resposta de erro eles retornam.

    1. Olá Thiago,

      Certifique-se de que está enviando “/r/n” após cada comando AT.

      Essa informação pode ser encontrada na pág 6 do manual de comandos AT:
      https://www.espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf

    2. Eu estou com o mesmo problema que você amigo, mas eu também fiz várias ligações erradas no meu ESP8266 antes de executar esse teste..
      Acho que posso ter danificado meus módulos.. Alguém sabe porque depois de Versão do firmware ele pula direto pro final?

      Solano Rigotti Caiano
      1. Olá Solano e Thiago,

        Recomendo a vocês deixarem um pouco de lado a programação com Arduino e utilizarem um conversor USB-serial para enviar os comandos AT diretamente ao ESP sem depender de programação Arduino para isso.
        Dêem uma olhada no manual oficial de comandos AT https://www.espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf
        Então “brinquem” de enviar comandos AT para realmente entender o que acontece com cada comando enviado e a resposta que o ESP envia.

        Após entender bem o princípio de comandos AT, ai sim utilizem um Arduino para enviar esses comandos e automatizar o processo.

  30. Olá pessoal, consegui atualizar aqui, no meu esp8266 01 (preto), liguei todos sem os resistores, ficou assim:
    ESP –> ARDUINO
    TX –> 1 (TX)
    CH_PD –> 3,8V (BATERIA DE TABLET)
    RST –> 3,8V
    3.3V –> 3.8V
    GND –> GND
    GPIO0 –>GND(PARA ATUALIZAR, DESCONECTAR PARA ENVIAR COMANDOS AT)
    RX –> 0 (RX)

    AÍ no Termite seleciona Append CR+LF

    Espero que ajude, aqui resolveu.

  31. Pessoal, fiz os procedimentos conforme descritos, porém agora o meu esp8266 entrou em loop, a luz azul não para de piscar e eu não sei o que fazer, alguém já passou por isso?