『昼夜逆転』工作室
[トップページへ戻る]

ESP8684の開発環境を準備する

タイトル画像

2026年6月

ESP32-C3と互換性が高く、若干安価なESP8684(ESP32-C2)を購入しました。 …が、PlatformIOのArduinoFrameworkが対応しておらず。 この記事ではPlatformIOの環境を活かしつつESP8684の開発環境を準備する手順を説明します。 また、ESP8684ほかESP32シリーズいずれにも対応する書き込み器を作成しました。 こちらについては「ESP8684開発ボード兼ESP32汎用書き込み器」を参照してください。

選択肢

PlatformIOのESP32のArduinoFrameworkは、現状、ESP8684(ESP32-C2)やESP32-H,Pなど新しめのシリーズに対応していません。 これらのマイコンを使うには次の選択肢があります。この記事では3番について説明します。

  1. ESP-IDFに乗り換え
  2. PlatformIOに代わってpioarduinoを導入
  3. PlatformIOでpioarduinoのplatform-espressif32を利用
PlatformIO環境に慣れている開発者は2番か3番であれば違和感なく移行できます。 PlatformIOはVS Codeの拡張機能として導入されていますが、2番の場合はこれをアンインストールし(または機能を無効化し)、pioarduinoをインストールします。 3番の場合は拡張機能を明示的にインストールするのではなく、platformio.iniの記述を変更することで実現します。

PlatformIOとpioarduino、それぞれのplatform-espressif32は共存できません。そのためプロジェクトごとに使い分けることはできません。 3番の場合、既存の(PlatformIOの)platform-espressif32がpioarduinoのplatform-espressif32に置き換わり、 実質的にpioarduinoを導入したことになります。

PlatformIOでpioarduinoのplatform-espressif32を利用する

PlatformIOでpioarduinoのplatform-espressif32を利用する手順は、

  1. 既存のPlatformIOで適当な新規プロジェクトを作成します。
  2. platformio.iniを書き換えます。
  3. platformio.iniを保存します([Ctrl]+[s])。
そうすると新たなplatform-espressif32がダウンロードされ、既存のものと置き換わります。

platformio.iniを書き換える

platformio.iniを次のように書き換えます。platformとboardの項です。[サンプル(platformio.ini)]
platformの項は'https://github.com/pioarduino/~'となっていることに注意してください。


[env:esp8684]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
board = esp32-c2-devkitm-1
framework = arduino
monitor_speed = 115200

stable版を指定することをお勧めしますが、 development版 を指定することもできます。この場合、別途Gitをインストールしておく必要があります(https://gitforwindows.org)。

警告を消す

pioarduinoはライブラリの整合性を厳密にチェックするようです。 しかし自身の設定に誤りがあるのか、もともと存在しないフォルダに対して「~が見つからない」と警告を出してきます。  ※環境によるかもしれない。


"~/platformio/packages/framework-arduinoespressif32-libs/esp32c2/include/esp_system/port/soc" が見つかりません。

無視して構いませんが、気になるので警告を消します。platformio.iniに下記を記述します。 Windowsの場合、パス区切りはバックスラッシュ'\'とすることに注意してください。 また、ライブラリをデフォルトのインストール先から変更して環境変数'PLATFORMIO_PACKAGES_DIR' を設定しているのであれば、別の書き方もできます。

build_unflags = -I"C:\Users\<ユーザー名>\.platformio\packages\framework-arduinoespressif32-libs\esp32c2\include\esp_system\port\soc"
または、
build_unflags = -I"${sysenv.PLATFORMIO_PACKAGES_DIR}\framework-arduinoespressif32-libs\esp32c2\include\esp_system\port\soc"

次回の新規プロジェクトからは

次回の新規プロジェクトからは、BoardsからESP32-C2など追加された開発ボードを選択することができます。
開発の様子

書き込みと実行

ESP8684へプログラムを書き込むにはUSB-シリアル変換器を通してPCとESP8684を接続します。 GPIO-9をGNDへ接続した状態でENをLow→HighとするとESP8684はダウンロードブートモードに入ります(書き込み待機状態)。 この動作はESP32シリーズ共通です。 ブートストラップピンがどれなのかについては各マイコンのデータシートを確認してください(ESP8684はGPIO-8,9)。

USB-シリアル変換器 ESP8684
3.3V 3V3
TXD RXD
RXD TXD
GND GND
  GPIO-8には何も接続しない(内部でプルアップされている)
  GPIO-9をGNDへ接続する

動作の様子

手持ちのモジュールを利用し、プログラムを書き込み、実行している様子です。 [サンプル(main.cpp)] 開発の様子 開発の様子

◆ ◆ ◆

PlatformIOでpioarduinoのplatform-espressif32(ArduinoFrameworkライブラリ)を利用し、 ESP8684の開発環境を準備することができました。 また、冒頭にあるように別の記事となりますが、ESP8684開発ボード/書き込み器を作成しました。