פוסט זה מיועד למי שצריך לצרוב firmware (קושחה) מחדש על ESP32 ונתקע. אם עבדתם לפי אחד המדריכים שלי על ESP32, לפעמים בטח דברים לא עבדו ואחד הכשלים הכי משמעותיים תמיד הוא בחיבור הקושחה (firmware) למחשב. אני אפרט כאן דרך טובה ו-bullet proof להתחבר ל-ESP32. אני מקווה שהמדריך יסייע.
אני מניח שיש לכם ידע בטרמינל/CMD. אם אין לכם כזה, כנראה שתצטרכו לעשות סיבוב על ChatGPT/קלוד ודומיו כדי להבין אם משהו משתבש.
לינוקס/מק
כל הפקודות במדריך זה רצות בטרמינל (מק או לינוקס). בשנים האחרונות גם מק וגם לינוקס דביאן באים עם פייתון. אז לא צריכה להיות בעיה. פתחו את הטרמינל או את iterm2 שלכם ודלגו אל הסעיף הבא.
חלונות
אין שום בעיה לבצע את כל הפעולות שיש פה באמצעות חלונות כמובן עם אותן הפקודות בדיוק. אני הייתי ממליץ לעבוד על Powershell שזמין בכל חלונות והוא תחליף מעולה ל-cmd. איך מפעילים אותו? כפתור ימני על אייקון החלונות (בחלונות 11) ואז Run Powershell. זה בדיוק כמו cmd ויאפשר לכם להקליד פקודות מסודרות. תצטרכו גם להתקין פייתון – מורידים ומפעילים דרך האתר שלהם. שימו לב לסמן את הכנסת Python ל-PATH. כדי לדעת שסביבת העבודה שלכם מוכנה, אחרי התקנת פייתון הקלידו python –version ב-Powershell.

התחילו במדריך זה אחרי ההתקנה של פייתון והקלידו את כל הפקודות ב-Powershell. זה יעבוד לכם.
הנה סרטון שהכנתי שאפשר לראות במקום או לצד המדריך
התקנת esptool
מדובר בכלי מצוין של Espressif שהוא בקוד פתוח. צריך להתקין והוא כלי פייתוני שרץ בשורת הפקודה. מתקינים אותו עם pip באופן הזה:
pip install esptool

אם מותקן לכם פייתון על המחשב, השורה הזו תעבוד. אם אתם רוצים קצת יותר לדעת על pip, כדאי לקרוא את הפוסט הזה שלי שמסביר על זה. בסופו של דבר מיקרופייתון זה פייתון וחייבים להכיר את הסביבות השונות.
השלב הבא הוא לוודא שהוא עובד:
esptool.py --version
יוצא מספר? מעולה. זה אומר שהכלי מותקן ועובד. אם לא, צריך להבין למה מהודעות השגיאה. אם קיבלתם הודעת שגיאה, נסו להדביק אותה בתגובות ואני או מגיבים אחרים יוכלו לנסות ולעזור.
חיבור ה-ESP32 למחשב
השלב הבא הוא לחבר את ה-ESP32 שלכם ל-USB ולהריץ:
esptool.py chip_id
הקוד הזה מבצע סריקה של כל החיבורים ואז מבצע חיבור ראשוני אל ה-ESP32. ככה זה אמור להראות:

החיבור נכשל ולא עובד.
יש סיכוי שחיברתם את המיקרובקר, הרצתם את הקוד ואתם מקבלים שגיאה. משהו בסגנון הזה:

יש כמה סיבות לתקלה בשלב זה. התקלה היא ש-esptool לא מצא את ה-ESP32. מה עושים?
פתרון ראשון: ריסטארט. לא תאמינו כמה דברים זה פותר.
פתרון שני: האם יש אור אדום ב-ESP32 שמראה על מתח? לא תאמינו כמה פעמים שברתי את הראש כשהייתי צריך פשוט להכניס עוד קצת את הכבל או שהחיבור היה רופף.
פתרון שלישי: החליפו כבל לכבל USB איכותי. לא תאמינו כמה כבלים יכולים להיות גרועים ולמרות שהם מעבירים חשמל הם לא מצליחים להעביר נתונים או עושים את זה באופן גרוע בגלל חיבורים תקולים.
פתרון רביעי: נסו עם ESP32 אחר. יש לפעמים תקלות ו-ESP32 תקולים.
פתרון חמישי: אולי יש לכם התקן אבטחה שחוסם את החיבור הזה ל-ESP32. נסו אולי ממחשב אחר.
מחיקת ה-Firmware הקיים
אם הכל עובד הבא השלב הבא הוא לנסות ולצרוב את ה-Firmware שאתם רוצים. ליתר בטחון, מומלץ למחוק את מה שיש שם עכשיו עם השורה:
esptool.py erase_flash
או, אם רוצים להיות יותר ספציפיים:
esptool.py --chip esp32 erase_flash
לא צריך ללחוץ על שום כפתור במיקרובקר כדי שמשהו יקרה. אם הכל תקין נחכה עד שתהיה מחיקה. זה שלב שפשוט ממזער בעיות למרות שהוא לא נדרש. אני כן מבצע אותו. ככה זה נראה בקונסולה שלי.

צריבת Firmware חדש
זה השלב האחרון. אני משתמש בדרך כלל בפקודה הזו:
esptool.py --baud 460800 write_flash 0x1000 ~/Downloads/ESP32_GENERIC-20241129-v1.24.1.bin
שימו לב שכאן שמתי את הקובץ שהורדתי ל-Downloads. אתם יכולים לבחור איזו כתובת שאתם רוצים. יקח מעט זמן אבל זה יסתיים.
חיבור עם Arduino Lab for MicroPython IDE
זה מצליח! אבל מה עם החיבור עם Thonny? אם הוא משתבש מסיבה מסוימת, אפשר להשתמש בעורך אלטרנטיבי Arduino Lab for MicroPython IDE – אחרי הצריבה של הקושחה. יש להוריד אותו (לחלונות או למק/לינוקס). להפעיל אותו ואז לחבר את ה-ESP32 וללחוץ על אייקון חיבור.

בלי ללחוץ על כפתורים במיקרובקר או בלגן אחר. רק ללחוץ על הכפתור בתוכנה. זה הכל. ואז החיבור יהיה מיידי.
סיכום
לסיכום, בשנים האחרונות יש התקדמות מאד גדולה בחיבור ובנוחות של מיקרובקרים ועבודה איתם. אבל עדיין זו עבודת low level ודברים נוטים להתפרק ולא לעבוד. נכון, כלים כמו Thonny וכלים אחרים מפשטים את העבודה אבל לפעמים זה לא עובד וצריכים להשתמש ב-CLI. המדריך הזה אמור לעזור לכם כשדברים מפסיקים לעבוד או לא עובדים מההתחלה.
3 תגובות
במקום "esptool.py –version" צריך להיות "esptool.py version"
אם יש לכם דפדפן כרום [דווקא כרום, כי יש לו הרשאות גישה ל USB, ולא סתם מבוססי כרומיום אחרים], הנה לינק לאיפוס [ואפשר גם לטעון firmware]
https://espressif.github.io/esptool-js/
זהו לינק רשמי של אספרסיף.
תהנו.
אגב, אני כבר תקופה ארוכה נטשתי את Arduino IDE לטובת תוסף מצויין ב VS Code בשם Arduino Maker Workshop
ותקופה קצרה שאני מתכנת עם esp-idf [גם באמצעות התוסף שלהם ל VS Code].
מרגיש שזו קפיצת דרך מ"צעצועים" ליצירת מוצר מקצועי.
תודה רן.
לא הצלחתי להתחבר לESP32 והייתי תקוע.
בסוף הסתבר שהמודול היה דפוק, החלפתי והכל עבד לפי הספר.
תודה על הפוסט! בא לי בול בזמן