Manual

do

Maker

.

com

Compilar um novo firmware para ESP8266

Compilar um novo firmware para ESP8266

No post anterior foi exemplificado como montar um ambiente de compilação, que foi o SDK montado para compilar o MicroPython. Utilizando o mesmo ambiente, vamos adicionar umas pitadas extras de diversão e compilar agora um novo firmware para ESP8266. Mas calma, continuaremos programando-o  pela interface do Arduino.

Esse novo firmware resolveu a questão do Wemos, que é uma caixa de bugs em seu firmware padrão, infelizmente. Cometi o grave erro de não ver qual era a versão original, mas certamente era antiga e por isso as coisas não iam bem.

Firmware para ESP8266 com FreeRTOS

A primeira etapa dessa empreitada é clonar o git do sistema. Entre previamente no diretório em que pretende manter o SDK e proceda com o seguinte comando (presupondo que você tenha o programa 'git' instalado):

git clone https://github.com/espressif/ESP8266_RTOS_SDK.git

No meu caso, selecionei /mnt como destino, onde foi criado o diretório ESP8266_RTOS_SDK através do comando supracitado.

Não sei se é fundamental, deveria ter testado sem, mas tenho 'toque digital'. Eu fiz os exports manualmente, antes de adicioná-los ao respectivo arquivo que citarei adiante:

export SDK_PATH=/mnt/ESP8266_RTOS_SDK
export BIN_PATH=/mnt/ESP8266_BIN

E seguidamente, entrei no diretório /mnt/ESP8266_RTOS_SDK/examples/project_template e editei o arquivo gen_misc.sh para adicionar os exports previamente citados:

exports-gen_misc-300x179.webp

Use o editor que preferir. Eu sempre uso 'vi' por diversas razões. Continuando nos exports, se você leu o post sobre MicroPython, deve ter visto bem que após montar o SDK foi necessário adicionar o path do cross-compiler ao sistema porque senão a compilação não acontece. O mesmo aqui; o compilador que lá está será necessário do mesmo modo, portanto repetimos o export do post anterior:

export PATH=/home/djames/micropython/esp-open-sdk/xtensa-lx106-elf/bin:$PATH

Esse path é onde criei meu SDK no meu ultrabook, portanto não é necessário dizer que deve ser adaptado ao diretório corrente do seu SDK, certo?

Feito isso, já podemos compilar nosso sisteminha! e dentro desse diretório project_template, execute o arquivo gen_misc.sh que você modificou para adicionar os exports exibidos na imagem acima. Para executá-lo:

./gen_misc.sh

De imediato você será questionado sobre o path do binário. Confirme com "Y", os demais qustionamentos, basta apertar Enter.

Você verá um cacetênio de mensagens de compilação, mas é bastante rápido. Seguidamente à compilação é exibido um conjunto de mensagens das quais você fará uso, se tudo correr bem como foi comigo:

final_da_compilacao-freeRTOS-300x127.webp

Agora basta fazer o flashing. No meu caso é tão prático que só preciso executar o comando, por isso recomendo a todos que puderem - comprem uma Wemos para fazer testes de firmware, é prático DEMAIS!

Se você tem qualquer outro ESP8266, desde o ESP-01, basta colocá-lo em modo flashing. Se nunca o fez, veja como fazê-lo nesse outro post que trata de instalar o NodeMCU. Desse artigo você vai precisar apenas da informação do wiring, tem imagem e tudo, fique tranquilo.

Após colocado em modo flashing, você deverá subir o firmware para o ESP8266 nos respectivos endereços informados ao final da compilação. Pode ser que você fique com um pouco de receio desse processo, mas como você pode ver, é muito bem guiado.

Para subir o firmware, você precisará ter o esptool (pegue-o clicando aí sobre seu nome caso ainda não o tenha). Eu coloquei ele no path do sistema com um link simbólico, como exemplificado no post anterior. Entre então no diretório que você criou para salvar o firmware compilado (/mnt/ESP8266_BIN/ no meu caso) e digite o comando abaixo.

esptool.py --port /dev/ttyUSB0 write_flash 0x00000 eagle.flash.bin 0x40000 eagle.irom0text.bin

Você verá esse lindo e empolgante processo de flashing que finaliza assim:

Infelizmente a imagem foi perdida.

Se estiver usando outro ESP8266 que não Wemos, é hora de desfazer o wiring de flashing e reiniciá-lo. Agora você já pode voltar a se divertir programando na IDE do Arduino, caso tenha colocado suporte ao ESP8266 nela. Se não o fez, tranquilo - leia esse outro post e terá o suporte na sua IDE!

A principal utilidade desse processo é manter atualizado o firmware afim de evitar os bugs citados no inicio do post. Além disso, lhe dá flexibilidade para brincar com outros firmwares, como fiz com o MicroPython. Poderia fazê-lo com o NodeMCU também, depois bastaria subir o meu firmware padrão. Recomendo que você se divirta experimentando, é satisfação garantida!

Inscreva-se no nosso canal Manual do Maker Brasil no YouTube.

Outros sites:

Próximo post a caminho!

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.