💡

Seeed Studio XIAO ESP32C3+CircuitPythonのお試し

2022/11/26に公開5

RISC-Vが気になっているとSeeed Studio XIAO ESP32C3が千円以下で購入できることが分かりMicropythonで遊んでみることにしました。
が、結局MicroPythonではなくCircuitPythonになりました・・・。


最近使用していたDevKitC-VEに比べるとかなりコンパクトでこれでWi-FiもBLEも使用できてしまうのがすごい。
ESP32C3のピン数は14本仕、上がりは別としてピンの半田付けもだいぶ慣れてきてさくっと完了、まだまだ簡単な使い方しかしていないのでこのぐらいのピン数でも十分かも。

DevKitC-VEの開発ボードと比べると結構違います。ESP32C3には髭の様なアンテナが付属しておりボタンを止める様に押し込むのがちょっと硬くて壊れないかヒヤヒヤでした。

MicroPythonではなくCircuitPython

いつものようにmicropython.org からファームウェアをダウンロードしようとまずベンダーで検索してみるとSeeeduino XIAOはあったものの写真が異なる・・・ソースのあるGigHubや製品のリンク先を確認してみるとSeeed Studio XIAO SAMD21用であることが分かりました。https://wiki.seeedstudio.com/XIAO_ESP32C3_Getting_Started/ からリンクされているESP32C3のデータシートを確認するとEspressif Systems社のものなのでEspressif Systemsでファームウェアを検索するとesp32/GENERIC_C3を無事発見、早速手順通り書き込んで起動させると無事LEDが表示、Raspberry PiのThonnyから接続してみると何かメッセージが出続けていてどうも失敗しているもよう。
ダメもとでesp32/GENERIC_C3_USB版も試してみるも結果は変わらず。

製品情報ページを確認してみるとSpecifications comparisonのProgramming Languages欄にはArduinoの記載しかないことが判明・・・確認不十分でした。

どうしたものかとCircuitPythonのサイトを見てみるとSeeed Studio XIAO ESP32C3
by Seeed Studio
があることが判明、早速ファームウェアをesptool.pyで書き込んでみると無事Thonnyからも接続できました。

定番のLチカと電池駆動

定番のLチカとXC9306を使用した昇降圧スイッチング電源モジュールを使用してeneloop(ニッケル・水素蓄電池)x3本で起動させてみました。

販売していたサイトの説明では入力が5Vだったのですがデータシートを見ていると他のESP32と同様3.3Vのピンからの電源供給できそうだったので試してみ予想通り動いてくれました。

動作不安定

Thonnyからpyファイルのアップロードをしていると例外が発生、例外が発生してしまうとThonnyやESP32Cを再起動しないと繋がらなくという不安定さがあり原因がどこにあるのか・・・。

とりあずCdSセンサーを使用した単純な使い方しか考えていないのでだましだまし使ってみることにしました、早くMicroPythonに慣れ始めたばかりなのでCircuitPythonと併用は避けたかったけれどしばらくは仕方ないかな。

Discussion

asabonasabon

こんにちは!
私も同じくMicroPython動くだろうとXIAO ESP32C3を11/16に購入してしまいました。
CircuitPython(v8.0.0-beta4)も試しましたが、Windows11が原因なのかCIRCUITPYフォルダがエクスプローラに現れず(REPLではコード入力&動作OK)、Arduinoコードで作成すべきか悩んでいたところ、今この記事を拝見し、もう一度MicroPythonを試し、動作しましたので、取り急ぎお知らせしておきます。
※まだPIN操作やWiFi操作は行っていませんので、ご確認いただけると助かります。

こちらのページのNightly buildsのファームウェアをインストールすることで動作しました。
http://www.micropython.org/download/esp32c3-usb/
v1.19.1-717-g3c1a2a942 (2022-11-25) .bin ←昨日Update!

インストール

  1. bootボタン、Resetボタン同時に1回押す。
  2. esptool.py でflashをクリア
  3. esptool.py でファームウェアをインストール
  4. ampy でコードファイルを実行

$> esptool.py --chip esp32c3 --port {SERIAL_PORT} erase_flash
$> esptool.py --chip esp32c3 --port {SERIAL_PORT} --baud 115200 write_flash -z 0x0 esp32c3-usb-20221125-unstable-v1.19.1-717-g3c1a2a942.bin

main.py

print('hello XIAO EXP32C3 !!')

$>ampy -p {SERIAL_PORT} run main.py
hello XIAO EXP32C3 !!

お互い面白い物作れるといいですね!

テク二カリウムテク二カリウム

貴重な情報ありがとうございますおかげさまで慣れ始めたMicroPythonで作れそうです、昨日アップデートとは!!
ESP32C3は自分は11/23に購入して使い始めたところでした。

さっそくファームウェアを書き込んでみたのですがとりあえずLチカとWi-Fiは問題なく使用できました。

asabonasabon

Lチカ、WiFi動作確認ありがとうございました。
私も、PWMでモーター、サーボ駆動、WiFiなど確認できました。

musimusi

Seeed Studio XIAO ESP32C3 を購入して、Thonnyでの開発を目論んでいました。
しかし、動作が不安定で他のツールを探していました。
・esptool.pyでの書き込み
・screen でのシリアル通信(Mac)
・Circuitpython Web workflow でファイル操作、編集、実行ができるようになりました。https://learn.adafruit.com/getting-started-with-web-workflow-using-the-code-editor/overview
https://learn.adafruit.com/circuitpython-with-esp32-quick-start?view=all

minimqtt で Raspberry pi と通信できるようになりました。

https://adafruit.github.io/Adafruit_WebSerial_ESPTool/
も使っています。

テク二カリウムテク二カリウム

今はThonny(Raspberry Pi上)+MicroPythonの組合せで安定しています。
ゆくゆくはRustでも開発してみたいと思っています。