Neste artigo será detalhado um passo a passo para atualizar a versão de firmware na memória flash do módulo WIFI ESP8266 ESP-01, utilizando apenas o módulo, jumpers e um Arduino UNO.
É muito comum quem utiliza o módulo WI-FI ESP-01 encontrar problemas devido à variedade de versões de firmware disponíveis para download, o que pode gerar problemas em comandos AT, baud rate, entre outros. Então uma boa forma de depurar algum defeito na resposta desse módulo é atualizar o firmware, de preferência utilizar a versão indicada no manual de comandos AT da Expressif.
Nesse manual há um tópico “Downloading AT Firmware into the Flash” que indica o link e recomenda as versões de arquivos binários para cada tamanho de flash. Por isso, é interessante verificar o tamanho da flash do seu módulo (vou explicar mais adiante) e utilizar os arquivos certos.
Componentes necessários
- Jumpers;
- Arduino – Interface Serial USB;
- ESP-01;
- ESP FlashDownloader;
- ESP Firmware.
Conexões para Atualização de firmware
A interface escolhida para a gravação foi o Arduino UNO, pois é um item comum para makers. Por segurança é possível tirar o chip ATMEGA da placa, para apenas utilizar o conversor Serial/USB (opção possível apenas para UNO com ATMEGA PTH, neste caso retirar o chip com cuidado para não entortar os terminais).
Embora a alimentação de 3,3 V que o Arduino fornece possa ser utilizada para algum teste com a ESP-01, é recomendado utilizar uma fonte externa pois o módulo WIFI sempre demanda uma corrente que pode oscilar entre 70 e 300 mA, sendo que o 3,3 V do Arduino fornece no máximo 50 mA. Essa disparidade de corrente pode gerar problemas nas respostas dos comandos AT’s que podem confundir o usuário.
Há 2 ligações necessárias entre o ESP-01 e o Arduino, para o processo de update e comunicação, são elas:
Modo de BOOT
Modo de comunicação
Observe que a única conexão diferente entre as duas é que no modo boot o pino GPIO0 é ligado ao GND.
Primeiramente, para conferir a versão atual do seu módulo faça a conexão modo comunicação, abra a IDE do Arduino, verifique em qual porta COM ele se encontra, abra o monitor Serial, se tudo estiver OK digite o comando AT+GMR e verifique a versão:
Esse é um modo para verificar a versão do seu módulo antes de começar, mas você pode pular esta etapa se quiser, pois há casos em que o ESP-01 não está respondendo a este comando ou mesmo com a firmware corrompida, então, é possível passar para o próximo passo do update.
Gravando a Flash
Para fazer o download do firmware na Flash do módulo wifi é necessário ter o Flash Download Tool.
Antes de qualquer coisa, desligue a alimentação do módulo, mude a conexão para “Modo BOOT”, e religue a alimentação. Abra o ESP Flash downloader, irão aparecer 2 janelas como as da figura, primeiro é necessário mudar a porta COM em “Download Panel 1”, mudar a taxa de comunicação (padrão do ESP-01 é 115200, mas se não der certo pode tentar outras), e clicar em START.
É importante fechar o monitor serial do Arduino ou outro programa utilizado na porta COM senão dá este erro:
Estando tudo OK o software vai sincronizar com seu módulo e dar informações de MAC address e flash size:
Na Figura 8 é possível ver que o flash size do módulo utilizado é 8 Mbit, logo serão baixados os arquivos indicados pelo documento de comandos AT (aquele pdf que citei antes) para 8 Mbit (se o módulo for 4 Mbit utilizar outros arquivos):
Recomendo fortemente conferir e utilizar os arquivos binários que o Manual indica pois, teoricamente todos os comandos AT do documento vão funcionar com este firmware. Antes de seguir, baixe o pacote com os arquivos binários e o download do pacote de arquivos de firmware.
Dentro da pasta bin, estarão todos os arquivos necessários:
Seguindo os arquivos indicados pelo manual, em “Download Path Config” procure por todos os arquivos e preencha os endereços de memória corretos, habilite a opção “SpiAutoSet”, escolha o Flash Size correto, e clique em START para iniciar a gravação.

Se tudo estiver certo o download começará:
Download completo:
Por fim, volte a conexão para o modo comunicação, desligue o 3,3 V para resetar o módulo, e ligue novamente. Abra o monitor serial do Arduino para checar os comandos AT, e se tudo está OK.
Saiba mais
Primeiros Passos com WEMOS D1 R1 com ESP8266EX embutido

















*Figura 8 no comentário abaixo
Alexandre, boa noite! Parabéns pelo tutorial. Entretanto, algumas pessoas são entusiasta e por isso penso que tem que ser ainda mais claro. Por exemplo, na figura quais são as informações que temos que preencher nos campos do Download Path Config? Onde fazer o download de ESP8266_NONOS_SDK-master ? Temos que energizar o arduino? Quando NÃO energizo o arduino o ESP8266 acende uma luz azul e outra vermelha, porém o computador não reconhece e consequentemente não define nenhuma porta. Quando eu energizo o arduino acende apenas a luz vermelha e reconhece a porta, mas da erro em ambos os casos.
Tive problemas em salvar arquivos na memória flash do ESP01 utilizando o SPIFFs, ele salva o arquivo mas quando reseta o chip ele volta com os arquivos vazios ou inexistentes. Sabe me dizer se isto esta funcional nessa versão de firmware? Vlw
Bom dia Luciano,
Ainda não tentei fazer o download dos arquivos bin do ESP8266 usando SPIFFs. Eu acho o processo utilizando a Flash Download Tool mais simples pois nesse caso vamos utilizar o firmware pronto que a Espressif fornece, apenas para que o ESP01 funcione por comandos AT.
Vou tentar replicar esse processo com o SPIFFs e conseguindo o mesmo resultado eu posto por aqui. Valeu!!