Compilar um novo firmware para o ESP8266

tools-fwNo 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 com o FreeRTOS para o 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.

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):

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:




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:

Exemplo de como devem ficar os exports
Exemplo de como devem ficar os exports

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:

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:

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:

Mensagem do final da compilação
Mensagem do final da compilação

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 firware compilado (/mnt/ESP8266_BIN/ no meu caso) e digite o comando abaixo.

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

Atualizado com sucesso
Atualizado com sucesso

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 newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Sistemas Embarcados

BR-Arduino.org

Próximo post a caminho!

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Deixe uma resposta