Atualizando firmware do ESP-01

ESP01

ESP01

Neste artigo vamos mostrar como atualizar o firmware do ESP-01. Serão duas abordagens. A primeira será mostrar como restaurar o firmware padrão para comandos AT do módulo. A segunda será apresentar como gravar novos firmwares escritos por você ou exemplos prontos a partir da IDE arduino.

Introdução

Antes de mais nada, este é um artigo para quem já está com a mão na massa em relaçao ao ESP 01. A motivação para escrever esse post veio de uma necessidade do próprio blog de atualizar o firmware do módulo para uma das versões originais.

Na internet exitem vários exemplos e posts, mas um número impressionante deles incorre em um problema muito complicado do ponto de vista didático: Explicam super bem o passo a passo, mas não explicam o que está por trás de cada passo. Isso aconteceu principalmente para gravar o firmware original para usar com comandos AT. A maioria dos guias dão por subentendido que o leitor sabe exatamente como configurar as ferramentas da Espressif Systems e como identificar os endereços de memória associados a cada arquivo binário que deve ser gravado.

Apesar de ser um aspecto básico de toda pesquisa na área de eletrônica, nem sempre os usuários lembram de ler os arquivos readme ou de procurar por instruções dos próprios fabricantes dos modelos e sensores, preferindo ir direto em tutoriais que, em tese, explicariam melhor como colocar uma aplicação para rodar.

No caso de gravar o firmware original para usar o ESP-01 com os comandos AT, as principais recomendações a serem levadas em conta são:

  • Use as ferramentas originais do fabricante: Espressif Systems;
  • Baixe os arquivos binários diretamente do site do fabricante: AT Firmware bin.
  • Vá na pasta bin, dentro da qual estarão os binários para você gravar e outras duas pastas: std e stdio. Nessas duas pastas se encontram o arquivo readme(um arquivo para cada pasta). Ao abrir cada arquivo você deve encontrar um conteúdo mais ou menos com a cara da imagem abaixo:
readme - At firmware ESP-01

readme – At firmware ESP-01

Nesses arquivos estão indicados qual o endereço correspondente para cada arquivo binário, para cada tipo de ESP-01(que variam o tamanho da memória flash). Esse arquivo muitas vezes é omitido nos tutorias, mas é a fonte principal para saber usar os arquivos binários do fabricante de forma correta.

Saber os endereços é fundamental pois a ferramenta oficial de atualização do firmware do ESP-01 faz a gravação de mais de um arquivo binário ao mesmo tempo, sendo necessário especificar exatamente qual o endereço de memória a partir do qual cada arquivo deve ser gravado.

A outra possibilidade de fazer update é para gravar um software escrito por você ou por outra pessoa. Nesse caso não é necessário se preocupar com os arquivos binários do fabricante, e a maneira mais prática é usar a própria IDE do Arduino, como vamos mostrar em seguida.

Aspectos de Hardware

Tendo em vista o que foi dito na introdução, vamos usar a seguinte montagem para carregar o software(tanto o original para comandos AT como outros firmwares que você queira gravar).

A montagem foi feita usando o conversor serial FTDI232. É uma placa muito útil em diversos projetos e é recomendado ter uma dela para quando for necessário. Os pontos mais importantes da montagem são os seguintes:

  • A placa FTDI232 trabalha com 5 ou 3.3V. Nesse caso, como o ESP-01 trabalho com 3.3V, você deve usar uma fonte externa de 3.3V para alimentar o protoboard e selecionar o jumper do FTDI232 para a posição de 3.3V. Veja na imagem abaixo o jumper em destaque, é fundamental colocá-lo na posição correta.
  • Sao usados dois botões, um ligado ao pino de Reset do ESP e outro ao pino GPIO0. Essas duas chaves são usadas para colocar o módulo em modo de gravação.
  • Como todo o circuito está alimentado com 3.3V e o FTDI232 está com o jumper selecionado para 3.3V, não é necessário converter os níveis lógicos entre as duas placas. Mas é comum em projetos com ESP que você tenha que usar um conversor de nível lógico ou divisores de tensão.

FTDI232. Créditos: eletrogate

Na próxima seção vamos fazer a atualização de firmware em dois procedimentos.

Aspectos de Software

Primeiro vamos carregar o firmware para utilização de comandos AT. Muitas vezes é necessário carregar esse firmware para poder trabalhar com os comandos AT e fazer testes com seu módulo.

Procedimentos 1 – Atualizando para firmware de fábrica(comandos AT)

O primeiro passo é baixar o programa de atualização do fabricante e os arquivos binários a serem gravados:

A ferramenta de gravação tem a cara abaixo. Repare que existem vários campos para preencher com um endereço de memória e carregar diversos arquivos binários. Como comentamos no início do post, você deve verificar no arquivo readme, que vem junto com os binários que você baixou, qual o endereço de memória associado a cada binário.

Para saber qual o tamanho da memória do seu módulo, você pode fazer um teste simples. Ao executar o ESP Flash Download Tool, são abertas duas janelas: a tela principal do programa e uma tela preta usada para log.

Na tela de abertura selecione o seu módulo ESP8266

  1. Selecione a porta COM atribuída ao seu módulo.
  2. Selecione o baudrate. O valor mais comum é 115200,  mas dependendo da versão do seu módulo e firmware pode ser outro. Tente primeiro em 115200.
  3. Agora, com seu circuito devidamente energizado e com o FTDI232 conectado ao computador, pressione e segure o botão ligado ao pino GPIO_0 do ESP, e em seguida pressione e solte o outro botão(Reset). Você verá o led azul do ESP piscar uma vez.
  4. Agora o módulo entrou no modo de programação. Selecione START no ESP Flash Download Tool, se tudo estiver certo, as informações sobre o módulo serão mostradas no lado direito do programa, no campo DETECTED INFO.

Tela do ESP Flashing Tool

Tendo feito os passos acima descrito, você está pronto para carregar o firmware dos comandos AT. Abra a pasta que você baixou com os arquivos binários e abra o arquivo readme. identique qual o conjunto de endereços e arquivos binários que deve utilizar, de acordo com a versão do seu módulo e os carregue na sequência mostrada no readme.

Basta carregar os arquivos correspondentes e preencher o endereço do lado direito, como mostrado abaixo. Em seguida, marque a opção SPIautoSet, em cima da caixa DETECTED INFO. Selecione também o tamanho da memória Flash do seu módulo. Assim que tudo estiver marcado, selecione e START e aguarde o término do download.

Ao fim, o seu módulo estará carregado com o firmware para comandos AT. Para testar se deu tudo certo, abra um terminal serial e faça um teste digitando AT. Se você receber um “OK”, então deu tudo certo!

Procedimentos 2 – Gravando novos firmwares com IDE arduino

Caso o seu objetivo seja usar a IDE do arduino para carregar os firmwares que você mesmo escreveu, o procedimento não é muito diferente. Primeiro, é preciso instalar as bibliotecas do ESP8266 na IDE Arduino. Na versão mais atual da IDE (1.8.5) o pacote ESP8266 já vem instalado, mas se você usa outra versão ou precisa instalar, pode fazer isso manualmente.

  1. Acesse Arquivo->Preferências. No campo “URLs Adicionais de Gerenciamento de Placas”, basta inserir o link do pacote ESP8266 e confirmar.
  2. Depois disso, acesse Ferramentas->Placa->Gerenciador de Placas. Procure pelo pacote do ESP8266 e faça a instalação.
  3. Agora, ao acessar Ferramentas->Placa, várias versões diferentes de módulos ESP estarão disponíveis para serem selecionadas. Escolhe a opção correspondente ao seu módulo.

O link do pacote é esse aqui: http://arduino.esp8266.com/stable/package_esp8266com_index.json

Caso algo dê errado, verifique se houve alguma mudança no repositório oficial.

Veja na imagem abaixo a tela de preferências para carregar a URL adicional.

Tela para adicionar a URL do ESP

Após adicionar a URL, você pode instalar o pacote do ESP conforme o passo 2, como mostrado abaixo:

Instalando o pacote ESP8266

Após ter feito todos os passos e com o seu módulo ESP já selecionado para a IDE, você já pode fazer o update de firmware. Com o circuito montado e devidamente testado, vá na IDE do Arduino e carregue o exemplo Blink do ESP8266. Com o exemplo aberto e o circuito energizado, mantenha o botão ligado ao GPIO0 pressionado e dê um pulso no botão de reset. Você verá o led azul piscar, o que significa que o módulo está em modo de gravação.

Agora, na IDE, basta fazer o upload do firmware e aguardar o término da gravação. Ao final o programa de Blink estará carregado no seu ESP. O mesmo procedimento pode ser repetido para outros módulos.

Considerações finais

Agora que você já sabe carregar e atualizar o firmware do ESP-01 já pode começar a fazer suas aplicações e escrever seus próprios programas. Um exemplo de como começar a usar o ESP-01 pode ser visto neste post! Outras aplicações serão postadas no blog, fique atento!

Se tiver alguma questão ou dúvida sobre o processo de download, deixe um comentário!

Faça sua avaliação.
Por favor, aguarde...
Vitor Vidal
Vitor Vidal
Engenheiro eletricista, mestrando em eng. elétrica e apaixonado por eletrônica, literatura, tecnologia e ciência. Divide o tempo entre pesquisas na área de sistemas de controle, desenvolvimento de projetos eletrônicos e sua estante de livros.