การฟอร์แมต ESP32

การฟอร์แมต ESP32

การฟอร์แมต ESP32” ในทางปฏิบัติหมายถึง การล้างแฟลช (Erase Flash) เพื่อเคลียร์โปรแกรม/ไฟล์ระบบเดิมทั้งหมด แล้วเริ่มใหม่เหมือนบอร์ดเพิ่งออกจากโรงงาน (ฝั่งซอฟต์แวร์)

ด้านล่างคือวิธีที่ใช้ได้จริง 3 แนวทาง


วิธีที่ 1) ฟอร์แมตด้วย Arduino IDE (ง่ายและเร็ว)

  1. เปิด Arduino IDE

  2. ไปที่ Tools → Board เลือกบอร์ด ESP32 ที่ใช้ (เช่น “ESP32 Dev Module”)

  3. ไปที่ Tools → Port เลือกพอร์ตให้ถูก (COMx)

  4. ไปที่ Tools → Erase Flash → All Flash Contents

  5. อัปโหลดสเก็ตช์อะไรก็ได้ 1 ครั้ง (แม้เป็น Blink) เพื่อให้ IDE ล้างแฟลชก่อนเขียน

ข้อดี: ง่าย ไม่ต้องใช้คำสั่งเพิ่ม

ข้อสังเกต: บางเวอร์ชันเมนู “Erase Flash” อาจไม่ขึ้น ต้องอัปเดต ESP32 board package


วิธีที่ 2) ฟอร์แมตแบบชัวร์ด้วย esptool.py (แนะนำสำหรับงานจริง)

2.1 ติดตั้ง esptool

  • Windows (Command Prompt / PowerShell):

pip install esptool

2.2 ล้างแฟลช (Erase)

  1. ดูพอร์ตก่อน (เช่น COM5) จาก Device Manager หรือ Arduino IDE

  2. รันคำสั่ง

esptool –chip esp32 –port COM3 erase_flash
 

เสร็จแล้ว บอร์ดจะ “โล่ง” ทันที พร้อมแฟลชเฟิร์มแวร์/โปรแกรมใหม่

ถ้าเป็น macOS/Linux พอร์ตมักเป็น /dev/ttyUSB0 หรือ /dev/tty.SLAB_USBtoUART แล้วแทนค่าในคำสั่งได้เลย


วิธีที่ 3) “ฟอร์แมต” สำหรับ MicroPython โดยตรง (ล้าง + ลงเฟิร์มแวร์ใหม่)

ถ้าอาจารย์ใช้ MicroPython แล้วเจออาการไฟล์ค้าง/รันไม่ออก วิธีนี้แก้ได้ตรงจุด

  1. ล้างแฟลชก่อน

esptool.py –port COM5 erase_flash
  1. แฟลช MicroPython firmware

 
 
esptool.py –chip esp32 –port COM5 –baud 460800 write_flash -z 0x1000 firmware.bin
 

firmware.bin คือไฟล์ MicroPython ที่ดาวน์โหลดมาแล้ว


ปัญหาที่พบบ่อย (และวิธีแก้แบบมืออาชีพ)

  • พอร์ตไม่ขึ้น / อัปโหลดไม่ได้: เปลี่ยนสาย USB (ต้องเป็นสาย Data), เปลี่ยนพอร์ต USB, ปิดโปรแกรมที่จับพอร์ตอยู่ (เช่น Thonny/Serial Monitor)

  • Device is busy (ใน Thonny): กด Stop/Restart, ปิด Thonny แล้วค่อย erase_flash ใหม่

  • ต้องกดปุ่ม BOOT: บางบอร์ดต้องกดค้างตอนเริ่มแฟลช/ล้าง แล้วปล่อยเมื่อขึ้น “Connecting…”


สรุป

  • ต้องการ “ล้างทุกอย่างให้เกลี้ยง” → ใช้ Erase Flash

  • อยากง่าย → ทำผ่าน Arduino IDE (Erase Flash: All Flash Contents)

  • อยากชัวร์และใช้ได้ทุกเคส → ใช้ esptool.py erase_flash

  • ใช้ MicroPython แล้วไฟล์เพี้ยน/ค้าง → erase_flash + flash firmware ใหม่