กลับไปข่าวทั้งหมด
LabWired จำลองบอร์ด MCU ทั้งบอร์ด รันเฟิร์มแวร์จริงใน CI โดยไม่ต้องมีฮาร์ดแวร์
Tech

LabWired จำลองบอร์ด MCU ทั้งบอร์ด รันเฟิร์มแวร์จริงใน CI โดยไม่ต้องมีฮาร์ดแวร์

SPV Tech Solutions11 พฤศจิกายน 25692 min
#iot#news#firmware#simulation#ci#testing

เมื่อวันที่ 10 พฤศจิกายน 2026 CNX Software รายงานถึง LabWired โปรเจกต์ของนักพัฒนา Andrii Shylenko ที่ทำหน้าที่เป็น "ตัวจำลองบอร์ดไมโครคอนโทรลเลอร์" (MCU firmware simulator) จุดต่างจากตัวจำลองทั่วไปคือมันรัน ไฟล์เฟิร์มแวร์ที่คอมไพล์เสร็จแล้ว ตัวเดียวกับที่จะแฟลชลงชิปจริง และจำลอง ทั้งบอร์ด ไม่ใช่แค่ CPU — รวมถึงเซ็นเซอร์ จอแสดงผล และอุปกรณ์บนบัส I2C/SPI

เกิดอะไรขึ้น

LabWired จับข้อมูลที่เฟิร์มแวร์ส่งออกมาได้ทั้งเอาต์พุต UART ทราฟฟิกบนบัส และสถานะของรีจิสเตอร์ ทำให้ตรวจได้ว่า I2C ส่งถูกไหม SPI แบ่งเฟรมถูกไหม หรือจอแสดงผลออกมาตามที่ควรหรือเปล่า และออกแบบมาให้รันซ้ำได้ใน CI (Continuous Integration ระบบที่รันเทสต์อัตโนมัติทุกครั้งที่มีการแก้โค้ด)

ตัวอย่างในบทความคือใช้ PlatformIO สร้างเฟิร์มแวร์ทดสอบด้วย Unity แล้วรันบน nRF52840 เสมือน ด้วยคำสั่ง pio test --without-uploading -e nrf52840_dkon ผลคือ เทสต์ผ่านทั้ง 3 ข้อใน 1.18 วินาที โดยไม่ต้องเสียบบอร์ดหรือ J-Link เลย

สเปกและรายละเอียดสำคัญ

  • สถาปัตยกรรมที่รองรับ: Arm Cortex-M0+, M3, M4, M7, M33, RISC-V และ Xtensa LX6/LX7 (ชิป ESP32 บางรุ่น)
  • แพลตฟอร์มที่ยกตัวอย่าง: STM32L476, RP2040, nRF52840, ESP32
  • ตัวอย่างบอร์ดสำเร็จรูป: มากกว่า 200 คอนฟิก ในโฟลเดอร์ตัวอย่าง
  • Playground บนเบราว์เซอร์: จำลองบอร์ด NUCLEO-L476RG ต่อเซ็นเซอร์อัลตราโซนิก จอ Nokia และ logic analyzer เสมือน
  • โค้ด: ตัวแกนเขียนด้วย Rust อยู่บน GitHub (w1ne/labwired-core) ครอบคลุมตัวจำลอง CPU บัส หน่วยความจำ อุปกรณ์ต่อพ่วง CLI และตัวรันเทสต์

บทความระบุว่า "โค้ดบางส่วนเป็นโอเพนซอร์ส บางส่วนไม่ใช่" — ส่วน UI และ Playground แบบโฮสต์อยู่นอกแพ็กเกจโอเพนซอร์ส และมีแผนราคาแบบ "AI Tokens" สำหรับทีมที่ใช้โครงสร้างพื้นฐานของผู้พัฒนา ส่วนไลเซนส์ MIT ระบุไว้ในคำอธิบายหน้าเว็บ ควรตรวจไฟล์ LICENSE ใน repo อีกครั้งก่อนใช้เชิงพาณิชย์

จุดที่น่าชื่นชมคือโปรเจกต์มี Fidelity Ledger เอกสารที่บอกตรง ๆ ว่าการจำลองส่วนไหนยังไม่เหมือนฮาร์ดแวร์จริง ตัวจำลองที่บอกข้อจำกัดของตัวเองชัด ๆ น่าใช้กว่าตัวที่อ้างว่าเหมือนจริง 100%

สำหรับคนออกแบบ IoT product

ในโปรเจกต์ IoT จริง เฟิร์มแวร์มักต้องรอ PCB รอบแรกกลับจากโรงงาน 2-4 สัปดาห์ และพอมีบอร์ดแล้วก็มักมีแค่ไม่กี่แผ่นให้ทั้งทีมแย่งกันใช้ ตัวจำลองแบบนี้ช่วยให้ทีมเขียนและเทสต์ไดรเวอร์เซ็นเซอร์ โปรโตคอล และตรรกะหลักได้ ก่อนบอร์ดมาถึง และที่สำคัญกว่าคือใช้เป็น regression test (เทสต์กันของเดิมพัง) ทุกครั้งที่แก้โค้ดหรืออัปเดต OTA ยิ่งอุปกรณ์ขายออกไปมาก ค่าเสียหายจากเฟิร์มแวร์อัปเดตพังยิ่งสูง การมีเทสต์อัตโนมัติจึงเป็นต้นทุนที่คุ้ม อย่างไรก็ตาม ไม่ควรใช้แทนการทดสอบบนฮาร์ดแวร์จริงในเรื่องที่ขึ้นกับไทมิงละเอียด การกินไฟ และสัญญาณวิทยุ

เริ่มง่าย ๆ: เลือกเทสต์ที่ไม่ขึ้นกับไทมิง เช่น การ parse ข้อมูลเซ็นเซอร์ การจัดรูปแบบข้อความ MQTT หรือ state machine ของอุปกรณ์ ให้รันบนตัวจำลองใน CI ก่อน แล้วค่อยเพิ่ม hardware-in-the-loop สำหรับส่วนที่ต้องวัดของจริง

สรุปสำคัญ

LabWired ทำให้ทีม IoT รันเฟิร์มแวร์จริงบนบอร์ดจำลองใน CI ได้ตั้งแต่ก่อนมี PCB — ใช้ลดความเสี่ยงอัปเดตพังได้ดี แต่ยังต้องเทสต์ไทมิง พลังงาน และวิทยุบนฮาร์ดแวร์จริงเสมอ

อ่านซีรีส์ ออกแบบ IoT Product ตั้งแต่ศูนย์จนขายได้

ที่มา

CNX Software
ถ้าข่าวนี้มีประโยชน์ แชร์ให้เพื่อนๆ ด้วยนะ