備忘録
前提
- Windows10 Home+WSL2
- 開発ボードは使わず、USBシリアル変換モジュール(AE-UM232R)を使ってESP32C6のフラッシュに書き込む
wsl2のubuntuにEspressifのMatterのSDKをインストールする
こちらを参照してインストールする。ちなみに、Matterデバイスのデバッグに使えそうなCHIP Tool
の使用は断念した。wsl2からローカルネットワークにアクセスするためはブリッジネットワークの設定が必要となるが、Windows10 HomeだとHyper-V Managerが使用できないため(こちらの方法を使えば使用できる可能性はある)。
ubuntuからUSBシリアルコンバーターにアクセスできるようにする
- 管理者権限でコマンドプロンプトを起動
- usbデバイスのリストを表示してUSBシリアルコンバーターのバスIDを確認
usbipd list
以下、1-2
がコンバーターのバスIDであるものとする。
- WSLでアクセスできるようバインド、アタッチする
usbipd bind --busid 1-2
usbipd attach --wsl --busid 1-2
2番目のコマンドはホストを再起動したら毎回実行しないといけないっぽい。
- 確認
ubuntuでdmesgで以下のようなログが出ているか確認
[ 822.222197] usbcore: registered new interface driver ftdi_sio
[ 822.222215] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 822.222244] ftdi_sio 1-1:1.0: FTDI USB Serial Device converter detected
[ 822.222266] usb 1-1: Detected FT232RL
[ 822.224741] usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0
matterのサンプルプロジェクトのビルド手順
- wsl2のubuntu起動後に以下を実行
cd esp-idf; source ./export.sh; cd ..
cd esp-matter; source ./export.sh; cd ..
export IDF_CCACHE_ENABLE=1
esp-idf
,esp-matter
は導入したEspressifのSDKのディレクトリ。
- esp-matter/examplesの下のサンプルプロジェクト(例えばlight)のディレクトリに移動
- ビルドして実行
- ビルドターゲットを設定
idf.py set-target esp32c6
- esp32c6を書き込みモードで起動し、以下のコマンドでフラッシュをクリアする(いらないかもしれない)
idf.py erase_flash
- esp32c6を書き込みモードで起動し、以下のコマンドでビルドして書き込む
idf.py flash monitor
- esp32c6を通常モードで起動。ターミナルにシリアルのログが出力される。
補足:最初に試した時、Brownout detector was triggered
というメッセージが出て再起動を繰り返す不具合が出た。これは、USBシリアルコンバーターの3.3Vのピンから直接電圧を供給していたため(このピンは最大で50mAしか供給しないが、esp32c6にはより多くの電流が流れる)。3端子レギュレーターで電圧を供給するようにしたら安定した。
サンプルプロジェクトを書き込んだmatterデバイスをipadのHomeアプリにペアリングする
- homeを起動したら
アクセサリを追加
をタップ - 以下のサイトのQRコードを読み込む
https://docs.espressif.com/projects/esp-matter/en/latest/esp32/developing.html#commissioning
補足:今回使用したesp32c6は2.4GHzのWifiしかアクセスできないので、ipadも2.4GHzのWifiアクセスポイントにつないでおく必要がある
トラブルシューティング
esp32c6のフラッシュに書き込もうとすると/dev/ttyUSB0へのパーミッションがない、というエラーが出る
シリアルポートのアクセス権限がdialout
グループに設定されているので、以下のコマンドで現在のユーザーをdialout
グループに追加する
sudo usermod -aG dialout $USER
その後、ログアウトして再ログインするか、以下のコマンドで変更を適用
newgrp dialout
参考ページはこちら
Comments