Build the Box
On this page
This page provides assembly instructions for the OpenCCA automation box. Before starting, make sure you have all the parts listed in Hardware.
Physical Layout
The box is organized in three layers:
- Top: ROCK 5B (RK3588) board, along with MOSFET circuit
- Middle: Raspberry Pi 5 (management node)
- Bottom: Ethernet switch

More assembly pictures can be found in the opencca-box repository.
Connecting the Parts
Dock (Anker PowerExpand) connects to:
- Pi (main USB-C host port)
- Power supply (USB-C PD input) and smart plug
- RK3588 (USB-C data port)
Raspberry Pi (Flash Server) connects to:
- Switch (Ethernet)
- Dock
- USB-TTL adapter
- Breadboard/MOSET via GPIO header
RK3588 connects to:
- Switch
- Dock
- USB-TTL via GPIO header
- Breadboard/MOSFET wiring via GPIO header and soldering
Raspberry Pi
Install Raspberry Pi OS onto the SD card of the Pi.
The Pi serves as the flashing and power management node. For firmware compilation, use a dedicated
x86 machine and mount the build directories into the Pi via sshfs. This setup allows you to compile
on a faster x86 machine while the Pi handles flashing operations.
The docker container in opencca-flash provides the required environment for the Pi.
Network Setup
Connect the Raspberry Pi to the Ethernet switch using a short patch cable. Connect the switch to your network using a longer uplink cable. The RK3588 also connects to the same switch for network access.
UART Console
z Connect the USB-TTL adapter to a USB port on the Raspberry Pi. See Connect to UART for detailed pinout.
Power Control
The Raspberry Pi can back-power the RK3588 over USB even when the smart plug is off. To achieve a true hard reset, both power sources must be removed:
- Turn off the smart plug (cuts main power)
- Disable USB power from Raspberry Pi using
uhubctl
See scripts in opencca-flash/board/power.