מה קורה כשיש תקלה – הפתרון האולטימטיבי ל-firmware ב-esp32

הסבר על שימוש ב-esptool שהוא כלי חזק לניהול ESP32 וצריבה של קושחות אליו

פוסט זה מיועד למי שצריך לצרוב firmware (קושחה) מחדש על ESP32 ונתקע. אם עבדתם לפי אחד המדריכים שלי על ESP32, לפעמים בטח דברים לא עבדו ואחד הכשלים הכי משמעותיים תמיד הוא בחיבור הקושחה (firmware) למחשב. אני אפרט כאן דרך טובה ו-bullet proof להתחבר ל-ESP32. אני מקווה שהמדריך יסייע.

אני מניח שיש לכם ידע בטרמינל/CMD. אם אין לכם כזה, כנראה שתצטרכו לעשות סיבוב על ChatGPT/קלוד ודומיו כדי להבין אם משהו משתבש.

לינוקס/מק

כל הפקודות במדריך זה רצות בטרמינל (מק או לינוקס). בשנים האחרונות גם מק וגם לינוקס דביאן באים עם פייתון. אז לא צריכה להיות בעיה. פתחו את הטרמינל או את iterm2 שלכם ודלגו אל הסעיף הבא.

חלונות

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

חלונות שבו מוקלדת הפקודה python --version עם תוצאה כמו שצריך.

התחילו במדריך זה אחרי ההתקנה של פייתון והקלידו את כל הפקודות ב-Powershell. זה יעבוד לכם.

הנה סרטון שהכנתי שאפשר לראות במקום או לצד המדריך 🙂

התקנת esptool

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

pip install esptool
צילום של טרמינל של מק שבו הפקודה pip install esptool הורצה והתוכנה מותקנת.

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

השלב הבא הוא לוודא שהוא עובד:

esptool.py --version

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

חיבור ה-ESP32 למחשב

השלב הבא הוא לחבר את ה-ESP32 שלכם ל-USB ולהריץ:

esptool.py chip_id

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

החיבור נכשל ולא עובד.

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

A fatal error occurred: Could not connect to an Espressif device on any of the 1 available serial ports.

יש כמה סיבות לתקלה בשלב זה. התקלה היא ש-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. המדריך הזה אמור לעזור לכם כשדברים מפסיקים לעבוד או לא עובדים מההתחלה.

פוסטים נוספים שכדאי לקרוא

בינה מלאכותית

להריץ ממשק של open-webui על הרספברי פיי

להפעיל ממשק של צ׳אט ג׳יפיטי שאפשר לגשת אליו מכל מחשב ברשת הביתית על רספברי פיי עם מודל בשם tinydolphin שרץ על רספברי פיי.

גלילה לראש העמוד