# esp8266 esp-01 512K flash (含稅) $90
收到貨後一直沒時間測試, 昨晚拿出來拆封, 按照之前第一片板子的接線進行測試, 用 Realterm 連線發現 AT 韌體是比較新的 0.9.5 版 (Baud rate 是 115200), 因為 0.9.2.2 版比較穩 (參考 "深入淺出 Wifi 晶片 ESP8266 with Arduino"), 而且預設 9600 Baud rate 跟 Arduino 一樣, 所以就進行了韌體更新. 接線方式參考之前的 AT 指令測試文 :
# ESP8266 WiFi 模組 AT command 測試
唯一的不同是, 更新韌體必須將 GPIO0 腳接地, 其餘相同, 就是 ESP8266 TX/RX 接 PL2303HX 的 RX/TX, 而且 ESP8266 的 VCC 必須接 3.3V, 絕對不能接 5V, 否則會燒毀 (TX/RX 卻可直接連 PL2303HX, 因為 PL2303HX 的 TX 輸出 3.3V).
接線方式 :
接線方式 :
ESP8266 更新韌體接線 :
VCC - 接麵包板專用電源板之 3.3V
URXD - 接 PL2302HX 的 TXD (綠線)
UXTD - 接 PL2302HX 的 RXD (白線)
CH_PD - 接麵包板專用電源板之 3.3V
GPIO0 - 接 GND (燒錄完成須拔除)
PL2303HX 接線 :
+5V(紅線) - 不可接 (會讓 ESP8266 燒毀)
GND(黑線)- 接 ESP8266 與 3.3V 電源板的 GND (三個 GND 共接)
TXD(綠線) - 接 ESP8266 的 URXD
RXD(白線)- 接 ESP8266 的 UXTD
+5V(紅線) - 不可接 (會讓 ESP8266 燒毀)
GND(黑線)- 接 ESP8266 與 3.3V 電源板的 GND (三個 GND 共接)
TXD(綠線) - 接 ESP8266 的 URXD
RXD(白線)- 接 ESP8266 的 UXTD
此圖我是用 Fritzing 搭配 Picpick 抓圖軟體繪製, 因為 Fritzing 裡面沒有 ESP8266 與 PL2302HX 上傳器元件圖形, PL2302HX 我是自行繪製 :
藍燈停止閃爍後, Log 最底下會一直出現 "Failed to leave Flash mode" (拉霸要往下拉才看得到這一行字) :
看來似乎沒有成功, 其實是成功的, 這是軟體的 Bug, 參考 :
# ESP8266: Reflash Dance!
"Note that the progress pane indicated "Failed to leave flash mode". That's probably because the flashing program doesn't have any way to bring the ESP8266 board out of programming mode. But it's not really a problem provided the contents of the flash chip were rewritten."
燒錄完畢後, 將 3.3V 電源板 POWER OFF, 拔掉 ESP8266 的 GPIO0 接到 GND 的線, 重新送電後, 用 Realterm 下 AT 指令確認韌體版本已經更新 :
AT+GMR
0018000902
OK
20150827 補充 :
此賣家有新產品, 內存增為兩倍 1M, 一顆 100 元 :
# esp8266 esp-01 1M flash $100
參考 :
# ESP8266: Reflash Dance!
2018-06-16 補充 :
感謝李明軒兄留言分享, 他將燒錄檔放在有中文目錄名稱路徑下導致燒錄失敗, 之前我也遇到過, 故在此特別提醒, bin 映像檔務必放在全英文路徑下才不會燒錄失敗.
ESP8266 的 Fritzing 元件圖檔我是從下列 Github 網站下載 (下載第一個檔案 ESP8266-01 WiFi Module.fzpz, 按 Raw 鈕即可下載) :
# https://github.com/ydonnelly/ESP8266_fritzing
# 【技術教學】打造Wifi遙控車(之一):使用 ESP8266進行 Wifi無線通訊
至於 5V/3.3V 麵包板專用穩壓電源板子的圖樣, 在 Fritzing 裡找不到我買的這塊市面上常見的 YwRobot 板子圖樣, 但可在 Fritzing 中搜尋 "Breadboard power supply board" 或 "Power conditioning" 找到這塊 PRT-09319 的板子代替.
接好線後, 將 PL2303HX 上傳線插入電腦 USB, 按下 3.3V 電源板 Power 鍵對 ESP8266 供電, 可見黃色 LED 恆亮, 藍色 LED 閃一下即滅. 使用 Realterm 軟體與 ESP8266 用 AT 指令溝通, 發現都是亂碼, 經嚐試錯誤發現我這次買的這批是舊版韌體, 要用 115000 Baud rate 才會看到 OK 出現.
下 AT+GMR 顯示 SDK 版本是比較新的 0.9.5 版 :
AT+GMR
AT version:0.21.0.0
SDK version:0.9.5
OK
下 AT+CIOBAUD 顯示 ERROR :
AT+CIOBAUD?
ERROR
可見該韌體不認得此指令. 下 AT+RST 回應如下訊息 :
AT+RST
OK
ets Jan 8 2013,rst cause:4, boot mode:(3,7)
wdt reset
load 0x40100000, len 816, room 16
tail 0
chksum 0x8d
load 0x3ffe8000, len 788, room 8
tail 12
chksum 0xcf
ho 0 tail 12 room 4
load 0x3ffe8314, len 288, room 12
tail 4
chksum 0xcf
csum 0xcf
2nd boot version : 1.2
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size : 4Mbit
jump to run user1
rl
A
-Thinker Technology Co. Ltd.
invalid
0.9.5 版好處是 CIFSR 會列出 MAC 位址 :
AT+CIFSR
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"1a:fe:34:f3:0a:8c"
參考 "阿喵就像家" 寫的這篇 :
# 深入淺出 Wifi 晶片 ESP8266 with Arduino
原來可以用 AT+UART=9600,8,1,0,0 指令來更改 Baud rate :
AT+UART=9600,8,1,0,0
OK
改完後 Realterm 也要更改連線速率為 9600 才行, 否則會亂碼. 不過可能因為 CWMODE 預設為 2 (AP), CWLAP 與 CWJAP 都無法使用 (CWMODE 須為 1/3 才行) :
AT+CWLAP
ERROR
AT+CWJAP="EDIMAX-tony","1234567890"
ERROR
因為以上穩定等問題, 所以還是更新韌體到 0.9.2.2 版為宜 (應該不叫更新, 而是退回).
下 AT+GMR 顯示 SDK 版本是比較新的 0.9.5 版 :
AT+GMR
AT version:0.21.0.0
SDK version:0.9.5
OK
下 AT+CIOBAUD 顯示 ERROR :
AT+CIOBAUD?
ERROR
可見該韌體不認得此指令. 下 AT+RST 回應如下訊息 :
AT+RST
OK
ets Jan 8 2013,rst cause:4, boot mode:(3,7)
wdt reset
load 0x40100000, len 816, room 16
tail 0
chksum 0x8d
load 0x3ffe8000, len 788, room 8
tail 12
chksum 0xcf
ho 0 tail 12 room 4
load 0x3ffe8314, len 288, room 12
tail 4
chksum 0xcf
csum 0xcf
2nd boot version : 1.2
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size : 4Mbit
jump to run user1
rl
A
-Thinker Technology Co. Ltd.
invalid
0.9.5 版好處是 CIFSR 會列出 MAC 位址 :
AT+CIFSR
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"1a:fe:34:f3:0a:8c"
參考 "阿喵就像家" 寫的這篇 :
# 深入淺出 Wifi 晶片 ESP8266 with Arduino
原來可以用 AT+UART=9600,8,1,0,0 指令來更改 Baud rate :
AT+UART=9600,8,1,0,0
OK
改完後 Realterm 也要更改連線速率為 9600 才行, 否則會亂碼. 不過可能因為 CWMODE 預設為 2 (AP), CWLAP 與 CWJAP 都無法使用 (CWMODE 須為 1/3 才行) :
AT+CWLAP
ERROR
AT+CWJAP="EDIMAX-tony","1234567890"
ERROR
因為以上穩定等問題, 所以還是更新韌體到 0.9.2.2 版為宜 (應該不叫更新, 而是退回).
依照克里斯這篇文章所述 :
下載 ESP8255 的燒錄程式與新版韌體 :
解開 ZIP 檔後, 執行 esp8266_flasher.exe 程式, 按 BIN 鈕點選所下載的 0.9.2.2 新版韌體, 輸入正確之 COM 埠 (這很重要), 按 Download 鍵即開始更新, 這時 ESP01 模組上的藍燈會持續快速閃爍 :
藍燈停止閃爍後, Log 最底下會一直出現 "Failed to leave Flash mode" (拉霸要往下拉才看得到這一行字) :
Writing at 0x0007c400... (97 %)
Writing at 0x0007c800... (98 %)
Writing at 0x0007cc00... (98 %)
Writing at 0x0007d000... (98 %)
Writing at 0x0007d400... (98 %)
Writing at 0x0007d800... (98 %)
Writing at 0x0007dc00... (99 %)
Writing at 0x0007e000... (99 %)
Writing at 0x0007e400... (99 %)
Writing at 0x0007e800... (99 %)
Writing at 0x0007ec00... (99 %)
Leaving...
Failed to leave Flash mode 看來似乎沒有成功, 其實是成功的, 這是軟體的 Bug, 參考 :
# ESP8266: Reflash Dance!
"Note that the progress pane indicated "Failed to leave flash mode". That's probably because the flashing program doesn't have any way to bring the ESP8266 board out of programming mode. But it's not really a problem provided the contents of the flash chip were rewritten."
燒錄完畢後, 將 3.3V 電源板 POWER OFF, 拔掉 ESP8266 的 GPIO0 接到 GND 的線, 重新送電後, 用 Realterm 下 AT 指令確認韌體版本已經更新 :
AT+GMR
0018000902
OK
查詢連線 Baud rate 為 9600 :
AT+CIOBAUD?
+CIOBAUD:9600
OK
這樣就可以跟 Arduino 介接了. 這次實驗得到一個經驗, ESP8266 的 3.3V 電源要足, 之前用了一個已用很久的 9V 方形電池對 3.3V 電源板供電, 送電後 ESP8266 電源燈閃一下就沒了, 根本無法與電腦連線. 所以 ESP8266 的 LED 電源燈一定要亮亮的才能維持穩定的 WiFi 連線.
20150827 補充 :
此賣家有新產品, 內存增為兩倍 1M, 一顆 100 元 :
# esp8266 esp-01 1M flash $100
參考 :
# ESP8266: Reflash Dance!
2018-06-16 補充 :
感謝李明軒兄留言分享, 他將燒錄檔放在有中文目錄名稱路徑下導致燒錄失敗, 之前我也遇到過, 故在此特別提醒, bin 映像檔務必放在全英文路徑下才不會燒錄失敗.
想請問esp8266 e12 如何燒入韌體這一塊>>>http://www.zhencheap.com/14483.htm
回覆刪除這是 NodeMCU 板, 我有一塊, 但是還沒時間玩, 等 Arduino 玩透了再來. 可參考這兩篇 :
回覆刪除http://code.unumobile.com/wf8266r/tutorials/esp8266/00_FM
http://ruten-proteus.blogspot.tw/2015/05/esp8266-lua-nodemcu-firmware-update.html
老師,我有按照你的燒錄方法來做,也有燒錄至99%,也出現了failed to leave
回覆刪除Flash mode,但是在 realterm 上面,輸入 AT或 AT+GMR 皆看到亂碼,請問 realterm 是哪裡要設定 ?,謝謝指導
Baud rate 設錯就會出現怪碼, 參考這篇 :
回覆刪除http://yhhuang1966.blogspot.tw/2015/07/esp8266-wifi-at-command.html
老師再請問一下,燒入esp8266韌體時,需將GPIO0接地,但是如果要把自己在auduino IDE寫好的程式放入esp8266內,方法也是相同嗎?,這樣先前燒錄的韌體會被蓋掉嗎 ?
回覆刪除蟹蟹指導
老師再請問一下,燒入esp8266韌體時,需將GPIO0接地,但是如果要把自己在auduino IDE寫好的程式放入esp8266內,方法也是相同嗎?,這樣先前燒錄的韌體會被蓋掉嗎 ?
回覆刪除謝謝指導
註: 我是用 UART 接 ESP8266-01,單純使用esp8266 來當 IOT 使用, 並沒有使用 arduion
會蓋掉裡面 AT 的韌體喔! ESP8266 Stand alone 用的函式庫應該是不同的.
回覆刪除請問在更新韌體時按download時出現"connecting ....
回覆刪除[Errno 22] invalid mode ('rb') or filename"
是出了什麼問題?
您好! 抱歉我沒遇到過, 不過看起來似乎是權限問題, 此軟體可能是用 Python 寫的, 建議您用管理員權限執行看看.
回覆刪除我要請問一下現在esp8266 1.5.4版本還需要更新回去嗎?
回覆刪除應該不用, 新的韌體說不定更好更穩, 有空我也來刷新韌體看看.
回覆刪除老師,我嘗試好多版本更新,全都更新完,但是我用realterm的時候baudrate選哪一個都沒用,打AT都是沒反應,為什麼呢?
回覆刪除您是燒錄 AT 韌體嗎?
回覆刪除老師您好,我在使用esp8266跟arduino去跟wifi連線的時候,常會出現wifi分享器被干擾導致其他跟分享器連線的裝置都斷線的情形,請問老師這個問題該如何解決?
回覆刪除照理應該不會這樣啊! 無線基地台 dhcp 會分派新的 ip 給 ESP8266 才對. 建議可換另一個 AP 試試看.
回覆刪除[Errno 22] invalid mode ('rb') or filename: ''
回覆刪除這個事燒錄黨的 檔案位置路徑上有中文~
我找了好久!!謝謝老師
老師您好, 請問老師:
回覆刪除前天買了一塊ESP-01S(ESP8266)及一塊ESP8266燒錄器。這個燒錄器有一個4x2的接頭,直接對接ESP8266。把ESP8266插到燒錄器上,再將燒錄器插到PC(USB port)就可以工作。也就是說此燒錄器取代了PL2303HX,且不用再接線。
在Realterm上設定Baud Rate 為115200時,ESP8266可以正常反應溝通。
依您文中的方式下載esp8266_flasher.exe 及bin file ( 有兩個 : ESP_8266_BIN0.92.bin / v0.9.2.2 AT Firmware.bin)後開始燒錄。過程及結果都與您文中所提的相同,GPIO0也有接地。
然後再用Realterm測試, ESP8266就完全沒反應了,試過所有Baud rate 都一樣。上述兩個bin file都試過,都一樣的結果。
2017年7月23日有位留言,情形似乎是一樣的。請問該怎樣解決 ?
謝謝老師
我分別向兩個賣家買了 ESP01-S 各一塊, 其中一個 OK 沒問題, 另一塊就跟您的情況一樣, 燒錄過程都沒問題, 就是怎麼也不會動, 搜了好多文章試過還是沒用, 最後決定不再買 ESP-01S. 現在都用 WeMOS D1 MINI, 沒有一塊出過問題, 以前買的 ESP-01 也都 OK, 就是 ESP-01S 不知哪裡出錯.
回覆刪除