

การอัปโหลด firmware ที่หยุดตรงข้อความเชื่อมต่อไม่สำเร็จยังบอกสาเหตุได้ไม่มาก บอร์ดอาจไม่ได้เข้าโหมดดาวน์โหลด โปรแกรมอาจเลือก port คนละตัว หรือมี terminal อีกหน้าถือ port อยู่ ไม่จำเป็นต้องเป็นความเสียหายของชิปทันที
หากเปลี่ยนสาย กดปุ่มและแก้ค่าหลายอย่างพร้อมกัน พออัปโหลดได้ก็ยังไม่รู้ว่าอะไรเป็นเหตุ และอาจกลับมาเจอแบบเดิมเมื่อเปลี่ยนเครื่องหรือเสียบอุปกรณ์ต่อพ่วงกลับ
ควรไล่จากทางที่คอมพิวเตอร์มองเห็น ไปถึงโหมดที่ชิปกำลังทำงานครับ แล้วค่อยแยกขั้นเชื่อม bootloader การเขียน flash และการรันแอปออกจากกัน
ชื่อ ESP32 ถูกใช้กับชิปหลายรุ่นและบอร์ดหลายแบบ บางบอร์ดมี USB-to-serial bridge บางรุ่นมีความสามารถ USB ของตัวชิป การเสียบสายแล้วมองเห็นอุปกรณ์จึงต้องอ่านตามวงจรและช่องต่อของบอร์ดที่อยู่ตรงหน้า
คำอธิบายเรื่อง boot mode ในที่นี้อิงเอกสาร ESP32 รุ่นเดิม ไม่ควรนำหมายเลขขาหรือวิธีกดปุ่มไปใช้กับทั้งตระกูลโดยไม่ตรวจ datasheet และคู่มือบอร์ดก่อน โดยเฉพาะบอร์ดที่มีวงจรเลือกทาง USB หรือเชื่อมอุปกรณ์ไว้บนขาที่เกี่ยวข้อง
ควรจดรุ่นบอร์ด ชิป ตัวแปลงที่ใช้และเครื่องมือรุ่นที่เรียกไว้พร้อมกัน เมื่อขอให้คนอื่นช่วยดู จะได้ไม่เริ่มจากขั้นที่ถูกสำหรับบอร์ดหนึ่งแต่ไม่มีวงจรนั้นบนอีกบอร์ด

เริ่มจากตรวจว่า port ที่เลือกเป็นของบอร์ดที่ต้องการจริง โดยเทียบการเชื่อมต่อและรายการอุปกรณ์อย่างเป็นลำดับ ถ้ามีหลายบอร์ดเสียบพร้อมกัน ชื่อ port ที่เคยใช้ได้อาจไม่ใช่ตัวเดิมหลังเปลี่ยนช่องหรือเริ่มเครื่องใหม่
ต้องมีสิทธิ์เปิด port และไม่มีโปรแกรมอื่นใช้ขัดกันด้วย Serial monitor ที่เปิดค้างในอีกหน้าหรือบริการที่เข้ามาจับ port อาจรบกวนการเชื่อมต่อได้ การเปิดดู log สำเร็จในหน้าหนึ่งจึงต้องปิดหรือจัดการให้เครื่องมือแฟลชใช้ต่อได้ตามระบบปฏิบัติการ
สายที่จ่ายไฟได้ก็ยังต้องมีทางข้อมูลที่ทำงานได้ หากระบบไม่เห็นอุปกรณ์ตามวงจรที่บอร์ดควรให้ ควรตรวจสาย ช่อง USB และ driver ของตัวแปลงที่ใช้ก่อน ไม่ข้ามไปเปลี่ยน baud หรือ erase flash ทั้งที่ยังไม่มีทางสื่อสารถึงชิป
การถอดเปลี่ยนอุปกรณ์ควรทำให้รู้ว่าผลใดเป็นของชุดไหน เก็บอาการก่อนเปลี่ยนทีละปัจจัย ไม่เขียนว่าเปลี่ยนสายแล้วหายเป็นข้อสรุปทั่วไป หากยังไม่ได้ตรวจว่าสายเดิมมีปัญหาที่ทางข้อมูลจริงหรือไม่
สำหรับ ESP32 รุ่นเดิม ค่า strapping ที่อ่านตอน reset มีผลต่อโหมด boot โดย GPIO0 เป็นหนึ่งในตัวกำหนดการเข้า serial bootloader ตามเงื่อนไขในเอกสาร การกดปุ่มบนบอร์ดจึงต้องสัมพันธ์กับวงจรและจังหวะ reset ไม่ใช่เพียงกดปุ่มชื่อ BOOT ค้างเมื่อไรก็เท่ากัน
บอร์ดพัฒนาหลายตัวมีวงจร auto-reset ที่เชื่อมสัญญาณ DTR และ RTS ของ USB-to-serial เข้ากับส่วนควบคุมที่เกี่ยวข้อง ทำให้ esptool จัดลำดับเข้า bootloader ได้ แต่การมีตัวแปลง serial อย่างเดียวไม่ได้รับรองว่ามีวงจร auto-reset ครบ
หากใช้วงจรต่อเอง ต้องตรวจคู่มือ schematic และข้อกำหนดระดับแรงดันของชิปก่อนทำตามการเชื่อมขา ไม่ใช้รูปจากบอร์ดคนละรุ่นเป็นหลักฐานว่าขาควบคุมทุกตัวต่อเหมือนกัน และไม่ดึงขาที่มีผลต่อแรงดัน flash โดยไม่รู้บทบาท
อุปกรณ์ต่อพ่วงบนขา strapping ก็อาจเปลี่ยนสถานะที่ชิปอ่านตอนเริ่มได้ ควรแยกตรวจตามคู่มือเมื่อปลอดภัยต่อชุดทดลอง ไม่แก้แอปจำนวนมากเพื่อชดเชยปัญหาที่เกิดก่อนแอปเริ่มรันแล้ว

Boot log ช่วยบอกสภาพที่ชิปเห็นตอนเริ่มและโหมดที่กำลังเข้าได้ แต่ต้องใช้ port กับค่าการสื่อสารที่ตรงตามเอกสารของรุ่นนั้น ไม่เห็นข้อความเพี้ยนแล้วสรุปว่า flash เสียโดยยังไม่ตรวจการรับข้อมูล
แยกด้วยว่า log มาจาก ROM bootloader bootloader ใน flash หรือแอป เพราะข้อความของแอปยังไม่มีโอกาสปรากฏหากติดอยู่ก่อนขั้นนั้น การไล่จากข้อความแรกที่อ่านได้ช่วยระบุจุดที่ควรตรวจต่อได้ดีกว่ารอข้อความพร้อมใช้งานเพียงคำเดียว
โปรแกรม monitor บางตัวมีพฤติกรรม reset ผ่านเส้นควบคุมเมื่อเปิด connection เช่น IDF Monitor ตามค่าและวงจรที่รองรับ การเปิดหน้าดู log จึงอาจมีผลต่อสถานะบอร์ด ต้องรู้ว่ากำลังสังเกตอย่างเดียวหรือเริ่มรอบใหม่ไปด้วย
เวลาเก็บหลักฐานควรเก็บช่วงตั้งแต่ reset จนถึง error ที่เกี่ยวข้อง พร้อมคำสั่งและรุ่นเครื่องมือที่ใช้ โดยคัดข้อมูลลับออกตามความจำเป็น ไม่สร้าง boot log ตัวอย่างขึ้นแล้วใช้เป็นผลของบอร์ดที่ยังไม่ได้ตรวจ
ถ้า esptool ติดต่อ bootloader ได้แล้ว แต่เขียนหยุดกลางทาง ต้องตามคุณภาพการสื่อสารกับความเสถียรไฟเลี้ยงในช่วงนั้น ไม่ปนกับกรณีไม่เคยเข้าโหมดดาวน์โหลดเลย การลดอัตราสื่อสารอาจเป็นหนึ่งในการแยกเหตุ แต่ไม่ใช่ผลยืนยันสาเหตุเดียวของทุกกรณี
หากเขียนผ่านแล้วแต่แอปไม่เริ่ม ต้องตรวจ target flash mode ตำแหน่ง image และโครง partition ให้ตรงกับ build รวมถึง boot log รอบใหม่ตามระบบที่ใช้ การส่ง byte ลง flash ครบไม่ได้รับรองว่าไฟล์นั้นเป็นโปรแกรมที่ชุดนี้ boot ได้
ก่อนเขียนทับควรเข้าใจว่าคำสั่งกับไฟล์จะกระทบพื้นที่ใด โดยเฉพาะข้อมูลตั้งค่าหรือข้อมูลของอุปกรณ์ที่ต้องเก็บ การ erase ทั้งชิปอาจทำให้ข้อมูลเหล่านั้นหาย จึงไม่ควรเป็นขั้นแรกอัตโนมัติเพียงเพราะเชื่อมไม่ได้
เมื่อแก้ได้ ควรทวนกับชุดขั้นต่ำที่ระบุได้แล้วค่อยเพิ่มอุปกรณ์กลับทีละส่วน พร้อมเก็บขั้นที่ทำให้ผลเปลี่ยน วิธีนี้ทำให้ได้เหตุผลที่ใช้รับช่วงต่อ ไม่จบที่คำว่าแฟลชติดแล้วโดยยังไม่รู้ว่าอะไรถูกเปลี่ยนไป
การแฟลชไม่ผ่านต้องเริ่มจากทางเชื่อมและโหมดที่ชิปอยู่ ก่อนตามการเขียนกับการรันแอป การตรวจ port สิทธิ์ reset strapping และ boot log ให้ตรงรุ่นช่วยแยกปัญหาที่หน้าตาคล้ายกัน เมื่อเปลี่ยนทีละปัจจัยพร้อมรักษาข้อมูลเดิม เราจะมีหลักฐานว่าติดอยู่ขั้นไหนและแก้ตามเหตุได้ โดยไม่ตัดสินว่าบอร์ดเสียจากข้อความเชื่อมต่อครั้งเดียว