I’ve reviewed the Pine64 SOQuartz compute module alternative in the past. While it works great Pine64 is working toward mainline support and doesn’t have very many choices available for a well-supported image as mainline kernel support for that board is not quite complete yet.
The Radxa Rock 3 Compute Module (CM3) is Radxa’s current production alternative to a Raspberry Pi Compute Module 4. They promise that “Radxa CM3, CM3 SODIMM will remain in production until at least Sep 2029” meaning that they have made a very long term commitment to support this board.
In this review I’m going to be taking a look at the Radxa Rock 3 compute module and see how it stacks up against the Pine64 SOQuartz as well as the Raspberry Pi CM4. Let’s begin!
Hardware Used
The Radxa Rock 3 Compute Module (CM3) has a quad-core 2.0GHz SoC with memory options from 1GB to 8GB. eMMC options are also available from 8 to 128GB.
Links: AliExpress*, Amazon.com*, AllNetChina
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.
Links: Amazon.com*, Amazon.ca*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*
Specifications
55 mm × 40 mm | 32 mm x 67.6 mm |
Processor: | Rockchip RK3566, Quad core Cortex-A55 (ARM v8) 64-bit SoC @ 2.0GHz |
Memory: | 1GB, 2GB, 4GB or 8GB LPDDR4 (depending on variant) |
Storage: | 8GB, 16GB, 32GB, 64GB, 128GB (depending on variant) high performance eMMC |
Connectivity: | – Optional wireless LAN, 2.4GHz and 5.0GHz IEEE 802.11b/g/n/ac wireless, BT 5.0, BLE with external antenna – Onboard Gigabit Ethernet PHY – 1 x USB 2.0 Host port ( highspeed ), 1 x USB 2.0 OTG, 1 x USB 3.0 port ( 5Gbps ) – 1 x PCIe 1-lane Host, Gen 2 ( 5Gbps ) – 2 x SATA ports, one shared with USB 3, one shared with PCIe – 50 x GPIO supporting |
Video: | – 1x HDMI up to 4K x 2K@60HZ – 1x eDP four lanes, 2.7Gps per lane – 2x MIPI DSI four lanes, 1.6Gbps per lane – 1x LVDS four lanes(mux with MIPI DSI0) |
Audio: | – LINEOUT – I2S – PDM, support mic array |
Multimedia: | – VP9/H.264/H.265 decode 4K@60HZ – H.264/H.265 encode 1080P@100HZ – OpenGL ES 3.2/OpenCL 2.0/Vulkan 1.1 GPU |
Input power: | 5V DC |
Connector: | 3x 100P 0.4mm pitch B2B connector |
Production lifetime: | Radxa CM3, CM3 SODIMM will remain in production until at least Sep 2029, CM3 Industrial will remain in production until at least Sep, 2032 |
Build Quality
Let’s start with the packaging. The module came in a box like this:
It was wrapped with a ton of bubble wrap and actually shipped in a box to prevent it getting smashed. I’m kind of surprised to see someone shipping a SBC in a box like this as my last 10+ reviews or so they have all came in clear hard shells (that can’t be smashed nearly as easily).
Here’s a look at the bottom of the packaging which has more information about the product:
This is exactly how Raspberry Pi 4 CM4s come though (in a very small box just like this) so I suppose that is what they are going for.
Now let’s take a closer look at the board:
In the top right hand of the board you can see a U.FL antenna connector to attach an external antenna. We can see that the version / revision of the board I got was V1.31A.
If you follow the U.FL connector and go left from there past the WiFi chip there’s actually a small button right to the left of the WiFi chip. It is the most yellow looking piece on the board with the small black dot in the middle of it. This button disables the eMMC.
In the top left hand in the board you will notice there is an unpopulated spot where there are only pads. Those pads are for a SPI flash chip and a button to disable it. My model did not come with the SPI flash obviously here.
And for the bottom of the board:
Now this is interesting, there’s a third connector on the left hand side of the board that the CM4 doesn’t have!
Fortunately this doesn’t break compatibility with any of the existing CM4 boards. It will still plug in them and function normally. The third connector gives you more available I/O options than are available on the CM4 if you have a I/O board that is capable of using them.
In other words it’s optional and boards can be designed to take advantage of it. You only need to change the .dtb file to switch between Raspberry Pi CM4 compatibility mode and Radxa CM3 compatibility mode (more on that later).
The overall build quality is excellent. The board is very solid and the traces are very clearly visible. It’s easy to find which components wire where just by looking at the board.
Available Operating Systems
The official download page for the Radxa Rock 3 Compute Module (CM3) is here.
As far as I can tell there are only two available operating systems. These include the following:
- Debian Bullseye XFCE Desktop
- Ubuntu Server (Focal)
That is it as far as I can tell. It’s an even worse offering of operating systems than the Pine64 SOQuartz. Substantially worse actually.
None of the third party images listed will work. That is just because they combined the CM3’s download section with the Rock 3 series of boards (another puzzling choice). Almost everything you see on that page won’t work with the CM3 unless it has CM3 specifically listed in the image name.
Testing CM4 I/O Board
Right off the bat you’re going to have to make some configuration changes. Even if you got a model with the eMMC the dtb files it came with are not compatible with the Raspberry Pi CM4 I/O boards. This is very disappointing but I’ll beat the hell out of them in the conclusion for it. Let’s just talk about how to fix it here for now.
Basically if you only bought the module like I did (and none of the Radxa I/O boards) you’re going to need to plug it into your CM4 I/O board and disable the eMMC boot pins so you can plug the I/O board into your PC and image the eMMC. *Groan*. Not exactly an convenient thing to do with a compute module.
The commands to fix this (from the running device) are:
cd /boot/dtbs/$(uname -r)/rockchip/ sudo mv rk3566-radxa-cm3-io.dtb rk3566-radxa-cm3-io.dtb.bak sudo cp rk3566-radxa-cm3-rpi-cm4-io.dtb rk3566-radxa-cm3-io.dtb sudo reboot
If you want to use these with the eMMC that’s going to be very hard to do without using the USB to TTY serial console. I don’t want to download rkdeveloptool and reflash the board. All I wanted to do was edit the files but that is actually really hard without just booting off a SD card first (at which point you will be able to access and mount the eMMC and change the files that way).
To be fair Raspberry Pi also makes you use a proprietary tool for flashing from the PC and doesn’t just show up as a drive. In other words this is a problem with the Raspberry Pi as well. It’s part of the reason this form factor sucks frankly and neither Radxa or Raspberry Pi are doing the form factor any favors by not having the eMMC just show up as an accessible drive on the PC. It’s just a miserable technology to work with frankly and it has been since day 1 (especially compared to other Raspberry Pi products, my goodness).
I imaged a SD card and then performed the above fix to make my DTB file compatible with the CM4 I/O boards:
james@pop-os:~$ sudo mount /dev/sda1 /mnt james@pop-os:~$ cd /mnt/dtbs/4.19.193-58-rockchip-gbac1feba87f0/rockchip james@pop-os:/mnt/dtbs/4.19.193-58-rockchip-gbac1feba87f0/rockchip$ sudo mv rk3566-radxa-cm3-io.dtb rk3566-radxa-cm3-io.dtb.bak james@pop-os:/mnt/dtbs/4.19.193-58-rockchip-gbac1feba87f0/rockchip$ sudo cp rk3566-radxa-cm3-rpi-cm4-io.dtb rk3566-radxa-cm3-io.dtb
I then attempted a boot and…. nothing. Are you kidding me? I’m going to really have to get a USB to TTY serial console out to get this to boot off ANYTHING even SD card?
How about no. I’m failing this board right now. This board is going into the drawer of shame and I doubt I’ll ever touch it again. Not even within the same league as the Raspberry Pi 4 Compute Module 4 or even the Pine64 SOQuartz. There’s literally no point in continuing. This is a terrible offering.
Performance Benchmarking
Cancelled due to being such a nightmare to work with that I was done with the board before we even got to this.
Conclusion
Adding a third connector was theoretically a really good idea from Radxa if they would have done it correctly. The implementation is problematic though. Why didn’t Radxa map the I/O with 100% compatibility with the Raspberry Pi Compute Module 4? Why am I having to change .dtb files (even within the same image) to switch between different I/O boards?
When I bought this product what I expected to happen is that I could use it interchangeably between Compute Module 4 I/O boards and Radxa I/O boards. I figured it would map the I/O in a way that maintained compatibility with the other images. It doesn’t though. You have to change the .dtb files between the two.
I’m sure Radxa has a very technical explanation of why they did things this way but I would argue they’ve missed the point of using a compute module form factor like this. The whole idea is that I should be able to plug it into any I/O board and have it work. By adding a third I/O connector and having to switch operational modes by changing the .dtb files they’ve completely erased any advantage of using a form factor like this. It’s now just an additional headache added to the many headaches there already are when working with compute modules (even in ideal circumstances).
In other words I think the third connector took this product in the wrong direction. It doesn’t make sense to me anymore. This really isn’t an easy product to use with Raspberry Pi Compute Module 4 I/O boards because you have to mess with the .dtb files. They say they have been working on an image that has this change built-in but it’s not available still. You have to do it manually.
I hate to say it but this has to be Radxa’s least compelling offering I’ve ever reviewed. I called the Radxa Rock 5B the new king of SBC performance in comparison. I will recommend the Radxa Zero over the Raspberry Pi Zero 2W all day long as well.
For this product to make sense to use you would probably want to bundle it with Radxa I/O boards so all of the images work without any further modification and customization. The issue is I see no reason why you would want to start over and invest in Radxa’s compute module ecosystem from the ground up. You can be sure that none of their gear with the third connector will play nice with the original CM4 (or at least it would be seriously hindered if it’s even possible by lack of the third I/O connector on the CM4).
I legitimately would recommend the Pine64 SOQuartz over this board just because that board doesn’t have any weird I/O mapping issues going on with a third connector requiring changes to your dtb files to swap between the different I/O board solutions.
I know Radxa has an extremely powerful CM5 model coming up that has an incredible 8 cores and will absolutely stomp the CM4 in performance. I’m honestly less excited for it though after trying this version.
That’s because with having to change your dtb files to move between the different I/O boards no matter which image you’re using is honestly really gross to me. It’s exactly the kind of jankiness that Raspberry Pi fans (rightfully in this case) are pointing out as to why it’s an inferior experience and I don’t see how it can be overcome on this board series as it’s a design issue.
I legitimately don’t know who this board is for (other than giant clusters of them) because if it’s not for CM4 fans then as I’ve explained who is it going to make sense for? Who else is going to have invested in this form factor already and have the super expensive I/O boards? Why not use microcontrollers or a regular single board computer? There are much more compelling offerings in both of those categories that cost less money / have more flexibility / enjoy better compatibility.
My constructive criticism to Radxa would be to get those images out that have the dtb changes built-in. It’s still a terrible solution but it’s still a lot better than making the users modify their dtb files just to switch I/O board types. This board is straight up disqualified from being a Raspberry Pi alternative/replacement in any way until that happens. If the Radxa CM5 launches with the same issues it will also be automatically disqualified for consideration as a Raspberry Pi alternative for the same reason. You are offering an inferior experience in this case and that is not the case with your other product offerings Radxa!
I kind of am doubting the compute module form factor altogether anyway to be honest. Playing with them again recently has made me feel like I’m playing with obsolete technology after my recent dive into microcontrollers. I’ve been so much more impressed by the microcontroller ecosystem (particularly ESP32). The microcontroller ecosystem seems like where things are really going to me and not to compute modules. I think this form factor is going to fail.
There’s nothing convenient or nice about how this compute module market and the I/O boards surrounding it are developing. The CM4 I/O boards are generally super expensive anyway especially compared to the microcontroller world. Just a regular CM4 I/O board is more expensive than an entire microcontroller solution that comes with all the components soldered to the board that you want already good to go (with even the CPU included via the microcontroller). My entire microcontroller projects cost less to build with everything combined than just the compute module I/O boards cost let alone adding a Compute Module 4 or Radxa CM3 on top of that.
The compute module was a great idea (at the time) but microcontrollers are becoming so powerful so quickly that I really don’t see any reason to keep living in Raspberry Pi / Radxa compatibility hell when microcontrollers are so powerful now (and will continue to become more powerful). Raspberry Pi couldn’t ever produce enough of these to make it a really well-established necessary form factor. I wouldn’t expect Radxa to be able to establish it themselves either especially given they are competing more with microcontrollers now than with Raspberry Pi since Raspberry Pi has been flailing around for years not shipping anything (relatively speaking).
We already have a great modular component ecosystem and it’s not Raspberry Pi or Radxa. It’s generally ESP32 / microcontrollers. Adafruit is making really interesting microcontroller products that I’ve done a lot of coverage on the site that are so much better than anything going on in the compute module market. You can connect individual components together over I2C and build incredible modular projects powered by microcontrollers in the modern age. Without soldering.
I really would encourage people to embrace microcontrollers (even if it’s the RPI Pico / RP2040) instead of compute modules at least for maker builds. They’re so much more compatible with each other already than single board computers ever were / are. They’re also much more pleasant to use frankly. Modern microcontrollers have a lot more power than people realize. They’re already dual core (which is more than the Pi Zero W can say) and typically have built in WiFi/Bluetooth.
If you need the power of a full single board computer then get the Radxa Rock 5B. If you need the form factor of a Pi Zero 2W then get the Radxa Zero. If you need small / modular / expandable then the microcontroller world is infinitely better than anything you’re going to be able to do with these compute modules. It’s only people who are building a small 1U cluster of a whole bunch of these together that this might make sense for and people are already doing that with the Pine64 SOQuartz Blade.
Other Resources
You can see my 2023 top recommend Raspberry Pi alternatives list here
For the smaller Pi Zero form factor the Radxa Zero makes a lot of sense
Greeting James,
Ironically you got much further than I did with the Radxa CM3 and the RPI-IO board… I found that the ADB connection to the PC was intermittent at best and failed programming anything to the eMMC Flash on the SoC ( at least through Windows ) – Eventually I shelved the project until I could get the Radxa CM3IO board.
Recently I did indeed get the Radxa CM3 IO board, however the results…. well here goes…
1. I gave up with Windows 10 trying to get an image onto the onboard 32GB eMMC Flash… the RockTool drivers are simply broken.
2. Linux ( Xubuntu x86 )
“RKDeveloperTool”
I was able to see the device in maskrom mode, however this is just the beginning of the battle – you then need to compile Rockchip source code to make the “RockDeveloperTool” this code has dependencies that are need to be installed on the host system and even after all that there is an error in the code the stops it from compiling.
Its an buffer overflow error in “main.cpp” at line 1,34x it has the value is “5” and needs to be raised to “558” to compile…
So got the tool finally complied, tested it and it found the device… I then proceeded to flash the “loader.bin” file – and then the Debian image
“Debian Image”
Sadly this failed…. nothing would boot… I was some what tired and just through the image onto a uSD card (128GB Samsung V30) using “balena etcher” and the compressed xz image.
Surprised that it actually booted, it got to the log-in screen – I was quite amazed….. drinking my coffee an tring not to choke it down after what seems like days tring to get a response from the little device…
However… Another battle ensues – there is absolutely NO information on the website or the log-in details for the Debian image….. eventually I ended up in the Radxa CM3 Discord… and nothing… no response…. I got no response from an email to Radxa either…
“Android Image”
While taking a break I put the uSD to one side and figured lets try the Android image maybe get some VOLKSPC….. I honestly wish I hadn’t, the image failed to write to the uSD card so I downloaded the image again… it failed again… I installed “Balena Etcher” on the Windows PC… and this oddly programed uSD ( go figured?! )
I put the 32GB uSD into the CM3IO and it decided to take its time… it managed a couple of Android / Rockchip splash screens – and then got stuck in the setup loop as nothing is signed for google or googleplay…. yeah…. like the masochist it seems I am I tried writing the image again… same results.
“Manjaro”
I took break from all the lame failing and decided to see if there were some distros that cater for the RK3566 among them I found the “Quartz64 Model A” Manjaro build…. while not necessarily my flavour of Linux… at this point anything is accepted. Imagine my surprise when it booted from a 32GB uSD…. into the desktop
I was surprised that the OS loaded into the desk top…. however after setup / passwords etc. this is where there were problems started to surface –
The network port was disabled. the USB 3.0 port, disabled. the PCIe Link was down…. the system was limited to used the CPU to draw the screen no GPU offloading… there was no way to get the Network working…. so … after about an hour of that… I put thing up for the night….
“Back to Debian”
I was pottering around online, scanning as much as I could for Linux for the CM3IO and with the more I found the more it became apparent that one will need the RKLibraries and compile ones own flavour of Linux… while I am not opposed of doing that… its very far away from “beginner / novice / or development” ready.
I was on the Radxa Discord and I mentioned my woes in the Meet and Greet channel, as some was also lamenting the ISO build from Radxa’s wiki – it was suggest to try “rock” and “rock” for user name and password… would you believe it… it actually worked…
So here I am, in Debian….
The Network is disabled, the USB 3 is down… the PCIe link is down… SATA link is down … but it booted from uSD … AND it could see the 32GB eMMC in “lsblk” devices……
“In closing”
Yeah….. specs on paper…. and hardware in your hand means absolutely nothing if there is so little support from the developer / producer and providers….. Sadly I don’t have the time to really dedicated building a Linix distribution for this… and then get on with the development that I actually want to do…. we shall see…. there should be some time at the end of summer and beginning of fall.
This product is not ready to be “Developer Ready” unless you are into building Linux distros or are adept at adapting them… there is nothing here but hours of “waste” masked as “learning” – perhaps when some dedicated and talented developers put out a working distribution then I will have another visit…..
I am sorry for what seems like a rant, this has just been my struggle with the devices…. I do want to say that while I got both the CM3 and the CM3IO boards from OKdo, I cannot say enough praise for the service and speedy delivery I received and I look forward to buying from them again soon. These two ( very poorly supported ) Radxa products are in no way any fault of OKdo – just feel I need to point that out.
Z.
Hey Zetr0,
Great rant, and I actually completely agree with everything you’re saying! The funny thing is the other Radxa boards are not anywhere near this bad as far as support goes. That’s probably what led me to having way too high of expectations for this board. For example the Radxa Rock 5B and the Radxa Zero have tons of great working images.
In contrast this compute module from Radxa was an absolute nightmare. It wasn’t just a nightmare compared to Radxa. It was a nightmare compared to other compute modules such as the Pine64 module or the BIGTREETECH CB1 modules. Those ones also generally just worked and while not perfect it wasn’t anywhere near the nightmare for this board.
Testing the CM3 completely ruined my expectations for the Radxa CM5. I was really excited about the CM5 but I’m not after trying the CM3. It’s really a shame. Thanks for sharing your experience and your rant!
Hello James,
Sadly I really didn’t want it to be a rant, unfortunately with the lack of support on top of what should be a relatively simple process that kept failing. proved to be quite a “challenging” task indeed.
However, I do have an “update” of sorts, I did get an email from Tom Cubie at Radxa and while it didn’t directly resolve the CM3 + CM3 IO issues I do appreciate the effort. I hope my bar of acceptance hasn’t fallen too low.
Anyway, interestingly the Radxa Wiki/Website has changed and been updated since I made the above post, and I think for the better, well its moved hosting and structure over to docs.
https://docs.radxa.com/en/rock3/rock3c
There is a bit more information and some other downloads to try, including a complete git-hub project to compile your own flavour / build of Debian / Ubuntu + XFC4 / Gnome – so when I get some time, and feel the need for some unrestrained masochism I will endeavor to give it another go.
Hey Zetr0,
That makes sense that they must have some kind of pipeline to produce usable Linux distros. It’s amazing how few of them have ever been publicly released.
I kind of get it though. I made the mistake of trying to release an Ubuntu 22.04 image for the ODROID M1. This isn’t a board I even use anymore as the Radxa Rock 5B and Orange Pi 5 were far superior and I’ve never used my ODROID M1 since I got them. I still get constant requests to try and update their image for them because ODROID *never* released any updated images for the board since it was released. You’ll see them if you go into the comments.
Given how much worse shape the default images are for the Radxa CM3 I’d imagine there are companies/individuals that have working fixed images for the board. They just are smarter than me and won’t release them publicly because they don’t want to support every little issue (for free of course) that Radxa overlooked on their base images.
It’s really hard to know who is using this board and where. I really don’t know of anyone but I’m sure there are people/companies doing it. They’re just staying very quiet about it as supporting an entire board or set of images is a *lot* of work and there are very few ways to get paid doing it. I’ve just gone back to working for a company again rather than trying to figure out how to monetize or pay for developing images like this.
Definitely let me know if you give it a try and how it goes!
Greetings James,
So I ended up spending (a lot) more time with the Radxa CM3 and CM3IO board and I have had some very good results, including updated ( Aug 2023 ) Debian / Ubuntu images with loading / booting from eMMC ( and surprisingly its about 178Mb/s Read and 120Mb/s Write ) anyway – here some interesting results
Initially I wanted to test the USB 3.0 Speed using a SATA3 bridge, – in terms of testing DD works well, however I have lots of resources with the SBC so
I decided to use the gnome-disk-utility since it was installed to make images and disk clones.
Radxa CM3 ( 4GB LPDDR4 + 32GB eMMC) + CM3IO USB 3.0
"Neofetch ( After Boot )"
_,met$$$$$gg. rock@radxa-cm3-io
,g$$$$$$$$$$$$$$$P. -----------------
,g$$P" """Y$$.". OS: Debian GNU/Linux 11 (bullseye) aarch64
,$$P'
$$$. Host: Radxa Compute Module 3(CM3) IO Board
',$$P ,ggs.$$b: Kernel: 5.10.160-8-rk356x
d$$' ,$P"' . $$$ Uptime: 10 mins
.$$P d$' , $$P Packages: 1111 (dpkg)
$$: $$. - ,d$$' Shell: bash 5.1.4
$$; Y$b._ _,d$P' Resolution: 1920x1080
Y$$.
"Y$$$$P"' DE: Xfce 4.16
$$b "-.__ WM: Xfwm4Y$$ WM Theme: Default
Y$$. Theme: Xfce [GTK2]$$b. Icons: Tango [GTK2]
Y$$b. Terminal: xfce4-terminal"Y$b._ Terminal Font: Monospace 12
""" CPU: (4) @ 1.800GHzMemory: 804MiB / 3741MiB
Not the most memory optimized Debian I have seen… but… I have seen a lot worse. The Kernel here is interesting 5.10.160-8-rk356x, the current stable Kernel being 6.4.11, however 5.10.190 is still in the long-term category.
rock@radxa-cm3-io:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 55.9G 0 disk
├─sda1 8:1 0 256M 0 part
└─sda2 8:2 0 55.6G 0 part
mmcblk0 179:0 0 119.4G 0 disk
├─mmcblk0p1 179:1 0 16M 0 part /config
├─mmcblk0p2 179:2 0 300M 0 part /boot/efi
└─mmcblk0p3 179:3 0 119.1G 0 part /
mmcblk1 179:32 0 29.1G 0 disk
mmcblk1boot0 179:64 0 4M 1 disk
mmcblk1boot1 179:96 0 4M 1 disk
zram0 254:0 0 1.8G 0 disk [SWAP]
rock@radxa-cm3-io:~$
Currently the device is booting from “mmcblk0” ( 128GB Samsung V30 ) The device sda is an old 60GB Kingston A300 SSD attached via USB3.0, interestingly “mmcblk1” is in fact the onboard 32GB eMMC – so onto some testing.
But first, here is a quick roll-out as to whats on the USB –
rock@radxa-cm3-io:~$ lsusb
Bus 006 Device 002: ID 174c:1153 ASMedia Technology Inc. ASM1153 SATA 3Gb/s bridge
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 258a:002a SINO WEALTH Wired Gaming Keyboard
Bus 001 Device 003: ID 045e:00d1 Microsoft Corp. Optical Mouse with Tilt Wheel
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
rock@radxa-cm3-io:~$
We can see our friend the ASMedia Technology Inc rocking the ASM1153 SATA bridge chip so lets get onto the disk-speed via USB3.0
Gnome-Disks-utility ( Benchmark ) sudo apt install gnome-disk-utility
Device : 60 GB Disk — KINGSTON SV300S37A60G [603ABBF0] (/dev/sda)
Date : Wed 16 Aug 2023 11:37:21 AM UTC
Sample Size : 10.0 MiB (10,485,760 bytes)
Avg Read Rate : 280.7 MB/s (100 samples)
Avg Write Rate : 149.5 MB/s (100 samples)
Avg Access Rate : 0.46 msec (1000 samples)
This holds up quite well using the same device on my RPi400@2Ghz and CM42GB + RPIO Board @ 1.5GHz, again using the same USB3.0 to SATA bridge.
I should point out that this peeks at 360MB/s on a regular PC via SATA 3 or USB3.0 running Xubuntu / Twister UI.
Nominal tux box PC (ex-office Fujistu )
CPU : Intel Core i5 7400
RAM: 16GB PC1866 DDR3
I was able to install an OS onto the eMMC using Balena Etcher, after loading the OS from uSD card I used Balena Etcher to (decompress and write) a debian KDE .xz image from USB 3.0 to the eMMC ( which shows up as *card reader* ) and too my surprise, after shutting down and popping out the uSD card, the Radxa CM3 boots up from the eMMC
I did do a graphical report using Chrome to see what was support, and everything is ( including OPenGL ), well Vulkan isn’t supported… but hey… I did dump the whole text, however… there is a lot of it ( I don’t want to break your website ) so the highlight is that the Mali G52 codecs are supported!
Graphics Feature Status
Canvas: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Out-of-process Rasterization: Hardware accelerated
OpenGL: Enabled
Rasterization: Hardware accelerated on all pages
Skia Renderer: Enabled
Video Decode: Hardware accelerated
Vulkan: Disabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Video Acceleration Information
Decode h264 baseline 48x48 to 3840x2160 pixels
Decode h264 main 48x48 to 3840x2160 pixels
Decode h264 high 48x48 to 3840x2160 pixels
Decode vp8 48x48 to 3840x2160 pixels
Decode vp9 profile0 48x48 to 3840x2176 pixels
Encode h264 baseline 0x0 to 1920x1088 pixels, and/or 30.000 fps
Encode h264 main 0x0 to 1920x1088 pixels, and/or 30.000 fps
Encode h264 high 0x0 to 1920x1088 pixels, and/or 30.000 fps
Encode vp8 0x0 to 1920x1088 pixels, and/or 30.000 fps
I will say that the OS environment is a little sluggish in feel, either that or I am expecting too much from the little quad core… To be fair it is miles better than the “software only graphics rendering” with the Manjaro build that I tried a while back ( Quartz64 Model A )
Having some experience with Rockchip SoC’s I installed a copper shim and Heat-sink – as Rockchip follows the mantra of “Feed it power until it burns!!!” – to be fair its one I can totally get behind too 😉
CPU Temperatures ( after benching and installing )
rock@radxa-cm3-io:~$ sensors
soc_thermal-virtual-0
Adapter: Virtual device
temp1: +56.1°C (crit = +115.0°C)
gpu_thermal-virtual-0
Adapter: Virtual device
temp1: +52.5°C
rock@radxa-cm3-io:~$
Toasty little beastie…. got some more testing and benching planned for today, and yes… I have also now added a FAN.
So what is left ?
Well I am still unable to get any response to the PCIe so “lspci” returns absolutely nothing… even when a known working PCIe x1 USB 3.0 card ( pulled from the RPI CM4IO ) is installed… just nothing…
I need to test the Bluetooth and Wireless NIC. I have yet to get an SSD on the SATA ports of the Radxa CM3IO. I doubt that unless I want to start messing with the Kernel boot order these wont be bootable. on the Radxa CM3IO board one SATA port shares with the USB3.0 and the other Shares with the PCIe Bus. While testing I discovered that there is no direct booting from USB3.0. But I am sure a partial boot from uSD or even eMMC to then continue loading from USB3.0 would work, I was able to do this with a Raspbery Pi 2B+ ( uSD + USB2.0 booting – yes still faster than uSD on that little 32bit Quad-core ).
A good thig to know is that the uSD port on the Radxa CM3IO board is a higher priority to the eMMC – so that’s handy 😉 you can bypass booting from the eMMC with just booting from uSD card….
Anyway this has turned into a bit of a wall of text – sorry for that.
I would like to say thank to Tom Cubie from Radxa for reaching out recently via email with a new link to new “Test” builds of the operating systems
https://github.com/radxa-build/radxa-cm3-io/releases
PCIe aside, we are now into some exciting times…..
Thanks for reading
Z.
Hey Retr0,
Great results, thanks for sharing! I definitely had some pretty “hot” results as well as far as temperatures go. I definitely recommend at least having some heat sinks on it!
Thanks for sharing the link to the test builds as well!
Hi James,
Its my pleasure to post, I am just very glad there is a resource like this site – I have been a user/ creeper here 😉 for some time, especially in regards to the RPI 400 with USB to SATA bridges… I remember you being able to find a driver firmware update for a USB3.0 SATA3 bridge that I was having trouble with ( an eBay purchase for about £5 / $8 ) but sadly it would only function at USB 2.0 speeds on the PI and while it was able to hit USB 3.0 speeds via a x86 PC – it soon stopped working…. but it was worth it or the leaning – I since have 3 more that all work and are all ASMedia based chipsets.
So when I was hitting up the internet for the Radxa CM3 + CM3IO for the umpteenth time, imagine my surprise when I saw your site again lol.
Now, I have since this saga began, been able to flash the eMMC natively from Linux and have really enjoyed Ubuntu KDE – I have done a lot more tests and I still haven’t been able to get any response from the PCIe or the SATA 3 ports. This was a known issue in the early build and I suspect these “Test” builds also have some problems in this regard, In the above link, there are older OS build assets so I will try those out soon – I am curious about the Android builds as I find that those really support Rockchip chip-sets very well… we shall see… I would like to see the limits of Mali G52 Android Gaming / Emulation etc.
In a nut shell the eMMC is about 8x Read speed of uSD ( 178 MB/s ) and the Write is about 3x speed of the uSD ( 66 MB/s )
The RK3566 is clocked at 1.8Ghz
I have complied a lot of tests and graphical images of the setup – so I will upload them to some generic storage and if okay I can link them in another post here, if that is okay, as I don’t want to further clutter these threads.
I have also put together a starter guide of sorts for the Radxa CM3 – provocatively titled “Don’t Panic!” 😉
If you do get the time, I would recommend giving the Debian / Ubuntu -KDE builds a try, I was quite surprised at the response with the device.
Anyway I hope all this helps as well as others too, thanks for making a space we can share these…. ahem “projects” 😉
Z.
Hey Zetr0,
Excellent report and results! It sounds like it is worth giving those builds a try. Thanks a ton for sharing!
Hi James,
I was really looking forward to this review especially as we see development of the CM5 but after reading your review of the Radxa CM3 I can’t but feel disappointed and maybe the fact they chose to ship it in just a box and not a plastic tub was proof enough that they don’t care for the product…? FAIL!!!
I understand that there’s a market for compute modules for commercial and industrial scaled projects but how many do these companies make as judging by the pricing its way too expensive as most times you need to add an adaptor/carrier board only to gain the same functions you would get using an SBC alternative? Then again I’m not really the target audience but I see the potential for using a CM5 in video gaming as the smaller form factor is ideal but if Radxa can’t get the CM3 perfected then what hope do they have with the CM5 and don’t get me started with the other RK3588/S compute modules/system on modules as they’re way over priced and largely unsupported!
I do see Radxa selling the Tac carrier board and E25 carrier board/sbc router that uses the CM3 Industrial RK3568 chip but that market is saturated with Nanopi selling a host of mini sbc/routers and the Linkstar H68K is similarly priced but that’s a whole separate discussion for another day.
Its hard to argue with your points and I agree 100% on adapting microcontrollers into your projects as your recent reviews demonstrate how a simple ESP32 board can power some neat technology such as sensors, cameras and the appeal of open-source means we see hundreds of clone boards fighting to give the best value or performance with newer generation chips offering onboard WiFi 6 /Bluetooth 5 that some newer generation SBCs don’t have.
Thanks again for the honest review and here’s hoping you have better success testing out the next gadget. Cheers from Australia!
Hey Razor Burn,
Thanks so much! I was definitely disappointed as well as I was pretty excited to get my hands on one of these.
I think part of the problem is I’ve been doing so much with ESP32 modules lately which you’ve seen I have had no problem getting modules/components/sensors/everything going very easily even if they were never intended to work with one another.
I hadn’t taken a serious look at compute modules since the SOQuartz long before I started my (serious) microcontroller journey. After diving into the microcontroller world though it’s really easy to see why these never took off. Any niches that would have made sense for this product (other than making a giant compute module cluster) are *gone*. That makes *zero* sense with current microcontrollers.
I mean for one you don’t have to worry about running a whole operating system you have to secure and update. You are only running an application on a microcontroller essentially. I literally cannot imagine trying to ship a device like this as a manufacturer with a Pi CM4 or Radxa CM3 that needs OS updates and configuration to remain secure. Why would you do that when microcontrollers are so good and so powerful now? It’s way better for the end-users using the device as well that the only code running on it is your application basically rather than a whole aging operating system that needs constant security updates.
Single board computers still have their place for sure. I’m just not sure compute modules have their place realistically. I think they were made obsolete by microcontrollers. Even for the people who still need a full quad-core board the Radxa Zero is literally smaller than these compute modules and that’s a quad-core board. It really won’t be long before you start seeing quad-core microcontrollers either. We’re already on dual-core for all of the most popular modern microcontrollers right now and we know more powerful versions are on the way.
I don’t see why you would buy this instead of the Radxa Zero for example. You would have basically exactly the same specs. The specs look very similar between the Radxa Zero and CM3 (they’re both quad-core with varying memory and eMMC options). You also don’t have to deal with any I/O boards and all of the compatibility issues surrounding them. These just don’t really seem to have a place to me.
These were born right around the same time as microcontrollers *really* started taking off and getting more powerful. Microcontrollers won. Handily. They won so much that Raspberry Pi had to enter the market *late* with the Pico / RP2040 to try to catch up. The IoT world would be full of devices powered by these if Raspberry Pi had succeeded / been able to make enough. Instead when you look around today you will instead see microcontrollers everywhere and virtually none of this compute module stuff. The places you see it they are using the Pi CM3 instead of CM4 so even their older form factor seemed to have done better than the one on the CM4 / this Radxa.
I think this is because of how much easier / more pleasant it is to work with ESP32 modules and microcontrollers vs. any of the compute modules including Raspberry Pis as well as just how much cheaper they are. I know you’ve been investigating microcontrollers and are going to be in a great position for the future here.
The Radxa CM3 might have done me a favor by really driving home to me what the problems are with compute modules and how little sense they makes now in 2023 vs. only a few years ago when this looked like the future. When I looked at the compatibility hell world that is compute modules (along with them just being unnecessarily painful to work with by not supporting things like showing up as a drive you can image) and compared that to microcontrollers it made it crystal clear to me that this is a doomed technology (and exactly why). It’s so obvious why microcontrollers won the war and these haven’t really gone anywhere.
I’m honestly so glad that Raspberry Pi didn’t succeed in making compute modules a real standard. I’m so glad they failed to recreate their single board computer ecosystem for compute modules. It’s literally a godsend they were so late to microcontrollers because now we have a market where everything works well with each other and it’s too late for them to stop that. That is despite Raspberry Pi’s best efforts to try to pull the same crap they did with single board computers and compute modules and make them all proprietary and not compatible with each other. They just failed in those markets and we live in a better world now as a result.
To be clear the RP2040 is already successful but it’s because they are trying to compete with Espressif. They are the clones now when it comes to microcontrollers. They are shipping reels of those chips naked to whoever wants them just like Espressif. This is not something they normally do. They normally love to *control everything* and lock everyone else out.
The RP2040 is purely a reaction to the ESP business model. They’re trying to copy it. We already know what Raspberry Pi’s alternative was to microcontrollers and it was compute modules. I’m totally fine with Pi fans buying basically Raspberry Pi’s version of the ESP32 not realizing that the reason the microcontroller market is so much better than single board computers is because Raspberry Pi is not the king of it. It’s because Raspberry Pi failed with their attempt to make a modular technology like this via the compute module that we get to enjoy an ecosystem that isn’t poisoned. Now Raspberry Pi just has to operate like everyone else in the market meaning we don’t have to worry about compatibility nearly to the extent we did with single board computers.
In other words compute modules are the nightmare hell we would have lived in if Raspberry Pi’s idea had worked and they were able to corner the market early like they did with single computers. Fortunately you can pretty much safely ignore them completely at this point. The war was already lost and Raspberry Pi has joined the microcontroller game via RP2040. This compute module technology is not worth it for businesses or consumers. Microcontrollers will be cheaper, better and more secure for both (and much more open/compatible with other microcontroller technologies). In places a microcontroller won’t do the Radxa Zero is smaller than one of these compute modules and is a delight to work with in comparison.
If you think about it the modern microcontroller basically is the evolution of the single board computer. Modern ones provide the CPU, RAM, WiFi capabilities, storage capabilities and everything else that made single board computers and Raspberry Pi so awesome so long ago. Only now it’s even smaller and it’s way more secure without having to run an entire OS. It also uses way less power. Historically they were just never powerful enough to do very much with (just like the original Raspberry Pi vs. a Pi 4 today) but they are now. The software/development tools have evolved quite a bit as well basically eliminating the need for an operating system for the vast majority of cases.
Thanks again for your comment and take care!