OpenAI RealtimeAPI Embedded SDKは、OpenAIが公開したEPS32S3で動作するリアルタイムAPIを使うハードウエアのための試作コード。

ESP-IDF V4系の環境向けに作られているようだが、すでにESP-IDFはV5系に開発がシフトしてしばらく経っている。そのあたりも混乱のもとになりそう。特にこの実装で使用するI2Sまわりが大きく変更されているそう。
GitHub - openai/openai-realtime-embedded-sdk: A SDK to using the Realtime API with Microcontrollers like the ESP32
https://github.com/openai/openai-realtime-embedded-sdk

このドキュメント、Usageの欄には何も書かれていない。使用できるボードとビルド方法が簡単に書かれているだけだ...
GClue佐々木さんがOpenAI RealtimeAPI Embedded SDKの動作に成功して、ESP32S3 N8R8以上の環境でBuildとエラーは発生しなくなるということなので、とりあえずN8R8になっているS3を探す。
S3は、M5StampS3ならうちにあるのだけど、これはN8R2品で動作しないだろう。XIAO S3は家のどっかにあったような気もするけど、探している余裕がない。
すぐに買えそうなものとしては、ATOMS3Rがあった。マルツの店舗に在庫があるか確認する。1個だけあるようだ。
他には、MEMSマイクと、MAX98357のDACが必要になる。マイクは佐々木さんのところではTDK-ICS43432を使ったようだ。自社ブランドのマイクモジュールっぽい。ステレオじゃないとうまく動かないというリポートもあるし、同じモジュールを使ったものでも、秋月とかにあるものでは動かなかったようだ。
とりあえず、M5Stack品でMAX98357を使ったものとしては、M5StickC PLUS Speaker 2 HATがある。GROVEでは接続できないけど、とりあえず買っておく。在庫は1個。MEMSマイクは、M5Stack用PDMマイクユニットがある。これも在庫が2個。買う。
とりあえず、以下の組み合わせで挑むことにする。
・ATOMS3R開発キット (8MB PSRAM搭載)【M5STACK-C126】
・M5StickC PLUS Speaker 2 HAT【M5STACK-U055-B】
・M5Stack用PDMマイクユニット(SPM1423)【M5STACK-U089】
すでに土曜なので、昼から参加するハンズオンがある日だ。会場の武蔵のITプラザに向かう前にマルツに寄って、パーツを調達する。M5Stackの製品は視認性が悪くて、ずらずらと並べてあるばかりでジャンルごとにも別れていない状態なので、必要なものをピックアップするのに、棚を三巡もしてしまったよ...
スピーカーHATがGROVEではないので、GROVE用4ピン変換コネクタも買っておく。


その日は、ハンズオンを遅くまでやっていたので、ちょっとくたびれて、買ったものを出す気力がなかった。歳には勝てない。
翌日曜は情報収集にしか時間が取れなかった。
昨夜からビルドにGOROmanさんが参戦していて、苦戦しているようだ。これは、ブレイクスルーはおまかせしたほうがよさそうなので、しばらく様子見することに。PDMマイクはダメかもしれないという話も出ている。うーん、買っちゃったよw
夜までになんとか動いたようだ。手順を公開しはじめているので、今後はそれに倣うことにする。
とりあえず、GOROmanさんが成功した組み合わせである、Seeed Studio XIAO ESP32S3 SenseとPCM5102Aの組み合わせも用意することにする。AliexpressでPCM5102Aを発注。しかし、これはいつ届くんだろうか... XIAO S3は、マルツで買ってくるかな...
本家サイトではLinux環境を使うように書かれているが、GOROman手順と同様のmacOS環境を使用する。M1 MBP。IA64じゃないとビルドが通らないという話も聞くけど、とりあえずこれで進める。環境はCLIにする。
Standard Toolchain Setup for Linux and macOS - ESP32 - — ESP-IDF Programming Guide v5.3.2 documentation
https://docs.espressif.com/projects/esp-idf/en/stable/esp32/get-started/linux-macos-setup.html

ESP-IDFは、基本はPythonを使うようだ。macOSのデフォルトでインストールされているPythonを使用する。手元のmacOSでは環境が古いので、Python3を指定しないとデフォルトは2系になるんだけど、いいんだろうか? Linux環境ではpython3が依存でインストールされている。とりあえず、そのままで進む。
% python --version
Python 2.7.16
% python3 --version
Python 3.8.9
ビルドに必要なcmakeとninjaは、他のプロジェクトを入れたりしたときに入っている。CMakeは3.16以降という動作条件なので問題なさそう。Ninjaのほうはバージョンについては特に書かれていない。
% cmake --version
cmake version 3.28.1
% ninja --version
1.11.1
どちらもbrewコマンドで入っているようだ。この後に入れるものに依存関係があれば、brewで芋づるでアップデートされるだろう。
% which cmake
/opt/homebrew/bin/cmake
% which ninja
/opt/homebrew/bin/ninja
ccacheも推奨されているけど、必須ではない。現在の環境には入っていない。ビルドは多少早くなるとは思うのだけど、ここでは入れない。
% ccache --version
zsh: command not found: ccache
その他に、macOSでは、XCode command line toolsが必要になる。開発系ではインストールされていると思うので、確認だけ。
% xcode-select -p
/Library/Developer/CommandLineTools
コマンドラインツールもしくはXcodeのパスが表示されればインストールされている。インストールされているXcodeのバージョンを確認する。
% xcode-select -v
xcode-select version 2384.
% clang --version
Apple clang version 13.0.0 (clang-1300.0.29.3)
Target: arm64-apple-darwin20.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
インストールされていない場合は、「xcode-select --install」でインストールできる。
開発環境はIAアーキテクチャが必須のようで、M1マシンのユーザーでは、ビルドエラーになることがあるようだ。というわけで、Rosetta2が必須ということだ。この環境には入れたことがあるので、入っているのはわかっているのだけど、一応確認する。
% pkgutil --pkg-info=com.apple.pkg.RosettaUpdateAuto
package-id: com.apple.pkg.RosettaUpdateAuto
version: 1.0.0.0.1.1634640245
volume: /
location: /
install-time: 1636339160
入っていなければ、「/usr/sbin/softwareupdate --install-rosetta --agree-to-license」でインストールする。
dfu-utilのインストールを行う。
dfu-util は、USB経由でターゲットデバイスのファームウェアを読み書きできるオープンソースのコマンドラインツール。
dfu-utilのインストールは、brewで実行できる。使っているOS古すぎとか警告が出るわw
% brew install dfu-util
Warning: You are using macOS 11.
We (and Apple) do not provide support for this old version.
It is expected behaviour that some formulae will fail to build in this old version.
It is expected behaviour that Homebrew will be buggy and slow.
Do not create any issues about this on Homebrew's GitHub repositories.
Do not create any issues even if you think this message is unrelated.
Any opened issues will be immediately closed without response.
Do not ask for help from Homebrew or its maintainers on social media.
You may ask for help in Homebrew's discussions but are unlikely to receive a response.
Try to figure out the problem yourself and submit a fix as a pull request.
We will review it but may or may not accept it.
==> Downloading https://ghcr.io/v2/homebrew/core/dfu-util/manifests/0.11
Already downloaded: /Users/kinneko/Library/Caches/Homebrew/downloads/e5b1bd8ea1bd2ccd8c5aaf4bdcbdc2eed5394dcfe6bec9c06a84994cb5c8a993--dfu-util-0.11.bottle_manifest.json
==> Fetching dfu-util
==> Downloading https://ghcr.io/v2/homebrew/core/dfu-util/blobs/sha256:c7dd53f42
Already downloaded: /Users/kinneko/Library/Caches/Homebrew/downloads/213ff0a27a6c83210e84c13f968e6026fa1d40c978a6d0790818f573eddc045a--dfu-util--0.11.arm64_big_sur.bottle.tar.gz
==> Pouring dfu-util--0.11.arm64_big_sur.bottle.tar.gz
🍺 /opt/homebrew/Cellar/dfu-util/0.11: 14 files, 288.8KB
==> Running brew cleanup dfu-util...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see man brew).
インストールされたバージョンの確認。
% dfu-util --version
dfu-util 0.11
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
ESP-IDF環境をインストールする。
結構でかい。ライブラリ群なのでしょうがないか。
% mkdir -p ~/esp
% cd ~/esp
% git clone -b v5.3.2 --recursive https://github.com/espressif/esp-idf.git
Cloning into 'esp-idf'...
remote: Enumerating objects: 701392, done.
remote: Counting objects: 100% (5594/5594), done.
remote: Compressing objects: 100% (1318/1318), done.
remote: Total 701392 (delta 4457), reused 4711 (delta 4171), pack-reused 695798 (from 3)
Receiving objects: 100% (701392/701392), 309.50 MiB | 4.60 MiB/s, done.
Resolving deltas: 100% (514705/514705), done.
Note: switching to '9d7f2d69f50d1288526d4f1027108e314e8c879f'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false Updating files: 100% (14988/14988), done. Submodule 'components/bootloader/subproject/components/micro-ecc/micro-ecc' (https://github.com/kmackay/micro-ecc.git) registered for path 'components/bootloader/subproject/components/micro-ecc/micro-ecc' Submodule 'components/bt/controller/lib_esp32' (https://github.com/espressif/esp32-bt-lib.git) registered for path 'components/bt/controller/lib_esp32' Submodule 'components/bt/controller/lib_esp32c2/esp32c2-bt-lib' (https://github.com/espressif/esp32c2-bt-lib.git) registered for path 'components/bt/controller/lib_esp32c2/esp32c2-bt-lib' Submodule 'components/bt/controller/lib_esp32c3_family' (https://github.com/espressif/esp32c3-bt-lib.git) registered for path 'components/bt/controller/lib_esp32c3_family' Submodule 'components/bt/controller/lib_esp32c5/esp32c5-bt-lib' (https://github.com/espressif/esp32c5-bt-lib.git) registered for path 'components/bt/controller/lib_esp32c5/esp32c5-bt-lib' Submodule 'components/bt/controller/lib_esp32c6/esp32c6-bt-lib' (https://github.com/espressif/esp32c6-bt-lib.git) registered for path 'components/bt/controller/lib_esp32c6/esp32c6-bt-lib' Submodule 'components/bt/controller/lib_esp32h2/esp32h2-bt-lib' (https://github.com/espressif/esp32h2-bt-lib.git) registered for path 'components/bt/controller/lib_esp32h2/esp32h2-bt-lib' Submodule 'components/bt/esp_ble_mesh/lib/lib' (https://github.com/espressif/esp-ble-mesh-lib.git) registered for path 'components/bt/esp_ble_mesh/lib/lib' Submodule 'components/bt/host/nimble/nimble' (https://github.com/espressif/esp-nimble.git) registered for path 'components/bt/host/nimble/nimble' Submodule 'components/cmock/CMock' (https://github.com/ThrowTheSwitch/CMock.git) registered for path 'components/cmock/CMock' Submodule 'components/esp_coex/lib' (https://github.com/espressif/esp-coex-lib.git) registered for path 'components/esp_coex/lib' Submodule 'components/esp_phy/lib' (https://github.com/espressif/esp-phy-lib.git) registered for path 'components/esp_phy/lib' Submodule 'components/esp_wifi/lib' (https://github.com/espressif/esp32-wifi-lib.git) registered for path 'components/esp_wifi/lib' Submodule 'components/heap/tlsf' (https://github.com/espressif/tlsf.git) registered for path 'components/heap/tlsf' Submodule 'components/json/cJSON' (https://github.com/DaveGamble/cJSON.git) registered for path 'components/json/cJSON' Submodule 'components/lwip/lwip' (https://github.com/espressif/esp-lwip.git) registered for path 'components/lwip/lwip' Submodule 'components/mbedtls/mbedtls' (https://github.com/espressif/mbedtls.git) registered for path 'components/mbedtls/mbedtls' Submodule 'components/mqtt/esp-mqtt' (https://github.com/espressif/esp-mqtt.git) registered for path 'components/mqtt/esp-mqtt' Submodule 'components/openthread/lib' (https://github.com/espressif/esp-thread-lib.git) registered for path 'components/openthread/lib' Submodule 'components/openthread/openthread' (https://github.com/espressif/openthread.git) registered for path 'components/openthread/openthread' Submodule 'components/protobuf-c/protobuf-c' (https://github.com/protobuf-c/protobuf-c.git) registered for path 'components/protobuf-c/protobuf-c' Submodule 'components/spiffs/spiffs' (https://github.com/pellepl/spiffs.git) registered for path 'components/spiffs/spiffs' Submodule 'components/unity/unity' (https://github.com/ThrowTheSwitch/Unity.git) registered for path 'components/unity/unity' Cloning into '/Users/kinneko/esp/esp-idf/components/bootloader/subproject/components/micro-ecc/micro-ecc'... remote: Enumerating objects: 1159, done. remote: Counting objects: 100% (49/49), done. remote: Compressing objects: 100% (30/30), done. remote: Total 1159 (delta 27), reused 19 (delta 19), pack-reused 1110 (from 2) Receiving objects: 100% (1159/1159), 691.61 KiB | 2.06 MiB/s, done. Resolving deltas: 100% (671/671), done. Cloning into '/Users/kinneko/esp/esp-idf/components/bt/controller/lib_esp32'... remote: Enumerating objects: 1978, done. remote: Counting objects: 100% (342/342), done. remote: Compressing objects: 100% (166/166), done. remote: Total 1978 (delta 167), reused 265 (delta 93), pack-reused 1636 (from 1) Receiving objects: 100% (1978/1978), 8.01 MiB | 4.77 MiB/s, done. Resolving deltas: 100% (1248/1248), done. Cloning into '/Users/kinneko/esp/esp-idf/components/bt/controller/lib_esp32c2/esp32c2-bt-lib'... remote: Enumerating objects: 170, done. remote: Counting objects: 100% (170/170), done. remote: Compressing objects: 100% (115/115), done. remote: Total 170 (delta 102), reused 121 (delta 53), pack-reused 0 (from 0) Receiving objects: 100% (170/170), 5.58 MiB | 6.00 MiB/s, done. Resolving deltas: 100% (102/102), done. Cloning into '/Users/kinneko/esp/esp-idf/components/bt/controller/lib_esp32c3_family'... remote: Enumerating objects: 637, done. remote: Counting objects: 100% (104/104), done. remote: Compressing objects: 100% (48/48), done. remote: Total 637 (delta 52), reused 84 (delta 32), pack-reused 533 (from 1) Receiving objects: 100% (637/637), 3.91 MiB | 8.26 MiB/s, done. Resolving deltas: 100% (315/315), done. Cloning into '/Users/kinneko/esp/esp-idf/components/bt/controller/lib_esp32c5/esp32c5-bt-lib'... remote: Enumerating objects: 42, done. remote: Counting objects: 100% (42/42), done. remote: Compressing objects: 100% (32/32), done. remote: Total 42 (delta 15), reused 35 (delta 8), pack-reused 0 (from 0) Receiving objects: 100% (42/42), 2.91 MiB | 6.65 MiB/s, done. Resolving deltas: 100% (15/15), done. Cloning into '/Users/kinneko/esp/esp-idf/components/bt/controller/lib_esp32c6/esp32c6-bt-lib'... remote: Enumerating objects: 219, done. remote: Total 219 (delta 0), reused 0 (delta 0), pack-reused 219 (from 1) Receiving objects: 100% (219/219), 17.93 MiB | 4.97 MiB/s, done. Resolving deltas: 100% (106/106), done. Cloning into '/Users/kinneko/esp/esp-idf/components/bt/controller/lib_esp32h2/esp32h2-bt-lib'... remote: Enumerating objects: 171, done. remote: Counting objects: 100% (171/171), done. remote: Compressing objects: 100% (113/113), done. remote: Total 171 (delta 97), reused 125 (delta 51), pack-reused 0 (from 0) Receiving objects: 100% (171/171), 11.43 MiB | 5.77 MiB/s, done. Resolving deltas: 100% (97/97), done. Cloning into '/Users/kinneko/esp/esp-idf/components/bt/esp_ble_mesh/lib/lib'... remote: Enumerating objects: 164, done. remote: Counting objects: 100% (164/164), done. remote: Compressing objects: 100% (90/90), done. remote: Total 164 (delta 48), reused 147 (delta 31), pack-reused 0 (from 0) Receiving objects: 100% (164/164), 8.17 MiB | 8.03 MiB/s, done. Resolving deltas: 100% (48/48), done. Cloning into '/Users/kinneko/esp/esp-idf/components/bt/host/nimble/nimble'... remote: Enumerating objects: 61475, done. remote: Counting objects: 100% (312/312), done. remote: Compressing objects: 100% (147/147), done. remote: Total 61475 (delta 175), reused 236 (delta 132), pack-reused 61163 (from 2) Receiving objects: 100% (61475/61475), 19.47 MiB | 4.95 MiB/s, done. Resolving deltas: 100% (39180/39180), done. Cloning into '/Users/kinneko/esp/esp-idf/components/cmock/CMock'... remote: Enumerating objects: 6176, done. remote: Counting objects: 100% (565/565), done. remote: Compressing objects: 100% (269/269), done. remote: Total 6176 (delta 322), reused 467 (delta 260), pack-reused 5611 (from 1) Receiving objects: 100% (6176/6176), 3.74 MiB | 8.33 MiB/s, done. Resolving deltas: 100% (4151/4151), done. Cloning into '/Users/kinneko/esp/esp-idf/components/esp_coex/lib'... remote: Enumerating objects: 583, done. remote: Counting objects: 100% (583/583), done. remote: Compressing objects: 100% (97/97), done. remote: Total 583 (delta 254), reused 571 (delta 242), pack-reused 0 (from 0) Receiving objects: 100% (583/583), 1.07 MiB | 5.66 MiB/s, done. Resolving deltas: 100% (254/254), done. Cloning into '/Users/kinneko/esp/esp-idf/components/esp_phy/lib'... remote: Enumerating objects: 871, done. remote: Counting objects: 100% (97/97), done. remote: Compressing objects: 100% (80/80), done. remote: Total 871 (delta 50), reused 52 (delta 17), pack-reused 774 (from 1) Receiving objects: 100% (871/871), 8.16 MiB | 9.12 MiB/s, done. Resolving deltas: 100% (509/509), done. Cloning into '/Users/kinneko/esp/esp-idf/components/esp_wifi/lib'... remote: Enumerating objects: 53628, done. remote: Counting objects: 100% (159/159), done. remote: Compressing objects: 100% (98/98), done. remote: Total 53628 (delta 114), reused 89 (delta 61), pack-reused 53469 (from 2) Receiving objects: 100% (53628/53628), 1.03 GiB | 5.39 MiB/s, done. Resolving deltas: 100% (44334/44334), done. Cloning into '/Users/kinneko/esp/esp-idf/components/heap/tlsf'... remote: Enumerating objects: 187, done. remote: Counting objects: 100% (144/144), done. remote: Compressing objects: 100% (66/66), done. remote: Total 187 (delta 83), reused 133 (delta 75), pack-reused 43 (from 1) Receiving objects: 100% (187/187), 68.45 KiB | 584.00 KiB/s, done. Resolving deltas: 100% (95/95), done. Cloning into '/Users/kinneko/esp/esp-idf/components/json/cJSON'... remote: Enumerating objects: 4682, done. remote: Counting objects: 100% (103/103), done. remote: Compressing objects: 100% (73/73), done. remote: Total 4682 (delta 67), reused 30 (delta 30), pack-reused 4579 (from 4) Receiving objects: 100% (4682/4682), 2.56 MiB | 8.52 MiB/s, done. Resolving deltas: 100% (3097/3097), done. Cloning into '/Users/kinneko/esp/esp-idf/components/lwip/lwip'... remote: Enumerating objects: 57166, done. remote: Counting objects: 100% (1625/1625), done. remote: Compressing objects: 100% (406/406), done. remote: Total 57166 (delta 1402), reused 1233 (delta 1219), pack-reused 55541 (from 2) Receiving objects: 100% (57166/57166), 12.19 MiB | 7.62 MiB/s, done. Resolving deltas: 100% (42971/42971), done. Cloning into '/Users/kinneko/esp/esp-idf/components/mbedtls/mbedtls'... remote: Enumerating objects: 227786, done. remote: Total 227786 (delta 0), reused 0 (delta 0), pack-reused 227786 (from 1) Receiving objects: 100% (227786/227786), 109.69 MiB | 3.63 MiB/s, done. Resolving deltas: 100% (177472/177472), done. Cloning into '/Users/kinneko/esp/esp-idf/components/mqtt/esp-mqtt'... remote: Enumerating objects: 3971, done. remote: Counting objects: 100% (1101/1101), done. remote: Compressing objects: 100% (360/360), done. remote: Total 3971 (delta 796), reused 888 (delta 733), pack-reused 2870 (from 1) Receiving objects: 100% (3971/3971), 1.83 MiB | 5.37 MiB/s, done. Resolving deltas: 100% (2159/2159), done. Cloning into '/Users/kinneko/esp/esp-idf/components/openthread/lib'... remote: Enumerating objects: 838, done. remote: Counting objects: 100% (120/120), done. remote: Compressing objects: 100% (39/39), done. remote: Total 838 (delta 47), reused 105 (delta 35), pack-reused 718 (from 1) Receiving objects: 100% (838/838), 6.85 MiB | 6.94 MiB/s, done. Resolving deltas: 100% (386/386), done. Cloning into '/Users/kinneko/esp/esp-idf/components/openthread/openthread'... remote: Enumerating objects: 116662, done. remote: Counting objects: 100% (563/563), done. remote: Compressing objects: 100% (314/314), done. remote: Total 116662 (delta 412), reused 252 (delta 249), pack-reused 116099 (from 5) Receiving objects: 100% (116662/116662), 113.98 MiB | 5.34 MiB/s, done. Resolving deltas: 100% (91996/91996), done. Cloning into '/Users/kinneko/esp/esp-idf/components/protobuf-c/protobuf-c'... remote: Enumerating objects: 4010, done. remote: Counting objects: 100% (921/921), done. remote: Compressing objects: 100% (175/175), done. remote: Total 4010 (delta 831), reused 746 (delta 746), pack-reused 3089 (from 2) Receiving objects: 100% (4010/4010), 1.42 MiB | 5.21 MiB/s, done. Resolving deltas: 100% (2630/2630), done. Cloning into '/Users/kinneko/esp/esp-idf/components/spiffs/spiffs'... remote: Enumerating objects: 1553, done. remote: Counting objects: 100% (70/70), done. remote: Compressing objects: 100% (41/41), done. remote: Total 1553 (delta 34), reused 48 (delta 24), pack-reused 1483 (from 1) Receiving objects: 100% (1553/1553), 1.08 MiB | 3.23 MiB/s, done. Resolving deltas: 100% (1069/1069), done. Cloning into '/Users/kinneko/esp/esp-idf/components/unity/unity'... remote: Enumerating objects: 6953, done. remote: Counting objects: 100% (1176/1176), done. remote: Compressing objects: 100% (529/529), done. remote: Total 6953 (delta 720), reused 989 (delta 631), pack-reused 5777 (from 1) Receiving objects: 100% (6953/6953), 6.93 MiB | 5.82 MiB/s, done. Resolving deltas: 100% (4304/4304), done. Submodule path 'components/bootloader/subproject/components/micro-ecc/micro-ecc': checked out '24c60e243580c7868f4334a1ba3123481fe1aa48' Submodule path 'components/bt/controller/lib_esp32': checked out '5c4a62c1d4577d1352d28708c790ba2b4f741842' Submodule path 'components/bt/controller/lib_esp32c2/esp32c2-bt-lib': checked out '99ea7d1483a9e5329d0801293d8c051d0fddefd7' Submodule path 'components/bt/controller/lib_esp32c3_family': checked out '6470c01165cf4edeed5d826ce4082a90deb92efd' Submodule path 'components/bt/controller/lib_esp32c5/esp32c5-bt-lib': checked out '77c67a4d06c95113a2d1766892cde59f5af744af' Submodule path 'components/bt/controller/lib_esp32c6/esp32c6-bt-lib': checked out 'b86a06d38cc3de4660b67d992259f727ba590296' Submodule path 'components/bt/controller/lib_esp32h2/esp32h2-bt-lib': checked out '90f1ef76ab9021b123e3037e9df782549f386e30' Submodule path 'components/bt/esp_ble_mesh/lib/lib': checked out '590bd6e3d2b20327138a96e44cf3da6d43a8abdc' Submodule path 'components/bt/host/nimble/nimble': checked out '32b2124f54238e70ecd4c72a753698babdd939f7' Submodule path 'components/cmock/CMock': checked out 'eeecc49ce8af123cf8ad40efdb9673e37b56230f' Submodule 'vendor/c_exception' (https://github.com/throwtheswitch/cexception.git) registered for path 'components/cmock/CMock/vendor/c_exception' Submodule 'vendor/unity' (https://github.com/throwtheswitch/unity.git) registered for path 'components/cmock/CMock/vendor/unity' Cloning into '/Users/kinneko/esp/esp-idf/components/cmock/CMock/vendor/c_exception'... remote: Enumerating objects: 380, done. remote: Counting objects: 100% (54/54), done. remote: Compressing objects: 100% (39/39), done. remote: Total 380 (delta 22), reused 41 (delta 14), pack-reused 326 (from 1) Receiving objects: 100% (380/380), 579.13 KiB | 4.11 MiB/s, done. Resolving deltas: 100% (175/175), done. Cloning into '/Users/kinneko/esp/esp-idf/components/cmock/CMock/vendor/unity'... remote: Enumerating objects: 6953, done. remote: Counting objects: 100% (1176/1176), done. remote: Compressing objects: 100% (529/529), done. remote: Total 6953 (delta 720), reused 989 (delta 631), pack-reused 5777 (from 1) Receiving objects: 100% (6953/6953), 6.93 MiB | 6.25 MiB/s, done. Resolving deltas: 100% (4304/4304), done. Submodule path 'components/cmock/CMock/vendor/c_exception': checked out '71b47be7c950f1bf5f7e5303779fa99a16224bb6' Submodule path 'components/cmock/CMock/vendor/unity': checked out 'cf949f45ca6d172a177b00da21310607b97bc7a7' Submodule path 'components/esp_coex/lib': checked out '7953ba459a01d5c08f038cad8eaabb4e37d2505d' Submodule path 'components/esp_phy/lib': checked out '1f551c5367daa87a29e0c4f724d6cf809a1841ad' Submodule path 'components/esp_wifi/lib': checked out '75710820e86e573220002b3aab4f5e43ad10d4ec' Submodule path 'components/heap/tlsf': checked out '8fc595fe223cd0b3b5d7b29eb86825e4bd38e6e8' Submodule path 'components/json/cJSON': checked out 'acc76239bee01d8e9c858ae2cab296704e52d916' Submodule path 'components/lwip/lwip': checked out '0606eed9d8b98a797514fdf6eabb4daf1c8c8cd9' Submodule path 'components/mbedtls/mbedtls': checked out '98fcfd6d2cea90d306e8fde8e5bffd6087c9cda8' Submodule path 'components/mqtt/esp-mqtt': checked out 'cac1552e62b0474c162547b7cce345d7cd1aecfe' Submodule path 'components/openthread/lib': checked out '55f18e4cc6a249974247fd408aad79b1049d4b31' Submodule path 'components/openthread/openthread': checked out '005c5cefc22aaf0396e4327ee7f2e0ad32a7733b' Submodule path 'components/protobuf-c/protobuf-c': checked out 'abc67a11c6db271bedbb9f58be85d6f4e2ea8389' Submodule path 'components/spiffs/spiffs': checked out '0dbb3f71c5f6fae3747a9d935372773762baf852' Submodule path 'components/unity/unity': checked out 'bf560290f6020737eafaa8b5cbd2177c3956c03f' esp-idfがcloneされた。 % ls esp-idf ESP32をサポートするプロジェクトでは、ESP-IDFの他に、コンパイラ、デバッガー、Python パッケージなど、ESP-IDF で使用されるツールもインストールする必要がある。ここでは、ESP32 S3の環境をインストールする。 また、大量にダウンロードされる。なんか、環境がどんどん汚れていくのイヤだな... % cd ~/esp/esp-idf % ./install.sh esp32s3 Detecting the Python interpreter Checking "python3" ... Python 3.8.9 "python3" has been detected Checking Python compatibility Installing ESP-IDF tools Updating /Users/kinneko/.espressif/idf-env.json Selected targets are: esp32s3 Current system platform: macos-arm64 Installing tools: xtensa-esp-elf-gdb, xtensa-esp-elf, riscv32-esp-elf, esp32ulp-elf, openocd-esp32, esp-rom-elfs Installing xtensa-esp-elf-gdb@14.2_20240403 Downloading https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-aarch64-apple-darwin21.1.tar.gz Destination: /Users/kinneko/.espressif/dist/xtensa-esp-elf-gdb-14.2_20240403-aarch64-apple-darwin21.1.tar.gz.tmp Done Extracting /Users/kinneko/.espressif/dist/xtensa-esp-elf-gdb-14.2_20240403-aarch64-apple-darwin21.1.tar.gz to /Users/kinneko/.espressif/tools/xtensa-esp-elf-gdb/14.2_20240403 Installing xtensa-esp-elf@esp-13.2.0_20240530 Downloading https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/xtensa-esp-elf-13.2.0_20240530-aarch64-apple-darwin.tar.xz Destination: /Users/kinneko/.espressif/dist/xtensa-esp-elf-13.2.0_20240530-aarch64-apple-darwin.tar.xz.tmp Done Extracting /Users/kinneko/.espressif/dist/xtensa-esp-elf-13.2.0_20240530-aarch64-apple-darwin.tar.xz to /Users/kinneko/.espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530 Installing riscv32-esp-elf@esp-13.2.0_20240530 Downloading https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/riscv32-esp-elf-13.2.0_20240530-aarch64-apple-darwin.tar.xz Destination: /Users/kinneko/.espressif/dist/riscv32-esp-elf-13.2.0_20240530-aarch64-apple-darwin.tar.xz.tmp Done Extracting /Users/kinneko/.espressif/dist/riscv32-esp-elf-13.2.0_20240530-aarch64-apple-darwin.tar.xz to /Users/kinneko/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20240530 Installing esp32ulp-elf@2.38_20240113 Downloading https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-2.38_20240113/esp32ulp-elf-2.38_20240113-macos-arm64.tar.gz Destination: /Users/kinneko/.espressif/dist/esp32ulp-elf-2.38_20240113-macos-arm64.tar.gz.tmp Done Extracting /Users/kinneko/.espressif/dist/esp32ulp-elf-2.38_20240113-macos-arm64.tar.gz to /Users/kinneko/.espressif/tools/esp32ulp-elf/2.38_20240113 Installing openocd-esp32@v0.12.0-esp32-20241016 Downloading https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20241016/openocd-esp32-macos-arm64-0.12.0-esp32-20241016.tar.gz Destination: /Users/kinneko/.espressif/dist/openocd-esp32-macos-arm64-0.12.0-esp32-20241016.tar.gz.tmp Done Extracting /Users/kinneko/.espressif/dist/openocd-esp32-macos-arm64-0.12.0-esp32-20241016.tar.gz to /Users/kinneko/.espressif/tools/openocd-esp32/v0.12.0-esp32-20241016 Installing esp-rom-elfs@20240305 Downloading https://github.com/espressif/esp-rom-elfs/releases/download/20240305/esp-rom-elfs-20240305.tar.gz Destination: /Users/kinneko/.espressif/dist/esp-rom-elfs-20240305.tar.gz.tmp Done Extracting /Users/kinneko/.espressif/dist/esp-rom-elfs-20240305.tar.gz to /Users/kinneko/.espressif/tools/esp-rom-elfs/20240305 Installing Python environment and packages Creating a new Python environment in /Users/kinneko/.espressif/python_env/idf5.3_py3.8_env Downloading https://dl.espressif.com/dl/esp-idf/espidf.constraints.v5.3.txt Destination: /Users/kinneko/.espressif/espidf.constraints.v5.3.txt.tmp Done Upgrading pip and setuptools... Ignoring gdbgui: markers 'python_version < "3.11" and sys_platform == "win32"' don't match your environment Ignoring pygdbmi: markers 'python_version < "3.11" and sys_platform == "win32"' don't match your environment Ignoring python-socketio: markers 'python_version < "3.11" and sys_platform == "win32"' don't match your environment Ignoring jinja2: markers 'python_version < "3.11" and sys_platform == "win32"' don't match your environment Ignoring itsdangerous: markers 'python_version < "3.11" and sys_platform == "win32"' don't match your environment Ignoring gdbgui: markers 'python_version >= "3.11"' don't match your environment Ignoring dbus-python: markers 'python_version > "3.10"' don't match your environment Collecting setuptools<71.0.1,>=21 Downloading setuptools-71.0.0-py3-none-any.whl (908 kB) |████████████████████████████████| 908 kB 5.9 MB/s Collecting pip Downloading pip-24.3.1-py3-none-any.whl (1.8 MB) |████████████████████████████████| 1.8 MB 9.9 MB/s Installing collected packages: setuptools, pip Attempting uninstall: setuptools Found existing installation: setuptools 49.2.1 Uninstalling setuptools-49.2.1: Successfully uninstalled setuptools-49.2.1 Attempting uninstall: pip Found existing installation: pip 20.2.3 Uninstalling pip-20.2.3: Successfully uninstalled pip-20.2.3 Successfully installed pip-24.3.1 setuptools-71.0.0 Installing Python packages Constraint file: /Users/kinneko/.espressif/espidf.constraints.v5.3.txt Requirement files: Looking in indexes: https://pypi.org/simple, https://dl.espressif.com/pypi Ignoring importlib_metadata: markers 'python_version < "3.8"' don't match your environment Requirement already satisfied: setuptools in /Users/kinneko/.espressif/python_env/idf5.3_py3.8_env/lib/python3.8/site-packages (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 3)) (71.0.0) Collecting packaging (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 4)) Downloading https://dl.espressif.com/pypi/packaging/packaging-24.2-py3-none-any.whl (65 kB) Collecting click (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 7)) Downloading click-8.1.8-py3-none-any.whl.metadata (2.3 kB) Collecting pyserial (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 8)) Downloading https://dl.espressif.com/pypi/pyserial/pyserial-3.5-py2.py3-none-any.whl (90 kB) Collecting cryptography (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 9)) Downloading https://dl.espressif.com/pypi/cryptography/cryptography-42.0.8-cp37-abi3-macosx_10_12_universal2.whl (5.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.9/5.9 MB 9.7 MB/s eta 0:00:00 Collecting pyparsing (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 10)) Downloading https://dl.espressif.com/pypi/pyparsing/pyparsing-3.1.4-py3-none-any.whl (104 kB) Collecting pyelftools (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 11)) Downloading https://dl.espressif.com/pypi/pyelftools/pyelftools-0.31-py3-none-any.whl (180 kB) Collecting idf-component-manager (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading idf_component_manager-2.1.1-py3-none-any.whl.metadata (11 kB) Collecting esp-coredump (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 13)) Downloading https://dl.espressif.com/pypi/esp-coredump/esp_coredump-1.12.0-py3-none-any.whl (45 kB) Collecting esptool (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 14)) Downloading https://dl.espressif.com/pypi/esptool/esptool-4.8.1-py3-none-any.whl (534 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 534.2/534.2 kB 5.3 MB/s eta 0:00:00 Collecting esp-idf-kconfig (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 15)) Downloading esp_idf_kconfig-2.4.1-py3-none-any.whl.metadata (15 kB) Collecting esp-idf-monitor (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 16)) Downloading https://dl.espressif.com/pypi/esp-idf-monitor/esp_idf_monitor-1.5.0-py3-none-any.whl (48 kB) Collecting esp-idf-nvs-partition-gen (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 17)) Downloading https://dl.espressif.com/pypi/esp-idf-nvs-partition-gen/esp_idf_nvs_partition_gen-0.1.6-py3-none-any.whl (21 kB) Collecting esp-idf-size (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 18)) Downloading https://dl.espressif.com/pypi/esp-idf-size/esp_idf_size-1.6.1-py3-none-any.whl (81 kB) Collecting esp-idf-panic-decoder (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 19)) Downloading https://dl.espressif.com/pypi/esp-idf-panic-decoder/esp_idf_panic_decoder-1.2.1-py3-none-any.whl (19 kB) Collecting pyclang (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 20)) Downloading https://dl.espressif.com/pypi/pyclang/pyclang-0.6.0-py3-none-any.whl (12 kB) Collecting construct (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 21)) Downloading https://dl.espressif.com/pypi/construct/construct-2.10.70-py3-none-any.whl (63 kB) Collecting freertos_gdb (from -r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 24)) Downloading https://dl.espressif.com/pypi/freertos-gdb/freertos_gdb-1.0.3-py3-none-any.whl (14 kB) Collecting cffi>=1.12 (from cryptography->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 9)) Downloading https://dl.espressif.com/pypi/cffi/cffi-1.17.1-cp38-cp38-macosx_11_0_universal2.whl (258 kB) Collecting colorama (from idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading https://dl.espressif.com/pypi/colorama/colorama-0.4.6-py2.py3-none-any.whl (25 kB) Collecting pyyaml (from idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading https://dl.espressif.com/pypi/pyyaml/PyYAML-6.0.2-cp38-cp38-macosx_11_0_universal2.whl (45 kB) Collecting ruamel.yaml (from idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading ruamel.yaml-0.18.6-py3-none-any.whl.metadata (23 kB) Collecting requests (from idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading https://dl.espressif.com/pypi/requests/requests-2.32.3-py3-none-any.whl (64 kB) Collecting requests-file (from idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading https://dl.espressif.com/pypi/requests-file/requests_file-2.1.0-py2.py3-none-any.whl (4.2 kB) Collecting requests-toolbelt (from idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading https://dl.espressif.com/pypi/requests-toolbelt/requests_toolbelt-1.0.0-py2.py3-none-any.whl (54 kB) Collecting tqdm (from idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading https://dl.espressif.com/pypi/tqdm/tqdm-4.67.1-py3-none-any.whl (78 kB) Collecting jsonref (from idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading https://dl.espressif.com/pypi/jsonref/jsonref-1.1.0-py3-none-any.whl (9.4 kB) Collecting pydantic (from idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading pydantic-2.10.4-py3-none-any.whl.metadata (29 kB) Collecting pydantic-core (from idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl.metadata (6.6 kB) Collecting pydantic-settings (from idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading pydantic_settings-2.7.0-py3-none-any.whl.metadata (3.5 kB) Collecting typing-extensions (from idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading https://dl.espressif.com/pypi/typing-extensions/typing_extensions-4.12.2-py3-none-any.whl (37 kB) Collecting pygdbmi>=0.9.0.2 (from esp-coredump->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 13)) Downloading https://dl.espressif.com/pypi/pygdbmi/pygdbmi-0.11.0.0-py3-none-any.whl (21 kB) Collecting bitstring!=4.2.0,>=3.1.6 (from esptool->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 14)) Downloading https://dl.espressif.com/pypi/bitstring/bitstring-4.2.3-py3-none-any.whl (71 kB) Collecting ecdsa>=0.16.0 (from esptool->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 14)) Downloading https://dl.espressif.com/pypi/ecdsa/ecdsa-0.19.0-py2.py3-none-any.whl (149 kB) Collecting reedsolo<1.8,>=1.5.3 (from esptool->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 14)) Downloading https://dl.espressif.com/pypi/reedsolo/reedsolo-1.7.0-py3-none-any.whl (32 kB) Collecting intelhex (from esptool->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 14)) Downloading https://dl.espressif.com/pypi/intelhex/intelhex-2.3.0-py2.py3-none-any.whl (50 kB) Collecting argcomplete>=3 (from esptool->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 14)) Downloading argcomplete-3.5.2-py3-none-any.whl.metadata (16 kB) Collecting rich (from esp-idf-size->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 18)) Downloading https://dl.espressif.com/pypi/rich/rich-13.9.4-py3-none-any.whl (242 kB) Collecting bitarray<3.0.0,>=2.9.0 (from bitstring!=4.2.0,>=3.1.6->esptool->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 14)) Downloading https://dl.espressif.com/pypi/bitarray/bitarray-2.9.3-cp38-cp38-macosx_11_0_arm64.whl (126 kB) Collecting pycparser (from cffi>=1.12->cryptography->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 9)) Downloading https://dl.espressif.com/pypi/pycparser/pycparser-2.22-py3-none-any.whl (117 kB) Collecting six>=1.9.0 (from ecdsa>=0.16.0->esptool->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 14)) Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB) Collecting annotated-types>=0.6.0 (from pydantic->idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading https://dl.espressif.com/pypi/annotated-types/annotated_types-0.7.0-py3-none-any.whl (13 kB) Collecting python-dotenv>=0.21.0 (from pydantic-settings->idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading https://dl.espressif.com/pypi/python-dotenv/python_dotenv-1.0.1-py3-none-any.whl (19 kB) Collecting charset-normalizer<4,>=2 (from requests->idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading https://dl.espressif.com/pypi/charset-normalizer/charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl (119 kB) Collecting idna<4,>=2.5 (from requests->idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading https://dl.espressif.com/pypi/idna/idna-3.10-py3-none-any.whl (70 kB) Collecting urllib3<3,>=1.21.1 (from requests->idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading https://dl.espressif.com/pypi/urllib3/urllib3-1.26.20-py2.py3-none-any.whl (144 kB) Collecting certifi>=2017.4.17 (from requests->idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading certifi-2024.12.14-py3-none-any.whl.metadata (2.3 kB) Collecting markdown-it-py>=2.2.0 (from rich->esp-idf-size->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 18)) Downloading https://dl.espressif.com/pypi/markdown-it-py/markdown_it_py-3.0.0-py3-none-any.whl (87 kB) Collecting pygments<3.0.0,>=2.13.0 (from rich->esp-idf-size->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 18)) Downloading https://dl.espressif.com/pypi/pygments/pygments-2.18.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 3.2 MB/s eta 0:00:00 Collecting ruamel.yaml.clib>=0.2.7 (from ruamel.yaml->idf-component-manager->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 12)) Downloading ruamel.yaml.clib-0.2.8.tar.gz (213 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich->esp-idf-size->-r /Users/kinneko/esp/esp-idf/tools/requirements/requirements.core.txt (line 18)) Downloading https://dl.espressif.com/pypi/mdurl/mdurl-0.1.2-py3-none-any.whl (10.0 kB) Downloading click-8.1.8-py3-none-any.whl (98 kB) Downloading idf_component_manager-2.1.1-py3-none-any.whl (159 kB) Downloading esp_idf_kconfig-2.4.1-py3-none-any.whl (141 kB) Downloading argcomplete-3.5.2-py3-none-any.whl (43 kB) Downloading pydantic-2.10.4-py3-none-any.whl (431 kB) Downloading pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 8.6 MB/s eta 0:00:00 Downloading pydantic_settings-2.7.0-py3-none-any.whl (29 kB) Downloading ruamel.yaml-0.18.6-py3-none-any.whl (117 kB) Downloading certifi-2024.12.14-py3-none-any.whl (164 kB) Downloading six-1.17.0-py2.py3-none-any.whl (11 kB) Building wheels for collected packages: ruamel.yaml.clib Building wheel for ruamel.yaml.clib (pyproject.toml) ... done Created wheel for ruamel.yaml.clib: filename=ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_10_14_arm64.whl size=282695 sha256=41c51f722a9ebbcdcd9f55e0b1966d199fca0a1617cd15849aee6406dbe8c14c Stored in directory: /Users/kinneko/Library/Caches/pip/wheels/01/da/7d/b9216e2302a1e02e860315cbd43ccc0d4233cdce0e122c85b4 Successfully built ruamel.yaml.clib Installing collected packages: reedsolo, pyserial, pygdbmi, pyelftools, intelhex, bitarray, urllib3, typing-extensions, tqdm, six, ruamel.yaml.clib, pyyaml, python-dotenv, pyparsing, pygments, pycparser, pyclang, packaging, mdurl, jsonref, idna, freertos_gdb, esp-idf-panic-decoder, esp-idf-kconfig, construct, colorama, click, charset-normalizer, certifi, bitstring, argcomplete, ruamel.yaml, requests, pydantic-core, markdown-it-py, ecdsa, cffi, annotated-types, rich, requests-toolbelt, requests-file, pydantic, cryptography, pydantic-settings, esptool, esp-idf-size, esp-idf-nvs-partition-gen, idf-component-manager, esp-coredump, esp-idf-monitor Successfully installed annotated-types-0.7.0 argcomplete-3.5.2 bitarray-2.9.3 bitstring-4.2.3 certifi-2024.12.14 cffi-1.17.1 charset-normalizer-3.4.0 click-8.1.8 colorama-0.4.6 construct-2.10.70 cryptography-42.0.8 ecdsa-0.19.0 esp-coredump-1.12.0 esp-idf-kconfig-2.4.1 esp-idf-monitor-1.5.0 esp-idf-nvs-partition-gen-0.1.6 esp-idf-panic-decoder-1.2.1 esp-idf-size-1.6.1 esptool-4.8.1 freertos_gdb-1.0.3 idf-component-manager-2.1.1 idna-3.10 intelhex-2.3.0 jsonref-1.1.0 markdown-it-py-3.0.0 mdurl-0.1.2 packaging-24.2 pyclang-0.6.0 pycparser-2.22 pydantic-2.10.4 pydantic-core-2.27.2 pydantic-settings-2.7.0 pyelftools-0.31 pygdbmi-0.11.0.0 pygments-2.18.0 pyparsing-3.1.4 pyserial-3.5 python-dotenv-1.0.1 pyyaml-6.0.2 reedsolo-1.7.0 requests-2.32.3 requests-file-2.1.0 requests-toolbelt-1.0.0 rich-13.9.4 ruamel.yaml-0.18.6 ruamel.yaml.clib-0.2.8 six-1.17.0 tqdm-4.67.1 typing-extensions-4.12.2 urllib3-1.26.20 All done! You can now run: . ./export.sh とりあえず、ESP-IDF環境のインストールまでは終わった。先は長いな。 オリジナル投稿:
OpenAI RealtimeAPI Embedded SDK 試す -1-|kinneko|pixivFANBOX
https://kinneko.fanbox.cc/posts/9077231

