I recently reviewed the BIGTREETECH CB1 alternative to the Compute Module 4 and I was very surprised how well it worked with my existing I/O boards. Today we’re going to review my second one which is the Pine64 SOQuartz V1.1 module. This module features 2GB of RAM (with 4GB and 8GB options available). With twice as much RAM (or more) the hardware at least has the potential to outperform the CB1.
We will run the same benchmarking tool using the same SD card to get a direct I/O performance comparison between the CB1 and the SOQuartz. We’ll compare BIGTREETECH’s open-sourced kernel and image offerings to Pine64s and test the CM4 reference I/O board for compatibility. I was comfortable recommending the CB1 as an alternative to the CM4 (as long as running Raspbian isn’t necessary). Will the Pine64 SOQuartz get a similar recommendation?
Let’s find out!
The Pine64 SOQuartz has a 1.8GHz ARM Cortex-A55 processor as well as a Mali-G52 Bifrost GPU. Onboard ram is LPDDR4 and has variants of 2GB, 4GB and 8GB available.
The Geekworm copper heat sink set is designed to fit many different single board computers. It uses thermal conductive adhesive which many “cheap” heat sink kits for SBCs don’t have. Eliminates hot spots and reduces throttling. Can be further enhanced by powered cooling over the heat sinks.
The heatsink kit applied to this board looks like this:
- Quad-core ARM Cortex-A55@1.8GHz
- AArch32 for full backwards compatibility with ARMv7
- Mali-G52 2EE Bifrost GPU@800MHz
- Supports OpenGL ES 1.1, 2.0, and 3.2
- Supports Vulkan 1.0 and 1.1
- Supports OpenCL 2.0 Full Profile
- Neural Process Unit (NPU) capability with processing performance of up to 0.8 TOPS
- RAM Memory Variants: 2GB, 4GB, 8GB (LPDDR4)
- Storage Memory: optional 128Mb SPI Flash and optional eMMC module (16GB up to 128GB)
- WiFi 802.11 b/g/n/ac
- Bluetooth 5.0
Comparing these specifications to the CB1 we can see that this is much more powerful with a 1.8GHz CPU vs. a 1.5GHz CPU on the CB1 respectively. The GPU is much more powerful as well. The RAM is LPDDR4 instead of DDR3.
The build quality for the board is decent. It’s nothing spectacular but the traces are easily visible.
I do have some unusually messy solder in the top right of the board. Here’s the top view:
And the bottom view:
On the right hand side of the bottom view you can see 3 droplet looking spots that almost look wet. These clearly don’t belong there. I was able to scrape these off with my fingernail completely so it wasn’t much of an issue but if get one of these and have something similar try just scraping it off with your fingernail.
The good news is the board feels very solid. Everything is very securely soldered to the board and it doesn’t feel flimsy or cheap. It’s actually very solid and doesn’t have very much flex which feels reassuring / comforting when mounting and unmounting from I/O boards.
Like the CB1 the image selection available is pretty slim pickings. There is no Raspbian / Raspberry Pi OS image available.
At time of writing it consisted of:
- Manjaro ARM image (many different desktop flavors)
- Armbian image (not official, made by another user) that features kernel 5.19.7 as well
- pgwipeout’s Quartz CI
- Custom Debian image from user PBXForums
To explain why the image offering is so poor Pine64 says they are working toward mainline kernel support. This means they are trying to get all of the drivers necessary for the board inside the Linux kernel so that all distributions would support the board instead of having a small number of distributions that have a bunch of custom drivers to make it work. They have not reached this goal yet.
One new option available that I didn’t see on their wiki is that DietPi recently added support for the SOQuartz.
Testing Reference Board w/ Available Images
Manjaro with Reference Board
First up is the official reference board for the Compute Module 4. I wrote the Gnome desktop image to my SD card and fired everything up.
Nothing. No Ethernet and my display is giving me an error saying that it was outputting a very low resolution out of range of the display. It was time to hook up the USB to serial console so I could see what was happening:
It just looked like Manjaro was trying to boot and then nothing happened:
Model: Pine64 RK3566 Quartz64-B Board Net: No ethernet found. Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc1 is current device Scanning mmc 1:1... Found /extlinux/extlinux.conf Retrieving file: /extlinux/extlinux.conf 1: Manjaro ARM Retrieving file: /initramfs-linux.img Retrieving file: /Image append: initrd=/initramfs-linux.img console=ttyS2,1500000 earlycon=uart8250,mmis Retrieving file: /dtbs/rockchip/rk3566-soquartz-cm4.dtb Moving Image from 0x2080000 to 0x2200000, end=3a90000 ## Flattened Device Tree blob at 0a100000 Booting using the fdt blob at 0xa100000 Loading Ramdisk to 7d6c4000, end 7deec391 ... OK Loading Device Tree to 000000007d6a6000, end 000000007d6c3503 ... OK Starting kernel ... :: running early hook [udev] Starting version 251.6-2-arch :: running early hook [plymouth]
What is supposed to happen is I’m supposed to be taken to a prompt where I have to set everything up (in the serial console). This did not happen. Perhaps I needed to make more dtb modifications to get the reference board to work?
I think not. That’s a fail. Why am I having to use the serial console to log in for the first time? Why can’t it output the correct resolution to my HDMI screen so I can just do it with a keyboard? What are they thinking?
It’s time to move onto another image as we still have DietPi and the unofficial Armbian image.
DietPi with Reference Board
Let’s try a newer flavor that isn’t even on the official wiki yet. I’m going to try the DietPi image I linked to in the images section earlier. I downloaded the latest image and wrote it to the SD card. I had the USB to serial adapter all connected to see what happened:
U-Boot 2017.09 (Jul 15 2022 - 09:39:12 +0000) Model: Pine64 RK3566 Quartz64 Board PreSerial: 2, raw, 0xfe660000 DRAM: 2 GiB Sysmem: init Relocation Offset: 7d39f000, fdt: 7b9f9f78 no mmc device at slot 1 dwmmc@fe2b0000: 1 (SD), dwmmc@fe2c0000: 2, sdhci@fe310000: 0 Bootdev(atags): mmc 1 MMC1: Legacy, 50Mhz PartType: EFI No misc partition boot mode: None FIT: No boot partition No resource partition Failed to load DTB Failed to get kernel dtb, ret=-19 io-domain: OK ** Invalid partition 3 ** Using default environment Model: Pine64 RK3566 Quartz64 Board rockchip_set_serialno: could not find efuse/otp device CLK: (sync kernel. arm: enter 816000 KHz, init 816000 KHz, kernel 0N/A) apll 816000 KHz dpll 528000 KHz gpll 1188000 KHz cpll 1000000 KHz npll 24000 KHz vpll 24000 KHz hpll 24000 KHz ppll 100000 KHz armclk 816000 KHz aclk_bus 150000 KHz pclk_bus 50000 KHz aclk_top_high 300000 KHz aclk_top_low 200000 KHz hclk_top 150000 KHz pclk_top 50000 KHz aclk_perimid 300000 KHz hclk_perimid 150000 KHz pclk_pmu 50000 KHz Net: clk_get_by_name(master_bus) failed: -22eqos_probe_resources() failed: -22No ethernet found. Hit key to stop autoboot('CTRL+C'): 0 ## Booting FIT Image FIT: No boot partition FIT: No FIT image Could not find misc partition ANDROID: reboot reason: "(none)" optee api revision: 2.0 TEEC: Waring: Could not find security partition Not AVB images, AVB skip android_image_load_by_partname: Can't find part: boot Android image load failed Android boot failed, error -1. switch to partitions #0, OK mmc1 is current device Failed to mount ext2 filesystem... ** Unrecognized filesystem type ** Failed to mount ext2 filesystem... ** Unrecognized filesystem type ** MMC error: The cmd index is 0, ret is -110 mmc_init: -110, time 5 starting USB... Bus dwc3@fcc00000: usb maximum-speed not found Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.10 Bus dwc3@fd000000: usb maximum-speed not found Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.10 scanning bus dwc3@fcc00000 for devices... 1 USB Device(s) found scanning bus dwc3@fd000000 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Device 0: unknown device clk_get_by_name(master_bus) failed: -22eqos_probe_resources() failed: -22clk_get_by_name(master_bus). clk_get_by_name(master_bus) failed: -22eqos_probe_resources() failed: -22Config file not found clk_get_by_name(master_bus) failed: -22eqos_probe_resources() failed: -22clk_get_by_name(master_bus). clk_get_by_name(master_bus) failed: -22eqos_probe_resources() failed: -22clk_get_by_name(master_bus). clk_get_by_name(master_bus) failed: -22eqos_probe_resources() failed: -22=>
Wow. This is not going anything like the CB1. I literally have not been able to just write an image and get it to boot so far. Armbian maybe?
Armbian with Reference Board
I was losing patience at this point and beginning to question whether I had a defective module or what on earth could be going on. Can Armbian save the day and verify my sanity and that I indeed know how to write an image to a SD card correctly?
YES! Armbian for the win. This thing does actually work after all. I have display and link lights so this is looking much more promising. USB is working on the reference board here and I’m able to use my wireless (via dongle) keyboard.
I fully updated the device with:
sudo apt update && sudo apt full-upgrade -y
Once the updates were complete I rebooted. I then verified to make sure WiFi and Bluetooth were working (they are).
Now that we can finally boot into a working OS let’s see what the board can do performance wise!
Benchmarking I/O Performance
It’s time for benchmarks! Theoretically this board should outperform the CB1 given the more powerful CPU and LPDDR4 RAM.
You can verify the performance of your SD card on Pi Benchmarks using the following command:
sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash
Here are the results:
Category Test Result HDParm Disk Read 22.72 MB/s HDParm Cached Disk Read 22.77 MB/s DD Disk Write 15.8 MB/s FIO 4k random read 2253 IOPS (9014 KB/s) FIO 4k random write 755 IOPS (3021 KB/s) IOZone 4k read 9441 KB/s IOZone 4k write 2198 KB/s IOZone 4k random read 8340 KB/s IOZone 4k random write 3038 KB/s Score: 1,081
The CB1’s score on the benchmark was 1,070. We outperformed it but honestly by less than I thought we would for sure! I did use the exact same SD card as the CB1 a few days ago.
This is a fantastic performance score with I/O performance really similar to a Pi 4. Both the CB1 and the SOQuartz perform very well. To get a Pi that would perform as well as either of these modules would cost you something like 3x-8x roughly than what you can get these modules for easily from most places in the world (as long as you wait the few weeks for shipping).
Pros / Cons
- Easy to order individual modules
- Price of $35 for the 2GB module is much less expensive than a CM4 in this market
- Hardware is more powerful than the BIGTREETECH CM1 (as well as having much larger memory selections)
- Extremely limited image selection due to Pine64 working toward mainline support rather than offering official images
- Not currently available in many marketplaces like Amazon or AliExpress — you generally need to order directly
Pine64’s strategy of going for mainline kernel support before having any kind of official image has left it pretty hard for newcomers. The CB1 pretty much “just worked” with everything I threw at it using their official image. I wish I would have tried Armbian with this board first. Definitely don’t waste your time on anything but Armbian.
Once you get a working Armbian installation the performance is fantastic. The hardware is quite powerful. I got the least powerful version of the board at 2GB as well since it can go to 4GB/8GB. Hopefully Pine64 is close to getting mainline support finished for this board. I definitely see the power of their dream / vision to have a mainline kernel supported drop-in CM4 replacement. For now you will definitely have to expect to use Armbian until that happens (or more images come along).
I think I would still recommend this as a Compute Module 4 alternative as I did the BIGTREETECH CB1! I would just say definitely use Armbian or you will have a bad time. These are available for $35 from the Pine64.com web site (and that is where I ordered mine from, I still don’t see an AliExpress listing). That’s quite a bit more than the CB1 modules but they’re easier to buy individually than the CB1 modules.
I’ve also reviewed the Pine64 SOQuartz Blade here
See all of the rest of my SBC reviews here