ぽぽろん研究所のサムシング

twitter:@poporon_labもよろしく

ESP32-S3にCircuitPythonを導入する【2022/09/22】

こんにちは、ぽぽろん研究所です。

今日は以前の秋葉原遠征で購入してきたESP32-S3にcircuit pythonを導入していこうと思います。予想の100倍くらい簡単だったので、手短いに行きたいと思います。

用意したもの

bootloaderとCircuitPythonはCircuitPythonの公式サイトからダウンロードすることができます。こちらのサイトからそれぞれをダウンロードしてください。
ESP32-S3-DevKitC-1-N8 Download
bootloaderは下の方にある「DOWNLOAD BOOTLOADER ZIP」を押してダウンロード、解凍を行います。 CircuitPythonは今回は最新版のstableが7.3.3だったので、これを使用します。「DOWNLOAD .UF2 NOW」をクリックしてUF2ファイルをダンロードしておきます。

ブートローダの書き込み

まず、USBケーブルでESP32-S3とPCをつなぎます。このとき、microUSB端子はUSBの方を使用して接続しました。
接続したら、BOOTボタンを押しながらRESETボタンを押して書き込み状態に移動します。次はPC上での操作となります。

今回はESP Web Flasherを使用して書き込みます。こちらのサイトをChromeで開いてください。Edgeで試したら失敗しました。
ESP Web Flasher

  1. ESP Web Flasherを開いたら、右上のボーレートを460800に設定します。
  2. となりのConnectボタンを押して、接続先を決定します。このときにESP32-S3のデバイスを選択します。私の場合はUSB JTAG/serial debug unitでした。 正常に選択できれば、ファイルの書き込みウィジェットが出てきます。
    正常な場合、これが出てくる
  3. まずはEraseを押して、ESP32-S3内を消去します。
  4. 先程ダウンロードしたbootloaderのZIPファイルを解凍してcombined.binを用意します。
  5. ESP Web Flasher上のChoose a fileをクリックして、先程用意したcombined.binを選択します。
    combined.binを選択した状態
  6. 最後にProgramを押して、書き込みが終われば終了です。少し時間がかかります。
CircuitPythonの導入

bootloaderの書き込み終了後、リセットボタンを押すことでブートローダが起動します。正常に起動できれば、USBストレージとしてPC側で認識することができます。S3DKC1BOOTとして認識していると思います。

USBストレージとして認識している状態
このストレージに先程ダウンロードしたCircuitPythonのUF2ファイルをコピーします。コピーが完了すると自動でESP32-S3が再起動します。再起動後、USBストレージがCIRCUITPYになっていれば完了です。
CircuitPython導入後

CircuitPythonの起動

今回はTera Termを使用してアクセスします。ESP32-S3を接続したら。Tera TermでESP32のCOMポートに接続します。その後、設定→端末から改行コードの受信設定をAUTOにし、設定→シリアルポートからボーレートを115200に設定します。設定が完了したら、ESP32のリセットを押すと入力待ちであることを表示します。ここで、ENTERを押すことで対話型のPythonインターフェースを開くことができます。

リセット直後の入力待ち表示

今回は対話型での動作までを見ていきました。他にもcode.pyを入れることでスクリプトを実行したりもできます。その辺はまた今度。

それにしても、ESP32の書き込みがブラウザ上でできるのは驚きました。完全に浦島気分です。そもそもブラウザでCOMポートって使えたんですね。どうやら調べてみると2017年頃に正式に使えるようになったとこなんとか書いてありました。5年前にはすでにあったんですね。ブラウザの万能感がまた一段上がった気がします。

それでは、また次回。