กด Upload แล้วไม่ไปไหน ขึ้น error แปลก ๆ จนเริ่มสงสัยว่าบอร์ดพังหรือเปล่า — ปัญหานี้คนใช้ ESP32 เจอกันเยอะมาก โดยเฉพาะตอนเริ่มต้นครับ
ข่าวดีคือ ส่วนใหญ่ ESP32 Upload ไม่ได้ ไม่ได้แปลว่าบอร์ดเสีย แต่เกิดจากเรื่องใกล้ตัวมาก ๆ อย่างสาย USB, ไดรเวอร์, COM Port, การเลือกบอร์ด หรือจังหวะเข้าโหมดแฟลชไม่ถูกต้อง ถ้าคุณไล่เช็กเป็นขั้น คุณจะหาสาเหตุเจอเร็วกว่าการเดาสุ่มเยอะ
บทความนี้ผมจะพาคุณเช็กทีละจุดแบบภาษาคนทำของ ว่าเวลา ESP32 upload ไม่ได้ ต้องเริ่มดูตรงไหนก่อน มี error แบบไหนที่พบบ่อย และควรแก้ยังไงให้ผ่านแบบใช้งานได้จริง
ถ้าคุณยังใหม่กับบอร์ดตัวนี้ แนะนำให้อ่านบทความ ESP32 คืออะไร ควบคู่กันไปด้วย จะช่วยให้เห็นภาพรวมของบอร์ดง่ายขึ้น และถ้าอยากดูบทความสอนหลายหัวข้อรวมกัน สามารถเข้าไปที่หน้า Tutorials ได้เลย
สารบัญ
- ทำไม ESP32 ถึง Upload ไม่ผ่าน
- เช็กก่อนเลย 5 จุดพื้นฐานที่ควรดูทันที
- สาเหตุยอดฮิตที่ทำให้ ESP32 Upload ไม่ได้
- วิธีแก้ ESP32 Upload ไม่ได้ แบบไล่ทีละขั้น
- ปุ่ม BOOT คืออะไร และต้องกดตอนไหน
- Error ยอดฮิตเวลา Upload ESP32 ไม่ผ่าน
- บางครั้งปัญหาไม่ได้อยู่ที่คอม แต่อยู่ที่วงจรที่ต่อกับบอร์ด
- เทคนิคช่างหน้างานที่ช่วยให้ Upload ผ่านง่ายขึ้น
- สรุปลำดับเช็กแบบเร็ว ถ้า ESP32 Upload ไม่ได้
- FAQ: คำถามที่คนใช้ ESP32 เจอบ่อย
ทำไม ESP32 ถึง Upload ไม่ผ่าน
อาการที่เจอบ่อยเวลาอัปโหลดโค้ดลง ESP32
เวลาบอร์ด ESP32 อัปโหลดไม่ผ่าน อาการที่คนมักเจอจะคล้าย ๆ กัน เช่น กด Upload แล้วค้างนาน, ขึ้นข้อความว่า Failed to connect to ESP32, มองไม่เห็น COM Port หรือบางคนเสียบแล้วไฟติดแต่ Arduino IDE ไม่คุยกับบอร์ดเลย
ทำไมบางครั้งโค้ดไม่ผิด แต่บอร์ดก็ยัง Upload ไม่ได้
ตรงนี้เป็นจุดที่มือใหม่มักสับสนครับ เพราะหลายคนคิดว่า Upload ไม่ผ่าน = โค้ดผิด แต่ความจริงแล้วขั้นตอน Upload เป็นเรื่องของการสื่อสารระหว่างคอมกับบอร์ดก่อน ถ้าคอมคุยกับบอร์ดไม่ได้ ต่อให้โค้ดถูก 100% ก็อัปโหลดไม่ผ่านอยู่ดี
ปัญหานี้มักเกิดจากอะไรบ้าง
สาเหตุหลัก ๆ มักหนีไม่พ้น 5 เรื่องนี้:
- สาย USB ใช้ชาร์จได้ แต่ส่งข้อมูลไม่ได้
- ยังไม่ได้ติดตั้งไดรเวอร์ USB to Serial
- เลือก Board หรือ COM Port ผิด
- บอร์ดไม่เข้าโหมดแฟลช
- มีวงจรภายนอกไปรบกวนขาบูตของ ESP32
เช็กก่อนเลย 5 จุดพื้นฐานที่ควรดูทันที
ถ้ายังไม่แน่ใจว่าต้องเพิ่ม ESP32 ใน Arduino IDE ยังไง เลือกบอร์ดตรงไหน หรือขั้นตอนอัปโหลดพื้นฐานต้องทำอะไรบ้าง แนะนำให้อ่าน คู่มือ Arduino IDE สำหรับ ESP32 และ Arduino เพิ่มก่อน เพราะปัญหา upload ไม่ผ่านหลายครั้งเกิดจากการตั้งค่าใน IDE ยังไม่ครบ

เลือก Board ถูกหรือยัง
ใน Arduino IDE ให้เช็กก่อนว่าเลือกบอร์ดตรงกับรุ่นที่ใช้อยู่หรือยัง บอร์ดยอดฮิตอย่าง ESP32 DevKit V1 มักใช้ตัวเลือกประมาณ ESP32 Dev Module ถ้าเลือกผิดรุ่น บางครั้ง IDE จะคอมไพล์ผ่าน แต่ขั้นตอนอัปโหลดจะมีปัญหาได้
เลือก COM Port ถูกหรือไม่
เสียบบอร์ดแล้วให้ดูที่เมนู Port ถ้าไม่มีพอร์ตใหม่โผล่มาเลย มีโอกาสว่าสาย USB หรือไดรเวอร์มีปัญหา แต่ถ้ามีพอร์ตขึ้นหลายอัน ให้ลองถอดบอร์ดออกแล้วดูว่าพอร์ตไหนหายไป จากนั้นเสียบกลับเข้าไปเพื่อยืนยันว่าพอร์ตไหนเป็นของ ESP32
สาย USB ที่ใช้ส่งข้อมูลได้จริงไหม
นี่คือจุดที่เจอบ่อยมากที่สุด บางสายเสียบแล้วไฟเข้าบอร์ดจริง แต่เป็นสายชาร์จอย่างเดียว ไม่มีเส้น data อยู่ข้างใน ทำให้คอมมองไม่เห็นบอร์ดเลย ดังนั้นถ้าเสียบแล้วไฟติด แต่อัปโหลดไม่ได้ อย่าพึ่งรีบโทษบอร์ด ให้เปลี่ยนสายก่อน
ติดตั้ง ESP32 Board Package ครบหรือยัง
ถ้ายังไม่ได้ติดตั้งบอร์ด ESP32 ใน Board Manager ของ Arduino IDE หรือเวอร์ชันมีปัญหา ก็อาจทำให้ใช้งานไม่สมบูรณ์ได้ ควรเช็กว่ามีการติดตั้ง ESP32 core เรียบร้อยแล้ว
ลองเปลี่ยนพอร์ต USB หรือเปลี่ยนคอมแล้วหรือยัง
บางครั้งปัญหาไม่ได้อยู่ที่บอร์ด แต่อยู่ที่พอร์ต USB ของเครื่อง หรือมีโปรแกรมบางตัวจับพอร์ตไว้ ลองเปลี่ยนช่อง USB หรือย้ายไปลองอีกเครื่อง จะช่วยตัดปัญหาได้เร็วมาก
สาเหตุยอดฮิตที่ทำให้ ESP32 Upload ไม่ได้
สาย USB เป็นสายชาร์จอย่างเดียว
ถ้าคุณกำลังใช้สายที่แถมมากับอุปกรณ์บางชนิด มีโอกาสสูงมากว่าเป็นสายสำหรับจ่ายไฟอย่างเดียว อาการคือไฟติดแต่ไม่เจอพอร์ต หรือเจอพอร์ตบ้างไม่เจอบ้าง วิธีแก้คือเปลี่ยนเป็นสาย USB ที่ยืนยันแล้วว่าใช้รับส่งข้อมูลได้
ไดรเวอร์ USB to Serial ยังไม่ครบ
บอร์ด ESP32 หลายรุ่นใช้ชิปแปลง USB เช่น CP2102 หรือ CH340 ถ้าคอมยังไม่มีไดรเวอร์ ก็จะไม่เห็น COM Port หรือเห็นแบบผิดปกติ จุดนี้เจอบ่อยมากกับบอร์ด clone ราคาประหยัด
เลือกบอร์ดผิดรุ่น
ถึงแม้หลายรุ่นจะใช้ชิป ESP32 เหมือนกัน แต่ถ้าเลือก Board ไม่เหมาะ บางครั้ง Upload จะไม่เสถียร โดยเฉพาะมือใหม่ที่ยังไม่แน่ใจว่าควรเลือกเมนูไหนดี แนะนำเริ่มจาก ESP32 Dev Module ถ้าเป็น DevKit ทั่วไป
COM Port ไม่ขึ้น
ถ้าเสียบบอร์ดแล้วไม่มีพอร์ตใหม่ขึ้นมาเลย ให้สงสัย 3 อย่างก่อน: สาย USB, ไดรเวอร์, และตัวพอร์ต USB ของเครื่อง ไม่ต้องรีบไปแก้โค้ดครับ เพราะปัญหานี้ยังไม่ถึงขั้นโค้ด
บอร์ดไม่เข้าโหมดแฟลช
บางบอร์ดมีวงจร auto download ไม่ดีพอ หรือเป็นบอร์ด clone ที่จังหวะเข้าโหมดแฟลชไม่เสถียร จึงต้องกดปุ่ม BOOT ค้างตอน Upload ด้วยตัวเอง
วิธีแก้ ESP32 Upload ไม่ได้ แบบไล่ทีละขั้น

ขั้นที่ 1 เช็กสาย USB
เริ่มจากเปลี่ยนสายก่อนเลยครับ เพราะเป็นสาเหตุที่เจอบ่อยที่สุด เลือกสายที่เคยใช้รับส่งข้อมูลกับบอร์ดอื่นหรือมือถือได้จริง อย่าใช้สายเก่าที่ไม่แน่ใจ
ขั้นที่ 2 เช็ก COM Port
หลังเปลี่ยนสายแล้ว ให้ดูว่าเครื่องเห็น COM Port หรือยัง ถ้ายังไม่ขึ้น ให้ลองเปลี่ยนช่อง USB หรือดูใน Device Manager ของ Windows ว่ามีอุปกรณ์ใหม่โผล่มาหรือไม่
ขั้นที่ 3 ติดตั้งไดรเวอร์
ถ้าบอร์ดใช้ CP2102 หรือ CH340 แต่เครื่องยังไม่มีไดรเวอร์ คอมจะคุยกับบอร์ดไม่ได้เลย จุดนี้ถ้าคุณใช้บอร์ด clone แล้วยังไม่เคยติดตั้งไดรเวอร์มาก่อน ให้เช็กเรื่องนี้ก่อนเป็นอันดับต้น ๆ

ขั้นที่ 4 ตรวจสอบ Board และ Upload Speed
เลือก Board ให้ถูก และถ้าอัปโหลดไม่เสถียร ลองลด Upload Speed ลง เช่นจาก 921600 ลงมาเป็น 115200 หรือ 460800 บางบอร์ดคุยด้วยความเร็วสูงไม่ค่อยนิ่ง โดยเฉพาะสายไม่ดีหรือพอร์ตไม่ค่อยเสถียร
ขั้นที่ 5 กดปุ่ม BOOT ค้างระหว่าง Upload
ถ้าขึ้นแนว ๆ Connecting........ แล้วไม่ผ่าน ให้ลองกดปุ่ม BOOT ค้างไว้ตอนเริ่ม Upload พอ IDE เริ่มเขียนแฟลชค่อยปล่อย วิธีนี้ช่วยได้เยอะมากกับบอร์ดที่เข้าโหมดแฟลชอัตโนมัติไม่ดี
ปุ่ม BOOT คืออะไร และต้องกดตอนไหน
ทำไมบางบอร์ดต้องกด BOOT เอง
ESP32 ต้องเข้าโหมดดาวน์โหลดก่อนถึงจะรับโปรแกรมใหม่ได้ บอร์ดบางตัวมีวงจรจัดการให้เอง แต่บางตัวทำได้ไม่เสถียร จึงต้องกด BOOT เพื่อบังคับเข้าโหมดนี้ด้วยตัวเอง
จังหวะที่ควรกด BOOT
วิธีที่ใช้กันบ่อยคือ กด Upload ใน Arduino IDE ก่อน จากนั้นเมื่อขึ้นคำว่า Connecting... ให้กด BOOT ค้างไว้ 1–3 วินาที หรือค้างจนเริ่มมีการเขียนแฟลชแล้วค่อยปล่อย
ถ้ากดไม่ถูกจังหวะจะเกิดอะไรขึ้น
ถ้ากดช้าไปหรือปล่อยเร็วไป บอร์ดอาจไม่เข้าโหมดแฟลช ทำให้ขึ้น error เดิมซ้ำอีก ดังนั้นถ้ารอบแรกไม่ผ่าน ลองใหม่อีก 1–2 ครั้งพร้อมจับจังหวะ จะช่วยได้มาก
Error ยอดฮิตเวลา Upload ESP32 ไม่ผ่าน
Failed to connect to ESP32: Timed out waiting for packet header
error นี้ดังมากในโลก ESP32 และมักแปลว่าเครื่องคุยกับบอร์ดได้ไม่สมบูรณ์ หรือบอร์ดไม่ได้เข้าโหมดแฟลช ให้เริ่มเช็กสาย USB, COM Port, ปุ่ม BOOT และวงจรที่ต่อค้างอยู่กับบอร์ด
A fatal error occurred: No serial data received
อาการนี้มักสื่อว่าคอมส่งคำสั่งไปแล้ว แต่ไม่ได้ข้อมูลตอบกลับจากบอร์ด สาเหตุหลักมักมาจากสาย, ไดรเวอร์, เลือกพอร์ตผิด หรือบอร์ดไม่ตอบสนองเพราะไฟไม่นิ่ง
Serial port not found
แปลตรงตัวเลยว่า IDE หา COM Port ไม่เจอ จุดนี้ให้ไปดูเรื่องสาย USB, ไดรเวอร์ และการเสียบพอร์ตก่อน อย่าพึ่งไปแก้โค้ด
Permission denied หรือพอร์ตถูกใช้งานอยู่
บางครั้ง Serial Monitor, โปรแกรมอีกตัว หรือแม้แต่ IDE เองค้างการใช้งานพอร์ตอยู่ ทำให้ Upload ไม่ผ่าน วิธีแก้คือปิด Serial Monitor, ปิดโปรแกรมที่เกี่ยวข้อง และลองถอดเสียบใหม่
| อาการ | สาเหตุที่เป็นไปได้ | วิธีแก้เบื้องต้น |
|---|---|---|
| ไฟติด แต่ไม่เห็น COM Port | สายชาร์จ, ไดรเวอร์ไม่มี, พอร์ต USB มีปัญหา | เปลี่ยนสาย, ติดตั้งไดรเวอร์, เปลี่ยนช่อง USB |
| ขึ้น Timed out waiting for packet header | ไม่เข้าโหมดแฟลช, กด BOOT ไม่ทัน, วงจรรบกวนขาบูต | กด BOOT ค้าง, ถอดวงจรภายนอก, เช็กขา GPIO |
| เจอพอร์ต แต่ Upload ไม่ผ่าน | Board ผิด, Upload Speed สูงเกิน, ไฟไม่นิ่ง | เลือก Board ใหม่, ลด Upload Speed, เปลี่ยนสาย/แหล่งจ่าย |
| เมื่อวานยังใช้ได้ วันนี้ไม่ได้ | สายเริ่มเสีย, พอร์ตเพี้ยน, มีวงจรภายนอกเพิ่มเข้ามา | ย้อนเช็กการต่อสายล่าสุด, ถอดวงจรออก, ลองเครื่องอื่น |
บางครั้งปัญหาไม่ได้อยู่ที่คอม แต่อยู่ที่วงจรที่ต่อกับบอร์ด
GPIO บางขามีผลต่อการบูต
ESP32 มีบางขาที่เกี่ยวข้องกับสถานะบูต ถ้าคุณต่อวงจรบางอย่างค้างไว้ เช่น รีเลย์, ปุ่ม, โมดูลภายนอก หรือมี pull-up/pull-down ไม่เหมาะ บอร์ดอาจบูตผิดโหมดจน Upload ไม่ได้
ถ้าคุณยังไม่แม่นเรื่องขา แนะนำให้อ่านบทความ ESP32 GPIO / Pinout เพิ่ม จะช่วยให้เข้าใจว่าขาไหนใช้ได้ง่าย ขาไหนควรระวังเวลาเอาไปต่อกับอุปกรณ์จริง
อุปกรณ์ภายนอกดึงไฟจนบอร์ดรวน
ถ้าคุณต่อรีเลย์หลายตัว, เซนเซอร์หลายตัว หรือใช้อุปกรณ์กินกระแสร่วมกับ ESP32 โดยจ่ายไฟจาก USB อย่างเดียว บางครั้งไฟจะตกตอนเริ่มสื่อสาร ทำให้ Upload ไม่ผ่านแบบงง ๆ จุดนี้เป็น Pain Point หน้างานจริงเลย
ทำไมควรถอดวงจรภายนอกออกก่อนลอง Upload ใหม่
ถ้าคุณแก้หลายอย่างแล้วยังไม่ได้ ให้ถอดทุกอย่างออกจากบอร์ดก่อน เหลือแค่สาย USB กับ ESP32 เปล่า ๆ แล้วลอง Upload ใหม่ ถ้าผ่าน แปลว่าปัญหาไม่ได้อยู่ที่ IDE แต่อยู่ที่วงจรที่คุณต่อเพิ่มเข้ามา
เทคนิคช่างหน้างานที่ช่วยให้ Upload ผ่านง่ายขึ้น
ใช้สาย USB สั้นและคุณภาพดี
สายดีช่วยได้จริงครับ โดยเฉพาะสายสั้นที่ส่งข้อมูลนิ่งกว่า สายยาวหรือสายถูกมากบางเส้นไฟเข้าจริง แต่สื่อสารไม่ดีพอ ทำให้ Upload ได้บ้างไม่ได้บ้าง
ลด Upload Speed เมื่อติดต่อบอร์ดไม่เสถียร
ถ้าอัปโหลดด้วยความเร็วสูงแล้วรวน ลองลดความเร็วลง จะช่วยให้การสื่อสารนิ่งขึ้น โดยเฉพาะกับบอร์ด clone หรือเครื่องที่พอร์ต USB ไม่ค่อยแรง
กด BOOT ค้างในจังหวะเหมาะสม
ทริกง่าย ๆ ที่ใช้ได้จริงคือ กด Upload ก่อน แล้วพอ IDE เริ่มเชื่อมต่อค่อยกด BOOT ค้าง ถ้ารอบแรกไม่ผ่าน อย่ารีบสรุปว่าบอร์ดเสีย ลองจับจังหวะใหม่อีกครั้ง
รีสตาร์ต IDE หรือถอดเสียบใหม่
ฟังดูธรรมดา แต่ช่วยได้บ่อยครับ โดยเฉพาะเวลาพอร์ตค้างหรือ IDE ยังจับสถานะเดิมอยู่ ลองปิด Serial Monitor, ปิด IDE แล้วเปิดใหม่ จากนั้นถอดเสียบบอร์ดอีกครั้ง
สรุปลำดับเช็กแบบเร็ว ถ้า ESP32 Upload ไม่ได้
- เปลี่ยนสาย USB ก่อน
- ดูว่า COM Port ขึ้นหรือไม่
- เช็กไดรเวอร์ CP2102 / CH340
- ตรวจสอบว่าเลือก Board ถูก
- ลด Upload Speed ถ้ายังไม่เสถียร
- กด BOOT ค้างตอน Upload
- ถอดวงจรภายนอกออกแล้วลองใหม่
ถ้าคุณไล่ตามลำดับนี้ ส่วนใหญ่จะเจอสาเหตุได้ค่อนข้างเร็ว โดยไม่ต้องเสียเวลานั่งเดาสุ่มหลายชั่วโมง
และถ้าคุณกำลังเริ่มต้นกับการเขียนโปรแกรมบนบอร์ดนี้จริง ๆ ลองไปดูบทความรวมในหน้า Tutorials และบทความ Arduino IDE เพื่อปูพื้นเรื่องเครื่องมือให้แน่นขึ้นก่อน จะช่วยให้เจอปัญหาน้อยลงเวลาลงโปรเจกต์จริง
FAQ: คำถามที่คนใช้ ESP32 เจอบ่อย
1) ทำไม ESP32 ไฟติด แต่ Upload ไม่ได้
เพราะไฟติดไม่ได้แปลว่าส่งข้อมูลได้ สาย USB บางเส้นจ่ายไฟได้อย่างเดียว แต่ไม่มี data line ทำให้คอมไม่สามารถสื่อสารกับบอร์ดได้
2) จำเป็นไหมต้องกด BOOT ทุกครั้ง
ไม่จำเป็นทุกบอร์ดครับ บอร์ดที่วงจร auto download ทำงานดีจะไม่ต้องกด แต่บางบอร์ด clone หรือบางชุดวงจรไม่เสถียร ต้องช่วยกดเอง
3) ใช้สายมือถือทั่วไป Upload ได้ไหม
ได้ถ้าเป็นสาย data แต่ถ้าเป็นสายชาร์จอย่างเดียวจะไม่ได้ ดังนั้นถ้าไม่แน่ใจ ให้เปลี่ยนสายที่เคยใช้โอนข้อมูลได้มาก่อน
4) ทำไม COM Port ไม่ขึ้น
สาเหตุหลักคือสาย USB, ไดรเวอร์ยังไม่ติดตั้ง, พอร์ต USB ของเครื่องมีปัญหา หรือบอร์ดมีปัญหาเรื่องการเชื่อมต่อ
5) ทำไม Upload ได้บ้างไม่ได้บ้าง
มักเกิดจากสายไม่ดี, ไฟไม่นิ่ง, Upload Speed สูงเกิน, หรือพอร์ต USB สื่อสารไม่เสถียร
6) Error Timed out waiting for packet header คืออะไร
มักแปลว่าคอมยังเชื่อมต่อกับบอร์ดเพื่อเริ่มแฟลชไม่ได้ บอร์ดอาจไม่เข้าโหมดแฟลช หรือการสื่อสารผ่าน USB ยังไม่สมบูรณ์
7) ถ้ามีอุปกรณ์ต่ออยู่กับ GPIO จะเกี่ยวไหม
เกี่ยวได้ครับ โดยเฉพาะขาที่มีผลต่อการบูต ถ้าต่อวงจรไม่เหมาะ บอร์ดอาจบูตผิดโหมดจน Upload ไม่ผ่าน
8) ควรเลือก Board อะไรใน Arduino IDE
ถ้าเป็นบอร์ด ESP32 DevKit ทั่วไป ส่วนมากเริ่มลองที่ ESP32 Dev Module ได้ก่อน
9) จำเป็นต้องลงไดรเวอร์ทุกครั้งไหม
ไม่ครับ ลงครั้งแรกในเครื่องนั้นครั้งเดียวก็พอ แต่ถ้าเปลี่ยนเครื่องใหม่ ก็ต้องเช็กใหม่อีกครั้ง
10) ถ้ายัง Upload ไม่ได้หลังลองทุกอย่างแล้วควรทำยังไง
ให้ถอดวงจรภายนอกออกทั้งหมด ใช้แค่บอร์ดกับสาย USB แล้วลองอีกเครื่องหนึ่ง ถ้ายังไม่ได้อีก มีโอกาสว่าตัวบอร์ดหรือชิป USB to Serial บนบอร์ดมีปัญหา



