2016年7月30日 星期六

NodeMCU (ESP8266) 韌體更新

NodeMCU是以 ESP8266 晶片為基礎含 WiFi 功能的微控制板,使用 Lua 語言撰寫程式適合物聯網終端節點的應用開發官網資料下載網址https://github.com/nodemcu 

NodeMCU是一個使用Lua語言的開發環境,可以燒錄在許多不同版本的ESP8266模組上,且經歷多次改版網路上也有眾多不同的說明版本[1],有的版本並不穩定。本文2015/03/18的 0.9.5 版為例,說明如何燒錄 NodeMCU 的韌體,使用的是下圖的這款以ESP-12為主的NodeMCU V2


1. 下載燒錄工具

先到https://github.com/nodemcu/nodemcu-flasher按下  Download ZIP  下載燒錄工具,然後執行Win32Win64 Release目錄下之ESP8266Flasher.exe



2. 一鍵燒錄韌體更新

Operation頁面選擇COM Port



Config頁面,預設會自動使用INTERNAL://NODEMCU,位址設定為0x00000



如果想手動變更燒錄檔,可以按下齒輪按鈕選擇所需要的檔案並設定燒錄的位址預設的檔案是在Resource\Binary\nodemcu_integer_0.9.5_20150318.bin





Advanced頁面,使用預設值即可


回到Operation頁面,按下  FLASH(F)  開始燒錄,開始燒錄後會自動取得MAC位址,NodeMCUESP8266-12模組GPIO-4LED開始閃動,此時可以切換到Log頁面看燒錄狀況



 

如果燒錄失敗,先按下  STOP(S)  停止,再按下  FLASH(F)  重新燒錄即可。如果失敗太多次,可以到Advance頁面將Baudrate降低 (例如115200) 試試看。



燒錄完成後要按下NodeMCURST按鈕,重新開機後才能使用。

3. 其他韌體版本

https://github.com/nodemcu/nodemcu-firmware/releases ,可以看到各版本的韌體,下載bin檔即可進行燒錄。


4. 自訂韌體更新

以下是根據下載的文件說明如何自訂韌體燒錄位址因為實作測試燒錄後無法使用 NodeMCU 的功能,因此僅供參考

首先到https://github.com/nodemcu/nodemcu-firmware按下  Download ZIP  下載最新版本韌體檔,稍後燒錄要用到的二進位檔,放在 \sdk\esp_iot_sdk_v1.4.0\bin 目錄



參考 \sdk\esp_iot_sdk_v1.4.0\bin\at\readme.txt設定相關的bin檔與燒錄位置 

***********************BOOT MODE***********************
download:
Flash size 8Mbit: 512KB+512KB
boot_v1.2+.bin          0x00000
user1.1024.new.2.bin    0x01000
esp_init_data_default.bin       0xfc000   (optional)
blank.bin              0x7e000 & 0xfe000

Flash size 16Mbit: 512KB+512KB
boot_v1.2+.bin          0x00000
user1.1024.new.2.bin    0x01000
esp_init_data_default.bin       0x1fc000 (optional)
blank.bin              0x7e000 & 0x1fe000

Flash size 16Mbit-C1: 1024KB+1024KB
boot_v1.2+.bin          0x00000
user1.2048.new.5.bin    0x01000
esp_init_data_default.bin       0x1fc000 (optional)
blank.bin              0xfe000 & 0x1fe000

Flash size 32Mbit: 512KB+512KB
boot_v1.2+.bin          0x00000
user1.1024.new.2.bin    0x01000
esp_init_data_default.bin       0x3fc000 (optional)
blank.bin              0x7e000 & 0x3fe000

Flash size 32Mbit-C1: 1024KB+1024KB
boot_v1.2+.bin          0x00000
user1.2048.new.5.bin    0x01000
esp_init_data_default.bin       0x3fc000 (optional)
blank.bin              0xfe000 & 0x3fe000

***********************NON-BOOT MODE***********************
download
eagle.flash.bin                0x00000
eagle.irom0text.bin        0x40000
blank.bin        
        Flash size 4Mbit:     0x3e000  & 0x7e000
        Flash size 8Mbit:     0x7e000 & 0xfe000
        Flash size 16Mbit:      0x7e000 & 0x1fe000
        Flash size 16Mbit-C1:   0xfe000 & 0x1fe000
        Flash size 32Mbit:      0x7e000 & 0x3fe000
        Flash size 32Mbit-C1:   0xfe000 & 0x3fe000
esp_init_data_default.bin       (optional)     
        Flash size 4Mbit:     0x7c000
      Flash size 8Mbit:     0xfc000
        Flash size 16Mbit:      0x1fc000
        Flash size 16Mbit-C1:   0x1fc000
        Flash size 32Mbit:      0x3fc000
        Flash size 32Mbit-C1:   0x3fc000

在燒錄程式的Config頁面按下齒輪按鈕選擇自訂的二進為檔來源,以BOOT MODE Flash size 32Mbit-C1 1024KB+1024KB為例燒錄檔案與位置如下表

二進位檔
燒錄位置
boot_v1.2+.bin
0x00000
user1.2048.new.5.bin
0x01000
esp_init_data_default.bin      
0x3fc000
blank.bin
0xfe000
blank.bin
0x3fe000

燒錄Config設定畫面記得要勾選前面  x  ,該檔案才會進行燒錄


設定完成後按照一鍵燒錄的方式進行燒錄即可 





參考資料
[1]  “如何燒錄 ESP8266 無線模組的韌體 (使用一鍵燒錄軟體)”, http://ruten-proteus.blogspot.tw/2014/12/esp8266-firmware-burning.html







沒有留言:

張貼留言