
Soft Reset automático no ESP8266 após upload via PlatformIO
Como Modificar as Flags de Upload no PlatformIO para Incluir Soft Reset no ESP8266
Se você é um desenvolvedor que trabalha com o ESP8266 e utiliza o PlatformIO, talvez já tenha notado que o microcontrolador nem sempre reinicia automaticamente após o upload. Felizmente, é possível ajustar esse comportamento adicionando uma flag específica que força um soft reset ao final do upload.
🔧 Passos para Modificar o Script de Upload
-
Acesse o arquivo de configuração:
Localize o arquivomain.py
do builder do PlatformIO:- Windows:
C:\Users\<usuário>\.platformio\platforms\espressif8266\builder\main.py
- Linux/Mac:
/home/<usuário>/.platformio/platforms/espressif8266/builder/main.py
- Windows:
-
Encontre o trecho responsável pelo protocolo de upload:
elif upload_protocol == "esptool": env.Replace( UPLOADER=join( platform.get_package_dir("tool-esptoolpy") or "", "esptool.py"), UPLOADERFLAGS=[ "--chip", "esp8266", "--port", '"$UPLOAD_PORT"', "--baud", "$UPLOAD_SPEED", "write_flash" ], UPLOADCMD='"$PYTHONEXE" "$UPLOADER" $UPLOADERFLAGS 0x0 $SOURCE' )
-
Adicione a flag de
soft_reset
:elif upload_protocol == "esptool": env.Replace( UPLOADER=join( platform.get_package_dir("tool-esptoolpy") or "", "esptool.py"), UPLOADERFLAGS=[ "--chip", "esp8266", "--port", '"$UPLOAD_PORT"', "--baud", "$UPLOAD_SPEED", "--after", "soft_reset", "write_flash" ], UPLOADCMD='"$PYTHONEXE" "$UPLOADER" $UPLOADERFLAGS 0x0 $SOURCE' )
-
Execute o upload com log detalhado:
Esse comando mostrará todos os parâmetros passados aopio run -t upload -v
esptool.py
, útil para verificar se o--after soft_reset
está sendo aplicado corretamente.
🧐 Por Que Isso É Importante?
O soft_reset
permite que o ESP8266 reinicie automaticamente após o upload do firmware, facilitando o processo de testes e evitando a necessidade de desconectar e reconectar o dispositivo manualmente.
✅ Conclusão
Com essa pequena modificação no script de upload do PlatformIO, você pode otimizar seu fluxo de desenvolvimento com ESP8266, economizando tempo e evitando problemas comuns de inicialização.