Robot Processing Unit (RPU) set up
How to flash and set up the RPU with the right image
The Robot Processing Unit (Radxa CM5) is a board designed specifically for robot related control such as motors control and vital robot processes management. Since the RPU has no external memory (SD card slot), we would need to flash its onboard storage over USB-C when the board is in MaskROM mode.
What you will need
- Robot Processing Unit
- Laptop / PC to flash the RPU
- Power supplies (battery pack)
- USB-C data cable
Install a Flashing Tool
On Ubuntu 22.10 or newer and current Debian releases:
sudo apt install rkdeveloptool
rkdeveloptool -VIf the package is unavailable:
sudo apt install -y libudev-dev libusb-1.0-0-dev dh-autoreconf pkg-config build-essential git
git clone https://github.com/rockchip-linux/rkdeveloptool
cd rkdeveloptool
autoreconf -i
./configure
make -j"$(nproc)"
sudo cp rkdeveloptool /usr/local/sbin/
rkdeveloptool -VUse sudo with the flashing commands on Linux if required.
Install rkdeveloptool with Homebrew:
brew tap IgorKha/rkdeveloptool
brew install rkdeveloptool
rkdeveloptool -VIf that tap is unavailable:
brew install automake autoconf libusb pkg-config
git clone https://github.com/rockchip-linux/rkdeveloptool
cd rkdeveloptool
autoreconf -i
./configure
sed -i '' 's/int nSectorSize = 512;/const int nSectorSize = 512;/' main.cpp
make
sudo install -m 0755 rkdeveloptool "$(brew --prefix)/bin/rkdeveloptool"
rkdeveloptool -V- Use the downloads in Radxa's RKDevTool guide to obtain DriverAssistant v5.14, extract it, and run
DriverInstall.exeas administrator. - Download and extract RKDevTool v2.96.
- Install 7-Zip to decompress the
.img.xzimage. - Launch
RKDevTool.exeafter entering MaskROM mode.
The tested host path in the supplied setup guide is macOS or Linux.
Enter MaskROM Mode
The MaskROM button must be held when the board first receives power:
- Connect the USB-C data cable from the laptop to the RPU USB-C port.
- Hold the RPU MaskROM button.
- While holding it, connect the approved RPU power input with the battery pack.
- Release the MaskROM button, you should be able to see a solid blue light. If it is blinking, restart from step 1.
- On macOS or Linux, run
rkdeveloptool ld. On Windows, launchRKDevTool.exe. The result must includeMode=Maskrom. If no device appears, disconnect power, verify the cable carries data, and repeat the sequence.
Write the Image
Rename rk3588_spl_loader_v1.15.113.bin to rk3588_spl_loader.bin, or use its full filename in the first command:
rkdeveloptool db rk3588_spl_loader.bin
xz -dk asimov-rpu-<version>.img.xz
rkdeveloptool wl 0 asimov-rpu-<version>.img
rkdeveloptool rdUse sudo with the rkdeveloptool commands if required. The xz -dk line decompresses the image and keeps the original; the write itself needs the plain .img.
Rename rk3588_spl_loader_v1.15.113.bin to rk3588_spl_loader.bin, or use its full filename in the first command:
rkdeveloptool db rk3588_spl_loader.bin
xz -dk asimov-rpu-<version>.img.xz
rkdeveloptool wl 0 asimov-rpu-<version>.img
rkdeveloptool rdThe xz -dk line decompresses the image and keeps the original; the write itself needs the plain .img.
In RKDevTool, with the board showing “Found One MASKROM Device”, load rk3588_spl_loader.bin as the loader and the decompressed asimov-rpu-<version>.img as the image, then start the write. Step-by-step screens are in Radxa's RKDevTool guide.
Decompress the .img.xz with 7-Zip first — RKDevTool cannot read the compressed file.
Writing will take several minutes. When it finishes, unplug the USB-C cable and remove the battery power.
How is this guide?