terça-feira, fevereiro 25, 2020

Sonoff Basic: Salvando o Firmware Original

Antes de começar a experimentar com outros firmwares para o Sonoff é bom salvarmos o que veio de fábrica para podermos restaurá-lo. Os detalhes abaixo se referem ao Windows, mas o procedimento é semelhante sob Linux.



ATENÇÃO: Antes de fazer qualquer coisa, desligue o que tiver na entrada e na saída do Sonoff!

O primeiro passo é soldar um conector de programação e ligar um adaptador serial USB. Como dito no post anterior, o ideal é usar um adaptador que trabalhe com 3,3V na serial. Você pode usar um de 5V, mas a alimentação do Sonoff tem que ser 3,3V. Uma chave para ligar e desligar a alimentação (como na foto) tornará o processo mais simples, sem ela você precisará desconectar e reconectar o adaptador (e aguardar o sistema operacional reconhecê-lo).


A leitura e gravação de firmware no ESP é feita usando uma ferramenta da ExpressIf (fabricante do ESP) chamada esptool. Esta ferramente está escrita em Python, se você não tiver instalado você precisa primeiro baixar e instalar o interpretador (pode ser a versão 2 ou 3). Em seguida baixe o esptool daqui e expanda num diretório (por exemplo, c:\esptool). Abra uma janela de comando e confira que você consegue rodar o Python:


Para sair do Python, digite quit().

Se não achar o Python, você vai ter que acertar o path (o exemplo abaixo assume que o Python está instalado em x:\Python27):


Entre no diretório onde você expandiu o esptool e o instale (demora um tempo e vai baixar mais coisas, você precisa estar conectado à internet):

python setup.py install

Conecte o seu adaptador serial e verifique qual a porta associada a ele. Antes de cada comando esptool você precisará desligar o Sonoff, apertar o botão, ligar com o botão apertado e soltar o botão. Este processo coloca o ESP8266 no modo de programação.

O primeiro comando que vamos usar é para descobrir o tamanho da Flash (e confirmar que está tudo funcionando). Coloque o Sonoff no modo programa e digite o comando

python espyool.py --port COMx flash_id

(trocando COMx pela porta correspondente ao adaptador serial):


O resultado deve ser semelhante ao da figura acima, indicando que o seu Sonoff tem uma flash de 1M. Para ler e salvar o firmware original, digite

python esptool.py --port COMx read_flash 0x00000 0x100000 firmware_original.bin

Se o seu Sonoff tiver uma flash de 4M, o tamanho no comando precisa ser alterado:

python esptool.py --port COMx read_flash 0x00000 0x400000 firmware_original.bin



O esptool pode ser usado também para carregar outros softwares, mas no próximo post usaremos a IDE do Arduino para isto.

Nenhum comentário: