✏️

ESP-IDFでTab5の環境構築

に公開

Tab5の開発環境として、VSCode拡張機能のEspressif IDFを使用しました。
本記事では、環境構築の手順のポイントを共有します。

ESP-IDF環境を選択した理由

インターネットで調べると、情報量としてはPlatformIOのArduino環境でやっている人の方が多いと感じます。
私もメジャーな方法で開発したいと考えていましたが、以下の理由により、ESP-IDF環境を選択しました。

  1. 公式デモアプリとの互換性

    • Tab5の公式デモアプリがESP-IDFで開発されており、そのコードやライブラリを最大限活用できるため。
    • Arduino環境に移植する場合、多くのコード修正や再実装が必要になるため。
  2. MIPI-CSIカメラのサポート

    • これが最大の理由です。
    • Arduino環境ではMIPI-CSIカメラのサポートが提供されていないため、Tab5のカメラ(SC2356)を活用できませんでした。

動作確認環境

  • OS: Windows 11
  • IDE:
    • Visual Studio Code v1.96.2
    • Cursor v0.50.4
  • ESP-IDF: v5.4.1
  • デバイス: M5Stack Tab5

開発環境の準備

Note: この手順はCursorで確認済みです。VSCodeでも同じ手順で動作可能と判断しています。

  1. VSCodeにEspressif IDF拡張機能をインストールします。
  2. こちらの手順に従い、必要なツールをインストールします。
    1. バージョンはデモアプリと同じ、v5.4.1を選択してください。
  3. こちらの手順に従い、プロジェクトを作成してください。
    1. Choose ESP-IDF Target(IDF_TARGET)はESP32-P4を選択してください。

公式デモアプリのclone

Tab5用のライブラリがまだ整っていないので、公式デモアプリケーションのコードを流用します。
よって、ローカルにgit cloneしておきます。

公式デモアプリの流用

外部ライブラリ

  • 一般的に外部ライブラリを使用する場合は、idf_component.ymlのdependenciesに追記し、ダウンロードします。
  • m5stack系なら一通りあるのですが、Tab5はまだライブラリが公開されていません😭
  • 公式デモアプリを確認したところ、componentsディレクトリに必要なライブラリが格納されていそうでした。
  • 今回は components ディレクトリをそのままコピーして利用します。

    2025/05/15の時点ではRegistoryに登録されていないようでした。

LVGLの設定ファイル

  • Tab5用に設定されているlv_conf.hをそのまま流用します。

パーティション設定ファイル

  • 上記と同様に、Tab5用に設定されているpartitions.csvを流用します。

I2Cドライバーのエラー対応(必要であれば)

I2Cドライバーの競合エラー(CONFLICT! driver_ng is not allowed to be used with this old driver)が発生した場合は、以下の設定変更が必要です。

  1. menuconfig(拡張機能のSDK Configuration Editorでも可能)を開きます。
  2. 以下の設定を変更します。
    • 設定箇所: Component config -> Audio Code Device Configuration
    • 設定項目: "Enable backward compatibility for the I2c driver"
    • disableに設定。

この設定は、esp_codec_devコンポーネントが古いI2Cドライバーを使用することによる問題を防ぐために重要です。
問題が発生していない環境では、この設定変更は不要です。

簡単なアプリの実装

環境が整ったので、とりあえず簡単なアプリを作ってみました。

まとめ

VSCode + Espressif IDF拡張機能を使用し、Tab5の開発環境を構築できました。
デモアプリのcomponentsの活用とmenuconfigの適切な設定が、開発環境を正しく機能させるためのポイントです。
今後はセンサを活用してアプリ開発をしていきます!

ユカイ工学テックブログ

Discussion