MicroPythonファームを入れたESP32でスクリプトのアップロードに失敗するときの対処法
ESP32にMicroPythonのファームウェアを入れているときにスクリプトのアップロードに失敗することがあったので対処法について書きたいと思います。
現象
ESP32にmain.pyファイルがアップロードしてあった場合、EPS32をPCとUSBで接続するとESP32に電源が入りmain.pyが実行されます。その状態で、Pymakrを入れたVS codeのステータスバーに表示されるUploadをクリックしても下記のようにアップロードに失敗することがあります。
Upload failed.: timeout Please reboot your device manually.

たとえばmain.pyが下記のコードのような無限ループの場合はアップロードに失敗してしまいます。
while True:
if tmp != encorder.position:
tmp = encorder.position
print(encorder.position, encorder.direction)
しかし下記のような無限ループの場合はアップロードできました。
while True:
print('hello')
time.sleep(1)
最初のコードは常にif文を処理しているのでアップロードに失敗して、後のコードはsleepしているのでアップロードができるのかもしれません。
対処法
VS codeのステータスバーのRunをクリックしてStopをクリックしてからUploadをクリックするとスクリプトをアップロードできるようになりました。

記事の共有
関連記事
- ESP32のMicroPythonでロータリーエンコーダの読み取り
- ESP32とMicroPythonのADCでジョイスティックの位置をPCのPyQtGraphに表示する
- ESP32にMicroPythonファームを入れてVS codeでLチカしてみた
- VS codeのPlatformIO IDEでESP32のLチカをしてみる