XIAO • nRF52840 • IPS Display • Browser Simulation
XIAO IPS Display 3 รุ่น: รัน Firmware จริงใน Browser ผ่าน Velxio ได้อย่างไร?
Seeed Studio เปิดตัว XIAO IPS Display ฝั่ง nRF52840 Plus สามขนาดในวันที่ 8 กันยายน 2026 แต่เพียงไม่กี่วันต่อมา Velxio ก็ทำให้เราสามารถเปิด Board เหล่านี้ใน Browser, กด Run แล้วดู Firmware ของ Seeed วาดภาพบนจอเสมือนได้โดยยังไม่ต้องมี Hardware อยู่บนโต๊ะ
จุดที่น่าสนใจคือ นี่ไม่ใช่แค่ภาพ Mock-up ที่ Browser วาดเลียนแบบหน้าจอจริง เพราะ Sketch ถูก Compile แล้ว Firmware ที่ได้ ถูก Execute บน nRF52840 Engine ก่อนข้อมูลจะวิ่งผ่าน Peripheral Model อย่าง SPI, I2C, Display, IMU, Touch และ microSD
- บทความนี้โฟกัส XIAO IPS Display ฝั่ง nRF52840 Plus จำนวน 3 ขนาด
- 0.96" ใช้ ST7789 80×160 และมี User Buttons 2 ปุ่ม
- 1.14" ใช้ ST7789 135×240 มี User Buttons 3 ปุ่ม และ Grove I2C
- 1.47" ใช้ JD9853A 172×320 พร้อม Capacitive Touch และ microSD
- Velxio Compile Sketch ด้วย arduino-cli และ Seeed nRF52 Core ก่อนรัน Firmware ใน Simulator
- Display Model รับข้อมูลจาก Bus/Pin ไม่ได้ดัก Graphics API แล้ววาดแทนตรง ๆ
- IMU, Touch, microSD และ Battery Input สามารถ Interaction ผ่าน Browser ได้ตาม Board ที่รองรับ
- PDM Microphone, Bluetooth และ Raise-to-Wake บางส่วนยังไม่ได้ Model ใน Source รอบนี้
- Velxio พบปัญหาบางอย่างใน Vendor Code ระหว่างทดสอบ แต่สถานะ Upstream ปัจจุบันบางส่วนเปลี่ยนไปแล้ว
- Browser Simulation ช่วยทดสอบ Logic ได้ แต่ไม่ใช่ Physical Hardware Benchmark หรือ Electrical Validation
XIAO IPS Display 3 รุ่นต่างกันยังไง?
ทั้งสามรุ่นในบทความของ Velxio ใช้ XIAO nRF52840 Plus เป็นคอมพิวเตอร์หลักเหมือนกัน แต่ Display และ I/O รอบ Board ต่างกัน ทำให้ Use Case ของแต่ละขนาดค่อนข้างชัด
| รุ่น | Display | Resolution | User Buttons | จุดเด่น |
|---|---|---|---|---|
| 0.96" IPS Display | ST7789 | 80 × 160 | 2 | ขนาดเล็ก เหมาะกับ Status UI หรือ Wearable ขนาดกะทัดรัด |
| 1.14" IPS Display | ST7789 | 135 × 240 | 3 | มี Grove I2C สำหรับต่อ Sensor เพิ่ม |
| 1.47" IPS Touch Display | JD9853A | 172 × 320 | 2 | Capacitive Touch + microSD |
0.96" — เล็กสุด 80 × 160
รุ่นเล็กสุดเหมาะกับงานที่ต้องการข้อมูลไม่มาก เช่น Battery Status, Sensor Value, Wearable UI หรือข้อความสั้น ๆ โดยยังมี IMU และ Microphone อยู่บน Platform เดียวกับรุ่นใหญ่
1.14" — เพิ่มพื้นที่จอและ Grove I2C
Grove I2C เป็นจุดต่างที่สำคัญ เพราะทำให้รุ่นนี้เหมาะกับการเพิ่ม Sensor ภายนอก โดยไม่ต้องเดินสาย I2C เองทั้งหมด
1.47" — Touch + microSD
ถ้าต้องการ UI ที่ผู้ใช้กดบนหน้าจอโดยตรง หรือ Project ที่ต้องอ่านไฟล์จาก Storage รุ่น 1.47" มี Hardware เพิ่มจากสองรุ่นเล็กชัดเจน
Hardware กลางของทั้งสามรุ่นคือ XIAO nRF52840 Plus
แม้หน้าจอจะต่างกัน แต่ Board กลุ่มนี้ใช้ Platform ฝั่ง nRF52840 Plus เหมือนกัน ทำให้ Firmware และ Peripheral Model หลายส่วนสามารถใช้แนวทางเดียวกันได้
| รายการ | ข้อมูลที่ Source ระบุ |
|---|---|
| MCU | Nordic nRF52840 |
| CPU | Arm Cortex-M4 + FPU @ 64 MHz |
| RAM | 256 KB |
| Internal Flash | 1 MB |
| Additional onboard Flash | 2 MB |
| Wireless | Bluetooth Low Energy |
| Motion Sensor | 6-axis IMU |
| Audio Input | PDM Microphone |
| Battery | JST Battery Connector พร้อม Battery Monitoring |
Velxio จำลอง Board ใน Browser ยังไง?
สิ่งที่ทำให้เรื่องนี้น่าสนใจ คือ Velxio ไม่ได้เริ่มจากการทำ Animation เลียนแบบหน้าจอของ Seeed
Flow ที่ Source อธิบายคือ:
Code ที่ Developer เขียน
Compile ด้วย Seeed nRF52 Core และ FQBN ของ Board
ได้ Binary สำหรับ nRF52840
Execute Firmware instruction-by-instruction
GPIO, SPI, I2C, Display, IMU, Touch, Storage
แสดงผลของ Hardware Model ที่ Firmware กำลังขับ
นี่ทำให้การลองเปลี่ยน Code มีความหมายมากกว่าการ Preview UI เพราะ Firmware ต้องผ่าน Hardware-facing Path หลายส่วนเหมือนที่ Code จริงคาดหวัง
ทำไมภาพบนจอถึงไม่ใช่ Mock-up?
สมมติ Sketch เรียก Graphics Library เพื่อวาด Rectangle
วิธีจำลองแบบง่ายอาจทำแค่:
เจอคำสั่ง drawRect → Browser วาด Rectangle
แต่ Velxio อธิบายว่าไม่ได้ทำแบบนั้น
Firmware ยังคง Configure SPI และ Shift Bytes ออกไป จากนั้น Display Model อ่าน Chip Select, Data/Command และข้อมูลที่ถูกส่งจริง
ถ้า Developer เลิกใช้ Graphics Library แล้วเปลี่ยนมาเขียน SPI เอง Display Model ก็ยังสามารถทำงานได้ เพราะ Simulator กำลังดู Bus ไม่ได้ดูชื่อ Function ใน Library
เริ่มง่าย ๆ ด้วย GraphicTest
Velxio แนะนำให้เริ่มจาก XIAO 1.14" GraphicTest เพราะเห็นผลตรงที่สุด: กด Run แล้วดู Panel ไล่วาด Primitive หลายชนิด
Official Seeed GraphicTest ที่ตรวจใน GitHub มีการทดสอบเช่น:
- Color Bars
- Lines
- Fast Lines
- Rectangles
- Filled Rectangles
- Circles
- Triangles
- Rounded Rectangles
- Text
- Pixel Gradient
แต่ละ Test ยังจับเวลาด้วย micros() และส่งผลออก Serial
ลอง XIAO IPS Display ผ่าน Live Simulation
Source มี Interactive Embed สำหรับเปิด Board และลองรัน Firmware ได้จาก Browser โดยตรง
สำหรับ GraphicTest โดยตรง Source ยังให้ Example ของ XIAO 1.14" ที่สามารถเปิดแล้วกด Run ก่อนแก้ Sketch และ Build ใหม่ได้
IMU ใน Browser ทำ Electronic Quicksand ได้ยังไง?
Demo ที่เห็นภาพชัดที่สุดตัวหนึ่งคือ Electronic Quicksand
Firmware สร้างเม็ดทรายจำนวนหนึ่งบนจอ แล้วใช้ Accelerometer Data จาก IMU เป็นทิศทางแรงโน้มถ่วง
ใน Velxio ผู้ใช้เปิด Sensors Panel แล้วลาก Tilt Control ด้วย Mouse เพื่อเปลี่ยน Orientation ของ Board
จากนั้น IMU Model ตอบค่ากลับไปยัง Firmware ผ่าน Interface ที่ Sketch คาดหวัง และเม็ดทรายจึงไหลไปตามทิศทางใหม่
Touch ของรุ่น 1.47" ถูกจำลองแบบไหน?
รุ่น 1.47" มี Capacitive Touch ซึ่งทำให้ Simulator ต้องจำลองมากกว่าการวาดภาพ
Main Source ระบุว่า Touch Controller Model ตอบ Report รูปแบบเดียวกับที่ Seeed Driver อ่าน และดึง Interrupt Line ลง ระหว่างที่มี Touch
เมื่อใช้ Mouse แตะจุดบน Virtual Display Firmware จึงได้รับ Coordinate แล้ว Demo อย่าง Touch Circle สามารถวาดวงกลมตรงตำแหน่งที่ผู้ใช้กด
microSD ของรุ่น 1.47" ก็อยู่ใน Simulation ด้วย
รุ่น 1.47" มี microSD slot และ Source ระบุว่า Card กับ Display แชร์ SPI Bus บน Hardware จริง
Velxio จึง Model Shared Bus และ Chip Select ของอุปกรณ์ทั้งสองเช่นกัน
ผู้ใช้สามารถใส่ File เข้า Virtual SD Card แล้วให้ Sketch Mount และอ่านไฟล์ได้จาก Browser
Battery Slider ไม่ได้แค่เปลี่ยนเลข Voltage บนหน้าจอ
Battery Demo มี Logic ที่น่าสนใจกว่าการอ่าน ADC แล้วแสดงเปอร์เซ็นต์ทันที
Official Code ที่ตรวจ อธิบายว่าเมื่อเสียบ USB Charger/VBAT Node สามารถมีค่า Voltage ที่ดูเหมือน Cell จริง แม้ไม่มี Battery
Firmware จึงใช้ State Machine ที่มีแนวคิดประมาณ:
- Boot
- เรียนรู้ USB-only Baseline
- Battery Insert Candidate
- Battery Present
- Battery Remove Candidate
Velxio ทำให้ผู้ใช้เลื่อน Battery Input แล้วสังเกตได้ว่า Firmware State Machine ตัดสินใจเมื่อไรว่า Battery ถูกเสียบหรือถอด
อะไรที่ Velxio ยังไม่ได้ Model?
Main Source ระบุช่องว่างไว้ชัดเจน ซึ่งเป็นข้อดีมากกว่าการทำ Simulator ที่เงียบเมื่อ Feature ไม่ทำงาน
| Feature | สถานะตาม Source |
|---|---|
| PDM Microphone | ยังไม่มี Input บน Canvas ป้อนให้ |
| I2S Output Pads | ยังไม่ได้ Model ในรอบนี้ |
| Bluetooth | nRF52840 Radio อยู่นอก Scope ของ Engine |
| Raise to Wake | ต้องใช้ IMU Wake Interrupt และ System ON Sleep ที่ยังไม่ Model ครบ |
มี 15 Examples ให้ลองอะไรบ้าง?
Main Source ระบุว่า Gallery มีทั้งหมด 15 Examples และ 14 ใน 15 ตัว ใช้ไฟล์ของ Seeed เป็นฐานโดยแก้เพียงเล็กน้อย เพื่อให้เข้ากับ Environment
| Board | Examples ที่ Source ระบุ |
|---|---|
| 0.96" | GraphicTest, Electronic Quicksand, Battery Status |
| 1.14" | GraphicTest, Grove SHT31, Buttons, Battery Status, Electronic Quicksand |
| 1.47" | GraphicTest, Touch Circle, SD Text, Battery Status, Electronic Quicksand, Panel Demo, LCD Diagnostic |
จุดดีของ Gallery แบบนี้คือ Developer สามารถเริ่มจาก Example ที่ตรงกับ Peripheral ที่สนใจ ไม่จำเป็นต้องเริ่มจาก Firmware ใหญ่ทั้ง Board
การรัน Vendor Code ช่วยเจอปัญหาที่ซ่อนอยู่ได้ยังไง?
ส่วนที่น่าสนใจที่สุดของบทความ Velxio คือ Simulator ไม่ได้แค่พิสูจน์ว่า Board Model ทำงาน แต่ยังช่วยเปิดเผยปัญหาใน Software Stack ที่ใช้กับ Hardware จริงด้วย
Case-sensitive Include ใน Seeed_GFX2
ตอน Velxio ทำบทความวันที่ 13 กันยายน มีการรายงานว่า Seeed_GFX2 1.0.0 มีชื่อ File กับ #include บางจุดใช้ตัวพิมพ์ใหญ่/เล็กไม่ตรงกัน
ระบบอย่าง macOS หรือ Windows บาง Configuration อาจไม่เจอปัญหา แต่ Linux Compile Farm ที่ใช้ Case-sensitive Filesystem จะหยุด Build ด้วย Error ว่าไม่พบ File
1.14" RGB / BGR Color Order
Velxio ยังรายงานว่าระหว่างทดสอบ 1.14" พบความไม่ตรงกันของ Color Order ซึ่งทำให้ Red/Blue สามารถสลับกันได้เมื่อ Configuration ไม่ตรงกับ Panel
อย่างไรก็ตาม Current Official Source ที่ตรวจภายหลังมีการปรับ Library, Demo และ Panel Configuration หลายส่วน จึงไม่ควรเหมารวมว่า ทุก Revision ของ 1.14" มี Color Bug แบบเดียวกัน
ดู Code จาก Official Seeed GraphicTest
Official Display-Gadgets Repository มี GraphicTest ของ XIAO nRF52840 Plus 1.14" ที่ใช้ Seeed_GFX2 และเรียก Board/Panel Configuration โดยตรง
Code ด้านล่างเป็น Excerpt จาก Source จริง สำหรับ Initialize Display และตรวจขนาด Panel
if (!display.begin<Board_XIAO_1inch14_LCD<LCD_RST_PIN, LCD_BL_PIN>,
Config_Seeed_1inch14_LCD_ST7789>()) {
Serial.println(display.lastResult().message);
return;
}
display.fillScreen(TFT_BLACK);
Serial.print("LCD width: ");
Serial.println(display.width());
Serial.print("LCD height: ");
Serial.println(display.height());
Source เดียวกันยังใช้ Drawing API อย่าง Lines, Rectangles, Circles, Triangles, Text และ Pixel Gradient เพื่อทดสอบ Graphics Path
Simulator ช่วย Maker ตรงไหนก่อนมี Board จริง?
1. เช็กว่า Sketch Compile ไหม
ปัญหา Library, Include, Board Package หรือ API สามารถโผล่ก่อนที่ Hardware จะมาถึง
2. ทดลอง Layout ของ UI
ความละเอียด 80×160, 135×240 และ 172×320 ต่างกันมาก การเห็น UI บน Virtual Panel ช่วยตัดสินใจเรื่อง Text, Button และพื้นที่แสดงผลได้เร็วขึ้น
3. ทดสอบ Logic ที่พึ่ง Sensor
Demo อย่าง Electronic Quicksand แสดงให้เห็นว่า Sensor Input สามารถเปลี่ยนผ่าน Browser แล้วให้ Firmware ตอบสนองจริง
4. ทดสอบ Touch และ File Flow
รุ่น 1.47" สามารถทดลอง Touch Interaction และการอ่าน File จาก Virtual microSD ก่อนย้ายไป Hardware
5. เจอ Cross-platform Build Problem เร็วขึ้น
Case-sensitive Include เป็นตัวอย่างชัดว่า Code ที่ Compile บนเครื่อง Developer อาจพังเมื่อไปอยู่บน Linux Build Farm
FAQ: คำถามที่พบบ่อย
1. XIAO IPS Display ในบทความนี้มีทั้งหมดกี่รุ่น?
บทความ Velxio โฟกัสสามรุ่นฝั่ง XIAO nRF52840 Plus: 0.96", 1.14" และ 1.47" แต่ Current Seeed Display Series ยังมี Variant ฝั่ง ESP32-S3 Plus ด้วย
2. ทั้งสามรุ่นใช้ MCU อะไร?
รุ่นที่เป็น Scope ของบทความใช้ XIAO nRF52840 Plus
3. รุ่น 0.96" ความละเอียดเท่าไร?
80 × 160 pixels และใช้ ST7789
4. รุ่น 1.14" ความละเอียดเท่าไร?
135 × 240 pixels และใช้ ST7789
5. รุ่น 1.47" ความละเอียดเท่าไร?
172 × 320 pixels และ Source ระบุ JD9853A เป็น Display Controller
6. รุ่นไหนมี Touch?
1.47" IPS Touch Display
7. รุ่นไหนมี microSD?
1.47" ตาม Source ที่ใช้ในบทความนี้
8. รุ่นไหนมี Grove Connector?
1.14" มี Grove I2C Connector
9. Velxio ใช้ Mock-up ของหน้าจอหรือเปล่า?
Source ระบุว่าไม่ใช่ Firmware ถูก Execute แล้ว Display Model รับข้อมูลจาก Bus/Pin State
10. Sketch ถูก Compile ด้วยอะไร?
Main Source ระบุว่าใช้ arduino-cli ร่วมกับ Seeed nRF52 Core และ FQBN ของ Board
11. เขียน SPI เองโดยไม่ใช้ Seeed Graphics Library ได้ไหม?
ตามคำอธิบายของ Velxio Display Model ทำงานจาก Bus-level behavior ดังนั้นไม่ได้ผูกกับการ Intercept Graphics Library Function โดยตรง
12. IMU จำลองได้ไหม?
ได้ใน Examples ที่รองรับ โดยผู้ใช้สามารถเปลี่ยน Tilt ผ่าน Sensor Control บน Canvas
13. Bluetooth จำลองได้ไหม?
Main Source ระบุว่า nRF52840 Radio ยังอยู่นอก Scope ของ Simulation Engine รอบนี้
14. Microphone จำลองได้ไหม?
Main Source ระบุว่า PDM Microphone ยังไม่มี Input จาก Canvas ป้อนเข้า Simulation
15. Battery Simulation ใช้แทนการทดสอบ Battery จริงได้ไหม?
ไม่ได้ ใช้ดู Firmware Logic และ State Machine ได้ แต่ไม่ใช่ Electrical, Charging หรือ Runtime Validation
16. Case-sensitive Include Bug ของ Seeed_GFX2 ยังมีอยู่ไหม?
Velxio พบปัญหานี้ใน Snapshot ที่ใช้ตอนเขียนบทความ แต่ Current Main ที่ตรวจล่าสุด ไม่พบ Filename Mismatch ชุดเดิมในจุดที่ตรวจ จึงควรเช็ก Library Version และ Revision ที่ใช้อยู่จริง
17. Simulator ใช้วัด FPS หรือ Power Consumption แทน Board จริงได้ไหม?
Source ไม่รองรับการใช้ Browser Simulation เป็น Physical Hardware Benchmark ดังนั้นควรวัดค่าดังกล่าวจาก Hardware จริง
18. จำเป็นต้องมี Account เพื่อเปิด Example หรือไม่?
Main Source ระบุว่า GraphicTest Example สามารถเปิดได้โดยไม่ต้องมี Account ณ เวลาที่บทความเผยแพร่ แต่ Plan และ Access Policy สามารถเปลี่ยนได้ในอนาคต
โปรเจกต์นี้ควรอ่าน Source และลอง Simulator ควบคู่กัน
ถ้าสนใจว่าการจำลองระดับ Bus ต่างจาก UI Mock อย่างไร แนะนำอ่านบทความ Velxio ต้นฉบับ แล้วเปิด GraphicTest พร้อมดู Official Seeed Source Code ไปด้วย
References / แหล่งข้อมูลต้นฉบับ
- Velxio — Seeed's new XIAO IPS Display boards, running in your browser days after launch
- Seeed-Projects — Display-Gadgets
- Seeed Studio — Seeed_GFX2
- Official XIAO nRF52840 Plus 1.14 GraphicTest Source
- Seeed Studio Wiki — XIAO Display Gadgets Series
- Seeed Studio — XIAO 0.96 Inch IPS Display Product Page
- Seeed Studio — XIAO 1.14 Inch IPS Display Product Page
- Seeed Studio — XIAO 1.47 Inch IPS Touch Display Product Page
ก่อนต่อ Board จริง ลองให้ Firmware พังใน Browser ก่อนก็ได้
Simulator แบบนี้ไม่ได้แทน Hardware จริงทั้งหมด แต่ช่วยลดรอบทดลองเรื่อง Code, Display UI, Sensor Logic, Touch Interaction และ File Flow ก่อนเริ่มประกอบ Prototype
หากกำลังทำ Wearable, Mini Dashboard, Sensor Display หรือ Embedded UI Project สามารถสอบถามทีม Globalbyte เรื่อง Development Board, Display, Sensor, Module และ Maker Accessories ที่เหมาะกับ Project ได้