ROCK64
The ROCK64 is a credit-card size 4K60P HDR Media Board Computer powered by Rockchip RK3328 Quad-Core ARM Cortex A53 64-Bit Processor and supports up to 4GB 1866MHz LPDDR3 memory. It provides an eMMC module socket, MicroSD Card slot, Pi-2 Bus, Pi-P5+ Bus, USB 3.0, and many other peripheral interfaces for makers to integrate with sensors and other devices.
It supports many different open source operating systems, such as Android, Debian, and Yocto.
Software releases
Under ROCK64 Software Releases you will find a complete list of currently supported operating system images, which work with the ROCK64, as well as other related software.
OS build Installation Guide and tools:
- Guide to install stock Android build to eMMC module
- Tools to burn Android build into a bootable microSD card
- Tools that allows developer flash image into eMMC's Loader/Parameter/Misc/Kernal/Boot/Recovery/System/Backup partition
- Windows ADB driver package
- ROCK64 MAC Address
Requirement | GNU/Linux | Android/Linux | Kodi/Linux |
---|---|---|---|
2160p 30Hz 8bit h264/h265/vp8 | partial? 1 | yes | yes |
UI using GPU | no | yes | yes |
Youtube | no | yes | no |
vp9 / mpeg4 / mpeg2 / 10bit HDR / YCbCr | no | yes? | yes |
Upstreaming Status
Function | Status | Component | Notes | |
---|---|---|---|---|
Video Output | Linux Mainline | rockchipdrm
|
With mpv, you'll need to specify something like mpv --gpu-context=drm --drm-connector=1.HDMI-A-1 to get it to play back on a VT
| |
3D Acceleration | Linux Mainline | Upstream Mesa | lima
|
Very recent version recommended for the best experience. Has weird glitches on HDMI output in weston. |
Video Decode | Linux Staging | Broken/Not in ffmpeg | hantro_vpu and rockchip_vdec , using v4l2-requests
|
Soon to be moved out of staging, ffmpeg patch set seemingly abandoned, does not work on newer kernels. Git branch with commits |
Audio | Linux Mainline | snd_soc_rockchip_*
| ||
Power Button | Linux Mainline | rk805_pwrkey
|
If your PWR switch does nothing unless held, this may need to be loaded manually with modprobe or by putting it in /etc/modules-load.d/
| |
Analog Video Output | Needs porting | rockchip_drm_tve
|
Definitely needs some cleanup before it'd be ready for mainline, and needs some dt bindings written. |
SoC and Memory Specification
- Based on Rockchip RK3328
CPU Architecture
- Quad-core Cortex-A53 up to 1.5GHz CPU
- Full implementation of the ARM architecture v8-A instruction set
- ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation
- ARMv8 Cryptography Extensions
- In-order pipeline with symmetric dual-issue of most instructions
- Unified system L2 cache
- Includes VFP v3 hardware to support single and double-precision operations
- Integrated 32KB L1 instruction cache, 32KB 4-way set associative L1 data cache
- TrustZone technology support
- Full CoreSight debug solution
- One separate power domain for CPU core system to support internal power switch, and to externally turn on/off based on different application scenario
- PD_A53: Cortex-A53 + Neon + FPU + L1 I/D Cache of core 2/3
- One isolated voltage domain to support DVFS
Frequencies & Voltages
Frequency | Voltage |
---|---|
408 MHz | 0.950 V |
600 MHz | 0.950 V |
816 MHz | 1.000 V |
1008 MHz | 1.100 V |
1200 MHz | 1.225 V |
1296 MHz | 1.300 V |
Power Draw
These numbers for power draw have been measured through an USB power monitor (FNB38) while running the stress
utility, whereby "cpu" stands for stress --cpu 4
and "vm" stands for stress --vm 4
. The former spins on the CPU, the latter stresses the memory. Real workloads are usually a mix of both. The tests were ran through ssh, with nothing besides power and ethernet plugged into the ROCK64
Please keep in mind that under real world usage, many other factors come into play. Having a display connected, running a graphical session, I/O and most importantly the connected USB peripherals can add a lot.
Helpful refresher on the formula for power (W) on DC: power = current × voltage, because the power factor is 1. The ROCK64 runs on 5V, so use that to calculate current if you need to.
Frequency | Power cpu | Power vm |
---|---|---|
1296 MHz | 2.64 W | 2.95 W |
1200 MHz | 2.32 W | 2.69 W |
1008 MHz | 1.90 W | 2.31 W |
816 MHz | 1.62 W | 2.05 W |
600 MHz | 1.45 W | 1.85 W |
408 MHz | 1.33 W | 1.72 W |
Idle (no load) | 1.10 W |
It appears a good upper bound for a headless setup is in the neighbourhood of 3 W, or the energy contained in 0.025 bananas per hour.
GPU Architecture
- ARM Mali-450MP2 Dual-core GPU
- OpenGL ES 1.1 and 2.0, OpenVG1.1
System Memory
- LPDDR3 RAM Memory Variants: 1GB, 2GB and 4GB.
Board Features
Video
- Digital Video output up to 4K@60Hz
- 4K HDR @ 60fps
- H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps
- H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps
- VP9, up to 4Kx2K @ 60fps
- MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps
- MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps
- MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps
- VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps
- MVC is supported based on H.264 or H.265, up to 1080P @ 60fps
Audio
- 3.5mm A/V Jack (Composite Video Output and RCA Stereo support using conversion cable)
Network
- 10/100/1000Mbps Ethernet
- WiFi 802.11 b/g/n with Bluetooth 4.0 (optional USB dongle)
Storage
- microSD - bootable, supports SDHC and SDXC and storage up to 256GB
- eMMC - bootable (optional eMMC Module)
- 128Mbit (16MB) on-board SPI flash memory (empty by default) - bootable? Usually accessible as a Linux MTD device at
/dev/mtd0
- 1 USB3.0 Dedicated Host port
- 2 USB2.0 Dedicated Host port (top one is USB-OTG)
Expansion Ports
All GPIO pins, including UART, operate at 3.3V. (See VCCIO5 in the schematics.)
- 2x20 pins "Pi2" GPIO Header
- 2x11 pins "Pi P5+" GPIO Header (with 2nd 10/100Mbps Ethernet pins)
Information, Schematics and Certifications
- Board Dimensions: 85mm x 56mm x 18.8mm
- Input Power: +5V @3A with 3.5mm/1.35mm Type H Barrel type DC connector (@2A will work if there is no heavy load on the USB 3.0 port)
- ROCK64 ver 3.0 SBC related info
- ROCK64 Rev3 SBC RTC Battery Connector polarity
- ROCK64 ver 2.0 SBC related info
- Github on ROCK64 GPIO library, thanks to Leapo
- Good documentation about ROCK64 GPIO pins article
- ROCK64 Audio DAC with 10/100Mbps Ethernet POT Board Schematic
- ROCK64 3-D autodesk drawing, thanks and courtesy of TeaPack
- ROCK64 Certifications:
- Disclaimer: Please note that PINE64 SBC is not a "final" product and in general certification is not necessary. However, PINE64 still submits the SBC for FCC, CE, and ROHS certifications and obtain the certificates to prove that the SBC board can pass the testing. Please note, a final commercial product needs to perform its own testing and obtain its own certificate.
- ROCK64 FCC Certificate
- ROCK64 CE Certificate
- ROCK64 RoHS Certificate
Datasheets for Components and Peripherals
Rockchip RK3328 SoC information:
- Rockchip RK3328 SoC Brief
- Rockchip RK3328 Datasheet V1.2
- Rockchip RK3328 Technical Reference Manual part 1
- Rockchip RK805 Datasheet V1.1
LPDDR3 (178 Balls) SDRAM:
eMMC information:
- PINE64 eMMC module schematic
- PINE64 USB adapter for eMMC module V2 schematic
- PINE64 USB adapter for eMMC module PCB in JPEG
- 16GB Foresee eMMC Datasheet
- 32Gb/64GB/128GB SanDisk eMMC Datasheet
SPI NOR Flash information:
Ethernet related info:
- Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet
- 10/100Mbps MegJack on Audio DAC POT board Datasheet
Peripheral related info:
Enclosure information:
Remote control button mapping:
Enclosures
The ROCK64 fits in three officially sold cases.
- "Model B" Acrylic Open Enclosure, Store
- "Model B" Aluminum Waterproof Enclosure, Store
- ROCK64 Premium Aluminum Casing, Store
Troubleshooting
HDMI output disconnects as soon as it connects
Some older monitors seemingly can get into a weird state wherein the ROCK64 is unable to establish a proper connection with them. User:CounterPillow has seen this happen on an iiyama ProLite G2773HS connected over HDMI, and an Acer P225HQL connected over an HDMI to DVI adapter. The symptoms usually are that you see the monitor briefly turn on its backlight without displaying a picture, but then immediately either shutting off again or showing a "No Signal" message.
The solution is to completely power down your ROCK64, also removing its power source. Then plug in the monitor, and start up the ROCK64 afterwards. You should now be getting a picture again.
Power button doesn't do anything on a short press (Linux)
Make sure the rk805_pwrkey
module is loaded, e.g. with lsmod | grep rk805_pwrkey
. If it doesn't show up, do a modprobe rk805_pwrkey
as root. To make this persistent, create a 99-rk805_pwrkey.conf
in /etc/modules-load.d/
with the content rk805_pwrkey
If it still doesn't work, make sure your init system is actually listening to the button press. With systemd, check /etc/systemd/logind.conf
and make sure it's either all commented out (uses defaults) or contains something like HandlePowerKey=poweroff
. You can change the short press action by setting HandlePowerKey
to one of "ignore", "poweroff", "reboot", "halt", "kexec", "suspend", "hibernate", "hybrid-sleep", "suspend-then-hibernate", or "lock".
Video output is glitchy during activity
If your video output glitches out while there is memory bandwidth pressure, the likely reason is that the video output (VOP) quality-of-service (QoS) registers aren't set to high priority mode.
User:CounterPillow submitted a patch to u-boot to fix this, but someone still needs to write a kernel patch to save/restore the QoS registers from the power domain driver.
Guides
This topic has several guides to show readers how to perform useful and common tasks on their system.
- Guide:Locating your device
- Guide:Connecting to your device with SSH
- Guide:Setting up a Hostname
- Guide:Setting up a Static IP and DNS
- Guide:Adding USB storage to your Device and Formatting it for linux
- Guide:Setting up an SMB (Windows) file server
Other Resources
- ROCK64 Forum
- IRC Server: irc.pine64.org Channel: ROCK64
- ROCK64 Linux GitHub Repo
- ROCK64 ayufan GitHub Repo
- Rockchip Linux GitHub Repo
- Rockchip Android RKMC (Forked from Kodi 16.1)
- Rockchip Open Source Wiki
- Armbian's ROCK64 Page