Blog
ESP32 no PlatformIO: configuração, portagem e debug
Como usar o platformio com o esp32 sem o sofrimento habitual — configuração da Freenove ESP32-S3 breakout, portagem de sketches Arduino e debug quando nada compila.
Como usar PlatformIO com ESP32?
Instale a extensão PlatformIO no VS Code, crie um projeto e escreva um arquivo platformio.ini — essa é a configuração inteira. O PlatformIO embrulha a mesma toolchain da Espressif, mas fixa cada versão. Meu primeiro pio run baixou a toolchain espressif32 inteira e compilou sem um único passo manual; o mesmo sketch tinha me custado uma tarde na IDE.
O que um arquivo platformio.ini contém de verdade?
Três linhas cobrem a maioria dos projetos: [env:esp32dev], platform = espressif32 e board = esp32dev. Adicione framework = arduino, mais monitor_speed = 115200. Todo o resto é opcional até deixar de ser.
Como configurar o PlatformIO para a Freenove ESP32-S3 Breakout?
Nenhuma config personalizada é necessária para a maioria das placas Freenove S3 — o registro traz um alias como freenove_esp32_s3_wroom, então defina board = freenove_esp32_s3_wroom e o resto se preenche sozinho. Duas coisas derrubam gente independente do alias: a porta USB nativa do S3 precisa do upload_port certo — escolha a porta que aparece quando você pluga — e o LED RGB onboard fica no GPIO 48 na maioria das variantes Freenove. O alias exato depende da revisão da sua placa. A nossa base de conhecimento mantém a tabela Freenove atualizada.
Como debuggar ESP32 no PlatformIO?
Comece com pio run -t upload, depois pio device monitor — log serial é 90% do debug de ESP32. Breakpoints de verdade querem um ESP-Prog via JTAG, ou um S3 com debug USB nativo; devkits WROOM comuns funcionam na maioria com um clone barato de ESP-Prog, mas a documentação oficial é vaga sobre quais clones negociam o handshake. Quando o esptool reporta Failed to connect to ESP32: timed out waiting for packet header, segure BOOT durante o upload — esse erro é problema de modo, não chip morto. O FAQ de debug cobre o resto.
Como portar meu projeto ESP32 Arduino para o PlatformIO?
Crie uma pasta de projeto, adicione platformio.ini com framework = arduino e renomeie o .ino para src/main.cpp — o PlatformIO compila C++ puro, então o invólucro do Arduino desaparece. setup() e loop() ficam como estão. As bibliotecas vão para lib_deps, tipo lib_deps = bblanchon/ArduinoJson@^7.
Como portar meu projeto ESP32 Arduino para o PlatformIO sem perder configurações?
Faça backup de três coisas antes de migrar: as configurações de placa e flash que você expressaria no platformio.ini, a pasta lib/ e qualquer pasta data/ enviada com pio run -t uploadfs. O sketch é portátil; o que se perde são as credenciais de Wi-Fi em arquivos de config e layouts de partição hardcoded. Mova isso para o ini (board_build.partitions) e para uma config ignorada pelo git. Rode pio pkg list primeiro para as versões baterem.
Por que meu Serial Monitor está cheio de lixo?
Mismatch de baud, quase com certeza — o ESP32 inicia a ROM a 115200, então qualquer outra taxa imprime garranchos. Eu já perdi uma hora com 74880 num ESP8266 antes de perceber que o PlatformIO tinha herdado um monitor_speed errado; defina monitor_speed = 115200 e fica limpo.
Como fazer pio monitor num dispositivo ESP32?
Rode pio device list e depois pio device monitor — é assim que se faz pio monitor num dispositivo esp32. No Linux, entre no grupo dialout; no Windows, instale o driver CH340 ou CP2102 ou a porta nunca aparece.
O PlatformIO funciona com o ESP32 dev module?
Sim — a resposta curta para “will platformio work with the esp32 dev module” é que esp32dev é o padrão para a devkit WROOM clássica. Clones com LEDs ou tamanhos de flash diferentes sobrescrevem essas duas configurações.
Como configurar o PlatformIO para ESP32 do jeito rápido?
A maioria dos guias de “how to setup platformio for esp32” assume VS Code, mas a CLI funciona sozinha: pio project init --board esp32dev cria um projeto funcional instantaneamente. Itera no simulador do navegador e depois grava na placa real.
Os projetos deste tópico rodam direto no simulador gratuito do sensbench: circuito pré-montado, firmware incluído, sem conta e sem instalação.