先前買了一個 NodeMCU V3,覺得很好用,想說 ESP32跟 ModeMCU 的差異不大,加上具有藍芽功能,就在需要零件時,一起在拍賣網站購買一個來體驗一下實作的過程。結果等了將近兩個星期才拿到,真是有點曲折。
開箱測試一下 ESP32,結果一直出現「 Failed to connect to ESP32: Timed out waiting for packet header」,不知道是不是運送過程中弄壞了?上網找了一下,看看有沒有人遇到這個情況,發現還蠻多人都有這個問題。要解決這個問題的方法有兩個:一是在 Arduino IDE介面編譯上傳出現 Connecting 時,按住 ESP32 板上的 Boot鍵 (下圖右上方),等到連接上了再放開。另一種方法是外接一個1-10 uF的電容。
ESP32的各模組,如下圖:(來源:esp32.net)
在談到第二種解決方法之前,要先在 Arduino IDE 上安裝 ESP32 的 Board Manager (開發板管理員),安裝的方法如下:
(1) 從 IDE的下拉選單,選擇 [File] → [Preference] 在 [Additional Boards Manager URLs:]的右方
有一個按鍵(如下圖紅色圓圈處),開啟的視窗,再增加一行。(如下圖)
按下[OK]後,回到主畫面。再選擇 [Tools] → [Boards:...] → [Boards Manager],會開啟以下視窗,輸入 ESP32。看到以下視窗後,按下右下角紅色圓圈處的 [Install]。
安裝完成後,回到主畫面,選擇 ESP32 系列的開發板,以我的開發板為例,選擇 [Node32s],可以正常運作,或是選擇其他類型的開發板。
測試結果正常,由於 EN 和 GND 引腳彼此相距很遠,我將電容連接到 EN 和 ESP32 晶片的GND之間,如本篇文章的第一張圖。焊接好之後測試一下,焊接正確,在上傳程式碼時,就不需要按下BOOT按鈕。會出現如下的正常畫面:
開箱測試一下 ESP32,結果一直出現「 Failed to connect to ESP32: Timed out waiting for packet header」,不知道是不是運送過程中弄壞了?上網找了一下,看看有沒有人遇到這個情況,發現還蠻多人都有這個問題。要解決這個問題的方法有兩個:一是在 Arduino IDE介面編譯上傳出現 Connecting 時,按住 ESP32 板上的 Boot鍵 (下圖右上方),等到連接上了再放開。另一種方法是外接一個1-10 uF的電容。
(1) 從 IDE的下拉選單,選擇 [File] → [Preference] 在 [Additional Boards Manager URLs:]的右方
有一個按鍵(如下圖紅色圓圈處),開啟的視窗,再增加一行。(如下圖)
https://dl.espressif.com/dl/package_esp32_index.json
按下[OK]後,回到主畫面。再選擇 [Tools] → [Boards:...] → [Boards Manager],會開啟以下視窗,輸入 ESP32。看到以下視窗後,按下右下角紅色圓圈處的 [Install]。
安裝完成後,回到主畫面,選擇 ESP32 系列的開發板,以我的開發板為例,選擇 [Node32s],可以正常運作,或是選擇其他類型的開發板。
[解決Time out方法]
要解決 ESP32 無法自動進入上傳模式,第二個方法是在 EN 接腳和 GND 之間,連接一個10 uF的電解電容。我先用麵包板連接,測試可以正常工作的話,再將10 uF電解電容焊接到電路板上。測試結果正常,由於 EN 和 GND 引腳彼此相距很遠,我將電容連接到 EN 和 ESP32 晶片的GND之間,如本篇文章的第一張圖。焊接好之後測試一下,焊接正確,在上傳程式碼時,就不需要按下BOOT按鈕。會出現如下的正常畫面:
[參考資料]
- Randomnerd Tutorials: Failed to connect to ESP32: Timed out waiting for packet header
- Last Minute Eengineers: Insight Into ESP32 Features & Using It With Arduino IDE
多謝!看到你的方法才解決了我的問題
回覆刪除張貼留言