บทความ › เครื่องมือและความปลอดภัย
ออกแบบ PCB แผ่นแรก ให้ของเล่น ESP32 ด้วย KiCad 10
จากเบรดบอร์ดสู่แผ่น PCB ด้วย KiCad 10 วางโมดูล ESP32-S3 ให้เสาอากาศทำงาน คำนวณความกว้างลายทองแดง ตั้งกฎด้วย rule editor แบบกราฟิก และใช้ variants ทำบอร์ดสองรุ่น
- KiCad 10 (มีนาคม 2026) เพิ่ม rule editor แบบกราฟิก คำแนะนำวิธีแก้ DRC และ design variants ทำให้มือใหม่ตั้งกฎได้โดยไม่ต้องเขียนไวยากรณ์เอง
- เสาอากาศบนโมดูล ESP32 ต้องยื่นออกนอกขอบบอร์ดหรือเว้นช่องใต้เสา ห้ามวางโมดูลกลางบอร์ด
- Espressif แนะนำแหล่งจ่าย 3.3 V อย่างน้อย 500 mA และตัวเก็บประจุ 10 µF ที่ทางเข้าไฟ
- Variants ให้บอร์ดแผ่นเดียวมีรุ่นใส่แบตกับรุ่นไม่ใส่แบต โดยกำหนดชิ้นที่ไม่ประกอบ (DNP) ต่อรุ่น
พอของเล่นบนเบรดบอร์ดทำงานนิ่ง สายจัมเปอร์ก็เริ่มเป็นปัญหา หลุดง่าย ใส่กล่องไม่ได้ ทำซ้ำหลายชิ้นไม่ไหว แผ่น PCB ที่ออกแบบเองแก้ทั้งหมด และ KiCad 10 ซึ่งออกเมื่อมีนาคม 2026 ทำให้ขั้นที่มือใหม่กลัวที่สุด คือการตั้งกฎและแก้ error ง่ายขึ้นมาก บทนี้พาทำบอร์ดแผ่นแรกสำหรับของเล่นที่มีโมดูล ESP32-S3 ปุ่ม และไฟ WS2812
ข้อมูลอ้างอิงประกาศ KiCad 10.0.0 คู่มือ KiCad 10 (ฉบับ 10.0.7) และแนวทางออกแบบฮาร์ดแวร์ ESP32-S3 ของ Espressif
อะไรใหม่ใน KiCad 10 ที่ช่วยมือใหม่
| ฟีเจอร์ | ช่วยอะไร |
|---|---|
| Rule editor แบบกราฟิก | ตั้งกฎ เช่น ระยะห่างและความกว้างลาย ผ่านหน้าต่างที่มีภาพประกอบ ไม่ต้องเขียนไวยากรณ์เอง และยังเข้ากันได้กับ custom rules แบบเดิม |
| Suggested fix สำหรับ DRC | ประกาศรุ่นระบุว่ามีคำแนะนำวิธีแก้ error จาก DRC (ยังไม่มีรายละเอียดในคู่มือ) |
| Design variants | โปรเจกต์เดียวทำได้หลายรุ่น ต่างกันที่ชิ้นที่ประกอบ ค่า หรือ footprint |
| Dark mode บน Windows | ตามธีมระบบ |
| Hop-over | สายในวงจรที่ข้ามกันโดยไม่ต่อ วาดเป็นเส้นโค้งกระโดด อ่านง่ายขึ้น |
| Importer ใหม่ | เปิดไฟล์จาก Allegro, PADS และ gEDA/Lepton ได้ (มีข้อจำกัด) |
ลำดับงานบอร์ดแผ่นแรก
- Schematic: วางสัญลักษณ์ ต่อสาย ใส่ค่าชิ้นส่วน แล้วรัน ERC (ตรวจวงจร)
- Footprint: เลือกรูปลายบนบอร์ดให้ตรงกับชิ้นจริงที่ซื้อ วัดด้วยเวอร์เนียถ้าไม่แน่ใจ
- Update PCB from Schematic: ส่งชิ้นส่วนไปหน้าบอร์ด
- ขอบบอร์ด: วาดบนชั้น Edge.Cuts ขนาดให้พอดีกล่องที่จะพิมพ์ (ดูพิมพ์กล่องให้บอร์ด)
- วางชิ้นส่วน: โมดูล ESP32 ก่อน ตามด้วยไฟเลี้ยง แล้วค่อยปุ่มกับไฟ
- ตั้งกฎ แล้วเดินลาย: ไฟเลี้ยงก่อน สัญญาณทีหลัง เทกราวด์ทั้งสองชั้น
- รัน DRC: แก้จนไม่เหลือ error
- ส่งออกไฟล์ผลิต: Gerber และไฟล์เจาะ
วางโมดูล ESP32 ให้เสาอากาศทำงาน
ข้อผิดที่ทำให้ Wi-Fi อ่อนที่สุดคือวางโมดูลกลางบอร์ดแล้วเททองแดงใต้เสาอากาศ แนวทางของ Espressif:
- วางให้เสาอากาศ PCB ของโมดูล ยื่นออกนอกขอบบอร์ด โดยจุดป้อนสัญญาณชิดขอบ
- ถ้ายื่นไม่ได้ ให้ ตัดบอร์ดออก ทั้งสองข้างและใต้เสาอากาศ เพื่อเว้นพื้นที่ว่าง
- ห้ามวางโมดูลกลางบอร์ดแล้วตัดช่องรอบทั้งสี่ด้าน
- เททองแดงกราวด์และเจาะ via กราวด์ถี่ ๆ ใกล้เสาอากาศบนบอร์ดหลัก
- ในตัวของเล่นที่ประกอบเสร็จ เว้นระยะจากเสาอากาศถึงผนังกล่อง อย่างน้อย 15 mm ทุกทิศ ตามคำแนะนำ
ใน KiCad ใช้ rule area (keepout) วางทับพื้นที่ใต้เสาอากาศ ตั้งไม่ให้มีลายทองแดงและไม่ให้เทกราวด์ DRC จะเตือนถ้ามีอะไรล้ำเข้าไป
ตัวอย่างคำนวณ: ลายทองแดงไฟเลี้ยงกว้างเท่าไร
ไฟเลี้ยง: Espressif แนะนำแหล่งจ่าย 3.3 V ที่จ่ายได้ อย่างน้อย 500 mA ตัวเก็บประจุ 10 µF ที่ทางเข้าไฟ และวงจร RC ที่ขา EN ค่าทั่วไป 10 kΩ กับ 1 µF
KiCad มีเครื่องมือ Calculator → Track Width ใช้สูตรจาก IPC-2221 สำหรับลายชั้นนอก ทองแดง 1 oz (35 µm) ยอมให้ร้อนขึ้น 10 °C
| กระแส | ความกว้างขั้นต่ำ (ΔT 10 °C) |
|---|---|
| 0.5 A (ESP32-S3) | ประมาณ 0.12 mm |
| 1.0 A | ประมาณ 0.30 mm |
| 1.5 A (ไฟ WS2812 หลายดวง) | ประมาณ 0.53 mm |
คิดทีละขั้นสำหรับ 1.0 A:
- สูตร I = 0.048 × ΔT^0.44 × A^0.725 (A คือพื้นที่หน้าตัด หน่วย mil²)
- 0.048 × 10^0.44 ≈ 0.132 → A^0.725 = 1.0 ÷ 0.132 ≈ 7.57 → A ≈ 16.3 mil²
- ทองแดง 1 oz หนาราว 1.378 mil → กว้าง = 16.3 ÷ 1.378 ≈ 11.8 mil ≈ 0.30 mm
ตัวเลขนี้คือขั้นต่ำ ในบอร์ดของเล่นที่มีพื้นที่เหลือ ตั้งลายไฟเลี้ยง 0.5–0.8 mm ไว้เลยจะได้ทั้งเผื่อความร้อนและแรงดันตกน้อย กระแสของไฟ WS2812 คำนวณตามไฟ WS2812 กับ ESP32 แล้วนำมาใส่ตารางนี้
ตั้งกฎด้วย rule editor แบบกราฟิก
แทนที่จะจำว่าต้องกว้างเท่าไร ให้สร้างกฎให้ DRC จับเอง ใน rule editor ต้นไม้ด้านซ้ายแบ่งกฎเป็น 5 กลุ่ม Electrical, Manufacturability, Highspeed design, Footprints และ Custom
ตัวอย่าง: กฎชื่อ PWR track width
- สร้าง net class ชื่อ Power ใส่ net
+3V3และ+5V - ในกลุ่ม Electrical เลือกชนิดกฎ Minimum connection width แล้วกด New Rule
- ตั้งชื่อ ใส่ค่าขั้นต่ำ 0.5 mm ในภาพประกอบ
- Conditions เลือก Netclass = Power
- กด Show Matches ดูว่ากฎจับวัตถุถูกตัว แล้ว Save
ชื่อกฎจะขึ้นในรายงาน DRC ตั้งชื่อให้อ่านแล้วรู้ทันทีว่าผิดอะไร และกฎที่สร้างจากหน้าต่างนี้ใช้ไวยากรณ์เดียวกับไฟล์ .kicad_dru วันหลังเปิดแก้แบบเขียนเองต่อได้
ใส่ค่าขั้นต่ำของโรงงานผลิตใน Board Setup → Constraints ก่อนเดินลาย แล้วใช้ค่าที่กว้างกว่านั้นจริง ๆ ไม่ใช่เดินชิดขีดจำกัดทุกเส้น
Variants: บอร์ดเดียว สองรุ่น
ของเล่นตัวเดียวกันอาจอยากมีสองรุ่น รุ่นเสียบ USB อย่างเดียว กับรุ่นมีแบตลิเธียมและวงจรชาร์จ ใน KiCad 10 ทุกโปรเจกต์มี variant ตั้งต้น เพิ่มชื่อใหม่จาก dropdown บนแถบเครื่องมือ (Add New Design Variant)
- รุ่น
USB-onlyตั้งชิปชาร์จ ขั้วต่อแบต และชิ้นประกอบรอบ ๆ เป็น DNP (ไม่ประกอบ) บน schematic และชั้น fabrication จะมีกากบาท - เปลี่ยนค่าชิ้นส่วนต่อรุ่นได้ เช่น ตัวต้านทานตั้งกระแสชาร์จ ซึ่ง Symbol Fields Table จะไฮไลต์ช่องที่ต่างจากค่าตั้งต้น
- ตัดชิ้นออกจาก BOM หรือไฟล์ตำแหน่งชิ้นส่วน แยกกันได้ต่อรุ่น
- ชื่อ reference (R1, U2) เปลี่ยนต่อรุ่นไม่ได้
เรื่องแบต อ่านใช้แบตลิเธียมอย่างปลอดภัย ก่อนออกแบบวงจรชาร์จ
ข้อผิดพลาดที่เจอบ่อย
- วางโมดูลกลางบอร์ด แล้วเททองแดงใต้เสาอากาศ Wi-Fi ระยะสั้นลงมาก
- ไม่ตรวจ footprint กับชิ้นจริง ขาปุ่มหรือขั้วต่อไม่ตรงรู ต้องสั่งบอร์ดใหม่
- ลายไฟเลี้ยงกว้างเท่าลายสัญญาณ ใช้กฎ net class แยกตั้งแต่ต้น
- ปิดเตือน DRC แทนการแก้ ตั้ง exclusion เฉพาะกรณีที่เข้าใจแล้วว่าไม่เป็นปัญหา
- ลืมเผื่อรูยึดและขนาดกล่อง ออกแบบขอบบอร์ดคู่กับกล่องพิมพ์ 3 มิติไปพร้อมกัน
แหล่งข้อมูล
- KiCad 10.0.0 Released — KiCad
- PCB Editor (Design rules) — KiCad 10.0 Documentation
- Schematic Editor (Design variants) — KiCad 10.0 Documentation
- PCB Calculator — KiCad 10.0 Documentation
- ESP32-S3 PCB Layout Design — Espressif Hardware Design Guidelines
- ESP32-S3 Schematic Checklist — Espressif Hardware Design Guidelines
คำถามที่พบบ่อย
บอร์ด 2 ชั้นพอสำหรับ ESP32 ไหม
พอสำหรับงานที่ใช้โมดูลสำเร็จรูป Espressif แนะนำ 4 ชั้นเป็นหลัก แต่ยอมรับ 2 ชั้นได้ ถ้าชั้นล่างเป็นกราวด์เต็มแผ่นให้มากที่สุด ไม่วางชิ้นส่วนด้านล่าง และมีลายสัญญาณด้านล่างน้อยที่สุด
ค่ากฎ เช่น ความกว้างลายและระยะห่างขั้นต่ำ เอามาจากไหน
จากหน้าความสามารถของโรงงานผลิต PCB ที่จะสั่ง ใส่ค่าขั้นต่ำของโรงงานใน Board Setup แล้วตั้งค่าที่ใช้จริงให้กว้างกว่านั้น จะได้มีระยะเผื่อ
ไฟล์เก่าจาก KiCad รุ่นก่อนเปิดใน 10 ได้ไหม
เปิดได้ แต่พอบันทึกด้วยรุ่น 10 แล้ว รุ่นเก่าอาจเปิดไฟล์ไม่ได้ เก็บสำเนาหรือ commit ลง git ก่อนเปิดด้วยรุ่นใหม่
วงจรและโค้ดในบทความทดสอบกับบอร์ดตัวอย่าง บอร์ดต่างรุ่นอาจใช้ขาต่างกัน ตรวจ pinout ของบอร์ดที่ใช้ก่อนต่อไฟเสมอ