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.

The Fixer
Van harte bedankt om mij op de goede weg te zetten op dit OSx probleem te omzeilen.
Op onderstaande pagina staan een firmware updater voor de communicatie chip in the M5Stick die het probleem oplost, geen brug meer nodig.
https://community.m5stack.com/topic/1591/m5stickc-atom-on-macos-catalina-can-t-upload-esp32-timed-out-waiting-for-packet-header-solution