Raspberry Pi cluster board a standard size mini-ITX board to be put in a case with up to 6 RPI CM4 Compute Modules.
6 RPI CM4 supported
1 Gbps RJ45 x2
Onboard ON/OFF and Reset button
PC Case front panel header
12V FAN Header x3
DC 19v~24V or ATX 12V
a. PCIe Gen2 x1 (M.2 M-key) (Support NVME 2280 SSD)
b. Micro SD Card socket
c. 5V FAN Header
d. Micro USB 2.0
a. USB Host A 2.0 x2
b. USB Host 2.54 4-pins x2
c. HDMI 2.0 x1
d. HDMI 1.4a x1
e. 3-PIN ARGB (5 V) (GPIO18 Support WS2812B Individually Addressable RGB (ARGB) LED )
1. 1pcs Raspberry Pi CM4 Cluster Mini-ITX board.
2. 1pcs 100W Power Adapter (UL/TUV/CCC/PSE/EK)
Note: Raspberry Pi CM4 board are not included
170mm x 170mm x 21mm (Mini-ITX)
Self-hosted: Host cloud applications locally or at the edge Learning
Learning: Kubernetes, Docker, Serverless
Development: Build cloud-native and CI/CD for ARM edge infrastructure
Network-Attached Storage or Distributed Storage System :6 x ARM NAS node or CEPH node
Home server (homelab) and cloud apps hosting.
Learn Kubernetes, Docker Swarm, Serverless, Microservices on bare metal
Cloud-native apps testing environment
Learn concepts of distributed Machine Learning apps
Prototype and learn cluster applications, parallel computing, and distributed computing concepts
Host K8S, K3S, Minecraft, Plex, Owncloud, Nextcloud, Seafile, Minio, Tensorflow
RPi CM4 ITX Cluster supports all Raspberry Pi CM4 with and without eMMC.
No, the product only have cluster motherboard and power adapter.
You can boot the OS either from eMMC, SD Card or netboot.
Yes
The nodes interconnected with the onboard 1 Gbps switch. And, each node has 1Gbps speed.
The cluster works with any amount of nodes. You can start with a couple of nodes and scale when needed.
Yes, you can flash a compute module using a Micro USB cable.
There are 2 USB-A an 2 USB 2.54 Pins on the board.They only connect to CM4 1$. The two HDMI ports are also the same.
NIC – There is an 8-port gigabit switch on the board. Each port goes to each node plus one uplink. Two RJ45 out are from the switch. You can use them connect to other network device without extern switch.
Yes.
Note: The latest Raspberry Pi OS does not contain pi user and it may not need to add dtoverlay=dwc2,dr_mode=host to config.txt file.
- Assume you are using the old version (Raspberry Pi OS 2021-11-08)
- CM4 Lite means Raspberry Pi Computer module come without a EMMC storage onboard. That means you need purchase MicroSD card(TF card).
- Steps:
Before we unplug, now that your CM4 is fully flashed and ready to go, you’ll be surprised to learn that the USB Ports are disabled by default. Yes, really. Remember, this is a board designed to be embedded elsewhere and not for consumer-level off-the-shelf use.In the “boot” folder, find the config.txt and add the following:dtoverlay=dwc2,dr_mode=hostThis will turn on the USB ports when you boot up, but if you accidentally keep the micro USB in, you will run into issues. Before you begin your first boot, make sure everything is unplugged. Boot and then plug in your mouse or keyboard.If you’re like me and couldn’t get a wi-fi version, this is where you’ll plug in your dongle or ethernet cable.
Please also read the section in the Compute Module Datasheets:compute-module-datasheets-and-schematic
Ensure the Compute Module is fitted correctly installed on the IO board. It should lie flat on the IO board.
Make sure that nRPBOOT
which is on J2 (disable eMMC Boot)
on the IO board jumper is fitted
Use a micro USB cable to connect the micro USB slave port MCRO_USB
on IO board to the host device.
Do not power up yet.
Under Windows, an installer is available to install the required drivers and boot tool automatically. Alternatively, a user can compile and run it using Cygwin and/or install the drivers manually.
For those who just want to enable the Compute Module eMMC as a mass storage device under Windows, the stand-alone installer is the recommended option. This installer has been tested on Windows 10 32-bit and 64-bit, and Windows XP 32-bit.
Please ensure you are not writing to any USB devices whilst the installer is running.
Download and run the Windows installer to install the drivers and boot tool.
Plug your host PC USB into the USB SLAVE port, making sure you have setup the board as described above.
Apply power to the board; Windows should now find the hardware and install the driver.
Once the driver installation is complete, run the RPiBoot.exe tool that was previously installed.
After a few seconds, the Compute Module eMMC will pop up under Windows as a disk (USB mass storage device).
We will be using Git to get the rpiboot source code, so ensure Git is installed. In Cygwin, use the Cygwin installer. On a Raspberry Pi or other Debian-based Linux machine, use the following command:
sudo apt update sudo apt upgrade -y sudo apt install git
Git may produce an error if the date is not set correctly. On a Raspberry Pi, enter the following to correct this:
sudo date MMDDhhmm
where MM is the month, DD is the date, and hh and mm are hours and minutes respectively.
Clone the usbboot tool repository:
git clone --depth=1 https://github.com/raspberrypi/usbbootcd usbboot
libusb must be installed. If you are using Cygwin, please make sure libusb is installed as previously described. On Raspberry Pi OS or other Debian-based Linux, enter the following command:
sudo apt install libusb-1.0-0-dev
Now build and install the usbboot tool:
make
Run the usbboot tool and it will wait for a connection:
sudo ./rpiboot
Now plug the host machine into the Compute Module IO board USB slave port and power the CMIO board on. The rpiboot tool will discover the Compute Module and send boot code to allow access to the eMMC.
./rpiboot -h
After rpiboot completes, a new USB mass storage drive will appear in Windows. We recommend using Raspberry Pi Imager to write images to the drive.
Make sure J2 (nRPBOOT)
is set to the disabled position and/or nothing is plugged into the USB slave port. Power cycling the IO board should now result in the Compute Module booting from eMMC.
After rpiboot completes, you will see a new device appear; this is commonly /dev/sda on a Raspberry Pi but it could be another location such as /dev/sdb, so check in /dev/ or run lsblk before running rpiboot so you can see what changes.
You now need to write a raw OS image (such as Raspberry Pi OS) to the device. Note the following command may take some time to complete, depending on the size of the image: (Change /dev/sdX to the appropriate device.)
sudo dd if=raw_os_image_of_your_choice.img of=/dev/sdX bs=4MiB
Once the image has been written, unplug and re-plug the USB; you should see two partitions appear (for Raspberry Pi OS) in /dev. In total, you should see something similar to this:
/dev/sdX <- Device /dev/sdX1 <- First partition (FAT)/dev/sdX2 <- Second partition(Linux filesystem)
The /dev/sdX1 and /dev/sdX2 partitions can now be mounted normally.
Make sure J2 (nRPBOOT)
is set to the disabled position and/or nothing is plugged into the USB slave port. Power cycling the IO board should now result in the Compute Module booting from eMMC.
The default bootloader configuration on CM4 is designed to support bring up and development on a Compute Module 4 IO board and the software version flashed at manufacture may be older than the latest release.
For final products please consider:
Selecting and verifying a specific bootloader release. The version in the usbboot repo is always a recent stable release.
Configuring the boot device (e.g. network boot). See BOOT_ORDER section in the bootloader configuration guide.
Enabling hardware write protection on the bootloader EEPROM to ensure that the bootloader can’t be modified on remote/inaccessible products.
N.B. The Compute Module 4 ROM never runs recovery.bin from SD/EMMC and the rpi-eeprom-update service is not enabled by default. This is necessary because the EMMC is not removable and an invalid recovery.bin file would prevent the system from booting. This can be overridden and used with self-update mode where the bootloader can be updated from USB MSD or Network boot. However, self-update mode is not an atomic update and therefore not safe in the event of a power failure whilst the EEPROM was being updated.
## Modifying the bootloader configuration
cd usbboot/recovery
Replace pieeprom.original.bin
if a specific bootloader release is required.
Edit the default boot.conf bootloader configuration file. Typically, at least the BOOT_ORDER must be updated:
For network boot BOOT_ORDER=0xf2
For SD/EMMC boot BOOT_ORDER=0xf1
For USB boot failing over to EMMC BOOT_ORDER=0xf15
Run ./update-pieeprom.sh
to update the EEPROM image pieeprom.bin image file.
If EEPROM write protection is required then edit config.txt and add eeprom_write_protect=1
. Hardware write-protection must be enabled via software and then locked by pulling the EEPROM_nWP
pin low
.
Run ../rpiboot -d .
to update the bootloader using the updated EEPROM image pieeprom.bin
The pieeprom.bin file is now ready to be flashed to the Compute Module 4.
To flash the bootloader EEPROM follow the same hardware setup as for flashing the EMMC but also ensure EEPROM_nWP is NOT pulled low. Once complete EEPROM_nWP
may be pulled low again.
# Writes recovery/pieeprom.bin to the bootloader EEPROM.
./rpiboot -d recovery