Trabalhar com PlatformIO

Esta página é a referência de configuração do PlatformIO para produtos Seeed ePaper. Ela se concentra nas partes que são diferentes do fluxo de trabalho com Arduino IDE:
- Instalar o PlatformIO no Visual Studio Code.
- Entender a estrutura de projeto criada pelo PlatformIO.
- Editar o
platformio.ini, o principal arquivo de configuração para seleção de placa, seleção de framework, dependências de biblioteca, velocidade do monitor serial, opções de upload e flags de compilação. - Escolher o ambiente PlatformIO correto para cada produto Seeed ePaper.
- Adicionar
Seeed_GFXe gerar odriver.hcorrespondente com a Seeed GFX Configuration Tool.
Se você está procurando APIs de desenho para o display, sketches de exemplo ou código de demonstração específico de hardware, comece por Work with Arduino e pelos cookbooks de produto vinculados ao final desta página. O código C/C++ usado no PlatformIO geralmente é o mesmo código do Arduino. A principal diferença é como o projeto é configurado.
Hardware compatível
O PlatformIO pode ser usado com o fluxo de trabalho baseado em código para produtos Seeed ePaper que expõem um caminho de firmware compatível com Arduino. Use esta página para preparar o projeto PlatformIO e, em seguida, selecione o driver.h correto para sua placa e tela.
| Linha de produto | MCU / alvo de placa típico | Observações de configuração |
|---|---|---|
| reTerminal E1001 / E1002 / E1003 / E1004 | reTerminal E Series baseado em ESP32-S3 | Use um ambiente PlatformIO para ESP32-S3 e, em seguida, gere o driver.h para o modelo exato de reTerminal. |
| Placas driver EE02 / EE03 / EE04 / EE05 | Família XIAO ESP32-S3 | Use a mesma estrutura PlatformIO em toda a família EE0x. O valor de BOARD_SCREEN_COMBO muda com a placa e a tela selecionadas. |
| Kit DIY TRMNL 7.5" (OG) | Família XIAO ESP32-S3 | Use o ambiente ESP32-S3 ao escrever firmware personalizado no estilo Arduino em vez de usar o firmware em nuvem TRMNL. |
| Painel ePaper XIAO 7.5" | XIAO ESP32-C3 | Use o ambiente PlatformIO XIAO ESP32-C3 e, em seguida, use o cookbook do produto para a configuração específica de tela do driver.h. |
| EN04 / EN05 e placas ePaper baseadas em nRF52840 | Família XIAO nRF52840 | Use o ambiente PlatformIO nRF52840 para desenvolvimento de firmware. Se ainda não houver um cookbook específico para ePaper publicado, use esta página como referência de ambiente e o esquema/cookbook do produto para os pinos. |
O projeto PlatformIO é apenas o ambiente de compilação e upload. O display ainda depende do driver.h correto. Se o platformio.ini estiver correto, mas o driver.h estiver direcionado para a placa ou painel errado, o firmware pode compilar e fazer upload enquanto a tela permanece em branco.
Por que usar PlatformIO para desenvolvimento com ePaper?
O PlatformIO é útil quando seu projeto ePaper cresce além de um único sketch:
- Ele mantém placa, framework, bibliotecas, velocidade de upload, velocidade do monitor serial e flags de compilação em um único arquivo
platformio.inisob controle de versão. - Ele pode definir vários ambientes de compilação em um único projeto, para que a mesma base de código possa ter como alvo vários produtos Seeed ePaper.
- Ele baixa bibliotecas por meio de
lib_deps, o que torna o projeto mais fácil de reproduzir em outro computador. - Ele fornece tarefas de compilação, upload, limpeza e monitor serial dentro do VS Code.
Para desenho no display e APIs de hardware, continue usando o mesmo código C/C++ no estilo Arduino usado no cookbook do Arduino. O PlatformIO altera principalmente o layout do projeto e o método de configuração.
Etapa 1: Instalar VS Code e PlatformIO
Etapa 1. Baixe e instale o Visual Studio Code.

Etapa 2. Abra Extensions no VS Code, pesquise por PlatformIO IDE e instale-o.

Etapa 3. Reinicie o VS Code depois que a extensão terminar a instalação.
Etapa 4. Abra o PlatformIO Home a partir do ícone do PlatformIO na barra de atividades do VS Code.
Se você usar o PlatformIO IDE no VS Code, o PlatformIO Core é incluído com a extensão. Você só precisa instalar o PlatformIO Core separadamente se quiser usar o comando pio fora do VS Code.
Etapa 2: Criar um projeto PlatformIO
Etapa 1. Em PlatformIO Home, selecione New Project.

Etapa 2. Digite um nome para o projeto.
Etapa 3. Selecione qualquer placa temporária compatível com Arduino que permita ao PlatformIO criar o projeto. Essa primeira seleção é usada apenas para gerar a pasta do projeto.
Etapa 4. Selecione Arduino como framework.
Etapa 5. Clique em Finish e aguarde até que o PlatformIO crie o projeto.
Etapa 6. Abra o platformio.ini e substitua a configuração gerada pela configuração da Seeed mostrada nas próximas seções.
A maioria das placas de desenvolvimento Seeed Studio usadas por esta linha de produtos ePaper é mantida por meio do pacote de plataforma PlatformIO da Seeed, não apenas pela lista padrão de placas do PlatformIO. Se você não conseguir encontrar a placa Seeed exata na janela New Project do PlatformIO, isso é esperado. Crie primeiro um projeto temporário e, em seguida, defina platform = https://github.com/Seeed-Studio/platform-seeedboards.git e o ID de board correto no platformio.ini.
Após a criação, os arquivos e pastas importantes são:
| Caminho | Finalidade |
|---|---|
platformio.ini | Arquivo principal de configuração do PlatformIO. Este é o arquivo mais importante neste guia. |
src/main.cpp | Arquivo principal de código-fonte do firmware. O código no estilo Arduino fica aqui. |
lib/ | Bibliotecas locais opcionais. Este também é um local conveniente para uma pasta auxiliar local de driver.h. |
.pio/ | Saída de compilação do PlatformIO e dependências baixadas. Não edite esta pasta manualmente. |
Etapa 3: Entender o platformio.ini
O platformio.ini é o centro de um projeto PlatformIO. Cada seção [env:name] define um ambiente de compilação. O ambiente informa ao PlatformIO para qual placa compilar, qual framework usar, quais bibliotecas baixar e como fazer upload ou monitorar o firmware.
Para iniciantes, o fluxo de trabalho mais fácil é copiar a configuração completa para o seu dispositivo a partir da Etapa 4, colá-la no platformio.ini e, em seguida, criar o arquivo driver.h correspondente. Você não precisa combinar manualmente uma seção base compartilhada com outra seção de dispositivo.
Os campos mais importantes são:
| Campo | O que ele controla | Exemplo |
|---|---|---|
platform | O pacote de plataforma do PlatformIO. Para placas Seeed neste guia, use a URL do pacote de plataforma da Seeed para que o PlatformIO possa baixar as definições de placa. | platform = https://github.com/Seeed-Studio/platform-seeedboards.git |
board | O ID de placa do PlatformIO. Isso define o MCU, layout de flash, ferramenta de upload e configurações padrão de compilação. | board = seeed-xiao-esp32-s3-sense |
framework | O framework de software usado pelo firmware. Para exemplos no estilo Arduino, use arduino. | framework = arduino |
monitor_speed | A taxa de baud do monitor serial. Ela deve corresponder ao Serial.begin(...) no firmware. | monitor_speed = 115200 |
upload_speed | A taxa de baud de upload usada quando o PlatformIO grava o firmware via serial USB. | upload_speed = 115200 |
lib_deps | Bibliotecas que o PlatformIO baixa automaticamente para este ambiente. | https://github.com/Seeed-Studio/Seeed_GFX |
build_flags | Definições extras do compilador. Use isto apenas quando o cookbook do seu produto ou biblioteca exigir. | -DBOARD_HAS_PSRAM |
upload_port | Porta serial fixa opcional. Deixe sem definir se você preferir a detecção automática do PlatformIO. | upload_port = /dev/ttyACM0 |
Não copie o platformio.ini cegamente entre produtos não relacionados. O mesmo código-fonte C/C++ pode ser portátil, mas board, configurações de PSRAM e driver.h devem corresponder ao hardware real.
Etapa 4: Copiar a configuração para seu dispositivo
Escolha a aba do seu dispositivo, copie todo o bloco platformio.ini e cole-o no arquivo platformio.ini do seu projeto PlatformIO. A configuração é intencionalmente repetida em cada aba para que você não precise mesclar uma seção base compartilhada com uma seção de dispositivo.
A primeira compilação pode demorar mais porque o PlatformIO faz o download do pacote de plataforma da Seeed, da toolchain, do framework Arduino e da biblioteca Seeed_GFX.
- reTerminal E1001
- reTerminal E1002
- reTerminal E1003
- reTerminal E1004
- EE02 / EE03 / EE04 / EE05
- TRMNL DIY Kit
- XIAO 7.5" Panel
- EN04 / EN05
Use esta configuração para reTerminal E1001:
[env:reterminal_e1001]
platform = https://github.com/Seeed-Studio/platform-seeedboards.git
board = seeed-xiao-esp32-s3-sense
framework = arduino
upload_speed = 115200
monitor_speed = 115200
board_build.arduino.memory_type = qio_opi
build_flags =
-D BOARD_HAS_PSRAM
-I src
lib_deps = https://github.com/Seeed-Studio/Seeed_GFX
Use o driver.h gerado para reTerminal E1001. Nos exemplos existentes de Seeed_GFX, o E1001 usa:
#define BOARD_SCREEN_COMBO 520
Use esta configuração para reTerminal E1002:
[env:reterminal_e1002]
platform = https://github.com/Seeed-Studio/platform-seeedboards.git
board = seeed-xiao-esp32-s3-sense
framework = arduino
upload_speed = 115200
monitor_speed = 115200
board_build.arduino.memory_type = qio_opi
build_flags =
-D BOARD_HAS_PSRAM
-I src
lib_deps = https://github.com/Seeed-Studio/Seeed_GFX
Use o driver.h gerado para reTerminal E1002. Nos exemplos existentes de Seeed_GFX, o E1002 usa:
#define BOARD_SCREEN_COMBO 521
Use esta configuração para reTerminal E1003:
[env:reterminal_e1003]
platform = https://github.com/Seeed-Studio/platform-seeedboards.git
board = seeed-xiao-esp32-s3-sense
framework = arduino
upload_speed = 115200
monitor_speed = 115200
board_build.arduino.memory_type = qio_opi
build_flags =
-D BOARD_HAS_PSRAM
-I src
lib_deps = https://github.com/Seeed-Studio/Seeed_GFX
Use o driver.h gerado para reTerminal E1003. Nos exemplos existentes de Seeed_GFX, o E1003 usa:
#define BOARD_SCREEN_COMBO 522
Use esta configuração para reTerminal E1004:
[env:reterminal_e1004]
platform = https://github.com/Seeed-Studio/platform-seeedboards.git
board = seeed-xiao-esp32-s3-sense
framework = arduino
upload_speed = 115200
monitor_speed = 115200
board_build.arduino.memory_type = qio_opi
build_flags =
-D BOARD_HAS_PSRAM
-I src
lib_deps = https://github.com/Seeed-Studio/Seeed_GFX
Use o driver.h gerado para reTerminal E1004. Nos exemplos existentes de Seeed_GFX, o E1004 usa:
#define BOARD_SCREEN_COMBO 523
Use esta configuração para as placas controladoras de ePaper ESP32-S3 EE02 / EE03 / EE04 / EE05:
[env:ee0x_epaper_driver_board]
platform = https://github.com/Seeed-Studio/platform-seeedboards.git
board = seeed-xiao-esp32-s3-sense
framework = arduino
upload_speed = 115200
monitor_speed = 115200
board_build.arduino.memory_type = qio_opi
build_flags =
-D BOARD_HAS_PSRAM
-I src
lib_deps = https://github.com/Seeed-Studio/Seeed_GFX
Gere o driver.h para a sua placa EE0x exata e o painel de ePaper. Por exemplo, a EE04 com um painel de ePaper monocromático de 7,5" usa:
#define BOARD_SCREEN_COMBO 502
#define USE_XIAO_EPAPER_DISPLAY_BOARD_EE04
Use esta configuração para firmware personalizado no estilo Arduino no TRMNL 7.5" (OG) DIY Kit:
[env:trmnl_diy_kit]
platform = https://github.com/Seeed-Studio/platform-seeedboards.git
board = seeed-xiao-esp32-s3-sense
framework = arduino
upload_speed = 115200
monitor_speed = 115200
board_build.arduino.memory_type = qio_opi
build_flags =
-D BOARD_HAS_PSRAM
-I src
lib_deps = https://github.com/Seeed-Studio/Seeed_GFX
Gere o driver.h para a combinação de display do TRMNL DIY Kit antes de compilar.
Use esta configuração para o XIAO 7.5" ePaper Panel:
[env:xiao_075_epaper_panel]
platform = https://github.com/Seeed-Studio/platform-seeedboards.git
board = seeed-xiao-esp32-c3
framework = arduino
upload_speed = 115200
monitor_speed = 115200
build_flags =
-I src
lib_deps = https://github.com/Seeed-Studio/Seeed_GFX
Gere o driver.h para o XIAO 7.5" ePaper Panel antes de compilar.
Use esta configuração como ponto de partida do PlatformIO para as placas de ePaper baseadas em nRF52840 EN04 / EN05:
[env:en04_en05]
platform = https://github.com/Seeed-Studio/platform-seeedboards.git
board = seeed-xiao-afruitnrf52-nrf52840-plus
framework = arduino
upload_speed = 115200
monitor_speed = 115200
build_flags =
-I src
O driver de display, o mapeamento de pinos e as dependências de biblioteca para EN04 / EN05 devem seguir o firmware ou cookbook específico do produto a partir do qual você está desenvolvendo.
Etapa 5: Adicionar driver.h
O platformio.ini seleciona o MCU e o ambiente de compilação. O driver.h seleciona a combinação de placa de ePaper e tela usada pelo Seeed_GFX.
Etapa 1. Abra a Seeed GFX Configuration Tool.
Etapa 2. Selecione sua placa e tela.
Etapa 3. Copie a configuração gerada.
Etapa 4. Adicione a configuração a um arquivo driver.h que possa ser incluído pelo seu firmware.
Um arquivo gerado típico se parece com isto:
#define BOARD_SCREEN_COMBO 502
#define USE_XIAO_EPAPER_DISPLAY_BOARD_EE04
Valores comuns de BOARD_SCREEN_COMBO usados na documentação existente de ePaper incluem:
| Hardware | Exemplo de configuração gerada | Fonte de verdade |
|---|---|---|
| reTerminal E1001 | #define BOARD_SCREEN_COMBO 520 | Seeed GFX Configuration Tool |
| reTerminal E1002 | #define BOARD_SCREEN_COMBO 521 | Seeed GFX Configuration Tool |
| reTerminal E1003 | #define BOARD_SCREEN_COMBO 522 | Seeed GFX Configuration Tool |
| reTerminal E1004 | #define BOARD_SCREEN_COMBO 523 | Seeed GFX Configuration Tool |
| EE04 + 7.5" ePaper monocromático | #define BOARD_SCREEN_COMBO 502#define USE_XIAO_EPAPER_DISPLAY_BOARD_EE04 | Seeed GFX Configuration Tool |
| Outras combinações de EE0x / tela | Gerado por placa e tela | Seeed GFX Configuration Tool |
Sempre regenere o driver.h quando você mudar a placa de ePaper, o tamanho do display, o tipo de cor do display ou a placa controladora. Um BOARD_SCREEN_COMBO incompatível é um dos motivos mais comuns para uma tela em branco.
Em última análise, o código e a estrutura de projeto para um produto de tela completo usando PlatformIO devem ser os seguintes:

Etapa 6: Compilar, Enviar e Monitorar
Depois que platformio.ini e driver.h estiverem prontos, use a barra de ferramentas do PlatformIO no VS Code:
| Ação | O que faz |
|---|---|
| Build | Compila o ambiente selecionado e verifica se a placa, o framework, as bibliotecas e o código são compatíveis. |
| Upload | Envia o firmware para o dispositivo conectado por meio do protocolo de upload selecionado. |
| Monitor | Abre o monitor serial usando o baud rate de monitor_speed. |
| Clean | Remove saídas de compilações anteriores. Use isto após alterar pacotes de placa, configurações de PSRAM ou flags de compilação importantes. |
Se o projeto tiver vários ambientes, selecione o ambiente de destino nas tarefas do projeto PlatformIO antes de compilar ou enviar.
Opcional: Usar a biblioteca Seeed_GxEPD2
Os exemplos padrão nesta página usam Seeed_GFX. Para projetos baseados no fluxo de trabalho de display GxEPD2, você pode substituir a dependência da biblioteca de display pelo fork GxEPD2 da Seeed.
Use esta opção somente quando o código do projeto for escrito para as APIs Seeed_GxEPD2 / GxEPD2. Se o seu código seguir os exemplos padrão de Seeed_GFX, mantenha Seeed_GFX em lib_deps.
Por exemplo, uma configuração de reTerminal E1001 pode ser alterada da seguinte forma:
[env:reterminal_e1001]
platform = https://github.com/Seeed-Studio/platform-seeedboards.git
board = seeed-xiao-esp32-s3-sense
framework = arduino
upload_speed = 115200
monitor_speed = 115200
board_build.arduino.memory_type = qio_opi
build_flags =
-D BOARD_HAS_PSRAM
-I src
lib_deps = https://github.com/Seeed-Projects/Seeed_GxEPD2
Apenas uma biblioteca de display é mostrada aqui para manter a configuração clara. Se o seu projeto precisar de bibliotecas adicionais, adicione-as em lib_deps como linhas separadas.
Para onde ir em seguida
Esta página foca intencionalmente na configuração de ambiente do PlatformIO. Continue com as páginas específicas do produto para fiação, seleção de tela e comportamento do firmware:
- Trabalhar com Arduino — fluxo de trabalho comum com Arduino e
Seeed_GFX. - XIAO ePaper Driver Boards PlatformIO Cookbook — fluxo de trabalho EE0x com PlatformIO usando a EE04 como exemplo prático.
- reTerminal E Series Arduino cookbook — exemplos de display para E1001 / E1002 / E1003 / E1004.
- reTerminal E Series onboard peripherals cookbook — exemplos de botões, buzzer, monitor de bateria, sensor SHT4x e microSD.
- XIAO 7.5" ePaper Panel Arduino guide — configuração específica do produto para o painel baseado em XIAO ESP32-C3.
- TRMNL DIY Kit Arduino guide — caminho de firmware Arduino personalizado para o hardware do kit TRMNL.
Problemas comuns
P1: Por que o PlatformIO não mostra minha placa Seeed na lista de placas?
Isso é esperado para muitas placas de desenvolvimento da Seeed. As definições de placa usadas neste guia vêm do pacote de plataforma PlatformIO da Seeed, portanto elas podem não aparecer na pesquisa de placas do New Project padrão do PlatformIO antes que o pacote seja instalado.
Use o URL do pacote da Seeed diretamente em platformio.ini:
platform = https://github.com/Seeed-Studio/platform-seeedboards.git
Em seguida, defina board para o ID de placa Seeed usado pelo seu produto, por exemplo:
board = seeed-xiao-esp32-s3-sense
Quando você compilar pela primeira vez, o PlatformIO fará o download do pacote de plataforma e então reconhecerá o ID da placa.
P2: Por que o firmware é enviado com sucesso, mas o display ePaper permanece em branco?
A causa mais comum é um driver.h incorreto ou ausente.
- Gere novamente o
driver.hcom a Seeed GFX Configuration Tool. - Confirme se a placa e o display selecionados correspondem ao hardware real.
- Confirme se o
BOARD_SCREEN_COMBOgerado está disponível para o arquivo-fonte que incluiSeeed_GFX. - Para produtos ESP32-S3 com buffers grandes, confirme se o cookbook do produto exige configurações de PSRAM.
P3: Por que o PlatformIO falha ao enviar para a placa?
Para o reTerminal E1003, uma causa comum é uma taxa de baud de upload muito alta. Defina upload_speed como 115200 no mesmo bloco de ambiente antes de verificar outras causas.
upload_speed = 115200
Se o upload ainda falhar, continue com as seguintes verificações:
- Use um cabo USB-C que suporte transferência de dados.
- Desconecte outros dispositivos seriais e tente novamente.
- Defina
upload_portsomente se a detecção automática escolher a porta errada. - Para placas baseadas em ESP32, mantenha pressionado o botão de boot enquanto conecta o USB se a placa não entrar automaticamente no modo de download.
Recursos
- [Docs] Arquivo de Configuração de Projeto do PlatformIO
- [Docs] PlatformIO IDE para VS Code
- [GitHub] Pacote de Plataforma PlatformIO da Seeed
- [GitHub] Exemplo Arduino Blink da Plataforma Seeed para PlatformIO
- [GitHub] Biblioteca Seeed_GFX
- [Tool] Seeed GFX Configuration Tool
- [Wiki] PlatformIO para placas compatíveis com Arduino
Suporte técnico e discussão sobre produtos
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.