Configurando a Memória Flash do ESP8266 no Arduino IDE

Hoje vamos aprender 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 eu ensino nesse outro post 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.

(clique na imagem para ampliar)

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.

uint32_t realSize = ESP.getFlashChipRealSize();
uint32_t ideSize = ESP.getFlashChipSize();
FlashMode_t ideMode = ESP.getFlashChipMode();

Depois, através de um “if” na programação compara o valor real do configurado e avisa se está certo ou errado!

if (ideSize != realSize) {
  Serial.println("Flash Chip configuration wrong!\n");
} else {
  Serial.println("Flash Chip configuration ok.\n");
}

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.

(clique na imagem para ampliar)

Mais Informações

No próximo artigo vou ensinar o que é o parâmetro SPIFFS da configuração da memória Flash.