Difference between revisions of "ROCKPro64"

From PINE64
Jump to navigation Jump to search
m (fix typo in ayufan name.)
 
(168 intermediate revisions by 31 users not shown)
Line 1: Line 1:
The [https://www.pine64.org/rockpro64/ '''ROCKPro64'''] is the most powerful Single Board Computer released by Pine64. It is powered by a Rockchip RK3399 Hexa-Core (dual ARM Cortex A72 and quad ARM Cortex A53) 64-Bit Processor with a MALI T-860 Quad-Core GPU.
[[File:ROCKPro64v21FRONT.jpg|400px|thumb|right|The ROCKPro64]]


Key features include a PCIe x4 open ended slot, the use of LPDDR4 RAM, and industry standard heatsink mounting holes.
The '''ROCKPro64''' is the most powerful single-board computer released by PINE64. It is powered by a Rockchip RK3399 hexa-core (dual ARM Cortex A72 and quad ARM Cortex A53) 64-bit processor with a Mali T-860 quad-core GPU. The key features include a PCI Express (PCIe) x4 open-ended slot, the use of LPDDR4 DRAM, and industry-standard heatsink mounting holes.


The ROCKPro64 is equipped with 2GB or 4GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type C Host with DP 1.2, 1x USB 3.0 type A Host, 2x USB 2.0 Host, Gigabit Ethernet, PI-2 GPIO Bus, MiPi DSI interface, eDP interface, touch Panel interface, stereo MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Android, Linux (Ubuntu, Debian, Arch), and BSD.
The ROCKPro64 is equipped with 2 or 4&nbsp;GB of LPDDR4 system memory, and 128&nbsp;Mb of SPI boot flash. There is also an optional eMMC module (up to 128&nbsp;GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 Type-C host port with DP 1.2, 1x USB 3.0 Type-A host port, 2x USB 2.0 host port, Gigabit Ethernet, PI-2 GPIO bus, MiPi DSI interface, eDP interface, touch panel interface, stereo MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I<sup>2</sup>C, for makers to integrate with sensors and other peripherals. Many different operating systems (OSes) are freely available from the open-source community, such as Linux (Ubuntu, Debian, Arch), BSD and Android.


= Board layout =
== Getting Started ==
[[File:ROCKPro64_annotated.jpg]]


[[File:ROCKPro64v21FRONT.jpg|200px|thumb|right|A hi-res picture of v2.1 front]]
The article [[ROCKPro64 Getting Started]] gives important information to get the board up and running.


[[File:ROCKPro64v21REAR.jpg|200px|thumb|right|A hi-res picture of v2.1 rear]]
== Software releases ==


== Main chips ==
In the [[ROCKPro64 Software Releases]] page, you will find a complete list of currently supported Operating System images that work with the ROCKPro64, as well as other related software. The Software Release page has links to download the images as well as high level instructions to load each image.
 
Please see the [[Getting started]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.
 
== Board Layout ==
[[Image:ROCKPro64v21REAR.jpg|thumb|right|A hi-res picture of v2.1 rear.]]
[[Image:FLIR 20220619 125451 686.jpg|thumb|right|A thermal image of v2.1 front (upside-down).]]
 
 
[[File:ROCKPro64_annotated.jpg|500px|An annotated ROCKPro64]]
 
=== Main Chips ===
* RK3399 system-on-chip (1)
* RK3399 system-on-chip (1)
* LPDDR4 SDRAM 1 (18)
* LPDDR4 SDRAM 1 (18)
Line 22: Line 32:
* The heatsink mounting holes around the RK3399 are 59 mm apart
* The heatsink mounting holes around the RK3399 are 59 mm apart


== Switches ==
=== Switches ===


The Power button (11): is the same as on your mobile phone - press and release after about 1 second to power on. Press and hold for about 3 seconds to power off.
The Power button (11, SW3): is the same as on your mobile phone - press and release after about 1 second to power on. Press and hold for about 3 seconds to power off.


The Reset button (10): perfoms a reset.
The Reset button (10, SW901): performs a reset.


The Recover button (28): used to enter maskrom mode.
The Recover button (28, SW900): used to enter maskrom mode.


== Connectors, sockets and headers ==
=== Connectors, Sockets and Headers ===
{| class="wikitable sortable"
 
! Diagram !! Schematic<br>designator || Silkscreen<br>label !! Number<br>of pins !! Description
{| class="wikitable sortable" style="line-height: 1.4;"
|- style="font-size: .9em;"
! Diagram !! Schematic<br>designator !! Silkscreen<br>label !! Number<br>of pins !! Description
|-
| style="text-align: center;" | 2  || U39  || PI-2-bus || style="text-align: center;" | 40 || Pi-2 bus
|-
|-
| style="text-align: center;" | 2 || U39 || PI-2-bus || style="text-align: center;" | 40 || Pi-2 bus
| style="text-align: center;" | || J8    || +FAN- || style="text-align: center;" | 2 || PWM controlled fan header
|-
|-
| style="text-align: center;" | 4 || J8 || +FAN- || style="text-align: center;" | 2 || PWM controlled fan header
| style="text-align: center;" | || J10  || SPDIF || style="text-align: center;" | 3 || SPDIF header
|-
| style="text-align: center;" | 6  || U6    || +RTC- || style="text-align: center;" | 2 || RTC battery backup header
|-
|-
| style="text-align: center;" | 5 || J10 || SPDIF || style="text-align: center;" | 3 || SPDIF header
| style="text-align: center;" | || U31  || Wifi-BT || style="text-align: center;" | 16 || SDIO WIFI/BT module-MIMO 2
|-
|-
| style="text-align: center;" | 6 || U6 || +RTC- || style="text-align: center;" | 2 || RTC battery backup header
| style="text-align: center;" | || USB3  || || style="text-align: center;" | 9 || USB-3 and USB Type C
|-
|-
| style="text-align: center;" | 7 || U31 || Wifi-BT || style="text-align: center;" | 16 || SDIO WIFI/BT module-MIMO 2
| style="text-align: center;" | || USB1  || || style="text-align: center;" | 2×4 || Dual USB-2
|-
|-
| style="text-align: center;" | 8 || USB3 || || style="text-align: center;" | 9 || USB-3 and USB Type C
| style="text-align: center;" | 12 || IR1  || IR || style="text-align: center;" | 3 || infrared receiver socket
|-
|-
| style="text-align: center;" | 9 || USB1 || || style="text-align: center;" | 2×4 || Dual USB-2
| style="text-align: center;" | 13 || J16  || Headphone+mic || style="text-align: center;" | 4 || Headphone + mic 3.5mm jack
|-
|-
| style="text-align: center;" | 12 || IR1 || IR || style="text-align: center;" | 3 || infrared receiver socket
| style="text-align: center;" | || CON16 || GND PWR RST GND || style="text-align: center;" | 4 || Power & reset, unpopulated<br>header near Headphone jack
|-
|-
| style="text-align: center;" | 13 || J16 || Headphone+mic || style="text-align: center;" | 4 || Headphone + mic 3.5mm jack
| style="text-align: center;" | 14 || U29  || EMMC || style="text-align: center;" | 34 || eMMC connector<br />(Note: Some datasheets indicate a low<br />supported number of mating cycles.)
|-
|-
| style="text-align: center;" | 14 || U29 || EMMC || style="text-align: center;" | 34 || eMMC connector
| style="text-align: center;" | 14* || J13  || || style="text-align: center;" | 13 || TF-card, a.k.a. microSD<br>(* under 14 on the bottom side)
|-
|-
| style="text-align: center;" | 14* || J13 ||  || style="text-align: center;" | 13 || TF-card, a.k.a. microSD (* under 14 on the bottom side)
| style="text-align: center;" | 15 || U30  ||  || style="text-align: center;" | 14 || SDIO WIFI/BT module-MIMO 1
|-
|-
| style="text-align: center;" | 15 || U30 ||  || style="text-align: center;" | 14 || SDIO WIFI/BT module-MIMO 1
| style="text-align: center;" | 16 || SW4  ||  || style="text-align: center;" | 2 || Jumper to [[#Disable eMMC]]
|-
|-
| style="text-align: center;" | 19 || J15 || PCI || style="text-align: center;" | 64 || PCI-express X4 socket
| style="text-align: center;" | 19 || J15   || PCI || style="text-align: center;" | 64 || PCI-express X4 socket
|-
|-
| style="text-align: center;" | 20 || J21 || DSI || style="text-align: center;" | 30 || DSI
| style="text-align: center;" | 20 || J21   || DSI || style="text-align: center;" | 30 || DSI
|-
|-
| style="text-align: center;" | 21 || J22 || EDP || style="text-align: center;" | 30 || LCD EDP
| style="text-align: center;" | 21 || J22   || EDP || style="text-align: center;" | 30 || LCD EDP
|-
|-
| style="text-align: center;" | 22 || CON1 || TP || style="text-align: center;" | 6 || touch panel connector
| style="text-align: center;" | 22 || CON1 || TP || style="text-align: center;" | 6 || touch panel connector
|-
|-
| style="text-align: center;" | 23 || CON15 ||  || style="text-align: center;" | 4 || DC out for SATA disk cable (direct connect from DC-IN)
| style="text-align: center;" | 23 || CON15 ||  || style="text-align: center;" | 4 || DC out for SATA disk cable<br>(direct connect from DC-IN)
|-
|-
| style="text-align: center;" | 24 || J11 || DC-IN || style="text-align: center;" | 2 || Power input, positive tip; 12V/3A (minimum) recommended
| style="text-align: center;" | 24 || J11   || DC-IN || style="text-align: center;" | 2 || Power input, positive tip;<br>12V/3A (minimum) recommended
|-
|-
| style="text-align: center;" | 25 || U32 ||  || style="text-align: center;" | 8 || RJ45
| style="text-align: center;" | 25 || U32   ||  || style="text-align: center;" | 8 || 8P8C (often referred to as 'RJ45')
|-
|-
| style="text-align: center;" | 26 || J14 ||  || style="text-align: center;" | 19 || HDMI
| style="text-align: center;" | 26 || J14   ||  || style="text-align: center;" | 19 || HDMI
|-
|-
| style="text-align: center;" | 27 || J17 || MIPI CAM || style="text-align: center;" | 32 || MIPI-1
| style="text-align: center;" | 27 || J17   || MIPI CAM || style="text-align: center;" | 32 || MIPI-1
|-
|-
| style="text-align: center;" | 29 || J19 || MIPI CAM || style="text-align: center;" | 32 || MIPI-2
| style="text-align: center;" | 29 || J19   || MIPI CAM || style="text-align: center;" | 32 || MIPI-2
|-
|-
| style="text-align: center;" | 30 || J18 || CIF || style="text-align: center;" | 26 || CIF
| style="text-align: center;" | 30 || J18   || CIF || style="text-align: center;" | 26 || CIF
|}
|}


== LEDs ==
=== LEDs ===


A green LED next to the 12V input barrel connector will light as long as there is 12V applied to the connector. (Even if the RockPro64 is powered off.)
A green LED next to the 12V input barrel connector will light as long as there is 12V applied to the connector. (Even if the RockPro64 is powered off.)
Line 91: Line 107:
Yellow and green LEDs on the LAN socket behave in a standard way.
Yellow and green LEDs on the LAN socket behave in a standard way.


== Jumpers ==
=== Jumpers ===
They are used for boot device selection, as described in the following section.
They are used for boot device selection, as described in the following section.


=== Disable eMMC ===
==== Disable eMMC ====


There is an unlabelled (on the PCB silk-screen) 2-pin jumper (16) between the eMMC socket (14) and the SPI chip (17). It is designated as SW4 on the [[#Board Information, Schematics and Certifications | schematic diagram]]. The default condition is OPEN (no jumper). It is useful for controlling the boot as follows:
There is an unlabelled (on the PCB silk-screen) 2-pin jumper (16) between the eMMC socket (14) and the SPI chip (17). It is designated as SW4 on the [[#Board Information, Schematics and Certifications | schematic diagram]]. The default condition is OPEN (no jumper). It is useful for controlling the boot as follows:
Line 100: Line 116:
Default boot device (with no SPI software) is eMMC, then SDcard. If both the eMMC and the SDcard contain bootable images then the eMMC can be disabled by installing the jumper. This completely removes the eMMC from the resulting OS. If you wish the eMMC to be visible in the booted OS the jumper should be removed 2 seconds after applying power (and before the white LED comes on).
Default boot device (with no SPI software) is eMMC, then SDcard. If both the eMMC and the SDcard contain bootable images then the eMMC can be disabled by installing the jumper. This completely removes the eMMC from the resulting OS. If you wish the eMMC to be visible in the booted OS the jumper should be removed 2 seconds after applying power (and before the white LED comes on).


The possible combinations are summarised in the table below (1 = present, 0 = not present, S = boot from the µSD card, M = boot from the eMMC module, X = unsupported combination):
The possible combinations are summarised in the table below.
 
* 1 = present
* 0 = not present


{| class="wikitable sortable" style="text-align: center;"
{| class="wikitable sortable" style="text-align: center;"
! µSD !! eMMC !! SW4 !! boot
! µSD !! eMMC !! SW4 !! boot from
|-
|-
| 0 || 0 || 0 || X
| 0 || 0 || 0 || unsupported
|-
|-
| 0 || 0 || 1 || X
| 0 || 0 || 1 || unsupported
|-
|-
| 0 || 1 || 0 || M
| 0 || 1 || 0 || eMMC
|-
|-
| 0 || 1 || 1 || X
| 0 || 1 || 1 || unsupported
|-
|-
| 1 || 0 || 0 || S
| 1 || 0 || 0 || SDCard
|-
|-
| 1 || 0 || 1 || S
| 1 || 0 || 1 || SDCard
|-
|-
| 1 || 1 || 0 || M
| 1 || 1 || 0 || eMMC
|-
|-
| 1 || 1 || 1 || S
| 1 || 1 || 1 || SDCard
|}
|}


=== Disable SPI (while booting) ===
==== Disable SPI (while booting) ====
There is a second possibility to jumper your ROCKPro64: If you mess-up your SPI and are unable to boot, jumpering pins 23 (CLK) and 25 pin (GND) on the PI-2-bus header will disable the SPI as a boot device. (This was taken from the IRC logs, 09 August 2018 @ 17:23) You have to remove the jumper 2 seconds after having started your RP64 (before the white LED turns ON) otherwise the SPI will be missing and you won't be able to flash it.
There is a second possibility to jumper your ROCKPro64: If you mess-up your SPI and are unable to boot, jumpering pins 23 (CLK) and 25 pin (GND) on the PI-2-bus header will disable the SPI as a boot device. (This was taken from the IRC logs, 09 August 2018 @ 17:23) You have to remove the jumper 2 seconds after having started your RP64 (before the white LED turns ON) otherwise the SPI will be missing and you won't be able to flash it.
Ayufan images contain (at the moment) only one script for the SPI and the RP64, it's "rockpro64_reset_spi_flash". Other SPI scripts are dedicated to the R64 (as it is written on the name) and it will mess-up your RP64 SPI if you use them.
Ayufan images contain (at the moment) only one script for the SPI and the RP64, it's "rockpro64_reset_spi_flash". Other SPI scripts are dedicated to the R64 (as it is written on the name) and it will mess-up your RP64 SPI if you use them.


<div class="center" style="background-color: yellow;">[[#top | '''Return to top of page''']]</div>
== Hardware Compatibility ==
 
= Getting Started =
 
This section gives important information to get the board up and running.
 
== Start here - Software and OS Image Builds ==
 
In the '[[ROCKPro64 Software Release]]' page you will find a complete list of currently supported Operating System images that work with the ROCKPro64 as well as other related software. The Software Release page has links to download the images as well as high level instructions how to load each image.
 
Please see the [[NOOB]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.
 
== More advanced Linux bits ==
 
Some Linux tips are given below.
 
=== How to update your Linux ===
 
For Debian/Ubuntu images entering the following commands at a terminal prompt
 
<code>sudo apt-get update</code><br>
<code>sudo apt-get upgrade</code>
 
will keep your installation up to date. To update Ayufan images to the next release (when available) use the following command
 
<code>sudo apt-get dist-upgrade</code>
 
If you are happy to update your system to pre-releases of Ayufan images then modify /etc/apt/sources.list.d/ayufan-rock64.list as per the comment in that file.
 
The kernel in Ayufan releases is under active development and, if you wish to install a later version, then it is best to use a package manager. In synaptic (for example), if you search for package names linux-image-4.4 you should see your currently installed version(s) as well as any more recent ones. Similarly if you wish to install the mainline kernel then searching for linux-image-4.18 will show you what is available. '''At the time of writing (August 2018) there are significant features missing from the mainline kernel for aarch64 processors (e.g. HDMI sound).'''
 
=== Useful scripts ===
After you install an Ayufan image you will find some scripts in /usr/local/sbin/ and /usr/local/bin/ that may be useful. (Need to expand this section)
 
=== Video playback ===
Ayufan has some old documentation on [https://github.com/ayufan-rock64/linux-build/blob/master/recipes/video-playback.md video playback here.] For your ROCKPro64 the install should be
 
<code>sudo apt-get install ffmpeg mpv libmali-rk-midgard-t86x-r14p0-gbm</code>
 
(These modules are included in the Ayufan deskop releases.) At which stage rkmpv myvideo.mp4 will play a fullscreen, hardware assisted, version of your video. rkmpv is at /usr/local/bin/rkmpv
 
=== Swapping kernel versions ===
extlinux is in use on Ayufan images (at least) which enables some switching between installed kernel versions - [https://github.com/ayufan-rock64/linux-build/blob/master/recipes/extlinux.md intro documentation is here.] In particular after you install any additional kernels, you can edit your /boot/extlinux/extlinux.conf file to specify which of the kernels you have installed to use for the next boot.


From Ayufan version 0.7.11 the script /usr/local/sbin/change-default-kernel.sh does a nice little menu swap for you if you run it as root (sudo).
The hardware compatibility list can be found under [[ROCKPro64 Hardware compatibility]].


=== Using an NVMe disk for rootfs ===
== Board Features ==
Forum member Bullet64 has documented [https://forum.frank-mankel.org/topic/208/booten-von-der-nvme-platte how to move rootfs to an NVMe disk.] This is useful until we get a full SPI option to boot from the NVMe.
 
== More advanced bits related to any OS ==
 
This section gives some hints for advanced users.
 
=== Setup a serial console (UART)===
The early adopters (and late-comers who fiddle excessively with their boards!) have a need to monitor the low-level boot behaviour: this is done with a serial console and there [https://forum.pine64.org/showthread.php?tid=6387 is a great description how to get this working specifically for your ROCKPro64 here.]
 
=== Booting from USB or PXE ===
 
The default choice of boot device is first eMMC (if present) then SDcard. See [[ ROCKPro64_Main_Page#Disable_eMMC | jumpers above for details on adjusting this sequence.]]
 
It is possible to flash the SPI to extend the options for boot devices to USB drives or PXE. The preferred method is now the rock64_write_spi_flash.sh script (see [[ROCKPro64_Main_Page#Useful_scripts | useful scripts above.]]) The NOOB wiki page has more details [[NOOB#Flashing_u-boot_to_SPI_Flash | here.]]
 
Background info and historic details of this usage [https://github.com/ayufan-rock64/linux-build/blob/master/recipes/flash-spi.md can be found here.]
 
=== OTG mode ===
 
You can boot your ROCKPro64 into OTG mode with the use of the Recover button (see [[ROCKPro64_Main_Page#Switches | switch 28 above.]]) Note there are 2 OTG ports on your ROCKPro64: the type-C USB 3 socket is definitely one. From the schematic it appears the USB 3 (type A) socket is the other, but this has yet to be confirmed.
 
The method is to power off the board. Then push and hold the Recover button and push and release the Power button.
* If you have an Ayufan bootable image in either the SDcard or eMMC then there are 4 OTG modes [https://github.com/ayufan-rock64/linux-u-boot/commit/ea6efecdfecc57c853a6f32f78469d1b2417329b described here] including Android fastboot, RockUSB and MaskROM modes. Releasing the Recover button as soon as the white LED lights counts as 1 blink. Keeping it pressed you will get 2 blinks of the white LED etc. Once the board enters OTG mode the red LED will be lit. In mode 1 the boot and linux-root partitions of the card with the Ayufan image (partitions 6 & 7 of a linux installation) are made available as devices. In all cases the USB device made available at the host has device ID 18d1:d00d.
* If you do not have an Ayufan image in either the SDcard or the eMMC, then neither white nor red LEDs will light, but the board will enter MaskROM mode where the USB device made available at the host has device ID 2207:330c.
 
=== NVMe drives ===
Please be aware that [https://store.pine64.org/?product=rockpro64-pci-e-x4-to-m-2ngff-nvme-ssd-interface-card the Pine64 SSD interface card] is intended for use with NVMe devices. These can be identified by the fact they have a single (Key M) notch, e.g. [https://www.wdc.com/content/dam/wdc/website/products/family/wd-black-pcie-ssd/wdfWDBlackSSD_PCIe_img1.jpg.imgw.500.500.jpg the WD Black devices.]
 
While M2/NGFF SATA devices (with a Key B notch, typically have Key M as well) will physically fit, they will not work. e.g. [https://www.wdc.com/content/dam/wdc/website/products/personal/internal_storage/wd_blue_3d_nand_sata_ssd/blue3d_product-overview.jpg.imgw.1000.1000.jpg WD Blue devices.]
 
=== SATA drives ===
SATA drives can be connected directly via the [https://store.pine64.org/?product=rockpro64-pci-e-to-dual-sata-ii-interface-card ROCKPro64 PCIe interface card.] Please note the card does not include the power cable - that is a [https://store.pine64.org/?product=rockpro64-power-cable-for-dual-sata-drives separate item.] Equally you must be aware that connecting SATA drives in this manner means they will be drawing power from your ROCKPro64 - please ensure you are using a 5A or better power supply.
 
ExplainingComputers did a YouTube [https://www.youtube.com/watch?v=9CCQicHwfDI ROCKPro64 PCIe SATA card review and tests using a Ubuntu console and OpenMediaVault.]
 
=== Wi-Fi & Bluetooth module ===
If you have bought the [https://store.pine64.org/?product=rockpro64-2x2-mimo-dual-band-wifi-802-11acbluetooth-4-1-module Wi-Fi and Bluetooth module] from the Pine store then instructions for connecting it can be found on the accessories page [[ Accessories_Step_by_Step_Guides#Wifi.2FBluetooth_module | here.]] '''Please note that the 0.7.9 linux releases (August 2018) have deliberately DISABLED support for this module in the search for stability. It can be tested and used with the Android image.'''
 
=== 7" LCD Touch Screen ===
Instructions for connecting the [https://store.pine64.org/?product=7-lcd-touch-screen-panel LCD touch screen] from the Pine [[ Accessories_Step_by_Step_Guides#7.22_LCD_Touch_Screen_Panel | are here.]]
 
'''Note at present (August 2018) this screen is only supported by the Android image.'''
 
=== RTC battery backup ===
The Pine store has a couple of options for RTC battery backups: a [https://store.pine64.org/?product=rtc-backup-battery-aaa-battery AAA version here] or a [https://store.pine64.org/?product=rtc-backup-battery-cr-battery CR-2032 version here.] Instructions for plugging in either of them are also on the [[ Accessories_Step_by_Step_Guides| Accessories page ]]
 
=== Acryllic open enclosure ===
Assembly instructions for the [https://store.pine64.org/?product=pine64-acrylic-open-enclosure acryllic enclosure] from the Pine store are also on the [[ Accessories_Step_by_Step_Guides| Accessories page ]]
 
=== NAS case ===
The [http://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf Exploded View Installation Diagram] for the [https://store.pine64.org/?product=rockpro64-metal-desktopnas-casing] from the Pine store.
 
Detailed '''NAS Case overview and assembly instructions''' can be found [[NASCase | here]].
 
<div class="center" style="background-color: yellow;">[[#top | '''Return to top of page''']]</div>
 
= Board Features =


This section outlines the most important characteristics of the board and its components.
This section outlines the most important characteristics of the board and its components.


== SoC and Memory Specification ==
=== SoC and Memory Specification ===
* Based on Rockchip RK3399
* Based on Rockchip RK3399
[[File:Rockchip_RK3399.png|right]]
[[File:Rockchip_RK3399.png|right]]


=== CPU Architecture ===
==== CPU Architecture ====
 
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]
Line 261: Line 182:
* One isolated voltage domain to support DVFS
* One isolated voltage domain to support DVFS


=== GPU Architecture ===
==== GPU Architecture ====
 
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]
* The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provide stunning visuals for UHD content.
* The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provides stunning visuals for UHD content.
* Frequency 650MHz  
* Frequency: 650MHz  
* Throughput 1300Mtri/s, 10.4Gpix/s  
* Throughput: 1300Mtri/s, 10.4Gpix/s  
* OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2., Vulkan 1.0*., OpenCL™ 1.1, 1.2., DirectX® 11 FL11_1., RenderScript™.
* OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2, Vulkan 1.0*, OpenCL™ 1.1, 1.2, DirectX® 11 FL11_1, RenderScript™.


=== System Memory ===
==== System Memory ====
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).


== Display ==
=== Display ===
* Dual VOP: one supports 4096x2160 with AFBC supported;The other supports 2560x1600
 
* Dual VOP: one supports resolutions up to 4096x2160 and [https://www.arm.com/why-arm/technologies/graphics-technologies/arm-frame-buffer-compression AFBC]; the other supports resolutions up to 2560x1600
* Dual channel MIPI-DSI (4 lanes per channel)
* Dual channel MIPI-DSI (4 lanes per channel)
* eDP 1.3 (4 lanes with 10.8Gbps) to support display, with PSR
* eDP 1.3 (4 lanes with 10.8Gbps) to support displays, with PSR
* Digital Video port up to 4Kp60
* Digital Video port up to 4Kp60
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)
* Supports Rec.2020 and conversion to Rec.709  
* Supports Rec.2020 and conversion to Rec.709  


== Video ==
=== Video ===
 
* Digital Video output up to 4K@60Hz
* Digital Video output up to 4K@60Hz
* 4K HDR @ 30fps
* 4K HDR @ 30fps
Line 292: Line 216:
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps


== Audio ==
=== Audio ===
 
* 3.5mm Phone Jack
* 3.5mm Phone Jack
* 3-pin S/PDIF header  
* 3-pin S/PDIF header  
* Audio via Digital Video port
* Audio via Digital Video port


== Camera ==
=== Camera ===
* Dual mipi CSI,dual ISP,Maximum input resolution of 13M pixels


== Network ==
* Dual MIPI CSI,dual ISP, maximum input resolution of 13M pixels
* 10/100/1000Mbps Ethernet
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (optional)


== Storage ==
=== Network ===
* microSD - bootable, support SDHC and SDXC, storage up to 256GB
* eMMC - bootable (optional eMMC Module)
* 1 USB3.0 Host port
* 1 USB type C OTG port with DP output
* 2 USB2.0 Dedicated Host ports


== Expansion Ports ==
* 10/100/1000Mbps Ethernet - Capable of pushing 941 MBit/s in iperf3
* 2x20 pins "Pi2" GPIO Header
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (old version with 2x2) / Bluetooth 5 (new version with 1x1) (optional)
* PCIe 2.1 (4 full-duplex lanes with 20Gbps) x4 open ended port
 
=== Storage ===
 
* microSD - bootable, supports SDHC and SDXC
* eMMC - bootable (optional eMMC module)
* 1x USB 3.0 host port
* 1x USB Type-C OTG port with alternate mode DP output
* 2x USB 2.0 dedicated host port
 
=== Expansion Ports ===
 
* 2x20 pins "Pi2" GPIO header
* PCI Express 2.1 x4 (four full-duplex lanes) open-ended port, [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=712fa1777207 limited] to the Gen1 speed
 
==== GPIO Pins ====
 
{| class="wikitable plainrowheaders" border="1"
! scope="col" style="width:20em;" | Assigned To
! scope="col" | Pin Nr.
! scope="col" | Pin Nr.
! scope="col" style="width:20em;" | Assigned To
|-
| style="text-align:right;"| 3.3 V
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 1
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 2
| style="text-align:left;"| 5 V
|-
| style="text-align:right;"| GPIO1_C4 (I2C8_SDA) <sup style="font-style:italic;color:green">a</sup>
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 3
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 4
| style="text-align:left;"| 5 V
|-
| style="text-align:right;"| GPIO1_C5 (I2C8_SCL) <sup style="font-style:italic;color:green">a</sup>
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 5
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 6
| style="text-align:left;"| GND
|-
| style="text-align:right;"| GPIO4_D0 (CPU_GPCLK)
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 7
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 8
| style="text-align:left;"| GPIO4_C4 (UART2_TX)
|-
| style="text-align:right;"| GND
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 9
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 10
| style="text-align:left;"| GPIO4_C3 (UART2_RX)
|-
| style="text-align:right;"| GPIO1_C6
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 11
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 12
| style="text-align:left;"| GPIO3_D0 (I2S0_CLK)
|-
| style="text-align:right;"| GPIO1_C2
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 13
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 14
| style="text-align:left;"| GND
|-
| style="text-align:right;"| GPIO1_A1
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 15
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 16
| style="text-align:left;"| GPIO1_A4
|-
| style="text-align:right;"| 3.3 V
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 17
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 18
| style="text-align:left;"| GPIO4_C5 [SPDIF]
|-
| style="text-align:right;"| [UART4_TX] GPIO1_B0 (SPI1_TXD)
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 19
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 20
| style="text-align:left;"| GND
|-
| style="text-align:right;"| [UART4_RX] GPIO1_A7 (SPI1_RXD)
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 21
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 22
| style="text-align:left;"| GPIO4_D1
|-
| style="text-align:right;"| GPIO1_B1 (SPI1_CLK)
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 23
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 24
| style="text-align:left;"| GPIO1_B2 (SPI1_CSN0)
|-
| style="text-align:right;"| GND
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 25
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 26
| style="text-align:left;"| GPIO1_B5
|-
| style="text-align:right;"| GPIO1_B3 (I2C4_SDA)
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 27
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 28
| style="text-align:left;"| GPIO1_B4 (I2C4_SCL)
|-
| style="text-align:right;"| GPIO4_D3
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 29
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 30
| style="text-align:left;"| GND
|-
| style="text-align:right;"| GPIO4_D4
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 31
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 32
| style="text-align:left;"| GPIO3_D4 (I2S0_SDI1SDO3)
|-
| style="text-align:right;"| GPIO3_D5 (I2S0_SDI2SDO2)
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 33
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 34
| style="text-align:left;"| GND
|-
| style="text-align:right;"| GPIO3_D2 (I2S0_LRCKTX)
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 35
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 36
| style="text-align:left;"| GPIO3_D6 (I2S0_SDI3SDO1)
|-
| style="text-align:right;"| GPIO3_D1 (I2S0_LRCKRX)
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 37
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 38
| style="text-align:left;"| GPIO3_D3 (I2S0_SDI0)
|-
| style="text-align:right;"| GND
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 39
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 40
| style="text-align:left;"| GPIO3_D7 (I2S0_SDO0)
|}
 
===== Notes =====
 
* '''a:''' pulled high to 3.3V through 2.2kOhm resistor
 
===== Linux /dev/gpiochip Assignments =====
 
{| class=wikitable style="max-width: 1000px; text-align: center;"
|-
! scope="row" | Pin Nr.
| 3 || 5 || 7 || 8 || 10 || 11 || 12 || 13 || 15 || 16 || 18 || 19 || 21 || 22 || 23 || 24 || 26 || 27 || 28 || 29 || 31 || 32 || 33 || 35 || 36 || 37 || 38 || 40
|-
! scope="row" | Chip
| 1 || 1 || 4 || 4 || 4 || 1 || 3 || 1 || 1 || 1 || 4 || 1 || 1 || 4 || 1 || 1 || 1 || 1 || 1 || 4 || 4 || 3 || 3 || 3 || 3 || 3 || 3 || 3
|-
! scope="row" | Line
| 20 || 21 || 24 || 20 || 19 || 22 || 24 || 18 || 1 || 4 || 21 || 8 || 7 || 25 || 9 || 10 || 13 || 11 || 12 || 27 || 28 || 28 || 29 || 26 || 30 || 25 || 27 || 31
|}
 
On Linux, using the new <code>/dev/gpiochip</code> API, the <code>''n''</code> in <code>GPIO''n''_''XX''</code> appears to correlate to the number of the <code>/dev/gpiochip''n''</code>, and the <code>''XX''</code> to the definition <code>RK_P''XX''</code> of lines in <code>include/dt-bindings/pinctrl/rockchip.h</code> of the Linux kernel source. Having these named in the dts would be nice.
 
You can use [https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ libgpiod] to drive them, and test them with the included tools (<code>gpioinfo</code>, <code>gpioset</code>, ...)
 
For example, <code>gpioset 4 25=1</code> (run as root) would turn pin 22 on. Do beware that poking the wrong GPIO pin can lock up your system.
 
The conversion table at right is also available as a [https://gist.github.com/CounterPillow/fe066655bf2d929148fe6eb3f15b1dd5 C header file].
 
=== Working Features ===


== Working Features ==
{| class="wikitable sortable"
{| class="wikitable sortable"
! style="font-weight:bold;" | Feature/Option
! Feature/Option
! style="font-weight:bold;" | Android
! Android
! style="font-weight:bold;" | Android Version
! Android Version
! style="font-weight:bold;" | Linux
! Linux
! style="font-weight:bold;" | Linux Version
! Linux Version
! style="font-weight:bold;" | Test/Verify Steps
! Test/Verify Steps
! style="font-weight:bold;" | Notes
! Notes
! style="font-weight:bold;" | Product Link
! Product Link
|-
|-
| Pine64 LCD Touchscreen (Screen/Touch)
| PINE64 LCD Touchscreen (Screen/Touch)
| Yes/Yes
| Yes/Yes
|  
|  
Line 332: Line 397:
|  
|  
|  
|  
| Maybe this will help get this working? https://github.com/avafinger/pine64-touchscreen
| Maybe [https://github.com/avafinger/pine64-touchscreen this] will help get this working?
| https://store.pine64.org/?product=7-lcd-touch-screen-panel
| [https://pine64.com/?product=7-lcd-touch-screen-panel 7-inch LCD Touch Screen Panel]
|-
|-
| ROCKPro64 2×2 MIMO Dual Band WIFI 802.11AC/BLUETOOTH 4.2 MODULE
| Wireless
<small>ROCKPro64 2×2 MIMO Dual Band WiFi 802.11AC / Bluetooth 4.2 Module (old)
ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module (new)</small>
| Yes/Yes
| Yes/Yes
|  
|  
| No/No
| No/Yes*
|
|  
|  
| In 0.7.9 this is deliberately disabled for stability reasons.
| For the "new" ROCKPro64 WIFI module: Verified with Manjaro ARM (kernel 6.2.5). A config file ("firmware file") is needed at <code>/lib/firmware/brcm/brcmfmac43455-sdio.txt</code>. See [[#Getting wifi working ("new" wifi module)]] for the file contents and details.
| https://store.pine64.org/?product=rockpro64-2x2-mimo-dual-band-wifi-802-11acbluetooth-4-1-module
| In 0.7.9 Ayufan linux releases this is deliberately disabled for stability reasons. On Manjaro ARM (kernel 6.2.5), WIFI seems to be stable with the firmware file. On a 5GHz network (802.11AC), it is possible to get about 120Mbps using the "new" ROCKPro64 WIFI module.
| [https://store.pine64.org/product/rockpro64-1x1-dual-band-wifi-802-11acbluetooth-5-0-module ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module]
|-
|-
| USB OTG
| USB OTG
Line 349: Line 416:
|  
|  
|  
|  
| use this script: https://github.com/ayufan-rock64/linux-package/blob/master/root-rockpro64/usr/local/sbin/rockpro64_enable_otg.sh then configure ip on usb0: ifconfig usb0 169.169.222.222 and run iperf, you should likely see about 200-300MB/s
| use this script: [https://github.com/ayufan-rock64/linux-package/blob/master/root-rockpro64/usr/local/sbin/rockpro64_enable_otg.sh rockpro64_enable_otg.sh], then configure ip on usb0: ifconfig usb0 169.169.222.222 and run iperf, you should likely see about 200-300MB/s
| http://wiki.pine64.org/index.php/ROCKPro64_Main_Page#OTG_mode
| [[ROCKPro64#OTG_mode]]
|  
|  
|-
|-
Line 368: Line 435:
|  
|  
|  
|  
| You might want to use ATS. https://github.com/tuxd3v/ats
| You might want to use [https://github.com/tuxd3v/ats ATS].
|  
|  
|-
|-
Line 377: Line 444:
|  
|  
|  
|  
| Check out what Frank Mankel has done. https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2
| Check out [https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2 what Frank Mankel has done].
|  
|  
|-
|-
Line 404: Line 471:
| 4.4.132-1083 - 4.4.138-1100
| 4.4.132-1083 - 4.4.138-1100
|  
|  
| Stopped working in 4.4.154.1105. Ayufan is looking into it.
| Stopped working in 4.4.154.1105. Ayufan is looking into it. This is working in Manjaro ARM (kernel 6.2.5). Select the <code>Analog Output (Built-in Audio Stereo)</code> option in the audio output device selection window (either use <code>pavucontrol</code> or the volume button in the KDE desktop). Despite the slightly misleading name, audio does go through the HDMI port. See here for details: https://forum.manjaro.org/t/no-hdmi-audio-on-rockpro64/25595/2.
|  
|  
|-
|-
Line 440: Line 507:
|  
|  
| N/A
| N/A
| Ventilation does not exist, thus requires manual changes to add venting. Case should be modified to account power adapter not being centered in cut holes. Opening the case once close without modifying it first is near impossible without special tools. Graphene heatsink is included and does well for Linux but not Android.
| Ventilation does not exist, thus requires manual changes to add venting. Case should be modified to account power adapter not being centered in cut holes. Opening the case once close without modifying it first is nearly impossible without special tools. Graphene heatsink is included and does well for Linux but not Android.
| https://store.pine64.org/?product=rockpro64-playbox-enclosure
| [https://pine64.com/?product=rockpro64-playbox-enclosure ROCKPro64 Playbox Enclosure]
|-
|-
| ROCKPro64 30mm Tall Profile Heatsink
| ROCKPro64 30mm Tall Profile Heatsink
Line 450: Line 517:
| N/A
| N/A
|  
|  
| https://store.pine64.org/?product=rockpro64-heatsink
| [https://pine64.com/product/rockpro64-30mm-tall-profile-heatsink/ ROCKPro64 30&nbsp;mm Tall-Profile Heatsink]
|-
|-
| ROCKPro64 20mm Mid Profile Heatsink
| ROCKPro64 20mm Mid Profile Heatsink
Line 459: Line 526:
| N/A
| N/A
|  
|  
| https://store.pine64.org/?product=rockpro64-20mm-mid-profile-heatsink
| [https://pine64.com/?product=rockpro64-20mm-mid-profile-heatsink ROCKPro64 20&nbsp;mm Mid-Profile Heatsink]
|-
|-
| Fan For ROCKPro64 20mm Mid Profile Heatsink
| Fan For ROCKPro64 20mm Mid Profile Heatsink
Line 467: Line 534:
|  
|  
| N/A
| N/A
| You might want to use fanctl to control the fan while keeping your CPU cool https://github.com/tuxd3v/fanctl
| You might want to use [https://github.com/tuxd3v/fanctl fanctl] to control the fan while keeping your CPU cool
| https://store.pine64.org/?product=fan-for-rockpro64-20mm-mid-profile-heatsink
| [https://pine64.com/?product=fan-for-rockpro64-20mm-mid-profile-heatsink Fan For ROCKPro64 20&nbsp;mm Mid-Profile Heatsink]
|-
|-
| HDMI output 4K@60Hz
| HDMI output 4K@60Hz
Line 479: Line 546:
|  
|  
|-
|-
| PCIe 2.1
| PCI Express 2.1
|
|  
|  
|  
|  
Line 486: Line 552:
|  
|  
|  
|  
| The PCI Express interface of the RK3399 [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=712fa1777207 is limited] to the Gen1 speed.  As a result, some installed PCI Express devices may operate with degraded performance, such as M.2 SSDs that support fewer than four PCI Express lanes, installed using an adapter like [https://pine64.com/product/rockpro64-pci-e-x4-to-m-2-ngff-nvme-ssd-interface-card/ this one].
|  
|  
|-
|-
Line 495: Line 562:
|  
|  
|  
|  
| https://store.pine64.org/?product=rtc-backup-battery-cr-battery
| [https://pine64.com/product/rtc-backup-battery-holder-cr-2032/ RTC Backup Battery Holder CR2032]
|-
|-
| Boot from USB/PXE
| Boot from USB/PXE
Line 507: Line 574:
|}
|}


RockChip themselves have tables of supported features at 4.4 and mainline kernel versions [http://opensource.rock-chips.com/wiki_Status_Matrix in their wiki here.]
RockChip themselves have tables of supported features at 4.4 and mainline kernel versions [http://opensource.rock-chips.com/wiki_Status_Matrix in their wiki here].
 
== Board Information, Schematics and Certifications ==
* Board dimensions: 133&nbsp;mm&nbsp;x 80&nbsp;mm&nbsp;x 19&nbsp;mm
* Power input: 12&nbsp;V, 3&nbsp;A or 5&nbsp;A, using 5.5&nbsp;mm (OD)&nbsp;/ 2.1&nbsp;mm (ID) type M barrel DC connector
* [https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]
* [https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]
** [http://files.pine64.org/doc/rockpro64/Rockpro64-ver2.0-topsilk_ref.pdf ROCKPro64 v2.0 Board Top Silkscreen in PDF format] (contains component labels)
** [https://files.pine64.org/doc/rockpro64/ROCKPRo64%20Engineering%20Change%20Notice%2020180628RP01.pdf Engineering Change Notice for v2.0 to turn on 3.3V power on PCIe]
* [https://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]
* [https://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]
* [https://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]
 
Certifications:
 
* Disclaimer: Please note that PINE64 SBC is not a "final" product and in general certification is not necessary. However, PINE64 still submit the SBC for FCC, CE, and ROHS certification and obtain the certificates to proof that SBC board is capable on passing the testing. Please note a final commercial product needs to performs its owns testing and obtains its owns certificates.
* [https://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]
* [https://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]
* [https://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCKPro64 RoHS Report]
 
== Datasheets for Components and Peripherals ==
 
Rockchip RK3399 SoC information:
 
* [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]
* [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]
* [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]
* [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]
 
LPDDR4 (200 Balls) SDRAM:
 
* [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]
 
eMMC information:
 
* [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]
* [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]
* [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]
* [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]
* [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]
 
SPI NOR Flash information:
 
* [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]
* [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]
 
Heatsink related info:
 
* [https://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]
* [https://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]
 
Wireless related info:
 
* AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf (v. 1.3)] [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf (v. 1.7)]
 
Ethernet related info:
 
* [https://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]


= Board Information, Schematics and Certifications =
Peripheral related info:
* Board Dimensions: 133mm x 80mm x 19mm
* Input Power: +12V @3A/5A with 5.5mm/2.1mm Type M Barrel type DC connector
* [http://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]
** [http://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]
** [http://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]
** [http://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]
** [http://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]
* [http://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]
** [http://files.pine64.org/doc/rockpro64/ROCKPRo64%20Engineering%20Change%20Notice%2020180628RP01.pdf Engineering Change Notice for v2.0 to turn on 3.3V power on PCIe]
* [http://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]
* [http://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]
* [http://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]


* Certifications:
* [https://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]
** Disclaimer: Please note that PINE64 SBC is not a "final" product and in general certification is not necessary. However, PINE64 still submit the SBC for FCC, CE, and ROHS certification and obtain the certificates to proof that SBC board is capable on passing the testing. Please note a final commercial product needs to performs its owns testing and obtains its owns certificates.
** [http://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]
** [http://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]
** [http://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCK64 RoHS Report]


= Datasheets for Components and Peripherals =
Remote control button mapping:
* Rockchip RK3399 SoC information:
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]
** [http://opensource.rock-chips.com/images/2/28/Rockchip_RK3399_Datasheet_V1.8-20180529.pdf Rockchip RK3399 Datasheet V1.8]
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]
* LPDDR4 (200 Balls) SDRAM:
** [http://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]
* eMMC information:
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]
** [http://files.pine64.org/doc/datasheet/pine64/H26M64003DQR%20Datasheet.pdf Hynix eMMC Datasheet]
** [http://files.pine64.org/doc/datasheet/pine64/FORESEE_eMMC_NCEMBSF9-xxG%20SPEC%20A0%2020150730.pdf Foresee eMMC Datasheet]
* SPI NOR Flash information:
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]
** [http://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]
* Heatsink related info:
** [http://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]
** [http://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]
* Wireless related info:
** [[Media:AP6356 datasheet V1.0 07252014.pdf|AMPAK AP6356 2x2 Wi-Fi + Bluetooth4.1 Datasheet]]
* Ethernet related info:
** [http://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]
* Peripheral related info:
** [http://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]
* Remote control button mapping
** [http://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]
* Audio Codec (ES8316) (Under Board)
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]


= The NAS Case for the ROCKPro64 =
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]
[[file:NASCaseMain.png|200px|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]
 
Please [[NASCase | follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.
Audio Codec (ES8316) (under board):
 
* [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]
 
PWM controlled fan, SPDIF, and RTC Battery Backup headers:
 
* [https://www.jst-mfg.com/product/pdf/eng/ePH.pdf JST-PH connector]
 
== Useful Articles and Blog Posts ==
 
If you want to dive in to the ecosystem, here's a short list of various articles and blog posts that can help you set up your soft- or hardware development environment.
 
* [https://stikonas.eu/wordpress/2019/09/15/blobless-boot-with-rockpro64/ Blobless boot with RockPro64 by Andrius Štikonas]
* [https://marcin.juszkiewicz.com.pl/2020/06/17/ebbr-on-rockpro64/ EBBR on RockPro64 by Marcin Juszkiewicz]
* [[ROCKPro64 Device Tree Overlays on Mainline]]
* [[ROCKPro64 Hardware Tweaks]]
 
== The NAS Case for the ROCKPro64 ==
 
[[file:NASCaseMain.png|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]
 
Please [[NASCase|follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.


The NAS Case instructions also contains detailed information about:
The NAS Case instructions also contains detailed information about:
Line 571: Line 674:
*What OS Image we recommend you use for your NAS build
*What OS Image we recommend you use for your NAS build
*IO accessibility after installing the ROCKPro64 into the NAS Case
*IO accessibility after installing the ROCKPro64 into the NAS Case
*[https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf NAS Case Exploded View]
*[https://files.pine64.org/doc/rockpro64/NAS%20Case%20Drawing.dwg NAS Case Drawing]
== 3D printable ITX mounting brackets ==
[[file:ITX-Bracket-Mounted.jpg|300px|thumb|right|A Quartz64-A mounted in an ITX case using 3D printed brackets]]
Allows mounting a ROCKPro64-A or Quartz64-A board inside a regular PC case that conforms to the ITX standard, using 3D printed brackets:
* AMF/STL/STEP files plus the original FreeCAD file used to create the models [[File:RP64-A_Q64-A_to_ITX_mounting_brackets.zip]]
* Make sure to flip the two brackets by 180 degrees on one of the horizontal axes (X/Y) in your slicer of choice before printing to avoid unnecessary supports
* To allow enough clearance between the board and the bracket you either need to print four copies of the washer model or add nut(s) between the board and the bracket
* If using nuts for the clearance between the board and the brackets, make sure it creates at least 3.2mm of spacing in between
* Depending on the accuracy and calibration of a 3D printer, slight deviation can occur and you likely need to manually widen some of the holes to allow screws to fit
== Other Resources ==


= Other Resources =
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]
* [[RockPro64 Guides]]
* [https://pine64.com/?post_type=product PINE64 shop]
* [http://www.pine64.xyz:9090/?channels=ROCK64 ROCK64/ROCKPro64 IRC Channel]
* [https://store.pine64.org/?post_type=product Pine64 shop]
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]
* [[ROCKPro64 Installing Arch Linux ARM]]
* [[ROCKPro64 Powering From An ATX Supply]]
== Troubleshooting ==
=== No Video or GPU Acceleration on Debian ===
If you can log in through serial but don't get any video or GPU acceleration on Debian, this is likely due to Debian's decision to compile the devfreq governors as loadable modules but not including them early enough for panfrost to be able to be provided with one of them.
The usual sign of this being the case is the following line in the kernel log: <code>[drm:panfrost_devfreq_init [panfrost]] *ERROR* Couldn't initialize GPU devfreq</code>
To fix this issue, run the following as <code>root</code> and reboot:
echo governor_simpleondemand >> /etc/initramfs-tools/modules
update-initramfs -u -k $(uname -r)
=== PCIe probe failures on Linux kernel boot ===
While booting the Linux kernel, you might experience PCIe probe failures, which render the attached PCIe device inaccessible.  The [https://lore.kernel.org/all/20230509153912.515218-1-vincenzopalazzodev@gmail.com/ "drivers: pci: introduce configurable delay for Rockchip PCIe bus scan"] thread on the Linux kernel mailing list (LKML) discusses this issue and proposes a fix.
Manjaro ARM applies the following patches to the kernel package, which fix the issue:
* [https://gitlab.manjaro.org/manjaro-arm/packages/core/linux/-/blob/44e81d83b7e002e9955ac3c54e276218dc9ac76d/1005-rk3399-rp64-pcie-Reimplement-rockchip-PCIe-bus-scan-delay.patch 1005-rk3399-rp64-pcie-Reimplement-rockchip-PCIe-bus-scan-delay.patch]
* [https://gitlab.manjaro.org/manjaro-arm/packages/core/linux/-/blob/44e81d83b7e002e9955ac3c54e276218dc9ac76d/1007-arm64-dts-rockchip-Add-PCIe-bus-scan-delay-to-RockPr.patch 1007-arm64-dts-rockchip-Add-PCIe-bus-scan-delay-to-RockPr.patch]


<div class="center" style="background-color: yellow;">[[#top | '''Return to top of page''']]</div>
[[Category:ROCKPro64]]
[[Category:Rockchip RK3399]]

Latest revision as of 04:41, 18 November 2023

The ROCKPro64

The ROCKPro64 is the most powerful single-board computer released by PINE64. It is powered by a Rockchip RK3399 hexa-core (dual ARM Cortex A72 and quad ARM Cortex A53) 64-bit processor with a Mali T-860 quad-core GPU. The key features include a PCI Express (PCIe) x4 open-ended slot, the use of LPDDR4 DRAM, and industry-standard heatsink mounting holes.

The ROCKPro64 is equipped with 2 or 4 GB of LPDDR4 system memory, and 128 Mb of SPI boot flash. There is also an optional eMMC module (up to 128 GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 Type-C host port with DP 1.2, 1x USB 3.0 Type-A host port, 2x USB 2.0 host port, Gigabit Ethernet, PI-2 GPIO bus, MiPi DSI interface, eDP interface, touch panel interface, stereo MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different operating systems (OSes) are freely available from the open-source community, such as Linux (Ubuntu, Debian, Arch), BSD and Android.

Getting Started

The article ROCKPro64 Getting Started gives important information to get the board up and running.

Software releases

In the ROCKPro64 Software Releases page, you will find a complete list of currently supported Operating System images that work with the ROCKPro64, as well as other related software. The Software Release page has links to download the images as well as high level instructions to load each image.

Please see the Getting started page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.

Board Layout

A hi-res picture of v2.1 rear.
A thermal image of v2.1 front (upside-down).


An annotated ROCKPro64

Main Chips

  • RK3399 system-on-chip (1)
  • LPDDR4 SDRAM 1 (18)
  • LPDDR4 SDRAM 2 (3)
  • SPI NOR flash memory (17)
  • RK808 power management (near 19)
  • RTL8211 ethernet transceiver (near 25)
  • ES8316 Sound Codec (on rear of board)
  • The heatsink mounting holes around the RK3399 are 59 mm apart

Switches

The Power button (11, SW3): is the same as on your mobile phone - press and release after about 1 second to power on. Press and hold for about 3 seconds to power off.

The Reset button (10, SW901): performs a reset.

The Recover button (28, SW900): used to enter maskrom mode.

Connectors, Sockets and Headers

Diagram Schematic
designator
Silkscreen
label
Number
of pins
Description
2 U39 PI-2-bus 40 Pi-2 bus
4 J8 +FAN- 2 PWM controlled fan header
5 J10 SPDIF 3 SPDIF header
6 U6 +RTC- 2 RTC battery backup header
7 U31 Wifi-BT 16 SDIO WIFI/BT module-MIMO 2
8 USB3 9 USB-3 and USB Type C
9 USB1 2×4 Dual USB-2
12 IR1 IR 3 infrared receiver socket
13 J16 Headphone+mic 4 Headphone + mic 3.5mm jack
- CON16 GND PWR RST GND 4 Power & reset, unpopulated
header near Headphone jack
14 U29 EMMC 34 eMMC connector
(Note: Some datasheets indicate a low
supported number of mating cycles.)
14* J13 13 TF-card, a.k.a. microSD
(* under 14 on the bottom side)
15 U30 14 SDIO WIFI/BT module-MIMO 1
16 SW4 2 Jumper to #Disable eMMC
19 J15 PCI 64 PCI-express X4 socket
20 J21 DSI 30 DSI
21 J22 EDP 30 LCD EDP
22 CON1 TP 6 touch panel connector
23 CON15 4 DC out for SATA disk cable
(direct connect from DC-IN)
24 J11 DC-IN 2 Power input, positive tip;
12V/3A (minimum) recommended
25 U32 8 8P8C (often referred to as 'RJ45')
26 J14 19 HDMI
27 J17 MIPI CAM 32 MIPI-1
29 J19 MIPI CAM 32 MIPI-2
30 J18 CIF 26 CIF

LEDs

A green LED next to the 12V input barrel connector will light as long as there is 12V applied to the connector. (Even if the RockPro64 is powered off.)

A white LED behind the reset button will light as long as the RockPro64 is running (it comes on a few seconds after power on, when control is passed to the operating system.)

A red LED behind the reset button is DIY - it is lit for example if the board is in OTG mode with an Ayufan image, or if an Android image is in standby mode.

Yellow and green LEDs on the LAN socket behave in a standard way.

Jumpers

They are used for boot device selection, as described in the following section.

Disable eMMC

There is an unlabelled (on the PCB silk-screen) 2-pin jumper (16) between the eMMC socket (14) and the SPI chip (17). It is designated as SW4 on the schematic diagram. The default condition is OPEN (no jumper). It is useful for controlling the boot as follows:

Default boot device (with no SPI software) is eMMC, then SDcard. If both the eMMC and the SDcard contain bootable images then the eMMC can be disabled by installing the jumper. This completely removes the eMMC from the resulting OS. If you wish the eMMC to be visible in the booted OS the jumper should be removed 2 seconds after applying power (and before the white LED comes on).

The possible combinations are summarised in the table below.

  • 1 = present
  • 0 = not present
µSD eMMC SW4 boot from
0 0 0 unsupported
0 0 1 unsupported
0 1 0 eMMC
0 1 1 unsupported
1 0 0 SDCard
1 0 1 SDCard
1 1 0 eMMC
1 1 1 SDCard

Disable SPI (while booting)

There is a second possibility to jumper your ROCKPro64: If you mess-up your SPI and are unable to boot, jumpering pins 23 (CLK) and 25 pin (GND) on the PI-2-bus header will disable the SPI as a boot device. (This was taken from the IRC logs, 09 August 2018 @ 17:23) You have to remove the jumper 2 seconds after having started your RP64 (before the white LED turns ON) otherwise the SPI will be missing and you won't be able to flash it. Ayufan images contain (at the moment) only one script for the SPI and the RP64, it's "rockpro64_reset_spi_flash". Other SPI scripts are dedicated to the R64 (as it is written on the name) and it will mess-up your RP64 SPI if you use them.

Hardware Compatibility

The hardware compatibility list can be found under ROCKPro64 Hardware compatibility.

Board Features

This section outlines the most important characteristics of the board and its components.

SoC and Memory Specification

  • Based on Rockchip RK3399
Rockchip RK3399.png

CPU Architecture

  • Dual-core Cortex-A72 up to 2.0GHz CPU
  • Quad-core Cortex-A53 up to 1.5GHz CPU
  • big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU
  • Cortex-A72:
    • 1-4x Symmetrical Multiprocessing (SMP) within a single processor cluster, and multiple coherent SMP processor clusters through AMBA 5 CHI or AMBA 4 ACE technology
    • AArch64 for 64-bit support and new architectural features
    • L1 cache 48KB Icache and 32KB Dcache for each A72
    • L2 cache 1024KB for big cluster
    • DSP & SIMD extensions
    • VFPv4 floating point
    • Hardware virtualization support
  • Cortex-A53:
    • L1 cache 32KB Icache and 32KB Dcache for each A53
    • L2 cache 512KB for little cluster
  • 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
  • Include VFP v3 hardware to support single and double-precision operations
  • TrustZone technology support
  • Full CoreSight debug solution
  • One isolated voltage domain to support DVFS

GPU Architecture

  • ARM Mali-T860MP4 Quad-core GPU
  • The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provides stunning visuals for UHD content.
  • Frequency: 650MHz
  • Throughput: 1300Mtri/s, 10.4Gpix/s
  • OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2, Vulkan 1.0*, OpenCL™ 1.1, 1.2, DirectX® 11 FL11_1, RenderScript™.

System Memory

  • LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.
  • Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).

Display

  • Dual VOP: one supports resolutions up to 4096x2160 and AFBC; the other supports resolutions up to 2560x1600
  • Dual channel MIPI-DSI (4 lanes per channel)
  • eDP 1.3 (4 lanes with 10.8Gbps) to support displays, with PSR
  • Digital Video port up to 4Kp60
  • DisplayPort 1.2 (4 lanes, up to 4K 60Hz)
  • Supports Rec.2020 and conversion to Rec.709

Video

  • Digital Video output up to 4K@60Hz
  • 4K HDR @ 30fps
  • 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 Phone Jack
  • 3-pin S/PDIF header
  • Audio via Digital Video port

Camera

  • Dual MIPI CSI,dual ISP, maximum input resolution of 13M pixels

Network

  • 10/100/1000Mbps Ethernet - Capable of pushing 941 MBit/s in iperf3
  • Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (old version with 2x2) / Bluetooth 5 (new version with 1x1) (optional)

Storage

  • microSD - bootable, supports SDHC and SDXC
  • eMMC - bootable (optional eMMC module)
  • 1x USB 3.0 host port
  • 1x USB Type-C OTG port with alternate mode DP output
  • 2x USB 2.0 dedicated host port

Expansion Ports

  • 2x20 pins "Pi2" GPIO header
  • PCI Express 2.1 x4 (four full-duplex lanes) open-ended port, limited to the Gen1 speed

GPIO Pins

Assigned To Pin Nr. Pin Nr. Assigned To
3.3 V 1 2 5 V
GPIO1_C4 (I2C8_SDA) a 3 4 5 V
GPIO1_C5 (I2C8_SCL) a 5 6 GND
GPIO4_D0 (CPU_GPCLK) 7 8 GPIO4_C4 (UART2_TX)
GND 9 10 GPIO4_C3 (UART2_RX)
GPIO1_C6 11 12 GPIO3_D0 (I2S0_CLK)
GPIO1_C2 13 14 GND
GPIO1_A1 15 16 GPIO1_A4
3.3 V 17 18 GPIO4_C5 [SPDIF]
[UART4_TX] GPIO1_B0 (SPI1_TXD) 19 20 GND
[UART4_RX] GPIO1_A7 (SPI1_RXD) 21 22 GPIO4_D1
GPIO1_B1 (SPI1_CLK) 23 24 GPIO1_B2 (SPI1_CSN0)
GND 25 26 GPIO1_B5
GPIO1_B3 (I2C4_SDA) 27 28 GPIO1_B4 (I2C4_SCL)
GPIO4_D3 29 30 GND
GPIO4_D4 31 32 GPIO3_D4 (I2S0_SDI1SDO3)
GPIO3_D5 (I2S0_SDI2SDO2) 33 34 GND
GPIO3_D2 (I2S0_LRCKTX) 35 36 GPIO3_D6 (I2S0_SDI3SDO1)
GPIO3_D1 (I2S0_LRCKRX) 37 38 GPIO3_D3 (I2S0_SDI0)
GND 39 40 GPIO3_D7 (I2S0_SDO0)
Notes
  • a: pulled high to 3.3V through 2.2kOhm resistor
Linux /dev/gpiochip Assignments
Pin Nr. 3 5 7 8 10 11 12 13 15 16 18 19 21 22 23 24 26 27 28 29 31 32 33 35 36 37 38 40
Chip 1 1 4 4 4 1 3 1 1 1 4 1 1 4 1 1 1 1 1 4 4 3 3 3 3 3 3 3
Line 20 21 24 20 19 22 24 18 1 4 21 8 7 25 9 10 13 11 12 27 28 28 29 26 30 25 27 31

On Linux, using the new /dev/gpiochip API, the n in GPIOn_XX appears to correlate to the number of the /dev/gpiochipn, and the XX to the definition RK_PXX of lines in include/dt-bindings/pinctrl/rockchip.h of the Linux kernel source. Having these named in the dts would be nice.

You can use libgpiod to drive them, and test them with the included tools (gpioinfo, gpioset, ...)

For example, gpioset 4 25=1 (run as root) would turn pin 22 on. Do beware that poking the wrong GPIO pin can lock up your system.

The conversion table at right is also available as a C header file.

Working Features

Feature/Option Android Android Version Linux Linux Version Test/Verify Steps Notes Product Link
PINE64 LCD Touchscreen (Screen/Touch) Yes/Yes No/No Maybe this will help get this working? 7-inch LCD Touch Screen Panel
Wireless

ROCKPro64 2×2 MIMO Dual Band WiFi 802.11AC / Bluetooth 4.2 Module (old) ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module (new)

Yes/Yes No/Yes* For the "new" ROCKPro64 WIFI module: Verified with Manjaro ARM (kernel 6.2.5). A config file ("firmware file") is needed at /lib/firmware/brcm/brcmfmac43455-sdio.txt. See #Getting wifi working ("new" wifi module) for the file contents and details. In 0.7.9 Ayufan linux releases this is deliberately disabled for stability reasons. On Manjaro ARM (kernel 6.2.5), WIFI seems to be stable with the firmware file. On a 5GHz network (802.11AC), it is possible to get about 120Mbps using the "new" ROCKPro64 WIFI module. ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module
USB OTG use this script: rockpro64_enable_otg.sh, then configure ip on usb0: ifconfig usb0 169.169.222.222 and run iperf, you should likely see about 200-300MB/s ROCKPro64#OTG_mode
USB Mass Storage USB2/USB3 Yes/yes Yes/Yes
Dedicated Fan Power (pwm1) Yes You might want to use ATS.
GPIO pins (raw or via RPI python scripts) Check out what Frank Mankel has done.
MIPI CSI Camera 1 and 2
eDP
HDMI Audio Yes 7.1.2 Yes 4.4.132-1083 - 4.4.138-1100 Stopped working in 4.4.154.1105. Ayufan is looking into it. This is working in Manjaro ARM (kernel 6.2.5). Select the Analog Output (Built-in Audio Stereo) option in the audio output device selection window (either use pavucontrol or the volume button in the KDE desktop). Despite the slightly misleading name, audio does go through the HDMI port. See here for details: https://forum.manjaro.org/t/no-hdmi-audio-on-rockpro64/25595/2.
3.5mm Audio/Mic
USB-C Host
Display via USB-C Yes 7.x and 8.x eDP via USB-C per tillim. No sound on Android 7.x. Sound does work on Android 8.x
ROCKPro64 PLAYBOX ENCLOSURE N/A N/A N/A Ventilation does not exist, thus requires manual changes to add venting. Case should be modified to account power adapter not being centered in cut holes. Opening the case once close without modifying it first is nearly impossible without special tools. Graphene heatsink is included and does well for Linux but not Android. ROCKPro64 Playbox Enclosure
ROCKPro64 30mm Tall Profile Heatsink N/A N/A N/A ROCKPro64 30 mm Tall-Profile Heatsink
ROCKPro64 20mm Mid Profile Heatsink N/A N/A N/A ROCKPro64 20 mm Mid-Profile Heatsink
Fan For ROCKPro64 20mm Mid Profile Heatsink N/A N/A N/A You might want to use fanctl to control the fan while keeping your CPU cool Fan For ROCKPro64 20 mm Mid-Profile Heatsink
HDMI output 4K@60Hz
PCI Express 2.1 The PCI Express interface of the RK3399 is limited to the Gen1 speed. As a result, some installed PCI Express devices may operate with degraded performance, such as M.2 SSDs that support fewer than four PCI Express lanes, installed using an adapter like this one.
Real Time Clock (RTC) battery backup RTC Backup Battery Holder CR2032
Boot from USB/PXE

RockChip themselves have tables of supported features at 4.4 and mainline kernel versions in their wiki here.

Board Information, Schematics and Certifications

Certifications:

  • Disclaimer: Please note that PINE64 SBC is not a "final" product and in general certification is not necessary. However, PINE64 still submit the SBC for FCC, CE, and ROHS certification and obtain the certificates to proof that SBC board is capable on passing the testing. Please note a final commercial product needs to performs its owns testing and obtains its owns certificates.
  • ROCKPro64 FCC Certificate
  • ROCKPro64 CE Certificate
  • ROCKPro64 RoHS Report

Datasheets for Components and Peripherals

Rockchip RK3399 SoC information:

LPDDR4 (200 Balls) SDRAM:

eMMC information:

SPI NOR Flash information:

Heatsink related info:

Wireless related info:

Ethernet related info:

Peripheral related info:

Remote control button mapping:

Audio Codec (ES8316) (under board):

PWM controlled fan, SPDIF, and RTC Battery Backup headers:

Useful Articles and Blog Posts

If you want to dive in to the ecosystem, here's a short list of various articles and blog posts that can help you set up your soft- or hardware development environment.

The NAS Case for the ROCKPro64

Front View of the PINE64 NAS Case for the ROCKPro64

Please follow this this link for detailed instructions on how to assemble the ROCKPro64 NAS Case.

The NAS Case instructions also contains detailed information about:

  • what the NAS Case ships with
  • What additional things you need to purchase for your NAS Case
  • What optional things you can consider purchasing for your NAS build
  • What OS Image we recommend you use for your NAS build
  • IO accessibility after installing the ROCKPro64 into the NAS Case
  • NAS Case Exploded View
  • NAS Case Drawing

3D printable ITX mounting brackets

A Quartz64-A mounted in an ITX case using 3D printed brackets

Allows mounting a ROCKPro64-A or Quartz64-A board inside a regular PC case that conforms to the ITX standard, using 3D printed brackets:

  • AMF/STL/STEP files plus the original FreeCAD file used to create the models File:RP64-A Q64-A to ITX mounting brackets.zip
  • Make sure to flip the two brackets by 180 degrees on one of the horizontal axes (X/Y) in your slicer of choice before printing to avoid unnecessary supports
  • To allow enough clearance between the board and the bracket you either need to print four copies of the washer model or add nut(s) between the board and the bracket
  • If using nuts for the clearance between the board and the brackets, make sure it creates at least 3.2mm of spacing in between
  • Depending on the accuracy and calibration of a 3D printer, slight deviation can occur and you likely need to manually widen some of the holes to allow screws to fit

Other Resources

Troubleshooting

No Video or GPU Acceleration on Debian

If you can log in through serial but don't get any video or GPU acceleration on Debian, this is likely due to Debian's decision to compile the devfreq governors as loadable modules but not including them early enough for panfrost to be able to be provided with one of them.

The usual sign of this being the case is the following line in the kernel log: [drm:panfrost_devfreq_init [panfrost]] *ERROR* Couldn't initialize GPU devfreq

To fix this issue, run the following as root and reboot:

echo governor_simpleondemand >> /etc/initramfs-tools/modules
update-initramfs -u -k $(uname -r)

PCIe probe failures on Linux kernel boot

While booting the Linux kernel, you might experience PCIe probe failures, which render the attached PCIe device inaccessible. The "drivers: pci: introduce configurable delay for Rockchip PCIe bus scan" thread on the Linux kernel mailing list (LKML) discusses this issue and proposes a fix.

Manjaro ARM applies the following patches to the kernel package, which fix the issue: