ArduinoIDE
ESP32
ESP-WROOM-32

Arduino core for the ESP32(mac版)のget.pyで発生したエラーのシュート

ESP32 core for the ESP32のmac版を導入してみる

Arduino core for the ESP32ライブラリをgitで入手します。

MacBook-Pro:espressif mgr206$ git clone https://github.com/espressif/arduino-esp32.git esp32
Cloning into 'esp32'...
remote: Counting objects: 7750, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 7750 (delta 0), reused 4 (delta 0), pack-reused 7741
Receiving objects: 100% (7750/7750), 114.40 MiB | 2.17 MiB/s, done.
Resolving deltas: 100% (4504/4504), done.

toolsディレクトリ内にあるget.pyを実行します。

MacBook-Pro:tools mgr206$ python get.py
System: Darwin, Info: Darwin-16.7.0-x86_64-i386-64bit
Platform: x86_64-apple-darwin
Downloading xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
Done
Extracting xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
Downloading esptool-da31d9d-macos.tar.gz
Done
Extracting esptool-da31d9d-macos.tar.gz
Downloading mkspiffs-0.2.2-arduino-esp32-osx.tar.gz
Traceback (most recent call last):
  File "get.py", line 148, in <module>
    get_tool(tool)
  File "get.py", line 103, in get_tool
    urlretrieve(url, local_path, report_progress)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 98, in urlretrieve
    return opener.retrieve(url, filename, reporthook, data)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 245, in retrieve
    fp = self.open(url, data)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 213, in open
    return getattr(self, name)(url)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 443, in open_https
    h.endheaders(data)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1049, in endheaders
    self._send_output(message_body)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 893, in _send_output
    self.send(msg)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 855, in send
    self.connect()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1274, in connect
    server_hostname=server_hostname)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 352, in wrap_socket
    _context=self)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 579, in __init__
    self.do_handshake()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 808, in do_handshake
    self._sslobj.do_handshake()
IOError: [Errno socket error] [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590)

ファイル「mkspiffs-0.2.2-arduino-esp32-osx.tar.gz」のダウンロードでエラーになりました。
webで検索した結果、同じエラーに遭遇した方がいるようで、直接ダウンロードし、get.pyを再度実行して解決したとのポストがあったので試してみます。

ファイル「mkspiffs-0.2.2-arduino-esp32-osx.tar.gz」のダウンロード先

get.pyを読むとgitでcolneしたesp32直下のディレクトリpackageのあるファイル「package_esp32_index.template.json」に記載されていることがわかりました。
jsonファイルを見ると、ダウンロード先は下記でした。

https://github.com/igrr/mkspiffs/releases/download/0.2.2/mkspiffs-0.2.2-arduino-esp32-osx.tar.gz"

mkspiffs-0.2.2-arduino-esp32-osx.tar.gzをダウンロードしてget.pyのあるディレクトリtools配下のdistディレクトリに保存します。

get.pyの再実行

再度get.pyを実行します。

MacBook-Pro:tools mgr206$ python get.py
System: Darwin, Info: Darwin-16.7.0-x86_64-i386-64bit
Platform: x86_64-apple-darwin
Tool xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz already downloaded
Extracting xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
Tool esptool-da31d9d-macos.tar.gz already downloaded
Extracting esptool-da31d9d-macos.tar.gz
Tool mkspiffs-0.2.2-arduino-esp32-osx.tar.gz already downloaded
Extracting mkspiffs-0.2.2-arduino-esp32-osx.tar.gz
Renaming mkspiffs-0.2.2-arduino-esp32-osx to mkspiffs
Done

今度は問題なくget.pyが実行され正常終了しました。

Arduino IDEの動作確認

Arduino IDEを起動して動作確認をします。手順は省略し、結果のみ記載します。
Arduino core for the ESP32の他にBLEライブラリも導入しました。テスト用にスケッチ例のBLE_notifyを選択します。
秋月電子のESP32-DevKitC ESP-WROOM-32開発ボードに書き込むことができました。