Workaround voor het probleem met macOS 10.15 Catalina dat niet compatibel is met esptool.py en M5StickC

Wie zijn (of haar) Mac recentelijk naar macOS 10.15 Catalina heeft geüpgraded komt tot de vervelende conclusie dat het 'branden' van nieuwe firmware op een ESP32 (en meer specifiek een M5StickC) niet meer werkt: het gebruikte esptool.py heeft een timingsprobleem in combinatie met macOS Catalina, waardoor de communicatie bij het uploaden van nieuwe firmware spaak loopt. Er bestaat echter een tijdelijke oplossing.

De M5StickC wordt voorzien van nieuwe firmware middels het M5Burner programma. Dat programma maakt onder de motorkap gebruik van het programma esptool.py, dat door Espressif Systems wordt ondersteund. Het nieuwe macOS Catalina levert in combinatie met esptool.py en de M5StickC problemen op, met meldingen die lijken op onderstaande:

esptool.py v2.5.0
Serial port COM3
Connecting........_____....._____....._____....._____....._____....._____....._____

A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

Het probleem wordt beschreven in het M5Stack forum, met als titel M5StickC usb driver and Catalina. Uit de reacties wordt duidelijk dat er geen directe oplossing is in termen van softwareaanpassingen: het wachten is op een nieuwe versie van esptool.py (versie hoger dan 2.5.0) die wél compatibel is met macOS Catalina.

Een tijdelijke oplossing is echter, om de timing problemen een handje te helpen door de G0 pin met GND te verbinden ten tijde van de firmware upgrade (en alle andere momenten waarop nieuwe software op de M5StickC/ESP32 met esptool.py moet worden geplaatst. Met een paperclip (klein formaat) of verbindingskabeltje is dat eenvoudig gepiept.

Kabeltje tussen G0 en GND doet wonderen bij het flashen en firmware upgrades