I’ve recently been reviewing many different single board computers that are outside of the Raspberry Pi ecosystem due to the ongoing pricing and availability issues with the Pi. Today will be my first review of a product that is meant to be an alternative to the Compute Module 4! There are several different CM4 knockoffs/alternatives available and I’ve already also received a Pine64 SOQuartz which I’ll be reviewing in the near future.
Today we will be examining the BIGTREETECH CB1(revision 2.2) as well as the official Pi4B adapter (meant to be one choice of IO board for the device). These are generally meant to be used with 3D printers as BIGTREETECH’s catalog is largely geared toward 3D printing.
I will not be reviewing the device for that purpose today. I will be examining it as a more general-purpose CM4 alternative. We’ll look at the images available, try plugging it into some other I/O boards meant for the CM4 and seeing what works and what doesn’t, benchmarking the performance and try to reach a conclusion about what a board like this will work for and what it won’t.
The CB1 from BIGTREETECH is an alternate to the Compute Module 4. It contains a Allwinner H616 quad-core Cortex-A53 @ 1.5GHz with a Mali-G31 GPU and 1GB DDR3 RAM. External WiFi antenna is included.
Links: AliExpress*, Alt AliExpress*
The BIGTREETECH Pi4B adapter is an IO board that the CB1 can connect to that gives it the form factor of a Raspberry Pi 4. Has a SD card slot as well as 4 USB 2.0 slots and Gigabit Ethernet.
Links: AliExpress*, Alt AliExpress*, Amazon.com*
This is the optional heat sink kit (but recommended, my heat sink was quite hot after hours of testing) for the BIGTREETECH CB1.
Links: AliExpress*, Alt AliExpress*, Amazon.com*
The packaging and build quality of the BIGTREETECH CB1 and the Pi4B adapter are fairly high. Let’s take a closer look at the CB1 module here:
And the back:
The boards look great. The contrast between the text and the board is fantastic. You can clearly see all the circuit traces and on this board you don’t need to hold it up to the light a certain way to see the traces. They’re always visible in normal light without having to rotate or angle the board against the light to see them.
The only nitpick I have is the perforations along the right side of the board most easily seen in the “Bottom” view above. For how high quality their packaging and the board itself is this is surprising to me that they didn’t clean up those perforations. This isn’t a big deal though especially given how much cheaper these are than an actual CM4 in this market.
Now let’s take a look at the Pi4 adapter IO board. The build quality is the same high quality:
And the bottom view:
You can see that it follows the same clear labeling and tracing that the CB1 board itself does. Overall the build quality is great for the price.
A wireless antenna is also included in the box with the CB1.
As always let’s evaluate what images are available for the board as well as how fresh they are. In the case of the CB1 there are only two images officially available (with more in the works both officially and unofficially).
The official image download page is here on GitHub. At time of writing these were:
- CB1_Debian11_bullseye_minimal_kernel5.16_20220929.img.xz: Only the shell script for setting WiFi configuration from SD card is added (based on pure Debian)
- CB1_Debian11_bullseye_Klipper_kernel5.16_20220929.img.xz: Klipper, Moonraker, Mainsail, Dependent library for resonance compensation , Linux-Host-MCU, and KlipperScreen(tested on on BTT HDMI-5 & HDMI-7) are installed (based on CB1_Debian11_bullseye_minimal_kernel5.16_20220929.img.xz)
These are reasonably fresh and are using kernel 5.16. This is looking good so far. The first image is the one that is meant for general use. The Klipper image includes the full desktop environment and includes other utilities/firmware for 3D printing such as Klipper. For this review I used the minimal image.
The source code is available as well including the entire kernel source tree. Huge props to BIGTREETECH for making that available for everyone.
There are very few third party images available at this time but it’s only a matter of time. With the kernel being open source it’s just a matter time before people start to put their own images together. Undoubtedly there are some out there and available on the forums but at time of writing none of them had risen to the top as a clear and well-supported alternative yet.
I wrote the image to a SD card and connected the power to the Pi4B IO board’s USB-C power port. It immediately joined the network with SSH enabled. The login and password were root/root:
email@example.com's password: ____ _____ _____ ____ ____ _ | __ )_ _|_ _| / ___| __ )/ | | _ \ | | | |_____| | | _ \| | | |_) || | | |_____| |___| |_) | | |____/ |_| |_| \____|____/|_| Welcome to BTT-CB1 2.2.0 Bullseye with Linux 5.16.17-sun50iw9 System load: 5% Up time: 3 min Memory usage: 12% of 984M IP: 192.168.51.177 CPU temp: 44°C Usage of /: 3% of 59G [ 0 security updates available, 5 updates total: apt upgrade ] Last check: 2022-09-28 08:02 root@BTT-CB1:~#
We’re all signed in and there’s even apt updates available! I did those first with:
sudo apt update && sudo apt full-upgrade -y
I did not have any difficulty connecting to the WiFi but I saw some reports online from others that did have trouble. Make sure you have connected the external antenna (it’s included in the box). The CM4 has a decent internal antenna but it’s very likely they give you the external antenna for free for a reason.
The CB1 likely has a weak or non-existent internal antenna and I’d be willing to wager that is where many of those WiFi issues stem from. People don’t realize they need to use the external antenna connector for reliable WiFi performance.
Benchmarking I/O Performance
Let’s see what it can do. The rough power level of this hardware is more equivalent to a Raspberry Pi 3 than a Raspberry Pi 4. I expect the performance to roughly to fall somewhere between a Pi 3 and a Pi 4.
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.51 MB/s HDParm Cached Disk Read 22.52 MB/s DD Disk Write 18.7 MB/s FIO 4k random read 1878 IOPS (7512 KB/s) FIO 4k random write 766 IOPS (3065 KB/s) IOZone 4k read 8031 KB/s IOZone 4k write 2959 KB/s IOZone 4k random read 7506 KB/s IOZone 4k random write 3175 KB/s Score: 1,070
The full BIGTREETECH CB1 benchmark can be viewed here on Pi Benchmarks.
I would consider this a good result. A Pi 3 average score is somewhere around 900 points while the Pi 4 is somewhere closer to 1100 or so. We’re right between that range as expected.
When testing I/O speeds I am particularly looking for any bottlenecks that may reduce your performance below what you should expect on the board. The CB1 performed exactly where it should given the hardware in the board which I would consider a positive for any product that is an alternative to something else!
Testing Other IO Boards
So everything performed very well using BIGTREETECH’s own Pi4B IO board. I wanted to test how well it would perform with other boards. These are all boards that I have covered in Different Shapes and Sizes of Compute Module 4 IO Boards.
First I tried the official reference board for the CM4:
In addition to just seeing if it would work I tested USB and Ethernet. Ethernet worked perfectly as well as USB:
root@BTT-CB1:~# lsusb Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 003: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge, ASM1153E SATA 6Gb/s bridge Bus 002 Device 002: ID 0424:2514 Microchip Technology, Inc. (formerly SMSC) USB 2.0 Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
We can see my USB to 2.5″ SATA adapter here that I was testing for connectivity.
Wow. I’m impressed so far but this is just the reference board. I wanted to try something more interesting next. I decided to try the Waveshare PoE I/O board:
This board has no power cable going into it at all and is powered purely by the Ethernet connection (PoE). This board also has USB 3.1 ports on it unlike the BIGTREETECH official board which only has USB 2.0.
Everything worked perfectly again. I can hardly believe it. This does work seem to work really well with the more popular I/O boards that I have for the CM4!
Pros / Cons
- Relatively inexpensive
- Official image has reached a point where it seems to be widely compatible with most common CM4 I/O boards
- Can be hard to order individual modules as most listings are bundles
- Seems to be intended for more specific 3D printer usage rather than general usage (but they certainly don’t stop you)
I’m very impressed. A lot of the talk around this product online is pretty negative so I was expecting a pretty rough experience. Instead it worked better than my wildest hopes to be honest after some of my more recent reviews of Pi Zero competitors.
It’s not a drop-in replacement because it doesn’t run Raspberry Pi OS. It *is* however potentially a drop-in alternative. You literally can use this with other IO boards meant for the Compute Module 4.
Does your project require you to run Raspberry Pi OS? Then this won’t work (for now, it would not surprise me to see Raspbian come to this). Would your project work on a board running something really similar to Armbian on a open-sourced 5.16.x kernel? If so then this board is absolutely worth investigating.
I only spent $47 on AliExpress for everything you see here. I ordered it from BIGTREETECH’s official AliExpress store*. That is including the heat sink and the Pi4B IO board as well as the CB1 itself (and shipping to the US). That is absolutely a bargain and if you know you can get away with running something different than Raspbian I actually highly recommend this board!
I’ve reviewed another CM4 alternative called the Pine64 SOQuartz here
Don’t miss the rest of my SBC reviews here
HI i have the official reference board for the CM4 + CB1 combination as well but anything i plug into the usb ports, it doesnt work. Found some documents saying the usb ports are turned off by default, but with the CB1 i couldnt figure out how to solve this. Did you have to do any extra steps to turn the usb on or it was on by default for you ?
Hey Zoltan V,
Welcome! So this is a bit strange for sure. I did use both the reference board and the Waveshare board’s USB ports with it for testing.
I did some searches on Google and the only thing I came up with is that it might be power related. If you are using the latest CB1 OS from their site it should automatically detect them. I would check your power supply (if you have a spare give it a try) and make sure it’s getting enough power for sure.
I was able to use the USB plug and play essentially and didn’t have to modify config.txt like you would have to with a CM4 to turn on the USB. On the CB1 it was plug and play for me. Hopefully that helps!
Just an FYI that this module will not provide proper functioning with any carrier board that makes use of PCI as it does not support PCI.
This definitely makes sense. I’m definitely not surprised because PCI doesn’t really work that well with the Compute Module 4 to begin with (beyond simple devices). I only know of a handful of carrier boards that have PCI in any form at least from Jeff Geerling’s database of PCI devices. One of these is the reference board though of course (more on that in a moment).
It’s still not possible to use devices like a GPU and a lot of the more interesting potential use cases on the Pi. The CM4 is the only Pi product that has supported PCIe (as in it can theoretically do it, not that your devices will work because most of them more complicated than a network card still won’t). It’s a first-gen technology for the Pi and the usage is still pretty highly technical (but improving especially with firmware updates over time).
I’ve done some PCI work using the CM4 using a NVMe module in with a PCIe 1x adapter. Is that what you were trying to do? I definitely can sympathize if you wanted to do NVMe. I’d love to see it support that.
This is important information to keep in mind for people buying the board for sure. The CM4 PCI support now vs. a year ago is so much better and supports so many devices that at launch would kernel panic or completely crash / fail to boot. A lot of that is frankly due to Jeff’s work trying every PCI device he could think of on the Pi and then submitting patches to get them fixed when he found problems. The CB1 has been around for at least that long so it’s fair to say that when the CB1 came out the PCI support was in early beta (and supported a fraction of the devices it does today). Not many people were using it back when the CB1 was designed for sure.
This probably didn’t seem very important to support when they designed/built the CB1 since we hadn’t really had our hands on the CM4 for very long and were still figuring out what we could realistically use the PCI for on the Pi (and arguably still are, the list of devices people are getting working and doing awesome stuff with keeps growing and a lot of them were broken when the CB1 was made and have only since been fixed). Having PCI support is something we’d have to hope for on a new revision or successor.
Thanks for sharing!
Most of the CM4 carrier boards that offer dual Ethernet are using PCI for the second Ethernet port. So those carrier boards will not have functional second Ethernet when used with the CB1 module. Examples are the 52Pi CM4 Router Board, DFRobot IoT Router Carrier Board Mini, and WaveShare CM4 Dual Eth Mini.
Thanks for clarifying, that definitely helps to know where this is being utilized in the carrier boards (outside the obvious PCIe 1x slot on the reference board). I have quite a few Waveshare boards including the PoE one that I tested but not the dual Ethernet model!
Are you sure about that? I am using the DFRobot IoT Router Carrier board Mini with my CB1 right now. Both ethernet ports are working.
NM. H616 doesn’t have PCIe, it was a fluke that I had two ethernet devices defined. After updates, it disappeared.
Got WIFI and Eth going: refer to their GitHub
Excellent, it looks like I was too slow to answer and you found the answer before you saw my reply!
Thanks for bringing this up as this has changed for sure or I would have mentioned it in the review. Enjoy and take care!
I managed to get this going over Ethernet, no WiFi yet with or without ext ant, Will push on though.
Welcome! So how did you try to configure the WiFi on there? It looks like there have been some updates on how to configure the wireless.
Check out this link here to their GitHub. It looks like there is a /boot/system.cfg file:
This is new since I did my testing / review on it and it looks like this version was released 12 days ago. I believe when I set mine up there was a shell script either in the home directory of the default user or the root user (the message of the day when you first logged in would tell you the script to run to configure it). I’d imagine that’s still there somewhere although it may have been removed from the login message since it looks like this new configuration method is supposed to be more stable according to the GitHub notes so it makes sense they are encouraging that.
Can you try setting up the WiFi this new way with /boot/system.cfg and see if it works for you?