ESP32-S3系のハマりどころ【ATOMS3, M5StampS3など】
-
ESP-S3系は今までのESP32の端末と異なり、新たなハマりポイントがあるようです。
Twitter等で発見したハマりポイントをまとめておきます。何か他にもあったらトピックに追加してください。
-
書き込めない
原因1.ダウンロードモードに入っていない。
ESP32の時とは変わって、USBの書き込みはESP32-S3に内蔵されているUSBシリアル通信機能を利用しています。そのため、ダウンロードモードに入る操作が必要な場合があります。
特にWindowsでは書き込み時に必ずダウンロードモードにする必要がありそうです。
操作方法
ATOMS3, ATOMS3 Lite
リセットボタンを2秒以上長押しします。ボタンの裏にある緑色のLEDが点灯したらダウンロードモードに入ったことが分かります。
M5StampS3
USB端子を一度抜き、ボタンを押しながら再度差し込んで電源を入れます。(LEDは特に光らないので分かりづらいです。)
原因2.Esptoolのバージョンが4.4
Esptoolのバージョンが4.4が原因で書き込めない場合があるそうです。バージョンが古すぎてもESP32-S3に対応していないので、ボードマネージャーのバージョンを変えてみてESPToolVer.4.1, 4.2, 4.3を使ってみてください。
-
タイトル
Core S3SEとENV4、miniscalesの接続が不安定です
詳しい状況の説明
こんにちは、こちらのスレッドと関係がありそうだったので返信しています。
同じような問題が生じた方や、解決策をお持ちの方はいらっしゃるでしょうか?私の手元にあるM5StackCoreS3SEに、センサーUNIT ENV4又はminiscalesをPort.Aに接続している時に問題の事象が発生します。
(ほかに、M5StickPlus2が手元にありますが、この事象は発生せず、正常に動作します)【問題の事象】UIFlowでセンサーに関するプログラムを書いて実行すると、最初は動くのですが、すぐに動かなくなってしまいます。
「すぐに」というのはパターンがいくつかあって、今のところ「プログラムをデバイスにダウンロードしたとき」「リセットしたとき」「再起動したとき」のどれかで、特に「再起動したとき」には、必ず動作しなくなります。
一度動作しなくなると、リセットや再起動では治らず、センサーユニットが繋がっていない、というエラーメッセージが表示されます。再度動作させるには、M5Burnerでファームウェアから焼き直す必要があるのですが、UIFlowのファームウェアを焼き直すだけでは滅多に動作せず、いったん他のファームウェア(私はM5Stack公式のCoreS3SE User Demo V.0.6を使っています)を焼いてからUIFlowのファームウェアを焼き直すと、前述のように最初は動きます。
しかし、すぐに動かなくなります。余談ですが、M5Burnerでファームウェアから焼き直すとき、いったん他のファームウェアを入れずに直接UIFlowのファームウェアで焼き直したときはさらに動作が不安定で、センサーユニットが繋がっていない、というエラーメッセージが出ることもありますが、タイムアウトエラーが出ることもあります。
とりあえず、miniscalesの重量をラベルに表示させるプログラムを、UIFlowの</>Pythonというところからコピペしてみました。
【ご相談】前述の事象について、なにか情報をお持ちの方がいらっしゃいましたら、どうぞご教示ください。
よろしくお願いいたします。使用しているUIFlowやArduinoライブラリのバージョン
- UIFlow 2.1.0
再現可能なコード
# ここにコードを書きます。 import os, sys, io import M5 from M5 import * from hardware import * from unit import MiniScaleUnit label0 = None i2c0 = None miniscales_0 = None def setup(): global label0, i2c0, miniscales_0 M5.begin() Widgets.fillScreen(0x222222) label0 = Widgets.Label("label0", 24, 61, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu18) i2c0 = I2C(0, scl=Pin(1), sda=Pin(2), freq=100000) miniscales_0 = MiniScaleUnit(i2c0) def loop(): global label0, i2c0, miniscales_0 M5.update() label0.setText(str(miniscales_0.weight)) if __name__ == '__main__': try: setup() while True: loop() except (Exception, KeyboardInterrupt) as e: try: from utility import print_error_msg print_error_msg(e) except ImportError: print("please update to latest firmware")
ターミナルコマンド
command
-
This post is deleted! -
すみません、昨日投稿していた続報には誤記があったので削除して書き直しています。
Core S3SEとENV4、miniscalesの接続が不安定な件の続報です(未解決)
英語の過去ログを探してみたところ、本件とは状況が異なりますが、UIFlow Ver.2.0.7のときは問題なく動いていたStickCとENV4が、UIFlow Ver.2.0.8では動作しなくなるという出来事があったようです。
その問題は、Ver.2.0.9で直ったとのことでした。
私が使っていたのはVer.2.1.0だったので、念のため過去VerのUIFlowに書き換えて試してみました。
結果は状況変わらずだったのですが、念のためご報告しておきます。 -
(続報・解決)Core S3SEとENV4、miniscalesの接続が不安定な件
本件、UIFlow Ver.2.1.0のファームウェアのバグだったらしく、Ver.2.1.1にアップデートしたら、症状は出なくなりました。
ありがとうございました。