Hardware

This page is still work in progress. Improve the site by filing a pull request on GitHub. Switzerland and US purchase links are listed below; please add other international links via a PR.

This page lists hardware for two common setups:

  1. Minimal setup (required): Enough to run OpenCCA on an RK3588 ROCK 5B

  2. Box with Flashserver (optional): A small lab setup that supports remote UART access, automated flashing, and power cycling.

Minimal setup

To get started with OpenCCA, you need the parts below.

ProductLinkUS LinkComment
Radxa ROCK 5B (RK3588)AliExpressAmazonRecommended: 16 GB RAM
eMMC (16 GB+)
Radxa eMMC
AliExpressAmazonThe microSD slot is multiplexed with SWD, so eMMC is recommended. See: Info on SD card
Power supply
Anker Nano II 65W
Amazon (DE)AmazonNot every USB-C power supply works reliably. See: Radxa power supply discussion
USB to TTL adapter (3.3 V)AliExpressAmazonA CH340G (3.3 V) (Baudrate 1.5 Mbps) See: Connect to UART
USB-C cablegenericAmazonCable for power to RK3588

Once you purchased the parts, build and flash the firmware

Automation Box

For automated power cycling and flashing, we built a small box setup.

  • A Raspberry Pi acts as a management node that you can SSH into
  • The Pi provides a UART console connection to the ROCK 5B.
  • Power can be toggled remotely via a smart plug
  • A USB-C dock/hub connects the ROCK 5b to power and data because the 5B multiplexes power and data on the same USB-C port.
  • A MOSFET circuit bypasses the Maskrom switch to enable automated firmware flashing
Automation box overview

You find a docker container with all scripts for the management node in opencca-flash.

Management Node (Flash Server)

ProductLinkUS LinkComment
Raspberry Pi 5Digitec (CH)AmazonWe recommend model 5. Install Raspberry Pi OS.
Raspberry Pi Power Supply
(27 W)
Digitec (CH)Amazon
MicroSD card (for Raspberry Pi)Digitec (CH)AmazonStorage for the Raspberry Pi.
Ethernet switchDigitec (CH)AmazonOptional
2 short patch cablesDigitec (CH)AmazonConnect Pi + ROCK 5B to the switch.
1 longer patch cableDigitec (CH)AmazonUplink to your network.
USB-C -> USB-A adapterAliExpressAmazonConnect USB-C dock to Pi USB-A port

USB-C Dock

Connect the USB-C dock to the Raspberry Pi. Connect the RK3588 to the dock as a peripheral. Finally, power the dock through its USB-C PD port with an external power supply.

ProductLinkUS LinkComment
Anker PowerExpand 6-in-1 USB-CAmazon (DE)AmazonThe ROCK 5B multiplexes power + data on one USB-C port. A dock helps you power the board and flash firmware without cable juggling. See: Radxa power supply discussion
USB-C cablegenericAmazonCable for power to RK3588

Smart Plug

In our setup, the Raspberry Pi can still back-power the RK3588 over USB. That means toggling the smart plug alone may not fully reset the board as the the RK3588 can stay partially powered via the USB hub.

To get a true hard reset, we do

  1. turns off the smart plug (cuts main power), and
  2. disables USB power from the Raspberry Pi hub.

With both power sources removed, the RK3588 performs a reliable hard reset.

ProductLinkUS LinkComment
Smart plugAthom (EU)AmazonRemote power cycling for reflashing. Any smartplug will work that exposes HTTP API. We used Tasmota Firmware.

Box

Optional enclosure parts to house the setup, including a power strip and fans.


Optional Box Enclosure
ProductLinkUS LinkComment
Power stripDigitec (CH)Amazon
Plastic boxDigitec (CH)Walmart/TargetOptional enclosure. 37.5 x 25 x 23 cm, 15 l or larger.
Step-up converter (optional)AliExpress-Optional, e.g. for quieter fan control.
12 V or 5 V fan (optional)genericgenericOptional cooling.
Glue, tape, wood or cardboard and rubber bandsgenericgenericFor assembly, see pictures

Maskrom MOSFET

The MOSFET circuit is not strictly necessary. You can flash the firmware manually by pressing the physical button on the SoC. However, if you plan to do this thousands of times (like we did during the initial bring up), it may be worth automating this. We soldered a simple circuit to the board to bypass the physical button, using a MOSFET as a programmable switch controlled via a Raspberry Pi GPIO pin.

Wiring (example GPIO17):

  • GPIO17 → 220Ω → MOSFET Gate (G)
  • 10kΩ from Gate → GND (pull-down)
  • MOSFET Source (S)GND (Pi and ROCK5 share ground)
  • MOSFET Drain (D)BOOT_SARADC_IN0 on ROCK5

Optional Box Enclosure
ProductLinkUS Purchase LinkComment
Circuit boardAliExpressAmazonFor a Maskrom automation circuit.
Soldering Toolkit-AmazonRecommended for assembly.
MOSFET IRLZ44NAliExpressAmazon
10kΩ resistor + 220Ω resistor-Amazon
CablesAliExpressAmazonBreadboard jumpers.
LED-AmazonOptional status indicator.

3D Print Models

You find instructions on how to obtain and print the 3D models in the opencca-box repository.