課題
ESP32にmicroPythonを組み込み後、ampyでファイル一覧を取得(lsコマンド)したり、アップロード(putコマンド)したりできなくなりました。(ESP32には何も結線していません)
ファイルを転送できるようにしたいです。
環境
[Software]
・Windows10 Pro (version=1909)
・microPython firmware (http://micropython.org/download/esp32/esp32-idf3-20191220-v1.12.bin)
・WinPython(64bit版)(pythonのバージョンは3.8.3)
(https://sourceforge.net/projects/winpython/files/WinPython_3.8/3.8.3.0/Winpython64-3.8.3.0.exe)
--> python -m pip install --upgrade pipで最新版に(version 20.2.2)
--> python -m pip install esptool (version 2.8)
--> python -m pip install adafruit-ampy (version 1.0.7)
[Hardawre]
・USBケーブル
・ESPr Developer 32 (https://www.switch-science.com/catalog/3210/)
[参考にした書籍]
IoT開発スタートブック(ESP32でクラウドにつなげる電子工作を始めよう)の第5章
ISBN:9784297107369
やったこと
- ESP32のメモリをフラッシュ
python -m esptool --port COM8 erase_flash
esptool.py v2.8
Serial prot COM8
Connecting...
Detecting chip type ...esp32
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 3c:71:bf:79:ed:cc
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 8.8s
Hard resetting via RTS pin...
2.Firmwareの書き込み
python -m esptool --port COM8 --chip esp32 write_flash -z 0x0000 esp32-idf3-20191220-v1.12.bin
esptool.py v2.8
Serial port COM8
Connecting ...
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 3c:71:bf:79:ed:cc
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 1247280 bytes to 787794...
Wrote 1247280 bytes (787794 compressed) at 0x00000000 in 70.0 seconds(effective 142.5kbit/s) ...
Hash of data verified
Leaving...
Hard resetting via RTS pin...
3.デバイスマネージャで、接続したESP32のCOMポート番号を確認
デバイスマネージャには直ぐにESP32のCOMポートが現れます。
4.ESP32内メモリのファイルリストを取得しようとした
ampy --port COM8 ls
ここで応答がなくなる。ケーブルを引き抜くと以下のメッセージが出る。
Traceback (most recent call last):
File "c:\wpy64-3830\python-3.8.3.amd64\lib\runpy", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\wpy64-3830\python-3.8.3.amd64\lib\runpy", line 87, in run_code
exec(code, run_globals)
File "c:\wpy64-3830\python-3.8.3.amd64\scripts\ampy.exe_main.py", line 7, in <module>
File "c:\wpy64-3830\python-3.8.3.amd64\lib\site-packages\click\core.py", line 829m in call
return self.main(*args, **kwargs
)
File "c:\wpy64-3830\python-3.8.3.amd64\lib\site-packages\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "c:\wpy64-3830\python-3.8.3.amd64\lib\site-packages\click\core.py", line1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "c:\wpy64-3830\python-3.8.3.amd64\lib\site-packages\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, ※※ctx.params)
File "c:\wpy64-3830\python-3.8.3.amd64\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs
)
File "c:\wpy64-3830\python-3.8.3.amd64\lib\site-packages\ampy\cli.py", line 194 in ls
for f in board_files.ls(directory, long_format=log_format, recursive=recursive):
File "c:\wpy64-3830\python-3.8.3.amd64\lib\site-packages\ampy\files.py", line 162, in ls
self._pyboard.enter_raw_repl()
File "c:\wpy64-3830\python-3.8.3.amd64\lib\site-packages\ampy\pyboard.py", line 189, in enter_raw_repl
data = self.read_until(1, b'raw REPL; CTRL-B to exit\r\n')
File "c:\wpy64-3830\python-3.8.3.amd64\lib\site-packages\ampy\pyboard.py", line 162, in read_until
elif self.serial.inWaiting() > 0:
File "c:\wpy64-3830\python-3.8.3.amd64\lib\site-packages\serial\serialutil.py", line 590, in inWaiting
return self.in_waiting
File "c:\wpy64-3830\python-3.8.3.amd64\lib\site-packages\serial\serialwin32.py", line 257, in in_waiting
raise SerialException("ClearCommError failed (PermissionError(13, 'アクセスが拒否されました', None 5))
USBのポートを変えたり、使うUSBケーブルを変えたりもしましたが、結果は同じでした。
違うESP32ボードでも試みましたが、結果は同じでした。
どうすればこの課題を解決できるでしょうか。