[ESP8266] - How to update firmware with XTCOM

Standard

หลาย ๆ  ท่านคงได้ลองเล่นเจ้า ESP8266 ดูบ้างแล้ว  เป็นโมดูล WIFI ที่ราคาถูกมาก (ร้อยกว่าบาท) Firmware ที่ให้มาสามารถสั่งงานผ่าน AT Command ได้เลย  แต่ AT Command ก็เยอะเหลือเกินใครจะไปจำได้หมด  ก็เลยมีคนทำ Arduino Library ขึ้นมา  และผมเลยเขียน App ง่าย ๆ เอาไว้ Config โมดูลตัวนี้เพื่อให้เราสามารถเข้าใจขั้นตอนการ Config ได้ สามารถไปดาวน์โหลดได้เลยครับ


Firmware Version ใหม่ ๆ ก็จะมี AT Command ต่าง ๆ เพิ่มเข้ามา  บทความนี้ก็จะมาพูดถึงการ Update Firmware สักเล็กน้อยครับ  ซึ่ง Firmware ที่ใช้ก็จะเป็นไฟล์ Binary ไฟล์เดียว  (ใครที่เคย Custom Firmware จะรู้ว่ามันมีหลายไฟล์)  และใช้โปรแกรม XTCOM ในการ Update Firmware ครับ

เตรียมโปรแกรม XTCOM และ Firmware

ไปดาวน์โหลด XTCOM และ Firmware ที่เราต้องการจากที่นี่ครับ  ElectroDragon

ต่อ GPIO เพื่อเข้าโหมด Update Firmware

ต่อ GPIO  ตามตารางด้านล่าง  ที่มา ESP8266 GitHub
จริง ๆ ผมต่อแค่ CH_PD เป็น High และ GPIO0 เป็น Low ก็เข้าโหมด Update Firmware แล้วครับ




PinLevel
CH_PD
High
GPIO0
Low
GPIO2
High

Update Firmware

1. หลังจากที่เราต่อ GPIO ตามด้านบน และทำการ Reset โมดูลเรียบร้อยแล้ว  ต่อไปก็เปิดโปรแกรม XTCOM และ ไปที่เมนู Tool -> Config Device  เพื่อตั้งค่าการเชื่อมต่อ Serial Port   แล้วกด Open เพื่อ Connect

2. เมื่อต่อ Serial Port ได้แล้ว  เราต่อกด Connect เพื่อตรวจสอบว่าโมดูลของเราเข้าสู่โหมด Update Firmware หรือยัง  ถ้าไม่มีอะไรผิดพลาดโปรแกรมก็จะบอกว่าสามารถ Connect โมดูลได้ตามรูปด้านล่าง  แต่ถ้า Error ก็ต้องไปเช็ค GPIO ว่าต่อถูกหรือเปล่า  แล้วทำการ Reset อีกครั้งครับ



3. เข้าไปที่เมนู API TEST -> Flash Image Download


4. เลือกไฟล์ Firmware ที่เราต้องการ Update


5. กด Download แล้วรอสักครู่


6. เมื่อเสร็จแล้วโปรแกรมก็จะบอกว่า Operation Success   เป็นอันเสร็จพิธีการ Update Firmware ครับ



นอกจากการใช้ XTCOM ในการ Update Firmware แล้ว  ยังมี Tool ตัวอื่น ๆ เช่น esptool.py ซึ่งเขียนด้วย Python หากใครไม่ได้ใช้ Window ก็คงต้องเลี่ยงไปใช้ Tool ตัวอื่นเอานะครับ

ส่วนใครที่ Custom Firmware ก็จะมีการโหลด Firmware ที่แตกต่างไป โดยต้องโหลด Binary แต่ละไฟล์ไปที่ Address ต่าง ๆ เอาเป็นว่าว่างเมื่อไหร่จะมาเขียน Blog อีกที  เพราะกลัวลืมเหมือนกันครับ