PlatformIO を使う

このページは、Seeed ePaper 製品向けのPlatformIO 設定リファレンスです。Arduino IDE ワークフローと異なる部分に焦点を当てています:
- Visual Studio Code への PlatformIO のインストール。
- PlatformIO によって作成されるプロジェクト構造の理解。
- ボード選択、フレームワーク選択、ライブラリ依存関係、シリアルモニタ速度、書き込みオプション、ビルドフラグのためのメイン設定ファイルである
platformio.iniの編集。 - 各 Seeed ePaper 製品に対して正しい PlatformIO 環境を選択すること。
Seeed_GFXを追加し、Seeed GFX Configuration Tool を使って対応するdriver.hを生成すること。
ディスプレイ描画 API、サンプルスケッチ、ハードウェア固有のデモコードを探している場合は、Work with Arduino と、このページの末尾にリンクされている各製品のクックブックから始めてください。PlatformIO で使用される C/C++ コードは、通常 Arduino コードと同じです。主な違いは、プロジェクトの設定方法です。
対応ハードウェア
PlatformIO は、Arduino 互換のファームウェアパスを公開している Seeed ePaper 製品のコードベースのワークフローで使用できます。このページを使って PlatformIO プロジェクトを準備し、その後ボードとスクリーンに合った正しい driver.h を選択してください。
| 製品ライン | 代表的な MCU / ボードターゲット | 設定メモ |
|---|---|---|
| reTerminal E1001 / E1002 / E1003 / E1004 | ESP32-S3 ベースの reTerminal E シリーズ | ESP32-S3 の PlatformIO 環境を使用し、その後、正確な reTerminal モデル用の driver.h を生成します。 |
| EE02 / EE03 / EE04 / EE05 ドライバボード | XIAO ESP32-S3 ファミリ | EE0x ファミリ全体で同じ PlatformIO 構成を使用します。BOARD_SCREEN_COMBO の値は、選択したボードとスクリーンに応じて変わります。 |
| TRMNL 7.5" (OG) DIY キット | XIAO ESP32-S3 ファミリ | TRMNL クラウドファームウェアを使用する代わりに、カスタム Arduino スタイルのファームウェアを書く場合は ESP32-S3 環境を使用します。 |
| XIAO 7.5" ePaper パネル | XIAO ESP32-C3 | XIAO ESP32-C3 の PlatformIO 環境を使用し、その後、スクリーン固有の driver.h 設定については製品クックブックを参照します。 |
| EN04 / EN05 および nRF52840 ベースの ePaper ボード | XIAO nRF52840 ファミリ | ファームウェア開発には nRF52840 の PlatformIO 環境を使用します。ePaper 固有のクックブックがまだ公開されていない場合は、このページを環境リファレンスとして使用し、ピンについては製品の回路図/クックブックを参照してください。 |
PlatformIO プロジェクトは、ビルドと書き込みのための環境にすぎません。ディスプレイは依然として正しい driver.h に依存します。platformio.ini が正しくても、driver.h が誤ったボードやパネルを対象としている場合、ファームウェアはコンパイルと書き込みに成功しても、画面は真っ白なままになる可能性があります。
ePaper 開発に PlatformIO を使う理由
PlatformIO は、ePaper プロジェクトが単一のスケッチを超えて大きくなったときに役立ちます:
- ボード、フレームワーク、ライブラリ、書き込み速度、シリアルモニタ速度、ビルドフラグを 1 つのバージョン管理された
platformio.iniファイルにまとめておけます。 - 1 つのプロジェクト内に複数のビルド環境を定義できるため、同じコードベースで複数の Seeed ePaper 製品をターゲットにできます。
lib_depsを通じてライブラリをダウンロードするため、別のコンピュータでプロジェクトを再現しやすくなります。- VS Code 内からビルド、書き込み、クリーン、シリアルモニタのタスクを提供します。
ディスプレイ描画やハードウェア API については、Arduino クックブックで使用しているのと同じ Arduino スタイルの C/C++ コードを引き続き使用します。PlatformIO が主に変えるのは、プロジェクトのレイアウトと設定方法です。
ステップ 1: VS Code と PlatformIO をインストールする
Step 1. Visual Studio Code をダウンロードしてインストールします。

Step 2. VS Code で Extensions を開き、PlatformIO IDE を検索してインストールします。

Step 3. 拡張機能のインストールが完了したら VS Code を再起動します。
Step 4. VS Code のアクティビティバーにある PlatformIO アイコンから PlatformIO Home を開きます。
VS Code で PlatformIO IDE を使用する場合、PlatformIO Core は拡張機能に含まれています。VS Code の外で pio コマンドを使いたい場合にのみ、別途 PlatformIO Core をインストールする必要があります。
ステップ 2: PlatformIO プロジェクトを作成する
Step 1. PlatformIO Home で New Project を選択します。

Step 2. プロジェクト名を入力します。
Step 3. PlatformIO にプロジェクトを作成させるための、一時的な Arduino 互換ボードを任意に選択します。この最初の選択は、プロジェクトフォルダを生成するためだけに使用されます。
Step 4. フレームワークとして Arduino を選択します。
Step 5. Finish をクリックし、PlatformIO がプロジェクトを作成し終えるまで待ちます。
Step 6. platformio.ini を開き、生成された設定を次のセクションに示す Seeed 用設定に置き換えます。
この ePaper 製品ラインで使用される Seeed Studio 開発ボードのほとんどは、PlatformIO のデフォルトボード一覧だけでなく、Seeed の PlatformIO プラットフォームパッケージによって管理されています。PlatformIO の New Project ウィンドウで、完全に一致する Seeed ボードが見つからなくても、それは想定された動作です。まず一時的なプロジェクトを作成し、その後 platformio.ini で platform = https://github.com/Seeed-Studio/platform-seeedboards.git と正しい board ID を設定してください。
作成後、重要なファイルとフォルダは次のとおりです:
| パス | 用途 |
|---|---|
platformio.ini | メインの PlatformIO 設定ファイル。このガイドで最も重要なファイルです。 |
src/main.cpp | メインのファームウェアソースファイル。Arduino スタイルのコードはここに記述します。 |
lib/ | 任意のローカルライブラリ。この中にローカルの driver.h 用ヘルパーフォルダを置くと便利です。 |
.pio/ | PlatformIO のビルド出力とダウンロードされた依存関係。手動で編集しないでください。 |
ステップ 3: platformio.ini を理解する
platformio.ini は PlatformIO プロジェクトの中心です。各 [env:name] セクションが 1 つのビルド環境を定義します。環境は、どのボード向けにコンパイルするか、どのフレームワークを使うか、どのライブラリをダウンロードするか、どのようにファームウェアを書き込んだりモニタしたりするかを PlatformIO に伝えます。
初心者にとって最も簡単なワークフローは、ステップ 4 から自分のデバイス用の完全な設定をコピーし、それを platformio.ini に貼り付けてから、対応する driver.h ファイルを作成することです。共通のベースセクションと別のデバイスセクションを自分で組み合わせる必要はありません。
最も重要なフィールドは次のとおりです:
| フィールド | 制御内容 | 例 |
|---|---|---|
platform | PlatformIO のプラットフォームパッケージ。このガイドの Seeed ボードでは、PlatformIO がボード定義をダウンロードできるように、Seeed のプラットフォームパッケージ URL を使用します。 | platform = https://github.com/Seeed-Studio/platform-seeedboards.git |
board | PlatformIO のボード ID。MCU、フラッシュレイアウト、書き込みツール、デフォルトのビルド設定を決定します。 | board = seeed-xiao-esp32-s3-sense |
framework | ファームウェアで使用するソフトウェアフレームワーク。Arduino スタイルのサンプルでは arduino を使用します。 | framework = arduino |
monitor_speed | シリアルモニタのボーレート。ファームウェア内の Serial.begin(...) と一致させる必要があります。 | monitor_speed = 115200 |
upload_speed | PlatformIO が USB シリアル経由でファームウェアを書き込むときに使用する書き込みボーレート。 | upload_speed = 115200 |
lib_deps | この環境用に PlatformIO が自動的にダウンロードするライブラリ。 | https://github.com/Seeed-Studio/Seeed_GFX |
build_flags | 追加のコンパイラ定義。製品クックブックやライブラリで必要とされている場合にのみ使用します。 | -DBOARD_HAS_PSRAM |
upload_port | 任意指定の固定シリアルポート。PlatformIO の自動検出を優先する場合は設定しないでください。 | upload_port = /dev/ttyACM0 |
無関係な製品間で platformio.ini をそのままコピーしないでください。同じ C/C++ ソースは移植可能な場合がありますが、board、PSRAM 設定、driver.h は実際のハードウェアと一致している必要があります。
ステップ 4: デバイス用の設定をコピーする
自分のデバイスタブを選び、platformio.ini ブロック全体をコピーして、PlatformIO プロジェクト内の platformio.ini ファイルに貼り付けてください。共通のベースセクションとデバイスセクションをマージする必要がないように、設定は各タブであえて繰り返されています。
最初のビルドには時間がかかる場合があります。これは、PlatformIO が Seeed のプラットフォームパッケージ、ツールチェーン、Arduino フレームワーク、および Seeed_GFX ライブラリをダウンロードするためです。
- reTerminal E1001
- reTerminal E1002
- reTerminal E1003
- reTerminal E1004
- EE02 / EE03 / EE04 / EE05
- TRMNL DIY Kit
- XIAO 7.5" Panel
- EN04 / EN05
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
reTerminal E1001 用に生成された driver.h を使用します。既存の Seeed_GFX のサンプルでは、E1001 は次の設定を使用します:
#define BOARD_SCREEN_COMBO 520
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
reTerminal E1002 用に生成された driver.h を使用します。既存の Seeed_GFX のサンプルでは、E1002 は次の設定を使用します:
#define BOARD_SCREEN_COMBO 521
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
reTerminal E1003 用に生成された driver.h を使用します。既存の Seeed_GFX のサンプルでは、E1003 は次の設定を使用します:
#define BOARD_SCREEN_COMBO 522
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
reTerminal E1004 用に生成された driver.h を使用します。既存の Seeed_GFX のサンプルでは、E1004 は次の設定を使用します:
#define BOARD_SCREEN_COMBO 523
EE02 / EE03 / EE04 / EE05 ESP32-S3 ePaper ドライバボードには、次の設定を使用します:
[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
お使いの EE0x ボードと ePaper パネルに合わせて driver.h を生成します。例えば、7.5 インチのモノクロ ePaper パネルを搭載した EE04 では、次の設定を使用します:
#define BOARD_SCREEN_COMBO 502
#define USE_XIAO_EPAPER_DISPLAY_BOARD_EE04
TRMNL 7.5 インチ (OG) DIY Kit 上でカスタム Arduino 風ファームウェアを動かすには、次の設定を使用します:
[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
ビルドする前に、TRMNL DIY Kit のディスプレイ構成に合わせて driver.h を生成してください。
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
ビルドする前に、XIAO 7.5 インチ ePaper Panel 用の driver.h を生成してください。
EN04 / EN05 nRF52840 ベースの ePaper ボード向けに、PlatformIO の出発点として次の設定を使用します:
[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
EN04 / EN05 のディスプレイドライバ、ピンマップ、およびライブラリ依存関係は、ベースとしている製品固有のファームウェアまたはクックブックに従う必要があります。
ステップ 5:driver.h を追加する
platformio.ini は MCU とビルド環境を選択します。driver.h は、Seeed_GFX が使用する ePaper ボードと画面の組み合わせを選択します。
ステップ 1. Seeed GFX Configuration Tool を開きます。
ステップ 2. 使用するボードと画面を選択します。
ステップ 3. 生成された設定をコピーします。
ステップ 4. その設定を、ファームウェアからインクルードできる driver.h ファイルに追加します。
典型的な生成ファイルは次のようになります:
#define BOARD_SCREEN_COMBO 502
#define USE_XIAO_EPAPER_DISPLAY_BOARD_EE04
既存の ePaper ドキュメントでよく使われる BOARD_SCREEN_COMBO の値には、次のようなものがあります:
| ハードウェア | 生成される設定の例 | 正確な情報源 |
|---|---|---|
| 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 | #define BOARD_SCREEN_COMBO 502#define USE_XIAO_EPAPER_DISPLAY_BOARD_EE04 | Seeed GFX Configuration Tool |
| その他の EE0x / 画面の組み合わせ | ボードと画面ごとに生成 | Seeed GFX Configuration Tool |
ePaper ボード、ディスプレイサイズ、ディスプレイのカラータイプ、またはドライバボードを変更した場合は、必ず driver.h を再生成してください。不一致の BOARD_SCREEN_COMBO は、画面が真っ黒(何も表示されない)になる最も一般的な原因の 1 つです。
最終的に、PlatformIO を使用する完成したスクリーン製品向けのコードとプロジェクトフレームワークは、次のようになります:

ステップ 6:ビルド、アップロード、モニタ
platformio.ini と driver.h の準備ができたら、VS Code の PlatformIO ツールバーを使用します:
| アクション | 動作内容 |
|---|---|
| Build | 選択された環境をコンパイルし、ボード、フレームワーク、ライブラリ、およびコードの互換性をチェックします。 |
| Upload | 選択されたアップロードプロトコルを通じて、接続されたデバイスにファームウェアをアップロードします。 |
| Monitor | monitor_speed のボーレートを使用してシリアルモニタを開きます。 |
| Clean | 以前のビルド出力を削除します。ボードパッケージ、PSRAM 設定、または主要なビルドフラグを変更した後に使用します。 |
プロジェクトに複数の環境がある場合は、ビルドまたはアップロードを行う前に、PlatformIO プロジェクトタスクからターゲット環境を選択してください。
オプション:Seeed_GxEPD2 ライブラリを使用する
このページのデフォルトのサンプルは Seeed_GFX を使用しています。GxEPD2 ディスプレイワークフローに基づくプロジェクトでは、ディスプレイライブラリの依存関係を Seeed の GxEPD2 フォークに置き換えることができます。
このオプションは、プロジェクトコードが Seeed_GxEPD2 / GxEPD2 API 向けに書かれている場合にのみ使用してください。コードが標準の Seeed_GFX サンプルに従っている場合は、lib_deps に Seeed_GFX を残してください。
例えば、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-Projects/Seeed_GxEPD2
ここでは設定を分かりやすくするために、ディスプレイライブラリを 1 つだけ示しています。プロジェクトで追加のライブラリが必要な場合は、lib_deps の下に別行として追加してください。
次のステップ
このページは意図的に PlatformIO の環境設定に焦点を当てています。配線、画面の選択、ファームウェアの挙動については、製品固有のページを続けて参照してください:
- Work with Arduino — 一般的な Arduino と
Seeed_GFXのワークフロー。 - XIAO ePaper Driver Boards PlatformIO Cookbook — EE04 を実行例とした EE0x の PlatformIO ワークフロー。
- reTerminal E Series Arduino cookbook — E1001 / E1002 / E1003 / E1004 向けのディスプレイサンプル。
- reTerminal E Series onboard peripherals cookbook — ボタン、ブザー、バッテリーモニタ、SHT4x センサ、microSD のサンプル。
- XIAO 7.5" ePaper Panel Arduino guide — XIAO ESP32-C3 ベースパネル向けの製品固有セットアップ。
- TRMNL DIY Kit Arduino guide — TRMNL キットハードウェア向けのカスタム Arduino ファームウェア手順。
よくある問題
Q1: なぜ PlatformIO のボード一覧に Seeed ボードが表示されないのですか?
多くの Seeed 開発ボードでは、これは想定された動作です。このガイドで使用しているボード定義は Seeed の PlatformIO プラットフォームパッケージに含まれているため、そのパッケージをインストールする前は、PlatformIO のデフォルトの New Project ボード検索には表示されない場合があります。
platformio.ini で Seeed パッケージの URL を直接使用します:
platform = https://github.com/Seeed-Studio/platform-seeedboards.git
次に、board をお使いの製品で使用されている Seeed のボード ID に設定します。例えば:
board = seeed-xiao-esp32-s3-sense
最初にビルドするときに、PlatformIO がプラットフォームパッケージをダウンロードし、その後ボード ID を認識します。
Q2: なぜファームウェアの書き込みは成功するのに ePaper ディスプレイが真っ黒のままなのですか?
最も一般的な原因は、driver.h が間違っている、または存在しないことです。
- Seeed GFX Configuration Tool を使って
driver.hを再生成します。 - 選択したボードとディスプレイが実際のハードウェアと一致していることを確認します。
- 生成された
BOARD_SCREEN_COMBOが、Seeed_GFXをインクルードしているソースファイルから参照可能であることを確認します。 - 大きなバッファを持つ ESP32-S3 製品の場合、製品クックブックで PSRAM 設定が必要かどうかを確認します。
Q3: なぜ PlatformIO がボードへの書き込みに失敗するのですか?
reTerminal E1003 の場合、よくある原因はアップロードボーレートが高すぎることです。他の原因を確認する前に、同じ environment ブロック内で upload_speed を 115200 に設定してください。
upload_speed = 115200
それでも書き込みに失敗する場合は、次の点を確認してください:
- データ転送に対応した USB-C ケーブルを使用します。
- 他のシリアルデバイスを取り外してから再試行します。
- 自動検出で誤ったポートが選択される場合のみ
upload_portを設定します。 - ESP32 ベースのボードでは、ボードが自動的にダウンロードモードに入らない場合、USB を接続する間ブートボタンを押し続けます。
リソース
- [Docs] PlatformIO プロジェクト設定ファイル
- [Docs] VS Code 用 PlatformIO IDE
- [GitHub] Seeed PlatformIO プラットフォームパッケージ
- [GitHub] Seeed PlatformIO Arduino Blink サンプル
- [GitHub] Seeed_GFX ライブラリ
- [Tool] Seeed GFX Configuration Tool
- [Wiki] Arduino 対応ボード向け PlatformIO
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます。弊社は、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに合わせて選べる、複数のコミュニケーションチャネルをご用意しています。