Menlo
Software and Motor Setup

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

  1. Robot Processing Unit
  2. Laptop / PC to flash the RPU
  3. Power supplies (battery pack)
  4. USB-C data cable

Install a Flashing Tool

On Ubuntu 22.10 or newer and current Debian releases:

sudo apt install rkdeveloptool
rkdeveloptool -V

If 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 -V

Use sudo with the flashing commands on Linux if required.

Install rkdeveloptool with Homebrew:

brew tap IgorKha/rkdeveloptool
brew install rkdeveloptool
rkdeveloptool -V

If 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
  1. Use the downloads in Radxa's RKDevTool guide to obtain DriverAssistant v5.14, extract it, and run DriverInstall.exe as administrator.
  2. Download and extract RKDevTool v2.96.
  3. Install 7-Zip to decompress the .img.xz image.
  4. Launch RKDevTool.exe after 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:

  1. Connect the USB-C data cable from the laptop to the RPU USB-C port.
  2. Hold the RPU MaskROM button.
  3. While holding it, connect the approved RPU power input with the battery pack.
  4. Release the MaskROM button, you should be able to see a solid blue light. If it is blinking, restart from step 1.
  5. On macOS or Linux, run rkdeveloptool ld. On Windows, launch RKDevTool.exe. The result must include Mode=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 rd

Use 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 rd

The 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?

On this page