Cyberdeck • Raspberry Pi • ESP32 • Sensor • Open Source Science
Open Source Science Tricorder Cyberdeck: ห้องแล็บพกพาจาก uConsole
Tricorder ใน Star Trek อาจเป็นอุปกรณ์จากโลกนิยายวิทยาศาสตร์ แต่ Open Source Science Tricorder Cyberdeck ของ Peter Jansen พยายามทำสิ่งที่ใกล้เคียงในโลกจริง: รวมเครื่องมือวัดหลายประเภทไว้ในเครื่องพกพาเดียว ตั้งแต่ Thermal Imaging, Visible Spectroscopy, Magnetic Field Imaging ไปจนถึง Radiation และ Environmental Sensing
จุดเด่นของ Project นี้ไม่ใช่แค่หน้าตาแบบ Cyberdeck แต่คือการเอา Sensor จริงหลายชนิด มารวมกับ ClockworkPi uConsole, Raspberry Pi Compute Module, ESP32 และ Python UI เพื่อให้เครื่องเดียวสามารถสำรวจข้อมูลหลายมิติของสภาพแวดล้อมได้
- Project นี้เน้น Science Instrument จริง ไม่ได้ทำเป็น Star Trek Prop อย่างเดียว
- มี Thermal Camera, Visible Spectrometer, Magnetic Imaging, Magnetometer, Radiation Spectroscopy และ Environmental Sensors
- ClockworkPi uConsole ทำหน้าที่เป็น Console หลัก ส่วน ESP32 เป็น Sensor Interface สำหรับ Sensor ที่ไม่ได้ต่อ USB โดยตรง
- ข้อมูลจาก ESP32 ถูกส่งไปยัง Linux ผ่าน USB-to-Serial ในรูปแบบ JSONL
- User Interface ฝั่ง uConsole เขียนด้วย Python และ Pygame
- Magnetic Imaging Tile ถูกออกแบบให้ไปได้ถึงประมาณ 20 kHz แต่ UI ปัจจุบัน Refresh อยู่เพียงราว 1 frame/s ตาม Errata ของผู้สร้าง
- Source มี Conflict ว่าเครื่องปัจจุบันใช้ CM4 หรือ CM5 จึงไม่ควรฟันธงโดยไม่มี Caveat
- Repository เปิด PCB, Firmware, Python UI, STL และ OpenSCAD ให้ศึกษาและสร้างต่อได้
- ผู้สร้างระบุชัดว่าเป็น Prototype ไม่ใช่ Product และยังมีปัญหาเรื่อง Cooling, Battery, Wi-Fi Antenna และ Feature บางส่วนที่ยังไม่เสร็จ
Open Source Science Tricorder คืออะไร?
ในโลกของ Star Trek Tricorder คืออุปกรณ์พกพาที่รวม Sensor หลายแบบ เพื่อช่วยสำรวจสิ่งแวดล้อมและสิ่งที่ไม่รู้จัก
Open Source Science Tricorder Cyberdeck นำแนวคิดนั้นมาทำในแบบที่จับต้องได้ โดยใช้ Sensor ที่มีอยู่จริง และออกแบบเครื่องให้เป็น Platform สำหรับการทดลองทางวิทยาศาสตร์ มากกว่าการเลียนแบบหน้าตาจากซีรีส์
กว่าจะมาถึง Cyberdeck: Prototype กว่าสิบปี
Repository ของ Project ไม่ได้โชว์แค่เครื่องที่เสร็จแล้ว แต่เล่าการลอง Form Factor หลายแบบ ก่อนจะมาลงตัวกับ uConsole
Arducorder Mini
รุ่นก่อนหน้าเน้น Custom Hardware มาก และเป็นหนึ่งใน Major Release ของ Open Source Science Tricorder Project
Smartphone Attachment
มีการทดลองทำ Sensor Pack ที่ต่อกับ iPhone โดยใช้ Raspberry Pi Zero W และ Arduino เป็นส่วนหนึ่งของ Architecture แต่ผู้สร้างมองว่า Design ยังซับซ้อนและเทอะทะเกินไป
Teensycorder และ T-Deck
มีการลองใช้ Form Factor คล้าย BlackBerry เพื่อรวม Keyboard กับ Display ในอุปกรณ์พกพา แต่ข้อจำกัดด้านพื้นที่และจำนวน Sensor ทำให้ยังไม่ลงตัว
PicoCalc Prototype
PicoCalc ให้ Form Factor ที่เล็กและ Hackable แต่ผู้สร้างพบว่าทั้ง Compute Power และ Screen Resolution ยังไม่ตอบโจทย์สำหรับ Camera, Thermal Imaging และ Desktop-style Software
uConsole
สุดท้าย ClockworkPi uConsole ให้ทั้ง Keyboard, IPS Display, Linux และ Compute Module พร้อมพื้นที่ให้ทำ Sensor Backpack ที่ด้านหลังได้เป็นระบบมากขึ้น
Architecture ของ Tricorder ตัวนี้
ระบบแบ่งงานออกเป็นสองฝั่งหลัก:
รัน Linux, Python UI, Camera และงาน Processing หลัก
Poll Sensor ที่ไม่ได้ต่อ USB โดยตรง แล้วส่งข้อมูลขึ้นไปยัง uConsole
USB Sensor บางตัวสามารถคุยกับ Linux ได้โดยตรง ขณะที่ Sensor ผ่าน I2C, Analog หรือ Interface อื่น ถูกจัดการผ่าน ESP32
CM4 หรือ CM5? Source ยังมีข้อมูลไม่ตรงกัน
Hackaday วันที่ 30 กันยายน 2026 ระบุว่า Cyberdeck ใช้ Compute Module 5
แต่ Official GitHub README ปัจจุบันยังมีหลายส่วนที่พูดถึง Compute Module 4 เช่น Cost Section และคำอธิบาย Iteration 13
ขณะเดียวกัน Hardware List ของ uConsole Extension ก็ระบุว่ามี CM5 Adapter
Thermal Camera มองอะไรได้?
Official Hardware List ระบุ Thermal Camera เป็น Waveshare Long-wave IR Camera 80×62 ผ่าน USB-C
ระบบยังมี Visible-light USB Camera คือ Waveshare IMX378 12MP ทำให้ผู้ใช้มีทั้งภาพปกติ และภาพ Thermal ในเครื่องเดียว
Visible Spectrometer 340–780 nm ทำงานยังไง?
Sensor ฝั่ง Visible Spectroscopy ใช้:
Hamamatsu C12666MA Microspectrometer
Official Repository ระบุ:
- 256 Spectral Channels
- ช่วงประมาณ 340–780 nm
- Practical Spectral Resolution ประมาณ 15 nm
Spectrometer ต่างจาก Sensor แสงธรรมดา เพราะไม่ได้บอกแค่ว่า “สว่างแค่ไหน” แต่แยกข้อมูลตาม Wavelength เพื่อดูว่าแสงในแต่ละช่วงมีความเข้มอย่างไร
Magnetic Field Camera ต่างจาก Magnetometer ยังไง?
Project มี Sensor สนามแม่เหล็กสองแนว ที่ทำหน้าที่ต่างกัน
MLX90393 Magnetometer
ใช้วัดสนามแม่เหล็ก ในแกน X, Y และ Z เพื่อดู Strength / Direction ณ จุดที่ Sensor อยู่
Magnetic Imaging Tile
เป็น Sensor Array:
8 × 8 = 64 Pixels
จึงสามารถแสดง Spatial Pattern ของสนามแม่เหล็กเป็นภาพ แทนการวัดเพียงค่าจุดเดียว
20 kHz ที่ Source พูดถึง ไม่ใช่ Current UI 20,000 FPS
Official README ระบุว่า Magnetic Imaging Tile ถูกออกแบบให้ไปได้ถึงประมาณ:
20 kHz
แต่ใน Errata ผู้สร้างระบุว่า Refresh Rate ปัจจุบันใน User Interface อยู่เพียงประมาณ:
1 frame per second
เพราะ ESP32 กำลัง Poll Sensor หลายตัว แบบ Round-robin และ Software Mode สำหรับ Focus ที่ Magnetic Tile เพื่อเก็บ High-speed Capture ยังไม่ได้ Implement
Radiation Spectroscopy ใช้วัดอะไร?
Cyberdeck ใช้ Pomelo Spectroscopic Radiation Detector เป็น Sensor ฝั่ง Radiation
Repository ระบุว่า Detector ใช้ Scintillation-based Measurement และสามารถแยก Energy Levels เพื่อทำ Radiation Spectroscopy ได้
Hackaday อธิบายว่า ระบบนี้สามารถใช้วิเคราะห์ Energy Spectrum ของแหล่ง Beta / Gamma ในบริบทของเครื่องมือวัด
Environmental Sensors มีอะไร?
| Sensor | ข้อมูลที่ Project ใช้ |
|---|---|
| Sensirion SPS30 | Particulate Matter เช่น PM1, PM2.5, PM4 และ PM10 |
| SCD40 | CO₂ พร้อม Temperature / Humidity Data |
| BME68x | Temperature, Pressure, Humidity และ VOC-related Environmental Data |
| MLX90393 | Magnetic Field X/Y/Z |
ข้อมูล Sensor เดินทางเข้า uConsole ยังไง?
ESP32 ทำหน้าที่เป็น Sensor Aggregator มากกว่าจะเป็น Main Computer
SCD40, SPS30, Magnetometer, Spectrometer, Magnetic Tile ฯลฯ
Poll Sensor และจัดข้อมูล
ส่ง JSONL Packet
Python อ่าน Packet และส่งให้ UI
Sensor ที่ต่อ USB โดยตรง เช่น Camera บางตัว สามารถคุยกับ Linux โดยไม่ต้องผ่าน ESP32
JSONL ทำให้ ESP32 กับ Python คุยกันง่ายยังไง?
Official README ระบุว่า ESP32 ส่งข้อมูลออกเป็น JSONL หรือ JSON Lines
แต่ละบรรทัดคือ Packet หนึ่งชุด ประกอบด้วย:
- ชื่อ Sensor
- Payload
- Timestamp
- Error State
{"sensor":"scd4x","payload":{"atmospheric":{"co2_ppm":612,"temp_c":23.4,"humidity_rh_pct":41.2},"timestamp":184532,"error_state":0}}
{"sensor":"mlx90393","payload":{"magnetic":{"x_ut":12.85,"y_ut":-31.42,"z_ut":45.10},"timestamp":184611,"error_state":0}}
{"sensor":"sps30","payload":{"mass":{"PM1_0":2.113,"PM2_5":2.472,"PM4_0":2.601,"PM10":2.665},"timestamp":184702,"error_state":0}}
ข้อดีของรูปแบบนี้คือ ฝั่ง Python ไม่ต้อง Decode Binary Protocol ที่ซับซ้อนเพื่อเริ่ม Prototype แต่สามารถอ่านทีละบรรทัด แล้ว Parse เป็น Object ได้โดยตรง
User Interface ใช้ Python + Pygame
Official File UserInterfacePygame.py ยืนยันว่า UI หลักเขียนด้วย Python และใช้ Pygame สำหรับ Rendering
Current UI มี Page เช่น:
- Overview
- Environmental
- Magnetic
- Cameras
- Visible Spectrometer
- Audio Spectrum
- Gamma Spectrum
- Errors / Logs
README ระบุว่า ผู้ใช้เลือกหน้าจอด้วย Number Keys และบางหน้า เช่น Magnetic Imaging มี Function เพิ่มเติมอย่าง Baseline Measurement
Custom PCB 3 ชุดทำหน้าที่อะไร?
แม้แนวคิดหนึ่งของ Project คือพยายามใช้ Off-the-shelf Hardware ให้มากขึ้น แต่สุดท้ายก็ยังมี Custom PCB ที่ช่วยลดพื้นที่และจัด Wiring ให้เป็นระบบ
1. Hamamatsu Microspectrometer Breakout
Breakout Board สำหรับ C12666MA มี Low-profile Connector, Op-amp Buffer และ Filtering Passives เพื่อช่วยจัด Interface ของ Spectrometer
Repository เปิด:
- Schematic PDF
- EAGLE .sch
- EAGLE .brd
- Parts List
2. ESP32 Breakout
เชื่อม uConsole ผ่าน USB ไปยัง Sensor หลายตัว เช่น:
- Spectrometer
- Magnetic Imaging Tile
- QWIIC I2C
- SPS30
- Header สำรองสำหรับ Light Source
3. USB Hub Breakout
ใช้ Adafruit CH334F Mini 4-Port USB Hub แล้ว Breakout ออกเป็น Connector ขนาดเล็ก เพื่อลดพื้นที่ภายในเครื่อง
Warning: USB 5V กับ QWIIC ใช้ Connector หน้าตาคล้ายกัน
นี่เป็น Errata ที่ผู้สร้างเตือนเองอย่างตรงไปตรงมา
USB Hub Breakout ใช้ Connector แบบเดียวกับ Connector ที่พบใน QWIIC System
USB = 5 V
QWIIC = 3.3 V ในบริบทที่ผู้สร้างเตือน
หากเสียบผิด อาจทำให้อุปกรณ์ QWIIC เสียหายได้ ดังนั้นห้ามตัดสินจากรูปร่าง Connector เพียงอย่างเดียว ให้ตรวจ Label, Schematic และ Board Revision ทุกครั้ง
Silkscreen ของ PCB รุ่นเก่าก็มี Error
ผู้สร้างระบุว่า ESP32 Board รุ่นก่อนหน้า มี Silkscreen สลับ Label ระหว่าง Connector ของ:
- Spectrometer
- Magnetic Imaging Tile
Repository ระบุว่า Latest Board File ควรถูกแก้แล้ว แต่ภาพ Build เก่า อาจยังแสดง Label ที่ผิด
Case และ Sensor Mounts พิมพ์ 3D
Enclosure และ Sensor Mount หลายชิ้นของ Project ถูกออกแบบใน OpenSCAD และมี STL Export ให้ใน Repository
ชิ้นส่วนหลักที่เปิดไฟล์ไว้ เช่น:
- Main Body
- Back Plate
- Magnetic Imaging Tile Enclosure
- Power Switch Part
Main Body ทำหน้าที่แทนฝาหลังของ uConsole และเป็นโครงหลักที่ใช้ติด Sensor ส่วน Back Plate ใช้ติด Environmental Sensors และ QWIIC Hub
สิ่งที่ Prototype ยังแก้ไม่จบ
Cooling
ผู้สร้างระบุว่า Raspberry Pi Compute Module มีความร้อนจริง และ Prototype ปัจจุบัน สามารถรันโดยไม่มี Cooler ได้ช่วงหนึ่ง แต่ท้ายที่สุดอาจ Thermal Throttle
Future Revision ยังต้องมี Cooling Solution ที่ลงตัวกว่าเดิม
Battery
ผู้สร้างประเมินแบบคร่าว ๆ ว่า Battery Runtime ปัจจุบันอยู่ประมาณ:
“maybe an hour or two”
Magnetic Imaging Speed
Hardware ถูกออกแบบให้เร็ว แต่ Software ปัจจุบัน ยังไม่ได้ใช้ High-speed Capability เต็มที่
Transmission Spectroscopy Light Source
มี Header เตรียมไว้ แต่ Light-source System สำหรับ Transmission Mode ยังไม่เป็น Design ที่ผู้สร้างพอใจ
Wi-Fi Antenna
ผู้สร้างระบุว่ายังไม่มีตำแหน่ง Wi-Fi Antenna ที่ลงตัว และ Placement ปัจจุบัน ยังเป็นลักษณะ Prototype
Project นี้สร้างตามง่ายไหม?
Official README ตอบเรื่องนี้ตรง ๆ ว่า:
“maybe”
ผู้สร้างย้ำว่า Cyberdeck นี้เป็น:
- Prototype
- ไม่ใช่ Product สำเร็จรูป
- มี Rough Edges
- ซับซ้อน
- มีต้นทุนค่อนข้างสูง
คุณค่าของ Project จึงไม่ได้มีแค่การ Clone ทั้งเครื่อง แต่รวมถึงการหยิบ Architecture, Sensor Interface, Magnetic Imaging, Spectrometer Breakout หรือ 3D Enclosure ไปต่อยอดเป็น Project ของตัวเอง
ต้นทุนที่ผู้สร้างประเมิน
Official README ให้ Estimate คร่าว ๆ ว่า:
| กลุ่ม | Estimate จากผู้สร้าง |
|---|---|
| uConsole + Compute Module + Extension Hardware | ประมาณ $300–400 |
| Components และ Build ส่วน Sensor | ประมาณ $1,000 |
ผู้สร้างระบุว่า Visible Microspectrometer และ Radiation Spectrometer เป็น Component ที่มีต้นทุนสูง ใน Build นี้
ดู Tricorder ทำงานจริง
Video นี้ช่วยให้เห็นว่า Project ไม่ได้เป็นแค่ Concept Render แต่มีหน้าจอและ Sensor Mode ที่ใช้งานจริงบน Cyberdeck
โปรเจกต์นี้มีหลายขั้น แนะนำอ่านต้นฉบับควบคู่กัน
Repository มีรายละเอียดเยอะมาก ทั้ง PCB, STL, OpenSCAD, Firmware, Python UI, Sensor List และ Errata ดังนั้นถ้าจะสร้างตามจริง ควรตรวจ Revision ล่าสุด ของแต่ละไฟล์ก่อนเริ่ม
FAQ: คำถามที่พบบ่อย
1. Open Source Science Tricorder คืออะไร?
เป็น Open-source Science Cyberdeck ที่รวม Sensor หลายประเภท สำหรับวัดแสง, ความร้อน, สนามแม่เหล็ก, รังสี และสภาพแวดล้อม
2. ใช้ Raspberry Pi รุ่นไหน?
Source ยังขัดกัน: Hackaday ระบุ CM5 แต่ Official GitHub README ยังมีหลายส่วนที่ระบุ CM4 ขณะที่ Extension Hardware มี CM5 Adapter จึงควรตรวจ Revision ล่าสุดก่อนสร้างตาม
3. ESP32 ทำหน้าที่อะไร?
ทำหน้าที่ Poll Sensor ที่ไม่ได้เป็น USB Sensor โดยตรง และส่งข้อมูลไปยัง uConsole ผ่าน USB-to-Serial
4. ข้อมูล Sensor ส่งในรูปแบบอะไร?
Official README ระบุว่าใช้ JSONL โดยแต่ละบรรทัดมี Sensor Name, Payload, Timestamp และ Error State
5. User Interface เขียนด้วยอะไร?
Python และ Pygame ตาม Official Source File
6. Thermal Camera ความละเอียดเท่าไร?
Current Hardware List ระบุ Waveshare Long-wave IR Camera 80×62
7. Visible Spectrometer ใช้รุ่นอะไร?
Hamamatsu C12666MA มี 256 Spectral Channels ครอบคลุมประมาณ 340–780 nm ตาม Official Repository
8. Magnetic Imaging Tile คืออะไร?
เป็น Sensor Array 8×8 หรือ 64 pixels สำหรับแสดง Spatial Pattern ของสนามแม่เหล็ก
9. Magnetic Camera ทำงานที่ 20,000 FPS จริงไหม?
ไม่ควรตีความแบบนั้น ผู้สร้างระบุ Tile Capability ได้ถึงประมาณ 20 kHz แต่ Current UI Refresh อยู่ประมาณ 1 frame/s และ High-speed Capture Mode ยังไม่ได้ Implement
10. มี Radiation Sensor หรือไม่?
มี Pomelo Spectroscopic Radiation Detector สำหรับ Radiation Spectroscopy แต่ Source ไม่ได้ให้ Measurement Accuracy, Dose Accuracy หรือ Safe Exposure Limit
11. วัด CO₂ ได้ไหม?
ได้ โดย Hardware List ระบุ SCD40 สำหรับ CO₂ พร้อม Temperature / Humidity Data
12. วัดฝุ่น PM2.5 ได้ไหม?
ได้ Project ใช้ Sensirion SPS30 และ JSONL Example มีข้อมูล PM1, PM2.5, PM4 และ PM10
13. BME680 หรือ BME688?
Source มี Naming Conflict โดย Hardware List ระบุ BME680 แต่ Firmware มีการใช้ชื่อ BME688 ในบางจุด จึงควรตรวจ Hardware Revision จริง
14. มีไฟล์ 3D Print หรือไม่?
มี Repository เปิด STL และ OpenSCAD Source สำหรับ Main Body, Back Cover และ Mount หลายชิ้น
15. Print Settings ใช้อะไร?
Source ไม่ได้ระบุ Layer Height, Infill, Support, Nozzle, Material หรือ Print Temperature ที่ควรใช้เป็นค่ามาตรฐาน
16. Battery อยู่ได้นานแค่ไหน?
ผู้สร้างประเมินแบบไม่เป็นทางการว่า “maybe an hour or two” แต่ไม่มี Test Method, Battery Capacity หรือ Current Consumption ครบ จึงไม่ควรถือเป็น Guaranteed Runtime
17. ทำไม USB กับ QWIIC ถึงต้องระวัง?
Custom USB Hub ใช้ Connector แบบเดียวกับ QWIIC ใน Build นี้ แต่ผู้สร้างเตือนว่า USB เป็น 5 V ขณะที่ QWIIC เป็น 3.3 V และเสียบผิดอาจทำให้อุปกรณ์เสียหาย
18. สร้างตามได้ง่ายไหม?
ผู้สร้างตอบเองว่า “maybe” และระบุว่าเป็น Prototype ที่ซับซ้อน, มี Rough Edges และค่อนข้างมีต้นทุนสูง
19. Project เป็น Open Source แค่ไหน?
Repository เปิด PCB, Firmware, Python UI, STL, OpenSCAD และ Documentation หลายส่วน โดย Physical Design / Documentation ถูกระบุเป็น CC BY 4.0
20. ต้นทุนประมาณเท่าไร?
ผู้สร้างประเมิน uConsole, Compute Module และ Extension Hardware ราว $300–400 และส่วน Components / Sensor Build ราว $1,000 แต่เป็น Estimate ไม่ใช่ Current BOM Price
References / แหล่งข้อมูลต้นฉบับ
Cyberdeck ที่ดีไม่จำเป็นต้องมี Sensor ทุกอย่างตั้งแต่วันแรก
สิ่งที่น่าเอาไปต่อยอดจาก Project นี้ คือ Architecture ที่แยก Linux Computer, ESP32 Sensor Interface และ Sensor Module ออกจากกัน ทำให้เราสามารถเริ่มจาก Sensor ไม่กี่ตัว แล้วค่อยขยายเป็น Portable Science Tool ของตัวเองได้
หากกำลังทำ Raspberry Pi, ESP32, Sensor หรือ Cyberdeck Project สามารถสอบถามทีม Globalbyte เรื่องบอร์ดและอุปกรณ์ ที่เหมาะกับ Project ได้
ถ้ามีไฟล์ STL / CAD แล้ว แต่ไม่มีเครื่องพิมพ์ สามารถส่งไฟล์ให้ทีม Globalbyte ช่วยประเมินบริการพิมพ์ 3D สำหรับชิ้นส่วน Prototype ได้เช่นกัน