Cytron CM4 Maker Board review – Part 2: NVMe SSD, RTC, Buzzer, Grove modules, ChatGPT…

We’ve already checked out Cytron’s CM4 Maker Board kit with a Raspberry Pi CM4 system-on-module and booted the system with the included 32GB “MAKERDISK” Class 10 microSD card preloaded Raspberry Pi OS in the first part of the review. For the second part of the CM4 Maker review, I’ve mostly used the 128GB NVMe SSD provided by the company and played with other features of the board including the RTC, the buzzer, some Seeed Studio grove modules, and even got help from ChatGPT for one of the Python programs I used.

Booting Cytron CM4 Maker Board with the “MAKERDISK” NVMe SSD

I connected several Grove modules with GPIO and I2C interfaces, a Raspberry Pi Camera Module 3, an Ethernet cable, two RF dongles for a wireless keyboard and mouse, an HDMI cable to a monitor, and finally inserted the provided 5V/3.5A USB-C power adapter.

Cytron CM4 Maker board Review

The MAKERDISK SSD comes with Raspberry Pi OS, so I did not have to flash the image, and booting the CM4 Maker Board with it was easy. I just had to remove the microSD card (that has priority over the SSD), and make sure the switch on the bottom left of the image above was set to RUN since the BOOT mode is for CM4 modules with an eMMC flash.

CM4 Maker Board SSD boot Raspberry Pi OS

It’s truly a plug-and-play system since the OS is preinstalled.

System info and SBC Bench

Let’s check out the system information:


The output mentions “Raspberry Pi Compute Module 4”, but it looks like the output from a Raspberry Pi 4 SBC, except for the NVMe drive. Having a PCIe interface for the SSD  means there is no VL805 chip and as a result, no USB 3.0 ports, only four USB 2.0 ports on the CM4 Maker Board.

Let’s run sbc-bench benchmark scripts to check for potential issues:


It looks pretty much as expected, and CPU throttling occurred because the system does not ship with any cooling solution. That’s in a room with a 29°C ambient temperature. There are also some Spectre v1/v2 vulnerabilities…


The overheating issue is not that based as it did not happen with 7-zip, and only cpuminer. Since the CM4 Maker Board looks to be easily useful for the education market, it won’t matter to most people, but if your target use case is demanding, or want to overclock the BCM2711 processor, you may consider purchasing a $4.5 heatsink for the CM4 module. That should help quite a bit.

CM4 Maker Board’s NVMe SSD

One of the highlights of the CM4 Maker Board is support for a short M.2 2242 NVMe SSD. So I’ve built iozone for Raspberry Pi to test the drive performance:


Almost 400MB/s sequential read and write speeds, and random I/Os are not too bad,

Let’s now insert the 32GB “MAKERDISK” Class A1 microSD card to test it with iozone:


That’s a good microSD card, but at around 44MB/s sequential read/write speeds, and much slower random I/Os, especially for smaller writes.

To showcase the difference in performance I performed a reboot and started Chromium and LibreOffice Write with the microSD card and the SSD.
The SSD is faster, but I was expecting a larger difference. LibreOffice was not installed on the microSD card, so I installed it with apt, and started it immediately after that. I assumed caching during the installation would not impact the app startup too much, but I was wrong, and with caching, LibreOffice Writer starts faster on the microSD card than on the SSD without caching. I also loaded CNX Software website in Chromium but did not end up showing it in the video, because the website ended up being faster with the microSD card because it took longer to load the data from the Internet with the SSD image independently of the storage speed… (I had to refresh the page as it would not load)

So overall, the system is snappier with the SSD than with the microSD card, but the difference might not be as great as one would necessarily expect. The performance delta should be more noticeable for applications that frequently write a small amount of data to the drive.

CM4 Maker board built-in features

PCF85063A RTC

The board has a range of interesting features, and I started with the RTC (without battery). Instructions can be found on the Wiki. But we are just told to use hwclock utility and that “Please note that DSI and CSI are prohibited when using RTC. I2C-10 is used by default”.

So first thing, I had to enable I2C with raspi-config in a terminal. It can also be done in the Settings menu on the desktop.

raspi config I2CAfter a reboot, I was still unable to use the RTC:


I eventually figured out I had to add the following line in /boot/config.txt:


One more reboot and the PCF85063A RTC is detected in the kernel log:


I can read the time from the RTC:


Synchronize the system time clock to the hardware clock:


Synchronize the hardware clock to the system clock:


The wiki has further instructions to show the time on an I2C OLED display.

Buzzer & user buttons

My plan was to test the buzzer next, but Cytron provide a Python program for the buzzer and the three buttons on the board, so that gave me the opportunity to test both.

We’ll find all Python code sample codes on Github:


We can test the buzzer and the buttons with Lesson 2/buzzer_button.py:


Just keep pressing the button to output a specific sound.


GPIO LEDs

Cytron likes to add LEDs to at least some GPIOs on their boards. It’s great for education, but also for debugging a program. The CM4 Maker Board comes with 10 GPIO LEDs.

CM4 Maker Board GPIO LEDs

So I wrote a small Python program to light up each LED one by one, and then turn them off one by one in reverse order:


All good.

CM4 Maker Board expansion ports & ChatGPT

The CM4 Maker includes several Grove connectors and one small Maker port. I don’t have any module for the latter so instead, I used some of the Grove modules from the Wio Link Starter Kit I reviewed many years ago.

I’ll start with the DHT11 temperature and humidity sensor connected to a Grove GPIO connector.

Raspberry CM4 carrier board DHT11 module

We’ll need to install some dependencies first:


I then used the DHT11 sample from Cytron’s GitHub repo (Lesson 1) and just changed the GPIO from 2 (for the Maker port) to 24 from the second Grove digital connector on the board:


And it works fine, but with some errors from time to time.


I then tested Seeed Studio’s Grove I2C accelerator module connected to the only Grove I2C port on the board.

CM4 Maker Grove Accelerator I2C Module

“I” wrote some code to test the Grove I2C connector with a 3-axis MMA7660 accelerometer:


And it worked fine as I moved the module around to test it successfully.


Actually, I lied… I did not write this code myself, instead, I asked ChatGPT. It took 4 interactions with the AI chatbot, but the code eventually worked without any modifications from my side.

ChatGPT MMA7660 Python Sample

Here’s what I wrote in 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

The first time it outputted code for an accelerometer using 0x53 I2C address. But i2cdetect showed nothing with 0x53, only one device using 0x4c. I eventually found out the Grove accelerometer used an MMA7660 chip, hence my second question. The code would then run once only and show 0,0,0. So I asked ChatGPT to add some debug code, and it worked, and finally, I asked it to write code to read data every second. I just had to copy/paste the code for it to work. That’s a pretty powerful tool.

Raspberry Pi 4 interfaces testing

Cytron CM4 Maker Board comes with interfaces that are found in the Raspberry Pi 4 board, so I quickly tested those worked as expected. We’ve already seen USB 2.0 ports and HDMI ports work, so I’ll test the camera connector, Gigabit Ethernet, and the audio jack.

Raspberry Pi Camera Module 3

Following the instructions from the Raspberry Pi Camera Module 3 review, I tried to list the camera:


But it fails. I tried to disable the RTC, and double-checked the flat cables were properly inserted, but it did not help. I did not update the firmware since it was dated from March 2023. The Camera Module 3 should work out of the box, but Cytron tells us to install a blob in the Wiki…


And after a reboot, the system could indeed detect the camera


And I could indeed use the camera normally.

CM4 Maker Board Raspberry Pi Camera Module 3

I also tested the RTC while running libcamera-hello preview window, I had no issues when reading the date from the RTC nor artifacts or errors with the camera:

hwclock RTC raspberry pi camera module 3Cytron is using legacy camera tools such as raspistill and raspivid, and that may be why they have issues…

Gigabit Ethernet

A quick check showed Gigabit Ethernet works fine even in full-duplex:

Audio jack

The final test I wanted to go through was connecting the 3.5mm audio jack to speakers powered by one of the USB ports from the board.

Cytron CM4 Maker Board 3.5mm audio jack review

But to my surprise, it did not work for me. Only HDMI shows up on the desktop (right-click on the volume icon), and raspi-config does not have any “headphones” option in the audio config:

raspi config no headphonesI could not find any obvious solution, but I’ve asked, and hopefully, Cytron will explain how to make that work, and I’ll update the post accordingly.

Update: the /boot/config.txt file must be edited with the following line for the audio jack to work:


After a reboot, we can find the “AV Jack” by right-clicking on the volume icon, or in raspi-config:

CM4 Maker Board raspi configu audio headphones

As you can see, this completely disables HDMI audio, but I could play a YouTube video with audio going out through the speakers attached to the 3.5mm audio jack.

Cytron told me it was in the datasheet, a Google Docs document that did not show in a web search…, and also includes a script that will automatically make the /boot/config.txt modifications I did manually in the review above.

Final words

Cytron’s CM4 Maker Board has been fun to review. It looks like a nice platform for education, prototyping with its expansion options, or even debugging. It offers a snappier system than a Raspberry Pi  4 thanks to support for NVMe SSD. I also like that the company is selling MAKERDISK drives preloading with Raspberry Pi OS as it can save time, for example for a teacher that may have to prepare a dozen systems for a class.

Somebody asked me if this could be used as a Raspberry Pi 4 replacement, and I don’t see any reason why not, since everything mostly works the same. If your workload is demanding, just make sure to purchase a heatsink for the Raspberry Pi CM4 module to prevent any throttling, and you’d be good to go. But note that there aren’t any USB 3.0 ports, and if USB 2.0 does not cut it for your use case, then it would not be suitable.

I’d like to thank Cytron for sending a sample for review. The kit used in this review is similar to the “CM4 Maker Board + CM4W4L + MD NVMe 2242 128 GB + Accessories” minus the microSD card which does not seem to be included, and there should be an HDMI cable that was not in my kit. It is listed for $177, but is currently out of stock. If you only need the CM4 Maker Board carrier board, the price is much lower at $56, and a full kit with CM4W88 and accessories, but no SSD, sells for $179 with 30 pieces in stock. I’d recommend also purchasing the CM4 heatsink for $4.50.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
0 Comments
oldest
newest
Boardcon Rockchip and Allwinner SoM and SBC products