quarta-feira, 27 de abril de 2016

Configurando a Memória Flash do ESP8266 no Arduino IDE



Pessoal,

Vou ensinar aqui para vocês como configurar corretamente o tamanho da memória Flash do ESP8266.

Bati muita cabeça aqui tentando fazer uma atualização do firmware do ESP8266 por WiFi, conhecida por OTA (Over The Air), que vou ensinar em outro post. Para quem entende inglês, basta seguir esse tutorial aqui.

Mas sofri muito antes de conseguir efetuar a Atualização OTA por uma configuração errada no tamanho da memória Flash do meu módulo ESP8266.

Uma regra básica para a Atualização OTA funcionar é que o código sendo atualizado não pode ser maior que a metade do tamanho da memória Flash. Isso acontece pois é uma auto-atualização, de forma que o arquivo BIN é gravado no espaço vazio da memória Flash para depois então substituir o código atual sendo executado. Por isso precisa existir um espaço igual ou maior que o código sendo atualizado.

Meu módulo ESP8266 ESP01 estava configurado errado como tendo memória Flash de 512KB, mas o arquivo do código compilado e resultante BIN estava com mais que 256KB, portanto a Atualização OTA não estava sendo possível.

Descobri então que existe um Exemplo pronto que verifica isso pra gente. Basta seguir os passos a seguir.

Passo 1 - Abrir o Exemplo chamado CheckFlashConfig.ino, conforme imagem abaixo.


Passo 2 - Verifique que o código faz uso de funções nativas do ESP8266 para o tamanho da memória Flash configurada no Arduino IDE e o tamanho real do chip, Depois, através de um "if" na programação compara o valor real do configurado e avisa se está certo ou errado!


Passo 3 - Se estiver certo, vai aparecer a mensagem da imagem abaixo no Monitor da Serial ao executar o código. Repare que os tamanhos da memória real e configurada no IDE são iguais.



Passo 4 - Mas se aparecer a mensagem de erro "Flash Chip configuration wrong", então vamos precisar configurar o tamanho correto no menu "Ferramentas" conforme mostra a imagem abaixo.


É isso aí pessoal! Simples assim! No próximo artigo da série do ESP8266 eu vou ensinar como fazer Atualização OTA!

Abraços,
Renato Aloi

Um comentário:

  1. Desculpa a pergunta Aloi. Mas qual a idéia de configurar esta memória ? Devido ao tamanho para melhorar desempenho.?

    att

    ResponderExcluir