MicroPythonファームを入れたESP32でスクリプトのアップロードに失敗するときの対処法

Share on:

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が下記のコードのような無限ループの場合はアップロードに失敗してしまいます。

1while True:
2    if tmp != encorder.position:
3        tmp = encorder.position
4        print(encorder.position, encorder.direction)

しかし下記のような無限ループの場合はアップロードできました。

1while True:
2    print('hello')
3    time.sleep(1)

最初のコードは常にif文を処理しているのでアップロードに失敗して、後のコードはsleepしているのでアップロードができるのかもしれません。

対処法

VS codeのステータスバーのRunをクリックしてStopをクリックしてからUploadをクリックするとスクリプトをアップロードできるようになりました。

関連記事