รีวิว Cytron CM4 Maker Board – Part 2 : ทดสอบ NVMe SSD, RTC, Buzzer, Grove modules, ChatGPT…

ใน Part 1 ได้ตรวจสอบ CM4 Maker Board สำหรับ Raspberry Pi CM4 และบูตด้วยการใส่ “MAKERDISK” microSD card Class A1 ขนาด 32GB ที่มี Raspberry Pi OS ติดตั้งอยู่ล่วงหน้า, สำหรับ Part 2 ของการรีวิว CM4 Maker เราจะใช้ NVMe SSD ขนาด 128GB ของบริษัทที่ให้มา และทดสอบคุณสมบัติอื่น ๆ ของบอร์ดรวมถึง RTC, Buzzer, โมดูล Grove จาก Seeed Studio และเข้า ChatGPT ให้ช่วยเขียนโปรแกรม Python เพื่อนำมาใช้งาน

การบูต Cytron CM4 Maker Board ด้วย “MAKERDISK” NVMe SSD

เริ่มจากเชื่อมต่อโมดูล Grove หลายตัวด้วยอินเทอร์เฟซ GPIO และ I2C, Raspberry Pi Camera Module 3, สาย Ethernet, RF dongle 2 ตัวสำหรับคีย์บอร์ดและเมาส์ไร้สาย, สาย HDMI เข้ากับจอภาพ และจอมอนิเตอร์ และเสียบปลั๊กอะแดปเตอร์ USB-C 5V/3.5A ที่ให้มา

Cytron CM4 Maker board Review

MAKERDISK SSD มาพร้อมกับ Raspberry Pi OS ดังนั้นจึงไม่ต้องแฟลชอิมเมจ และการบูต CM4 Maker Board นั้นง่ายมาก แค่ถอด microSD card ออกและตรวจสอบให้แน่ใจว่าสวิตช์ด้านล่างซ้ายได้ตั้งค่าเป็น RUN เนื่องจากโหมด BOOT ใช้สำหรับโมดูล CM4 ที่มีeMMC flash

CM4 Maker Board SSD boot Raspberry Pi OS

เป็นระบบ Plug-and-Play จริงๆ เนื่องจากมีการติดตั้ง  Raspberry Pi OS ไว้ล่วงหน้า

ข้อมูลระบบและ SBC Bench

เรามาดูข้อมูลระบบ:


ผลลัพธ์กล่าวถึง “Raspberry Pi Compute Module 4” แต่ดูเหมือนผลลัพธ์ที่ได้จาก Raspberry Pi 4 SBC ยกเว้นเรื่องไดรฟ์ NVMe การมีอินเทอร์เฟส PCIe สำหรับ SSD หมายความว่าไม่มีชิป VL805 และเป็นผลให้ไม่มีพอร์ต USB 3.0 มีเพียงพอร์ต USB 2.0 สี่พอร์ตบน CM4 Maker Board

มารัน sbc-bench benchmark scripts เพื่อตรวจสอบปัญหาที่อาจเกิดขึ้น:


ผลลัพธ์ดูเหมือนจะตรงตามที่คาดหวัง และเกิดการลดความเร็ว CPU เนื่องจากระบบไม่มีการระบายความร้อน ซึ่งอยู่ในห้องที่มีอุณหภูมิสภาพแวดล้อมประมาณ 29°C นอกจากนี้ยังมีช่องโหว่ Spectre v1/v2…


ปัญหาความร้อนสูงเกินไปนั้นไม่ได้เกิดจากการทดสอบด้วยโปรแกรม 7-zip แต่เกิดเฉพาะกับ cpuminer เท่านั้น เนื่องจาก CM4 Maker Board ใช้สำหรับตลาดการศึกษา จึงไม่สำคัญมาก แต่ถ้ามีวัตถุประสงค์ในการใช้งานที่ต้องการความยืดหยุ่นมากขึ้นหรือต้องการ overclock โปรเซสเซอร์ BCM2711 อาจจะต้องซื้อ heatsink ราคา $4.5 (~150฿) สำหรับโมดูล CM4 ซึ่งจะช่วยลดอุณหภูมิได้มาก

NVMe SSD ของ CM4 Maker Board

จุดเด่นอย่างหนึ่งของ CM4 Maker Board คือรองรับ M.2 2242 NVMe SSD แบบสั้น ดังนั้นฉันจึงทดสอบประสิทธิภาพของไดรฟ์ด้วย Build  iozone สำหรับ Raspberry Pi :


ความเร็วในการอ่านและเขียนตามลำดับเกือบ 400MB/s และ I/O แบบสุ่มก็ไม่ได้แย่เกินไป

ตอนนี้ลองใส่ “MAKERDISK” microSD card Class A1 32GB เพื่อทดสอบกับ iozone:


นั่นเป็นการทดสอบ microSD card ที่ดี แต่ความเร็วในการอ่าน/เขียนต่อเนื่องประมาณ 44MB/s และ I/O แบบสุ่มที่ช้ากว่ามาก โดยเฉพาะอย่างยิ่งสำหรับการเขียนขนาดเล็ก

เพื่อแสดงความแตกต่างในด้านประสิทธิภาพ ฉันได้รีบูทระบบใหม่ และเริ่มต้น Chromium และ LibreOffice Write ด้วย microSD card  และ SSD ซึ่ง SSD นั้นเร็วกว่า แต่ฉันคาดหวังถึงความแตกต่างที่มากกว่า LibreOffice ไม่ได้ติดตั้งบน microSD card ดังนั้นจึงติดตั้งด้วย apt และเริ่มทันทีหลังจากนั้น ฉันคิดว่าการแคชระหว่างการติดตั้งจะไม่ส่งผลกระทบต่อการเริ่มต้นแอป แต่ฉันคิดผิด และการแคช LibreOffice Writer จะเริ่มทำงานบน microSD card ได้เร็วกว่าบน SSD โดยไม่ต้องแคช ฉันยังโหลดเว็บไซต์ซอฟต์แวร์ CNX ใน Chromium แต่ไม่ได้แสดงในวิดีโอ เพราะเว็บไซต์ทำได้เร็วกว่าด้วย microSD card เนื่องจากใช้เวลานานกว่าในการโหลดข้อมูลจากอินเทอร์เน็ตด้วยอิมเมจ SSD โดยไม่ขึ้นกับความเร็วในการจัดเก็บ … (ฉันต้องรีเฟรชหน้านี้เพราะโหลดไม่ได้)

โดยรวมแล้ว ระบบจะทำงานด้วย SSD ได้รวดเร็วกว่า microSD card แต่ความแตกต่างอาจไม่เป็นตามที่คาดหวังไว้ ความแตกต่างในประสิทธิภาพควรจะมีค่ามากขึ้นสำหรับแอปพลิเคชันที่เขียนข้อมูลจำนวนเล็กน้อยลงในไดรฟ์

คุณสมบัติในตัวบอร์ด CM4 Maker

PCF85063A RTC

บอร์ด CM4 Maker มีคุณสมบัติต่างๆ ที่น่าสนใจ และเราเริ่มต้นด้วย RTC (ไม่มีแบตเตอรี่) คำแนะนำสามารถดูได้บน Wiki แต่เราได้รับคำแนะนำเพียงการใช้คำสั่ง hwclock utility และ “หมายเหตุ DSI และ CSI ถูกห้ามใช้เมื่อใช้ RTC I2C-10 เป็นค่าเริ่มต้น”

ดังนั้นเราจึงต้องเปิดใช้งาน I2C ก่อน โดยใช้คำสั่ง raspi-config ใน terminal หรือสามารถทำได้ในเมนู Settings บน desktop

raspi config I2C 1

หลังจากที่รีบูทระบบใหม่ ยังไม่สามารถใช้ RTC ได้:


ต้องเพิ่มบรรทัดต่อไปนี้ใน /boot/config.txt:


รีบูทระบบอีกครั้งและตรวจพบ PCF85063A RTC ใน kernel log :


ฉันสามารถอ่านค่าเวลาจาก RTC:


ซิงโครไนซ์เวลานาฬิกาของระบบกับนาฬิกาของฮาร์ดแวร์:


ซิงโครไนซ์เวลานาฬิกาฮาร์ดแวร์กับนาฬิการะบบ:


วิกิมีคำแนะนำเพิ่มเติมในการแสดงเวลาบนจอแสดงผล I2C OLED

ปุ่ม Buzzer & user buttons

แผนต่อไปของฉันคือ ทดสอบ Buzzer แต่ Cytron ให้โปรแกรม Python สำหรับ ปุ่ม Buzzer และ User buttons (ปุ่มอเนกประสงค์โปรแกรมได้) 3 ปุ่ม บนบอร์ด นั่นทำให้ฉันมีโอกาสทดสอบทั้งสองอย่าง

สามารถหาโค้ดตัวอย่าง Python ทั้งหมดบน Github:


สามารถทดสอบปุ่ม Buzzer และปุ่มต่างๆ ด้วย Lesson 2/buzzer_button.py:


เพียงกดปุ่มค้างไว้ เราก็จะได้ยินเสียงตามที่เรากำหนดไว้


GPIO LEDs
CM4 Maker Board มาพร้อมกับไฟ LED แสดงสถานะ GPIO 10 ดวง แต่ยังไม่ได้ Debug program

CM4 Maker Board GPIO LEDs 1

ดังนั้นฉันจึงเขียนโปรแกรม Python เพื่อเปิดไฟ LED แต่ละดวงแล้วปิดทีละดวงตามลำดับย้อนกลับ (reverse):


ทั้งหมดทำได้ดี

พอร์ตขยาย CM4 Maker Board และ ChatGPT

CM4 Maker มีตัวเชื่อมต่อ Grove จำนวน 5 พอร์ต, พอร์ต Maker จำนวน 1 พอร์ต ฉันไม่มีโมดูลสำหรับพอร์ต Maker, ฉันใช้ชุด Wio Link Starter Kit บางอันที่ฉันตรวจสอบเมื่อหลายปี เพื่อเชื่อมต่อพอร์ต Grove

เริ่มต้นด้วยเซ็นเซอร์อุณหภูมิและความชื้น DHT11 ที่เชื่อมต่อกับตัวเชื่อมต่อ GPIO Grove

Raspberry CM4 carrier board DHT11 module

เราจะต้องติดตั้ง Dependencies ก่อน:


จากนั้นใช้ตัวอย่างของ DHT11 จาก GitHub repo ของ Cytron (Lesson 1) และเพียงแค่เปลี่ยน GPIO จาก 2 (สำหรับพอร์ต Maker) เป็น 24 จากพอร์ตดิจิทัลดิจิทัล Grove ตัวที่สองบนบอร์ด:


และมันทำงานได้อย่างดี แต่มีข้อผิดพลาดบ้างบางครั้ง


จากนั้นฉันทดสอบโมดูล Grove I2C accelerator ของ Seeed Studio ที่เชื่อมต่อกับพอร์ต Grove I2C ที่มีพอร์ตเดียวบนบอร์ด

CM4 Maker Grove Accelerator I2C Module

“ฉัน” เขียนโค้ดเพื่อทดสอบตัวเชื่อมต่อ Grove I2C ด้วย MMA7660 วัดความเร่ง 3 แกน  (3-axis accelerometer):

และโค้ดทำงานได้อย่างถูกต้อง เมื่อฉันเคลื่อนย้ายโมดูลเพื่อทดสอบในการใช้งาน สามารถอ่านค่าของแรงเทียบกับแกน x, y และ z ได้อย่างสมบูรณ์เรียบร้อยแล้ว

แต่ที่จริงแล้ว ฉันไม่ได้เขียนโค้ดนี้ด้วยตัวเอง ฉันใช้ ChatGPT ช่วยในการเขียนโค้ด ฉันถาม-ตอบ 4 ครั้งกับ AI chatbot และได้โค้ดที่สามารถใช้งานได้โดยไม่มีการแก้ไขใดๆ

ChatGPT MMA7660 Python Sample

สิ่งที่ฉันเขียนใน ChatGPT

  1. Write Python code for a 3-axis Grove I2C accelerometer connected to a custom Raspberry Pi CM4 board
  2. Will this work with MMA7660 accelerometer?
  3. Can you add some debugging code since the code will only return 0
  4. Not sure why, but it works now. I’d like to measure acceleration data in a loop every second

ในครั้งแรกที่โปรแกรมเอาต์พุตโค้ดสำหรับ accelerometer โดยใช้ address: 0x53 I2C แต่ i2cdetect ไม่พบอุปกรณ์ใดๆ ที่ใช้address: 0x53 เลย มีเพียงอุปกรณ์เดียวที่ใช้ address: 0x4c เท่านั้น ฉันต้องค้นหาว่า Grove accelerometer ใช้ชิป MMA7660 แทน จากนั้นคำถามต่อไปคือโค้ดจะทำงานครั้งเดียวและแสดงผลเป็น 0,0,0 ฉันจึงขอ ChatGPT เพิ่มโค้ดดีบักเพื่อแก้ปัญหา และมันทำงานได้ สุดท้ายฉียขอ ChatGPT เขียนโค้ดเพื่ออ่านข้อมูลทุกวินาที แล้วคัดลอกและวางโค้ด ก็สามารถใช้งานได้เลย ChatGPT เป็นเครื่องมือที่มีประสิทธิภาพอย่างมาก

การทดสอบอินเทอร์เฟส Raspberry Pi 4

บอร์ด Cytron CM4 Maker Board มาพร้อมกับอินเทอร์เฟสเหมือนกับบอร์ด Raspberry Pi 4 ดังนั้นฉันจึงต้องทดสอบให้แน่ใจว่าได้ทำงานตามที่คาดไว้ เราได้เห็นพอร์ต USB 2.0 และพอร์ต HDMI ใช้งานได้แล้ว ดังนั้นฉันจะทดสอบคอนเนกเตอร์กล้อง, Gigabit Ethernet และ audio jack

โมดูลกล้อง Raspberry Pi 3

ทำตามคำแนะนำจากรีวิว Raspberry Pi Camera Module 3 ฉันลองเรียกดูกล้อง:


แต่ไม่ได้ ฉันลองปิดใช้งาน RTC และตรวจสอบอีกครั้งว่าเสียบสายแพถูกต้องแล้ว แต่ก็ยังไม่ได้ผล ฉันไม่ได้อัปเดตเฟิร์มแวร์เนื่องจากเป็นวันที่ตั้งแต่เดือนมีนาคม 2023 โมดูลกล้อง 3 ควรใช้งานได้ทันที แต่ Cytron บอกว่าติดตั้ง blob ใน Wiki…


และหลังจากรีบูทระบบ ก็สามารถตรวจเจอกล้องได้


และฉันก็สามารถใช้กล้องได้ตามปกติ

CM4 Maker Board Raspberry Pi Camera Module 3

ฉันยังทดสอบ RTC ขณะรันตัวอย่าง libcamera-hello preview window ฉันไม่พบปัญหาเมื่ออ่านวันที่จาก RTC ไม่มีอาการผิดปกติหรือข้อผิดพลาดกับกล้อง::

hwclock RTC raspberry pi camera module 3

Cytronกำลังใช้เครื่องมือกล้องแบบเก่าเช่น เช่น raspistill และ raspivid และนั่นอาจเป็นสาเหตุที่ทำให้มีปัญหา…

Gigabit Ethernet

การตรวจสอบอย่างรวดเร็วแสดงให้เห็นว่า Gigabit Ethernet ทำงานได้ดีแม้ในโหมด full-duplex:

Audio jack

เป็นการทดสอบขั้นสุดท้าย คือการเชื่อมต่อแจ็คเสียง 3.5 มม. เข้ากับลำโพงที่ขับเคลื่อนโดยหนึ่งในพอร์ต USB จากบอร์ด

Cytron CM4 Maker Board 3.5mm audio jack review

แต่มันไม่ได้ผล มีเพียง HDMI เท่านั้นที่แสดงบนเดสก์ท็อป (คลิกขวาที่ไอคอนระดับเสียง) และ raspi-config ไม่มีตัวเลือก “หูฟัง”ในการตั้งค่าเสียง:raspi config no headphones

ฉันไม่พบวิธีแก้ปัญหาที่ชัดเจน แต่ฉันได้ถามแล้ว และหวังว่า Cytron จะอธิบายวิธีการทำงานนั้น และฉันจะอัปเดตโพสต์ต่อไป

อัปเดต: ต้องแก้ไขไฟล์/boot/config.txt ด้วยบรรทัดต่อไปนี้เพื่อให้แจ็คเสียงทำงานได้:


หลังจากรีบูท เราสามารถหา “AV Jack” ได้โดยการคลิกขวาที่ไอคอนระดับเสียง หรือใน raspi-config:

CM4 Maker Board raspi configu audio headphones

ไม่สามารถเล่นเสียงผ่าน HDMI ได้ แต่สามารถเล่นวิดีโอ YouTube ให้มีเสียงออกทางลำโพงที่ต่อกับแจ็คเสียง 3.5 มม.

Cytron ได้บอกว่า datasheet อยู่ใน Google Docs ที่ไม่แสดงในการค้นหาเว็บ… และยังมีสคริปต์ที่จะทำการ แก้ไข /boot/config.txt โดยอัตโนมัติ ตามที่ได้ตรวจสอบด้านบน

สรุป

การรีวิว CM4 Maker Board ของ Cytron สนุกดี ซึ่งเหมาะสำหรับสำหรับการศึกษาเรียนรู้, การสร้างต้นแบบด้วยตัวเลือกการขยาย หรือการดีบัก นำเสนอระบบที่รวดเร็วกว่า Raspberry Pi 4 ด้วยการรองรับ NVMe SSD ฉันยังชอบที่บริษัทขายMAKERDISK drives ที่โหลด Raspberry Pi OS ไว้ล่วงหน้า เพื่อประหยัดเวลา

มีคนถามฉันว่าสามารถใช้แทน Raspberry Pi 4 ได้หรือไม่ และฉันคิดว่าสามารถทำได้ เนื่องจากทุกอย่างส่วนใหญ่ทำงานเหมือนกัน แต่ถ้าต้องการเวิร์กโหลดปริมาณมาก ต้องใช้ heatsinkสำหรับโมดูล Raspberry Pi CM4 เพื่อป้องกัน prevent any throttling หมายเหตุแต่ไม่มีพอร์ต USB 3.0 ถ้าคุณต้องการใช้บอร์ดนี้อาจไม่เหมาะ

ฉันขอขอบคุณ Cytron ที่ส่งตัวอย่างเพื่อรีวิว ชุดคิทที่ใช้ในการรีวิวนี้ “CM4 Maker Board + CM4W4L + MD NVMe 2242 128 GB + Accessories” (ไม่รวม microSD card) ขายราคา 5.366.61฿ ถ้าต้องการเพียงบอร์ด CM4 Maker Board เท่านั้น ราคา 1,533.13฿ และถ้าต้องการ CM4 heatsink  ราคา 156฿

แปลจากบทความภาษาอังกฤษ : Cytron CM4 Maker Board review – Part 2: NVMe SSD, RTC, Buzzer, Grove modules, ChatGPT…

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
โฆษณา