MAKER HANDBOOK • ESP32

เตรียม firmware อย่างเข้าใจ ก่อนแบ่งปัน

คู่มือเริ่มต้นสำหรับ Arduino IDE และ ESP-IDF — หน้านี้ไม่อัปโหลดไฟล์และไม่แฟลชบอร์ด

1. ESP32 กับ Arduino IDE

  1. ติดตั้งแพ็กเกจบอร์ด ESP32 ที่ตรงกับโครงการ เลือกรุ่นบอร์ดและตั้งค่า flash size, partition scheme และตัวเลือกอื่นให้ถูกต้อง จดเวอร์ชัน IDE, ESP32 core และไลบรารีที่ใช้
  2. เปิด sketch แล้ว Verify ให้ผ่าน จากนั้นใช้เมนู Sketch → Export Compiled Binary ชื่อเมนูอาจต่างตามเวอร์ชัน IDE
  3. ตรวจไฟล์ที่สร้างในโฟลเดอร์ sketch หรือ build ตามข้อความผลลัพธ์ อย่าสรุปว่าไฟล์ application .bin คือ merged image ที่รวม bootloader และ partition table แล้ว
  4. เปิด verbose output สำหรับ compile/upload ใน Preferences และตรวจคำสั่งแฟลชจาก build ของคุณ หากทดลอง upload ให้ใช้บอร์ดทดสอบที่ตรงรุ่นเพื่อบันทึกไฟล์และตำแหน่งจริง ไม่มี offset สากลสำหรับ ESP32 ทุกบอร์ด
  5. หากต้องการ merged binary ใช้เครื่องมือและคำสั่ง merge ของ toolchain เวอร์ชันนั้น โดยอ้างอิงไฟล์และ offset จาก build จริง ยืนยันตำแหน่งเริ่มแฟลชใน manifest และทดสอบไฟล์ merged แยกต่างหาก

2. ESP-IDF

  1. เปิด environment ของ ESP-IDF เวอร์ชันที่โครงการใช้ ตรวจ target chip และ configuration ให้ตรงกับบอร์ด การเปลี่ยน target อาจรีเซ็ตการตั้งค่าบางส่วน
  2. รัน idf.py build ในโครงการ แล้วตรวจผล build และ partition table
  3. ตรวจ build/flash_args และ build/flasher_args.json หากเวอร์ชันที่ใช้สร้างไฟล์เหล่านี้ พร้อมคำสั่งแฟลชที่ build แสดง ไฟล์เหล่านี้เป็นแหล่งอ้างอิงสำหรับคู่ offset/ไฟล์และตัวเลือกแฟลช ไม่ควรคัดลอกจากโครงการอื่น
  4. จัดไฟล์ bootloader, partition table, application และไฟล์อื่นตามรายการของ build หากชื่อหรือรูปแบบ manifest ต่างกัน ให้ใช้เอกสารของ ESP-IDF เวอร์ชันที่ติดตั้ง
  5. ทดสอบการแฟลชและบูตบนบอร์ดตรงรุ่นด้วย workflow ของ ESP-IDF เช่น idf.py -p PORT flash monitor โดยแทน PORT ด้วยพอร์ตจริง ตรวจ log และการทำงานของอุปกรณ์ ไม่ใช่แค่เห็นคำสั่งสำเร็จ

3. Checklist ก่อนเตรียมไฟล์และ Deploy

  • ระบุชิป บอร์ด เวอร์ชัน firmware และ toolchain รวมถึง flash size และ partition layout ในคู่มือ
  • ใช้ merged .bin ที่อ้างอิงไฟล์และ offset จาก build เดียวกัน โดยเริ่มไฟล์ที่ address 0 และมี bootloader, partition table และ application ไม่รับ app-only หรือ multipart แยกไฟล์ในฟอร์ม
  • ตรวจว่าไม่มี Wi-Fi password, API key หรือข้อมูลส่วนตัวฝังอยู่ใน firmware
  • ทดสอบ manifest กับไฟล์ชุดเดียวกันบนบอร์ดทดสอบ พร้อมขั้นตอนสำรองและกู้คืน หลีกเลี่ยงการ erase flash หากไม่เข้าใจผลกระทบ
  • ฟอร์มรองรับ ESP32-C3 SuperMini, ESP32 CYD และ DevKit/WROOM-32 ขนาด 4 MB และ ESP32-S3 N16R8 ขนาด 16 MB รับ .bin มากกว่า 0 และไม่เกิน 16 MiB ต่อไฟล์ ระบบตรวจโครงสร้าง ชิป และ integrity แต่ไม่ยืนยันรุ่นแผงวงจร ความปลอดภัยของ firmware หรือการทำงานของอุปกรณ์ต่อพ่วง

เลือกบอร์ดจริง แล้วอ่านจาก USB หรือเลือก .bin และกดเตรียมเฟิร์มแวร์ ไฟล์จะอยู่ในหน่วยความจำของ browser ยังไม่อัปโหลด หากเป็น backup เต็มความจุ 4 หรือ 16 MB ระบบจะเตรียม publish export โดยไม่คัดลอก NVS/filesystem แต่ app และ bootloader ยังอาจมีข้อมูลลับ และอาจต้องใช้ข้อมูลที่ถูกตัดออกเพื่อทำงาน

4. Preview / Deploy

  • Preview — ดูตัวอย่างในฟอร์ม ไม่อัปโหลดไฟล์ ไม่บันทึก และไม่เผยแพร่ผลงาน
  • Deploy — ตรวจข้อมูล อัปโหลดไฟล์จริง และเผยแพร่ผลงานเมื่อดำเนินการสำเร็จ ตรวจข้อมูลลับและสิทธิ์แจกไฟล์ก่อนกด
  • ไม่มีปุ่มบันทึกร่างหรือ auto-save หาก Deploy ไม่สำเร็จ ข้อมูลยังอยู่ในหน้าเดิมให้ลองใหม่ได้ อย่ารีโหลดหรือปิดหน้า
ไปฟอร์มฝากโปรเจกต์

ไฟล์และการแก้ไขที่ยังไม่ Deploy อยู่ในหน้าเดิมเท่านั้น การรีโหลด ปิดหน้า หรือออกจากฟอร์มอาจทำให้ข้อมูลสูญหาย ลิงก์นี้ไม่กู้คืนข้อมูลจากฟอร์มที่ปิดไปแล้ว