Upgrade de firmware do módulo ESP8266

Upgrade de firmware do módulo ESP8266

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:

void setup()
{
  //vazio
}

void loop()
{
  //vazio
}

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_tool\Firmware\esp_iot_sdk_v1.5.0\bin\esp_init_data_default.bin

ESP8266_Flash_tool\Firmware\esp_iot_sdk_v1.5.0\bin\blank.bin

ESP8266_Flash_tool\Firmware\esp_iot_sdk_v1.5.0\bin\boot_v1.4(b1).bin

ESP8266_Flash_tool\Firmware\esp_iot_sdk_v1.5.0\bin\at\512+512\user1.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!

5
Upgrade de firmware do módulo ESP8266
25 votos, 4.48 classificação média (89% pontuação)

Formado em Ciência da Computação pela Universidade de Mogi das Cruzes, atualmente responsável pelo departamento técnico da FILIPEFLOP.

Compartilhe este Post

62 Comentários

  1. cristianokiki - 9 de abril de 2017

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

  2. Matheus Barbosa - 5 de abril de 2017

    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

  3. Felipe - 29 de março de 2017

    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?

  4. Odair Carlos - 17 de janeiro de 2017

    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!

  5. Rodrigo Mendes - 9 de janeiro de 2017

    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 ?

  6. Rafael Barros - 8 de janeiro de 2017

    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

  7. Marcel Philippe - 10 de dezembro de 2016

    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?

    • Adilson Thomsen - 12 de dezembro de 2016

      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

      • Marcel Philippe - 12 de dezembro de 2016

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

        • Adilson Thomsen - 14 de dezembro de 2016

          Valeu Marcel. Abraço! :)

          • Marcel Philippe - 19 de dezembro de 2016

            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.

  8. Bruno Bortolotto - 22 de novembro de 2016

    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)

  9. Leonardo - 3 de novembro de 2016

    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

  10. Tiago - 21 de outubro de 2016

    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

    • JHON WILKER - 5 de novembro de 2016

      Amigo se você conseguir ou conseguiu utilizar o esp 8266-12e poderia me ensinar como ? agradeço meu emaill é jhonwilkersousa@gmail.com

    • Daniel Costa - 28 de novembro de 2016

      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?

      • Eduardo Silva Cardoso - 5 de janeiro de 2017

        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!

  11. João Marcos de Andrade - 6 de outubro de 2016

    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á?

  12. José Renato - 12 de setembro de 2016

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

    • Adilson Thomsen - 12 de setembro de 2016

      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

  13. Henrique - 4 de setembro de 2016

    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á !

    • Samuel Pereira - 12 de outubro de 2016

      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

  14. Edilson Maia Favero - 16 de agosto de 2016

    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

  15. Lauro Ilson - 21 de julho de 2016

    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.

    • Victor - 9 de agosto de 2016

      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

      • Eduardo Saretta - 18 de agosto de 2016

        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).

        • Eduardo Saretta - 18 de agosto de 2016

          (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).

          • Fabricio Piccinin - 24 de setembro de 2016

            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!!

  16. Henry - 30 de junho de 2016

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

  17. David Fernandes - 27 de junho de 2016

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

  18. Danilo - 27 de junho de 2016

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

  19. Pedro Henrique - 9 de junho de 2016

    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á.

    • Edilson Maia Favero - 16 de agosto de 2016

      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 - 16 de agosto de 2016

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

  20. Zeca - 17 de maio de 2016

    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?

  21. vitor - 21 de abril de 2016

    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

  22. Elias - 11 de abril de 2016

    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.

  23. Ana Caroline - 18 de março de 2016

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

  24. Ana Caroline - 18 de março de 2016

    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.

  25. Carla - 18 de março de 2016

    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.

  26. Nestor - 16 de março de 2016

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

  27. Gabriela Samagaio - 15 de fevereiro de 2016

    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?

  28. João bosco - 13 de janeiro de 2016

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

Deixe uma resposta