macOS Big SurでESP8266へ書き込むと発生するエラーへの対処法

Arduinoアプリのエラーログ画面 (ver.1.8.13)

タイトルの通り、macOS Big Sur (ver. 11.1)へアップデート後、Arduinoを使ってESP8266へプログラムを書き込み(アップロード)しようとした際、次のエラーが発生しました。

Executable segment sizes:
IROM   : 327812          - code in flash         (default or ICACHE_FLASH_ATTR) 
IRAM   : 28100   / 32768 - code in IRAM          (ICACHE_RAM_ATTR, ISRs...) 
DATA   : 1252  )         - initialized variables (global, static) in RAM/HEAP 
RODATA : 3348  ) / 81920 - constants             (global, static) in RAM/HEAP 
BSS    : 25512 )         - zeroed variables      (global, static) in RAM/HEAP 
Sketch uses 360512 bytes (34%) of program storage space. Maximum is 1044464 bytes.
Global variables use 30112 bytes (36%) of dynamic memory, leaving 51808 bytes for local variables. Maximum is 81920 bytes.
pyserial or esptool directories not found next to this upload.py tool.
An error occurred while uploading the sketch

ポイントとしては次の行のように、シリアル通信の際にpyserialかesptoolが見つからない、と言っている模様。 調べると、フォーラムですでに話題になっており、juansslさんの投稿そのままで解決した。回避方法は次のとおり。

~/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/pyserial/serial/tools/list_ports_osx.pyの29,30行目をコメントアウトし、続けてコードを追記。次のようになればOK。

list_ports_osx.py

…
# iokit = ctypes.cdll.LoadLibrary(ctypes.util.find_library('IOKit'))
# cf = ctypes.cdll.LoadLibrary(ctypes.util.find_library('CoreFoundation'))
iokit = ctypes.cdll.LoadLibrary('/System/Library/Frameworks/IOKit.framework/IOKit')
cf = ctypes.cdll.LoadLibrary('/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation')
…
これで保存し、再書き込み(再アップロード)すると、無事エラーも無く動作しました。どうやら、ESP8266のコアバージョンが古すぎることが問題のようで、今後アップデートがリリースされるまで(いつになるでしょうか…)このような形で対処するしかない様子。
6950657141462069495 https://www.storange.jp/2020/12/macos-big-suresp8266.html https://www.storange.jp/2020/12/macos-big-suresp8266.html macOS Big SurでESP8266へ書き込むと発生するエラーへの対処法 2020-12-30T14:03:00+09:00 https://www.storange.jp/2020/12/macos-big-suresp8266.html Hideyuki Tabata 200 200 72 72