https://wiki.pine64.org/api.php?action=feedcontributions&user=Mrgtwentythree&feedformat=atomPINE64 - User contributions [en]2024-03-29T11:22:45ZUser contributionsMediaWiki 1.37.1https://wiki.pine64.org/index.php?title=ROCK64_Software_Releases&diff=16132ROCK64 Software Releases2023-02-02T23:10:53Z<p>Mrgtwentythree: update links to armbsd.org and make same style as rockpro64 section</p>
<hr />
<div>This page contains a list of all available releases for the [[ROCK64]], as well as links to other resources.<br />
<br />
= Linux Image Releases =<br />
<br />
== AOSC ==<br />
[[File:aosc.png|right|100px]]<br />
'''AOSC OS''' is a general purpose Linux distribution that strives to simplify user experience and improve free and open source software for day-to-day productivity. To learn more about AOSC, please visit the official [https://aosc.io/ AOSC website].<br />
<br />
{{Info|AOSC is using LZ4 compression algorithm for the downloads, please visit the [https://github.com/lz4/lz4 LZ4 GitHub site] for an utility for extracting the archives}}<br />
<br />
Download:<br />
{{Warning|Possibly outdated or not available anymore.}}<br />
* https://aosc.io/downloads/ (supports the microSD card and eMMC, 8GB or more)<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Default user<br />
| <code>aosc/anthon</code><br />
|}<br />
<br />
== Arch Linux ARM ==<br />
[[File:Archlinux-logo.png|right|100px]]<br />
Official '''Arch Linux ARM''' release.<br />
<br />
Installation:<br />
* https://archlinuxarm.org/platforms/armv8/rockchip/rock64<br />
<br />
== Armbian==<br />
[[File:armbian.png|right|100px]]<br />
<br />
'''Armbian''' is a Linux distribution designed for ARM boards. They are usually Debian or Ubuntu flavored. To find out more about Armbian and available download options please visit the [https://www.armbian.com/rock64/ Armbian ROCK64 site].<br />
<br />
{{Info|The download images are packed in a .7zip archive, please extract the archive first before flashing.}}<br />
<br />
Download:<br />
<br />
* [https://www.armbian.com/rock64/ ROCK64's Armbian site] (supports the microSD card and eMMC, 8GB or more)<br />
* [https://armbian.tnahosting.net/archive/rock64/archive/ Download archive] (supports the microSD card and eMMC, 8GB or more)<br />
<br />
== ayufan's Linux releases ==<br />
[[File:penguin.png|right|100px]]<br />
<br />
The community member ''ayufan'' offers multiple ROCK64 Linux releases based on Debian and Ubuntu. The forum thread for release can be found [https://forum.pine64.org/showthread.php?tid=6309 here].<br />
<br />
Download:<br />
<br />
* https://github.com/ayufan-rock64/linux-build/releases (supports the microSD card and eMMC)<br />
<br />
{{Info|Make sure to download images for the ''ROCK64''.}}<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Default user<br />
| <code>rock64/rock64</code><br />
|}<br />
<br />
== Debian ==<br />
[[File:debian.png|right|100px]]<br />
<br />
'''Debian''' is an operating system and a distribution of Free Software.<br />
<br />
Download:<br />
* Debian 12 Bookworm [https://deb.debian.org/debian/dists/bookworm/main/installer-arm64/current/images/netboot/SD-card-images/ concatenateable images]<br />
* Daily build [https://d-i.debian.org/daily-images/arm64/daily/netboot/SD-card-images/ concatenateable images]<br />
<br />
Installation:<br />
* Go to the download directory<br />
* Download firmware.rock64-rk3328.img.gz and partition.img.gz<br />
* Combine the 2 parts into 1 image file: <code>zcat firmware.rock64-rk3328.img.gz partition.img.gz > debian-installer.img</code><br />
* Write the created .img file to microSD card or eMMC Module using ''dd''<br />
* Plug the microSD/eMMC card in the Rock64 (and connect a serial console) and boot up to start the Debian Installer<br />
<br />
See [https://d-i.debian.org/daily-images/arm64/daily/netboot/SD-card-images/README.concatenateable_images README.concatenateable_images here] or [https://deb.debian.org/debian/dists/bullseye/main/installer-arm64/current/images/netboot/SD-card-images/README.concatenateable_images README.concatenateable_images here] for details regarding the concatenateable images and their installation from non-Linux systems.<br />
<br />
== Debian by mrfixit2001 ==<br />
[[File:debian.png|right|100px]]<br />
<br />
Mrfixit2001's minimal '''Debian''' build. Version 190514 onward support Rock64-v3 board<br />
<br />
Download:<br />
* [https://github.com/mrfixit2001/debian_builds/releases Direct download from mrfixit2001's github] (supports the microSD card and eMMC)<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Default user<br />
| <code>rock/rock</code><br />
|}<br />
<br />
== DietPi ==<br />
[[File:dietpi.png|right|100px]]<br />
<br />
'''DietPi''' is a lightweight yet easy to setup and feature-rich Linux distribution, based on Debian. To find out more about DietPi, please visit the [https://dietpi.com/docs/ official documentation]. Discuss the ROCK64 build on the [https://forum.pine64.org/showthread.php?tid=12514 PINE64 forum thread].<br />
<br />
Download: <br />
* [https://dietpi.com/downloads/images/DietPi_ROCK64-ARMv8-Bullseye.7z Debian 11 Bullseye] (supports the microSD card and eMMC, 4GB or more)<br />
* [https://dietpi.com/downloads/images/DietPi_ROCK64-ARMv8-Bookworm.7z Debian 12 Bookworm] (supports the microSD card and eMMC, 4GB or more)<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Default user<br />
| <code>root/dietpi</code><br />
|}<br />
<br />
== Lakka ==<br />
[[File:lakka.png|right|100px]]<br />
<br />
'''Lakka''' is a lightweight Linux distribution that transforms a small computer into a full blown retrogaming console. Visit [https://forum.pine64.org/showthread.php?tid=5354 PINE64 forum] for more information about the Lakka release. See the [[Lakka]] article for specific details regarding the distribution.<br />
<br />
Download:<br />
* https://le.builds.lakka.tv/RK3328.aarch64/ (supports the microSD card and eMMC)<br />
<br />
== LibreELEC ==<br />
[[File:libreelec.jpg|right|100px]]<br />
<br />
'''LibreELEC''' is a "Just enough OS" Linux distribution combining the Kodi media center with an operating system.<br />
<br />
Download:<br />
* [https://libreelec.tv/downloads/rockchip/ Official build image] (supports the microSD card and eMMC, 8GB or more)<br />
* [https://test.libreelec.tv/ Daily builds] (supports the microSD card and eMMC, 8GB or more)<br />
<br />
== Manjaro ARM ==<br />
[[File:Manjaro.png|right|100px]]<br />
<br />
'''Manjaro''' is a user-friendly Linux distribution based on the independently developed Arch operating system. Manjaro editions for Rock64 are available directly from Manjaro. To learn more about Manjaro please visit the [https://forum.manjaro.org/tags/manjaroarm Manjaro Forum].<br />
<br />
{{Info|Only supports ROCK64 version 2 SBC!}}<br />
<br />
Download:<br />
<br />
* [https://github.com/manjaro-arm/rock64-images/releases Manjaro ARM ROCK64 GitHub] (supports the microSD card and eMMC)<br />
<br />
== NEMS Linux ==<br />
[[File:nems.jpg|right|100px]]<br />
<br />
'''NEMS''' stands for "Nagios Enterprise Monitoring Server" and it is a modern pre-configured, customized and ready-to-deploy Nagios Core image designed to run on low-cost micro computers. To find out more about NEMS on the PINE64 and available tweaks to the installation please visit the [https://forum.pine64.org/showthread.php?tid=7306 PINE64 forum thread]. To find out more on NEM Linux, please visit their [https://nemslinux.com/ site].<br />
<br />
{{Warning|Only supports ROCK64 ver2 SBC}}<br />
<br />
Download:<br />
<br />
{{Info|The MD5 hash of the .xz file is ''6e2088922c5d197db8b8ba3057120389''}}<br />
<br />
* [https://nemslinux.com/download/nagios-for-pine64.php Download torrent seed from NEMS Linux] (supports the microSD card, 16GB or more)<br />
* [https://files.pine64.org/os/ROCK64/nems/NEMS_v1.5-Rock64-Build2.zip Direct download from pine64.org] (supports the microSD card, 16GB or more)<br />
<br />
{{Info|The installation guide can be found [https://docs.nemslinux.com/installation here].}}<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Default user<br />
| <code>nemsadmin/nemsadmin</code><br />
|}<br />
<br />
== NextCloudPi==<br />
[[File:nextcloudpi.png|right|100px]]<br />
<br />
'''NextCloudPi''' comes not only with NextCloud preinstalled, but also with management tools for backups, SSL certificates, SAMBA, enhanced security and more. Visit the project's [https://nextcloudpi.com website]. You can follow the ongoing discussion about NextCloudPi on the [https://forum.pine64.org/showthread.php?tid=6047 PINE64 forum]. <br />
<br />
Download:<br />
<br />
{{Warning|The image is outdated.}}<br />
<br />
* [https://files.pine64.org/os/ROCK64/nextcloudplus/NextCloudPi_Rock64_03-10-19.img.xz Direct download from pine64.org]<br />
<br />
{{Info|The MD5 hash of the .xz file is ''1432c8b8082696f38770004b3cb5ac1e''}}<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Root user<br />
| <code>root/1234</code><br />
|}<br />
<br />
== OpenMediaVault ==<br />
[[File:omv.png|right|100px]]<br />
<br />
'''Openmediavault''' is the next generation network attached storage (NAS) solution. See the [[OpenMediaVault]] article for more details. The forum thread concerning this release can be found [https://forum.pine64.org/showthread.php?tid=6309 here].<br />
<br />
Download:<br />
<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ Releases on ayufan's github]<br />
* [https://files.pine64.org/os/ROCK64/omv/jessie-openmediavault-rock64-0.5.15-136-armhf_sd2emmc.img.xz Direct download from pine64.org (32 bit armhf)]<br />
<br />
{{Info|The MD5 hash of the .xz file is ''7E423EF9146EA15403E7D1B4EA30594A''}}<br />
<br />
Notes:<br />
* Shorting the eMMC PIN with a jumper as shown on the 1st image of [https://files.pine64.org/doc/rock64/guide/ROCK64_Installing_Android_To_eMMC.pdf Guide to install stock Android build to eMMC module]. After power ON the box for 2-3 second, quickly remove the jumper. After boot, it will prompt for confirmation 'Y' to start writing the new image to the eMMC. Then follow the instructions on the screen<br />
* There's a bug with eMMC in the "Stable" version of openmediavault linked from the wiki page. In order to use eMMC, please you need to be on the latest (pre-release) version which is linked here https://github.com/ayufan-rock64/linux-build/releases<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! TTY and SSH, except OMV<br />
| <code>rock64/rock64</code><br />
|-<br />
! OMV for Web<br />
| <code>admin/openmediavault</code><br />
|-<br />
! OMV for TTY<br />
| <code>root/openmediavault</code><br />
|}<br />
<br />
== Recalbox ==<br />
[[File:RB.png|right|100px]]<br />
<br />
'''Recalbox''' is a free and open-source operating system created for the emulation and preservation for retro games. Recalbox allows you to re-play a variety of videogame consoles and platforms in your living room with ease. To find out more about Recalbox and available tweaks to the installation please visit the [https://forum.pine64.org/showthread.php?tid=7111 PINE64 forum thread]. Visit the project's [https://www.recalbox.com/ website] for more details.<br />
<br />
{{Info|Only supports ROCK64 ver2 SBC}}<br />
<br />
Download: <br />
* [https://github.com/mrfixit2001/recalbox_rock64/releases Direct download latest release build from mrfixit2001 GitHub] (supports the microSD card and eMMC, 8GB or more)<br />
<br />
== R-Cade ==<br />
[[File:RCadeLogo.jpg|right|100px]]<br />
<br />
Retro Center's '''R-Cade''', the 4K Media Center Arcade. [https://www.retro-center.com/about-r-cade/ RCade] Features 100+ retro-gaming systems, a lightweight web browser, and full 4K UHD media playback.<br />
<br />
Download:<br />
* [https://github.com/retro-center/rcade_releases/releases Direct download from Retro Center's GitHub] (supports the microSD card, eMMC and USB boot)<br />
<br />
== Slackware==<br />
[[File:slackware.jpg|right|100px]]<br />
<br />
'''Slackware''' is a very old, interesting, convenient and easy distribution. Visit the project's website here (https://fail.pp.ua). You can follow the ongoing discussion about Slackware on the PINE64 forum (https://forum.pine64.org/showthread.php?tid=5868)<br />
<br />
{{Info|This Slackware build using the ZST compression algorithm, please visit the [https://github.com/facebook/zstd ZST GitHub site] for a decompression utility.}}<br />
<br />
Download: <br />
* http://dl.fail.pp.ua/slackware/images/rock64/ (supports the microSD card)<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Default user<br />
| <code>root/password</code><br />
|}<br />
<br />
Flashing the distribution to the eMMC: <br />
* Flash the image to micro SD, power up the board with micro SD and login<br />
* Copy the image file to micro SD by using SFTP. The image file must have the ''.img'' file extension.<br />
* After finish copy the file, power off the board and add eMMC module to the board<br />
* Boot the board, run below command for flashing to eMMC module<br />
* Run <code>sudo dd if='''[IMAGE]''' of=/dev/'''[DEVICE]''' bs=10M</code> (example: ''sudo dd if=slack-current-aarch64-xfce_08May18-4.4.126-rock64-build-20180508.img of=/dev/mmcblk1 bs=10M'').<br />
* then edit these two files in eMMC module:<br />
** <code>mount /dev/mmcblk1p1 /media</code><br />
** <code>echo "rootdev=/dev/mmcblk1p1" >> /media/boot/uEnv.txt</code><br />
** <code>sed -i 's:mmcblk0p1:mmcblk1p1:' /media/etc/fstab</code><br />
* After that, power off the board and remove the microSD card. Then boot with only the eMMC module.<br />
<br />
== Volumio 2 Digital Audio Player ==<br />
[[File:volumio.png|right|100px]]<br />
<br />
'''Volumio''' is a Linux-based headless DAP (digital audio player), which connects to your home stereo system or your DAC. Visit the project's website [https://community.volumio.org/t/volumio-2-on-rock64/8192 here]. You can follow the ongoing discussion about Volumio on the [https://forum.pine64.org/showthread.php?tid=5322 PINE64 forum]<br />
<br />
{{Info|Volumio is controlled using a Web-GUI which can be accessed via a web browser using the boards IP or volumio.local/}}<br />
<br />
Download:<br />
<br />
{{Warning|The image appears to be outdated! Handle with caution.}}<br />
<br />
* [https://updates.volumio.org/rock64/volumio/2.861/volumio-2.861-2020-12-22-rock64.img.zip Version 2.528-2019-01-12 from volumio.org] (supports the microSD card, 8GB or more)<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Default user<br />
| <code>volumio/volumio</code><br />
|}<br />
<br />
= BSD Image Releases =<br />
<br />
==FreeBSD==<br />
[[File:Freebsd_Logo.png|right|100px]]<br />
<br />
'''FreeBSD''' is an operating system used to power modern servers, desktops, and embedded platforms. The [https://wiki.freebsd.org/arm/RockChip#Rock64 RockChip FreeBSD page] has instructions for installing FreeBSD. Version 13.0 and greater include prebuilt images.<br />
<br />
Download:<br />
* Images for various FreeBSD releases can be found [https://www.freebsd.org/where/ here]<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! SSH access (enabled by default)<br />
| <code>freebsd/freebsd</code><br />
|-<br />
! Root user<br />
| <code>root/root</code><br />
|}<br />
<br />
==NetBSD==<br />
[[File:netbsd.png|right|100px]]<br />
<br />
'''NetBSD''' is a free, fast, secure, and highly portable Unix-like Open Source operating system. To learn more about NetBSD please visit [https://www.netbsd.org/ NetBSD main page]. <br />
<br />
Download: <br />
* [https://armbsd.org/ Direct download latest release build from NetBSD by select ROCK64] (supports the microSD card and eMMC)<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Root user<br />
| <code>root/[none]</code><br />
|}<br />
<br />
Notes:<br />
* Instructions concerning enabling SSH can be found [https://www.netbsd.org/docs/guide/en/chap-boot.html#chap-boot-ssh here] or the bootable image from armbsd.org can have the MSDOS partition modified to setup SSH using [https://man.netbsd.org/creds_msdos.8 this] method.<br />
<br />
----<br />
<br />
==OpenBSD==<br />
[[File:Puffy_mascot_openbsd.png|right|100px]]<br />
<br />
'''OpenBSD''' is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution. You can install OpenBSD on your Rock64 by following [https://github.com/krjdev/rock64_openbsd these instructions].<br />
<br />
= Android Image Releases =<br />
<br />
== Android TV 9.x eMMC (No Google Play) ==<br />
[[File:android_9.png|right|100px]]<br />
<br />
The '''Android 9.0''' image for eMMC boot. For the installation of the Playstore on Android 9.0 please follow [https://forum.pine64.org/showthread.php?tid=8655 this forum thread].<br />
<br />
Image downloads (for direct flashing):<br />
* Stock images (write the image to eMMC module using an USB adapter for the eMMC module)<br />
** [https://files.pine64.org/os/ROCK64/android/ROCK64_dd_20190617_stock_android_9.0_emmcboot-16GB.img.gz Stock image for the 16GB eMMC module] from ''pine64.org'' (560MB, MD5 of the Gzip file ''D985808B4CA912201372DC2F5F322AE9'', build 20190617)<br />
** [https://files.pine64.org/os/ROCK64/android/ROCK64_dd_20190617_stock_android_9.0_emmcboot-32GB.img.gz Stock image for the 32GB eMMC module] from ''pine64.org'' (579MB, MD5 of the Gzip file ''5D65A44F78BD08B4584413C8BEEAAF05'', build 20190617)<br />
** [https://files.pine64.org/os/ROCK64/android/ROCK64_dd_20190617_stock_android_9.0_emmcboot-64GB.img.gz Stock image for the 64GB eMMC module] from ''pine64.org'' (615MB, MD5 of the Gzip file ''B34D1C119386CBA1658E5F0FB9E4413D'', build 20190617)<br />
<br />
* Rooted images (write the image to eMMC module using an USB adapter for the eMMC module)<br />
** [https://files.pine64.org/os/ROCK64/android/ROCK64_dd_20190618_stock_rooted_android_9.0_emmcboot-16GB.img.gz Rooted image for 16GB eMMC module] from ''pine64.org'' (561MB, MD5 of the Gzip file ''DBB5B3D46B77A33BC9F09173C9788E6E'', build 20190618)<br />
** [https://files.pine64.org/os/ROCK64/android/ROCK64_dd_20190618_stock_rooted_android_9.0_emmcboot-32GB.img.gz Rooted image for 32GB eMMC module] from ''pine64.org'' (579MB, MD5 of the Gzip file ''5F3B97EA72B3227082500B3FB1FAB44A'', build 20190618)<br />
** [https://files.pine64.org/os/ROCK64/android/ROCK64_dd_20190618_stock_rooted_android_9.0_emmcboot-64GB.img.gz Rooted image for 64GB eMMC module] from ''pine64.org'' (615MB, MD5 of the Gzip file ''6833B124ABA3AC2269A6B4F51EFD1109'', build 20190618)<br />
<br />
Image downloads (for Rockchip Tool):<br />
* [https://files.pine64.org/os/ROCK64/android/ROCK64_20190617_stock_android_9.0_emmcboot.img.gz Stock image] from ''pine64.org'' (544MB, MD5 of the Gzip file ''9B717263E7749A732C8B5C7D7D59C5C6'', build 20190617)<br />
* [https://files.pine64.org/os/ROCK64/android/ROCK64_20190618_stock_rooted_android_9.0_emmcboot.img.gz Rooted image] from ''pine64.org'' (544MB, MD5 of the Gzip file ''FC5F80C3A939AD0F8DCE5B85F22D20A1'', build 20190618)<br />
<br />
{{Info|See the [https://wiki.pine64.org/index.php/NOOB#Flashing_to_eMMC_using_Rockchip_Tools_.28Rock64_Only.29 guide to flashing eMMC using Rockchip Tools]. Please unzip the file first and then use Rockchip tool to flash it. The OTG port located at top USB 2.0 port and it needs USB type A to type A cable.}}<br />
<br />
Notes: <br />
* Please allow 10-15 minutes on first boot for initialization<br />
<br />
== Android 9.x (No Google Play) ==<br />
[[File:android_9.png|right|100px]]<br />
<br />
The rooted '''Android 9.0 TV''' image for booting from the microSD card. For the installation of the Playstore on Android 9.0 please follow [https://forum.pine64.org/showthread.php?tid=8655 this forum thread].<br />
<br />
Image downloads (for direct flashing):<br />
* [https://files.pine64.org/os/ROCK64/android/ROCK64_dd_20190621_stock_rooted_android_9.0_sdboot-8GB.img.gz Image for 8GB microSD cards] from ''pine64.org'' (546MB, MD5 of the Gzip file ''A250B72CD6AAB24B8156DE08EB15530C'', build 20190621)<br />
* [https://files.pine64.org/os/ROCK64/android/ROCK64_dd_20190621_stock_rooted_android_9.0_sdboot-16GB.img.gz Image for 16GB microSD cards] from ''pine64.org'' (556MB, MD5 of the Gzip file ''09A6BACD71159853D5E4C6C21C883B0F'', build 20190621)<br />
* [https://files.pine64.org/os/ROCK64/android/ROCK64_dd_20190621_stock_rooted_android_9.0_sdboot-32GB.img.gz Image for 32GB microSD cards] from ''pine64.org'' (574MB, MD5 of the Gzip file ''C68DC5D96F1C546B96EC690CE7BFE910'', build 20190621)<br />
* [https://files.pine64.org/os/ROCK64/android/ROCK64_dd_20190621_stock_rooted_android_9.0_sdboot-64GB.img.gz Image for 64GB microSD cards] from ''pine64.org'' (707MB, MD5 of the Gzip file ''4EFC87B4CEE4C7655618DCA95EF7DD0D'', build 20190621)<br />
{{Info|Flash the file to the microSD card, for example using ''dd''.}}<br />
<br />
Image downloads (for Rockchip SDDisk Tool):<br />
* [https://files.pine64.org/os/ROCK64/android/ROCK64_20190621_stock_rooted_android_9.0_sdboot.img.gz Direct download] from ''pine64.org'' (539MB, MD5 of the Gzip file ''EE00D309745F842213E21B2F1E20C510'', build 20190621)<br />
{{Info|Please unzip first and then using Android tool to flash it. Allow 3-5 minutes boot up time on first boot for initialization. The Rockchip SDDisk Tool ver. 1.57 can be found [https://files.pine64.org/os/ROCK64/android/SDDiskTool_v1.57.zip here].}}<br />
<br />
== Android 8.x TV eMMC (preinstalled Google Play Store) ==<br />
[[File:android_8.png|right|100px]]<br />
<br />
The '''Android 8.1 TV''' stock image for booting from the eMMC. <br />
<br />
Image downloads (for direct flashing to the eMMC module):<br />
* [https://files.pine64.org/os/ROCK64/android/rock64_20180606_stock_android_8.1_emmcboot.img.xz Direct download] from ''pine64.org'' (561MB, MD5 of the .xz file ''C05846B89A6483DA911CEA604627524F'', build 20180606)<br />
<br />
{{Info|Please allow 10-15 minutes boot up time on first boot for initialization.}}<br />
<br />
Image downloads (for Rockchip Tool): <br />
* [https://files.pine64.org/os/ROCK64/android/rock64_android8.1_emmc_boot_v1.1.zip Direct download] from ''pine64.org'' (752MB, MD5 of the .xz file ''9738F060D2F62A83637797363D2B38C9'', build 20180606)<br />
<br />
{{Info|See the [https://wiki.pine64.org/index.php/NOOB#Flashing_to_eMMC_using_Rockchip_Tools_.28Rock64_Only.29 guide to flashing eMMC using Rockchip Tools]. Please unzip the file first and then use Rockchip tool to flash it. The OTG port located at top USB 2.0 port and it needs USB type A to type A cable.}}<br />
<br />
== Android 8.x TV ==<br />
[[File:android_8.png|right|100px]]<br />
<br />
The '''Android 8.1''' stock image for microSD boot, build 20180623.<br />
<br />
Download:<br />
* [https://files.pine64.org/os/ROCK64/android/rock64_20180623_stock_android_8.1_sdboot.img.xz Direct download] from ''pine64.org'' (575MB, supports the microSD card)<br />
<br />
{{Info|The MD5 hash of the .xz file is ''85372A568C114ADE7CD9632CEBA193E9''}}<br />
<br />
Notes:<br />
* Write the image to a microSD card using ''dd'' and boot it.<br />
* Please allow 10-15 minutes on first boot for initialization<br />
<br />
== Android 7.x eMMC ==<br />
[[File:android_7.png|right|100px]]<br />
The rooted ''Android 7.1.2'' stock image, build 20171204.<br />
<br />
Download image (microSD card to eMMC): <br />
* [https://files.pine64.org/os/ROCK64/android/rock64_20171204_stock_android_7.1.2_rooted_sd2emmc.img.xz Direct download] from ''pine64.org'' (558MB, MD5 of the .xz file ''43443467DFCAEDE767556843EB4D6707'')<br />
<br />
{{Info|DD image to a microSD card. Shorting the eMMC PIN with a jumper as shown on the first image of the [https://files.pine64.org/doc/rock64/guide/ROCK64_Installing_Android_To_eMMC.pdf guide to install stock Android build to eMMC module]. After power ON the box for 2-3 second, quickly remove the jumper, then it will start writing the new image to the eMMC. Please allow around 1 minute of boot up time before UI is presented via HDMI. Please allow 10-15 minutes boot up time on first boot for initialization. Has USB 3.0 patches. Enable ''Real Time Clock support'' for ''Popcorn Hour Transformer''.}}<br />
<br />
Download image (eMMC boot): <br />
* [https://files.pine64.org/os/ROCK64/android/rock64_20171204_stock_android_7.1.2_rooted_emmc.img.xz Direct download] from ''pine64.org'' (544MB, MD5 of the .xz file ''7C831F9E6B4311A3B3D4743FBBB628D0'')<br />
{{Info|Please unzip first and then using Android tool to flash in. Has USB 3.0 patches. Enable ''Real Time Clock support'' for ''Popcorn Hour Transformer''.}}<br />
<br />
Notes:<br />
* See [[ROCK64 MAC Address]] on how to set the MAC address.<br />
<br />
== Android 7.x ==<br />
[[File:android_7.png|right|100px]]<br />
<br />
The Android 7.1.2 stock image for microSD boot (rooted), build 20171204.<br />
<br />
Download:<br />
* [https://files.pine64.org/os/ROCK64/android/rock64_20171204_stock_android_7.1.2_rooted_sdboot.img.xz Direct download] from ''pine64.org'' (544MB)<br />
<br />
{{Info|The MD5 hash of the .xz file is ''56520ED3DB6E587DA140AD314A055EB2''}}<br />
<br />
Notes:<br />
* Write the image to a microSD card using ''dd'' and boot it.<br />
* Please allow 10-15 minutes on first boot for initialization<br />
* Has USB 3.0 patches<br />
* Enable the ''Real Time Clock support'' for the ''Popcorn Hour Transformer''<br />
<br />
== Android TV 7.x eMMC ==<br />
[[File:android_7.png|right|100px]]<br />
<br />
The '''Android TV 7.1''' community build image by ayufan.<br />
<br />
Download image (microSD card to eMMC):<br />
<br />
* [https://files.pine64.org/os/ROCK64/android/android-7.1-rock-64-rock64_atv-v0.3.4-r86-raw_sd2emmc.img.xz Direct download] from ''pine64.org'' (716MB, MD5 of the .xz file ''6FD1FA4BE87EC2D4E0862F66541BC6F0'')<br />
<br />
{{Info|Write the image to microSD card, for example using ''dd''. Shorting the eMMC PIN with a jumper as shown on the first image of the [https://files.pine64.org/doc/rock64/guide/ROCK64_Installing_Android_To_eMMC.pdf guide to install stock Android build to eMMC module]. After power ON the box for 2-3 second, quickly remove the jumper. After boot, it will prompt for confirmation 'Y' to start writing the new image to the eMMC. Then follow the instructions on the screen.}}<br />
<br />
Download image (eMMC):<br />
<br />
* [https://github.com/ayufan-rock64/android-7.1/releases/latest Direct download latest release build from ayufan github and look for android-7.1-rock-64-rock64_atv-x.x.x-xx-update.zip]<br />
<br />
{{Info|For eMMC flash-all image, please unzip first and then use Android tool to flash in}}<br />
<br />
Notes:<br />
* Please allow 5 minutes boot up time on first time for initialization<br />
* See [[ROCK64 MAC Address]] on how to set the MAC address.<br />
* [https://github.com/ayufan-rock64/android-7.1/releases/tag/0.3.4 Release notes on ayufan Android 7.1 github]<br />
<br />
== Android TV 7.x ==<br />
[[File:android_7.png|right|100px]]<br />
<br />
The '''Android TV 7.1''' community build image for microSD boot by ''ayufan''.<br />
<br />
Download:<br />
* [https://github.com/ayufan-rock64/android-7.1/releases/latest Direct download latest release build from ayufan github and look for android-7.1-rock-64-rock64_atv-x.x.x-xx-raw.img.gz] (supports the microSD card)<br />
<br />
= Android SDK =<br />
<br />
The '''Android P SDK''' (v9.0).<br />
<br />
Download:<br />
* [https://files.pine64.org//SDK/ROCK64/ROCK64_SDK_android9.0.tar.gz Direct Download] from ''pine64.org'' (104.34GB)<br />
<br />
{{Info|The MD5 hash of the TAR-GZip file is ''1EAC08942E238293E3AF11C7890DF307''}}<br />
<br />
[[Category:Rock64]]</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=ROCKPro64_Software_Releases&diff=16131ROCKPro64 Software Releases2023-02-02T23:07:50Z<p>Mrgtwentythree: update download link, and reference creds_msdos.8.</p>
<hr />
<div>This page contains a list of all available releases and tools for the [[ROCKPro64]] in alphabetical order.<br />
<br />
== Linux ==<br />
=== AOSC ===<br />
[[File:aosc.png|right|100px]]<br />
<br />
'''AOSC OS''' is a general purpose Linux distribution that strives to simplify user experience and improve free and open source software for day-to-day productivity. Originally AnthonOS (an OpenSUSE derivative built with SUSE Studio), then remade as a Debian derivative with customized KDE 4 UI and CJK support. To learn more about AOSC, please visit the official [https://aosc.io/ AOSC website]<br />
<br />
Download:<br />
* [https://releases.aosc.io/os-arm64/rockchip64/kde/rockpro64/ AOSC KDE] {{Dead link}}<br />
* [https://releases.aosc.io/os-arm64/rockchip64/gnome/rockpro64/ AOSC GNOME] {{Dead link}}<br />
* [https://releases.aosc.io/os-arm64/rockchip64/mate/rockpro64/ AOSC MATE] {{Dead link}}<br />
* [https://releases.aosc.io/os-arm64/rockchip64/cinnamon/rockpro64/ AOSC Cinnamon] {{Dead link}}<br />
* [https://releases.aosc.io/os-arm64/rockchip64/xfce/rockpro64/ AOSC XFCE] {{Dead link}}<br />
* [https://releases.aosc.io/os-arm64/rockchip64/lxde/rockpro64/ AOSC LXDE] {{Dead link}}<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Default user<br />
| <code>aosc/anthon</code><br />
|}<br />
<br />
----<br />
<br />
=== Armbian ===<br />
[[File:armbian.png|right|100px]]<br />
<br />
'''Armbian''' is a Linux distribution designed for ARM boards. They are usually Debian or Ubuntu flavored. To find out more about Armbian and available options please visit their [https://www.armbian.com/rockpro64/ site]. If you are booting from a Micro SD card, then both Linux kernel versions will work. If you are trying to boot from an eMMC module then the 4.4.y will work, but the newer 5.10.y will not.<br />
<br />
Download:<br />
* https://dl.armbian.com/rockpro64/archive/<br />
<br />
----<br />
<br />
=== Batocera Linux ===<br />
[[File:batocera.png|right|100px]]<br />
<br />
'''Batocera Linux''' is an open-source and completely free retro-gaming distribution that can be copied to a USB stick or an SD card with the aim of turning any computer/nano computer into a gaming console during a game or permanently. Visit the project's website here (https://batocera.org/). You can follow the ongoing discussion about batocera.linux on the PINE64 forum (https://forum.pine64.org/showthread.php?tid=7084)<br />
<br />
Download:<br />
* https://batocera.org/download<br />
<br />
----<br />
<br />
=== Debian ===<br />
[[File:debian.png|right|100px]]<br />
<br />
'''Debian''' is an operating system and a distribution of free software.<br />
<br />
Download:<br />
* [https://d-i.debian.org/daily-images/arm64/daily/netboot/SD-card-images/ Debian has ROCKPro64 images available]. See forum thread [https://forum.pine64.org/showthread.php?tid=9744 here].<br />
<!--<br />
Debian 11 Bullseye images are available [https://deb.debian.org/debian/dists/bullseye/main/installer-arm64/current/images/netboot/SD-card-images/ here].<br />
<br />
Instructions for creating a bootable image are in the README file on the Debian website, as at June 2020 these were too short<br />
* Download: <code>firmware.rockpro64-rk3399.img.gz</code><br />
* Download: <code>partition.img.gz</code><br />
* Create the disk image:<br />
:: For Linux: <code>zcat firmware.rockpro64-rk3399.img.gz partition.img.gz<nowiki> > </nowiki>complete_image.img</code><br />
:: For Mac: <code>gzcat firmware.rockpro64-rk3399.img.gz partition.img.gz<nowiki> > </nowiki>complete_image.img</code><br />
* Write the image to your boot device:<br />
:: For Linux: <code>dd if=complete_image.img of=your_chosen_boot_device bs=4M</code><br />
:: For Mac: [https://www.balena.io/etcher/ Etcher]<br />
<br />
What you now have is the official Debian installer that will boot and run on your ROCKPro64. You will need an Ethernet connection and to answer the various installer questions/options.--><br />
<br />
Notes:<br />
* See the [[ROCKPro64#No_Video_or_GPU_Acceleration_on_Debian|troubleshooting section]] if you encounter issues with GPU acceleration.<br />
<br />
----<br />
<br />
=== DietPi ===<br />
[[File:dietpi.png|right|100px]]<br />
<br />
'''DietPi''' is a lightweight, yet easy to setup and feature-rich Linux distribution, based on Debian. To find out more about DietPi, please visit the [https://dietpi.com/docs/ official documentation]. Discuss the ROCKPro64 build on the [https://forum.pine64.org/showthread.php?tid=12532 PINE64 forum thread].<br />
<br />
Download:<br />
* [https://dietpi.com/downloads/images/DietPi_ROCKPro64-ARMv8-Bullseye.7z Direct download from dietpi.com]<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Root user<br />
| <code>root/dietpie</code><br />
|}<br />
<br />
----<br />
<br />
=== LibreELEC ===<br />
[[File:libreelec.jpg|right|100px]]<br />
'''LibreELEC''' is a lightweight 'Just enough OS' Linux distribution purpose-built for Kodi on current and popular mediacentre hardware.<br />
<br />
Download:<br />
* [https://libreelec.tv/downloads_new/rockchip/ Official LibreElec build image] (look for PINE64 RockPro64-LibreELEC-RK3399.arm-x.x.x-rockpro64.img.gz, supports microSD card and the eMMC module of 8GB or more.)<br />
<br />
{{Info|Unzip and flash the image to a microSD card or eMMC module, for example using ''dd''.}}<br />
<br />
----<br />
<br />
=== Manjaro ARM ===<br />
[[File:Manjaro.png|right|100px]]<br />
<br />
'''Manjaro''' is a user-friendly Linux distribution based on the independently developed Arch operating system. To learn more about Manjaro please visit [https://forum.manjaro.org/c/arm/releases/102 Manjaro forum].<br />
<br />
Download: <br />
* [https://github.com/manjaro-arm/rockpro64-images/releases from Github]<br />
<br />
Notes:<br />
* Decompress the image (<tt>unxz</tt>) before flashing, or decompress on the fly while flashing (<tt>xzcat</tt> in a root shell, Etcher, ...)<br />
* A display and keyboard will be required for first boot.<br />
* Initial setup includes: keyboard layout, locale, username, user password, and root password.<br />
* The installer will expand the root partition to use the remaining space on the storage device you've flashed.<br />
<br />
----<br />
<br />
=== Nems Linux ===<br />
[[File:nems.jpg|right|100px]]<br />
<br />
'''NEMS''' stands for ''Nagios Enterprise Monitoring Server'' and it is a modern pre-configured, customized and ready-to-deploy Nagios Core image designed to run on low-cost micro computers. To find out more about NEMS on the PINE64 and available tweaks to the installation please visit the [https://forum.pine64.org/showthread.php?tid=7306 PINE64 forum thread].<br />
<br />
Download:<br />
* [https://nemslinux.com/download/nagios-for-pine64.php Download page] with torrent seed or direct download.<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Default user<br />
| <code>nemsadmin/nemsadmin</code><br />
|}<br />
<br />
----<br />
<br />
=== NixOS ===<br />
[[File:NixOS.webp|right|100px]]<br />
<br />
'''NixOS''' is a Linux distribution built on top of the Nix package manager using declarative configuration to allow reliable system upgrades. More information can be found on the [https://nixos.wiki/wiki/NixOS_on_ARM/PINE64_ROCKPro64 NixOS wiki].<br />
<br />
Download:<br />
* [https://github.com/AshyIsMe/nixos-installer-rockpro64 nixos-installer-rockpro64]<br />
<br />
----<br />
<br />
=== OpenMediaVault ===<br />
[[File:omv.png|right|100px]]<br />
<br />
'''OpenMediaVault''' is the next generation network attached storage (NAS) solution, [https://www.openmediavault.org/ click this link to OMV main page] to learn more. Forum thread concerning this release can be found [https://forum.pine64.org/showthread.php?tid=6308 here]<br />
<br />
Download:<br />
{{Outdated release}}<br />
* Stretch 32bit (armhf): [https://github.com/ayufan-rock64/linux-build/releases/download/0.8.3/stretch-openmediavault-rockpro64-0.8.3-1141-armhf.img.xz Direct download from ayufan's github]<br />
* Stretch 64bit (aarch64): [https://github.com/ayufan-rock64/linux-build/releases/download/0.8.3/stretch-openmediavault-rockpro64-0.8.3-1141-arm64.img.xz Direct download from ayufan's github]<br />
<br />
Notes:<br />
* You need to enable root login in OMV WebGUI<br />
* [[OpenMediaVault|OpenMediaVault Basic Setup]]<br />
* [http://omv-extras.org/joomla/index.php/omv-plugins-3/3-stable OpenMediaVault Plugins]<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! TTY and SSH, except OMV<br />
| <code>rock64/rock64</code><br />
|-<br />
! WebGUI Login<br />
| <code>admin/openmediavault</code><br />
|-<br />
! TTY and SSH<br />
| <code>root/openmediavault</code><br />
|}<br />
<br />
----<br />
<br />
=== OpenWrt ===<br />
[[File:OpenWrt.png|right|100px]]<br />
<br />
'''OpenWrt''' is a highly extensible GNU/Linux distribution for embedded devices (typically wireless routers). Unlike many other distributions for these routers, OpenWrt is built from the ground up to be a full-featured, easily modifiable operating system for your router. In practice, this means that you can have all the features you need with none of the bloat, powered by a Linux kernel that's more recent than most other distributions.<br />
<br />
Download:<br />
* https://openwrt.org/toh/pine64/rockpro64_v2.1<br />
<br />
----<br />
<br />
=== R-Cade ===<br />
[[File:RCadeLogo.jpg|right|100px]]<br />
<br />
Retro Center's '''R-Cade''', the 4K Media Center Arcade. [https://www.retro-center.com/about-r-cade/ RCade] Features 100+ retro-gaming systems, a lightweight web browser, and full 4K UHD media playback.<br />
<br />
Download:<br />
* [https://github.com/retro-center/rcade_releases/releases Direct download from Retro Center's GitHub] (USB, microSD and eMMC boot)<br />
<br />
----<br />
<br />
=== Recalbox ===<br />
[[File:RB.png|right|100px]]<br />
<br />
'''Recalbox''' allows you to re-play a variety of videogame consoles and platforms in your living room, with ease! Visit the project's website here (https://www.recalbox.com/). You can follow the ongoing discussion about Recalbox on the PINE64 forum (https://forum.pine64.org/showthread.php?tid=7194)<br />
<br />
Download:<br />
{{Template:Outdated release}}<br />
* [https://github.com/mrfixit2001/recalbox_rockpro64/releases download] release from mrfixit2001 github.<br />
<br />
----<br />
<br />
=== Retro Arena ===<br />
[[File:retroarena.png|right|100px]]<br />
<br />
'''Retro Arena''' community build for microSD and eMMC boot. This is a BETA and therefore is not update-able nor supported, however bugs or issues are appreciated to be identified and shared via the issues tab on our GitHub so that we can address them in the future. The Roshambo Case support is baked in with one major caveat due to kernel limitation: You can power the unit off by the POWER switch and the RESET button works 100% however to power the unit on you will need to manually plug/unplug the power cord. This limitation will not be present in future releases. You can follow the ongoing discussion about Retro Arena on the [https://forum.pine64.org/showthread.php?tid=7555 forum]<br />
<br />
Download:<br />
{{Outdated release}}<br />
* [http://files.pine64.org/os/ROCKPro64/odroidretroarena/TheRA-RP64-BETA-0.8-FINAL.img.gz Direct download from pine64.org]<br />
<br />
----<br />
<br />
=== SkiffOS ===<br />
[[File:SkiffOS-Icon-1.png|right|100px]]<br />
Minimal cross-compiled OS optimized for hosting distributions in Docker containers. Provides the reliability of firmware with the ease-of-use of package managers. Uses the [http://buildroot.org Buildroot] cross-compilation tool for support for all Pine64 boards.<br />
<br />
Use configuration packages to configure the distribution:<br />
* core/gentoo: Gentoo optimized for Rockpro64<br />
* core/nixos: NixOS arm64<br />
<br />
You can also configure the skiff core yaml file to configure multiple distributions to run in parallel.<br />
<br />
The boot-up OS can be upgraded independently from the containers.<br />
<br />
Download:<br />
* The repository and instructions can be found [https://github.com/skiffos/SkiffOS/tree/master/configs/pine64 here].<br />
<br />
----<br />
<br />
=== Slackware ===<br />
[[File:slackware.jpg|right|100px]]<br />
<br />
'''Slackware''' is the world's oldest actively developed Linux distribution, providing a modern user land (applications) and Linux Kernel, within a more classic Unix Operating System environment.<br />
<br />
Resources:<br />
* [https://docs.slackware.com/slackwarearm:inst Installation instructions].<br />
* [https://www.youtube.com/watch?v=uXAL9jz-yaA&list=PL1XOSJnvang3VLmqke2QbRitKtOD6Rm3t Installation video guide]<br />
<br />
----<br />
<br />
=== slarm64 ===<br />
<br />
'''slarm64''' is an unofficial aarch64 / riscv64 Slackware Linux port. You can follow the ongoing discussion about slarm64 on the RockPro64 on the PINE64 forum (https://forum.pine64.org/showthread.php?tid=6823) or this forum thread for more general slarm64 information: https://www.linuxquestions.org/questions/slackware-arm-108/slarm64-aarch64-unofficial-slackware-4175613287/.<br />
<br />
Downloads:<br />
* [http://dl.fail.pp.ua/slackware/images/rockpro64/ download] (supports microSD card, look for slarm64-current-aarch64-xfce-rockpro64-x.xx.x-build-xxxxxxxx.img.zst)<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Root user<br />
| <code>root/password</code><br />
|}<br />
<br />
Flashing the distribution to the eMMC:<br />
* Flash the image to micro SD, power up the board with micro SD and login<br />
* Copy the image file to micro SD by using SFTP. The image file must have the ''.img'' file extension.<br />
* After finish copy the file, power off the board and add eMMC module to the board<br />
* Boot the board, run below command for flashing to eMMC module<br />
* Run <code>dd if=[image file] of=/dev/mmcblkX bs=10M</code> (example: ''sudo dd if=slack-current-aarch64-xfce_29Sep18-4.4.162-rockpro64-build-20181126.img of=/dev/mmcblkX bs=10M'')<br />
* then edit these two files in eMMC module:<br />
** <code>mount /dev/mmcblk1p1 /media</code><br />
** <code>echo "rootdev=/dev/mmcblk1p1" >> /media/boot/uEnv.txt</code><br />
** <code>sed -i 's:mmcblk0p1:mmcblk1p1:' /media/etc/fstab</code><br />
* After that, power off the board and remove the microSD card. Then boot with only the eMMC module.<br />
<br />
----<br />
<br />
=== Twister OS ===<br />
[[File:Twister_OS.png|right|100px]]<br />
<br />
'''Twister OS''' brings a desktop computing experience for SBCs, right out-of-the-box. Including themes, applications, tools, and optimizations to get the most out of your SBC. For more information on Twister OS, please visit the [https://twisteros.com/ official site]. You can follow the ongoing discussion about Twister OS on the PINE64 forum (https://forum.pine64.org/showthread.php?tid=12192).<br />
<br />
Download:<br />
* [https://twisteros.com/twisterarmbian.html Twister OS Armbian-Reforged XFCE Desktop image] (2.8GB, supports the microSD card and eMMC modules with 16GB and more)<br />
<br />
{{Info|After flashing image with Etcher, edit /boot/armbianEnv.txt, replace the dtb name with rk3399-rockpro64.dtb.}}<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Default user<br />
| <code>pi/raspberry</code><br />
|}<br />
<br />
----<br />
<br />
=== Void Linux ===<br />
'''Void Linux''' is a general purpose operating system, based on the monolithic Linux kernel. The official guide can be found at [https://docs.voidlinux.org/installation/guides/arm-devices/index.html Guide]. At this time there are no RockPro64 images available.<br />
<br />
The following creates a bootable image from an existing Void Linux installation:<br />
* <code>xbps-insall -Syu</code> to update the xbps installation of the installation<br />
* create ROCKPro64 image with the ''void-mklive'' software (from github.com):<br />
** create a rootfs via ''mkrootfs.sh'': <code>sh mkrootfs.sh -o void-aarch64-muls-ROOTFS-yyyymmdd.tar.xz</code><br />
** <code>sh mkplatformfs.sh rockpro64 void-aarch64-muls-ROOTFS-yyyymmdd.tar.xz</code><br />
** <code>sh mkimage.sh -s 7GiB void-rockpro64-PLATFORMFS-yyyymmdd.tar.xz</code><br />
* write image to sdcard or eMMC: <code>dd if='''IMAGE-FILENAME''' of='''DEVICENAME''' bs=2M</code><br />
* If ''mkplatformfs.sh'' errors with ''ROCKPro64 not supported'', install ''xbps-src'' from https://github.com/void-linux/void-packages and build the ROCKPro64 package.<br />
* Tip: write a new U-Boot to the image if you see on the serial console the boot-up stalls:<br />
** get the two U-Boot files from [https://pkgs.org/download/u-boot-rockpro64 pkgs.org], the aarch64 files:<br />
** <code>dd if=idbloader.img of=DEVICENAME seek=64</code><br />
** <code>dd if=u-boot.itb of=DEVICENAME seek=16384</code><br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Default user<br />
| <code>voidlinux/voidlinux</code><br />
|}<br />
<br />
== BSD Images ==<br />
=== FreeBSD ===<br />
[[File:Freebsd_Logo.png|right|100px]]<br />
<br />
'''FreeBSD''' is an operating system used to power modern servers, desktops, and embedded platforms. The [https://wiki.freebsd.org/arm/RockChip#RockPro64 RockChip FreeBSD page] has instructions for installing FreeBSD. Version 13.0 and greater include prebuilt images.<br />
<br />
Download:<br />
* Images for various FreeBSD releases can be found [https://www.freebsd.org/where/ here]<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! SSH user (enabled by default)<br />
| <code>freebsd/freebsd</code><br />
|-<br />
! Root user<br />
| <code>root/root</code><br />
|}<br />
<br />
Notes:<br />
<br />
* The wiki has instructions on [https://wiki.freebsd.org/arm/RockChip#Fan_Control_on_RockPro64 enabling the PWM cooling fan].<br />
<br />
----<br />
<br />
=== NetBSD ===<br />
[[File:netbsd.png|right|100px]]<br />
'''NetBSD''' is a free, fast, secure, and highly portable Unix-like Open Source operating system. To learn more about NetBSD please visit [https://www.netbsd.org/ NetBSD main page] <br />
<br />
Download:<br />
* [https://armbsd.org/ download] latest release build from NetBSD by select 64bit - RockPro64 (size: 339 MB)<br />
<br />
{| class="wikitable"<br />
!colspan="2" style="background: #a7d7f9;"| Default credentials<br />
|-<br />
! Root user and SSH login<br />
| <code>root/[none]</code><br />
|}<br />
<br />
Notes:<br />
* Instructions concerning enabling SSH can be found [https://www.netbsd.org/docs/guide/en/chap-boot.html#chap-boot-ssh here] or the bootable image from armbsd.org can have the MSDOS partition modified to setup SSH using [https://man.netbsd.org/creds_msdos.8 this] method.<br />
<br />
----<br />
<br />
=== OpenBSD ===<br />
[[File:Puffy_mascot_openbsd.png|right|100px]]<br />
<br />
'''OpenBSD''' is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution. Official instruction to get OpenBSD on ROCKPro64 is [https://www.openbsd.org/arm64.html here], and blogs on installation [https://github.com/jasperla/openbsd-rockpro64 is here] and [https://bsandro.tech/posts/openbsd-7.1-on-pine64-rockpro64/ here]. Forum discussion is [https://forum.pine64.org/forumdisplay.php?fid=109 here].<br />
<br />
== Chromium OS ==<br />
[[File:chromium.jpg|right|100px]]<br />
<br />
The '''Chromium OS''' community build image for microSD card and eMMC module, version beta (R76). To learn more please visit the [https://forum.pine64.org/showthread.php?tid=7659 forum].<br />
<br />
Download:<br />
{{Outdated release}}<br />
* https://github.com/ayufan-rock64/chromiumos-build/releases/<br />
<br />
{{Info|Flash the image to a microSD card or an eMMC module, for example using ''dd''.}}<br />
<br />
== Android ==<br />
=== Android 9.0.0 ===<br />
[[File:android_9.png|right|100px]]<br />
<br />
'''Stock for DD method [eMMC Boot] [20200804]'''<br />
* Use 'dd' to write the image to the eMMC module using the USB-to-eMMC adapter module and boot. Using [https://www.balena.io/etcher/ Etcher] or another specialized SD writing tool is preferred.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* Supports new RockPro64 AP6256 Wifi/BT module<br />
* Support Sony IMX214 camera module and works on both MiPi-CSI ports <br />
* This build supports PINE64 7" LCD panel with tablet UI (not Android TV)<br />
* DD image for 8GB eMMC module<br />
** [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20200804_stock_android_9.0_emmcboot-8GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 7287fd0846616354615c8d3eff6a2a92<br />
*** File Size: 602MB<br />
* DD image for 16GB eMMC module<br />
** [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20200804_stock_android_9.0_emmcboot-16GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 78352bbf21198d062af8bab2217ee691<br />
*** File Size: 611MB<br />
* DD image for 32GB eMMC module<br />
** [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20200804_stock_android_9.0_emmcboot-32GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): c5c8dce419478f75f85f893ee4808dbd<br />
*** File Size: 624MB<br />
* DD image for 64GB eMMC module<br />
** [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20200804_stock_android_9.0_emmcboot-64GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): aab1cf4d30c4d16e6ce2672f3ecae935<br />
*** File Size: 666MB<br />
<br />
'''Stock for RK Flash tool [eMMC Boot] [20200804]'''<br />
* Please unzip first and then using Android tool to flash in<br />
* The OTG port located at USB type-C connector, needs USB type A to type C cable.<br />
* [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_20200708_stock_android_9.0_emmcboot.img.gz Direct download from pine64.org]<br />
** MD5 (GZip file): 9ac830527814521e15b009fa2503c9e3<br />
** File Size: 589MB<br />
<br />
'''Stock for DD method [eMMC Boot] [20200708]<br />
* Use 'dd' to write the image to the eMMC module using the USB-to-eMMC adapter module and boot. Using [https://www.balena.io/etcher/ Etcher] or another specialized SD writing tool is preferred.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* Supports new RockPro64 AP6256 Wifi/BT module<br />
* This build supports PINE64 7" LCD panel with tablet UI (not Android TV)<br />
* DD image for 8GB eMMC module<br />
** [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20200708_stock_android_9.0_emmcboot-8GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): ef5f5a890a9270734e0adee21f006837<br />
*** File Size: 597MB<br />
* DD image for 16GB eMMC module<br />
** [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20200708_stock_android_9.0_emmcboot-16GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 179bd684a468f800a86f7c658a543bef<br />
*** File Size: 606MB<br />
* DD image for 32GB eMMC module<br />
** [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20200708_stock_android_9.0_emmcboot-32GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): d930b757c4427be07b83c37a9c8494a1<br />
*** File Size: 630MB<br />
* DD image for 64GB eMMC module<br />
** [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20200708_stock_android_9.0_emmcboot-64GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 09a970d68a10bdb3d6495d55860940e6<br />
*** File Size: 660MB<br />
<br />
'''Stock for RK Flash tool [eMMC Boot] [20200708]'''<br />
* Please unzip first and then using Android tool to flash in<br />
* The OTG port located at USB type-C connector, needs USB type A to type C cable.<br />
* [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_20200708_stock_android_9.0_emmcboot.img.gz Direct download from pine64.org]<br />
** MD5 (GZip file): 6d060ddd47ebcfd5cfcdbf90ec042c97<br />
** File Size: 589MB<br />
<br />
'''Stock for DD method [eMMC Boot] [20190427]'''<br />
* Use 'dd' to write the image to the eMMC module using the USB-to-eMMC adapter module and boot. Using [https://www.balena.io/etcher/ Etcher] or another specialized SD writing tool is preferred.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* Please ignore "internal problem with your device" popup message if appear on Android boot-up page.<br />
* This build supports PINE64 7" LCD panel with tablet UI (not Android TV)<br />
* DD image for 16GB eMMC module<br />
** [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20190417_stock_android_9.0_emmcboot-16GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 3BA4C72D81BCFC4C21B3B5D2BCB4F9F7<br />
*** File Size: 609MB<br />
* DD image for 32GB eMMC module<br />
** [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20190417_stock_android_9.0_emmcboot-32GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 4965CCF50A8F06CEB2E4A6828A21F31C<br />
*** File Size: 627MB<br />
* DD image for 64GB eMMC module<br />
** [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20190417_stock_android_9.0_emmcboot-64GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 748EC28FE5D5395D33E858C913D744BF<br />
*** File Size: 663MB<br />
<br />
'''Stock for DD method [microSD Boot] [20190506]'''<br />
* DD image to microSD card and boot. <br />
* Use 'dd' to write the image to the eMMC module using the USB-to-eMMC adapter module and boot. Using [https://www.balena.io/etcher/ Etcher] or another specialized SD writing tool is preferred.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* Please ignore "internal problem with your device" popup message if appear on Android boot-up page.<br />
* This build supports PINE64 7" LCD panel with tablet UI (not Android TV)<br />
* DD image for 8GB microSD card<br />
** [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20190506_stock_android_9.0_sdboot-8GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): E1C551E8106E178841E1C3F71432194A<br />
*** File Size: 599MB<br />
* DD image for 16GB microSD card<br />
** [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20190506_stock_android_9.0_sdboot-16GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 73592FDD5A2F52F08020F16AD99E8C8C<br />
*** File Size: 609MB<br />
* DD image for 32GB microSD card<br />
** [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20190506_stock_android_9.0_sdboot-32GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 74DE0FE528F210E4DD483B411A71904B<br />
*** File Size: 627MB<br />
* DD image for 64GB microSD card<br />
** [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20190506_stock_android_9.0_sdboot-64GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): D7626BD50443A88AEB9254C88C575284<br />
*** File Size: 663MB<br />
<br />
'''Stock for RK Flash tool [eMMC Boot] [20190427]'''<br />
* Please unzip first and then using Android tool to flash in<br />
* The OTG port located at USB type-C connector, needs USB type A to type C cable.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* This build supports PINE64 7" LCD panel with tablet UI (not Android TV)<br />
* [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_20190417_stock_android_9.0_emmcboot.img.gz Direct download from pine64.org]<br />
** MD5 (GZip file): 046BA4A07933120809FBE1B9577B7341<br />
** File Size: 592MB<br />
<br />
----<br />
<br />
=== Android 8.1.0 ===<br />
[[File:android_8.png|right|100px]]<br />
'''Stock for DD method [eMMC Boot] [20180828]'''<br />
* Use 'dd' to write the image to the eMMC module using the USB-to-eMMC adapter module and boot. Using [https://www.balena.io/etcher/ Etcher] or another specialized SD writing tool is preferred.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* This build supports PINE64 7" LCD panel with tablet UI (not Android TV)<br />
* [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20180828_stock_android_8.1_emmcboot.img.xz Direct download from pine64.org]<br />
** MD5 (XZ file): 9AEE21BC1B9DE886DCB0E64FA123988A<br />
** File Size: 414MB<br />
<br />
'''Stock for DD method [microSD Boot] [20181212]'''<br />
* Use 'dd' to write the image to the eMMC module using the USB-to-eMMC adapter module and boot. Using [https://www.balena.io/etcher/ Etcher] or another specialized SD writing tool is preferred.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* This build supports PINE64 7" LCD panel with tablet UI (not Android TV)<br />
* DD image (for 8GB microSD card and above)<br />
* [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20181212_stock_android_8.1_sdboot.img.xz Direct download from pine64.org]<br />
** MD5 (XZ file): 5A6BB7FCD7B3F77FCEE99CE462AE7405<br />
** File Size: 616MB<br />
<br />
'''Stock for RK Flash tool [eMMC Boot] [20180828]'''<br />
* Please unzip first and then using Android tool to flash in<br />
* The OTG port located at USB type-C connector, needs USB type A to type C cable.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* This build supports PINE64 7" LCD panel with tablet UI (not Android TV)<br />
* [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_20180828_stock_android_8.1_emmcboot.img.xz Direct download from pine64.org]<br />
** MD5 (XZ file): 4DACFE927BB09EE9C56B5232A7F624EE<br />
** File Size: 415MB<br />
<br />
----<br />
<br />
=== Android 7.1.2 ===<br />
[[File:android_7.png|right|100px]]<br />
'''Stock for DD method [eMMC Boot] [20180809]'''<br />
* Use 'dd' to write the image to the eMMC module using the USB-to-eMMC adapter module and boot. Using [https://www.balena.io/etcher/ Etcher] or another specialized SD writing tool is preferred.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* This build supports PINE64 7" LCD panel with tablet UI (not Android TV)<br />
* [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20180809_stock_android_7.1_emmcboot.img.gz Direct download from pine64.org]<br />
** MD5 (XZ file): 00F194017557017C2588724686E90CEA<br />
** File Size: 498MB<br />
<br />
'''Stock for RK Flash tool [eMMC Boot] [20180809]'''<br />
* Please unzip first and then using Android tool to flash in<br />
* The OTG port located at USB type-C connector, needs USB type A to type C cable.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* This build supports PINE64 7" LCD panel with tablet UI (not Android TV)<br />
* [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_20180809_stock_android_7.1_emmcboot.img.gz Direct download from pine64.org]<br />
** MD5 (XZ file): 197A9905B48441D8655E7542F4643FE9<br />
** File Size: 483MB<br />
<br />
'''Stock for DD method [microSD Boot] [20180920]'''<br />
* Use 'dd' to write the image to the eMMC module using the USB-to-eMMC adapter module and boot. Using [https://www.balena.io/etcher/ Etcher] or another specialized SD writing tool is preferred.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* This build supports PINE64 7" LCD panel with tablet UI (not Android TV)<br />
* [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_20180920_stock_android_7.1_sdboot.img.gz Direct download from pine64.org]<br />
** MD5 (XZ file): CE39642A379B357BB3E4BC80ACA2E0CE<br />
** File Size: 765MB<br />
<br />
'''Stock for DD method [eMMC Boot] [20180518]'''<br />
* Use 'dd' to write the image to the eMMC module using the USB-to-eMMC adapter module and boot. Using [https://www.balena.io/etcher/ Etcher] or another specialized SD writing tool is preferred.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* This build supports PINE64 7" LCD panel with tablet UI (not Android TV)<br />
* [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_dd_20180518_stock_android_7.1_emmcboot.img.xz Direct download from pine64.org]<br />
** MD5 (XZ file): 33622034ACDBC31A7D7BB01ED634E29B<br />
** File Size: 345MB<br />
<br />
'''Stock for RK Flash tool [eMMC Boot] [20180518]'''<br />
* Please unzip first and then using Android tool to flash in<br />
* The OTG port located at USB type-C connector, needs USB type A to type C cable.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* This build supports PINE64 7" LCD panel with tablet UI (not Android TV)<br />
* [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_20180518_stock_android_7.1_emmcboot.img.xz Direct download from pine64.org]<br />
** MD5 (XZ file): 90C1991DADAE13ADC94E927F171F8920<br />
** File Size: 342MB<br />
<br />
'''Stock for install from SDcard to eMMC [microSD Boot] [20180921]'''<br />
* Use 'dd' to write the image to the eMMC module using the USB-to-eMMC adapter module and boot. Using [https://www.balena.io/etcher/ Etcher] or another specialized SD writing tool is preferred.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* This build supports PINE64 7" LCD panel with tablet UI (not Android TV)<br />
* [http://files.pine64.org/os/ROCKPro64/android/ROCKPro64_20180921_stock_android_7.1_sdboot.img.xz Direct download from pine64.org]<br />
** MD5 (XZ file): c6900e82a1d6ef397dcac241f76f43c9<br />
** File Size: 350MB<br />
<br />
----<br />
<br />
=== Android SDK ===<br />
'''Android P SDK [v9.0]'''<br />
* [http://files.pine64.org/SDK/ROCKPro64/ROCKPro64_SDK_android9.0.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 3CEBEEFD1A873BEEEC149148A785D92E<br />
** File Size: 125.16GB<br />
<br />
----<br />
<br />
=== Slash TV OS ===<br />
Android 7 based system including Play Store, working only from SD card (does not boot when installed on eMMC)<br />
* https://drive.google.com/drive/folders/1K5YhWaB7Xstuv2HCo1HkpglCEm9x-RIM<br />
<br />
== For Linux Developer ==<br />
<br />
The Ayufan github page<br />
* [https://github.com/ayufan-rock64/linux-build/releases github.com/ayufan-rock64/linux-build/]<br />
<br />
Below are the LPDDR4 driver for RK3399<br />
<br />
* [http://files.pine64.org/os/ROCKPro64/driver/rk3399_loader_v1.10.112_support_1CS.bin rk3399_loader_v1.10.112_support_1CS.bin, this is 800Mhz version used in Android Build]<br />
* [http://files.pine64.org/os/ROCKPro64/driver/rk3399_ddr_666MHz_v1.11.bin rk3399_ddr_666MHz_v1.11.bin, this is alpha version]<br />
* [http://files.pine64.org/os/ROCKPro64/driver/rk3399_ddr_933MHz_v1.11.bin rk3399_ddr_933MHz_v1.11.bin, this is alpha version]<br />
<br />
ROCKPro64 related files<br />
<br />
* [http://files.pine64.org/os/ROCKPro64/driver/kernel_rockpro64.tar.gz ROCKPro64 Kernel file]<br />
* [http://files.pine64.org/os/ROCKPro64/driver/trust.img trust.img]<br />
<br />
== Miscellaneous tools ==<br />
<br />
* [http://files.pine64.org/doc/rock64/tools/DriverAssitant_v4.5.zip Windows ADB driver package]<br />
* [[ROCK64 MAC Address]]<br />
* [http://files.pine64.org/doc/rock64/guide/ROCK64_Installing_Android_To_eMMC.pdf Guide to install stock Android build to eMMC module]<br />
* [http://files.pine64.org/doc/rock64/tools/SD_Firmware_Tool._v1.46.zip Tools to burn Android build into a bootable microSD card]<br />
* [http://files.pine64.org/doc/rock64/tools/AndroidTool_Release_v2.38.zip Tools that allows developer flash image into eMMC's Loader/Parameter/Misc/Kernal/Boot/Recovery/System/Backup partition]<br />
<br />
[[Category:ROCKPro64]]</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=Pinebook_Pro_Hardware_Accessory_Compatibility&diff=14185Pinebook Pro Hardware Accessory Compatibility2022-09-24T20:59:16Z<p>Mrgtwentythree: add samsung 980 SSD info.</p>
<hr />
<div><br />
Please test as many things as you can find with your [[Pinebook Pro]] and share the results here. Some devices which should work don't!<br />
<br />
= Storage =<br />
<br />
== NVMe SSD drives ==<br />
Only PCI Express M.2 drives can work, due to the available connectivity of the Pinebook Pro. Consequently, SATA or USB M.2 cards will not work.<br />
<br />
You need to buy and install the M.2 adapter in order to fit one, please see [[Pinebook Pro#Using the optional NVMe adapter]]<br />
<br />
Please see [[Pinebook Pro Troubleshooting Guide#NVMe SSD issues|a separate section]] that describes reported issues with the NVMe drives in PineBook Pro.<br />
<br />
{| class="wikitable sortable"<br />
!Type || Make/Model || Size || Hardware IDs || Result || Notes || Power options<br/>Active only || Save<br/>power<br/>setting?<br />
|-<br />
| 2280 || Corsair MP300 || 120 GB || CSSD-F120GBMP300 || good || || PS 0: 3.00W<br/>PS 1: 2.00W<br/>PS 2: 2.00W<br/>PS 3: 0.1W<br/>PS 4: 0.005W<br/>APSTE Disabled by default ||<br />
|-<br />
| 2280 || Corsair MP400 || 1 TB || CSSD-F1000GBMP400R2 || fail || || PS 0: 5.55W<br/>PS 1: 4.49W<br/>PS 2: 3.97W<br/>PS 3: 0.0490W<br/>PS 4: 0.0018W<br/>APSTE Disabled by default ||<br />
|-<br />
| 2280 || Crucial P1 || 1 TB || CT1000P1SSD8 || good || With PS 2 and APST impact on battery life seems to be minimal.<br>Running powerstat seems to confirm little additional power draw. || PS 0: 9.00W<br/>PS 1: 4.60W<br/>PS 2: 3.80W<br/>PS 3: 0.0300W<br/>PS 4: 0.0030W<br/>APSTE: enabled by default || Yes<br />
|-<br />
| 2280 || Crucial P2 || 500GB || CT500P2SSD8 || ok || problems loading from u-boot [http://u-boot.10912.n7.nabble.com/NVMe-boot-issues-on-RockPro64-td424863.html] || PS 0: 3.50W<br/>PS 1: 1.90W<br/>PS 2: 1.50W<br/>PS 3: 0.0700W<br/>PS 4: 0.0020W<br/> APSTE: enabled by default || No<br />
|-<br />
| 2280 || Kingston A2000 || 250 GB || SA2000M8250G || good || || PS 0: 9.00W<br/>PS 1: 4.60W<br/>PS 2: 3.80W<br/>PS 3: 0.045W<br/>PS 4: 0.004W<br/>APSTE: enabled by default || Yes<br />
|-<br />
| 2280 || Kingston A2000 || 1 TB || SA2000M81000G || good || || same as 250 GB || Yes<br />
|-<br />
| 2280 || Kingston KC2500 || 2 TB || SKC2500M82000G || good || PCB too thick for supplied holder nut, used another one || same as A2000 models above || Yes<br />
|-<br />
| 2280 || Kingston NV1 || 250 GB || SNVS/250G || good || Kingston's specifications claim that the 250 GB model consumes 1.5W max, but smartctl/nvme-cli report much higher values. The drive appears to be fully stable. || PS 0: 6.00W<br/>PS 1: 3.00W<br/>PS 2: 1.50W<br/>PS 3: 0.025W (non-op)<br/>PS 4: 0.004W (non-op)<br/>APSTE: enabled by default || Battery drain feels high. Not sure how to confirm APST is really working.<br />
|-<br />
| 2242 || Toshiba OCZ RC 100 || 240 GB || RC100-M22242-240G || good || || ||<br />
|-<br />
| 2242 || Lexar NM520 || 256 GB || LNM520-256RBNA || good ||For some data on power use and performance, see [https://forum.pine64.org/showthread.php?tid=9029 here.] || PS 0: 3.05W<br/>PS 1: 2.44W<br/>PS 2: 2.02W || No. See [https://forum.pine64.org/showthread.php?tid=8737&pid=56481#pid56481 workaround].<br />
|-<br />
| 2280 || XPS SX8200 || 512 GB || ASX8200PNP-512GT-C || good || Performed [https://forum.pine64.org/showthread.php?tid=8322 these] steps for physical installation. Currently rooting from drive. || ||<br />
|-<br />
| 2280 || Intel 660p M.2 || 512 GB || SSDPEKNW512G8X1 || good || PS 1 (2.70W) will work without issues, even under heavy load. Recommended over PS 2, as PS 2 will incur an additional 80% performance penalty. APSTE shows enabled but drive does not support it. || PS 0: 3.50W<br/>PS 1: 2.70W<br/>PS 2: 2.00W || No <br />
|-<br />
| 2280 || Intel 660p M.2 || 1 TB || SSDPEKNW010T8X1 || good || || PS 0: 4.00W<br/>PS 1: 3.00W<br/>PS 2: 2.20W<br/>APSTE Disabled by default || No<br />
|-<br />
| 2280 || Intel 660p M.2 || 2 TB || SSDPEKNW020T8 || good || [https://forum.pine64.org/showthread.php?tid=7524&pid=49300#pid49300 Performance tests results] || PS 0: 5.50W<br/>PS 1: 3.60W<br/>PS 2: 2.60W<br/>PS 3: 0.0300W<br/>PS 4: 0.0040W || No<br />
|-<br />
| 2280 || Intel 760p M.2 || 128 GB || SSDPEKKW128G8 || good || Firmware Revision 004C || PS 0: 9.00W<br/>PS 1: 4.60W<br/>PS 2: 3.80W<br/>PS 3: 0.045W<br/>PS 4: 0.004W<br/>APSTE: disabled by default with 4.4 kernel (mrfixit Debian), enabled by default with 5.6 kernel (Manjaro KDE) || Yes<br />
|-<br />
| 2280 || Intel 760p M.2 || 256 GB || SSDPEKKW256G8 || good || Firmware Revision 004C || PS 0: 9.00W<br/>PS 1: 4.60W<br/>PS 2: 3.80W<br/>PS 3: 0.045W<br/>PS 4: 0.004W<br/>Need to use lower power. || <br />
|-<br />
| 2280 || integral 256GB SSD M.2 2280 NVME || 256 GB || INSSD256GM280NM1 || usable || || PS 0: 9.00W || No<br />
|-<br />
| 2280 || PNY CS1030 || 500GB || CS1030 || good || || PS 0: 4.50W<br/>PS 1: 2.70W<br/>PS 2: 2.16W<br/>PS 3: 0.0700W<br/>PS 4: 0.0050W<br/>APSTE: Enabled||<br />
|-<br />
| 2280 || PNY CS3030 || 1 TB || M280CS3030-1TB-RB || || || PS 0: 10.57W<br/>PS 1: 7.00W<br/>PS 2: 5.22W<br/>PS 3: 0.0490W<br/>PS 4: 0.0018W<br/>APSTE: ||<br />
|-<br />
| 2280 || Samsung 970 EVO Plus || 250 GB || MZ-V7S250BW || fail || Tested on Manjaro-ARM as root drive. Limited to PS 2 and Volatile Write Cache off gives the most stable results, but it will still hang on a hdparm test. || ||<br />
|-<br />
| 2280 || Samsung 970 EVO Plus || 500 GB || MZ-V7S500 || <span style="color: red;">fail</span> || Too power hungry? || PS 0: 6.2W<br/>PS 1: 4.3W<br/>PS 2: 2.1W ||<br />
|-<br />
| 2280 || Samsung 970 EVO || 1 TB || MZ-V7E1T0BW || fail || Too power hungry? || ||<br />
|-<br />
| 2280 || Samsung 970 PRO || 1 TB || MZ-V7P1T0BW || good || || PS 0: 6.20W<br/>PS 1: 4.30W<br/>PS 2: 2.10W<br/>PS 3: 0.04W<br/>PS 4: 0.005W<br/>APSTE: enabled by default || Yes<br />
|-<br />
| 2280 || Samsung 980 || 1 TB || SSD 980 1TB || good || Firmware version 2B4QFXO7 || PS 0: 5.24W<br/>PS 1: 4.49W<br/>PS 2: 2.19W<br/>PS 3: 0.05W<br/>PS 4: 0.005W<br/>||<br />
|-<br />
| 2280 || Silicon Power P34A60 || 1TB || SP001TBP34A60M28 || Usable || Power eager, but doesn't seem to use all 9W all the time, only under heavy I/O || PS 0: 9W || N/A<br />
|-<br />
| 2280 || Silicon Power P34A60 || 256 GB || SPCC M.2 PCIe SSD || detected || ASIN B07ZH6QR8Q "Silicon Power PCIe M.2 NVMe SSD 256GB Gen3x4" / PCIe A60 || PS 0: 6.77W<br/> PS 1: 5.71W<br/> PS 2: 5.19W<br/>APSTE Enabled by default || No<br />
|-<br />
| 2280 || Silicon Power P34A60 || 256 GB || ??? || fail || Isn't detected || ||<br />
|-<br />
| 2280 || Sabrent Rocket || 256 GB || SB-ROCKET-256 || good || || || No<br />
|-<br />
| 2242 || Sabrent Rocket Nano || 512 GB || SB-1342-512 || good* || No touchpad issues, didn't trim NVME adapter board.<br/>(*Might be too power hungry. More testing needed.) || ||<br />
|-<br />
| 2242 || Sabrent Rocket || 1 TB || SB-RKTQ-1TB || good || || PS 0: 5.55W<br/>PS 1: 4.49W<br/>PS 2: 3.97W<br/>PS 3: 0.049W<br/>PS 4: 0.0018W<br/>APSTE: available || Yes<br />
|-<br />
| 2280 || MyDigitalSSD SBXe || 960 GB || || good || || APST enabled<br/>Power states N/A || N/A <br />
|-<br />
| 2280 || HP SSD EX900 || 250GB || || good || No low-power modes available || || <br />
|-<br />
| 2280 || HP SSD EX950 || 512GB || || good || Unsure about low-power modes || || <br />
|-<br />
| 2280 || WD BLUE SN550 || 1TB || WDC WDS100T2B0C-00PXH0 || good || Booted successfully from NVMe (Bionic MATE) || PS 0: 3.50W<br/>PS 1: 2.70W<br/>PS 2: 1.90W<br/>PS 3: 0.0250W<br/>PS 4: 0.0050W<br/>APSTE Disabled by default || N/A <br />
|-<br />
| 2280 || WD Blue SN550 || 500GB || WDC WDS500G2B0C-00PXH0 || good || || PS 0: 3.50W<br/>PS 1: 2.40W<br/>PS 2: 1.90W<br/>APSTE enabled by default with 5.9 kernel (Manjaro XFCE) || No<br />
|-<br />
| 2280 || WD Blue SN500 || 500GB || WDS500G1B0C || fail || Works OK on power state 2 (2.5W), but hangs the system whenever there is intense IO (peak draw) on the drive || ||<br />
|-<br />
| 2242 || WD PC SN520 || 256GB || SDAPMUW-256G-1101 || good || || APSTE enabled by default<br>PS 0: 2.6W<br>PS 1: 2.6W<br>PS 2: 1.7W ||<br />
|-<br />
| 2280 || WD PC SN530 || 256GB || SDBPNPZ-256G-1002 || good || Works on AC power with defaults settings, but causes kernel panics on battery, unlesss limited to PS 1 that fixes this. || APSTE enabled by default<br>PS 0: 3.5W<br>PS 1: 2.4W<br>PS 2: 1.9W || No. Fixed by systemd script, see [https://wiki.pine64.org/wiki/Pinebook_Pro#Post_NVMe_install_power_limiting Wiki].<br />
|-<br />
| 2280 || WD PC SN730 || 512GB || SDBPNTY-512G-1032 || good || No touchpad issues. Works after latest updates. ||APST enabled by default<br/>PS 0: 5.50W<br/>PS 1: 3.50W<br/>PS 2: 3.00W<br/>PS 3: 0.0700W<br/>PS 4: 0.0025W || No<br />
|-<br />
| 2280 || WD BLACK SN750 || 250GB || WDS250G3X0C-00SJG0 || good || No touchpad issues, didn't trim NVME adapter board. || APSTE disabled by default<br/> PS 0: 5.00W<br/>PS 1: 3.50W<br/>PS 2: 3.00W||<br />
|-<br />
| 2280 || WD BLACK SN750 || 500GB || WDS500G3X0C-00SJG0 || good || No tp issues. had to charge battery for 20% initially. || APSTE disabled by default<br/> PS 0: 5.50W<br/>PS 1: 3.50W<br/>PS 2: 3.00W<br/>PS 3: 0.07W<br/>PS 4: 0.0025W||<br />
|-<br />
| 2280 || WD BLACK SN750 || 1TB || WDS100T3X0C-00SJG0 || mixed || Drive works as expected (so far) though with 50% reduction in battery life.<br/><br/>Unable to set power mode (due to APST being enabled?).<br/><br/>Also unable to suspend PineBook Pro with NVMe drive attached. From dmesg:<br/>rockchip-pcie f8000000.pcie: PCIe link enter L2 timeout!<br/>PM: dpm_run_callback(): rockchip_pcie_suspend_noirq+0x0/0x100 returns -110<br/>PM: Devvice f8000000.pcie failed to suspend noirq: error -110<br/>PM: no irq suspend of devices failed<br/> || APST enabled by default<br/> PS 0: 6.00W<br/>PS 1: 3.50W<br/>PS 2: 3.00W<br/>PS 3: 0.1000W<br/>PS 4: 0.0025W || No<br />
|-<br />
| 2242 || KingSpec NE-512 || 512 GB || NE512 || good || || APST enabled<br/>Power states N/A || N/A <br />
|-<br />
| 2230 || Kioxia BG4 256GBTB|| 256 GB || KBG40ZNS256G || good || || APST enabled by default<br/>Power states PS 0: 3.60W<br/>PS 1: 2.60W<br/>PS 2: 2.20W<br/>PS 3: 0.005W<br/>PS 4: 0.005W ||<br />
|-<br />
| 2280 || Patriot P300 || 256 GB || P300P256GM28US || good || Booted successfully with / on NVMe and /boot on eMMC (Armbian Buster) || APSTE disabled by default<br/> PS 0: 4.50W<br/> PS 1: 2.70W<br/> PS 2: 2.16W<br/>PS 3: 0.07W<br/>PS 4: 0.002W||<br />
|-<br />
| 2280 || Team Group MP33 || 128 GB || TM8FP6128G0C101 || good || || ||<br />
|-<br />
| 2280 || Team Group MP34 || 512 GB || TM8FP6512G0C101 || fail ||APST enabled by default and scripts do not change the power mode. <br>Higher power consumption modes cause the PBP to crash<br/> || PS 0 5.55W <br/>PS 1 4.49W<br/>PS 2 3.97W <br/>PS 3 0.0490W <br/>PS 4 0.0018W ||No<br />
|-<br />
| 2280 || Digifast Ace || 256 GB || DGFA256M2L01 || good ||No touchpad issues. Board not trimmed. || PS 0 6.77W <br/>PS 1 5.71W<br/>PS 2 5.19W <br/>PS 3 0.0490W <br/>PS 4 0.0018W ||Yes<br />
|-<br />
| 2280 || Toshiba XG6 || 256 GB || KXG60ZNV256G || good || || PS 0: 6.00W<br/>PS 1: 2.70W<br/>PS 2: 1.30W<br/>PS 3: 0.0500W<br/>PS 4: 0.0050W<br/>PS 5: 0.0030W<br/>APSTE: enabled by default || No<br />
|-<br />
| 2280 || SK hynix Gold P31 gen3x4 || 500 GB || SHGP31-500GM-2 || good || SvenKiljan's arch+towboot with 5.15.8-1-manjaro arm kernel ps1:574.65MB/s (ps0 0.500-2.1GB/s)343 MB/s r/w ps2:63.78-187/45.1 MB/s r/w on encrypted root /tmp || PS 0: 6.30W <br/>PS 1: 2.40W <br/>PS 2: 1.90W <br/>PS 3: 0.0500W <br/>PS 4: 0.0040W<br/>APSTE: enabled || No, see "workaround(cron job+nvme-cli)"<br />
|-<br />
|}<br />
<br />
== microSD Cards ==<br />
{| class="wikitable sortable"<br />
!Type || Make/Model || Hardware IDs || Result || Notes<br />
|-<br />
|SD Card || Samsung Evo Select 512GB || MB-ME512GA/AM || good ||<br />
|-<br />
|SD Card || Samsung Evo Plus 64GB || || good || Hdparm tested 44MBps read speeds<br />
|-<br />
|SD Card || Sandisk Ultra 400GB || || good || Works fine as a storage extension. Mounted for pictures, etc.<br />
|-<br />
|SD Card || Sandisk Ultra 16GB || || fail || Works for a short period of time but locks up completely after a certain amount of written data<br />
|-eMMC<br />
|SD Card || Sandisk Ultra 32GB || || good || Worked fine for booting a live image so I could install an OS onto the integrated eMMC storage<br />
|-<br />
|SD Card || Sandisk Ultra 64GB (Old from 2015) || || fail || ^<br />
|-<br />
|SD Card || Sandisk Ultra Plus 64GB || || good ||<br />
|-<br />
|SD Card || Sandisk Ultra Plus 128GB || || good ||<br />
|-<br />
|SD Card || Sandisk Extreme 64GB || || good || Speeds seem a little slow (67MB/s read compared to 160MB/s rating) but response time and reliability is good<br />
|-<br />
|SD Card || Sandisk Extreme Pro 64GB || || good || <br />
|}<br />
<br />
= USB hardware =<br />
<br />
== USB Card Readers ==<br />
<br />
Standalone card readers only, please; see below for multifunction devices.<br />
<br />
{| class="wikitable sortable"<br />
!Type || Make/Model || Hardware IDs || Result || Notes<br />
|-<br />
|USB-2 SDHC reader || Sandisk MobileMate+ || 0781:b2b3 || good ||<br />
|-<br />
|USB-3 SDHC/CF reader || Transcend TS-RDF8K || 8564:4000 || good ||<br />
|-<br />
|USB-3 SD/Micro SD || Beikell || || good || <br />
|}<br />
<br />
== USB Networking ==<br />
<br />
Standalone network devices only, please; see below for multifunction devices<br />
<br />
{| class="wikitable sortable"<br />
!Type || Make/Model || Hardware IDs || Result || Notes<br />
|-<br />
|USB-2 Fast Ethernet adapter || Realtek RTL8152 || 0bda:8152 || good || <br />
|-<br />
|USB-2 Ethernet adapter || ASIX AX77882 || 0b95:7720 || good || <br />
|-<br />
|USB 3 to Gigabit Ethernet Adapter || Pluggable USB 3.0 to Ethernet Gigabit (ASIX AX88179 chipset) || 0b95:1790 || good ||<br />
|-<br />
|USB WiFi Dongle || TP-Link TL-WN725N || 0bda:8179 || good || RTL8188EUS, Driver=rtl8188eu from MrFixit stock Debian, works better than internal Broadcom, but signal still not great, https://www.amazon.com/gp/product/B008IFXQFU/<br />
|-<br />
|USB WiFi Dongle || Shenzhen Dudes Tech #8541553244 || 0bda:c811 || mixed || plug/play on stock Armbian Buster with driver rtl8821cu; could not get operating driver built on MrFixit Debian or Manjaro KDE Plasma. Works 2x+ better than internal Broadcom on Armbian. https://www.amazon.com/gp/product/B07F595V22/<br />
|-<br />
|USB WiFi Dongle || Edimax EW-7811Un || 7392:7811 || good || Plug and play on Manjaro ARM and stock Debian from official images with driver rtl8192cu. https://www.amazon.com/gp/product/B003MTTJOY/<br />
|}<br />
<br />
== USB Multifunction Devices ==<br />
<br />
{| class="wikitable sortable"<br />
!Type || Make/Model || Hardware IDs || Result || Notes<br />
|-<br />
|USB-C Hub || Samsung EE-P5000 || || Power is passed through from hub to Pinebook Pro; Ethernet, HDMI, and USB-A do not work || <br />
|-<br />
|USB-C Hub || Insignia NS-PU378CHM || || Power is passed through from hub to Pinebook Pro; USB-A works; HDMI does not work || <br />
|-<br />
|USB-C Hub || Dell WD19TB || || Power is passed through from hub to Pinebook Pro; Ethernet and USB-A work; Neither Display Port nor HDMI work; audio not tested || <br />
|-<br />
|USB-C Hub || Totu 8-in-1 || 058f:8468, 2109:0817 USB3, 1a40:0801, 2109:2817 USB2, bda:8153 RTL8153 Gigabit Ethernet || Network, USB, Card Reader, Power Good, HDMI Not Working || Amazon Smile [https://smile.amazon.com/gp/product/B07FX2LW35/]<br />
|-<br />
|USB-C Hub || Delock 87721 || || Network Works, USB Works, Card Reader not tested, Power Good, HDMI Works but does not show as an extra output in X. It just mirrors the default display || Delock 87721 [https://www.delock.de/produkte/G_87721/merkmale.html?setLanguage=en]<br />
|-<br />
|USB-3 combo hub (network, card slots, usb ports) || generic || 05e3:0610 hub, 0bda:8153 gigE, 05e3:0743 card reader || Network good, usb ports good, card reader good ||<br />
|-<br />
|USB-C combo hub (network, card slots, usb ports) || generic || 05e3:0612 hub, 0bda:8153 realtek gigE || Network good, usb ports fail, card reader fail ||<br />
|-<br />
|5-1 USB-C hub || [https://www.aliexpress.com/item/32954358411.html from aliexpress] || 05e3:0626 hub || HDMI, Network, USB-3, USB-C PD [http://www.sympato.ch/~dryak/files/usbc-dock.jpg good] || Might need changing orientation or USB-C cable <br />
|- <br />
|4 Port USB 3 NIC || Delock 62966 || || good || 4 individually controllable Gigabit Ethernet Ports. Consider using it with own power supply<br />
|-<br />
|USB-C combo hub || [https://www.amazon.com/gp/product/B07XKRGQQ2/ from Amazon] || 0c76:161f 0c45:6321 2109:0813 1a40:0101 || good || Everything works: AltMode DP, Ethernet, SD card, USB-A and C, and charging using the stock Debian, and Ubuntu.<br />
|-<br />
|USB-C dock || i-Tec USB-C Metal Nano Dock 4K HDMI w/ LAN || 0bda:0411 hub, 0bda:8153 ethernet || mixed || plug & play with Manjaro, HDMI tested w/ fullHD only, works but only in one polarity. Sound output works, USB hub works. HDMI output may not be recognized by Plasma if dock is connected with HDMI port disconnected. NIC recognized by kernel, but untested if link actually works. USB power delivery works only in one polarity. Unfortunately HDMI works with opposite polarity than USB PD.<br />
|-<br />
|USB-C dock || Planet Computers Gemini USB-C hub || 0bda:0411 hub, 0bda:8153 ethernet || good || USB works, NIC recognized by kernel, but untested if link actually works. Interestingly, dmesg shows unconnected alternate mode DP, but no connector is present. It seems as if PlanetCom actually made custom version of above i-Tec device.<br />
|-<br />
|USB-C dock || DELL USB-C to HDMI/VGA/Ethernet/USB 3.0 DA200g || idVendor=05e3, idProduct=0610, bcdDevice=49.70 || mixed || USB works, detected as u port usb hub, the rest is not working<br />
|-<br />
|USB-C dock || Lenovo ThinkPad 40A9 || 17ef:3063 17ef:1021 17ef:1026 17ef:3060 17ef:3062 17ef:1025 || mixed || USB hub works, audio device works, ethernet device works, display does NOT despite plug's orientation<br />
|-<br />
|USB-C Hub || CableCreation 7-in-1 USB C Hub SKU: CD0786 || 0bda:8153 2109:0817 2109:8888 2109:2817 || mostly || Works, but workaround needed for DP alt-mode. Need to have the hub plugged in, sans passthru charger, on boot. plugging in after boot causes errors in dmesg. Seems to be the exact same hardware as Insignia NS-PUCHUB219<br />
|}<br />
<br />
== USB C alternate mode DP ==<br />
Note that only USB C alternate mode Display Port will pass video. Any HDMI, DVI or VGA port must be converted internally by the device from Display Port - or the device won't work for video.<br />
{| class="wikitable sortable"<br />
!Type || Make/Model || Hardware IDs || Result || Notes<br />
|-<br />
|USB-C to HDMI adapter 201018 || Cable Matters || || good || Tested up to 1080p30, audio works<br />
|-<br />
|USB-C to HDMI adapter || Choetech HUB-H06 || || good || Advertises support for 4K@60Hz, tested up to 1080p@60Hz, worked in both Debian and Manjaro 2020-04-04<br />
|-<br />
|USB-C to HDMI adapter || generic || || good || Tested up to 4k60<br />
|-<br />
|USB-C to DP Adapter || OrxnQ || 04b4:5210 || good || Advertises support for 4K@60Hz, tested up to 1080p. Only FullHD resolutions available on Debian.<br />
|-<br />
|USB-C HDMI adapter (DP-alt mode) || QGeeM || || good || Manjaro 2020-01-25<br />
|-<br />
|USB C Hub to HDMI VGA SD TF Card Reader 3USB 3.0 and USB C Power Pass-Through Port || MOKiN|| || good || tested to 1080p, sdcards can read from one write to another --Manjaro 2020-11-11 https://smile.amazon.com/gp/product/B07MP9P6B7/<br />
|-<br />
|USB-C combo hub (HDMI, network, card slots, USB ports) || generic || || fail ||<br />
|-<br />
|USB-C combo hub (HDMI, VGA, Ethernet, card slots, USB 2 & 3 || Powlaken || 05e3:0610 0bda:8153 || USB, Power, Ethernet and SD good, HDMI and VGA fail<br />
|-<br />
|USB-C Dock (HDMI, VGA, Ethernet, microSD/SD card slots, 2 USB 3 Ports, 1 USB-C Port, USB-Power Passthru || Digitus DA-70865 || || USB, Ethernet and MicroSD/SD good, video crashes System (fail). || Tested on Manjaro w/ Kernel 5.5. You have to turn the USB-C connector upside down for it to work. Video seems to be a driver issue.<br />
|-<br />
|USB-C Dock (HDMI, VGA, Ethernet, microSD/SD card slots, 2 USB 3 Ports, 1 USB-C Port, USB-Power pass-through) || generic || || Ethernet and MicroSD/SD good, USB fail, video up to 1080p. || https://forum.pine64.org/showthread.php?tid=8728<br />
|- <br />
|USB-C Dock (DP, HDMI, 1Gbps Ethernet, SD card slot, 2 USB 3 Ports, USB-C power in port || goFanco || || DP, Ethernet & USB good, (HDMI & SD card untested). Video tested good to 1080p || Tested on default Debian<br />
|-<br />
|USB-C Dock (HDMI, USB 3.0 x 2, USB-C PD Pass Thru Power Port Up to 100W, SD/TF Card Reader || Hiearcool 7-in-1 || || HDMI, USB, Power Port good, SD/TF Reader fail || Default Debian <br />
|-<br />
|USB-C 3.0 Multi-Port Hub (HDMI, USB 3.0 x 1, USB-C charge only) || Linden LITCAD17 || || HDMI and USB good, Power Port fail || Default Debian & ayufan Ubuntu<br />
|-<br />
|USB-C to DP adapter || Nekteck || 04b4:5210 || good || Shows up as "Cypress Semiconductor Corp. Billboard Device" in lsusb and dmesg output. Works in latest Manjaro (as of January 26, 2020) with no issues. Only FullHD resolutions available on Debian.<br />
|-<br />
|USB-C to HDMI adapter || MHL TH002 || || good || Tested at 1080p@60<br />
|-<br />
|USB-C combo hub (USB-C power, HDMI, 2xUSB, 1xUSB-C(no power)) || Baseus || || good<br />
|-<br />
|USB-C Travel Dock with DP ALT-MODE || Targus DOCK411-A || 0835:2a01 (BILLBOARD DEVICE) 0bda:8153 (RTL8153 GbE Adapter) || GbE: works, HDMI: works, USB3.0 port: works, VGA: unknown || HDMI@1080p@60Hz: works OK, HDMI@4K@30Hz: works but buggy. GbE is only picked up when the USB C is plugged in with one certain side facing upwards. It is not detected the other way around. (Sounds weird, but reproduced it multiple times.) <br />
|-<br />
|USB-C to DP adapter || MediaGearPro AC0011 || 2109:0100 (USB 2.0 BILLBOARD) || DP: works || Only 1080p@60Hz is available, 4K resolutions not possible in contrast to what the manufacturer claims. <br />
|-<br />
|USB-C to DP cable || Generic on ebay || || good but with issues || Had some wonky framerates when tested on a 144hz monitor, 60hz mode was actually sent as ~48hz, 120hz mode was actually sent at ~112hz and 144hz mode was actually sent at ~120hz<br />
|-<br />
|UGREEN Hub USB C 9 in 1 HDMI and VGA || UGREEN || || good || VGA and HDMI works but not at the same time. HDMI audio not tested. Switching between HDMI and VGA need to replug the hub.<br />
|-<br />
|USB-C Dock 6-in-1 HDMI || Ugreen 50771 || || HDMI: works, Ethernet: works, 3x USB: works, USB-PD: works || Tested on Manjaro 2020/03/18 Works USB-C PD Chargers provided they can do 5V3A, works with 5V3A USB-C Raspberry Pi 4 power supply (Doesn't work with 5V2A USB-C). No HDMI Audio.<br />
|-<br />
|USB-C to DP cable || [https://www.amazon.es/gp/product/B01N5RFAI4/ CHOETECH V-XCP-0012BK] || || good <br />
|-<br />
| [https://www.apple.com/ca/shop/product/MQ4H2AM/A/thunderbolt-3-usb%E2%80%91c-cable-08-m Thunderbolt 3 (USB‑C) Cable (0.8 m)] || Apple || || Display Port Alternate Mode: Fails, USB-PD: works || Tested on Manjaro 2020/05/29 - Charges but no video<br />
|-<br />
|USB-C to HDMI cable || Planet Computers USB-C to HDMI cable || || fail || does not work regardless of orientation in USB slot<br />
|-<br />
|USB-C combo hub || Moreslan 11in1 (https://www.amazon.fr/gp/product/B08397B66G) || || good || GbE: OK, HDMI: OK, 4 usb ports: OK, Power via USB-C: OK, microSD: OK, TFT: OK, Jack: OK, VGA: Not tested; UPDATE: HDMI Display not working anymore since Manjaro release 20.08<br />
|-<br />
|USB-C Multiport Adapter || [https://www.wentronic.com/en/usb-ctm-multiport-adapter-hdmi-ethernet-pd-white-62105 Goobay 62105] || || Fail || GbE: OK, UBS port: OK, Power via USB-C: OK, HDMI: Does generate an image, but it jumps X pixels right from time to time (4K@30 and FHD)<br />
|-<br />
| USB Type-C to HDMI Adapter || Insignia NS-PU369CH-WH || 0bda:5400|| good || tested on kernel 5.5.0, video out works, audio not tested<br />
|-<br />
| Portable USB Display || UPerfect 15.6 inches 1080P Portable Monitor Stand for Mobile Touchscreen (https://www.uperfectmonitor.com/collections/15-6-inches-portable-monitor/products/15-6-inches-1080p-portable-monitor-stand) || || Power via USB-C: works, DP-Alt video: works, Touchscreen fails || Tested on armbian on 20210820<br />
|}<br />
<br />
== USB other ==<br />
{| class="wikitable sortable"<br />
!Type || Make/Model || Hardware IDs || Result || Notes<br />
|-<br />
|Wireless Mouse || Logitech M705 Marathon || || good || Uses Logitech receiver. Battery level detected in power settings.<br />
|-<br />
|Wireless Mouse || Logitech G305 || || good || Uses Logitech receiver<br />
|-<br />
|Gamepad || Sertronics SNES Style Controller || || good || Tested in retroarch, Sertronics is also known as Berrybase<br />
|-<br />
|Drawing tablet || XP Pen G430s || 28bd:0913 || good || Hardware works, official software not used, tablet was configured using udev rules which are more functional than official software anyway<br />
|-<br />
|Yubikey original || Yubico || 1050:0010 || good ||<br />
|-<br />
|}<br />
<br />
----<br />
<br />
= Bluetooth hardware =<br />
{| class="wikitable sortable"<br />
!Type || Make/Model || Hardware IDs || Result || Notes <br />
|-<br />
|Bluetooth Headphones || COWIN SE7 Noise Cancelling Headphones || || good || Pairs and plays audio with stock Debian OS. More detail [https://forum.pine64.org/showthread.php?tid=8192&pid=60682#pid60682 here].<br />
|-<br />
|Bluetooth Headphones || DO-SV-BTIES03 || || good || Tested on Manjaro ARM - kde<br />
|-<br />
|Bluetooth Headphones || JBL LIVE400BT || || good || Connect very rapidly. Sometimes there is some sort of lagging to the sound stream, fix includes disconnecting them from Bluetooth and turning them off. Sound quality is good.<br />
|-<br />
|Bluetooth Headphones || JBL LIVE650BTNC || || good || Have 2, both connect very rapidly. Sometimes there is some sort of lagging to the sound stream, fix includes disconnecting them from Bluetooth and turning them off. General sound quality is good.<br />
|-<br />
|Bluetooth Headphones || Sony WH-1000XM2 || || good* || Needs pulseaudio-module-bluetooth. *Recording untested.<br />
|-<br />
|Bluetooth Headset || BlueAnt Ribbon || 7252A-RB || good || a2dp mode works, headset mode seems to work, out of box with manjaro<br />
|-<br />
|Bluetooth Headset & USB Audio || Sony SBH90C || || good || Works well connected via USB Type-C and Bluetooth.<br />
|-<br />
|Bluetooth Headset || TaoTronics TT-BH090 || || good || Microphone not tested but should work as expected of a normal Linux machine<br />
|-<br />
|Bluetooth Keyboard || Logitech MX Keys || || good || Battery level is not detected over bluetooth, detected when using the logitech receiver<br />
|-<br />
|Bluetooth Mouse || Fenifox low profile || MX106-Black || good ||<br />
|-<br />
|Bluetooth Mouse || HP Z5000 || E5C13AA || good || <br />
|-<br />
|Bluetooth Mouse || Logitech M535 || 910-004432 || good ||<br />
|-<br />
|Bluetooth Mouse || Logitech M557 || || good || <br />
|-<br />
|Bluetooth Mouse || Logitech MX Anywhere 2 || || good ||<br />
|-<br />
|Bluetooth Mouse || Logitech MX Ergo || || good || Works flawlessly both on Manjaro and Armbian.<br />
|-<br />
|Bluetooth Mouse || Logitech MX Vertical || || good || Battery level is not detected over bluetooth, detected when using the logitech receiver<br />
|-<br />
|Bluetooth Mouse || Logitech Triathlon M720 || || good ||<br />
|-<br />
|Bluetooth Mouse || Logitech Ultra-Thin Touch Mouse || || good || Detects battery level as "keyboard"<br />
|-<br />
|Bluetooth Mouse || Media-tech || MT1120 BT5.2 || good ||<br />
|-<br />
|Bluetooth Mouse || Microsoft Bluetooth Mouse || RJN-00002 || good ||<br />
|-<br />
|Bluetooth Mouse || Technet || MGS479 || good ||<br />
|-<br />
|Bluetooth Speaker || Ivation Acoustix || || good || Use audio sink profile<br />
|-<br />
|Bluetooth Speaker || JBL Clip 3 || || good || Works fine in Kali<br />
|-<br />
|Bluetooth Trackball Mouse || Elecom Deft Pro Wired / Wireless / Bluetooth Trackball || || good || Main buttons (left, right, forward, back, scroll wheel, trackball itself work flawlesly, but without elecom software additional buttons do not work. Works in all 3 modes - wired, with wireless USB dongle and in Bluetooth mode.<br />
|-<br />
|Bluetooth Trackball Mouse || Kensington Expert Wireless Trackball || || good ||<br />
|}<br />
<br />
----<br />
<br />
= Other hardware =<br />
<br />
{| class="wikitable sortable"<br />
!Type || Make/Model || Hardware IDs || Result || Notes<br />
|-<br />
|[https://www.aliexpress.com/item/32831647303.html USB charging cable] || - || - || good || Got the cable a while back so may not be identical to current product<br />
|-<br />
|Printer || HP DeskJet Ink Advantage 3775 || || good* || Using hplip-gui: via USB and WiFi. *Only print function tested.<br />
|-<br />
|Printer || Samsung Xpress SL-M2026w Laser Printer || || not working || Was not able to make it work due to the lack of drivers.<br />
|}<br />
<br />
[[Category:PineBook Pro]]</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=NASCase&diff=12687NASCase2022-03-21T08:42:28Z<p>Mrgtwentythree: add case physical size info (from store page)</p>
<hr />
<div>The PINE64 NAS Case is intended for either a Network Attached Storage (NAS) or Desktop application, but it can also be used in a number of other server capacities. It is built from precision-cut and powder-coated aluminum. The physical dimensions are 232.4mm (Width) x 105.0mm (Height) x 145.2mm (Depth).<br />
<br />
An exploded view of the NAS Case, illustrating how all the components come together, can be found [http://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf here]. Please refer back to this PDF document during assembly to verify correct orientation of individual components. <br />
[[file:NASCaseMain.png|400px|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]<br />
<br />
==What does the NAS Case house?== <br />
[[File:NAS_Case_internals.jpg|200px|thumb|left|Internal Layout of the NAS Case]]<br />
<br />
The NAS Case can house the following components: <br />
*A ROCKPro64 Single Board Computer (SBC) with a tall, mid-size or slim/ no heatsink<br />
*A PCIe to dual SATA adapter or a different low-profile PCIe card, e.g. an NVMe adapter<br />
*Either two 3.5” OR two 2.5” HDDs / SSDs; combination of any two sized drives is accepted <br />
*A 80mm fan with a Ph 2-Pin connector<br />
*Up to three SMA antennas, two of which can be attached to the WiFi/ BT module<br />
<br />
<br />
<br />
<br />
==What comes in the box?==<br />
When you purchase the NAS Case from the PINE store the following items are shipped to you: <br />
*The NAS Case itself, which consists of a top and a bottom half as well as an internal HDD SSD mount. <br />
*Two SATA cables <br />
*A custom power cable capable of powering two 2.5” or 3.5” HDDs /SSDs<br />
*The required screws, fittings and a LED relay<br />
<br />
==What other bare-minimum things do I need for a NAS build?==<br />
[[File:PCIetoSATA.png|200px|thumb|right|You will need the PCIe to SATA adapter from the PINE64 store to connect your disks to your ROCKPro64 board. [https://forum.pine64.org/showthread.php?tid=6932 '''WARNING''': this adapter does not] [https://forum.pine64.org/showthread.php?tid=6511 work well with two HDD!]]] <br />
To assemble a functional NAS in the NAS Case you will require a number of additional parts. <br />
With the exception of HDDs/SSDs, everything you need for a complete build can be purchased from the PINE store:<br />
*A ROCKPro64 2GB or 4GB board<br />
*A 12V 5A power supply <br />
*A PCIe to dual SATA adapter: [https://forum.pine64.org/showthread.php?tid=6932 '''WARNING''', the SATA adapter from PINE64 store is low-quality and] [https://forum.pine64.org/showthread.php?tid=6511 will not function well with two SATA HDD].<br />
*One or two 2.5”/ 3.5” HDDs (not sold in the PINE store).<br />
*A class 10 micro SD card and/or eMMC module.<br />
<br />
You can purchase all the aforementioned items in the [https://www.pine64.org/?post_type=product PINE64 store]<br />
<br />
<br />
==What other things should I consider buying for a NAS build in the NAS Case?==<br />
There are a few other things which you may wish to consider purchasing for your NAS. These peripherals, while not necessary from an operational standpoint, may contribute to the longevity and stability of your NAS’ operation OR expand it with additional functionality: <br />
* An eMMC to USB 2.0 adapter<br />
* A tall heatsink (N.B. Any of the three available heatsinks will fit in the NAS Case)<br />
* An 80mm fan<br />
* The WiFi / BT module<br />
<br />
(The fan and heatsink are highly recommended)<br />
<br />
==Which software should I use?==<br />
[[File:OMVGUI.png|200px|thumb|right|The OMV WebGUI is easy to understand but also very robust. It offers easy installation of plugins, system administration and overview of available services]]<br />
If you are intending to build a home or small company NAS, then we strongly recommend you use [[ROCKPro64_Software_Release#OpenMediaVault|Open Media Vault (OMV)]]. OMV is an open source NAS solution that makes setting up user accounts, network shares and services a breeze. It also simplifies installing additional features (called plugins), such as: PLEX media server; Remote Desktop; Encryption; RSync; etc.<br />
<br />
Its worth noting that Nextcloud, or other similar Cloud storage solutions, can also be easily installed alongside the OMV OS Image. <br />
<br />
Administration and monitoring of OMV is done via an advanced WebGUI, which also allows for updating and upgrading the ROCKPro64. <br />
To learn more about OMV please visit [https://www.openmediavault.org/ their website]. <br />
<br />
To download the latest OMV build OR one of the numerous available Linux Distribution OS Images please visit the [[ROCKPro64_Software_Release|ROCKPro64 OS download section]].<br />
<br />
==Step-by-Step Assembly Instructions==<br />
<br />
If you prefer a video tutorial or just want an overview of the process before you start [http://www.youtube.com/watch?v=_UeeklKo0Og check out this instructional video].<br />
<br />
===Step 1. Preparation of the NAS Case for Installation===<br />
Remove the top of the NAS Case. It is held together by two screws on either side with the exception of the bottom (left, right, top and back). Once done, the top of the case should lift right off without any resistance. <br />
<br />
The next step is to remove the HDD/SSD holding bracket, which is screwed into the bottom of the case. Flip the bottom over and undo the screws which hold the bracket in place.<br />
<br />
You should now be left with a bare case ready for installation of the necessary components. <br />
<br />
===Step 2. Installing the ROCKPro64 into the NAS Case===<br />
[[File:ROCKPro64inNASCase.jpg|300px|thumb|right|Correct Placement of the ROCKPro64 in the empty case, with Ethernet; Power; and HDMI at the back of the NAS Case]]<br />
[[File:FrontIO.png|300px|thumb|left|Front IO with IR and LED relay installed]]<br />
Make sure nothing is plugged into your ROCKPro64 - including a micro SD card. <br />
If you intend to use a heatsink with your board then please install it now before proceeding. If you bought the heatsink from the Pine64 store it comes with thermal paste and/or a thermal pad. You can use one or the other (not both!). The thermal pad is easier to apply but the thermal paste should be better at cooling if properly applied.<br />
<br />
Place your ROCKPro64 into the case with USB 2.0 and 3.0/C ports facing the front of the case. It should fit snugly and align with the port cut-outs in the case. Do not attempt at installing the board at an angle; insert it while holding it level and lowering it into the case.<br />
<br />
Secure the board with 4x screws included in the see-through bag. Make sure that the board is held firmly in the case but do not overtighten the screws. <br />
<br />
In the see-through bag you will also find a small semi-opaque plastic cylinder. This is the LED light lead and it should be installed from the outside of the case into the hole right over the reset (RST) switch. Simply press it into the hole until it sits tight. <br />
<br />
If you wish to install an IRx receiver into your case then you should also place it into the IR socket at this stage. It should align with the cutout right above the power (PWR) switch.<br />
<br />
===Step 3 PCIe to SATA adapter and Cabling===<br />
[[File:DC_Location.jpg|200px|thumb|left|DC header on the ROCKPro64 for the power cable]]<br />
[[File:PCIeFittedSATAsockets.png|200px|thumb|right|PCIe to SATA installed. Note the SATA connection orientation]]<br />
With the board in place it's time to set up the PCIe to SATA adapter and do the cabling necessary to attach HDDs / SSDs. <br />
<br />
Place the SATA Adapter into the PCIe slot on the ROCKPro64 board so that the holding bracket of the adapter faces the back of the case. In the back of the case there is a cutout for the PCIe adapter; some<br />
variants of the PCIe dual SATA adapter can be configured for eSATA if need be, and the eSATA ports are accessible in the back of the case. By default, the internal SATA connectors are active on the adapter. <br />
<br />
Secure the PCIe dual SATA Adapter with a single screw at the top of the bracket, in the back of the NAS Case.<br />
<br />
This is the right time to plug in the SATA and custom power cable. The SATA cables plug into the ports on the top or front of the adapter while the power cable plugs into DC header located on the board - just below the power jack, to the left of the Ethernet port (when viewed from front). <br />
<br />
Have the cables hang outside the case or to the side for now so that they do not get in the way until they are needed.<br />
<br />
<br />
<br />
===Step 4. Installing HDDs / SSDs into the Holding Bracket===<br />
[[File:Bracket_Orientation.png|300px|thumb|left|Bracket Orientation in the NAS Case]]<br />
The next step is to install HDDs/ SSDs into their holding bracket; 2.5” drives need to be installed at the very bottom of the bracket while 3.5” drives are at the top of the the bracket.<br />
<br />
For 2.5” drives make sure that the drives are oriented up and their SATA and power ports face the front of the NAS Case.<br />
<br />
For 3.5” HDDs, make sure they are oriented up and their SATA and power ports face the right side of the NAS Case (towards the fan mounting location). <br />
<br />
Each drive you mount in the holding bracket requires 4x screws which come supplied in the see-through bag. Make sure the drives are held in place firmly but do not over-tighten the screws. <br />
<br />
Once the holding bracket is assembled and you have your drives mounted, please set it aside and proceed to the next step.<br />
<br />
<br />
<br />
===Step 5. Installing Extras (eMMC; WiFi BT module + SMA Antennas; 80mm Fan)===<br />
[[File:80mmfan.png|200px|thumb|right|The 80mm fan is a worthwhile addition to the NAS Case build]]<br />
If you have additional peripherals, such as an eMMC or WiFi/BT module as well as the 80mm fan, then now is the right time to install them. If you have '''none of the above''', please '''proceed to step 6''' of this guide. <br />
<br />
The eMMC and WiFi/BT modules are fitted into their respective placements on the ROCKPro64 board - please consult the diagram for their correct installation.<br />
<br />
If you intend to use external u.FL to SMA antennas in the NAS Case then this is also the time to install them into the case. In the back section of the case at the very top you will find three cut-outs where the SMA antennas can be fitted. Don’t plug the u.FL leads antenna leads into the WiFi/BT module just yet - instead wait until after the disk holding bracket is installed into the case (step 6).<br />
<br />
The fan should be mounted on the right-hand side of the case. We suggest that the fan is oriented for negative pressure, blowing air out of the case rather than taking air in. ([[User:AlephNull]] disagrees and recommends a positive pressure configuration both to allow a filter to be placed over the intake to prevent dust ingress and because the cage on the outlet side of the fan helps keep the wiring for 3.5" disks away from the fan blades). For best cable management results, have the fan power lead face the front of the case so that it can easily be routed to its header located next to GPIO pins on the ROCKPro64. <br />
The fan should be secured using 4x long screws (that fasten into bolts) which can be found in the see-through bag supplied with the NAS Case. <br />
Plug in the fan at this stage of the installation and route the cable at the bottom of the front of the case.<br />
<br />
===Step 6. Installing the HDD / SSD Bracket and Routing Cables===<br />
[[File:NASCAsewithdrives.jpg|300px|thumb|right|Complete assembly of the NAS Case]]<br />
[[File:TopViewAssembly.png|300px|thumb|right|Top view of a complete NAS Case Assembly]]<br />
Installing the HDD/SSD bracket into the case and wiring it up is the last step before closing up the case. <br />
<br />
Place the bracket with the disks installed (from step 4) into the case. The bracket should line up with the guiding bolts and screw holes at the bottom of the case. The section of the bracket that holds 3.5” HDDs needs to face the left side of the case (when viewed from front) and should overhang the ROCKPro64 board slightly. The 3.5” SATA and power ports should face the right side of the case - where the fan mounts, while 2.5” SATA and power ports should face the front of the case. <br />
<br />
With the bracket aligned, flip the bottom of the case over while holding the bracket in place. Screw it into place using 4x Phillips head screws that came included with the NAS Case. <br />
<br />
The last thing remaining before the NAS Case can be screwed shut is routing SATA and power cables: <br />
For 3.5” HDDs we suggest routing power and SATA cables underneath the drives, where 2.5” HDDs/SSDs would otherwise reside.<br />
<br />
For 2.5” disks you have plenty of routing options as there is much space available. The most obvious route is straight over the disks, where the 3.5” HDDs would reside.<br />
<br />
===Step 7. Closing the NAS Case and Powering On your NAS===<br />
<br />
Almost there. All that's left to do is to screw together the NAS Case. Screw in the top front screws first followed by screws on either side of the case. Do the back screws last. There, you are done.<br />
<br />
To power on your new NAS Case and HDDs all you need to do is to plug in power and Ethernet (This is obviously assuming that you are intending to use it as a NAS or a headless server).<br />
<br />
==IO accessibility when the NAS Case is assembled==<br />
<br />
When the NAS Case is assembled and screwed shut these ROCKPro64 IO ports remain accessible:<br />
* Micro SD slot <br />
* USB 2.0<br />
* USB 3.0 and USB type C<br />
* Power and Reset switches<br />
* The headphone and microphone jack <br />
* Gigabit Ethernet port<br />
* HDMI<br />
<br />
[[Category:ROCKPro64]]</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=ROCKPro64&diff=12623ROCKPro642022-03-06T09:22:37Z<p>Mrgtwentythree: explicitly list the rockpro64 rtc jack/location. the accessories page has a pdf for a64...</p>
<hr />
<div><div style="float: right; margin-left: 1ch; max-width: 24em;">__TOC__</div><br />
<br />
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.<br />
<br />
Key features include a PCIe x4 open ended slot, the use of LPDDR4 RAM, and industry standard heatsink mounting holes.<br />
<br />
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.<br />
<br />
= Board Layout =<br />
[[File:ROCKPro64_annotated.jpg]]<br />
<br />
<div style=float:right>[[File:ROCKPro64v21FRONT.jpg|200px|thumb|right|A hi-res picture of v2.1 front]][[File:ROCKPro64v21REAR.jpg|200px|thumb|right|A hi-res picture of v2.1 rear]]</div><br />
<br />
== Main Chips ==<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM 1 (18)<br />
* LPDDR4 SDRAM 2 (3)<br />
* SPI NOR flash memory (17)<br />
* RK808 power management (near 19)<br />
* RTL8211 ethernet transceiver (near 25)<br />
* ES8316 Sound Codec (on rear of board)<br />
* The heatsink mounting holes around the RK3399 are 59 mm apart<br />
<br />
== Switches ==<br />
<br />
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.<br />
<br />
The Reset button (10, SW901): perfoms a reset.<br />
<br />
The Recover button (28, SW900): used to enter maskrom mode.<br />
<br />
== Connectors, Sockets and Headers ==<br />
{| class="wikitable sortable" style="line-height: 1.4;"<br />
|- style="font-size: .9em;"<br />
! Diagram !! Schematic<br>designator !! Silkscreen<br>label !! Number<br>of pins !! Description<br />
|-<br />
| style="text-align: center;" | 2 || U39 || PI-2-bus || style="text-align: center;" | 40 || Pi-2 bus <br />
|-<br />
| style="text-align: center;" | 4 || J8 || +FAN- || style="text-align: center;" | 2 || PWM controlled fan header<br />
|-<br />
| style="text-align: center;" | 5 || J10 || SPDIF || style="text-align: center;" | 3 || SPDIF header<br />
|- <br />
| style="text-align: center;" | 6 || U6 || +RTC- || style="text-align: center;" | 2 || RTC battery backup header<br />
|-<br />
| style="text-align: center;" | 7 || U31 || Wifi-BT || style="text-align: center;" | 16 || SDIO WIFI/BT module-MIMO 2<br />
|-<br />
| style="text-align: center;" | 8 || USB3 || || style="text-align: center;" | 9 || USB-3 and USB Type C<br />
|-<br />
| style="text-align: center;" | 9 || USB1 || || style="text-align: center;" | 2×4 || Dual USB-2<br />
|-<br />
| style="text-align: center;" | 12 || IR1 || IR || style="text-align: center;" | 3 || infrared receiver socket <br />
|-<br />
| style="text-align: center;" | 13 || J16 || Headphone+mic || style="text-align: center;" | 4 || Headphone + mic 3.5mm jack<br />
|-<br />
| style="text-align: center;" | - || CON16 || GND PWR RST GND || style="text-align: center;" | 4 || Power & reset, unpopulated<br>header near Headphone jack<br />
|-<br />
| style="text-align: center;" | 14 || U29 || EMMC || style="text-align: center;" | 34 || eMMC connector<br />
|-<br />
| style="text-align: center;" | 14* || J13 || || style="text-align: center;" | 13 || TF-card, a.k.a. microSD<br>(* under 14 on the bottom side)<br />
|-<br />
| style="text-align: center;" | 15 || U30 || || style="text-align: center;" | 14 || SDIO WIFI/BT module-MIMO 1<br />
|-<br />
| style="text-align: center;" | 16 || SW4 || || style="text-align: center;" | 2 || Jumper to [[#Disable eMMC]]<br />
|-<br />
| style="text-align: center;" | 19 || J15 || PCI || style="text-align: center;" | 64 || PCI-express X4 socket<br />
|-<br />
| style="text-align: center;" | 20 || J21 || DSI || style="text-align: center;" | 30 || DSI<br />
|-<br />
| style="text-align: center;" | 21 || J22 || EDP || style="text-align: center;" | 30 || LCD EDP<br />
|-<br />
| style="text-align: center;" | 22 || CON1 || TP || style="text-align: center;" | 6 || touch panel connector<br />
|-<br />
| style="text-align: center;" | 23 || CON15 || || style="text-align: center;" | 4 || DC out for SATA disk cable<br>(direct connect from DC-IN)<br />
|-<br />
| style="text-align: center;" | 24 || J11 || DC-IN || style="text-align: center;" | 2 || Power input, positive tip;<br>12V/3A (minimum) recommended<br />
|-<br />
| style="text-align: center;" | 25 || U32 || || style="text-align: center;" | 8 || RJ45<br />
|-<br />
| style="text-align: center;" | 26 || J14 || || style="text-align: center;" | 19 || HDMI<br />
|-<br />
| style="text-align: center;" | 27 || J17 || MIPI CAM || style="text-align: center;" | 32 || MIPI-1<br />
|-<br />
| style="text-align: center;" | 29 || J19 || MIPI CAM || style="text-align: center;" | 32 || MIPI-2<br />
|-<br />
| style="text-align: center;" | 30 || J18 || CIF || style="text-align: center;" | 26 || CIF<br />
|}<br />
<br />
== LEDs ==<br />
<br />
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.)<br />
<br />
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.)<br />
<br />
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.<br />
<br />
Yellow and green LEDs on the LAN socket behave in a standard way.<br />
<br />
== Jumpers ==<br />
They are used for boot device selection, as described in the following section.<br />
<br />
=== Disable eMMC ===<br />
<br />
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:<br />
<br />
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).<br />
<br />
The possible combinations are summarised in the table below.<br />
<br />
* 1 = present<br />
* 0 = not present<br />
<br />
{| class="wikitable sortable" style="text-align: center;"<br />
! µSD !! eMMC !! SW4 !! boot from<br />
|-<br />
| 0 || 0 || 0 || unsupported<br />
|-<br />
| 0 || 0 || 1 || unsupported<br />
|-<br />
| 0 || 1 || 0 || eMMC<br />
|-<br />
| 0 || 1 || 1 || unsupported<br />
|-<br />
| 1 || 0 || 0 || SDCard<br />
|-<br />
| 1 || 0 || 1 || SDCard<br />
|-<br />
| 1 || 1 || 0 || eMMC<br />
|-<br />
| 1 || 1 || 1 || SDCard<br />
|}<br />
<br />
=== Disable SPI (while booting) ===<br />
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.<br />
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.<br />
<br />
= Getting Started =<br />
<br />
This section gives important information to get the board up and running.<br />
<br />
== Software and OS Image Builds ==<br />
<br />
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 to load each image.<br />
<br />
The page includes many OS images and descriptions. Some links:<br />
<br />
* [[ROCKPro64_Software_Release#Armbian | Armbian]]<br />
* [[ROCKPro64_Software_Release#Debian | Debian]]<br />
* [[ROCKPro64_Software_Release#DietPi | DietPi]]<br />
* [[ROCKPro64_Software_Release#OpenMediaVault | Open Media Vault]]<br />
* [[ROCKPro64_Software_Release#LibreELEC_.28KODI.29 | LibreELEC for KODI]]<br />
* [[ROCKPro64_Software_Release#Slackware | Slackware]]<br />
* [[ROCKPro64_Software_Release#NextCloudPi | NextCloudPi]]<br />
* [[ROCKPro64_Software_Release#Manjaro_ARM | Manjaro ARM]]<br />
* [[ROCKPro64_Software_Release#OpenWrt | OpenWrt]]<br />
<br />
Those linked OS support both microSD and eMMC Boot.<br />
<br />
Please see the [[NOOB]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.<br />
<br />
== More Advanced Linux Bits ==<br />
<br />
Some Linux tips are given below.<br />
<br />
=== How to Update Your Linux ===<br />
<br />
For Debian/Ubuntu images entering the following commands at a terminal prompt<br />
<br />
<code>sudo apt-get update</code><br><br />
<code>sudo apt-get upgrade</code><br />
<br />
will keep your installation up to date. To update Ayufan images to the next release (when available) use the following command<br />
<br />
<code>sudo apt-get dist-upgrade</code><br />
<br />
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.<br />
<br />
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).'''<br />
<br />
=== Useful Scripts ===<br />
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)<br />
<br />
=== Video Playback ===<br />
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<br />
<br />
<code>sudo apt-get install ffmpeg mpv libmali-rk-midgard-t86x-r14p0-gbm</code><br />
<br />
(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<br />
<br />
=== Swapping Kernel Versions ===<br />
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.<br />
<br />
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).<br />
<br />
=== Using an NVMe Disk as rootfs ===<br />
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.<br />
<br />
== More advanced bits related to any OS ==<br />
<br />
This section gives some hints for advanced users.<br />
<br />
=== Setup a Serial Console (UART)===<br />
<br />
{{warning|1=Do not connect RxD (pin 10) until the U-Boot SPL is running (see [[RK3399 boot sequence]]) or the SPL will not start}} <br />
<br />
The early adopters (and late-comers who fiddle excessively with their boards or don't want to use a keyboard and monitor) have a need to monitor the low-level boot behaviour: this is done with a serial console.<br />
The console is a 3.3v serial port using pins 8 (TxD from RK3399) and 10 (RxD to RK3399) of U39 (the PI-2 bus), with pin 6 as a convenient ground, running at 1500000,N,8,1 (1.5Mbps).<br />
<br />
There is a great, detailed description how to get this working specifically on the ROCKPro64 [https://forum.pine64.org/showthread.php?tid=6387 here].<br />
<br />
=== Booting from USB or PXE ===<br />
<br />
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.]]<br />
<br />
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.]]<br />
<br />
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.]<br />
<br />
<br />
=== Booting from SPI using u-boot ===<br />
<br />
{{warning|1=idbloader is not open-source}}<br />
{{warning|do not attempt to flash SPI if you are not prepared to recover from a broken bootloader on SPI. We get a lot of support requests in the chat channels from people who managed to flash something broken on their SPI flash and now don't know how to recover from this. You have been warned.}}<br />
<br />
Follow instructions in https://github.com/sigmaris/u-boot/wiki/Flashing-U-Boot-to-SPI#instructions-for-rockpro64<br />
<br />
=== Boot sequence ===<br />
<br />
The RockPro64 boot sequence has been documented [https://github.com/sigmaris/u-boot/wiki/RockPro64-boot-sequence here] by sigmaris.<br />
<br />
=== OTG Mode ===<br />
<br />
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.<br />
<br />
The method is to power off the board. Then push and hold the Recover button and push and release the Power button. <br />
* 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.<br />
* 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.<br />
<br />
=== NVMe Drives ===<br />
Please be aware that [https://pine64.com/product/rockpro64-pci-e-x4-to-m-2-ngff-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.]<br />
<br />
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.]<br />
<br />
=== SATA Drives ===<br />
SATA drives can be connected directly via the [https://pine64.com/?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://pine64.com/?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.<br />
<br />
ExplainingComputers did a YouTube [https://www.youtube.com/watch?v=9CCQicHwfDI ROCKPro64 PCIe SATA card review and tests using a Ubuntu console and OpenMediaVault.]<br />
<br />
=== Wi-Fi & Bluetooth Module ===<br />
If you have bought the [https://pine64.com/product/rockpro64-1x1-dual-band-wifi-802-11ac-bluetooth-5-0-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 Ayufan's 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.'''<br />
<br />
It can also be used on Manjaro by installing ap6256-firmware and wireless-regdb packages.<br />
<br />
=== 7" LCD Touch Screen ===<br />
Instructions for connecting the [https://pine64.com/?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.]]<br />
<br />
'''Note at present (August 2018) this screen is only supported by the Android image.'''<br />
<br />
{{warning|1= When using the touchscreen ensure the cables are properly connected and tightened down and that you do not let the metal backplane touch the SBC}}<br />
<br />
=== RTC Battery Backup ===<br />
The Pine store has a couple of options for RTC battery backups: a [https://pine64.com/product/rtc-backup-battery-holder-2-x-aaa AAA version here] or a [https://pine64.com/product/rtc-backup-battery-holder-cr-2032 CR-2032 version here.] Instructions for plugging in either of them are also on the [[ Accessories_Step_by_Step_Guides| Accessories page ]]. For the ROCKPro64, the backup plugs into the RTC connector, number 6 in the board layout diagram above, next to the USB3 and case screw point.<br />
<br />
=== Acrylic Open Enclosure ===<br />
Assembly instructions for the [https://pine64.com/product/pine-a64-rockpro64-acrylic-open-enclosure acrylic enclosure] from the Pine store are also on the [[ Accessories_Step_by_Step_Guides| Accessories page ]]<br />
<br />
=== NAS case ===<br />
The [https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf Exploded View Installation Diagram] for the [https://pine64.com/product/rockpro64-metal-desktop-nas-casing NAS case from the Pine store].<br />
<br />
Detailed '''NAS Case overview and assembly instructions''' can be found [[NASCase | here]].<br />
<br />
= [[ROCKPro64_Hardware_Accessory_Compatibility|Hardware Compatibility]] =<br />
== Hardware Compatibility Page ==<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the rockpro64, whether successful or not.<br />
<br />
* [[ROCKPro64_Hardware_Accessory_Compatibility#PCIe devices|PCIe devices]]<br />
* [[ROCKPro64_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[ROCKPro64_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[ROCKPro64_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[ROCKPro64_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
<br />
== Limitations ==<br />
=== Older firmware overwrites actively used memory ===<br />
Some people get system freeze when:<br />
* use SATA disk with ROCKPro64 PCIe card. (maybe on newer PCIe card ASM1062 vs ASM1061)<br />
* or do read or write 4GB to the flash. (not using PCIe)<br />
<br />
If you connect the serial console you will see a Linux kernel oops: (a)synchronous external abort.<br />
<br />
Both issues are in fact the same software BUG. There is no hardware problem.<br />
Currently, most OS do use uboot with a rockpro blob FW which use memory that Linux kernel is not aware of. <br />
<br />
People are currently fixing this BUG, but it may take some time.<br />
In the mean time, you can fix it manually.<br />
<br />
The latest u-boot can boot the rockpro64 without any blobs from rockchip.<br />
Install first arm-none-eabi-gcc and aarch64-linux-gnu-gcc compiler, then run the following commands:<br />
<br />
git clone https://github.com/ARM-software/arm-trusted-firmware.git atf<br />
make -C atf CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 bl31<br />
git clone https://gitlab.denx.de/u-boot/u-boot.git u-boot<br />
cd u-boot/<br />
git checkout v2020.01-rc5<br />
make rockpro64-rk3399_defconfig<br />
BL31=../atf/build/rk3399/release/bl31/bl31.elf make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-<br />
<br />
Which gives you idbloader.img and u-boot.itb.<br />
Copy them to the rockpro64, and run the following: (Or put your SD card into your PC)<br />
<br />
sudo dd if=idbloader.img of=/dev/mmcblk0 seek=64<br />
sudo dd if=u-boot.itb of=/dev/mmcblk0 seek=16384<br />
sync<br />
<br />
=== PCIe Controller Hardware Error Handling Bug ===<br />
There is an issue with the rk3399 pcie controller that is currently unmitigated:<br />
* [https://lore.kernel.org/linux-pci/CAMdYz...gmail.com/ LKML Original Thread]<br />
* [https://lkml.org/lkml/2020/4/6/320 LKML Additional Information]<br />
<br />
The rk3399 pcie controller throws either a synchronous abort or a SError when a pcie device sends an unknown message.<br />
<br />
The error type is determined by which cpu cluster handles the message.<br />
<br />
=== Virtualization ===<br />
The PCIe controller on the rk3399 is not behind an IOMMU.<br />
This means it is not possible to safely pass through PCIe devices to a virtual machine.<br />
<br />
= Board Features =<br />
<br />
This section outlines the most important characteristics of the board and its components.<br />
<br />
== SoC and Memory Specification ==<br />
* Based on Rockchip RK3399<br />
[[File:Rockchip_RK3399.png|right]]<br />
<br />
=== CPU Architecture ===<br />
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
* Cortex-A72:<br />
** 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<br />
** AArch64 for 64-bit support and new architectural features<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
** DSP & SIMD extensions<br />
** VFPv4 floating point<br />
** Hardware virtualization support<br />
* Cortex-A53:<br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster <br />
* Full implementation of the ARM architecture v8-A instruction set<br />
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
* ARMv8 Cryptography Extensions<br />
* In-order pipeline with symmetric dual-issue of most instructions<br />
* Include VFP v3 hardware to support single and double-precision operations<br />
* TrustZone technology support<br />
* Full CoreSight debug solution<br />
* One isolated voltage domain to support DVFS<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency: 650MHz <br />
* Throughput: 1300Mtri/s, 10.4Gpix/s <br />
* 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™.<br />
<br />
=== System Memory ===<br />
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.<br />
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).<br />
<br />
== Display ==<br />
* 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<br />
* Dual channel MIPI-DSI (4 lanes per channel)<br />
* eDP 1.3 (4 lanes with 10.8Gbps) to support displays, with PSR<br />
* Digital Video port up to 4Kp60<br />
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)<br />
* Supports Rec.2020 and conversion to Rec.709 <br />
<br />
== Video ==<br />
* Digital Video output up to 4K@60Hz<br />
* 4K HDR @ 30fps<br />
* H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps<br />
* H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps<br />
* VP9, up to 4Kx2K @ 60fps<br />
* MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps<br />
* MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps<br />
* MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps<br />
* VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps<br />
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps<br />
<br />
== Audio ==<br />
* 3.5mm Phone Jack<br />
* 3-pin S/PDIF header <br />
* Audio via Digital Video port<br />
<br />
== Camera ==<br />
* Dual MIPI CSI,dual ISP, maximum input resolution of 13M pixels <br />
<br />
== Network ==<br />
* 10/100/1000Mbps Ethernet - Capable of pushing 941 MBit/s in iperf3<br />
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (old version with 2x2) / Bluetooth 5 (new version with 1x1) (optional)<br />
<br />
== Storage ==<br />
* microSD - bootable, support SDHC and SDXC, storage up to 256GB<br />
* eMMC - bootable (optional eMMC Module)<br />
* 1 USB3.0 Host port<br />
* 1 USB type C OTG port with DP output <br />
* 2 USB2.0 Dedicated Host ports<br />
<br />
== Expansion Ports ==<br />
* 2x20 pins "Pi2" GPIO Header<br />
* PCIe 2.1 (4 full-duplex lanes with 20Gbps) x4 open ended port<br />
<br />
=== GPIO Pins ===<br />
<br />
{| class="wikitable plainrowheaders" border="1"<br />
! scope="col" style="width:20em;" | Assigned To<br />
! scope="col" | Pin Nr.<br />
! scope="col" | Pin Nr.<br />
! scope="col" style="width:20em;" | Assigned To<br />
|-<br />
| style="text-align:right;"| 3.3 V<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 2<br />
| style="text-align:left;"| 5 V<br />
|-<br />
| style="text-align:right;"| GPIO1_C4 (I2C8_SDA) <sup style="font-style:italic;color:green">a</sup><br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 3<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 4<br />
| style="text-align:left;"| 5 V<br />
|-<br />
| style="text-align:right;"| GPIO1_C5 (I2C8_SCL) <sup style="font-style:italic;color:green">a</sup><br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 5<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 6<br />
| style="text-align:left;"| GND<br />
|-<br />
| style="text-align:right;"| GPIO4_D0 (CPU_GPCLK)<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 7<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 8<br />
| style="text-align:left;"| GPIO4_C4 (UART2_TX)<br />
|-<br />
| style="text-align:right;"| GND<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 9<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 10<br />
| style="text-align:left;"| GPIO4_C3 (UART2_RX)<br />
|-<br />
| style="text-align:right;"| GPIO1_C6<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 11<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 12<br />
| style="text-align:left;"| GPIO3_D0 (I2S0_CLK)<br />
|-<br />
| style="text-align:right;"| GPIO1_C2<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 13<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 14<br />
| style="text-align:left;"| GND<br />
|-<br />
| style="text-align:right;"| GPIO1_A1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 15<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 16<br />
| style="text-align:left;"| GPIO1_A4<br />
|-<br />
| style="text-align:right;"| 3.3 V<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 17<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 18<br />
| style="text-align:left;"| GPIO4_C5 [SPDIF]<br />
|-<br />
| style="text-align:right;"| [UART4_TX] GPIO1_B0 (SPI1_TXD)<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 19<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 20<br />
| style="text-align:left;"| GND<br />
|-<br />
| style="text-align:right;"| [UART4_RX] GPIO1_A7 (SPI1_RXD)<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 21<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 22<br />
| style="text-align:left;"| GPIO4_D1<br />
|-<br />
| style="text-align:right;"| GPIO1_B1 (SPI1_CLK)<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 23<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 24<br />
| style="text-align:left;"| GPIO1_B2 (SPI1_CSN0)<br />
|-<br />
| style="text-align:right;"| GND<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 25<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 26<br />
| style="text-align:left;"| GPIO1_B5<br />
|-<br />
| style="text-align:right;"| GPIO1_B3 (I2C4_SDA)<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 27<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 28<br />
| style="text-align:left;"| GPIO1_B4 (I2C4_SCL)<br />
|-<br />
| style="text-align:right;"| GPIO4_D3<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 29<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 30<br />
| style="text-align:left;"| GND<br />
|-<br />
| style="text-align:right;"| GPIO4_D4<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 31<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 32<br />
| style="text-align:left;"| GPIO3_D4 (I2S0_SDI1SDO3)<br />
|-<br />
| style="text-align:right;"| GPIO3_D5 (I2S0_SDI2SDO2)<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 33<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 34<br />
| style="text-align:left;"| GND<br />
|-<br />
| style="text-align:right;"| GPIO3_D2 (I2S0_LRCKTX)<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 35<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 36<br />
| style="text-align:left;"| GPIO3_D6 (I2S0_SDI3SDO1)<br />
|-<br />
| style="text-align:right;"| GPIO3_D1 (I2S0_LRCKRX)<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 37<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 38<br />
| style="text-align:left;"| GPIO3_D3 (I2S0_SDI0)<br />
|-<br />
| style="text-align:right;"| GND<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 39<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 40<br />
| style="text-align:left;"| GPIO3_D7 (I2S0_SDO0)<br />
|}<br />
<br />
==== Notes ====<br />
<ol style="list-style-type:lower-alpha"><br />
<li>pulled high to 3.3V through 2.2kOhm resistor</li><br />
</ol><br />
<br />
==== Linux /dev/gpiochip Assignments ====<br />
<br />
{| class="wikitable plainrowheaders" style="float: right; margin: 0 0 0 1ch; line-height: 1.4; text-align: center;"<br />
|- style="font-size: .9em;"<br />
! scope="col" | Pin Nr.<br />
! scope="col" | Chip<br />
! scope="col" | Line<br />
|-<br />
| 3 || 1 || 20<br />
|-<br />
| 5 || 1 || 21 <br />
|-<br />
| 7 || 4 || 24 <br />
|-<br />
| 8 || 4 || 20 <br />
|-<br />
| 10 || 4 || 19 <br />
|-<br />
| 11 || 1 || 22 <br />
|-<br />
| 12 || 3 || 24 <br />
|-<br />
| 13 || 1 || 18 <br />
|-<br />
| 15 || 1 || 1 <br />
|-<br />
| 16 || 1 || 4 <br />
|-<br />
| 18 || 4 || 21 <br />
|-<br />
| 19 || 1 || 8 <br />
|-<br />
| 21 || 1 || 7 <br />
|-<br />
| 22 || 4 || 25 <br />
|-<br />
| 23 || 1 || 9 <br />
|-<br />
| 24 || 1 || 10 <br />
|-<br />
| 26 || 1 || 13 <br />
|-<br />
| 27 || 1 || 11 <br />
|-<br />
| 28 || 1 || 12 <br />
|-<br />
| 29 || 4 || 27 <br />
|-<br />
| 31 || 4 || 28 <br />
|-<br />
| 32 || 3 || 28 <br />
|-<br />
| 33 || 3 || 29 <br />
|-<br />
| 35 || 3 || 26 <br />
|-<br />
| 36 || 3 || 30 <br />
|-<br />
| 37 || 3 || 25 <br />
|-<br />
| 38 || 3 || 27 <br />
|-<br />
| 40 || 3 || 31<br />
|}<br />
<br />
On Linux, using the new <code>/dev/gpiochip</code> API,<br />
the <code>''n''</code> in <code>GPIO''n''_''XX''</code> appears to correlate to the number of the <code>/dev/gpiochip''n''</code>,<br />
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.<br />
Having these named in the dts would be nice.<br />
<br />
You can use [https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ libgpiod] to drive them,<br />
and test them with the included tools (<code>gpioinfo</code>, <code>gpioset</code>, ...)<br />
<br />
For example, <code>gpioset 4 25=1</code> (run as root) would turn pin 22 on.<br />
Do beware that poking the wrong GPIO pin can lock up your system.<br />
<br />
The conversion table at right is also available as a [https://gist.github.com/CounterPillow/fe066655bf2d929148fe6eb3f15b1dd5 C header file].<br />
<br />
<div style="clear: both;"></div><br />
<br />
== Working Features ==<br />
<div style="overflow: auto"><br />
{| class="wikitable sortable"<br />
! Feature/Option<br />
! Android<br />
! Android Version<br />
! Linux<br />
! Linux Version<br />
! Test/Verify Steps<br />
! Notes<br />
! Product Link<br />
|-<br />
| Pine64 LCD Touchscreen (Screen/Touch)<br />
| Yes/Yes<br />
| <br />
| No/No<br />
| <br />
| <br />
| Maybe [https://github.com/avafinger/pine64-touchscreen this] will help get this working?<br />
| [https://pine64.com/?product=7-lcd-touch-screen-panel 7″ LCD Touch Screen Panel]<br />
|-<br />
| Wireless<br />
<small>ROCKPro64 2×2 MIMO Dual Band WiFi 802.11AC / Bluetooth 4.2 Module (old)<br />
ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module (new)</small><br />
| Yes/Yes<br />
| <br />
| No/No<br />
| <br />
| <br />
| In 0.7.9 Ayufan linux releases this is deliberately disabled for stability reasons.<br />
| [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]<br />
|-<br />
| USB OTG<br />
| <br />
| <br />
| <br />
| <br />
| 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<br />
| [[ROCKPro64_Main_Page#OTG_mode]]<br />
| <br />
|-<br />
| USB Mass Storage USB2/USB3<br />
| Yes/yes<br />
| <br />
| Yes/Yes<br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| Dedicated Fan Power (pwm1)<br />
| <br />
| <br />
| Yes<br />
| <br />
| <br />
| You might want to use [https://github.com/tuxd3v/ats ATS].<br />
| <br />
|-<br />
| GPIO pins (raw or via RPI python scripts)<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| Check out [https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2 what Frank Mankel has done].<br />
| <br />
|-<br />
| MIPI CSI Camera 1 and 2<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| eDP<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| HDMI Audio<br />
| Yes<br />
| 7.1.2<br />
| Yes<br />
| 4.4.132-1083 - 4.4.138-1100<br />
| <br />
| Stopped working in 4.4.154.1105. Ayufan is looking into it.<br />
| <br />
|-<br />
| 3.5mm Audio/Mic<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| USB-C Host<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| Display via USB-C<br />
| Yes<br />
| 7.x and 8.x<br />
| <br />
| <br />
| <br />
| eDP via USB-C per tillim. No sound on Android 7.x. Sound does work on Android 8.x<br />
| <br />
|-<br />
| ROCKPro64 PLAYBOX ENCLOSURE<br />
| N/A<br />
| <br />
| N/A<br />
| <br />
| N/A<br />
| 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.<br />
| https://pine64.com/?product=rockpro64-playbox-enclosure<br />
|-<br />
| ROCKPro64 30mm Tall Profile Heatsink<br />
| N/A<br />
| <br />
| N/A<br />
| <br />
| N/A<br />
| <br />
| https://store.pine64.org/?product=rockpro64-heatsink<br />
|-<br />
| ROCKPro64 20mm Mid Profile Heatsink<br />
| N/A<br />
| <br />
| N/A<br />
| <br />
| N/A<br />
| <br />
| https://pine64.com/?product=rockpro64-20mm-mid-profile-heatsink<br />
|-<br />
| Fan For ROCKPro64 20mm Mid Profile Heatsink<br />
| N/A<br />
| <br />
| N/A<br />
| <br />
| N/A<br />
| You might want to use [https://github.com/tuxd3v/fanctl fanctl] to control the fan while keeping your CPU cool<br />
| https://pine64.com/?product=fan-for-rockpro64-20mm-mid-profile-heatsink<br />
|-<br />
| HDMI output 4K@60Hz<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| PCIe 2.1<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| Real Time Clock (RTC) battery backup<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| https://store.pine64.org/?product=rtc-backup-battery-cr-battery<br />
|-<br />
| Boot from USB/PXE<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|}<br />
</div><br />
<br />
RockChip themselves have tables of supported features at 4.4 and mainline kernel versions [https://opensource.rock-chips.com/wiki_Status_Matrix in their wiki here].<br />
<br />
= Board Information, Schematics and Certifications =<br />
* Board Dimensions: 133mm x 80mm x 19mm<br />
* Input Power: +12V @3A/5A with 5.5mm/2.1mm Type M Barrel type DC connector<br />
* [https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]<br />
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]<br />
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]<br />
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]<br />
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]<br />
* [https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]<br />
** [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]<br />
* [https://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]<br />
* [https://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]<br />
* [https://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]<br />
<br />
* Certifications:<br />
** 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.<br />
** [https://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]<br />
** [https://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]<br />
** [https://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCK64 RoHS Report]<br />
<br />
= Datasheets for Components and Peripherals =<br />
* Rockchip RK3399 SoC information:<br />
** [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [https://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (200 Balls) SDRAM:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]<br />
* Heatsink related info:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]<br />
* Wireless related info:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet]]<br />
* Ethernet related info:<br />
** [https://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]<br />
* Peripheral related info:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]<br />
* Remote control button mapping<br />
** [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]<br />
* Audio Codec (ES8316) (Under Board)<br />
** [https://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* PWM controlled fan, SPDIF, and RTC Battery Backup headers<br />
** [https://www.jst-mfg.com/product/pdf/eng/ePH.pdf JST-PH connector]<br />
<br />
= Useful Articles and Blog Posts = <br />
<br />
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.<br />
<br />
* [https://stikonas.eu/wordpress/2019/09/15/blobless-boot-with-rockpro64/ Blobless boot with RockPro64 by Andrius Štikonas]<br />
<br />
* [https://marcin.juszkiewicz.com.pl/2020/06/17/ebbr-on-rockpro64/ EBBR on RockPro64 by Marcin Juszkiewicz]<br />
<br />
* [[ROCKPro64 Device Tree Overlays on Mainline]]<br />
<br />
= The NAS Case for the ROCKPro64 =<br />
[[file:NASCaseMain.png|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]<br />
Please [[NASCase | follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.<br />
<br />
The NAS Case instructions also contains detailed information about:<br />
*what the NAS Case ships with<br />
*What additional things you need to purchase for your NAS Case<br />
*What optional things you can consider purchasing for your NAS build<br />
*What OS Image we recommend you use for your NAS build<br />
*IO accessibility after installing the ROCKPro64 into the NAS Case<br />
*[https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf NAS Case Exploded View]<br />
*[https://files.pine64.org/doc/rockpro64/NAS%20Case%20Drawing.dwg NAS Case Drawing]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [https://pine64.com/?post_type=product Pine64 shop]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [https://opensource.rock-chips.com/ Rockchip Open Source Wiki]<br />
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]<br />
<br />
<br />
[[Category:ROCKPro64]] [[Category:Rockchip RK3399]]</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=Quartz64&diff=12439Quartz642022-02-02T11:37:03Z<p>Mrgtwentythree: /* NetBSD */</p>
<hr />
<div>[[File:Quartz64modelb.png|400px|thumb|right|The Quartz64 Model B]]<br />
<br />
The '''Quartz64''' is the most recent Single Board Computer offering from PINE64, initially released in June of 2021. It is powered by a Rockchip RK3566 Quad-Core ARM Cortex A55 64-Bit Processor with a MALI G-52 GPU.<br />
<br />
Key features include a PCIe x4 open ended slot (model A) or m.2 (model B) using one Gen2 lane electrically, and the use of LPDDR4 RAM.<br />
<br />
The Quartz64 has three LPDDR4 system memory options: 2GB, 4GB or 8GB. For booting, there is an eMMC module socket (supporting up to 128GB) and microSD slot, as well as a footprint to solder on an SPI flash chip. The board is equipped with HDMI, 1x USB 3.0 type A Host, 3x USB 2.0 Host, Gigabit Ethernet, SATA (model A), GPIO Bus, MiPi DSI interface, e-ink interface (model A), eDP interface (model A), touch Panel interface (model A), 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 (OS) are freely available from the open source community, such as Linux (Ubuntu, Debian, Arch), BSD, and Android.<br />
<br />
== Software releases ==<br />
<br />
{{warning|Software for the Quartz64 is still early in development, and therefore currently lacks features such as the ability to produce video output. You are strongly encouraged to procure a 3.3V UART serial adapter capable of running at 1.5 mbauds, such as [https://pine64.com/product/serial-console-woodpecker-edition/ the woodpecker] if you want to use a Quartz64 at this stage.}} <br />
<br />
=== Manjaro ARM ===<br />
[[File:Manjaro.png|right|100px]]<br />
<br />
Manjaro ARM is a user friendly rolling release distribution, based on Arch Linux ARM.<br />
<br />
==== Manjaro ARM with no desktop ====<br />
<br />
* [https://github.com/manjaro-arm/quartz64-bsp-images/releases Weekly images on Github]<br />
Note, manjaro currently ships with the linux-rc kernel. Currently (and temporarily/as of writing), usb3, pcie and sata devices will not be found unless you swap to the linux-quartz64 kernel <code>pacman -S linux-quartz64</code>.<br />
<br />
==== Manjaro ARM with desktop environment ====<br />
<br />
Since '''Dev 20211117''' with hdmi output (linux-rc)<br />
<br />
* Gnome<br />
* KDE Plasma<br />
* Mate<br />
* Sway<br />
* XFCE<br />
<br />
* [https://github.com/manjaro-arm/quartz64-bsp-images/releases Weekly images on Github]<br />
<br />
Note: Video out only working on 4 GB boards with 1080p monitors right now as the VOP2 patches are very early.<br />
<br />
=== pgwipeout's Quartz64 CI ===<br />
<br />
pgwipeout provides continuously rebuilt set of images for Quartz64 devices which includes a Debian installer and a buildroot rescue environment. It is aimed at advanced users who generally know their way around a Linux system, and as a baseline for whether something is working or not. Works on both SD cards and eMMC, uses pgwipeout's patched kernel. Kernels aren't auto-updated on the installed system, so the user manually has to do this by mounting the actual correct boot partition.<br />
<br />
'''Download:''' https://gitlab.com/pgwipeout/quartz64_ci/-/pipelines (Click the three dots on the right, download the merge-job archive.)<br />
<br />
For Quartz64 Model A, flash <tt>rk3566-quartz64-a.dtb.img.xz</tt>. On Linux, you can for example do this as follows, assuming your target device is <tt>/dev/sdb</tt>:<br />
<br />
sudo -i; xzcat /path/to/rk3566-quartz64-a.dtb.img.xz > /dev/sdb<br />
<br />
=== Arch Linux ARM (Unofficial, Highly Experimental) ===<br />
<br />
See [[Installing Arch Linux ARM On The Quartz64]] for detailed instructions. Users who are not feeling adventurous are advised to hold off until kernel 5.16 is released and packaged.<br />
<br />
=== Tianocore EDK II port by jmcneill ===<br />
<br />
This (as of 2021-12-30) is a work in progress to enable UEFI enabled systems, and is able to bring up SD, eMMC, USB, PCIe with SATA and NVMe, HDMI, thermal sensors, TRNG, as well as general Cortex A-55 features. Known to work with NetBSD -current, and the ESXi Arm fling version 1.8.<br />
<br />
* [https://github.com/jaredmcneill/quartz64_uefi jmcneill's Quartz64 UEFI Github]<br />
<br />
The sdcard image should be written to an microSD card and installed. Currently, using this card also for the OS may be problematic.<br />
<br />
=== NetBSD ===<br />
<br />
NetBSD relies upon the UEFI support in Tianocore. Before NetBSD 10 is released, the latest version of NetBSD-current should be used:<br />
<br />
* [http://nycdn.netbsd.org/pub/NetBSD-daily/HEAD/ NetBSD daily builds top level] from inside here, navigate to a date, and inside the images/ subdirectory are installable images. Use the one called "NetBSD-<version>-evbarm-aarch64-install.img.gz". This image can be written to a supported device, such as the eMMC interface, any USB storage device, NVMe, and PCIe AHCI SATA are all supported with builds after 2022-01-15.<br />
<br />
* Currently this can not be shared with the EDK2 port, ie, microSD for EDK2 and some other media for NetBSD.<br />
<br />
== SoC and Memory Specifications ==<br />
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]<br />
[[File:RK3566_icon.png|right]]<br />
<br />
=== CPU Architecture ===<br />
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]<br />
* AArch32 for full backwards compatibility with ARMv7<br />
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
* Includes VFP hardware to support single and double-precision operations<br />
* ARMv8 Cryptography Extensions<br />
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core<br />
* 512KB unified system L3 cache<br />
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support<br />
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]<br />
<br />
=== GPU (Graphics Processing Unit) Capabilities ===<br />
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]<br />
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop <br />
* 128KB L2 Cache configurations<br />
* Supports OpenGL ES 1.1, 2.0, and 3.2<br />
* Supports Vulkan 1.0 and 1.1<br />
* Supports OpenCL 2.0 Full Profile<br />
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency<br />
* Supports 38.4 GLOP/s when at 800MHz clock frequency <br />
<br />
=== NPU (Neural Processing Unit) Capabilities ===<br />
* Neural network acceleration engine with processing performance of up to 0.8 TOPS<br />
* Supports integer 8 and integer 16 convolution operations<br />
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet<br />
<br />
=== System Memory ===<br />
* RAM Memory Variants: 2GB (SOQuartz only), 4GB, 8GB LPDDR4.<br />
<br />
=== Network ===<br />
* 10/100/1000Mbps Ethernet<br />
* WiFi 802.11 b/g/n/ac with Bluetooth 5.0 (optional on model A, built in on model B)<br />
<br />
=== Storage ===<br />
* microSD - bootable, supports SDHC and SDXC, storage up to 2TB<br />
* USB<br />
** Model A: 2 USB 2.0 host ports, 1 USB 2.0 OTG port, 1 USB 3.0 host port<br />
** Model B: 1 USB 2.0 host port, 1 USB 2.0 OTG port, 1 USB 3.0 host port<br />
* one native SATA 3.0 6Gb/s Port (only on model A, shared with USB 3.0 host port)<br />
* optional eMMC module from 16GB up to 128GB<br />
<br />
==== eMMC Speeds ====<br />
<br />
On a 64 GB eMMC module:<br />
<br />
$ sudo hdparm -tT /dev/mmcblk1 <br />
<br />
/dev/mmcblk1:<br />
Timing cached reads: 2368 MB in 2.00 seconds = 1184.46 MB/sec<br />
Timing buffered disk reads: 452 MB in 3.01 seconds = 149.98 MB/sec<br />
<br />
=== Expansion Ports ===<br />
* HDMI<br />
* eDP - 4 lanes of 2.7Gbps, up to 2560x1600@60Hz (only on model A)<br />
* DSI - Display Serial Interface, 4 lanes MiPi, up to 1440P on model A, 2 lanes MiPi, up to 1080p on model B <br />
* CSI - CMOS Camera Interface, 4 lanes MiPi up to 8 mega pixel on model A, 2 lanes MiPi up to 5 mega pixel on model B <br />
* TP - Touch Panel Port, SPI with interrupt on model A<br />
* RTC - Real Time Clock Battery Connector<br />
* VBAT - Lithium Battery Connector with temperature sensor input on model A<br />
* Wifi/BT Module Header - SDIO 3.0 and UART on model A, build in Wifi/BT Module on model B<br />
* 2x20 pins "Pi2" GPIO Header on model B, 2x10 pins GPO header on model A<br />
* PCIe x4 open ended slot on model A, m.2 slot on model B, one Gen2 lane due to SoC constraints<br />
** On Model A, the slot provides 10W of power for the 3.3V supply and however much power your 12V input power supply provides on the 12V supply<br />
<br />
The PCIe implementation on the RK3566 is much more compatible with a wide range of devices compared to the one on the RK3399 used on the ROCKPro64. This means a lot more devices should work (excluding dGPUs due to a lack of cache snooping ability). As an example, PCIe-to-PCI bridges work, whereas they didn't on the ROCKPro64.<br />
<br />
==== Combo PHYs ====<br />
<br />
[[File:rk3566 phy.png]]<br />
<br />
Several of the I/O options on the RK3566 used in the Quartz64 are using the same I/O lines, meaning that they cannot be used at the same time. The above diagram illustrates how they are connected.<br />
<br />
In particular, USB 3.0 and the SATA connector on the board are mutually exclusive, and the PCI-e 2.0 lane can be reconfigured into a second SATA port, though an adapter cable needs to be fashioned for this to be useful.<br />
<br />
=== GPIO Pins (Quartz64 Model A) ===<br />
<br />
Attention! GPIOs are 3.3V!<br />
<br />
{| class="wikitable plainrowheaders" border="1"<br />
! scope="col" style="width:20em;" | Assigned To<br />
! scope="col" | Pin Nr.<br />
! scope="col" | Pin Nr.<br />
! scope="col" style="width:20em;" | Assigned To<br />
|-<br />
| style="text-align:right;"| 3.3 V<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 2<br />
| style="text-align:left;"| 5 V<br />
|-<br />
| style="text-align:right;"| I2C3_SDA_M0 <sup style="font-style:italic;color:green">a,b</sup><br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 3<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 4<br />
| style="text-align:left;"| 5 V<br />
|-<br />
| style="text-align:right;"| I2C3_SCL_M0 <sup style="font-style:italic;color:green">a,b</sup><br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 5<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 6<br />
| style="text-align:left;"| GND<br />
|-<br />
| style="text-align:right;"| CPU_REFCLK_OUT<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 7<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 8<br />
| style="text-align:left;"| UART2_TX_M0_DEBUG<br />
|-<br />
| style="text-align:right;"| GND<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 9<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 10<br />
| style="text-align:left;"| UART2_RX_M0_DEBUG<br />
|-<br />
| style="text-align:right;"| SPI1_MOSI_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 11<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 12<br />
| style="text-align:left;"| UART0_TX <sup style="font-style:italic;color:green">a</sup><br />
|-<br />
| style="text-align:right;"| SPI1_MISO_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 13<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 14<br />
| style="text-align:left;"| UART0_RX <sup style="font-style:italic;color:green">a</sup><br />
|-<br />
| style="text-align:right;"| SPI1_CLK_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 15<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 16<br />
| style="text-align:left;"| GND<br />
|-<br />
| style="text-align:right;"| SPI1_CS0_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 17<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 18<br />
| style="text-align:left;"| SPDIF_OUT <sup style="font-style:italic;color:green">c</sup><br />
|-<br />
| style="text-align:right;"| GND<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 19<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 20<br />
| style="text-align:left;"| 3.3V<br />
|}<br />
<br />
====Notes====<br />
<ol style="list-style-type:lower-alpha"><br />
<li>can be a PWM pin</li><br />
<li>pulled high to 3.3V through 2.2kOhm resistor</li><br />
<li>low-pass filtered with cutoff of 220 MHz</li><br />
</ol><br />
<br />
Source: Page 28 of [https://wiki.pine64.org/images/3/31/Quartz64_model-A_schematic_v1.0_20201215.pdf the board schematics].<br />
<br />
== Quartz64 Board Information, Schematics, and Certifications ==<br />
* Model "A" Baseboard Dimensions: 133mm x 80mm x 19mm<br />
* Input Power: DC 12V @ 3A 5.5mmOD/2.1mmID center-positive Barrel DC Jack connector<br />
<br />
* Quartz64 Model "A" SBC Schematic and PCB Board Resource:<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_schematic_v2.0_20210427.pdf Quartz64 Model "A" SBC Schematic ver 2.0 20210427 PDF file]<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_V2.0_connector_placement.pdf Quartz64 Model "A" SBC PCB Connector placement PDF file]<br />
<br />
* Model "B" Baseboard Dimensions: 85mm x 56mm x 18.8mm<br />
* Input Power: DC 5V @ 3A 3.5mmOD/1.35mmID Barrel DC Jack connector<br />
<br />
* Quartz64 Model "B" SBC Schematic and PCB Board Resource:<br />
** Quartz64 Model "B" SBC Schematic not yet available<br />
** [https://files.pine64.org/doc/quartz64/Quartz64%20model-B%20PCB%20placement.pdf Quartz64 Model "B" SBC PCB Connector placement PDF file]<br />
<br />
* Certifications:<br />
** 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 and CE 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.<br />
** [https://files.pine64.org/doc/cert/Quartz64%20Model-A%20CE%20certification-S21051101701001.pdf Quartz64 model-A CE Certificate]<br />
** [https://files.pine64.org/doc/cert/Quartz64%20Model-A%20FCC%20certification-S21051101702001.pdf Quartz64 model-A FCC Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3566 SoC information:<br />
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]<br />
* Rockchip PMU (Power Management Unit) Information:<br />
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet for Quartz64 model A]<br />
** [https://www.rockchip.fr/RK809%20datasheet%20V1.01.pdf Rockchip RK809 ver 1.01 datasheet for Quartz64 model B and SOQuartz]<br />
* LPDDR4 (200 Balls) SDRAM:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]<br />
* E-ink Panel information:<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-754-V3_ES103TC1%20Specification%20V3.0(Signed)-20190702.pdf Eink 10.3" 1872x1404 ES103TC1 Flex Panel Specification]<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf Eink 10.3" 1872x1404 ES103TC1 Glass Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]<br />
* LCD Touch Screen Panel information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0" 1200x600 TFT-LCD Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/HK70DR2459-PG-V01.pdf Touch Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GT911%20Capacitive%20Touch%20Controller%20Datasheet.pdf GOODiX GT911 5-Point Capacitive Touch Controller Datasheet]<br />
* Ethernet PHY information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver]<br />
* WiFi/BT module info:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]<br />
* Enclosure information:<br />
** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/ABS_enclosure_20160426.stp ABS Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/pine64%20Die%20Cast%20casing-final.jpg Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]<br />
* Connector information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/ePH.pdf 2.0mm PH Type connector specification use in Lithium Battery (VBAT) port and RTC Battery port]<br />
** [https://files.pine64.org/doc/datasheet/pine64/0.5FPC%20Front%20Open%20Connector%20H=1.5.pdf 0.5mm Pitch cover type FPC connector specification use in DSI port, TP port and CSI port]<br />
<br />
== Development efforts ==<br />
<br />
{{SeeMainArticle|Quartz64 Development}}<br />
<br />
Information and resources of the ongoing development effort for the Quartz64 can be found on the [[Quartz64 Development]] page, where the current status of various board functions can be found, and whether they have landed in upstream.<br />
<br />
* [https://gitlab.com/pine64-org/quartz-bsp Quartz64 BSP Gitlab Page]<br />
<br />
== BSP Linux SDK ==<br />
<br />
=== BSP Linux SDK ver 4.19 for Quartz64 model A SBC ===<br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed<br />
** File Size: 32.67.00GB<br />
<br />
<br />
<br />
== Android SDK ==<br />
<br />
=== Android 11 SDK for Quartz64 model A SBC ===<br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64_SDK_android11.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 77c2ff57ea3372fb04da7fb49e17d12b<br />
** File Size: 79.00GB<br />
** Just the boot blobs (<1MB): [[File:Rk35-blobs.tar.gz]]<br />
<br />
<br />
=== Android 11 Production Test Build for Quartz64 model A SBC ===<br />
<br />
==== Android 11 Stock Image [eMMC Boot] using DD method [20210604] ====<br />
* DD image to eMMC module using USB adapter for eMMC module and boot. Highly recommend using [https://etcher.io/ Etcher]<br />
* This is test build that used during product testing<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* DD image for 8GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-8GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): e4365753e584d9fce1b8f10f095eede6<br />
*** File Size: 819MB<br />
* DD image for 16GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-16GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 491c5f7744b0ca0b74ae76e607051836<br />
*** File Size: 1.10GB<br />
* DD image for 32GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-32GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 47a6f0cdac8bad06cb920743849a8894<br />
*** File Size: 846MB<br />
* DD image for 64GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-64GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 4e2fed6f5db0d55afdc8a142fc0c4fe1<br />
*** File Size: 884MB<br />
<br />
<br />
==== Android 11 Production Test Build for Quartz64 model A SBC [eMMC Boot] using ROCKChip tools method [20210604] ====<br />
* Please unzip first and then using [https://files.pine64.org/os/Quartz64//android/RKDevTool_Release_v2.84.zip Rockchip Android tool ver 2.84] to flash in<br />
* For Windows OS environment, please install the [https://files.pine64.org/os/Quartz64/android/DriverAssitant_v5.1.1.zip DriverAssistant v5.11] driver first <br />
* This is test build that used during product testing<br />
* The OTG port located at top USB 2.0 port on top of USB 3.0 port, needs USB type A to type A cable.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_20210604_stock_android11_emmcboot.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 800f867fdd0d1b2bd7822c156b6067e3<br />
*** File Size: 812MB<br />
<br />
<br />
=== Android 11 eink SDK for Quartz64 model A SBC ===<br />
* The is the Android SDK build for 10.3" eink panel on Quartz64 model A SBC. <br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 293a550584298de4fb95ceae18103672<br />
** File Size: 72.88GB<br />
** Just the boot blobs (<1MB): [[File:Rk35-blobs.tar.gz]]<br />
<br />
<br />
== Enclosures ==<br />
<br />
All enclosures that fit the ROCKPro64 should fit the Quartz64, as the I/O has been laid out the same on purpose.<br />
<br />
* [["Model A" Acrylic Open Enclosure]] - but see the troubleshooting section below.<br />
* [[ROCKPro64 ABS Enclosure]]<br />
* [[Quartz64PremiumAluminiumCase|RockPro64 Premium Aluminium Case]]<br />
<br />
(Please expand this section with more cases known to work.)<br />
<br />
== Troubleshooting ==<br />
<br />
=== Stability/Boot Issues With Missing Battery Shunt ===<br />
<br />
If there is no battery plugged into the board, the jumper labelled "ON/OFF_BATT" must be in place. If this is set wrong, stability issues such as failures to boot will occur.<br />
<br />
=== No Ethernet Connectivity ===<br />
<br />
Make sure the kernel is built with <code>CONFIG_MOTORCOMM_PHY</code> set to <code>y</code>. Building it as a module (<code>m</code>) and then relying on module auto-loading is unlikely to work as the PHY chip lacks its manufacturer ID.<br />
<br />
=== "Model A" Acrylic Case Doesn't Fit ===<br />
<br />
The Quartz64 does not really fit onto the bottom plate of the [["Model A" Acrylic Open Enclosure]]. This is because the "Mic" connector at the bottom of the board interferes with one of the posts. A workaround is to find out which post that is (you have a 50% chance of guessing it right, accounting for rotating the board) and then filing away the corner of the post pointing inwards by a few millimetres.<br />
<br />
[[File:Quartz64-audio-jack-spacer-issue.jpg]]<br />
<br />
An alternate solution may be to place plastic spacers with a smaller outer diameter in between the acrylic bottom plate posts and the SBC board.<br />
<br />
=== No GPU Acceleration with Debian "Bullseye" Userland ===<br />
<br />
Debian Bullseye ships a Mesa version that is too old to contain the required patches for the RK356x SoC's GPU. You can (at your own risk) [https://wiki.debian.org/DebianTesting use the current Debian Testing version ], called "Bookworm".<br />
<br />
<br />
[[Category:Quartz64]]</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=Quartz64&diff=12257Quartz642022-01-16T00:39:19Z<p>Mrgtwentythree: update tianocore and add more netbsd info.</p>
<hr />
<div>[[File:Quartz64modelb.png|400px|thumb|right|The Quartz64 Model B]]<br />
<br />
The '''Quartz64''' is the most recent Single Board Computer offering from PINE64, initially released in June of 2021. It is powered by a Rockchip RK3566 Quad-Core ARM Cortex A55 64-Bit Processor with a MALI G-52 GPU.<br />
<br />
Key features include a PCIe x4 open ended slot (model A) or m.2 (model B) using one Gen2 lane electrically, and the use of LPDDR4 RAM.<br />
<br />
The Quartz64 has three LPDDR4 system memory options: 2GB, 4GB or 8GB. For booting, there is an eMMC module socket (supporting up to 128GB) and microSD slot, as well as a footprint to solder on an SPI flash chip. The board is equipped with HDMI, 1x USB 3.0 type A Host, 3x USB 2.0 Host, Gigabit Ethernet, SATA (model A), GPIO Bus, MiPi DSI interface, e-ink interface (model A), eDP interface (model A), touch Panel interface (model A), 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 (OS) are freely available from the open source community, such as Linux (Ubuntu, Debian, Arch), BSD, and Android.<br />
<br />
== Software releases ==<br />
<br />
{{warning|Software for the Quartz64 is still early in development, and therefore currently lacks features such as the ability to produce video output. You are strongly encouraged to procure a 3.3V UART serial adapter capable of running at 1.5 mbauds, such as [https://pine64.com/product/serial-console-woodpecker-edition/ the woodpecker] if you want to use a Quartz64 at this stage.}} <br />
<br />
=== Manjaro ARM ===<br />
[[File:Manjaro.png|right|100px]]<br />
<br />
Manjaro ARM is a user friendly rolling release distribution, based on Arch Linux ARM.<br />
<br />
==== Manjaro ARM with no desktop ====<br />
<br />
* [https://github.com/manjaro-arm/quartz64-bsp-images/releases Weekly images on Github]<br />
Note, manjaro currently ships with the linux-rc kernel. Currently (and temporarily/as of writing), usb3, pcie and sata devices will not be found unless you swap to the linux-quartz64 kernel <code>pacman -S linux-quartz64</code>.<br />
<br />
==== Manjaro ARM with desktop environment ====<br />
<br />
Since '''Dev 20211117''' with hdmi output (linux-rc)<br />
<br />
* Gnome<br />
* KDE Plasma<br />
* Mate<br />
* Sway<br />
* XFCE<br />
<br />
* [https://github.com/manjaro-arm/quartz64-bsp-images/releases Weekly images on Github]<br />
<br />
Note: Video out only working on 4 GB boards with 1080p monitors right now as the VOP2 patches are very early.<br />
<br />
=== pgwipeout's Quartz64 CI ===<br />
<br />
pgwipeout provides continuously rebuilt set of images for Quartz64 devices which includes a Debian installer and a buildroot rescue environment. It is aimed at advanced users who generally know their way around a Linux system, and as a baseline for whether something is working or not. Works on both SD cards and eMMC, uses pgwipeout's patched kernel. Kernels aren't auto-updated on the installed system, so the user manually has to do this by mounting the actual correct boot partition.<br />
<br />
'''Download:''' https://gitlab.com/pgwipeout/quartz64_ci/-/pipelines (Click the three dots on the right, download the merge-job archive.)<br />
<br />
For Quartz64 Model A, flash <tt>rk3566-quartz64-a.dtb.img.xz</tt>. On Linux, you can for example do this as follows, assuming your target device is <tt>/dev/sdb</tt>:<br />
<br />
sudo -i; xzcat /path/to/rk3566-quartz64-a.dtb.img.xz > /dev/sdb<br />
<br />
=== Arch Linux ARM (Unofficial, Highly Experimental) ===<br />
<br />
See [[Installing Arch Linux ARM On The Quartz64]] for detailed instructions. Users who are not feeling adventurous are advised to hold off until kernel 5.16 is released and packaged.<br />
<br />
=== Tianocore EDK II port by jmcneill ===<br />
<br />
This (as of 2021-12-30) is a work in progress to enable UEFI enabled systems, and is able to bring up SD, eMMC, USB, PCIe with SATA and NVMe, HDMI, thermal sensors, TRNG, as well as general Cortex A-55 features. Known to work with NetBSD -current, and the ESXi Arm fling version 1.8.<br />
<br />
* [https://github.com/jaredmcneill/quartz64_uefi jmcneill's Quartz64 UEFI Github]<br />
<br />
The sdcard image should be written to an microSD card and installed. Currently, using this card also for the OS may be problematic.<br />
<br />
=== NetBSD ===<br />
<br />
NetBSD relies upon the UEFI support in Tianocore. Before NetBSD 10 is released, the latest version of NetBSD-current should be used:<br />
<br />
* [http://nycdn.netbsd.org/pub/NetBSD-daily/HEAD/ NetBSD daily builds top level] from inside here, navigate to a date, and inside the images/ subdirectory are installable images. Use the one called "NetBSD-<version>-evbarm-aarch64-install.img.gz". This image can be written to a supported device, such as the eMMC interface, any USB storage device, NVMe, and PCIe AHCI SATA are all supported with builds after 2022-01-15.<br />
<br />
== SoC and Memory Specifications ==<br />
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]<br />
[[File:RK3566_icon.png|right]]<br />
<br />
=== CPU Architecture ===<br />
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]<br />
* AArch32 for full backwards compatibility with ARMv7<br />
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
* Includes VFP hardware to support single and double-precision operations<br />
* ARMv8 Cryptography Extensions<br />
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core<br />
* 512KB unified system L3 cache<br />
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support<br />
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]<br />
<br />
=== GPU (Graphics Processing Unit) Capabilities ===<br />
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]<br />
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop <br />
* 128KB L2 Cache configurations<br />
* Supports OpenGL ES 1.1, 2.0, and 3.2<br />
* Supports Vulkan 1.0 and 1.1<br />
* Supports OpenCL 2.0 Full Profile<br />
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency<br />
* Supports 38.4 GLOP/s when at 800MHz clock frequency <br />
<br />
=== NPU (Neural Processing Unit) Capabilities ===<br />
* Neural network acceleration engine with processing performance of up to 0.8 TOPS<br />
* Supports integer 8 and integer 16 convolution operations<br />
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet<br />
<br />
=== System Memory ===<br />
* RAM Memory Variants: 2GB (SOQuartz only), 4GB, 8GB LPDDR4.<br />
<br />
=== Network ===<br />
* 10/100/1000Mbps Ethernet<br />
* WiFi 802.11 b/g/n/ac with Bluetooth 5.0 (optional on model A, built in on model B)<br />
<br />
=== Storage ===<br />
* microSD - bootable, supports SDHC and SDXC, storage up to 2TB<br />
* USB<br />
** Model A: 2 USB 2.0 host ports, 1 USB 2.0 OTG port, 1 USB 3.0 host port<br />
** Model B: 1 USB 2.0 host port, 1 USB 2.0 OTG port, 1 USB 3.0 host port<br />
* one native SATA 3.0 6Gb/s Port (only on model A, shared with USB 3.0 host port)<br />
* optional eMMC module from 16GB up to 128GB<br />
<br />
==== eMMC Speeds ====<br />
<br />
On a 64 GB eMMC module:<br />
<br />
$ sudo hdparm -tT /dev/mmcblk1 <br />
<br />
/dev/mmcblk1:<br />
Timing cached reads: 2368 MB in 2.00 seconds = 1184.46 MB/sec<br />
Timing buffered disk reads: 452 MB in 3.01 seconds = 149.98 MB/sec<br />
<br />
=== Expansion Ports ===<br />
* HDMI<br />
* eDP - 4 lanes of 2.7Gbps, up to 2560x1600@60Hz (only on model A)<br />
* DSI - Display Serial Interface, 4 lanes MiPi, up to 1440P on model A, 2 lanes MiPi, up to 1080p on model B <br />
* CSI - CMOS Camera Interface, 4 lanes MiPi up to 8 mega pixel on model A, 2 lanes MiPi up to 5 mega pixel on model B <br />
* TP - Touch Panel Port, SPI with interrupt on model A<br />
* RTC - Real Time Clock Battery Connector<br />
* VBAT - Lithium Battery Connector with temperature sensor input on model A<br />
* Wifi/BT Module Header - SDIO 3.0 and UART on model A, build in Wifi/BT Module on model B<br />
* 2x20 pins "Pi2" GPIO Header on model B, 2x10 pins GPO header on model A<br />
* PCIe x4 open ended slot on model A, m.2 slot on model B, one Gen2 lane due to SoC constraints<br />
** On Model A, the slot provides 10W of power for the 3.3V supply and however much power your 12V input power supply provides on the 12V supply<br />
<br />
The PCIe implementation on the RK3566 is much more compatible with a wide range of devices compared to the one on the RK3399 used on the ROCKPro64. This means a lot more devices should work (excluding dGPUs due to a lack of cache snooping ability). As an example, PCIe-to-PCI bridges work, whereas they didn't on the ROCKPro64.<br />
<br />
==== Combo PHYs ====<br />
<br />
[[File:rk3566 phy.png]]<br />
<br />
Several of the I/O options on the RK3566 used in the Quartz64 are using the same I/O lines, meaning that they cannot be used at the same time. The above diagram illustrates how they are connected.<br />
<br />
In particular, USB 3.0 and the SATA connector on the board are mutually exclusive, and the PCI-e 2.0 lane can be reconfigured into a second SATA port, though an adapter cable needs to be fashioned for this to be useful.<br />
<br />
=== GPIO Pins (Quartz64 Model A) ===<br />
<br />
Attention! GPIOs are 3.3V!<br />
<br />
{| class="wikitable plainrowheaders" border="1"<br />
! scope="col" style="width:20em;" | Assigned To<br />
! scope="col" | Pin Nr.<br />
! scope="col" | Pin Nr.<br />
! scope="col" style="width:20em;" | Assigned To<br />
|-<br />
| style="text-align:right;"| 3.3 V<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 2<br />
| style="text-align:left;"| 5 V<br />
|-<br />
| style="text-align:right;"| I2C3_SDA_M0 <sup style="font-style:italic;color:green">a,b</sup><br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 3<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 4<br />
| style="text-align:left;"| 5 V<br />
|-<br />
| style="text-align:right;"| I2C3_SCL_M0 <sup style="font-style:italic;color:green">a,b</sup><br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 5<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 6<br />
| style="text-align:left;"| GND<br />
|-<br />
| style="text-align:right;"| CPU_REFCLK_OUT<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 7<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 8<br />
| style="text-align:left;"| UART2_TX_M0_DEBUG<br />
|-<br />
| style="text-align:right;"| GND<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 9<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 10<br />
| style="text-align:left;"| UART2_RX_M0_DEBUG<br />
|-<br />
| style="text-align:right;"| SPI1_MOSI_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 11<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 12<br />
| style="text-align:left;"| UART0_TX <sup style="font-style:italic;color:green">a</sup><br />
|-<br />
| style="text-align:right;"| SPI1_MISO_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 13<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 14<br />
| style="text-align:left;"| UART0_RX <sup style="font-style:italic;color:green">a</sup><br />
|-<br />
| style="text-align:right;"| SPI1_CLK_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 15<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 16<br />
| style="text-align:left;"| GND<br />
|-<br />
| style="text-align:right;"| SPI1_CS0_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 17<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 18<br />
| style="text-align:left;"| SPDIF_OUT <sup style="font-style:italic;color:green">c</sup><br />
|-<br />
| style="text-align:right;"| GND<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 19<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 20<br />
| style="text-align:left;"| 3.3V<br />
|}<br />
<br />
====Notes====<br />
<ol style="list-style-type:lower-alpha"><br />
<li>can be a PWM pin</li><br />
<li>pulled high to 3.3V through 2.2kOhm resistor</li><br />
<li>low-pass filtered with cutoff of 220 MHz</li><br />
</ol><br />
<br />
Source: Page 28 of [https://wiki.pine64.org/images/3/31/Quartz64_model-A_schematic_v1.0_20201215.pdf the board schematics].<br />
<br />
== Quartz64 Board Information, Schematics, and Certifications ==<br />
* Model "A" Baseboard Dimensions: 133mm x 80mm x 19mm<br />
* Input Power: DC 12V @ 3A 5.5mmOD/2.1mmID center-positive Barrel DC Jack connector<br />
<br />
* Quartz64 Model "A" SBC Schematic and PCB Board Resource:<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_schematic_v2.0_20210427.pdf Quartz64 Model "A" SBC Schematic ver 2.0 20210427 PDF file]<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_V2.0_connector_placement.pdf Quartz64 Model "A" SBC PCB Connector placement PDF file]<br />
<br />
* Model "B" Baseboard Dimensions: 85mm x 56mm x 18.8mm<br />
* Input Power: DC 5V @ 3A 3.5mmOD/1.35mmID Barrel DC Jack connector<br />
<br />
* Quartz64 Model "B" SBC Schematic and PCB Board Resource:<br />
** Quartz64 Model "B" SBC Schematic not yet available<br />
** [https://files.pine64.org/doc/quartz64/Quartz64%20model-B%20PCB%20placement.pdf Quartz64 Model "B" SBC PCB Connector placement PDF file]<br />
<br />
* Certifications:<br />
** 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 and CE 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.<br />
** [https://files.pine64.org/doc/cert/Quartz64%20Model-A%20CE%20certification-S21051101701001.pdf Quartz64 model-A CE Certificate]<br />
** [https://files.pine64.org/doc/cert/Quartz64%20Model-A%20FCC%20certification-S21051101702001.pdf Quartz64 model-A FCC Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3566 SoC information:<br />
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]<br />
* Rockchip PMU (Power Management Unit) Information:<br />
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet for Quartz64 model A]<br />
** [https://www.rockchip.fr/RK809%20datasheet%20V1.01.pdf Rockchip RK809 ver 1.01 datasheet for Quartz64 model B and SOQuartz]<br />
* LPDDR4 (200 Balls) SDRAM:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]<br />
* E-ink Panel information:<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-754-V3_ES103TC1%20Specification%20V3.0(Signed)-20190702.pdf Eink 10.3" 1872x1404 ES103TC1 Flex Panel Specification]<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf Eink 10.3" 1872x1404 ES103TC1 Glass Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]<br />
* LCD Touch Screen Panel information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0" 1200x600 TFT-LCD Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/HK70DR2459-PG-V01.pdf Touch Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GT911%20Capacitive%20Touch%20Controller%20Datasheet.pdf GOODiX GT911 5-Point Capacitive Touch Controller Datasheet]<br />
* Ethernet PHY information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver]<br />
* WiFi/BT module info:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]<br />
* Enclosure information:<br />
** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/ABS_enclosure_20160426.stp ABS Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/pine64%20Die%20Cast%20casing-final.jpg Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]<br />
* Connector information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/ePH.pdf 2.0mm PH Type connector specification use in Lithium Battery (VBAT) port and RTC Battery port]<br />
** [https://files.pine64.org/doc/datasheet/pine64/0.5FPC%20Front%20Open%20Connector%20H=1.5.pdf 0.5mm Pitch cover type FPC connector specification use in DSI port, TP port and CSI port]<br />
<br />
== Development efforts ==<br />
<br />
{{SeeMainArticle|Quartz64 Development}}<br />
<br />
Information and resources of the ongoing development effort for the Quartz64 can be found on the [[Quartz64 Development]] page, where the current status of various board functions can be found, and whether they have landed in upstream.<br />
<br />
* [https://gitlab.com/pine64-org/quartz-bsp Quartz64 BSP Gitlab Page]<br />
<br />
== BSP Linux SDK ==<br />
<br />
=== BSP Linux SDK ver 4.19 for Quartz64 model A SBC ===<br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed<br />
** File Size: 32.67.00GB<br />
<br />
<br />
<br />
== Android SDK ==<br />
<br />
=== Android 11 SDK for Quartz64 model A SBC ===<br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64_SDK_android11.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 77c2ff57ea3372fb04da7fb49e17d12b<br />
** File Size: 79.00GB<br />
** Just the boot blobs (<1MB): [[File:Rk35-blobs.tar.gz]]<br />
<br />
<br />
=== Android 11 Production Test Build for Quartz64 model A SBC ===<br />
<br />
==== Android 11 Stock Image [eMMC Boot] using DD method [20210604] ====<br />
* DD image to eMMC module using USB adapter for eMMC module and boot. Highly recommend using [https://etcher.io/ Etcher]<br />
* This is test build that used during product testing<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* DD image for 8GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-8GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): e4365753e584d9fce1b8f10f095eede6<br />
*** File Size: 819MB<br />
* DD image for 16GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-16GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 491c5f7744b0ca0b74ae76e607051836<br />
*** File Size: 1.10GB<br />
* DD image for 32GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-32GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 47a6f0cdac8bad06cb920743849a8894<br />
*** File Size: 846MB<br />
* DD image for 64GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-64GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 4e2fed6f5db0d55afdc8a142fc0c4fe1<br />
*** File Size: 884MB<br />
<br />
<br />
==== Android 11 Production Test Build for Quartz64 model A SBC [eMMC Boot] using ROCKChip tools method [20210604] ====<br />
* Please unzip first and then using [https://files.pine64.org/os/Quartz64//android/RKDevTool_Release_v2.84.zip Rockchip Android tool ver 2.84] to flash in<br />
* For Windows OS environment, please install the [https://files.pine64.org/os/Quartz64/android/DriverAssitant_v5.1.1.zip DriverAssistant v5.11] driver first <br />
* This is test build that used during product testing<br />
* The OTG port located at top USB 2.0 port on top of USB 3.0 port, needs USB type A to type A cable.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_20210604_stock_android11_emmcboot.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 800f867fdd0d1b2bd7822c156b6067e3<br />
*** File Size: 812MB<br />
<br />
<br />
=== Android 11 eink SDK for Quartz64 model A SBC ===<br />
* The is the Android SDK build for 10.3" eink panel on Quartz64 model A SBC. <br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 293a550584298de4fb95ceae18103672<br />
** File Size: 72.88GB<br />
** Just the boot blobs (<1MB): [[File:Rk35-blobs.tar.gz]]<br />
<br />
<br />
== Enclosures ==<br />
<br />
All enclosures that fit the ROCKPro64 should fit the Quartz64, as the I/O has been laid out the same on purpose.<br />
<br />
* [["Model A" Acrylic Open Enclosure]] - but see the troubleshooting section below.<br />
* [[ROCKPro64 ABS Enclosure]]<br />
<br />
(Please expand this section with more cases known to work.)<br />
<br />
== Troubleshooting ==<br />
<br />
=== Stability/Boot Issues With Missing Battery Shunt ===<br />
<br />
If there is no battery plugged into the board, the jumper labelled "ON/OFF_BATT" must be in place. If this is set wrong, stability issues such as failures to boot will occur.<br />
<br />
=== No Ethernet Connectivity ===<br />
<br />
Make sure the kernel is built with <code>CONFIG_MOTORCOMM_PHY</code> set to <code>y</code>. Building it as a module (<code>m</code>) and then relying on module auto-loading is unlikely to work as the PHY chip lacks its manufacturer ID.<br />
<br />
=== "Model A" Acrylic Case Doesn't Fit ===<br />
<br />
The Quartz64 does not really fit onto the bottom plate of the [["Model A" Acrylic Open Enclosure]]. This is because the "Mic" connector at the bottom of the board interferes with one of the posts. A workaround is to find out which post that is (you have a 50% chance of guessing it right, accounting for rotating the board) and then filing away the corner of the post pointing inwards by a few millimetres.<br />
<br />
[[File:Quartz64-audio-jack-spacer-issue.jpg]]<br />
<br />
An alternate solution may be to place plastic spacers with a smaller outer diameter in between the acrylic bottom plate posts and the SBC board.<br />
<br />
=== No GPU Acceleration with Debian "Bullseye" Userland ===<br />
<br />
Debian Bullseye ships a Mesa version that is too old to contain the required patches for the RK356x SoC's GPU. You can (at your own risk) [https://wiki.debian.org/DebianTesting use the current Debian Testing version ], called "Bookworm".<br />
<br />
<br />
[[Category:Quartz64]]</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=Quartz64&diff=12251Quartz642022-01-13T20:59:52Z<p>Mrgtwentythree: /* "Model A" Acrylic Case Doesn't Fit */</p>
<hr />
<div>[[File:Quartz64modelb.png|400px|thumb|right|The Quartz64 Model B]]<br />
<br />
The '''Quartz64''' is the most recent Single Board Computer offering from PINE64, initially released in June of 2021. It is powered by a Rockchip RK3566 Quad-Core ARM Cortex A55 64-Bit Processor with a MALI G-52 GPU.<br />
<br />
Key features include a PCIe x4 open ended slot (model A) or m.2 (model B) using one Gen2 lane electrically, and the use of LPDDR4 RAM.<br />
<br />
The Quartz64 has three LPDDR4 system memory options: 2GB, 4GB or 8GB. For booting, there is an eMMC module socket (supporting up to 128GB) and microSD slot, as well as a footprint to solder on an SPI flash chip. The board is equipped with HDMI, 1x USB 3.0 type A Host, 3x USB 2.0 Host, Gigabit Ethernet, SATA (model A), GPIO Bus, MiPi DSI interface, e-ink interface (model A), eDP interface (model A), touch Panel interface (model A), 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 (OS) are freely available from the open source community, such as Linux (Ubuntu, Debian, Arch), BSD, and Android.<br />
<br />
== Software releases ==<br />
<br />
{{warning|Software for the Quartz64 is still early in development, and therefore currently lacks features such as the ability to produce video output. You are strongly encouraged to procure a 3.3V UART serial adapter capable of running at 1.5 mbauds, such as [https://pine64.com/product/serial-console-woodpecker-edition/ the woodpecker] if you want to use a Quartz64 at this stage.}} <br />
<br />
=== Manjaro ARM ===<br />
[[File:Manjaro.png|right|100px]]<br />
<br />
Manjaro ARM is a user friendly rolling release distribution, based on Arch Linux ARM.<br />
<br />
==== Manjaro ARM with no desktop ====<br />
<br />
* [https://github.com/manjaro-arm/quartz64-bsp-images/releases Weekly images on Github]<br />
Note, manjaro currently ships with the linux-rc kernel. Currently (and temporarily/as of writing), usb3, pcie and sata devices will not be found unless you swap to the linux-quartz64 kernel <code>pacman -S linux-quartz64</code>.<br />
<br />
==== Manjaro ARM with desktop environment ====<br />
<br />
Since '''Dev 20211117''' with hdmi output (linux-rc)<br />
<br />
* Gnome<br />
* KDE Plasma<br />
* Mate<br />
* Sway<br />
* XFCE<br />
<br />
* [https://github.com/manjaro-arm/quartz64-bsp-images/releases Weekly images on Github]<br />
<br />
Note: Video out only working on 4 GB boards with 1080p monitors right now as the VOP2 patches are very early.<br />
<br />
=== pgwipeout's Quartz64 CI ===<br />
<br />
pgwipeout provides continuously rebuilt set of images for Quartz64 devices which includes a Debian installer and a buildroot rescue environment. It is aimed at advanced users who generally know their way around a Linux system, and as a baseline for whether something is working or not. Works on both SD cards and eMMC, uses pgwipeout's patched kernel. Kernels aren't auto-updated on the installed system, so the user manually has to do this by mounting the actual correct boot partition.<br />
<br />
'''Download:''' https://gitlab.com/pgwipeout/quartz64_ci/-/pipelines (Click the three dots on the right, download the merge-job archive.)<br />
<br />
For Quartz64 Model A, flash <tt>rk3566-quartz64-a.dtb.img.xz</tt>. On Linux, you can for example do this as follows, assuming your target device is <tt>/dev/sdb</tt>:<br />
<br />
sudo -i; xzcat /path/to/rk3566-quartz64-a.dtb.img.xz > /dev/sdb<br />
<br />
=== Arch Linux ARM (Unofficial, Highly Experimental) ===<br />
<br />
See [[Installing Arch Linux ARM On The Quartz64]] for detailed instructions. Users who are not feeling adventurous are advised to hold off until kernel 5.16 is released and packaged.<br />
<br />
=== Tianocore EDK II port by jmcneill ===<br />
<br />
This (as of 2021-12-30) is a work in progress to enable UEFI enabled systems, and is able to bring up USB, PCIe with SATA and NVMe, HDMI, thermal sensors, TRNG, as well as general Cortex A-55 features. Known to work with NetBSD -current, and the ESXi Arm fling version 1.8.<br />
<br />
* [https://github.com/jaredmcneill/quartz64_uefi jmcneill's Quartz64 UEFI Github]<br />
<br />
== SoC and Memory Specifications ==<br />
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]<br />
[[File:RK3566_icon.png|right]]<br />
<br />
=== CPU Architecture ===<br />
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]<br />
* AArch32 for full backwards compatibility with ARMv7<br />
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
* Includes VFP hardware to support single and double-precision operations<br />
* ARMv8 Cryptography Extensions<br />
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core<br />
* 512KB unified system L3 cache<br />
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support<br />
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]<br />
<br />
=== GPU (Graphics Processing Unit) Capabilities ===<br />
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]<br />
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop <br />
* 128KB L2 Cache configurations<br />
* Supports OpenGL ES 1.1, 2.0, and 3.2<br />
* Supports Vulkan 1.0 and 1.1<br />
* Supports OpenCL 2.0 Full Profile<br />
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency<br />
* Supports 38.4 GLOP/s when at 800MHz clock frequency <br />
<br />
=== NPU (Neural Processing Unit) Capabilities ===<br />
* Neural network acceleration engine with processing performance of up to 0.8 TOPS<br />
* Supports integer 8 and integer 16 convolution operations<br />
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet<br />
<br />
=== System Memory ===<br />
* RAM Memory Variants: 2GB (SOQuartz only), 4GB, 8GB LPDDR4.<br />
<br />
=== Network ===<br />
* 10/100/1000Mbps Ethernet<br />
* WiFi 802.11 b/g/n/ac with Bluetooth 5.0 (optional on model A, built in on model B)<br />
<br />
=== Storage ===<br />
* microSD - bootable, supports SDHC and SDXC, storage up to 2TB<br />
* USB<br />
** Model A: 2 USB 2.0 host ports, 1 USB 2.0 OTG port, 1 USB 3.0 host port<br />
** Model B: 1 USB 2.0 host port, 1 USB 2.0 OTG port, 1 USB 3.0 host port<br />
* one native SATA 3.0 6Gb/s Port (only on model A, shared with USB 3.0 host port)<br />
* optional eMMC module from 16GB up to 128GB<br />
<br />
==== eMMC Speeds ====<br />
<br />
On a 64 GB eMMC module:<br />
<br />
$ sudo hdparm -tT /dev/mmcblk1 <br />
<br />
/dev/mmcblk1:<br />
Timing cached reads: 2368 MB in 2.00 seconds = 1184.46 MB/sec<br />
Timing buffered disk reads: 452 MB in 3.01 seconds = 149.98 MB/sec<br />
<br />
=== Expansion Ports ===<br />
* HDMI<br />
* eDP - 4 lanes of 2.7Gbps, up to 2560x1600@60Hz (only on model A)<br />
* DSI - Display Serial Interface, 4 lanes MiPi, up to 1440P on model A, 2 lanes MiPi, up to 1080p on model B <br />
* CSI - CMOS Camera Interface, 4 lanes MiPi up to 8 mega pixel on model A, 2 lanes MiPi up to 5 mega pixel on model B <br />
* TP - Touch Panel Port, SPI with interrupt on model A<br />
* RTC - Real Time Clock Battery Connector<br />
* VBAT - Lithium Battery Connector with temperature sensor input on model A<br />
* Wifi/BT Module Header - SDIO 3.0 and UART on model A, build in Wifi/BT Module on model B<br />
* 2x20 pins "Pi2" GPIO Header on model B, 2x10 pins GPO header on model A<br />
* PCIe x4 open ended slot on model A, m.2 slot on model B, one Gen2 lane due to SoC constraints<br />
** On Model A, the slot provides 10W of power for the 3.3V supply and however much power your 12V input power supply provides on the 12V supply<br />
<br />
The PCIe implementation on the RK3566 is much more compatible with a wide range of devices compared to the one on the RK3399 used on the ROCKPro64. This means a lot more devices should work (excluding dGPUs due to a lack of cache snooping ability). As an example, PCIe-to-PCI bridges work, whereas they didn't on the ROCKPro64.<br />
<br />
==== Combo PHYs ====<br />
<br />
[[File:rk3566 phy.png]]<br />
<br />
Several of the I/O options on the RK3566 used in the Quartz64 are using the same I/O lines, meaning that they cannot be used at the same time. The above diagram illustrates how they are connected.<br />
<br />
In particular, USB 3.0 and the SATA connector on the board are mutually exclusive, and the PCI-e 2.0 lane can be reconfigured into a second SATA port, though an adapter cable needs to be fashioned for this to be useful.<br />
<br />
=== GPIO Pins (Quartz64 Model A) ===<br />
<br />
Attention! GPIOs are 3.3V!<br />
<br />
{| class="wikitable plainrowheaders" border="1"<br />
! scope="col" style="width:20em;" | Assigned To<br />
! scope="col" | Pin Nr.<br />
! scope="col" | Pin Nr.<br />
! scope="col" style="width:20em;" | Assigned To<br />
|-<br />
| style="text-align:right;"| 3.3 V<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 2<br />
| style="text-align:left;"| 5 V<br />
|-<br />
| style="text-align:right;"| I2C3_SDA_M0 <sup style="font-style:italic;color:green">a,b</sup><br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 3<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 4<br />
| style="text-align:left;"| 5 V<br />
|-<br />
| style="text-align:right;"| I2C3_SCL_M0 <sup style="font-style:italic;color:green">a,b</sup><br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 5<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 6<br />
| style="text-align:left;"| GND<br />
|-<br />
| style="text-align:right;"| CPU_REFCLK_OUT<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 7<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 8<br />
| style="text-align:left;"| UART2_TX_M0_DEBUG<br />
|-<br />
| style="text-align:right;"| GND<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 9<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 10<br />
| style="text-align:left;"| UART2_RX_M0_DEBUG<br />
|-<br />
| style="text-align:right;"| SPI1_MOSI_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 11<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 12<br />
| style="text-align:left;"| UART0_TX <sup style="font-style:italic;color:green">a</sup><br />
|-<br />
| style="text-align:right;"| SPI1_MISO_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 13<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 14<br />
| style="text-align:left;"| UART0_RX <sup style="font-style:italic;color:green">a</sup><br />
|-<br />
| style="text-align:right;"| SPI1_CLK_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 15<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 16<br />
| style="text-align:left;"| GND<br />
|-<br />
| style="text-align:right;"| SPI1_CS0_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 17<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 18<br />
| style="text-align:left;"| SPDIF_OUT <sup style="font-style:italic;color:green">c</sup><br />
|-<br />
| style="text-align:right;"| GND<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 19<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 20<br />
| style="text-align:left;"| 3.3V<br />
|}<br />
<br />
====Notes====<br />
<ol style="list-style-type:lower-alpha"><br />
<li>can be a PWM pin</li><br />
<li>pulled high to 3.3V through 2.2kOhm resistor</li><br />
<li>low-pass filtered with cutoff of 220 MHz</li><br />
</ol><br />
<br />
Source: Page 28 of [https://wiki.pine64.org/images/3/31/Quartz64_model-A_schematic_v1.0_20201215.pdf the board schematics].<br />
<br />
== Quartz64 Board Information, Schematics, and Certifications ==<br />
* Model "A" Baseboard Dimensions: 133mm x 80mm x 19mm<br />
* Input Power: DC 12V @ 3A 5.5mmOD/2.1mmID center-positive Barrel DC Jack connector<br />
<br />
* Quartz64 Model "A" SBC Schematic and PCB Board Resource:<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_schematic_v2.0_20210427.pdf Quartz64 Model "A" SBC Schematic ver 2.0 20210427 PDF file]<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_V2.0_connector_placement.pdf Quartz64 Model "A" SBC PCB Connector placement PDF file]<br />
<br />
* Model "B" Baseboard Dimensions: 85mm x 56mm x 18.8mm<br />
* Input Power: DC 5V @ 3A 3.5mmOD/1.35mmID Barrel DC Jack connector<br />
<br />
* Quartz64 Model "B" SBC Schematic and PCB Board Resource:<br />
** Quartz64 Model "B" SBC Schematic not yet available<br />
** [https://files.pine64.org/doc/quartz64/Quartz64%20model-B%20PCB%20placement.pdf Quartz64 Model "B" SBC PCB Connector placement PDF file]<br />
<br />
* Certifications:<br />
** 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 and CE 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.<br />
** [https://files.pine64.org/doc/cert/Quartz64%20Model-A%20CE%20certification-S21051101701001.pdf Quartz64 model-A CE Certificate]<br />
** [https://files.pine64.org/doc/cert/Quartz64%20Model-A%20FCC%20certification-S21051101702001.pdf Quartz64 model-A FCC Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3566 SoC information:<br />
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]<br />
* Rockchip PMU (Power Management Unit) Information:<br />
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet for Quartz64 model A]<br />
** [https://www.rockchip.fr/RK809%20datasheet%20V1.01.pdf Rockchip RK809 ver 1.01 datasheet for Quartz64 model B and SOQuartz]<br />
* LPDDR4 (200 Balls) SDRAM:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]<br />
* E-ink Panel information:<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-754-V3_ES103TC1%20Specification%20V3.0(Signed)-20190702.pdf Eink 10.3" 1872x1404 ES103TC1 Flex Panel Specification]<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf Eink 10.3" 1872x1404 ES103TC1 Glass Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]<br />
* LCD Touch Screen Panel information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0" 1200x600 TFT-LCD Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/HK70DR2459-PG-V01.pdf Touch Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GT911%20Capacitive%20Touch%20Controller%20Datasheet.pdf GOODiX GT911 5-Point Capacitive Touch Controller Datasheet]<br />
* Ethernet PHY information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver]<br />
* WiFi/BT module info:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]<br />
* Enclosure information:<br />
** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/ABS_enclosure_20160426.stp ABS Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/pine64%20Die%20Cast%20casing-final.jpg Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]<br />
* Connector information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/ePH.pdf 2.0mm PH Type connector specification use in Lithium Battery (VBAT) port and RTC Battery port]<br />
** [https://files.pine64.org/doc/datasheet/pine64/0.5FPC%20Front%20Open%20Connector%20H=1.5.pdf 0.5mm Pitch cover type FPC connector specification use in DSI port, TP port and CSI port]<br />
<br />
== Development efforts ==<br />
<br />
{{SeeMainArticle|Quartz64 Development}}<br />
<br />
Information and resources of the ongoing development effort for the Quartz64 can be found on the [[Quartz64 Development]] page, where the current status of various board functions can be found, and whether they have landed in upstream.<br />
<br />
* [https://gitlab.com/pine64-org/quartz-bsp Quartz64 BSP Gitlab Page]<br />
<br />
== BSP Linux SDK ==<br />
<br />
=== BSP Linux SDK ver 4.19 for Quartz64 model A SBC ===<br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed<br />
** File Size: 32.67.00GB<br />
<br />
<br />
<br />
== Android SDK ==<br />
<br />
=== Android 11 SDK for Quartz64 model A SBC ===<br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64_SDK_android11.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 77c2ff57ea3372fb04da7fb49e17d12b<br />
** File Size: 79.00GB<br />
** Just the boot blobs (<1MB): [[File:Rk35-blobs.tar.gz]]<br />
<br />
<br />
=== Android 11 Production Test Build for Quartz64 model A SBC ===<br />
<br />
==== Android 11 Stock Image [eMMC Boot] using DD method [20210604] ====<br />
* DD image to eMMC module using USB adapter for eMMC module and boot. Highly recommend using [https://etcher.io/ Etcher]<br />
* This is test build that used during product testing<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* DD image for 8GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-8GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): e4365753e584d9fce1b8f10f095eede6<br />
*** File Size: 819MB<br />
* DD image for 16GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-16GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 491c5f7744b0ca0b74ae76e607051836<br />
*** File Size: 1.10GB<br />
* DD image for 32GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-32GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 47a6f0cdac8bad06cb920743849a8894<br />
*** File Size: 846MB<br />
* DD image for 64GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-64GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 4e2fed6f5db0d55afdc8a142fc0c4fe1<br />
*** File Size: 884MB<br />
<br />
<br />
==== Android 11 Production Test Build for Quartz64 model A SBC [eMMC Boot] using ROCKChip tools method [20210604] ====<br />
* Please unzip first and then using [https://files.pine64.org/os/Quartz64//android/RKDevTool_Release_v2.84.zip Rockchip Android tool ver 2.84] to flash in<br />
* For Windows OS environment, please install the [https://files.pine64.org/os/Quartz64/android/DriverAssitant_v5.1.1.zip DriverAssistant v5.11] driver first <br />
* This is test build that used during product testing<br />
* The OTG port located at top USB 2.0 port on top of USB 3.0 port, needs USB type A to type A cable.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_20210604_stock_android11_emmcboot.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 800f867fdd0d1b2bd7822c156b6067e3<br />
*** File Size: 812MB<br />
<br />
<br />
=== Android 11 eink SDK for Quartz64 model A SBC ===<br />
* The is the Android SDK build for 10.3" eink panel on Quartz64 model A SBC. <br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 293a550584298de4fb95ceae18103672<br />
** File Size: 72.88GB<br />
** Just the boot blobs (<1MB): [[File:Rk35-blobs.tar.gz]]<br />
<br />
<br />
== Enclosures ==<br />
<br />
All enclosures that fit the ROCKPro64 should fit the Quartz64, as the I/O has been laid out the same on purpose.<br />
<br />
* [["Model A" Acrylic Open Enclosure]] - but see the troubleshooting section below.<br />
* [[ROCKPro64 ABS Enclosure]]<br />
<br />
(Please expand this section with more cases known to work.)<br />
<br />
== Troubleshooting ==<br />
<br />
=== Stability/Boot Issues With Missing Battery Shunt ===<br />
<br />
If there is no battery plugged into the board, the jumper labelled "ON/OFF_BATT" must be in place. If this is set wrong, stability issues such as failures to boot will occur.<br />
<br />
=== No Ethernet Connectivity ===<br />
<br />
Make sure the kernel is built with <code>CONFIG_MOTORCOMM_PHY</code> set to <code>y</code>. Building it as a module (<code>m</code>) and then relying on module auto-loading is unlikely to work as the PHY chip lacks its manufacturer ID.<br />
<br />
=== "Model A" Acrylic Case Doesn't Fit ===<br />
<br />
The Quartz64 does not really fit onto the bottom plate of the [["Model A" Acrylic Open Enclosure]]. This is because the "Mic" connector at the bottom of the board interferes with one of the posts. A workaround is to find out which post that is (you have a 50% chance of guessing it right, accounting for rotating the board) and then filing away the corner of the post pointing inwards by a few millimetres.<br />
<br />
[[File:Quartz64-audio-jack-spacer-issue.jpg]]<br />
<br />
An alternate solution may be to place plastic spacers with a smaller outer diameter in between the acrylic bottom plate posts and the SBC board.<br />
<br />
=== No GPU Acceleration with Debian "Bullseye" Userland ===<br />
<br />
Debian Bullseye ships a Mesa version that is too old to contain the required patches for the RK356x SoC's GPU. You can (at your own risk) [https://wiki.debian.org/DebianTesting use the current Debian Testing version ], called "Bookworm".<br />
<br />
<br />
[[Category:Quartz64]]</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=File:Quartz64-audio-jack-spacer-issue.jpg&diff=12250File:Quartz64-audio-jack-spacer-issue.jpg2022-01-13T20:57:24Z<p>Mrgtwentythree: a picture showing how the spacer does not fit properly.</p>
<hr />
<div>== Summary ==<br />
a picture showing how the spacer does not fit properly.<br />
== Licensing ==<br />
{{PD|PD}}</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=Quartz64&diff=12127Quartz642021-12-30T17:22:46Z<p>Mrgtwentythree: /* Software releases */</p>
<hr />
<div>[[File:Quartz64modelb.png|400px|thumb|right|The Quartz64 Model B]]<br />
<br />
The '''Quartz64''' is the most recent Single Board Computer offering from PINE64, initially released in June of 2021. It is powered by a Rockchip RK3566 Quad-Core ARM Cortex A55 64-Bit Processor with a MALI G-52 GPU.<br />
<br />
Key features include a PCIe x4 open ended slot (model A) or m.2 (model B) using one Gen2 lane electrically, and the use of LPDDR4 RAM.<br />
<br />
The Quartz64 has three LPDDR4 system memory options: 2GB, 4GB or 8GB. For booting, there is an eMMC module socket (supporting up to 128GB) and microSD slot, as well as a footprint to solder on an SPI flash chip. The board is equipped with HDMI, 1x USB 3.0 type A Host, 3x USB 2.0 Host, Gigabit Ethernet, SATA (model A), GPIO Bus, MiPi DSI interface, e-ink interface (model A), eDP interface (model A), touch Panel interface (model A), 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 (OS) are freely available from the open source community, such as Linux (Ubuntu, Debian, Arch), BSD, and Android.<br />
<br />
== Software releases ==<br />
<br />
{{warning|Software for the Quartz64 is still early in development, and therefore currently lacks features such as the ability to produce video output. You are strongly encouraged to procure a 3.3V UART serial adapter capable of running at 1.5 mbauds, such as [https://pine64.com/product/serial-console-woodpecker-edition/ the woodpecker] if you want to use a Quartz64 at this stage.}} <br />
<br />
=== Manjaro ARM ===<br />
[[File:Manjaro.png|right|100px]]<br />
<br />
Manjaro ARM is a user friendly rolling release distribution, based on Arch Linux ARM.<br />
<br />
==== Manjaro ARM with no desktop ====<br />
<br />
* [https://github.com/manjaro-arm/quartz64-bsp-images/releases Weekly images on Github]<br />
<br />
==== Manjaro ARM with desktop environment ====<br />
<br />
Since '''Dev 20211117''' with hdmi output (linux-rc)<br />
<br />
* Gnome<br />
* KDE Plasma<br />
* Mate<br />
* Sway<br />
* XFCE<br />
<br />
* [https://github.com/manjaro-arm/quartz64-bsp-images/releases Weekly images on Github]<br />
<br />
Note: Video out only working on 4 GB boards with 1080p monitors right now as the VOP2 patches are very early.<br />
<br />
=== pgwipeout's Quartz64 CI ===<br />
<br />
pgwipeout provides continuously rebuilt set of images for Quartz64 devices which includes a Debian installer and a buildroot rescue environment. It is aimed at advanced users who generally know their way around a Linux system, and as a baseline for whether something is working or not. Works on both SD cards and eMMC, uses pgwipeout's patched kernel. Kernels aren't auto-updated on the installed system, so the user manually has to do this by mounting the actual correct boot partition.<br />
<br />
'''Download:''' https://gitlab.com/pgwipeout/quartz64_ci/-/pipelines (Click the three dots on the right, download the merge-job archive.)<br />
<br />
For Quartz64 Model A, flash <tt>rk3566-quartz64-a.dtb.img.xz</tt>. On Linux, you can for example do this as follows, assuming your target device is <tt>/dev/sdb</tt>:<br />
<br />
sudo -i; xzcat /path/to/rk3566-quartz64-a.dtb.img.xz > /dev/sdb<br />
<br />
=== Arch Linux ARM (Unofficial, Highly Experimental) ===<br />
<br />
See [[Installing Arch Linux ARM On The Quartz64]] for detailed instructions. Users who are not feeling adventurous are advised to hold off until kernel 5.16 is released and packaged.<br />
<br />
=== Tianocore EDK II port by jmcneill ===<br />
<br />
This (as of 2021-12-30) is a work in progress to enable UEFI enabled systems, and is able to bring up USB, PCIe with SATA and NVMe, HDMI, thermal sensors, TRNG, as well as general Cortex A-55 features. Known to work with NetBSD -current, and the ESXi Arm fling version 1.8.<br />
<br />
* [https://github.com/jaredmcneill/quartz64_uefi jmcneill's Quartz64 UEFI Github]<br />
<br />
== SoC and Memory Specifications ==<br />
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]<br />
[[File:RK3566_icon.png|right]]<br />
<br />
=== CPU Architecture ===<br />
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]<br />
* AArch32 for full backwards compatibility with ARMv7<br />
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
* Includes VFP hardware to support single and double-precision operations<br />
* ARMv8 Cryptography Extensions<br />
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core<br />
* 512KB unified system L3 cache<br />
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support<br />
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]<br />
<br />
=== GPU (Graphics Processing Unit) Capabilities ===<br />
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]<br />
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop <br />
* 128KB L2 Cache configurations<br />
* Supports OpenGL ES 1.1, 2.0, and 3.2<br />
* Supports Vulkan 1.0 and 1.1<br />
* Supports OpenCL 2.0 Full Profile<br />
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency<br />
* Supports 38.4 GLOP/s when at 800MHz clock frequency <br />
<br />
=== NPU (Neural Processing Unit) Capabilities ===<br />
* Neural network acceleration engine with processing performance of up to 0.8 TOPS<br />
* Supports integer 8 and integer 16 convolution operations<br />
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet<br />
<br />
=== System Memory ===<br />
* RAM Memory Variants: 2GB (SOQuartz only), 4GB, 8GB LPDDR4.<br />
<br />
=== Network ===<br />
* 10/100/1000Mbps Ethernet<br />
* WiFi 802.11 b/g/n/ac with Bluetooth 5.0 (optional on model A, built in on model B)<br />
<br />
=== Storage ===<br />
* microSD - bootable, supports SDHC and SDXC, storage up to 2TB<br />
* USB<br />
** Model A: 2 USB 2.0 host ports, 1 USB 2.0 OTG port, 1 USB 3.0 host port<br />
** Model B: 1 USB 2.0 host port, 1 USB 2.0 OTG port, 1 USB 3.0 host port<br />
* one native SATA 3.0 6Gb/s Port (only on model A, shared with USB 3.0 host port)<br />
* optional eMMC module from 16GB up to 128GB<br />
<br />
==== eMMC Speeds ====<br />
<br />
On a 64 GB eMMC module:<br />
<br />
$ sudo hdparm -tT /dev/mmcblk1 <br />
<br />
/dev/mmcblk1:<br />
Timing cached reads: 2368 MB in 2.00 seconds = 1184.46 MB/sec<br />
Timing buffered disk reads: 452 MB in 3.01 seconds = 149.98 MB/sec<br />
<br />
=== Expansion Ports ===<br />
* HDMI<br />
* eDP - 4 lanes of 2.7Gbps, up to 2560x1600@60Hz (only on model A)<br />
* DSI - Display Serial Interface, 4 lanes MiPi, up to 1440P on model A, 2 lanes MiPi, up to 1080p on model B <br />
* CSI - CMOS Camera Interface, 4 lanes MiPi up to 8 mega pixel on model A, 2 lanes MiPi up to 5 mega pixel on model B <br />
* TP - Touch Panel Port, SPI with interrupt on model A<br />
* RTC - Real Time Clock Battery Connector<br />
* VBAT - Lithium Battery Connector with temperature sensor input on model A<br />
* Wifi/BT Module Header - SDIO 3.0 and UART on model A, build in Wifi/BT Module on model B<br />
* 2x20 pins "Pi2" GPIO Header on model B, 2x10 pins GPO header on model A<br />
* PCIe x4 open ended slot on model A, m.2 slot on model B, one Gen2 lane due to SoC constraints<br />
** On Model A, the slot provides 10W of power for the 3.3V supply and however much power your 12V input power supply provides on the 12V supply<br />
<br />
The PCIe implementation on the RK3566 is much more compatible with a wide range of devices compared to the one on the RK3399 used on the ROCKPro64. This means a lot more devices should work (excluding dGPUs due to a lack of cache snooping ability). As an example, PCIe-to-PCI bridges work, whereas they didn't on the ROCKPro64.<br />
<br />
==== Combo PHYs ====<br />
<br />
[[File:rk3566 phy.png]]<br />
<br />
Several of the I/O options on the RK3566 used in the Quartz64 are using the same I/O lines, meaning that they cannot be used at the same time. The above diagram illustrates how they are connected.<br />
<br />
In particular, USB 3.0 and the SATA connector on the board are mutually exclusive, and the PCI-e 2.0 lane can be reconfigured into a second SATA port, though an adapter cable needs to be fashioned for this to be useful.<br />
<br />
=== GPIO Pins (Quartz64 Model A) ===<br />
<br />
Attention! GPIOs are 3.3V!<br />
<br />
{| class="wikitable plainrowheaders" border="1"<br />
! scope="col" style="width:20em;" | Assigned To<br />
! scope="col" | Pin Nr.<br />
! scope="col" | Pin Nr.<br />
! scope="col" style="width:20em;" | Assigned To<br />
|-<br />
| style="text-align:right;"| 3.3 V<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 2<br />
| style="text-align:left;"| 5 V<br />
|-<br />
| style="text-align:right;"| I2C3_SDA_M0 <sup style="font-style:italic;color:green">a,b</sup><br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 3<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 4<br />
| style="text-align:left;"| 5 V<br />
|-<br />
| style="text-align:right;"| I2C3_SCL_M0 <sup style="font-style:italic;color:green">a,b</sup><br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 5<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 6<br />
| style="text-align:left;"| GND<br />
|-<br />
| style="text-align:right;"| CPU_REFCLK_OUT<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 7<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 8<br />
| style="text-align:left;"| UART2_TX_M0_DEBUG<br />
|-<br />
| style="text-align:right;"| GND<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 9<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 10<br />
| style="text-align:left;"| UART2_RX_M0_DEBUG<br />
|-<br />
| style="text-align:right;"| SPI1_MOSI_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 11<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 12<br />
| style="text-align:left;"| UART0_TX <sup style="font-style:italic;color:green">a</sup><br />
|-<br />
| style="text-align:right;"| SPI1_MISO_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 13<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 14<br />
| style="text-align:left;"| UART0_RX <sup style="font-style:italic;color:green">a</sup><br />
|-<br />
| style="text-align:right;"| SPI1_CLK_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 15<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 16<br />
| style="text-align:left;"| GND<br />
|-<br />
| style="text-align:right;"| SPI1_CS0_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 17<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 18<br />
| style="text-align:left;"| SPDIF_OUT <sup style="font-style:italic;color:green">c</sup><br />
|-<br />
| style="text-align:right;"| GND<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 19<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 20<br />
| style="text-align:left;"| 3.3V<br />
|}<br />
<br />
====Notes====<br />
<ol style="list-style-type:lower-alpha"><br />
<li>can be a PWM pin</li><br />
<li>pulled high to 3.3V through 2.2kOhm resistor</li><br />
<li>low-pass filtered with cutoff of 220 MHz</li><br />
</ol><br />
<br />
Source: Page 28 of [https://wiki.pine64.org/images/3/31/Quartz64_model-A_schematic_v1.0_20201215.pdf the board schematics].<br />
<br />
== Quartz64 Board Information, Schematics, and Certifications ==<br />
* Model "A" Baseboard Dimensions: 133mm x 80mm x 19mm<br />
* Input Power: DC 12V @ 3A 5.5mmOD/2.1mmID center-positive Barrel DC Jack connector<br />
<br />
* Quartz64 Model "A" SBC Schematic and PCB Board Resource:<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_schematic_v2.0_20210427.pdf Quartz64 Model "A" SBC Schematic ver 2.0 20210427 PDF file]<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_V2.0_connector_placement.pdf Quartz64 Model "A" SBC PCB Connector placement PDF file]<br />
<br />
* Model "B" Baseboard Dimensions: 85mm x 56mm x 18.8mm<br />
* Input Power: DC 5V @ 3A 3.5mmOD/1.35mmID Barrel DC Jack connector<br />
<br />
* Quartz64 Model "B" SBC Schematic and PCB Board Resource:<br />
** Quartz64 Model "B" SBC Schematic not yet available<br />
** [https://files.pine64.org/doc/quartz64/Quartz64%20model-B%20PCB%20placement.pdf Quartz64 Model "B" SBC PCB Connector placement PDF file]<br />
<br />
* Certifications:<br />
** 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 and CE 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.<br />
** [https://files.pine64.org/doc/cert/Quartz64%20Model-A%20CE%20certification-S21051101701001.pdf Quartz64 model-A CE Certificate]<br />
** [https://files.pine64.org/doc/cert/Quartz64%20Model-A%20FCC%20certification-S21051101702001.pdf Quartz64 model-A FCC Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3566 SoC information:<br />
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]<br />
* Rockchip PMU (Power Management Unit) Information:<br />
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet for Quartz64 model A]<br />
** [https://www.rockchip.fr/RK809%20datasheet%20V1.01.pdf Rockchip RK809 ver 1.01 datasheet for Quartz64 model B and SOQuartz]<br />
* LPDDR4 (200 Balls) SDRAM:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]<br />
* E-ink Panel information:<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-754-V3_ES103TC1%20Specification%20V3.0(Signed)-20190702.pdf Eink 10.3" 1872x1404 ES103TC1 Flex Panel Specification]<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf Eink 10.3" 1872x1404 ES103TC1 Glass Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]<br />
* LCD Touch Screen Panel information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0" 1200x600 TFT-LCD Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/HK70DR2459-PG-V01.pdf Touch Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GT911%20Capacitive%20Touch%20Controller%20Datasheet.pdf GOODiX GT911 5-Point Capacitive Touch Controller Datasheet]<br />
* Ethernet PHY information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver]<br />
* WiFi/BT module info:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]<br />
* Enclosure information:<br />
** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/ABS_enclosure_20160426.stp ABS Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/pine64%20Die%20Cast%20casing-final.jpg Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]<br />
* Connector information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/ePH.pdf 2.0mm PH Type connector specification use in Lithium Battery (VBAT) port and RTC Battery port]<br />
** [https://files.pine64.org/doc/datasheet/pine64/0.5FPC%20Front%20Open%20Connector%20H=1.5.pdf 0.5mm Pitch cover type FPC connector specification use in DSI port, TP port and CSI port]<br />
<br />
== Development efforts ==<br />
<br />
{{SeeMainArticle|Quartz64 Development}}<br />
<br />
Information and resources of the ongoing development effort for the Quartz64 can be found on the [[Quartz64 Development]] page, where the current status of various board functions can be found, and whether they have landed in upstream.<br />
<br />
* [https://gitlab.com/pine64-org/quartz-bsp Quartz64 BSP Gitlab Page]<br />
<br />
== BSP Linux SDK ==<br />
<br />
=== BSP Linux SDK ver 4.19 for Quartz64 model A SBC ===<br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed<br />
** File Size: 32.67.00GB<br />
<br />
<br />
<br />
== Android SDK ==<br />
<br />
=== Android 11 SDK for Quartz64 model A SBC ===<br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64_SDK_android11.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 77c2ff57ea3372fb04da7fb49e17d12b<br />
** File Size: 79.00GB<br />
** Just the boot blobs (<1MB): [[File:Rk35-blobs.tar.gz]]<br />
<br />
<br />
=== Android 11 Production Test Build for Quartz64 model A SBC ===<br />
<br />
==== Android 11 Stock Image [eMMC Boot] using DD method [20210604] ====<br />
* DD image to eMMC module using USB adapter for eMMC module and boot. Highly recommend using [https://etcher.io/ Etcher]<br />
* This is test build that used during product testing<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* DD image for 8GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-8GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): e4365753e584d9fce1b8f10f095eede6<br />
*** File Size: 819MB<br />
* DD image for 16GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-16GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 491c5f7744b0ca0b74ae76e607051836<br />
*** File Size: 1.10GB<br />
* DD image for 32GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-32GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 47a6f0cdac8bad06cb920743849a8894<br />
*** File Size: 846MB<br />
* DD image for 64GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-64GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 4e2fed6f5db0d55afdc8a142fc0c4fe1<br />
*** File Size: 884MB<br />
<br />
<br />
==== Android 11 Production Test Build for Quartz64 model A SBC [eMMC Boot] using ROCKChip tools method [20210604] ====<br />
* Please unzip first and then using [https://files.pine64.org/os/Quartz64//android/RKDevTool_Release_v2.84.zip Rockchip Android tool ver 2.84] to flash in<br />
* For Windows OS environment, please install the [https://files.pine64.org/os/Quartz64/android/DriverAssitant_v5.1.1.zip DriverAssistant v5.11] driver first <br />
* This is test build that used during product testing<br />
* The OTG port located at top USB 2.0 port on top of USB 3.0 port, needs USB type A to type A cable.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_20210604_stock_android11_emmcboot.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 800f867fdd0d1b2bd7822c156b6067e3<br />
*** File Size: 812MB<br />
<br />
<br />
=== Android 11 eink SDK for Quartz64 model A SBC ===<br />
* The is the Android SDK build for 10.3" eink panel on Quartz64 model A SBC. <br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 293a550584298de4fb95ceae18103672<br />
** File Size: 72.88GB<br />
** Just the boot blobs (<1MB): [[File:Rk35-blobs.tar.gz]]<br />
<br />
<br />
== Enclosures ==<br />
<br />
All enclosures that fit the ROCKPro64 should fit the Quartz64, as the I/O has been laid out the same on purpose.<br />
<br />
* [["Model A" Acrylic Open Enclosure]] - but see the troubleshooting section below.<br />
* [[ROCKPro64 ABS Enclosure]]<br />
<br />
(Please expand this section with more cases known to work.)<br />
<br />
== Troubleshooting ==<br />
<br />
=== Stability/Boot Issues With Missing Battery Shunt ===<br />
<br />
If there is no battery plugged into the board, the jumper labelled "ON/OFF_BATT" must be in place. If this is set wrong, stability issues such as failures to boot will occur.<br />
<br />
=== No Ethernet Connectivity ===<br />
<br />
Make sure the kernel is built with <code>CONFIG_MOTORCOMM_PHY</code> set to <code>y</code>. Building it as a module (<code>m</code>) and then relying on module auto-loading is unlikely to work as the PHY chip lacks its manufacturer ID.<br />
<br />
=== "Model A" Acrylic Case Doesn't Fit ===<br />
<br />
The Quartz64 does not really fit onto the bottom plate of the [["Model A" Acrylic Open Enclosure]]. This is because the "Mic" connector at the bottom of the board interferes with one of the posts. A workaround is to find out which post that is (you have a 50% chance of guessing it right, accounting for rotating the board) and then filing away the corner of the post pointing inwards by a few millimetres.<br />
<br />
An alternate solution may be to place plastic spacers with a smaller outer diameter in between the acrylic bottom plate posts and the SBC board.<br />
<br />
=== No GPU Acceleration with Debian "Bullseye" Userland ===<br />
<br />
Debian Bullseye ships a Mesa version that is too old to contain the required patches for the RK356x SoC's GPU. You can (at your own risk) [https://wiki.debian.org/DebianTesting use the current Debian Testing version ], called "Bookworm".<br />
<br />
<br />
[[Category:Quartz64]]</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=Quartz64&diff=12126Quartz642021-12-30T17:12:59Z<p>Mrgtwentythree: /* Enclosures */</p>
<hr />
<div>[[File:Quartz64modelb.png|400px|thumb|right|The Quartz64 Model B]]<br />
<br />
The '''Quartz64''' is the most recent Single Board Computer offering from PINE64, initially released in June of 2021. It is powered by a Rockchip RK3566 Quad-Core ARM Cortex A55 64-Bit Processor with a MALI G-52 GPU.<br />
<br />
Key features include a PCIe x4 open ended slot (model A) or m.2 (model B) using one Gen2 lane electrically, and the use of LPDDR4 RAM.<br />
<br />
The Quartz64 has three LPDDR4 system memory options: 2GB, 4GB or 8GB. For booting, there is an eMMC module socket (supporting up to 128GB) and microSD slot, as well as a footprint to solder on an SPI flash chip. The board is equipped with HDMI, 1x USB 3.0 type A Host, 3x USB 2.0 Host, Gigabit Ethernet, SATA (model A), GPIO Bus, MiPi DSI interface, e-ink interface (model A), eDP interface (model A), touch Panel interface (model A), 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 (OS) are freely available from the open source community, such as Linux (Ubuntu, Debian, Arch), BSD, and Android.<br />
<br />
== Software releases ==<br />
<br />
{{warning|Software for the Quartz64 is still early in development, and therefore currently lacks features such as the ability to produce video output. You are strongly encouraged to procure a 3.3V UART serial adapter capable of running at 1.5 mbauds, such as [https://pine64.com/product/serial-console-woodpecker-edition/ the woodpecker] if you want to use a Quartz64 at this stage.}} <br />
<br />
=== Manjaro ARM ===<br />
[[File:Manjaro.png|right|100px]]<br />
<br />
Manjaro ARM is a user friendly rolling release distribution, based on Arch Linux ARM.<br />
<br />
==== Manjaro ARM with no desktop ====<br />
<br />
* [https://github.com/manjaro-arm/quartz64-bsp-images/releases Weekly images on Github]<br />
<br />
==== Manjaro ARM with desktop environment ====<br />
<br />
Since '''Dev 20211117''' with hdmi output (linux-rc)<br />
<br />
* Gnome<br />
* KDE Plasma<br />
* Mate<br />
* Sway<br />
* XFCE<br />
<br />
* [https://github.com/manjaro-arm/quartz64-bsp-images/releases Weekly images on Github]<br />
<br />
Note: Video out only working on 4 GB boards with 1080p monitors right now as the VOP2 patches are very early.<br />
<br />
=== pgwipeout's Quartz64 CI ===<br />
<br />
pgwipeout provides continuously rebuilt set of images for Quartz64 devices which includes a Debian installer and a buildroot rescue environment. It is aimed at advanced users who generally know their way around a Linux system, and as a baseline for whether something is working or not. Works on both SD cards and eMMC, uses pgwipeout's patched kernel. Kernels aren't auto-updated on the installed system, so the user manually has to do this by mounting the actual correct boot partition.<br />
<br />
'''Download:''' https://gitlab.com/pgwipeout/quartz64_ci/-/pipelines (Click the three dots on the right, download the merge-job archive.)<br />
<br />
For Quartz64 Model A, flash <tt>rk3566-quartz64-a.dtb.img.xz</tt>. On Linux, you can for example do this as follows, assuming your target device is <tt>/dev/sdb</tt>:<br />
<br />
sudo -i; xzcat /path/to/rk3566-quartz64-a.dtb.img.xz > /dev/sdb<br />
<br />
=== Arch Linux ARM (Unofficial, Highly Experimental) ===<br />
<br />
See [[Installing Arch Linux ARM On The Quartz64]] for detailed instructions. Users who are not feeling adventurous are advised to hold off until kernel 5.16 is released and packaged.<br />
<br />
== SoC and Memory Specifications ==<br />
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]<br />
[[File:RK3566_icon.png|right]]<br />
<br />
=== CPU Architecture ===<br />
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]<br />
* AArch32 for full backwards compatibility with ARMv7<br />
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
* Includes VFP hardware to support single and double-precision operations<br />
* ARMv8 Cryptography Extensions<br />
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core<br />
* 512KB unified system L3 cache<br />
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support<br />
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]<br />
<br />
=== GPU (Graphics Processing Unit) Capabilities ===<br />
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]<br />
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop <br />
* 128KB L2 Cache configurations<br />
* Supports OpenGL ES 1.1, 2.0, and 3.2<br />
* Supports Vulkan 1.0 and 1.1<br />
* Supports OpenCL 2.0 Full Profile<br />
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency<br />
* Supports 38.4 GLOP/s when at 800MHz clock frequency <br />
<br />
=== NPU (Neural Processing Unit) Capabilities ===<br />
* Neural network acceleration engine with processing performance of up to 0.8 TOPS<br />
* Supports integer 8 and integer 16 convolution operations<br />
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet<br />
<br />
=== System Memory ===<br />
* RAM Memory Variants: 2GB (SOQuartz only), 4GB, 8GB LPDDR4.<br />
<br />
=== Network ===<br />
* 10/100/1000Mbps Ethernet<br />
* WiFi 802.11 b/g/n/ac with Bluetooth 5.0 (optional on model A, built in on model B)<br />
<br />
=== Storage ===<br />
* microSD - bootable, supports SDHC and SDXC, storage up to 2TB<br />
* USB<br />
** Model A: 2 USB 2.0 host ports, 1 USB 2.0 OTG port, 1 USB 3.0 host port<br />
** Model B: 1 USB 2.0 host port, 1 USB 2.0 OTG port, 1 USB 3.0 host port<br />
* one native SATA 3.0 6Gb/s Port (only on model A, shared with USB 3.0 host port)<br />
* optional eMMC module from 16GB up to 128GB<br />
<br />
==== eMMC Speeds ====<br />
<br />
On a 64 GB eMMC module:<br />
<br />
$ sudo hdparm -tT /dev/mmcblk1 <br />
<br />
/dev/mmcblk1:<br />
Timing cached reads: 2368 MB in 2.00 seconds = 1184.46 MB/sec<br />
Timing buffered disk reads: 452 MB in 3.01 seconds = 149.98 MB/sec<br />
<br />
=== Expansion Ports ===<br />
* HDMI<br />
* eDP - 4 lanes of 2.7Gbps, up to 2560x1600@60Hz (only on model A)<br />
* DSI - Display Serial Interface, 4 lanes MiPi, up to 1440P on model A, 2 lanes MiPi, up to 1080p on model B <br />
* CSI - CMOS Camera Interface, 4 lanes MiPi up to 8 mega pixel on model A, 2 lanes MiPi up to 5 mega pixel on model B <br />
* TP - Touch Panel Port, SPI with interrupt on model A<br />
* RTC - Real Time Clock Battery Connector<br />
* VBAT - Lithium Battery Connector with temperature sensor input on model A<br />
* Wifi/BT Module Header - SDIO 3.0 and UART on model A, build in Wifi/BT Module on model B<br />
* 2x20 pins "Pi2" GPIO Header on model B, 2x10 pins GPO header on model A<br />
* PCIe x4 open ended slot on model A, m.2 slot on model B, one Gen2 lane due to SoC constraints<br />
** On Model A, the slot provides 10W of power for the 3.3V supply and however much power your 12V input power supply provides on the 12V supply<br />
<br />
The PCIe implementation on the RK3566 is much more compatible with a wide range of devices compared to the one on the RK3399 used on the ROCKPro64. This means a lot more devices should work (excluding dGPUs due to a lack of cache snooping ability). As an example, PCIe-to-PCI bridges work, whereas they didn't on the ROCKPro64.<br />
<br />
==== Combo PHYs ====<br />
<br />
[[File:rk3566 phy.png]]<br />
<br />
Several of the I/O options on the RK3566 used in the Quartz64 are using the same I/O lines, meaning that they cannot be used at the same time. The above diagram illustrates how they are connected.<br />
<br />
In particular, USB 3.0 and the SATA connector on the board are mutually exclusive, and the PCI-e 2.0 lane can be reconfigured into a second SATA port, though an adapter cable needs to be fashioned for this to be useful.<br />
<br />
=== GPIO Pins (Quartz64 Model A) ===<br />
<br />
Attention! GPIOs are 3.3V!<br />
<br />
{| class="wikitable plainrowheaders" border="1"<br />
! scope="col" style="width:20em;" | Assigned To<br />
! scope="col" | Pin Nr.<br />
! scope="col" | Pin Nr.<br />
! scope="col" style="width:20em;" | Assigned To<br />
|-<br />
| style="text-align:right;"| 3.3 V<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 2<br />
| style="text-align:left;"| 5 V<br />
|-<br />
| style="text-align:right;"| I2C3_SDA_M0 <sup style="font-style:italic;color:green">a,b</sup><br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 3<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 4<br />
| style="text-align:left;"| 5 V<br />
|-<br />
| style="text-align:right;"| I2C3_SCL_M0 <sup style="font-style:italic;color:green">a,b</sup><br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 5<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 6<br />
| style="text-align:left;"| GND<br />
|-<br />
| style="text-align:right;"| CPU_REFCLK_OUT<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 7<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 8<br />
| style="text-align:left;"| UART2_TX_M0_DEBUG<br />
|-<br />
| style="text-align:right;"| GND<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 9<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 10<br />
| style="text-align:left;"| UART2_RX_M0_DEBUG<br />
|-<br />
| style="text-align:right;"| SPI1_MOSI_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 11<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 12<br />
| style="text-align:left;"| UART0_TX <sup style="font-style:italic;color:green">a</sup><br />
|-<br />
| style="text-align:right;"| SPI1_MISO_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 13<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 14<br />
| style="text-align:left;"| UART0_RX <sup style="font-style:italic;color:green">a</sup><br />
|-<br />
| style="text-align:right;"| SPI1_CLK_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 15<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 16<br />
| style="text-align:left;"| GND<br />
|-<br />
| style="text-align:right;"| SPI1_CS0_M1<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 17<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 18<br />
| style="text-align:left;"| SPDIF_OUT <sup style="font-style:italic;color:green">c</sup><br />
|-<br />
| style="text-align:right;"| GND<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 19<br />
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 20<br />
| style="text-align:left;"| 3.3V<br />
|}<br />
<br />
====Notes====<br />
<ol style="list-style-type:lower-alpha"><br />
<li>can be a PWM pin</li><br />
<li>pulled high to 3.3V through 2.2kOhm resistor</li><br />
<li>low-pass filtered with cutoff of 220 MHz</li><br />
</ol><br />
<br />
Source: Page 28 of [https://wiki.pine64.org/images/3/31/Quartz64_model-A_schematic_v1.0_20201215.pdf the board schematics].<br />
<br />
== Quartz64 Board Information, Schematics, and Certifications ==<br />
* Model "A" Baseboard Dimensions: 133mm x 80mm x 19mm<br />
* Input Power: DC 12V @ 3A 5.5mmOD/2.1mmID center-positive Barrel DC Jack connector<br />
<br />
* Quartz64 Model "A" SBC Schematic and PCB Board Resource:<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_schematic_v2.0_20210427.pdf Quartz64 Model "A" SBC Schematic ver 2.0 20210427 PDF file]<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_V2.0_connector_placement.pdf Quartz64 Model "A" SBC PCB Connector placement PDF file]<br />
<br />
* Model "B" Baseboard Dimensions: 85mm x 56mm x 18.8mm<br />
* Input Power: DC 5V @ 3A 3.5mmOD/1.35mmID Barrel DC Jack connector<br />
<br />
* Quartz64 Model "B" SBC Schematic and PCB Board Resource:<br />
** Quartz64 Model "B" SBC Schematic not yet available<br />
** [https://files.pine64.org/doc/quartz64/Quartz64%20model-B%20PCB%20placement.pdf Quartz64 Model "B" SBC PCB Connector placement PDF file]<br />
<br />
* Certifications:<br />
** 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 and CE 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.<br />
** [https://files.pine64.org/doc/cert/Quartz64%20Model-A%20CE%20certification-S21051101701001.pdf Quartz64 model-A CE Certificate]<br />
** [https://files.pine64.org/doc/cert/Quartz64%20Model-A%20FCC%20certification-S21051101702001.pdf Quartz64 model-A FCC Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3566 SoC information:<br />
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]<br />
* Rockchip PMU (Power Management Unit) Information:<br />
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet for Quartz64 model A]<br />
** [https://www.rockchip.fr/RK809%20datasheet%20V1.01.pdf Rockchip RK809 ver 1.01 datasheet for Quartz64 model B and SOQuartz]<br />
* LPDDR4 (200 Balls) SDRAM:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]<br />
* E-ink Panel information:<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-754-V3_ES103TC1%20Specification%20V3.0(Signed)-20190702.pdf Eink 10.3" 1872x1404 ES103TC1 Flex Panel Specification]<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf Eink 10.3" 1872x1404 ES103TC1 Glass Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]<br />
* LCD Touch Screen Panel information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0" 1200x600 TFT-LCD Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/HK70DR2459-PG-V01.pdf Touch Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GT911%20Capacitive%20Touch%20Controller%20Datasheet.pdf GOODiX GT911 5-Point Capacitive Touch Controller Datasheet]<br />
* Ethernet PHY information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver]<br />
* WiFi/BT module info:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]<br />
* Enclosure information:<br />
** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/ABS_enclosure_20160426.stp ABS Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/pine64%20Die%20Cast%20casing-final.jpg Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]<br />
* Connector information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/ePH.pdf 2.0mm PH Type connector specification use in Lithium Battery (VBAT) port and RTC Battery port]<br />
** [https://files.pine64.org/doc/datasheet/pine64/0.5FPC%20Front%20Open%20Connector%20H=1.5.pdf 0.5mm Pitch cover type FPC connector specification use in DSI port, TP port and CSI port]<br />
<br />
== Development efforts ==<br />
<br />
{{SeeMainArticle|Quartz64 Development}}<br />
<br />
Information and resources of the ongoing development effort for the Quartz64 can be found on the [[Quartz64 Development]] page, where the current status of various board functions can be found, and whether they have landed in upstream.<br />
<br />
* [https://gitlab.com/pine64-org/quartz-bsp Quartz64 BSP Gitlab Page]<br />
<br />
== BSP Linux SDK ==<br />
<br />
=== BSP Linux SDK ver 4.19 for Quartz64 model A SBC ===<br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed<br />
** File Size: 32.67.00GB<br />
<br />
<br />
<br />
== Android SDK ==<br />
<br />
=== Android 11 SDK for Quartz64 model A SBC ===<br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64_SDK_android11.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 77c2ff57ea3372fb04da7fb49e17d12b<br />
** File Size: 79.00GB<br />
** Just the boot blobs (<1MB): [[File:Rk35-blobs.tar.gz]]<br />
<br />
<br />
=== Android 11 Production Test Build for Quartz64 model A SBC ===<br />
<br />
==== Android 11 Stock Image [eMMC Boot] using DD method [20210604] ====<br />
* DD image to eMMC module using USB adapter for eMMC module and boot. Highly recommend using [https://etcher.io/ Etcher]<br />
* This is test build that used during product testing<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
* DD image for 8GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-8GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): e4365753e584d9fce1b8f10f095eede6<br />
*** File Size: 819MB<br />
* DD image for 16GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-16GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 491c5f7744b0ca0b74ae76e607051836<br />
*** File Size: 1.10GB<br />
* DD image for 32GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-32GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 47a6f0cdac8bad06cb920743849a8894<br />
*** File Size: 846MB<br />
* DD image for 64GB eMMC module<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_dd_20210604_stock_android11_emmcboot-64GB.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 4e2fed6f5db0d55afdc8a142fc0c4fe1<br />
*** File Size: 884MB<br />
<br />
<br />
==== Android 11 Production Test Build for Quartz64 model A SBC [eMMC Boot] using ROCKChip tools method [20210604] ====<br />
* Please unzip first and then using [https://files.pine64.org/os/Quartz64//android/RKDevTool_Release_v2.84.zip Rockchip Android tool ver 2.84] to flash in<br />
* For Windows OS environment, please install the [https://files.pine64.org/os/Quartz64/android/DriverAssitant_v5.1.1.zip DriverAssistant v5.11] driver first <br />
* This is test build that used during product testing<br />
* The OTG port located at top USB 2.0 port on top of USB 3.0 port, needs USB type A to type A cable.<br />
* Please allow 3-5 minutes boot up time on first time for initialization<br />
** [https://files.pine64.org/os/Quartz64/android/Quartz64_model-A_20210604_stock_android11_emmcboot.img.gz Direct download from pine64.org]<br />
*** MD5 (GZip file): 800f867fdd0d1b2bd7822c156b6067e3<br />
*** File Size: 812MB<br />
<br />
<br />
=== Android 11 eink SDK for Quartz64 model A SBC ===<br />
* The is the Android SDK build for 10.3" eink panel on Quartz64 model A SBC. <br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 293a550584298de4fb95ceae18103672<br />
** File Size: 72.88GB<br />
** Just the boot blobs (<1MB): [[File:Rk35-blobs.tar.gz]]<br />
<br />
<br />
== Enclosures ==<br />
<br />
All enclosures that fit the ROCKPro64 should fit the Quartz64, as the I/O has been laid out the same on purpose.<br />
<br />
* [["Model A" Acrylic Open Enclosure]] - but see the troubleshooting section below.<br />
* [[ROCKPro64 ABS Enclosure]]<br />
<br />
(Please expand this section with more cases known to work.)<br />
<br />
== Troubleshooting ==<br />
<br />
=== Stability/Boot Issues With Missing Battery Shunt ===<br />
<br />
If there is no battery plugged into the board, the jumper labelled "ON/OFF_BATT" must be in place. If this is set wrong, stability issues such as failures to boot will occur.<br />
<br />
=== No Ethernet Connectivity ===<br />
<br />
Make sure the kernel is built with <code>CONFIG_MOTORCOMM_PHY</code> set to <code>y</code>. Building it as a module (<code>m</code>) and then relying on module auto-loading is unlikely to work as the PHY chip lacks its manufacturer ID.<br />
<br />
=== "Model A" Acrylic Case Doesn't Fit ===<br />
<br />
The Quartz64 does not really fit onto the bottom plate of the [["Model A" Acrylic Open Enclosure]]. This is because the "Mic" connector at the bottom of the board interferes with one of the posts. A workaround is to find out which post that is (you have a 50% chance of guessing it right, accounting for rotating the board) and then filing away the corner of the post pointing inwards by a few millimetres.<br />
<br />
An alternate solution may be to place plastic spacers with a smaller outer diameter in between the acrylic bottom plate posts and the SBC board.<br />
<br />
=== No GPU Acceleration with Debian "Bullseye" Userland ===<br />
<br />
Debian Bullseye ships a Mesa version that is too old to contain the required patches for the RK356x SoC's GPU. You can (at your own risk) [https://wiki.debian.org/DebianTesting use the current Debian Testing version ], called "Bookworm".<br />
<br />
<br />
[[Category:Quartz64]]</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=PinePhone_Pro_Developer_Edition&diff=11995PinePhone Pro Developer Edition2021-12-11T08:57:41Z<p>Mrgtwentythree: Nuking the factory AOSP installation - another method.</p>
<hr />
<div><br />
= Introduction =<br />
The Developer Edition was the first edition of the PinePhone Pro, shipped to developers in December 2021. The aim of the the Developer Edition was to give development community access to the hardware prior to end-users, boost development efforts and allow for porting of existing mobile Linux operating systems to the new hardware. <br />
It featured the same mainboard revision as the Explorer Edition that followed in early 2022, and came in a box that was labelled "Explorer Edition".<br />
<br />
= Getting started = <br />
This post is aimed strictly at developers receiving their PinePhone Pro dev units. Please note that the following instructions do not apply to Explorer Edition or other future editions of the PinePhone Pro - everything below is only pertinent to the dev phones. <br />
<br />
Consider this a crash course rather than a comprehensive overview; you are also welcome to participate in documenting the process (and everything else related to the PinePhone Pro) on the Wiki. You can either create a Wiki account or use your [forum.pine64.org PINE64 forum] credentials to log in. <br />
<br />
== Getting the hardware ready ==<br />
After unpacking the PinePhone Pro from its box, detach the back cover (looking at the back of the phone, there is a fingernail notch on the left leading edge) and remove the plastic tab between the battery and mainboard. You can also flip the headphone jack privacy switch at this point - this enables UART output via the headphone jack. Serial console works the [https://wiki.pine64.org/wiki/PinePhone#Serial_console same way as on the original PinePhone.] <br />
<br />
= Factory hardware test image =<br />
<br />
The PinePhone Pro developer edition ships with a BSP AOSP factory image flashed to the eMMC. This image includes a number of factory applications meant to validate operation of the sensors, the modem, cameras, LCD & touch panel, etc. You’ll have to nuke the AOSP build to run a Linux installation on the PinePhone Pro. Booting from SD with the AOSP factory build present on eMMC is not possible due to the SoCs native boot order. <br />
<br />
== Nuking the factory AOSP installation ==<br />
In the factory test image, navigate to setting (gear icon) > at the very bottom of the settings list you will find a phone icon with rk3999mid written underneath it > tap the last (bottom) setting 7 times in quick succession. Following this, you *may* need to do the following: open the Settings application and enable USB debugging in Settings > System > Developer Options > USB debugging. Then connect the PinePhone Pro to your PC with the supplied USB-C cable. <br />
<br />
Please note: It is recommended to charge the device to at least 50% before proceeding with wiping the eMMC. <br />
<br />
Note: You may have gotten a Chinese factory image; in the settings menu you can change the language to english by selecting the gray info icon (系统, one from bottom), then the first option (语言..), and again the first option (also 语言), then press +, English and drag it to the top of the list).<br />
<br />
Connect the phone to your computer and check <code>adb devices</code> in the terminal. The phone should be registered as attached. If the device doesn't show you may want to try a different port or cable. Then enter <code>adb shell</code> followed by <code>su</code> to gain root access. At this point you can erase the eMMC installation: <br />
<br />
<code>cat /dev/zero > /dev/block/mmcblk1</code><br />
<br />
The phone will freeze and then the screen will go blank. Let it sit for no less than 10 minutes and then power it off by holding down the power button. You’ll know the phone is powered down when the notification LED turns off.<br />
<br />
Another method of erasing the image is to connect serial console, break into U-Boot when it says to press Ctrl-C, and then the "mmc erase" command can be used to zero blocks on the eMMC. For example, "mmc erase 0 16384" will zero the first 8MB, and is enough to stop it from being bootable.<br />
<br />
== Flashing Linux ==<br />
You will want to do all your testing and development on a SD card; you DO NOT want to flash an OS to eMMC at this time. Builds frequently break at this early development stage and recovering from a corrupted eMMC installation is presently time consuming and tedious. A fast 16-64GB micro SD card for $15 will work just fine. <br />
<br />
There are a handful of OS builds available for the PinePhone Pro already. These can be found under the [https://wiki.pine64.org/wiki/PinePhone_Pro#Software_releases Software Releases] Wiki section.<br />
<br />
If you are a developer porting your own distribution to the PinePhone Pro, please make sure to make an entry for it in the Software Releases section on the Wiki. If you want / need help with entering your build onto the Wiki please ping one of the mods or admins in the chats (see Forums and Chats drop-down menu).<br />
<br />
= Resources =<br />
Aside from the PINE64 Wiki there are also other useful resources scattered across different Wikis, repositories and blogs. In time these will be gathered into one place - the [https://gitlab.com/mobian1/devices/eg25-manager/-/merge_requests/41#note_744117720 DevZone] - which will help to streamline the development process. <br />
<br />
At the time of publishing, these are *some* of the notable resource, listed in no particular order: <br />
<br />
*[https://wiki.postmarketos.org/wiki/PINE64_PinePhone_Pro_(pine64-pinephonepro) postmarketOS Wiki] <br />
*[https://xnux.eu/log/ Megi’s (b)log] <br />
*[https://github.com/dreemurrs-embedded/Pine64-Arch/ DanctNIX repository]<br />
*[https://github.com/manjaro-pinephone Manjaro repository]<br />
<br />
= Development and discussion =<br />
You will run into issues, there’s just no way around it, and doing it ‘on your own’ isn’t really a viable option since you’re one of the first people to hold a PinePhone Pro. The development process on a device such as this is a collaborative process, and I therefore encourage you to participate in the community. There are many ways to interact with other developers, including [https://matrix.to/#/!LZirCxnkkeBudrQzPj:matrix.org?via=matrix.org Matrix], [https://t.me/pinephone Telegram], [https://discord.gg/pine64 Discord] and IRC. <br />
<br />
There is also a lesser known chat for developers only. Lesser known doesn’t mean top secret, but I will not be posting a link to it here to keep the number of non-dev participants to a minimum. If you join one of the general chats and let others know you received a dev phone, then I’m sure someone will point you in the right direction.</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=10892Pinebook Pro2021-07-16T20:22:06Z<p>Mrgtwentythree: /* Using the UART */</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
It is built to be a compelling alternative to mid-ranged Chromebooks that people convert into Linux laptops. It features an IPS 1080p 14″ LCD panel, a premium magnesium alloy shell, high capacity eMMC storage, a 10,000 mAh capacity battery, and the modularity that only an open source project can deliver. <br />
<br />
It's compact and slim dimensions are 329mm x 220mm x 12mm (WxDxH).<br />
<br />
Key features include: the RK3399 SOC; USB-C for data, video-out and power-in (3A 5V); privacy switches for the microphone, BT/WiFi module, and camera; and expandable storage via NVMe (PCIe x4) with an optional adapter. <br />
<br />
The Pinebook Pro is equipped with 4GB LPDDR4 system memory, high capacity eMMC flash storage, and 128Mb SPI boot Flash. The I/O includes: 1 x micro SD card reader (bootable), 1 x USB 2.0, 1 x USB 3.0, 1 x USB type C Host with DP 1.2 and power-in, PCIe x4 for an NVMe SSD drive (requires an optional adapter), and UART (via the headphone jack by setting an internal switch). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
Many different Operating Systems (OS) are freely available from the open source community and partner projects. These include various flavors of Linux (Ubuntu, Debian, Manjaro, etc.) and *BSD.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up (use a single word, all lower case, no punctuation; e.g. "pbpro").<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== Pinebook Pro images ===<br />
Under [[Pinebook Pro Software Release]] you will find a complete list of currently supported Operating System images that work with the Pinebook as well as other related software. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
* [[PinebookPro_Software_Release#Manjaro ARM|Manjaro ARM]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#Armbian|Armbian]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#Twister OS|Twister OS]] (microSD Boot)<br />
* [[PinebookPro_Software_Release#Fedora|Fedora]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#Arch_Linux_ARM|Arch Linux]] (microSD and USB boot)<br />
* [[PinebookPro_Software_Release#postmarketOS|Postmarket OS]] (microSD and USB boot)<br />
* [[PinebookPro_Software_Release#Kali Linux|Kali Linux]] (microSD and USB boot)<br />
* [[PinebookPro_Software_Release#DietPi|DietPi]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#Q4OS|Q4OS]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#NetBSD|NetBSD]] (microSD and eMMC Boot)<br />
* [[Pinebook_Pro_Software_Release#OpenBSD|OpenBSD release for ARM64]]<br />
* [[Pinebook_Pro_Software_Release#Gentoo|Gentoo]]<br />
<br />
== Keyboard ==<br />
The Pinebook Pro is available in two keyboard configurations: ISO and ANSI. Both the keyboard and trackpad in the Pinebook Pro use the USB 2.0 protocol and show up as such in xinput. The keyboard features function (Fn) keys in the F-key row, which include display brightness controls, sound volume, trackpad lock, and other functionality. There is also a custom PINE64 logo key that functions as Menu/Super key. It has also a secondary functionality for setting the privacy switches. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility.<br />
<br />
{{warning|DO NOT update the keyboard firmware before checking which keyboard IC your Pinebook Pro has.</b> Some Pinebook Pro were delivered with a '''SH61F83''' instead of a '''SH68F83'''. The SH61F83 can only be written 8 times, this will render the keyboard and trackpad unusable if this limit is reached when <code>step-1</code> is flashed, see the [https://reddit.com/r/PINE64official/comments/loq4db/very_disappointed/ Reddit SH61F83 thread]. The keyboard IC corresponds to <code>U23</code> on the [[#Pinebook_Pro_Schematics_and_Certifications|top layer silkscreen of the main board]]. It is located under the keyboard flat flexible cable.}}<br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
The [[Wikipedia:British_and_American_keyboards#Other_keyboard_layouts|UK ISO Layout]] does not have dedicated keys for characters like the German umlauts (Ä,Ö,Ü, etc). Certain characters can still be generated by means of either key combinations or key sequences. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch<br />
| CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch<br />
| NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch<br />
| CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
| Can use tools like '''<code>lsusb</code>''' to detect camera's presence. If not detected, check privacy switch.<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independent of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect as cutting off the power to each peripheral with a physical switch. This implementation is very secure, since the firmware that determines whether a peripheral gets power is not part of the Pinebook Pro’s operating system. So the power state value for each peripheral cannot be overridden or accessed from the operating system. The power state setting for each peripheral is stored across reboots inside the keyboard's firmware flash memory.<br />
<br />
=== Basic summary of replacing keyboard ===<br />
<br />
This guide is very basic and should be fleshed out with pictures. There just isn't a list of steps anywhere else yet.<br />
<br />
''Step 0'': If changing from ISO keyboard to ANSI keyboard, or vice versa, be sure to have a system capable of running the firmware updater that you can access either remotely or with a USB keyboard beyond the internal keyboard, as the firmware for each is very different and keys won't work correctly. See https://forum.pine64.org/showthread.php?tid=8407 (and for NetBSD, https://forum.pine64.org/showthread.php?tid=8716).<br />
<br />
''Step 1'': The remove back back panel.<br />
<br />
There are 10 screws on the back that must be removed, and the back panel detached. The speakers may remain attached via glue to the case and should be carefully pried off. When this is done, taking photos of how everything looks now can help put it all back together later.<br />
<br />
''Step 2'': Places to unscrew.<br />
<br />
There are 3 items screwed into the keyboard frame that must be removed. There are 2 large screws for daughter board, 3 large screws and 1 small screw for mainboard, and 4 screws for battery. Be sure to not lose them.<br />
<br />
''Step 3'': Remove the battery.<br />
<br />
Once the battery screws are removed, it should be unplugged from the mainboard and removed. Note that there are two unconnected cables lying around, that should remain unconnected. They are used when the battery is disconnected entirely.<br />
<br />
''Step 4'': Unplug the ribbon cables.<br />
<br />
There are several ribbon cables. To remove, flip up the tab and gentle pull the ribbon out.<br />
<br />
* One cable runs from the mainboard to the daughterboard underneath the battery. Detach from both ends. With the battery removed, detach from keyboard shell, and set aside for the new keyboard shell.<br />
* One cable runs between the trackpad and the mainboard. Detach from both ends, and also set aside.<br />
* One cable runs between the keyboard and the mainboard. This one remains attached to the keyboard and only needs to be detached from the mainboard.<br />
* One cable from the LCD attaches near the lid hinge. It should be just unplugged.<br />
<br />
''Step 5'': Detach microphone and speakers.<br />
<br />
The speakers and microphone don't have to be detached from the mainboard, but they need to be detached from the keyboard shell. The microphones are held in place by tape, and the speakers have sticky sides. The speakers are found obviously, but the microphones (two of) can be found between the battery and the hinge area.<br />
<br />
''Step 6'': Remove mainboard and daughterboard.<br />
<br />
At this point, the mainboard and daughterboards should be removed. When unscrewed (see Step 2) they should pull out fairly easily. Put them aside (including microphones and speakers if left attached.)<br />
<br />
''Step 7'': Detach the LCD panel.<br />
<br />
Step 2 didn't tell you, there are 6 more screws to remove here, 3 for each of the hinges. Unscrew these and the LCD panel will be able to be removed. You may have to jiggle or move the hinges for this. When detached, be sure to place the LCD panel such that the display is protected.<br />
<br />
''Step 8'': Try Not To Break Your Trackpad, or, How I Learned To Love Things That Bend<br />
<br />
'''NOTE This section really feels like you're going to break something.'''<br />
<br />
The trackpad is glued to the keyboard shell and it's glued well. There are two places it is glued to. If you can, only the middle must be force-detached. You will think you're going to break it. Gently apply increasing force until the glue begins to detach (you will hear a crackle as it comes off), and continue very slowly until the whole thing is detached. This may take minutes due to that feeling you're going to break it.<br />
<br />
''Step 9'': Over the hill, trackpad goes into new shell.<br />
<br />
In the new keyboard shell put the trackpad back where it was, hopefully the glue will remain sufficiently attached. If there is a glue issue, this guide unfortunately has no advice currently.<br />
<br />
''Step 10'': Reattach the LCD panel.<br />
<br />
The LCD panel should slot back into the keyboard frame, the same way it came out. If the hinges were moved, they should be *very* *gently* closed such that the LCD panel and keyboard closed like normal for the remaining steps.<br />
<br />
''Step 11'': Tape it out.<br />
<br />
Move any tape from the old keyboard shell to the new one. These items protect the mainboard and daughterboard, and keep various wires in their right place. Some are grey and some are black. For tape that holds the speakers, microhones, or their cables in place, do not reattach yet.<br />
<br />
''Step 12'': Board install.<br />
<br />
Install the mainboard, the daughtboard, and their connecting ribbon cable. Be sure to put the boards in place, 2 large flat screws for the daughterboard, 3 large flat screws and one small screw for the mainboard, before attempting to place the ribbon.<br />
<br />
''Step 13'': Microphone and speaker install.<br />
<br />
Reattached the microphones and speakers to their respective areas, making sure that both are properly oriented - the speaker "out" faces up, and the microphone cables as connected must face up (these are opposite directions.)<br />
<br />
''Step 14'': Reattach other ribbon cables.<br />
<br />
The LCD panel, keyboard and trackpad ribbon cables should be reattached. Make sure the flap is open, insert the ribbon into the slot (a portion of the cable will disappear), and push the flap down. The cable should not be easy to pull out.<br />
<br />
''Step 15'': Reattach the battery, and final re-tape.<br />
<br />
The battery should be installed with the 4 screws holding it in place, and the connector attached to the mainboard. Be sure to keep the two other cables remain unconnected. Ensure all wires and other tapes are held in place.<br />
<br />
''Step 16'': Reattach the back panel.<br />
<br />
Put the back panel back on, and reattach the 10 screws.<br />
<br />
''Step 17'': If you changed from ISO to ANSI or from ANSI to ISO, you'll need to update your firmware now. See the links in Step 0 above.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
The trackpad controller is connected to the keyboard controller. All trackpad events go through the keyboard controller and it's software, then to the keyboard controller's USB port. Note that the trackpad does have separate firmware, (which has to be written through the keyboard controller).<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
{{warning| DO NOT update the trackpad firmware before checking which keyboard IC your Pinebook Pro has.</b> Some Pinebook Pro were delivered with a '''SH61F83''' instead of a '''SH68F83'''. The SH61F83 can only be written 8 times, this will render the keyboard and trackpad unusable if this limit is reached when <code>step-1</code> is flashed. See [//old.reddit.com/r/PINE64official/comments/loq4db/very_disappointed/ Reddit SH61F83 thread]. The keyboard IC corresponds to <code>U23</code> on the [[#Pinebook_Pro_Schematics_and_Certifications|top layer silkscreen of the main board]]. It is located under the keyboard flat flexible cable.}}<br />
<br />
Please refer to the original documentation for details.<br />
<br />
Your Pinebook Pro should be either fully charged or, preferably, running off of mains. This utility will be writing chips on the keyboard and trackpad, so a loss of power during any stage of the update can result in irrecoverable damage to your trackpad or keyboard.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop. Newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
There are two keyboard versions of the Pinebook Pro: ISO and ANSI. You need to know which model you have prior to running the updater. <br />
Firmware update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse (or access to the Pinebook Pro via SSH)<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
{{Hint| Note: Running step 1 on the ANSI keyboard model will make the keyboard and trackpad inaccessible until step 2 is ran, so an external keyboard must be connected to complete the update on this model!}}<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
When done, if some of the keys produce incorrect characters, please check your OS’s language settings. For ANSI users, the default OS shipped with English UK as the default language. You can change it to English US if desired.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver, use this command to make the change live:<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticeably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below:<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient TapButton1=1<br />
synclient TapButton2=3<br />
synclient TapButton3=2<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<code>FingerLow</code> has the same value as 'FingerHigh' in one config (30). It is believed to help reduce mouse movement as you lift your finger, but it's unknown whether synaptic works like this.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
<code>TabButton</code> allows to just tab the touchpad instead of physically pressing it down (to get this click noise).<br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre><br />
<br />
Some users may encounter an issue with the mouse jumping when typing when using libinput driver (has not been test with synaptic) due to their hand hitting the touchpad which can be fixed by updating the xorg settings to disable it while typing. One can disable the touchpad while typing by setting the below option in the xorg config simliar to the previou example. <br />
<br />
<pre><br />
Option "DisableWhileTyping" "on" <br />
</pre><br />
<br />
The setting can be verified by using the xinput command to first list the devices and then listing the properties for the Touchpad device. Exact commands to check this have been omitted for save of brevity. If DisableWhileTyping is shown enabled but does not appear to be working the issue may be due to the fact that the keyboard is connected to a USB bus which causes it to be seen as a external keyboard. To resolve this one can add the config below which sets the keyboard to internal to ensure the DisableWhileTyping works properly. <br />
<br />
You will need to edit <code>/etc/libinput/local-overrides.quirks</code> and add the following lines:<br />
<pre><br />
[Serial Keyboards]<br />
MatchUdevType=keyboard<br />
MatchBus=usb<br />
AttrKeyboardIntegration=internal<br />
</pre><br />
<br />
Once X11 is restarted the new setting should now take effect and you will no longer be able to use the touchpad while typing which will mostly eliminate the mouse jumping issue.<br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
In total, there are four LEDs on the Pinebook Pro, three of which are placed in the top-left side of the keyboard, and one near the barrel port: <br />
<br />
# The red LED next to the barrel port indicates charging, in three ways. First, it will illuminate steadily when either the factory power supply or a USB Type-C charger is connected to the Pinebook Pro, and the battery is getting charged. Second, if the battery is at 100%, the LED will remain turned off regardless of the connected power input; however, this is [https://forum.pine64.org/showthread.php?tid=10899 rather rarely achieved]. Third, this LED will flash at 0.5&nbsp;Hz if there are any problems that prevent charging, such as the battery becoming too hot.<br />
# The power indicator LED, above the keyboard, supports three different colors: green, amber and red. It is also capable of flashing to indicate eMMC activity. In the default Debian with MATE build, green LED means power and red means suspend (amber is unused). <br />
# The green NumLock LED, above the keyboard.<br />
# The green CapsLock LED, above the keyboard.<br />
<br />
The NumLock and CapsLock LEDs serve their usual purposes on a keyboard, but they also have a secondary function. When the privacy switches get activated they blink to confirm that the switch has been activated.<br />
<br />
== Webcam ==<br />
{{Hint| You can use Cheese to test the Camera functionality}}<br />
* Streaming video resolutions supported, (uncompressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try changing the [[Pinebook_Pro#Privacy_Switches|privacy switches]]. If the switches are in the correct place and microphone input isn't working you can run <code>alsamixer</code> from the command line, hit <i>F6</i> and select the <i>es8316</i>, hit F4 to get to the capture screen, select the bar labeled ADC, increase the gain to 0dB, change the audio profile in pavucontrol to another one with input. Additionally you may want to modify ADC PGA to get the levels to where you want them. If that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the section [[#Technical Reference|Technical Reference]]).<br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilities are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<br />
To disable Bluetooth under Linux once:<br />
<br />
sudo rfkill block bluetooth<br />
<br />
To confirm if Bluetooth under Linux is disabled:<br />
<br />
rfkill<br />
<br />
To disable Bluetooth on boot (note: for distributions such as Manjaro XFCE see the step below):<br />
<br />
sudo systemctl enable rfkill-block@bluetooth<br />
<br />
To disable Bluetooth on certain distributions, such as Manjaro XFCE, right click on the Bluetooth panel icon, select <i>plugins</i>, then <i>PowerManager</i>, then <i>configuration</i> and then deselect the <i>auto power on</i> option<br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56&nbsp;cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60&nbsp;Hz refresh rate<br />
* IPS technology<br />
* 1000:1 contrast<br />
* 250&nbsp;nit brightness<br />
* 63% sRGB coverage<br />
* 6-bit color<br />
* 30-pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PinePhone_Serial_Cable.png|400px|thumb|right|Pinout of the serial adapter. Swapping the tx and rx around from this also works and is more traditional. See the official [https://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pine64 document].]]<br />
<br />
UART output is enabled by flipping the UART switch to the ON position (item 9). To do so you need to remove the Pinebook Pro's bottom cover - please follow [[Pinebook_Pro#Disassembly_and_Reassembly|proper disassembly and reassembly protocol]]. The OFF position is towards the touchpad, the ON position is towards the display hinges.<br />
<br />
With the UART switch in the ON position, console is relayed via the audiojack and the laptop's sound is turned OFF. Please ensure that you are using a 3.3&nbsp;V interface (such as the CH340, FTDI-232R, or PL2303, which are sold in both 3.3&nbsp;V and 5&nbsp;V variants) to avoid damage to the CPU. Older version of the serial console cable sold by Pine64 uses wrong voltage level and should not be used; see [https://forum.pine64.org/showthread.php?tid=9367 this forum thread] for further information. Recent version of the same cable uses the right voltage level.<br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor, ensuring that the audio jack of the serial cable is be fully inserted into the Pinebook Pro audio port. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
Old versions of U-Boot do not use the UART for console output. <strike>The console function is activated by the Linux kernel. Thus, if you use a non-Pinebook Pro Linux distro and want the UART as a console, you have to manually enable it.</strike><br />
<br />
== Using the optional NVMe adapter ==<br />
The optional NVMe adapter allows the use of M.2 cards that support the NVMe standard, (but not SATA standard). The optional NVMe M.2 adapter supports '''M''' & '''M'''+'''B''' keyed devices, in both 2242 & 2280 physical sizes, the most common ones available. In addition, 2230 & 2260 are also supported, though NVMe devices that use those sizes are rare.<br />
<br />
Once you have fitted and tested your NVMe drive, please add a note to this page [[Pinebook Pro Hardware Accessory Compatibility]] to help build a list of tried and tested devices.<br />
<br />
Please see [[Pinebook Pro Troubleshooting Guide#NVMe SSD issues|a separate section]] that describes reported issues with the NVMe drives in PineBook Pro.<br />
<br />
=== Installing the adapter ===<br />
The V2.1-2019-0809 SSD adapter that shipped with the initial Pinebook Pro batches had significant issues. A repair kit will be shipped to address those issues.<br />
(If necessary, it can be modified to work. There is [https://forum.pine64.org/showthread.php?tid=8322&pid=52700#pid52700 an unofficial tutorial on the forums] describing these modifications.)<br />
<br />
The updated SSD adapter, labeled V2-2019-1107, takes into account the prior problems with trackpad interference. New orders as of Feb. 22nd, 2020 will be the updated adapter.<br />
<br />
This is the link to the Pinebook Pro accessories in the store: [[https://pine64.com/?v=0446c16e2e66]]<br />
<br />
Actual installation instructions are a work in progress. Unofficial instructions for installing V2-2019-1107 can be found [https://eli.gladman.cc/blog/2020/06/23/pine-book-pro-nvme.html here].<br />
<br />
=== Post NVMe install power limiting ===<br />
Some NVMe SSDs allow reducing the maximum amount of power. Doing so may reduce the speed, but it may be needed in the Pinebook Pro to both improve reliability at lower battery levels. And to reduce power used, to maintain battery life.<br />
Here are the commands to obtain and change the power settings. The package 'nvme-cli' is required to run these commands. The example shows how to find the available power states, and then sets it to the lowest, non-standby setting, (which is 3.8 watts for the device shown);<br />
<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
Some NVMe SSDs don't appear to allow saving the setting with "-s" option. In those cases, leave off the "-s" and use a startup script to set the non-default power state at boot.<br><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<br/><br />
There is another power saving feature for NVMes, APST, (Autonomous Power State Transitions). This performs the power saving & transitions based on usage. To check if you have a NVMe SSD with this feature;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
As long as the kernel in use has both the PCIe and NVMe drivers, you should be able to use a NVMe drive as a data drive. It can automatically mount when booting from either the eMMC or an SD card. This applies to Linux, FreeBSD, and Chromium, using the normal partitioning and file system creation tools. Android requires testing.<br />
<br />
=== Using as OS root drive ===<br />
The SoC does not include the NVMe boot code, so the NVMe is not in the SoC's boot order. However, using the [https://github.com/mrfixit2001/updates_repo/blob/v1.1/pinebook/filesystem/mrfixit_update.sh U-Boot update script] from the mrfixit2001 Debian or [https://pastebin.com/raw/EeK074XB Arglebargle's modified script], and [https://github.com/pcm720/rockchip-u-boot/releases the modified u-boot images] provided by forum user pcm720, you can now add support to boot from an NVMe drive. Binary images are useable with SD, eMMC, and [[Pinebook_Pro_SPI|SPI flash]]. For OS images using the mainline kernel, there are a few variants of U-Boot available that also support NVMe as the OS drive. Though these may require writing the U-Boot to the SPI flash for proper use of the NVMe as the OS drive.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
It is also possible to initially boot off an eMMC or SD card, then transfer to a root file system on the NVMe. Currently, it is necessary to have the U-Boot code on an eMMC or SD card. (A forum member [https://forum.pine64.org/showthread.php?tid=8439 posted here] about using a modified version of U-Boot with NVMe drivers, that uses <code>/boot</code> and <code>/</code> off the NVMe drive. So this may change in the future.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
The mainboard features two (disconnected by default) bypass cables that are only to be used with the battery disconnected. The female (10) male (6) ends of the bypass cables can be connected to provide power to the mainboard if you need to run the laptop without a battery. Please refer to this [https://files.pine64.org/doc/PinebookPro/PinebookPro_Engineering_Notice.pdf engineering notice]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
{{warning|Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.}}<br />
<br />
=== Pinebook Service Step-by-Step Guides ===<br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|Service Guides for Pinebook]] you can find instructions guides concerning disassembly of:<br />
<br />
* The installation process on Pinebook Pro similar to 14" Pinebook<br />
* The installation process is the reverse order of removal guide:<br />
** 14″ Pinebook Lithium Battery Pack Removal Guide<br />
** 14″ Pinebook LCD Panel Screen Removal Guide<br />
** 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
<br />
See [[Pinebook Pro SPI]] for details.<br />
<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to: code>/dev/mtd0</code><br />
* The Linux package below, will need to be available: <code>mtd-utils</code><br />
* You can then use this program from the package to write the SPI device: <code>flashcp &lt;filename&gt; /dev/mtd0</code><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware. At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
<br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
With Mesa 20.2 there is no longer much reason to use this over the standard mesa package, and applications may occasionally break with mesa-git.<br />
<br />
[https://docs.mesa3d.org/bugs.html Reporting bugs] to the Mesa project will help make sure any problems are quickly fixed.<br />
<br />
=== OpenGL 3.3 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 3.0. If you want to use OpenGL 3.3, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gl3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL 3.3 and applications that rely on it should function properly. Note that GL 3.3 support is incomplete and some rendering features do not work yet, notably geometry shaders.<br />
<br />
=== Install Anbox on Pinebook Pro Manjaro 20.10 ===<br />
[https://www.youtube.com/watch?v=EU8_Q11dATs Youtube video on installing Anbox on Pienbook Pro Manjaro Build 20.10 by LivingLinux]<br />
<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* Reboot (this is just to ensure all background processes belong to the user are not running... there are other ways to achieve this but this way is easy)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>$ sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>$ sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>$ sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
$ sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
==== Debian ====<br />
* Backup and edit the U-Boot configuration file:<br />
<br />
cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot<br />
<br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
<br />
* Update the U-Boot configuration:<br />
<br />
u-boot-update<br />
<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
==== Manjaro ====<br />
* Backup and edit the U-Boot configuration file:<br />
<br />
cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf<br />
<br />
* Change '''console=ttyS2,1500000''' to '''console=tty1'''<br />
* Remove the '''bootsplash.bootfile''' option and it's parameter.<br />
* You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br />
* Leave everything else alone.<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use and read.<br><br />
* Increase the font size<br />
* Use a font with more pronounced features<br />
* Increase the various window manager sizes (e.g. increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes. Higher contrast can help usability.<br />
* Change the window manager's decorations (e.g. use larger icons)<br />
* Use a workspace manager, with one application per workspace<br />
* When at home or office, use an external monitor<br />
* Change the X-Windows DPI. One such method that someone used successfully, is:<br><blockquote><code>echo "Xft.dpi: 150" >> ~/.Xresources</code></blockquote>Change the 150 as desired to get the size adjustment you want.<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this troubleshooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== gVim has performance issue ==<br />
It appears that using GTK3 can cause very slow scrolling, while Vim in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so is somewhat Linux distro-specific).<br />
<br />
Another solution may be to run gVim with <br />
<br />
GDK_RENDERING=image<br />
<br />
environment variable set. It seems that this improves the performance by reverting back to software-only rendering.<br />
<br />
== Kernel options ==<br />
Here are some Pinebook Pro & its RK3399 SoC Linux specific options. If kernel version, (or version range specific), it should list that information in the description.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
Note modules are not loaded until needed. Thus, we sometimes check the kernel configuration instead to see if a feature is configured first, then see if it's a module.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
Note that in the above example, the Rockchip video CODEC is not built as a module, but included into the kernel. Thus, it does not show up in the list modules check.<br><br />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
<br />
= Troubleshooting guide =<br />
<br />
Do not to panic if something goes wrong or in an unexpected way. Instead, stop and consider carefully how to undo something, or how to redo it. This particularly applies when flashing a new operating system, or flashing new firmware to the keyboard or touchpad. If everything fails, consider reporting the issue on the forums, with as many relevant details as available.<br />
<br />
Please, have a look at the [[Pinebook Pro Troubleshooting Guide]], which details a number of issues you may encounter.<br />
<br />
= Hardware/Accessory Compatibility =<br />
Please contribute to the [[Pinebook Pro Hardware Accessory Compatibility|hardware/accessory compatibility page]], which lists the status of hardware tested with the Pinebook Pro. Available hardware categories include the following:<br />
<br />
* [[Pinebook Pro Hardware Accessory Compatibility#NVMe SSD drives|NVMe SSD drives]]<br />
* [[Pinebook Pro Hardware Accessory Compatibility#USB hardware|USB hardware]]<br />
* [[Pinebook Pro Hardware Accessory Compatibility#USB C alternate mode DP|USB-C alternate mode DP]]<br />
* [[Pinebook Pro Hardware Accessory Compatibility#Other hardware|Other hardware]]<br />
<br />
= Technical Reference =<br />
== Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
There are a few '''mandatory''' precautions to be taken:<br />
<br />
* Do not open the laptop by lifting the lid while the Pinebook Pro bottom cover is removed - this can cause structural damage to the hinges and/or other plastic components of the chassis such as the IO port cut-outs.<br />
* When removing the back cover plate, *do not, under any circumstances, slide your fingertips between the metal shell and the plastic frame!* The back cover plate edges are sharp, and when combined with the pressure and movement generated from, specifically, attempting to slide the tips of your fingers along the bottom edge of the plate along the lid-hinge, they *will* slice open the tips of your fingers like a knife.<br />
* When removing the back cover plate, use care to avoid damaging the speakers. They can be stuck to the back cover with double-sided tape, and the thin wires are very delicate. Newer Pinebook Pro laptops (as of the May 2021 batch, and perhaps earlier) seem to lack the double-sided tape to the rear cover, instead opting for tape or glue that makes them stick to the front cover. Nevertheless, be gentle when removing the back cover.<br />
<br />
[[File:PinebookProScrewGuide.png|400px|thumb|right|Pinebook Pro external screws (this particular unit has suffered damage on screw (4)L)]]<br />
<br />
When disassembling the laptop make sure that it is powered off and folded closed. To remove the bottom cover of the Pinebook Pro, first remove the ten (10) Phillips head screws that hold the bottom section of the laptop in place. There are four (4) short screws along the front edge, and six (6) long screws along the 3 remaining sides. Remove the cover from the back where the hinges are situated by lifting it up and away from the rest of the chassis. The aluminum case is held on only by screws. There are no plastic snaps, and the shell should pull away without any effort. If you experience any resistance at all stop and ensure all ten (10) screws are accounted for.<br />
<br />
During reassembly, make sure that the back-screw standoffs are in place and seated correctly. Before replacing the aluminum back-plate, ensure that the speakers are properly seated by pressing gently on the hard plastic edge of the speaker module. Slide the bottom section into place so it meets the front lip of the keyboard section. Secure the front section (where the trackpad is located) in place using the short screws in the front left and right corners. Then proceed to pop in the bottom panel into place. Secure the bottom section (where hinges are located) by screwing in the left and right corners. Then screw in the remaining screws and run your finger though the rim on the chassis to make sure its fitted correctly. Note that the front uses the remaining 4 short screws.<br />
<br />
The screws are small and should only be finger tight. Too much force will strip the threads. If after installing screws the back cover plate has not seated properly on one side (which may be caused by the aforementioned misseating of the speakers), open the display and hold the base on either side of the keyboard and gently flex the base with both hands in opposing directions. Once the side pops further in, then recheck the screws on that side. If it does not pop back in, re-open the machine and check for misseated components.<br />
<br />
A basic 3D model to print replacement standoffs for the back cover screws is [https://www.thingiverse.com/thing:4226648 available on Thingiverse], until the official drawings or 3D models are made available.<br />
<br />
== Internal Layout ==<br />
<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
The Reset and Recovery buttons (28): the reset button performs an immediate reset of the laptop. The Recovery button is used to place the device in maskrom mode; this mode allows flashing eMMC using Rockchip tools (e.g. rkflashtools). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe x4 slot for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
<br />
=== Boot sequence details ===<br />
The RK3399's mask 32KB ROM boot code looks for the next stage of code at byte off-set 32768, (sector 64 if using 512 byte sectors). This is where U-Boot code would reside on any media that is bootable.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
=== Boot devices ===<br />
<br />
The Pinebook Pro is capable of booting from eMMC, USB 2.0, USB 3.0, or an SD card. It cannot boot from USB-C. The boot order of the hard-coded ROM of its RK3399 SoC is: SPI NOR, eMMC, SD, USB OTG. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ u-boot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older Debian + MATE build that improves compatibility with booting other OSes from an SD card. In order to update, fully charge the battery, establish an internet connection, click the update icon in the toolbar, and then reboot your Pinebook Pro. Please see [https://forum.pine64.org/showthread.php?tid=7830 this log] for details.)<br />
<br />
Please note that PCIe, the interface used for NVMe SSD on the Pinebook Pro, is not bootable on the RK3399 and therefore is not a part of the boot hierarchy. It is possible to run the desired OS from NVMe by pointing extlinux on the eMMC to rootfs on the SSD. This requires uboot, the Kernel image, DTB, and extlinux.conf<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
== Case Dimensions and Data ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
** Bootable<br />
* SPI flash:<br />
** [[Pinebook Pro SPI]]<br />
** 128Mbit / 16MByte<br />
** 1 bit interface<br />
** Bootable, (first boot device, ahead of eMMC & SD card)<br />
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** Note that high power USB devices may not work reliably on a PBP. Or they may draw enough power to drain the battery even when the PBP is plugged into A.C. One alternative is externally powered USB devices.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
=== Lid closed magnet ===<br />
There is a magnet to detect when the laptop lid is closed, so action can be taken like sleep. This meets up with the Hall sensor on the daughter / small board to detect lid closed.<br />
* The magnet is located on the LCD panel right side, around 1.5 inches up measure from bottom edge.<br />
<br />
=== Webcam ===<br />
* Internal USB attached Webcam<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in microphone<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.0, 5&nbsp;GT/s per lane<br />
* Four PCIe lanes, which can not be bifurcated, but can be used with one- or two-lane NVMe cards<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5&nbsp;W continuous, 8.25&nbsp;W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [https://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [https://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet v2.1]<br />
** [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.4%20Part1.pdf Rockchip RK3399 Technical Reference Manual v1.4, part 1]<br />
** [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part1.pdf Rockchip RK3399 Technical Reference Manual v1.3, part 1] and [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part2.pdf part 2]<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet v0.8]<br />
* LPDDR4 SDRAM (366-pin BGA):<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 64GB/128GB SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (updated)]<br />
* Wireless and Bluetooth information:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio codec:<br />
** [http://www.everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec Datasheet]<br />
* LCD panel:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* USB-related information:<br />
** Internal USB 2.0 hub: [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub Datasheet]<br />
** USB Type-C Controller: [https://www.onsemi.com/pub/Collateral/FUSB302-D.PDF ON Semiconductor FUSB302 Datasheet]<br />
* Touchpad information:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf PineBook Pro Touchpad Specification]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD camera sensor:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification (in Chinese)]<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Datasheet]<br />
* Battery-related information:<br />
** Battery charging IC: [https://www.ti.com/lit/ds/symlink/bq24171.pdf?ts=1607068456825&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FBQ24171 Texas Instruments BQ24171 Datasheet]<br />
** Battery monitoring IC: [https://cdn.datasheetspdf.com/pdf-down/C/W/2/CW2015-Cellwise.pdf Cellwise CW2015 Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification]<br />
* Power path device:<br />
** [https://wiki.pine64.org/images/9/99/Sis412dn.pdf N-MOS / MOSFET]<br />
* NVMe adapter:<br />
** [https://wiki.pine64.org/images/d/d0/Hirose-FH26W-35S-0.3SHW%2860%29-datasheet.pdf FH26-35S-0.3SHW flat flex connector (compatible, not OEM)]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111]<br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (no login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [https://opensource.rock-chips.com/ Rockchip Open Source Wiki]<br />
* [[Pinebook Pro/Freepascal and Lazarus IDE on Manjaro|Freepascal and Lazarus IDE on Pinebook Pro]]<br />
<br />
[[Category:PineBook Pro]]<br />
[[Category:Rockchip RK3399]]</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=10499Pinebook Pro2021-05-23T21:01:16Z<p>Mrgtwentythree: /* Basic summary of replacing keyboard */</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
It is built to be a compelling alternative to mid-ranged Chromebooks that people convert into Linux laptops. It features an IPS 1080p 14″ LCD panel, a premium magnesium alloy shell, high capacity eMMC storage, a 10,000 mAh capacity battery, and the modularity that only an open source project can deliver. <br />
<br />
It's compact and slim dimensions are 329mm x 220mm x 12mm (WxDxH).<br />
<br />
Key features include: the RK3399 SOC; USB-C for data, video-out and power-in (3A 5V); privacy switches for the microphone, BT/WiFi module, and camera; and expandable storage via NVMe (PCIe x4) with an optional adapter. <br />
<br />
The Pinebook Pro is equipped with 4GB LPDDR4 system memory, high capacity eMMC flash storage, and 128Mb SPI boot Flash. The I/O includes: 1 x micro SD card reader (bootable), 1 x USB 2.0, 1 x USB 3.0, 1 x USB type C Host with DP 1.2 and power-in, PCIe x4 for an NVMe SSD drive (requires an optional adapter), and UART (via the headphone jack by setting an internal switch). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
Many different Operating Systems (OS) are freely available from the open source community and partner projects. These include various flavors of Linux (Ubuntu, Debian, Manjaro, etc.) and *BSD.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up (use a single word, all lower case, no punctuation; e.g. "pbpro").<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== Pinebook Pro images ===<br />
Under [[Pinebook Pro Software Release]] you will find a complete list of currently supported Operating System images that work with the Pinebook as well as other related software. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
* [[PinebookPro_Software_Release#Manjaro ARM|Manjaro ARM]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#Armbian|Armbian]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#Twister OS|Twister OS]] (microSD Boot)<br />
* [[PinebookPro_Software_Release#Fedora|Fedora]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#Arch_Linux_ARM|Arch Linux]] (microSD and USB boot)<br />
* [[PinebookPro_Software_Release#postmarketOS|Postmarket OS]] (microSD and USB boot)<br />
* [[PinebookPro_Software_Release#Kali Linux|Kali Linux]] (microSD and USB boot)<br />
* [[PinebookPro_Software_Release#Q4OS|Q4OS]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#NetBSD|NetBSD]] (microSD and eMMC Boot)<br />
* [[Pinebook_Pro_Software_Release#OpenBSD|OpenBSD release for ARM64]]<br />
* [[Pinebook_Pro_Software_Release#Gentoo|Gentoo]]<br />
<br />
== Keyboard ==<br />
The Pinebook Pro is available in two keyboard configurations: ISO and ANSI. Both the keyboard and trackpad in the Pinebook Pro use the USB 2.0 protocol and show up as such in xinput. The keyboard features function (Fn) keys in the F-key row, which include display brightness controls, sound volume, trackpad lock, and other functionality. There is also a custom PINE64 logo key that functions as Menu/Super key. It has also a secondary functionality for setting the privacy switches. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <b style="color: red">WARNING: DO NOT update the keyboard firmware before checking which keyboard IC your Pinebook Pro has.</b> Some Pinebook Pro were delivered with a '''SH61F83''' instead of a '''SH68F83'''. The SH61F83 can only be written 8 times, this will render the keyboard and trackpad unusable if this limit is reached when <code>step-1</code> is flashed, see the [https://reddit.com/r/PINE64official/comments/loq4db/very_disappointed/ Reddit SH61F83 thread].<br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
The [[Wikipedia:British_and_American_keyboards#Other_keyboard_layouts|UK ISO Layout]] does not have dedicated keys for characters like the German umlauts (Ä,Ö,Ü, etc). Certain characters can still be generated by means of either key combinations or key sequences. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch<br />
| CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch<br />
| NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch<br />
| CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
| Can use tools like '''<code>lsusb</code>''' to detect camera's presence. If not detected, check privacy switch.<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independent of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect as cutting off the power to each peripheral with a physical switch. This implementation is very secure, since the firmware that determines whether a peripheral gets power is not part of the Pinebook Pro’s operating system. So the power state value for each peripheral cannot be overridden or accessed from the operating system. The power state setting for each peripheral is stored across reboots inside the keyboard's firmware flash memory.<br />
<br />
=== Basic summary of replacing keyboard ===<br />
<br />
This guide is very basic and should be fleshed out with pictures. There just isn't a list of steps anywhere else yet.<br />
<br />
''Step 0'': If changing from ISO keyboard to ANSI keyboard, or vice versa, be sure to have a system capable of running the firmware updater that you can access either remotely or with a USB keyboard beyond the internal keyboard, as the firmware for each is very different and keys won't work correctly. See https://forum.pine64.org/showthread.php?tid=8407 (and for NetBSD, https://forum.pine64.org/showthread.php?tid=8716).<br />
<br />
''Step 1'': The remove back back panel.<br />
<br />
There are 10 screws on the back that must be removed, and the back panel detached. The speakers may remain attached via glue to the case and should be carefully pried off. When this is done, taking photos of how everything looks now can help put it all back together later.<br />
<br />
''Step 2'': Places to unscrew.<br />
<br />
There are 3 items screwed into the keyboard frame that must be removed. There are 2 large screws for daughter board, 3 large screws and 1 small screw for mainboard, and 4 screws for battery. Be sure to not lose them.<br />
<br />
''Step 3'': Remove the battery.<br />
<br />
Once the battery screws are removed, it should be unplugged from the mainboard and removed. Note that there are two unconnected cables lying around, that should remain unconnected. They are used when the battery is disconnected entirely.<br />
<br />
''Step 4'': Unplug the ribbon cables.<br />
<br />
There are several ribbon cables. To remove, flip up the tab and gentle pull the ribbon out.<br />
<br />
* One cable runs from the mainboard to the daughterboard underneath the battery. Detach from both ends. With the battery removed, detach from keyboard shell, and set aside for the new keyboard shell.<br />
* One cable runs between the trackpad and the mainboard. Detach from both ends, and also set aside.<br />
* One cable runs between the keyboard and the mainboard. This one remains attached to the keyboard and only needs to be detached from the mainboard.<br />
* One cable from the LCD attaches near the lid hinge. It should be just unplugged.<br />
<br />
''Step 5'': Detach microphone and speakers.<br />
<br />
The speakers and microphone don't have to be detached from the mainboard, but they need to be detached from the keyboard shell. The microphones are held in place by tape, and the speakers have sticky sides. The speakers are found obviously, but the microphones (two of) can be found between the battery and the hinge area.<br />
<br />
''Step 6'': Remove mainboard and daughterboard.<br />
<br />
At this point, the mainboard and daughterboards should be removed. When unscrewed (see Step 2) they should pull out fairly easily. Put them aside (including microphones and speakers if left attached.)<br />
<br />
''Step 7'': Detach the LCD panel.<br />
<br />
Step 2 didn't tell you, there are 6 more screws to remove here, 3 for each of the hinges. Unscrew these and the LCD panel will be able to be removed. You may have to jiggle or move the hinges for this. When detached, be sure to place the LCD panel such that the display is protected.<br />
<br />
''Step 8'': Try Not To Break Your Trackpad, or, How I Learned To Love Things That Bend<br />
<br />
'''NOTE This section really feels like you're going to break something.'''<br />
<br />
The trackpad is glued to the keyboard shell and it's glued well. There are two places it is glued to. If you can, only the middle must be force-detached. You will think you're going to break it. Gently apply increasing force until the glue begins to detach (you will hear a crackle as it comes off), and continue very slowly until the whole thing is detached. This may take minutes due to that feeling you're going to break it.<br />
<br />
''Step 9'': Over the hill, trackpad goes into new shell.<br />
<br />
In the new keyboard shell put the trackpad back where it was, hopefully the glue will remain sufficiently attached. If there is a glue issue, this guide unfortunately has no advice currently.<br />
<br />
''Step 10'': Reattach the LCD panel.<br />
<br />
The LCD panel should slot back into the keyboard frame, the same way it came out. If the hinges were moved, they should be *very* *gently* closed such that the LCD panel and keyboard closed like normal for the remaining steps.<br />
<br />
''Step 11'': Tape it out.<br />
<br />
Move any tape from the old keyboard shell to the new one. These items protect the mainboard and daughterboard, and keep various wires in their right place. Some are grey and some are black. For tape that holds the speakers, microhones, or their cables in place, do not reattach yet.<br />
<br />
''Step 12'': Board install.<br />
<br />
Install the mainboard, the daughtboard, and their connecting ribbon cable. Be sure to put the boards in place, 2 large flat screws for the daughterboard, 3 large flat screws and one small screw for the mainboard, before attempting to place the ribbon.<br />
<br />
''Step 13'': Microphone and speaker install.<br />
<br />
Reattached the microphones and speakers to their respective areas, making sure that both are properly oriented - the speaker "out" faces up, and the microphone cables as connected must face up (these are opposite directions.)<br />
<br />
''Step 14'': Reattach other ribbon cables.<br />
<br />
The LCD panel, keyboard and trackpad ribbon cables should be reattached. Make sure the flap is open, insert the ribbon into the slot (a portion of the cable will disappear), and push the flap down. The cable should not be easy to pull out.<br />
<br />
''Step 15'': Reattach the battery, and final re-tape.<br />
<br />
The battery should be installed with the 4 screws holding it in place, and the connector attached to the mainboard. Be sure to keep the two other cables remain unconnected. Ensure all wires and other tapes are held in place.<br />
<br />
''Step 16'': Reattach the back panel.<br />
<br />
Put the back panel back on, and reattach the 10 screws.<br />
<br />
''Step 17'': If you changed from ISO to ANSI or from ANSI to ISO, you'll need to update your firmware now. See the links in Step 0 above.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
The trackpad controller is connected to the keyboard controller. All trackpad events go through the keyboard controller and it's software, then to the keyboard controller's USB port. Note that the trackpad does have separate firmware, (which has to be written through the keyboard controller).<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
<b style="color: red">WARNING: DO NOT update the trackpad firmware before checking which keyboard IC your Pinebook Pro has.</b> Some Pinebook Pro were delivered with a '''SH61F83''' instead of a '''SH68F83'''. The SH61F83 can only be written 8 times, this will render the keyboard and trackpad unusable if this limit is reached when <code>step-1</code> is flashed. See [//old.reddit.com/r/PINE64official/comments/loq4db/very_disappointed/ Reddit SH61F83 thread].<br />
<br />
Please refer to original documentation for details.<br />
<br />
Your Pinebook Pro should be either fully charged or, preferably, running off of mains. This utility will be writing chips on the keyboard and trackpad, so a loss of power during any stage of the update can result in irrecoverable damage to your trackpad or keyboard.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop. Newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
There are two keyboard versions of the Pinebook Pro: ISO and ANSI. You need to know which model you have prior to running the updater. <br />
Firmware update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse (or access to the Pinebook Pro via SSH)<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<b>NOTE:</b> Running step 1 on the ANSI keyboard model will make the keyboard and trackpad inaccessible until step 2 is ran, so an external keyboard must be connected to complete the update on this model!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
When done, if some of the keys produce incorrect characters, please check your OS’s language settings. For ANSI users, the default OS shipped with English UK as the default language. You can change it to English US if desired.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver, use this command to make the change live:<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticeably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below:<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient TapButton1=1<br />
synclient TapButton2=3<br />
synclient TapButton3=2<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<code>FingerLow</code> has the same value as 'FingerHigh' in one config (30). It is believed to help reduce mouse movement as you lift your finger, but it's unknown whether synaptic works like this.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
<code>TabButton</code> allows to just tab the touchpad instead of physically pressing it down (to get this click noise).<br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
In total, there are four LEDs on the Pinebook Pro, three of which are placed in the top-left side of the keyboard, and one near the barrel port: <br />
<br />
# The red LED next to the barrel port indicates charging, in three ways. First, it will illuminate steadily when either the factory power supply or a USB Type-C charger is connected to the Pinebook Pro, and the battery is getting charged. Second, if the battery is at 100%, the LED will remain turned off regardless of the connected power input; however, this is [https://forum.pine64.org/showthread.php?tid=10899 rather rarely achieved]. Third, this LED will flash at 0.5&nbsp;Hz if there are any problems that prevent charging, such as the battery becoming too hot.<br />
# The power indicator LED, above the keyboard, supports three different colors: green, amber and red. It is also capable of flashing to indicate eMMC activity. In the default Debian with MATE build, green LED means power and red means suspend (amber is unused). <br />
# The green NumLock LED, above the keyboard.<br />
# The green CapsLock LED, above the keyboard.<br />
<br />
The NumLock and CapsLock LEDs serve their usual purposes on a keyboard, but they also have a secondary function. When the privacy switches get activated they blink to confirm that the switch has been activated.<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (uncompressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try changing the [[Pinebook_Pro#Privacy_Switches|privacy switches]]. If the switches are in the correct place and microphone input isn't working you can run <code>alsamixer</code> from the command line, hit <i>F6</i> and select the <i>es8316</i>, hit F4 to get to the capture screen, select the bar labeled ADC, increase the gain to 0dB, change the audio profile in pavucontrol to another one with input. Additionally you may want to modify ADC PGA to get the levels to where you want them. If that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the section [[#Technical Reference|Technical Reference]]).<br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilities are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<br />
To disable Bluetooth under Linux once:<br />
<br />
sudo rfkill block bluetooth<br />
<br />
To confirm if Bluetooth under Linux is disabled:<br />
<br />
rfkill<br />
<br />
To disable Bluetooth on boot (note: for distributions such as Manjaro XFCE see the step below):<br />
<br />
sudo systemctl enable rfkill-block@bluetooth<br />
<br />
To disable Bluetooth on certain distributions, such as Manjaro XFCE, right click on the Bluetooth panel icon, select <i>plugins</i>, then <i>PowerManager</i>, then <i>configuration</i> and then deselect the <i>auto power on</i> option<br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56&nbsp;cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60&nbsp;Hz refresh rate<br />
* IPS technology<br />
* 1000:1 contrast<br />
* 250&nbsp;nit brightness<br />
* 63% sRGB coverage<br />
* 6-bit color<br />
* 30-pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PinePhone_Serial_Cable.png|400px|thumb|right|Pinout of the serial adapter. Swapping the tx and rx around from this also works and is more traditional. See the official [https://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pine64 document].]]<br />
<br />
UART output is enabled by flipping the UART switch to the ON position (item 9). To do so you need to remove the Pinebook Pro's bottom cover - please follow [https://wiki.pine64.org/index.php/Pinebook_Pro_Main_Page#Accessing_the_Internals_-_Disassembly_and_Reassembly proper disassembly and reassembly protocol]. The OFF position is towards the touchpad, the ON position is towards the display hinges.<br />
<br />
With the UART switch in the ON position, console is relayed via the audiojack and the laptop's sound is turned OFF. Please ensure that you are using a 3.3&nbsp;V interface (such as the CH340, FTDI-232R, or PL2303, which are sold in both 3.3&nbsp;V and 5&nbsp;V variants) to avoid damage to the CPU. Older version of the serial console cable sold by Pine64 uses wrong voltage level and should not be used; see [https://forum.pine64.org/showthread.php?tid=9367 this forum thread] for further information. Recent version of the same cable uses the right voltage level.<br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor, ensuring that the audio jack of the serial cable is be fully inserted into the Pinebook Pro audio port. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
Old versions of U-Boot do not use the UART for console output. <strike>The console function is activated by the Linux kernel. Thus, if you use a non-Pinebook Pro Linux distro and want the UART as a console, you have to manually enable it.</strike><br />
<br />
== Using the optional NVMe adapter ==<br />
The optional NVMe adapter allows the use of M.2 cards that support the NVMe standard, (but not SATA standard). The optional NVMe M.2 adapter supports '''M''' & '''M'''+'''B''' keyed devices, in both 2242 & 2280 physical sizes, the most common ones available. In addition, 2230 & 2260 are also supported, though NVMe devices that use those sizes are rare.<br />
<br />
Once you have fitted and tested your NVMe drive, please add a note to this page [[Pinebook Pro Hardware Accessory Compatibility]] to help build a list of tried and tested devices.<br />
<br />
Please see [[Pinebook Pro Troubleshooting Guide#NVMe SSD issues|a separate section]] that describes reported issues with the NVMe drives in PineBook Pro.<br />
<br />
=== Installing the adapter ===<br />
The V2.1-2019-0809 SSD adapter that shipped with the initial Pinebook Pro batches had significant issues. A repair kit will be shipped to address those issues.<br />
(If necessary, it can be modified to work. There is [https://forum.pine64.org/showthread.php?tid=8322&pid=52700#pid52700 an unofficial tutorial on the forums] describing these modifications.)<br />
<br />
The updated SSD adapter, labeled V2-2019-1107, takes into account the prior problems with trackpad interference. New orders as of Feb. 22nd, 2020 will be the updated adapter.<br />
<br />
This is the link to the Pinebook Pro accessories in the store: [[https://pine64.com/?v=0446c16e2e66]]<br />
<br />
Actual installation instructions are a work in progress. Unofficial instructions for installing V2-2019-1107 can be found [https://eli.gladman.cc/blog/2020/06/23/pine-book-pro-nvme.html here].<br />
<br />
=== Post NVMe install power limiting ===<br />
Some NVMe SSDs allow reducing the maximum amount of power. Doing so may reduce the speed, but it may be needed in the Pinebook Pro to both improve reliability at lower battery levels. And to reduce power used, to maintain battery life.<br />
Here are the commands to obtain and change the power settings. The package 'nvme-cli' is required to run these commands. The example shows how to find the available power states, and then sets it to the lowest, non-standby setting, (which is 3.8 watts for the device shown);<br />
<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
Some NVMe SSDs don't appear to allow saving the setting with "-s" option. In those cases, leave off the "-s" and use a startup script to set the non-default power state at boot.<br><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<br/><br />
There is another power saving feature for NVMes, APST, (Autonomous Power State Transitions). This performs the power saving & transitions based on usage. To check if you have a NVMe SSD with this feature;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
As long as the kernel in use has both the PCIe and NVMe drivers, you should be able to use a NVMe drive as a data drive. It can automatically mount when booting from either the eMMC or an SD card. This applies to Linux, FreeBSD, and Chromium, using the normal partitioning and file system creation tools. Android requires testing.<br />
<br />
=== Using as OS root drive ===<br />
The SoC does not include the NVMe boot code, so the NVMe is not in the SoC's boot order. However, using the [https://github.com/mrfixit2001/updates_repo/blob/v1.1/pinebook/filesystem/mrfixit_update.sh U-Boot update script] from the mrfixit2001 Debian or [https://pastebin.com/raw/EeK074XB Arglebargle's modified script], and [https://github.com/pcm720/rockchip-u-boot/releases the modified u-boot images] provided by forum user pcm720, you can now add support to boot from an NVMe drive. Binary images are useable with SD, eMMC, and [[Pinebook_Pro_SPI|SPI flash]]. For OS images using the mainline kernel, there are a few variants of U-Boot available that also support NVMe as the OS drive. Though these may require writing the U-Boot to the SPI flash for proper use of the NVMe as the OS drive.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
It is also possible to initially boot off an eMMC or SD card, then transfer to a root file system on the NVMe. Currently, it is necessary to have the U-Boot code on an eMMC or SD card. (A forum member [https://forum.pine64.org/showthread.php?tid=8439 posted here] about using a modified version of U-Boot with NVMe drivers, that uses <code>/boot</code> and <code>/</code> off the NVMe drive. So this may change in the future.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
The mainboard features two (disconnected by default) bypass cables that are only to be used with the battery disconnected. The female (10) male (6) ends of the bypass cables can be connected to provide power to the mainboard if you need to run the laptop without a battery. Please refer to this [https://files.pine64.org/doc/PinebookPro/PinebookPro_Engineering_Notice.pdf engineering notice]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== Pinebook Service Step-by-Step Guides ===<br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|Service Guides for Pinebook]] you can find instructions guides concerning disassembly of:<br />
<br />
* The installation process on Pinebook Pro similar to 14" Pinebook<br />
* The installation process is the reverse order of removal guide:<br />
** 14″ Pinebook Lithium Battery Pack Removal Guide<br />
** 14″ Pinebook LCD Panel Screen Removal Guide<br />
** 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
<br />
See [[Pinebook Pro SPI]] for details.<br />
<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to: code>/dev/mtd0</code><br />
* The Linux package below, will need to be available: <code>mtd-utils</code><br />
* You can then use this program from the package to write the SPI device: <code>flashcp &lt;filename&gt; /dev/mtd0</code><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware. At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
<br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
With Mesa 20.2 there is no longer much reason to use this over the standard mesa package, and applications may occasionally break with mesa-git.<br />
<br />
[https://docs.mesa3d.org/bugs.html Reporting bugs] to the Mesa project will help make sure any problems are quickly fixed.<br />
<br />
=== OpenGL 3.3 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 3.0. If you want to use OpenGL 3.3, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gl3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL 3.3 and applications that rely on it should function properly. Note that GL 3.3 support is incomplete and some rendering features do not work yet, notably geometry shaders.<br />
<br />
=== Install Anbox on Pinebook Pro Manjaro 20.10 ===<br />
[https://www.youtube.com/watch?v=EU8_Q11dATs Youtube video on installing Anbox on Pienbook Pro Manjaro Build 20.10 by LivingLinux]<br />
<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* Reboot (this is just to ensure all background processes belong to the user are not running... there are other ways to achieve this but this way is easy)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>$ sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>$ sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>$ sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
$ sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
==== Debian ====<br />
* Backup and edit the U-Boot configuration file:<br />
<br />
cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot<br />
<br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
<br />
* Update the U-Boot configuration:<br />
<br />
u-boot-update<br />
<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
==== Manjaro ====<br />
* Backup and edit the U-Boot configuration file:<br />
<br />
cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf<br />
<br />
* Change '''console=ttyS2,1500000''' to '''console=tty1'''<br />
* Remove the '''bootsplash.bootfile''' option and it's parameter.<br />
* You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br />
* Leave everything else alone.<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use and read.<br><br />
* Increase the font size<br />
* Use a font with more pronounced features<br />
* Increase the various window manager sizes (e.g. increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes. Higher contrast can help usability.<br />
* Change the window manager's decorations (e.g. use larger icons)<br />
* Use a workspace manager, with one application per workspace<br />
* When at home or office, use an external monitor<br />
* Change the X-Windows DPI<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this troubleshooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== gVim has performance issue ==<br />
It appears that using GTK3 can cause very slow scrolling, while Vim in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so is somewhat Linux distro-specific).<br />
<br />
Another solution may be to run gVim with <br />
<br />
GDK_RENDERING=image<br />
<br />
environment variable set. It seems that this improves the performance by reverting back to software-only rendering.<br />
<br />
== Kernel options ==<br />
Here are some Pinebook Pro & its RK3399 SoC Linux specific options. If kernel version, (or version range specific), it should list that information in the description.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
Note modules are not loaded until needed. Thus, we sometimes check the kernel configuration instead to see if a feature is configured first, then see if it's a module.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
Note that in the above example, the Rockchip video CODEC is not built as a module, but included into the kernel. Thus, it does not show up in the list modules check.<br><br />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
<br />
= Troubleshooting guide =<br />
<br />
Do not to panic if something goes wrong or in an unexpected way. Instead, stop and consider carefully how to undo something, or how to redo it. This particularly applies when flashing a new operating system, or flashing new firmware to the keyboard or touchpad. If everything fails, consider reporting the issue on the forums, with as many relevant details as available.<br />
<br />
Please, have a look at the [[Pinebook Pro Troubleshooting Guide]], which details a number of issues you may encounter.<br />
<br />
= Hardware/Accessory Compatibility =<br />
Please contribute to the [[Pinebook Pro Hardware Accessory Compatibility|hardware/accessory compatibility page]], which lists the status of hardware tested with the Pinebook Pro. Available hardware categories include the following:<br />
<br />
* [[Pinebook Pro Hardware Accessory Compatibility#NVMe SSD drives|NVMe SSD drives]]<br />
* [[Pinebook Pro Hardware Accessory Compatibility#USB hardware|USB hardware]]<br />
* [[Pinebook Pro Hardware Accessory Compatibility#USB C alternate mode DP|USB-C alternate mode DP]]<br />
* [[Pinebook Pro Hardware Accessory Compatibility#Other hardware|Other hardware]]<br />
<br />
= Technical Reference =<br />
== Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
There are a few '''mandatory''' precautions to be taken:<br />
<br />
* Do not open the laptop by lifting the lid while the Pinebook Pro bottom cover is removed - this can cause structural damage to the hinges and/or other plastic components of the chassis such as the IO port cut-outs.<br />
* When removing the back cover plate, *do not, under any circumstances, slide your fingertips between the metal shell and the plastic frame!* The back cover plate edges are sharp, and when combined with the pressure and movement generated from, specifically, attempting to slide the tips of your fingers along the bottom edge of the plate along the lid-hinge, they *will* slice open the tips of your fingers like a knife.<br />
* When removing the back cover plate, use care to avoid damaging the speakers. They are stuck to the back cover with double-sided tape, and the thin wires are very delicate.<br />
<br />
[[File:PinebookProScrewGuide.png|400px|thumb|right|Pinebook Pro external screws (this particular unit has suffered damage on screw (4)L)]]<br />
<br />
When disassembling the laptop make sure that it is powered off and folded closed. To remove the bottom cover of the Pinebook Pro, first remove the ten (10) Phillips head screws that hold the bottom section of the laptop in place. There are four (4) short screws along the front edge, and six (6) long screws along the 3 remaining sides. Remove the cover from the back where the hinges are situated by lifting it up and away from the rest of the chassis. The aluminum case is held on only by screws. There are no plastic snaps, and the shell should pull away without any effort. If you experience any resistance at all stop and ensure all ten (10) screws are accounted for.<br />
<br />
During reassembly, make sure that the back-screw standoffs are in place and seated correctly. Before replacing the aluminum back-plate, ensure that the speakers are properly seated by pressing gently on the hard plastic edge of the speaker module. Slide the bottom section into place so it meets the front lip of the keyboard section. Secure the front section (where the trackpad is located) in place using the short screws in the front left and right corners. Then proceed to pop in the bottom panel into place. Secure the bottom section (where hinges are located) by screwing in the left and right corners. Then screw in the remaining screws and run your finger though the rim on the chassis to make sure its fitted correctly. Note that the front uses the remaining 4 short screws.<br />
<br />
The screws are small and should only be finger tight. Too much force will strip the threads. If after installing screws the back cover plate has not seated properly on one side (which may be caused by the aforementioned misseating of the speakers), open the display and hold the base on either side of the keyboard and gently flex the base with both hands in opposing directions. Once the side pops further in, then recheck the screws on that side. If it does not pop back in, re-open the machine and check for misseated components.<br />
<br />
A basic 3D model to print replacement standoffs for the back cover screws is [https://www.thingiverse.com/thing:4226648 available on Thingiverse], until the official drawings or 3D models are made available.<br />
<br />
== Internal Layout ==<br />
<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
The Reset and Recovery buttons (28): the reset button performs an immediate reset of the laptop. The Recovery button is used to place the device in maskrom mode; this mode allows flashing eMMC using Rockchip tools (e.g. rkflashtools). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe x4 slot for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
<br />
=== Boot sequence details ===<br />
The RK3399's mask 32KB ROM boot code looks for the next stage of code at byte off-set 32768, (sector 64 if using 512 byte sectors). This is where U-Boot code would reside on any media that is bootable.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
=== Boot devices ===<br />
<br />
The Pinebook Pro is capable of booting from eMMC, USB 2.0, USB 3.0, or an SD card. It cannot boot from USB-C. The boot order of the hard-coded ROM of its RK3399 SoC is: SPI NOR, eMMC, SD, USB OTG. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ u-boot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older Debian + MATE build that improves compatibility with booting other OSes from an SD card. In order to update, fully charge the battery, establish an internet connection, click the update icon in the toolbar, and then reboot your Pinebook Pro. Please see [https://forum.pine64.org/showthread.php?tid=7830 this log] for details.)<br />
<br />
Please note that PCIe, the interface used for NVMe SSD on the Pinebook Pro, is not bootable on the RK3399 and therefore is not a part of the boot hierarchy. It is possible to run the desired OS from NVMe by pointing extlinux on the eMMC to rootfs on the SSD. This requires uboot, the Kernel image, DTB, and extlinux.conf<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
== Case Dimensions and Data ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
** Bootable<br />
* SPI flash:<br />
** [[Pinebook Pro SPI]]<br />
** 128Mbit / 16MByte<br />
** 1 bit interface<br />
** Bootable, (first boot device, ahead of eMMC & SD card)<br />
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** Note that high power USB devices may not work reliably on a PBP. Or they may draw enough power to drain the battery even when the PBP is plugged into A.C. One alternative is externally powered USB devices.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
=== Lid closed magnet ===<br />
There is a magnet to detect when the laptop lid is closed, so action can be taken like sleep. This meets up with the Hall sensor on the daughter / small board to detect lid closed.<br />
* The magnet is located on the LCD panel right side, around 1.5 inches up measure from bottom edge.<br />
<br />
=== Webcam ===<br />
* Internal USB attached Webcam<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in microphone<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.0, 5&nbsp;GT/s per lane<br />
* Four PCIe lanes, which can not be bifurcated, but can be used with one- or two-lane NVMe cards<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5&nbsp;W continuous, 8.25&nbsp;W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [https://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [https://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet v2.1]<br />
** [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.4%20Part1.pdf Rockchip RK3399 Technical Reference Manual v1.4, part 1]<br />
** [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part1.pdf Rockchip RK3399 Technical Reference Manual v1.3, part 1] and [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part2.pdf part 2]<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet v0.8]<br />
* LPDDR4 SDRAM (366-pin BGA):<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 64GB/128GB SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (updated)]<br />
* Wireless and Bluetooth information:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio codec:<br />
** [http://www.everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec Datasheet]<br />
* LCD panel:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* USB-related information:<br />
** Internal USB 2.0 hub: [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub Datasheet]<br />
** USB Type-C Controller: [https://www.onsemi.com/pub/Collateral/FUSB302-D.PDF ON Semiconductor FUSB302 Datasheet]<br />
* Touchpad information:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf PineBook Pro Touchpad Specification]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD camera sensor:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification (in Chinese)]<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Datasheet]<br />
* Battery-related information:<br />
** Battery charging IC: [https://www.ti.com/lit/ds/symlink/bq24171.pdf?ts=1607068456825&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FBQ24171 Texas Instruments BQ24171 Datasheet]<br />
** Battery monitoring IC: [https://cdn.datasheetspdf.com/pdf-down/C/W/2/CW2015-Cellwise.pdf Cellwise CW2015 Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification]<br />
* Power path device:<br />
** [https://wiki.pine64.org/images/9/99/Sis412dn.pdf N-MOS / MOSFET]<br />
* NVMe adapter:<br />
** [https://wiki.pine64.org/images/d/d0/Hirose-FH26W-35S-0.3SHW%2860%29-datasheet.pdf FH26-35S-0.3SHW flat flex connector (compatible, not OEM)]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111]<br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (no login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [https://opensource.rock-chips.com/ Rockchip Open Source Wiki]<br />
* [[Pinebook Pro/Freepascal and Lazarus IDE on Manjaro|Freepascal and Lazarus IDE on Pinebook Pro]]<br />
<br />
[[Category:PineBook Pro]]<br />
[[Category:Rockchip RK3399]]</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=10382Pinebook Pro2021-05-17T07:27:19Z<p>Mrgtwentythree: add a bunch of details about installing the new keyboard.</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
It is built to be a compelling alternative to mid-ranged Chromebooks that people convert into Linux laptops. It features an IPS 1080p 14″ LCD panel, a premium magnesium alloy shell, high capacity eMMC storage, a 10,000 mAh capacity battery, and the modularity that only an open source project can deliver. <br />
<br />
It's compact and slim dimensions are 329mm x 220mm x 12mm (WxDxH).<br />
<br />
Key features include: the RK3399 SOC; USB-C for data, video-out and power-in (3A 5V); privacy switches for the microphone, BT/WiFi module, and camera; and expandable storage via NVMe (PCIe x4) with an optional adapter. <br />
<br />
The Pinebook Pro is equipped with 4GB LPDDR4 system memory, high capacity eMMC flash storage, and 128Mb SPI boot Flash. The I/O includes: 1 x micro SD card reader (bootable), 1 x USB 2.0, 1 x USB 3.0, 1 x USB type C Host with DP 1.2 and power-in, PCIe x4 for an NVMe SSD drive (requires an optional adapter), and UART (via the headphone jack by setting an internal switch). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
Many different Operating Systems (OS) are freely available from the open source community and partner projects. These include various flavors of Linux (Ubuntu, Debian, Manjaro, etc.) and *BSD.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up (use a single word, all lower case, no punctuation; e.g. "pbpro").<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
Under [[Pinebook Pro Software Release|'Pinebook Pro Software Release/OS Image Download Section']] you will find a complete list of currently supported Operating System images that work with the Pinebook as well as other related software. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Twister OS|'''Twister OS (microSD Boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Arch Linux|'''Arch Linux (microSD and USB boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Postmarket OS|'''Postmarket OS (microSD and USB boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Kali Linux|'''Kali Linux (microSD and USB boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
== Keyboard ==<br />
The Pinebook Pro is available in two keyboard configurations: ISO and ANSI. Both the keyboard and trackpad in the Pinebook Pro use the USB 2.0 protocol and show up as such in xinput. The keyboard features function (Fn) keys in the F-key row, which include display brightness controls, sound volume, trackpad lock, and other functionality. There is also a custom PINE64 logo key that functions as Menu/Super key. It has also a secondary functionality for setting the privacy switches. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <b style="color: red">WARNING: DO NOT update the keyboard firmware before checking which keyboard IC your Pinebook Pro has.</b> Some Pinebook Pro were delivered with a '''SH61F83''' instead of a '''SH68F83'''. The SH61F83 can only be written 8 times, this will render the keyboard and trackpad unusable if this limit is reached when <code>step-1</code> is flashed. See [//old.reddit.com/r/PINE64official/comments/loq4db/very_disappointed/ Reddit SH61F83 thread].<br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
The [[Wikipedia:British_and_American_keyboards#Other_keyboard_layouts|UK ISO Layout]] does not have dedicated keys for characters like the German umlauts (Ä,Ö,Ü, etc). Certain characters can still be generated by means of either key combinations or key sequences. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch<br />
| CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch<br />
| NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch<br />
| CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
| Can use tools like '''<code>lsusb</code>''' to detect camera's presence. If not detected, check privacy switch.<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect as cutting off the power to each peripheral with a physical switch. This implementation is very secure, since the firmware that determines whether a peripheral gets power is not part of the Pinebook Pro’s operating system. So the power state value for each peripheral cannot be overridden or accessed from the operating system. The power state setting for each peripheral is stored across reboots inside the keyboard's firmware flash memory.<br />
<br />
=== Basic summary of replacing keyboard ===<br />
<br />
This guide is very basic and should be fleshed out with pictures. There just isn't a list of steps anywhere else yet.<br />
<br />
''Step 0'': If changing from ISO keyboard to ANSI keyboard, or vice versa, be sure to have a system capable of running the firmware updater that you can access either remotely or with a USB keyboard beyond the internal keyboard, as the firmware for each is very different and keys won't work correctly. See https://forum.pine64.org/showthread.php?tid=8407 (and for NetBSD, https://forum.pine64.org/showthread.php?tid=8716).<br />
<br />
''Step 1'': The remove back back panel.<br />
<br />
There are 10 screws on the back that must be removed, and the back panel detached. The speakers may remain attached via glue to the case and should be carefully pried off. When this is done, taking photos of how everything looks now can help put it all back together later.<br />
<br />
''Step 2'': Places to unscrew.<br />
<br />
There are 3 items screwed into the keyboard frame that must be removed. There are 2 large screws for daughter board, 3 large screws and 1 small screw for mainboard, and 4 screws for battery. Be sure to not lose them.<br />
<br />
''Step 3'': Remove the battery.<br />
<br />
Once the battery screws are removed, it should be unplugged from the mainboard and removed. Note that there are two unconnected cables lying around, that should remain unconnected. They are used when the battery is disconnected entirely.<br />
<br />
''Step 4'': Unplug the ribbon cables.<br />
<br />
There are several ribbon cables. To remove, flip up the tab and gentle pull the ribbon out.<br />
<br />
* One cable runs from the mainboard to the daughterboard underneath the battery. Detach from both ends. With the battery removed, detach from keyboard shell, and set aside for the new keyboard shell.<br />
* One cable runs between the trackpad and the mainboard. Detach from both ends, and also set aside.<br />
* One cable runs between the keyboard and the mainboard. This one remains attached to the keyboard and only needs to be detached from the mainboard.<br />
* One cable from the LCD attaches near the lid hinch. It should be just unplugged.<br />
<br />
''Step 5'': Detach microphone and speakers.<br />
<br />
The speakers and microphone don't have to be detached from the mainboard, but they need to be detached from the keyboard shell. The microphones are held in place by tape, and the speakers have sticky sides. The speakers are found obviously, but the microphones (two of) can be found between the battery and the hinge area.<br />
<br />
''Step 6'': Remove mainboard and daughterboard.<br />
<br />
At this point, the mainboard and daughterboards should be removed. When unscrewed (see Step 2) they should pull out fairly easily. Put them aside (including microphones and speakers if left attached.)<br />
<br />
''Step 7'': Detach the LCD panel.<br />
<br />
Step 2 didn't tell you, there are 6 more screws to remove here, 3 for each of the hinges. Unscrew these and the LCD panel will be able to be removed. You may have to jiggle or move the hinges for this. When detached, be sure to place the LCD panel such that the display is protected.<br />
<br />
''Step 8'': Try Not To Break Your Trackpad, or, How I Learned To Love Things That Bend<br />
<br />
'''NOTE This section really feels like you're going to break something.'''<br />
<br />
The trackpad is glued to the keyboard shell and it's glued well. There are two places it is glued too, and if you can only the middle must be force-detached. You will think you're going to break it. Gently apply increasing force until the glue begins to detach (you will hear a crackle as it comes off), and continue very slowly until the whole thing is detached. This may take minutes due to that feeling you're going to break it.<br />
<br />
''Step 9'': Over the hill, trackpad goes into new shell.<br />
<br />
In the new keyboard shell put the trackpad back where it was, hopefully the glue will remain sufficiently attached. If there is a glue issue, this guide unfortunately has no advice currently.<br />
<br />
''Step 10'': Reattach the LCD panel.<br />
<br />
The LCD panel should slot back into the keyboard frame, the same way it came out. If the hinches were moved, they should be *very* *gently* closed such that the LCD panel and keyboard closed like normal for the remaining steps.<br />
<br />
''Step 11'': Tape it out.<br />
<br />
Move any tape from the old keybaord shell to the new one. These items protect the mainboard and daughterboard, and keep various wires in their right place. Some are grey and some are black. For tape that holds the speakers, microhones, or their cables in place, do not reattach yet.<br />
<br />
''Step 12'': Board install.<br />
<br />
Install the mainboard, the daughtboard, and their connecting ribbon cable. Be sure to put the boards in place, 2 large flat screws for the daughterboard, 3 large flat screws and one small screw for the mainboard, before attempting to place the ribbon.<br />
<br />
''Step 13'': Microphone and speaker install.<br />
<br />
Reattached the microphones and speakers to their respective areas, making sure that both are properly oriented - the speaker "out" faces up, and the microphone cables as connected must face up (these are opposite directions.)<br />
<br />
''Step 14'': Reattach other ribbon cables.<br />
<br />
The LCD panel, keyboard and trackpad ribbon cables should be reattached. Make sure the flap is open, insert the ribbon into the slot (a portion of the cable will disappear), and push the flap down. The cable should not be easy to pull out.<br />
<br />
''Step 15'': Reattach the battery, and final re-tape.<br />
<br />
The battery should be installed with the 4 screws holding it in place, and the connector attached to the mainboard. Be sure to keep the two other cables remain unconnected. Ensure all wires and other tapes are held in place.<br />
<br />
''Step 16'': Reattach the back panel.<br />
<br />
Put the back panel back on, and reattach the 10 screws.<br />
<br />
''Step 17'': If you changed from ISO to ANSI or from ANSI to ISO, you'll need to update your firmware now. See the links in Step 0 above.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
The trackpad controller is connected to the keyboard controller. All trackpad events go through the keyboard controller and it's software, then to the keyboard controller's USB port. Note that the trackpad does have separate firmware, (which has to be written through the keyboard controller).<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
<b style="color: red">WARNING: DO NOT update the trackpad firmware before checking which keyboard IC your Pinebook Pro has.</b> Some Pinebook Pro were delivered with a '''SH61F83''' instead of a '''SH68F83'''. The SH61F83 can only be written 8 times, this will render the keyboard and trackpad unusable if this limit is reached when <code>step-1</code> is flashed. See [//old.reddit.com/r/PINE64official/comments/loq4db/very_disappointed/ Reddit SH61F83 thread].<br />
<br />
Please refer to original documentation for details.<br />
<br />
Your Pinebook Pro should be either fully charged or, preferably, running off of mains. This utility will be writing chips on the keyboard and trackpad, so a loss of power during any stage of the update can result in irrecoverable damage to your trackpad or keyboard.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop. Newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
There are two keyboard versions of the Pinebook Pro: ISO and ANSI. You need to know which model you have prior to running the updater. <br />
Firmware update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse (or access to the Pinebook Pro via SSH)<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<b>NOTE:</b> Running step 1 on the ANSI keyboard model will make the keyboard and trackpad inaccessible until step 2 is ran, so an external keyboard must be connected to complete the update on this model!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
When done, if some of the keys produce incorrect characters, please check your OS’s language settings. For ANSI users, the default OS shipped with English UK as the default language. You can change it to English US if desired.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver, use this command to make the change live:<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticeably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below:<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient TapButton1=1<br />
synclient TapButton2=3<br />
synclient TapButton3=2<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<code>FingerLow</code> has the same value as 'FingerHigh' in one config (30). It is believed to help reduce mouse movement as you lift your finger, but it's unknown whether synaptic works like this.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
<code>TabButton</code> allows to just tab the touchpad instead of physically pressing it down (to get this click noise).<br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
In total, there are four LEDs on the Pinebook Pro, three of which are placed in the top-left side of the keyboard, and one near the barrel port: <br />
<br />
# The red LED next to the barrel port indicates charging, in three ways. First, it will illuminate steadily when either the factory power supply or a USB Type-C charger is connected to the Pinebook Pro, and the battery is getting charged. Second, if the battery is at 100%, the LED will remain turned off regardless of the connected power input; however, this is [https://forum.pine64.org/showthread.php?tid=10899 rather rarely achieved]. Third, this LED will flash at 0.5&nbsp;Hz if there are any problems that prevent charging, such as the battery becoming too hot.<br />
# The power indicator LED, above the keyboard, supports three different colours: green, amber and red. It is also capable of flashing to indicate eMMC activity. In the default Debian with MATE build, green LED means power and red means suspend (amber is unused). <br />
# The green NumLock LED, above the keyboard.<br />
# The green CapsLock LED, above the keyboard.<br />
<br />
The NumLock and CapsLock LEDs serve their usual purposes on a keyboard, but they also have a secondary function. When the privacy switches get activated they blink to confirm that the switch has been activated.<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56&nbsp;cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60&nbsp;Hz refresh rate<br />
* IPS technology<br />
* 1000:1 contrast<br />
* 250&nbsp;nit brightness<br />
* 63% sRGB coverage<br />
* 6-bit color<br />
* 30-pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [https://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
UART output is enabled by flipping the UART switch to the ON position (item 9). To do so you need to remove the Pinebook Pro's bottom cover - please follow [https://wiki.pine64.org/index.php/Pinebook_Pro_Main_Page#Accessing_the_Internals_-_Disassembly_and_Reassembly proper disassembly and reassembly protocol]. The OFF position is towards the touchpad, the ON position is towards the display hinges.<br />
<br />
With the UART switch in the ON position, console is relayed via the audiojack and the laptop's sound is turned OFF. Please ensure that you are using a 3.3&nbsp;V interface (such as the CH340, FTDI-232R, or PL2303, which are sold in both 3.3&nbsp;V and 5&nbsp;V variants) to avoid damage to the CPU. Older version of the serial console cable sold by Pine64 uses wrong voltage level and should not be used; see [https://forum.pine64.org/showthread.php?tid=9367 this forum thread] for further information. Recent version of the same cable uses the right voltage level.<br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor, ensuring that the audio jack of the serial cable is be fully inserted into the Pinebook Pro audio port. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
Old versions of U-Boot do not use the UART for console output. <strike>The console function is activated by the Linux kernel. Thus, if you use a non-Pinebook Pro Linux distro and want the UART as a console, you have to manually enable it.</strike><br />
<br />
== Using the optional NVMe adapter ==<br />
The optional NVMe adapter allows the use of M.2 cards that support the NVMe standard, (but not SATA standard). The optional NVMe M.2 adapter supports '''M''' & '''M'''+'''B''' keyed devices, in both 2242 & 2280 physical sizes, the most common ones available. In addition, 2230 & 2260 are also supported, though NVMe devices that use those sizes are rare.<br />
<br />
Once you have fitted and tested your NVMe drive, please add a note to this page [[Pinebook_Pro_Hardware_Accessory_Compatibility]] to help build a list of tried and tested devices.<br />
<br />
Please see [[Pinebook Pro Troubleshooting Guide#NVMe SSD issues|a separate section]] that describes reported issues with the NVMe drives in PineBook Pro.<br />
<br />
=== Installing the adapter ===<br />
The V2.1-2019-0809 SSD adapter that shipped with the initial Pinebook Pro batches had significant issues. A repair kit will be shipped to address those issues.<br />
(If necessary, it can be modified to work. There is [https://forum.pine64.org/showthread.php?tid=8322&pid=52700#pid52700 an unofficial tutorial on the forums] describing these modifications.)<br />
<br />
The updated SSD adapter, labeled V2-2019-1107, takes into account the prior problems with trackpad interference. New orders as of Feb. 22nd, 2020 will be the updated adapter.<br />
<br />
This is the link to the PBPro accessories in the store: [[https://pine64.com/?v=0446c16e2e66]]<br />
<br />
Actual installation instructions are a work in progress. Unofficial instructions for installing V2-2019-1107 can be found [https://eli.gladman.cc/blog/2020/06/23/pine-book-pro-nvme.html here].<br />
<br />
=== Post NVMe install power limiting ===<br />
Some NVMe SSDs allow reducing the maximum amount of power. Doing so may reduce the speed, but it may be needed in the Pinebook Pro to both improve reliability at lower battery levels. And to reduce power used, to maintain battery life.<br />
Here are the commands to obtain and change the power settings. The package 'nvme-cli' is required to run these commands. The example shows how to find the available power states, and then sets it to the lowest, non-standby setting, (which is 3.8 watts for the device shown);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
Some NVMe SSDs don't appear to allow saving the setting with "-s" option. In those cases, leave off the "-s" and use a startup script to set the non-default power state at boot.<br><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<br/><br />
There is another power saving feature for NVMes, APST, (Autonomous Power State Transitions). This performs the power saving & transitions based on usage. To check if you have a NVMe SSD with this feature;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
As long as the kernel in use has both the PCIe and NVMe drivers, you should be able to use a NVMe drive as a data drive. It can automatically mount when booting from either the eMMC or an SD card. This applies to Linux, FreeBSD, and Chromium, using the normal partitioning and file system creation tools. Android requires testing.<br />
<br />
=== Using as OS root drive ===<br />
The SoC does not include the NVMe boot code, so the NVMe is not in the SoC's boot order. However, using the [https://github.com/mrfixit2001/updates_repo/blob/v1.1/pinebook/filesystem/mrfixit_update.sh U-Boot update script] from the mrfixit2001 Debian or [https://pastebin.com/raw/EeK074XB Arglebargle's modified script], and [https://github.com/pcm720/rockchip-u-boot/releases the modified u-boot images] provided by forum user pcm720, you can now add support to boot from an NVMe drive. Binary images are useable with SD, eMMC, and [[Pinebook_Pro_SPI|SPI flash]]. For OS images using the mainline kernel, there are a few variants of U-Boot available that also support NVMe as the OS drive. Though these may require writing the U-Boot to the SPI flash for proper use of the NVMe as the OS drive.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
It is also possible to initially boot off an eMMC or SD card, then transfer to a root file system on the NVMe. Currently, it is necessary to have the U-Boot code on an eMMC or SD card. (A forum member [https://forum.pine64.org/showthread.php?tid=8439 posted here] about using a modified version of U-Boot with NVMe drivers, that uses <code>/boot</code> and <code>/</code> off the NVMe drive. So this may change in the future.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
The mainboard features two (disconnected by default) bypass cables that are only to be used with the battery disconnected. The female (10) male (6) ends of the bypass cables can be connected to provide power to the mainboard if you need to run the laptop without a battery. Please refer to this [https://files.pine64.org/doc/PinebookPro/PinebookPro_Engineering_Notice.pdf engineering notice]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
<br />
See [[Pinebook_Pro_SPI]]<br />
<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
With Mesa 20.2 there is no longer much reason to use this over the standard mesa package, and applications may occasionally break with mesa-git.<br />
<br />
[https://docs.mesa3d.org/bugs.html Reporting bugs] to the Mesa project will help make sure any problems are quickly fixed.<br />
<br />
=== OpenGL 3.3 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 3.0. If you want to use OpenGL 3.3, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gl3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL 3.3 and applications that rely on it should function properly. Note that GL 3.3 support is incomplete and some rendering features do not work yet, notably geometry shaders.<br />
<br />
=== Install Anbox on Pinebook Pro Manjaro 20.10 ===<br />
[https://www.youtube.com/watch?v=EU8_Q11dATs Youtube video on installing Anbox on Pienbook Pro Manjaro Build 20.10 by LivingLinux]<br />
<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* Reboot (this is just to ensure all background processes belong to the user are not running... there are other ways to achieve this but this way is easy)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Change '''console=ttyS2,1500000''' to '''console=tty1'''<br> <br />
Remove the '''bootsplash.bootfile''' option and it's parameter.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br><br />
Leave everything else alone.<br><br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use and read.<br><br />
* Increase the font size<br />
* Use a font with more pronounced features<br />
* Increase the various window manager sizes (e.g. increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes. Higher contrast can help usability.<br />
* Change the window manager's decorations (e.g. use larger icons)<br />
* Use a workspace manager, with one application per workspace<br />
* When at home or office, use an external monitor<br />
* Change the X-Windows DPI<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this troubleshooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== gVim has performance issue ==<br />
It appears that using GTK3 can cause very slow scrolling, while Vim in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so is somewhat Linux distro-specific).<br />
<br />
Another solution may be to run gVim with <br />
<br />
GDK_RENDERING=image<br />
<br />
environment variable set. It seems that this improves the performance by reverting back to software-only rendering.<br />
<br />
== Kernel options ==<br />
Here are some Pinebook Pro & its RK3399 SoC Linux specific options. If kernel version, (or version range specific), it should list that information in the description.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
Note modules are not loaded until needed. Thus, we sometimes check the kernel configuration instead to see if a feature is configured first, then see if it's a module.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
Note that in the above example, the Rockchip video CODEC is not built as a module, but included into the kernel. Thus, it does not show up in the list modules check.<br><br />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
<br />
= Troubleshooting guide =<br />
<br />
Do not to panic if something goes wrong or in an unexpected way. Instead, stop and consider carefully how to undo something, or how to redo it. This particularly applies when flashing a new operating system, or flashing new firmware to the keyboard or touchpad. If everything fails, consider reporting the issue on the forums, with as many relevant details as available.<br />
<br />
Please, have a look at the [[Pinebook Pro Troubleshooting Guide]], which details a number of issues you may encounter.<br />
<br />
= Hardware/Accessory Compatibility =<br />
Please contribute to the [[Pinebook Pro Hardware Accessory Compatibility|hardware/accessory compatibility page]], which lists the status of hardware tested with the Pinebook Pro. Available hardware categories include the following:<br />
<br />
* [[Pinebook Pro Hardware Accessory Compatibility#NVMe SSD drives|NVMe SSD drives]]<br />
* [[Pinebook Pro Hardware Accessory Compatibility#USB hardware|USB hardware]]<br />
* [[Pinebook Pro Hardware Accessory Compatibility#USB C alternate mode DP|USB-C alternate mode DP]]<br />
* [[Pinebook Pro Hardware Accessory Compatibility#Other hardware|Other hardware]]<br />
<br />
= Technical Reference =<br />
== Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
There are a few '''mandatory''' precautions to be taken:<br />
<br />
* Do not open the laptop by lifting the lid while the Pinebook Pro bottom cover is removed - this can cause structural damage to the hinges and/or other plastic components of the chassis such as the IO port cut-outs.<br />
* When removing the back cover plate, *do not, under any circumstances, slide your fingertips between the metal shell and the plastic frame!* The back cover plate edges are sharp, and when combined with the pressure and movement generated from, specifically, attempting to slide the tips of your fingers along the bottom edge of the plate along the lid-hinge, they *will* slice open the tips of your fingers like a knife.<br />
* When removing the back cover plate, use care to avoid damaging the speakers. They are stuck to the back cover with double-sided tape, and the thin wires are very delicate.<br />
<br />
[[File:PinebookProScrewGuide.png|400px|thumb|right|PinebookPro external screws (this particular unit has suffered damage on screw (4)L)]]<br />
<br />
When disassembling the laptop make sure that it is powered off and folded closed. To remove the bottom cover of the Pinebook Pro, first remove the ten (10) Phillips head screws that hold the bottom section of the laptop in place. There are four (4) short screws along the front edge, and six (6) long screws along the 3 remaining sides. Remove the cover from the back where the hinges are situated by lifting it up and away from the rest of the chassis. The aluminum case is held on only by screws. There are no plastic snaps, and the shell should pull away without any effort. If you experience any resistance at all stop and ensure all ten (10) screws are accounted for.<br />
<br />
During reassembly, make sure that the back-screw standoffs are in place and seated correctly. Before replacing the aluminum back-plate, ensure that the speakers are properly seated by pressing gently on the hard plastic edge of the speaker module. Slide the bottom section into place so it meets the front lip of the keyboard section. Secure the front section (where the trackpad is located) in place using the short screws in the front left and right corners. Then proceed to pop in the bottom panel into place. Secure the bottom section (where hinges are located) by screwing in the left and right corners. Then screw in the remaining screws and run your finger though the rim on the chassis to make sure its fitted correctly. Note that the front uses the remaining 4 short screws.<br />
<br />
The screws are small and should only be finger tight. Too much force will strip the threads. If after installing screws the back cover plate has not seated properly on one side (which may be caused by the aforementioned misseating of the speakers), open the display and hold the base on either side of the keyboard and gently flex the base with both hands in opposing directions. Once the side pops further in, then recheck the screws on that side. If it does not pop back in, re-open the machine and check for misseated components.<br />
<br />
A basic 3D model to print replacement standoffs for the back cover screws is [https://www.thingiverse.com/thing:4226648 available on Thingiverse], until the official drawings or 3D models are made available.<br />
<br />
== Internal Layout ==<br />
<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
The Reset and Recovery buttons (28): the reset button performs an immediate reset of the laptop. The Recovery button is used to place the device in maskrom mode; this mode allows flashing eMMC using Rockchip tools (e.g. rkflashtools). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe x4 slot for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
<br />
=== Boot sequence details ===<br />
The RK3399's mask 32KB ROM boot code looks for the next stage of code at byte off-set 32768, (sector 64 if using 512 byte sectors). This is where U-Boot code would reside on any media that is bootable.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
=== Boot devices ===<br />
<br />
The Pinebook Pro is capable of booting from eMMC, USB 2.0, USB 3.0, or an SD card. It cannot boot from USB-C. The boot order of the hard-coded ROM of its RK3399 SoC is: SPI NOR, eMMC, SD, USB OTG. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older Debian + MATE build that improves compatibility with booting other OSs from an SD card. In order to update, fully charge the battery, establish an internet connection, click the update icon in the toolbar, and then reboot your Pinebook Pro. Please see [https://forum.pine64.org/showthread.php?tid=7830 this log] for details.)<br />
<br />
Please note that PCIe, the interface used for NVMe SSD on the Pinebook Pro, is not bootable on the RK3399 and therefore is not a part of the boot hierarchy. It is possible to run the desired OS from NVMe by pointing extlinux on the eMMC to rootfs on the SSD. This requires uboot, the Kernel image, DTB, and extlinux.conf<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
== Case Dimensions and Data ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
** Bootable<br />
* SPI flash:<br />
** [[Pinebook Pro SPI]]<br />
** 128Mbit / 16MByte<br />
** 1 bit interface<br />
** Bootable, (first boot device, ahead of eMMC & SD card)<br />
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** Note that high power USB devices may not work reliably on a PBP. Or they may draw enough power to drain the battery even when the PBP is plugged into A.C. One alternative is externally powered USB devices.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
=== Lid closed magnet ===<br />
There is a magnet to detect when the laptop lid is closed, so action can be taken like sleep. This meets up with the Hall sensor on the daughter / small board to detect lid closed.<br />
* The magnet is located on the LCD panel right side, around 1.5 inches up measure from bottom edge.<br />
<br />
=== Webcam ===<br />
* Internal USB attached Webcam<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in microphone<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.0, 5&nbsp;GT/s per lane<br />
* Four PCIe lanes, which can not be bifurcated, but can be used with one- or two-lane NVMe cards<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5&nbsp;W continuous, 8.25&nbsp;W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [https://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [https://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet v2.1]<br />
** [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.4%20Part1.pdf Rockchip RK3399 Technical Reference Manual v1.4, part 1]<br />
** [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part1.pdf Rockchip RK3399 Technical Reference Manual v1.3, part 1] and [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part2.pdf part 2]<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet v0.8]<br />
* LPDDR4 SDRAM (366-pin BGA):<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 64GB/128GB SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (updated)]<br />
* Wireless and Bluetooth information:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio codec:<br />
** [http://www.everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec Datasheet]<br />
* LCD panel:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* USB-related information:<br />
** Internal USB 2.0 hub: [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub Datasheet]<br />
** USB Type-C Controller: [https://www.onsemi.com/pub/Collateral/FUSB302-D.PDF ON Semiconductor FUSB302 Datasheet]<br />
* Touchpad information:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf PineBook Pro Touchpad Specification]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD camera sensor:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification (in Chinese)]<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Datasheet]<br />
* Battery-related information:<br />
** Battery charging IC: [https://www.ti.com/lit/ds/symlink/bq24171.pdf?ts=1607068456825&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FBQ24171 Texas Instruments BQ24171 Datasheet]<br />
** Battery monitoring IC: [https://cdn.datasheetspdf.com/pdf-down/C/W/2/CW2015-Cellwise.pdf Cellwise CW2015 Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification]<br />
* Power path device:<br />
** [https://wiki.pine64.org/images/9/99/Sis412dn.pdf N-MOS / MOSFET]<br />
* NVMe adapter:<br />
** [https://wiki.pine64.org/images/d/d0/Hirose-FH26W-35S-0.3SHW%2860%29-datasheet.pdf FH26-35S-0.3SHW flat flex connector (compatible, not OEM)]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (no login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [https://opensource.rock-chips.com/ Rockchip Open Source Wiki]<br />
* [[Pinebook Pro/Freepascal and Lazarus IDE on Manjaro|Freepascal and Lazarus IDE on Pinebook Pro]]<br />
<br />
[[Category:PineBook Pro]]<br />
[[Category:Rockchip RK3399]]</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=7201Pinebook Pro2020-09-21T01:45:36Z<p>Mrgtwentythree: fix bps</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
It is built to be a compelling alternative to mid-ranged Chromebooks that people convert into Linux laptops. It features an IPS 1080p 14″ LCD panel, a premium magnesium alloy shell, high capacity eMMC storage, a 10,000 mAh capacity battery, and the modularity that only an open source project can deliver. <br />
<br />
Key features include: the RK3399 SOC; USB-C for data, video-out and power-in (3A 5V); privacy switches for the microphone, BT/WiFi module, and camera; and expandable storage via NVMe (PCIe 4x) with an optional adapter. <br />
<br />
The Pinebook Pro is equipped with 4GB LPDDR4 system memory, high capacity eMMC flash storage, and 128Mb SPI boot Flash. The I/O includes: 1x micro SD card reader (bootable), 1x USB 2.0, 1x USB 3.0, 1x USB type C Host with DP 1.2 and power-in, PCIe 4x for an NVMe SSD drive (requires an optional adapter), and UART (via the headphone jack by setting an internal switch). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
Many different Operating Systems (OS) are freely available from the open source community and partner projects. These include various flavors of Linux (Ubuntu, Debian, Manjaro, etc.) and *BSD.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up (use a single word, all lower case, no punctuation; e.g. "pbpro").<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
Under [[Pinebook Pro Software Release|'Pinebook Pro Software Release/OS Image Download Section']] you will find a complete list of currently supported Operating System images that work with the Pinebook as well as other related software. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{fullurl:PinebookPro_Software_Release#elementary_OS}} [[File:elementaryLogo.png|125px]]] [[PinebookPro_Software_Release#elementary OS|'''elementary OS 6 (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} [[File:Manjaro.png|125px]]] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} [[File:Lxde.png|125px]]] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} [[File:Mate.png|125px]]] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Fedora}} [[File:Fedora1.png|125px]]] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#OpenSUSE}} [[File:Opensuse1.png|125px]]] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} [[File:Q4os.png|125px]]] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} [[File:Armbian.png|125px]]] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} [[File:Netbsd.png|125px]]] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chromium}} [[File:Chromium.jpg|125px]]] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Arch_Linux}} [[File:Archlinux-logo.png|125px]]] [[PinebookPro_Software_Release#Arch_Linux|'''Arch Linux ARM installer (microSD and USB boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_microSD|'''Android 7.1 (microSD Boot)''']] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [{{fullurl:PinebookPro_Software_Release#Android_7.1_eMMC}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} [[File:Gentoo.png|125px]]]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''Some of the provided OS images are still in <span style="color:#FF0000">beta or nightly build</span> and only fit for testing purposes. These images ought to be avoided for normal usage - use them at <span style="color:#FF0000">your own risk</span>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo] (Includes Ubuntu 20.04 Focal Fossa and Debian Buster images. Click 'Assets' at the end of the releases text to view images) <br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
The Pinebook Pro is available in two keyboard configurations: ISO and ANSI. Both the keyboard and trackpad in the Pinebook Pro use the USB 2.0 protocol and show up as such in xinput. The keyboard features function (Fn) keys in the F-key row, which include display brightness controls, sound volume, trackpad lock, and other functionality. There is also a custom PINE64 logo key that functions as Menu/Super key. It has also a secondary functionality for setting the privacy switches. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
The [[Wikipedia:British_and_American_keyboards#Other_keyboard_layouts|UK ISO Layout]] does not have dedicated keys for characters like the German umlauts (Ä,Ö,Ü, etc). Certain characters can still be generated by means of either key combinations or key sequences. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect as cutting off the power to each peripheral with a physical switch. This implementation is very secure, since the firmware that determines whether a peripheral gets power is not part of the Pinebook Pro’s operating system. So the power state value for each peripheral cannot be overridden or accessed from the operating system. The power state setting for each peripheral is stored across reboots inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
The trackpad controller is connected to the keyboard controller. All trackpad events go through the keyboard controller and it's software, then to the keyboard controller's USB port. Note that the trackpad does have separate firmware, (which has to be written through the keyboard controller).<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
Your Pinebook Pro should be either fully charged or, preferably, running off of mains. This utility will be writing chips on the keyboard and trackpad, so a loss of power during any stage of the update can result in irrecoverable damage to your trackpad or keyboard.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop. Newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
There are two keyboard versions of the Pinebook Pro: ISO and ANSI. You need to know which model you have prior to running the updater. <br />
Firmware update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse (or access to the Pinebook Pro via SSH)<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<b>NOTE:</b> Running step 1 on the ANSI keyboard model will make the keyboard and trackpad inaccessible until step 2 is ran, so an external keyboard must be connected to complete the update on this model!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
When done, if some of the keys produce incorrect characters, please check your OS’s language settings. For ANSI users, the default OS shipped with English UK as the default language. You can change it to English US if desired.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver, use this command to make the change live:<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticeably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below:<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<code>FingerLow</code> has the same value as 'FingerHigh' in one config (30). It is believed to help reduce mouse movement as you lift your finger, but it's unknown whether synaptic works like this.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
In total there are four LEDs on the Pinebook Pro, three of which are placed in the top left side of the keyboard, and one near the barrel-port: <br />
<br />
:1. The red LED next to the barrel-port indicates charging. It will illuminate when mains power is supplied to the Pinebook Pro from either the standard power supply unit or a USB-C smartphone charger.<br />
<br />
:2. The power indicator LED on the Pinebook Pro supports three different colours: green, amber and red. It is also capable of flashing/blinking to indicate activity. In the default Debian with MATE build, green LED means power and red means suspend (amber is unused). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(The Num and Caps lock LEDs have a secondary function. When the privacy switches get activated they blink to confirm that switch has been activated.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
UART output is enabled by flipping the UART switch to the ON position (item 9). To do so you need to remove the Pinebook Pro's bottom cover - please follow [https://wiki.pine64.org/index.php/Pinebook_Pro_Main_Page#Accessing_the_Internals_-_Disassembly_and_Reassembly proper disassembly and reassembly protocol]. The OFF position is towards the touchpad, the ON position is towards the display hinges.<br />
<br />
With the UART switch in the ON position, console is relayed via the audiojack and the laptop's sound is turned OFF. Please ensure that you are using a 3.3v interface (such as the CH340, FTDI-232R, or PL2303, which are sold in both 3.3v and 5v variants) to avoid damage to the CPU. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
Old versions of U-Boot do not use the UART for console output. <strike>The console function is activated by the Linux kernel. Thus, if you use a non-Pinebook Pro Linux distro and want the UART as a console, you have to manually enable it.</strike><br />
<br />
== Using the optional NVMe adapter ==<br />
The optional NVMe adapter allows the use of M.2 cards that support the NVMe standard, (but not SATA standard). The optional NVMe M.2 adapter supports '''M''' & '''M'''+'''B''' keyed devices, in both 2242 & 2280 physical sizes, the most common ones available. In addition, 2230 & 2260 are also supported, though NVMe devices that use those sizes are rare.<br />
<br />
Once you have fitted and tested your NVMe drive, please add a note to this page [[Pinebook_Pro_Hardware_Accessory_Compatibility]] to help build a list of tried and tested devices.<br />
<br />
=== Installing the adapter ===<br />
The V2.1-2019-0809 SSD adapter that shipped with the initial Pinebook Pro batches had significant issues. A repair kit will be shipped to address those issues.<br />
(If necessary, it can be modified to work. There is [https://forum.pine64.org/showthread.php?tid=8322&pid=52700#pid52700 an unofficial tutorial on the forums] describing these modifications.)<br />
<br />
The updated SSD adapter, labeled V2-2019-1107, takes into account the prior problems with trackpad interference. New orders as of Feb. 22nd, 2020 will be the updated adapter.<br />
<br />
Actual installation instructions are a work in progress. Unofficial instructions for installing V2-2019-1107 can be found [http://eli.gladman.cc/blog/2020/06/23/pine-book-pro-nvme.html here].<br />
<br />
=== Post NVMe install power limiting ===<br />
Some NVMe SSDs allow reducing the maximum amount of power. Doing so may reduce the speed, but it may be needed in the Pinebook Pro to both improve reliability at lower battery levels. And to reduce power used, to maintain battery life.<br />
Here are the commands to obtain and change the power settings. The package 'nvme-cli' is required to run these commands. The example shows how to find the available power states, and then sets it to the lowest, non-standby setting, (which is 3.8 watts for the device shown);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
Some NVMe SSDs don't appear to allow saving the setting with "-s" option. In those cases, leave off the "-s" and use a startup script to set the non-default power state at boot.<br><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<br/><br />
There is another power saving feature for NVMes, APST, (Autonomous Power State Transitions). This performs the power saving & transitions based on usage. To check if you have a NVMe SSD with this feature;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
As long as the kernel in use has both the PCIe and NVMe drivers, you should be able to use a NVMe drive as a data drive. It can automatically mount when booting from either the eMMC or an SD card. This applies to Linux, FreeBSD, and Chromium, using the normal partitioning and file system creation tools. Android requires testing.<br />
<br />
=== Using as OS root drive ===<br />
The SoC does not include the NVMe boot code, so the NVMe is not in the SoC's boot order. However, using the [https://github.com/mrfixit2001/updates_repo/blob/v1.1/pinebook/filesystem/mrfixit_update.sh U-Boot update script] from the mrfixit2001 Debian or [https://pastebin.com/raw/EeK074XB Arglebargle's modified script], and [https://github.com/pcm720/rockchip-u-boot/releases the modified u-boot images] provided by forum user pcm720, you can now add support to boot from an NVMe drive. Binary images are useable with SD, eMMC, and [[Pinebook_Pro_SPI|SPI flash]]. For OS images using the mainline kernel, there are a few variants of U-Boot available that also support NVMe as the OS drive. Though these may require writing the U-Boot to the SPI flash for proper use of the NVMe as the OS drive.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
It is also possible to initially boot off an eMMC or SD card, then transfer to a root file system on the NVMe. Currently, it is necessary to have the U-Boot code on an eMMC or SD card. (A forum member [https://forum.pine64.org/showthread.php?tid=8439 posted here] about using a modified version of U-Boot with NVMe drivers, that uses <code>/boot</code> and <code>/</code> off the NVMe drive. So this may change in the future.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
The mainboard features two (disconnected by default) bypass cables that are only to be used with the battery disconnected. The female (10) male (6) ends of the bypass cables can be connected to provide power to the mainboard if you need to run the laptop without a battery. Please refer to this [http://files.pine64.org/doc/PinebookPro/PinebookPro_Engineering_Notice.pdf engineering notice]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
<br />
See [[Pinebook_Pro_SPI]]<br />
<br />
<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
Note that this might also solve graphical glitches that you were seeing previously.<br />
<br />
=== OpenGL ES 3.0 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 2.0. If you want to use OpenGL ES 3.0, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gles3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL ES 3.0 and applications that rely on it should function properly. Note that GLES3 support is currently incomplete and some advanced rendering features may still not work properly.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* Reboot (this is just to ensure all background processes belong to the user are not running... there are other ways to achieve this but this way is easy)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Change '''console=ttyS2,1500000''' to '''console=tty1'''<br> <br />
Remove the '''bootsplash.bootfile''' option and it's parameter.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br><br />
Leave everything else alone.<br><br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use and read.<br><br />
* Increase the font size<br />
* Use a font with more pronounced features<br />
* Increase the various window manager sizes (e.g. increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes. Higher contrast can help usability.<br />
* Change the window manager's decorations (e.g. use larger icons)<br />
* Use a workspace manager, with one application per workspace<br />
* When at home or office, use an external monitor<br />
* Change the X-Windows DPI<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this troubleshooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== gVim has performance issue ==<br />
It appears that using GTK3 can cause very slow scrolling, while Vim in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so is somewhat Linux distro-specific).<br />
<br />
Another solution may be to run gVim with <br />
<br />
GDK_RENDERING=image<br />
<br />
environment variable set. It seems that this improves the performance by reverting back to software-only rendering.<br />
<br />
== Kernel options ==<br />
Here are some Pinebook Pro & its RK3399 SoC Linux specific options. If kernel version, (or version range specific), it should list that information in the description.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
Note modules are not loaded until needed. Thus, we sometimes check the kernel configuration instead to see if a feature is configured first, then see if it's a module.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
Note that in the above example, the Rockchip video CODEC is not built as a module, but included into the kernel. Thus, it does not show up in the list modules check.<br><br />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
<br />
The important thing is not to panic and if something goes wrong, to stop and consider carefully how to undo something, or, to redo it. This particularly applies when flashing a new operating system or new firmware to the touchpad.<br />
<br />
[[Pinebook_Pro_Troubleshooting_Guide]]<br />
<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''WARNING:''' Do not open the laptop by lifting the lid while the Pinebook Pro bottom cover is removed - this can cause structural damage to the hinges and/or other plastic components of the chassis such as the IO port cut-outs.<br />
<br />
'''WARNING:''' When removing the back cover plate, use care if sliding fingertips between back cover plate and palm rest assembly. The back cover plate edges are sharp.<br />
<br />
'''WARNING:''' When removing the back cover plate, use care to avoid damaging the speakers. They are stuck to the back cover with double-sided tape, and the thin wires are very delicate.<br />
<br />
When disassembling the laptop make sure that it is powered off and folded closed. To remove the bottom cover of the Pinebook Pro, first remove the ten (10) Phillips head screws that hold the bottom section of the laptop in place. Remove the cover from the back where the hinges are situated by lifting it up and away from the rest of the chassis.<br />
<br />
During reassembly, make sure that the back-screw standoffs are in place and seated correctly. To reassemble the Pinebook Pro, slide the bottom section into place so it meets the front lip of the keyboard section. Secure the front section (where the trackpad is located) in place using the short screws in the front left and right corners. Then proceed to pop in the bottom panel into place. Secure the bottom section (where hinges are located) by screwing in the left and right corners. Then screw in the remaining screws and run your finger though the rim on the chassis to make sure its fitted correctly. Note that the front uses the remaining 2 short screws.<br />
<br />
NOTE: The screws are small and should only be finger tight. Too much force will strip the threads. If after installing screws the back cover plate has not seated properly on one side, open the display and hold the base on either side of the keyboard and gently flex the base with both hands in opposing directions. Once the side pops further in, then recheck the screws on that side. If it does not pop back in, just let it be.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
The Reset and Recovery buttons (28): the reset button performs an immediate reset of the laptop. The Recovery button is used to place the device in maskrom mode; this mode allows flashing eMMC using Rockchip tools (e.g. rkflashtools). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
<br />
=== Boot sequence details ===<br />
The RK3399's mask 32KB ROM boot code looks for the next stage of code at byte off-set 32768, (sector 64 if using 512 byte sectors). This is where U-Boot code would reside on any media that is bootable.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
=== Boot devices ===<br />
<br />
The Pinebook Pro is capable of booting from eMMC, USB 2.0, USB 3.0, or an SD card. It cannot boot from USB-C. The boot order of the hard-coded ROM of its RK3399 SoC is: SPI NOR, eMMC, SD, USB OTG. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older Debian + MATE build that improves compatibility with booting other OSs from an SD card. In order to update, fully charge the battery, establish an internet connection, click the update icon in the toolbar, and then reboot your Pinebook Pro. Please see [https://forum.pine64.org/showthread.php?tid=7830 this log] for details.)<br />
<br />
Please note that PCIe, the interface used for NVMe SSD on the Pinebook Pro, is not bootable on the RK3399 and therefore is not a part of the boot hierarchy. It is possible to run the desired OS from NVMe by pointing extlinux on the eMMC to rootfs on the SSD. This requires uboot, the Kernel image, DTB, and extlinux.conf<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
** Bootable<br />
* SPI flash:<br />
** [[Pinebook Pro SPI]]<br />
** 128Mbit / 16MByte<br />
** 1 bit interface<br />
** Bootable, (first boot device, ahead of eMMC & SD card)<br />
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** Note that high power USB devices may not work reliably on a PBP. Or they may draw enough power to drain the battery even when the PBP is plugged into A.C. One alternative is externally powered USB devices.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
=== Lid closed magnet ===<br />
There is a magnet to detect when the laptop lid is closed, so action can be taken like sleep. This meets up with the Hall sensor on the daughter / small board to detect lid closed.<br />
* The magnet is located on the LCD panel right side, around 1.5 inches up measure from bottom edge.<br />
<br />
=== Webcam ===<br />
* Internal USB attached Webcam<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in microphone<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* Power path device:<br />
** [https://wiki.pine64.org/images/9/99/Sis412dn.pdf N-MOS / MOSFET]<br />
* NVMe adapter:<br />
** [https://wiki.pine64.org/images/d/d0/Hirose-FH26W-35S-0.3SHW%2860%29-datasheet.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=Pinebook_Pro_Hardware_Accessory_Compatibility&diff=5972Pinebook Pro Hardware Accessory Compatibility2020-06-24T01:55:39Z<p>Mrgtwentythree: add intel 760p 256GB info.</p>
<hr />
<div>= Pinebook Pro accessories - by type =<br />
<br />
This page was started in the early days when not all accessories/peripherals were working.<br />
<br />
== NVMe SSD drives ==<br />
Note that only PCIe type M.2 drives will work. Any SATA or USB type M.2 card will NOT work.<br />
{| class="wikitable sortable"<br />
!Type || Make/Model || Size || Hardware IDs || Result || Notes || Power options<br/>Active only || Save<br/>power<br/>setting?<br />
|-<br />
| 2242 || Toshiba OCZ RC 100 || 240 GB || RC100-M22242-240G || good || || ||<br />
|-<br />
| 2242 || Lexar NM520 || 256 GB || LNM520-256RBNA || good ||For some data on power use and performance, see [https://forum.pine64.org/showthread.php?tid=9029 here.] || PS 0: 3.05W<br/>PS 1: 2.44W<br/>PS 2: 2.02W || No. See [https://forum.pine64.org/showthread.php?tid=8737&pid=56481#pid56481 workaround].<br />
|-<br />
| 2280 || XPS SX8200 || 512 GB || ASX8200PNP-512GT-C || good || Performed [https://forum.pine64.org/showthread.php?tid=8322 these] steps for physical installation. Currently rooting from drive. || ||<br />
|-<br />
| 2280 || Intel 660p M.2 || 512 GB || SSDPEKNW512G8X1 || good || PS 1 (2.70W) will work without issues, even under heavy load. Recommended over PS 2, as PS 2 will incur an additional 80% performance penalty. APSTE shows enabled but drive does not support it. || PS 0: 3.50W<br/>PS 1: 2.70W<br/>PS 2: 2.00W || No <br />
|-<br />
| 2280 || Intel 660p M.2 || 1 TB || SSDPEKNW010T8X1 || good || || PS 0: 4.00W<br/>PS 1: 3.00W<br/>PS 2: 2.20W<br/>APSTE Disabled by default || No<br />
|-<br />
| 2280 || Intel 660p M.2 || 2 TB || SSDPEKNW020T8 || good || [https://forum.pine64.org/showthread.php?tid=7524&pid=49300#pid49300 Performance tests results] || ||<br />
|-<br />
| 2280 || Intel 760p M.2 || 128 GB || SSDPEKKW128G8 || good || Firmware Revision 004C || PS 0: 9.00W<br/>PS 1: 4.60W<br/>PS 2: 3.80W<br/>PS 3: 0.045W<br/>PS 4: 0.004W<br/>APSTE: disabled by default with 4.4 kernel (mrfixit Debian), enabled by default with 5.6 kernel (Manjaro KDE) || Yes<br />
|-<br />
| 2280 || Intel 760p M.2 || 256 GB || SSDPEKKW256G8 || good || Firmware Revision 004C || PS 0: 9.00W<br/>PS 1: 4.60W<br/>PS 2: 3.80W<br/>PS 3: 0.045W<br/>PS 4: 0.004W<br/>Need to use lower power. || <br />
|-<br />
| 2280 || Samsung 970 EVO Plus || 250 GB || MZ-V7S250BW || fail || Tested on Manjaro-ARM as root drive. Limited to PS 2 and Volatile Write Cache off gives the most stable results, but it will still hang on a hdparm test. || ||<br />
|-<br />
| 2280 || Samsung 970 EVO Plus || 500 GB || MZ-V7S500 || fail || Too power hungry? || PS 0: 6.2W<br/>PS 1: 4.3W<br/>PS 2: 2.1W ||<br />
|-<br />
| 2280 || Samsung 970 EVO || 1 TB || MZ-V7E1T0BW || fail || Too power hungry? || ||<br />
|-<br />
| 2280 || Corsair MP300 || 120 GB || CSSD-F120GBMP300 || good || || PS 0: 3.00W<br/>PS 1: 2.00W<br/>PS 2: 2.00W<br/>PS 3: 0.1W<br/>PS 4: 0.005W<br/>APSTE Disabled by default ||<br />
|-<br />
| 2280 || Silicon Power P34A60 || 1TB || SP001TBP34A60M28 || Usable || Power eager, but doesn't seem to use all 9W all the time, only under heavy I/O || PS 0: 9W || N/A<br />
|-<br />
| 2280 || Silicon Power P34A60 || 256 GB || SPCC M.2 PCIe SSD || detected || ASIN B07ZH6QR8Q "Silicon Power PCIe M.2 NVMe SSD 256GB Gen3x4" / PCIe A60 || PS 0: 6.77W<br/> PS 1: 5.71W<br/> PS 2: 5.19W<br/>APSTE Enabled by default || No<br />
|-<br />
| 2280 || Silicon Power P34A60 || 256 GB || ??? || fail || Isn't detected || ||<br />
|-<br />
| 2280 || Sabrent Rocket || 256 GB || SB-ROCKET-256 || good || || || No<br />
|-<br />
| 2242 || Sabrent Rocket Nano || 512 GB || SB-1342-512 || good* || No touchpad issues, didn't trim NVME adapter board.<br/>(*Might be too power hungry. More testing needed.) || ||<br />
|-<br />
| 2280 || MyDigitalSSD SBXe || 960 GB || || good || || APST enabled<br/>Power states N/A || N/A <br />
|-<br />
| 2280 || HP SSD EX900 || 250GB || || good || No low-power modes available || || <br />
|-<br />
| 2280 || WD BLUE SN550 || 1TB || WDC WDS100T2B0C-00PXH0 || WARNING <br />good || WARNING mine was SATA and does NOT work!<br /> Booted successfully from NVMe (Bionic MATE) || PS 0: 3.50W<br/>PS 1: 2.70W<br/>PS 2: 1.90W<br/>APSTE Disabled by default || N/A <br />
|-<br />
| 2280 || WD Blue SN500 || 500GB || WDS500G1B0C || fail || Works OK on power state 2 (2.5W), but hangs the system whenever there is intense IO (peak draw) on the drive || ||<br />
|-<br />
| 2242 || WD PC SN520 || 256GB || - || fail || Power LED Flashes. Nothing else happens. || ||<br />
|-<br />
|2280 || WD BLACK SN750 || 250GB || WDS250G3X0C-00SJG0 || good || No touchpad issues, didn't trim NVME adapter board. || APSTE disabled by default<br/> PS 0: 5.00W<br/>PS 1: 3.50W<br/>PS 2: 3.00W||<br />
|-<br />
| 2242 || KingSpec NE-512 || 512 GB || NE512 || good || || APST enabled<br/>Power states N/A || N/A <br />
|-<br />
| 2230 || Kioxia BG4 256GBTB|| 256 GB || KBG40ZNS256G || good || || APST enabled by default<br/>Power states<br> PS 0: 3.60W<br/>PS 1: 2.60W<br/>PS 2: 2.20W<br/>PS 3: 0.005W<br/>PS 4: 0.005W ||<br />
|-<br />
| 2280 || Patriot P300 || 256 GB || P300P256GM28US || good || Booted successfully with / on NVMe and /boot on eMMC (Armbian Buster) || APSTE disabled by default<br/> PS 0: 4.50W<br/> PS 1: 2.70W<br/> PS 2: 2.16W<br/>PS 3: 0.07W<br/>PS 4: 0.002W||<br />
|-<br />
| 2280 || Team Group MP33 || 128 GB || TM8FP6128G0C101 || good || || ||<br />
|}<br />
<br />
== USB hardware ==<br />
{| class="wikitable sortable"<br />
!Type || Make/Model || Hardware IDs || Result || Notes<br />
|-<br />
|USB-2 SDHC reader || Sandisk MobileMate+ || 0781:b2b3 || good ||<br />
|-<br />
|USB-3 SDHC/CF reader || Transcend TS-RDF8K || 8564:4000 || good ||<br />
|-<br />
|USB-C Hub || Totu 8-in-1 || 058f:8468, 2109:0817 USB3, 1a40:0801, 2109:2817 USB2, bda:8153 RTL8153 Gigabit Ethernet || Network, USB, Card Reader, Power Good, HDMI Not Working || Amazon Smile [https://smile.amazon.com/gp/product/B07FX2LW35/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1]<br />
|-<br />
|USB-C Hub || Delock 87721 || || Network Works, USB Works, Card Reader not tested, Power Good, HDMI Works but does not show as an extra output in X. It just mirrors the default display || Delock 87721 [https://www.delock.de/produkte/G_87721/merkmale.html?setLanguage=en]<br />
|-<br />
|USB-3 combo hub (network, card slots, usb ports) || generic || 05e3:0610 hub, 0bda:8153 gigE, 05e3:0743 card reader || Network good, usb ports good, card reader good ||<br />
|-<br />
|USB-C combo hub (network, card slots, usb ports) || generic || 05e3:0612 hub, 0bda:8153 realtek gigE || Network good, usb ports fail, card reader fail ||<br />
|-<br />
|5-1 USB-C hub || [https://www.aliexpress.com/item/32954358411.html from aliexpress] || 05e3:0626 hub || HDMI, Network, USB-3, USB-C PD [http://www.sympato.ch/~dryak/files/usbc-dock.jpg good] || Might need changing orientation or USB-C cable <br />
|-<br />
|Yubikey original || Yubico || 1050:0010 || good ||<br />
|- <br />
|4 Port USB 3 NIC || Delock 62966 || || good || 4 individually controllable Gigabit Ethernet Ports. Consider using it with own power supply<br />
|-<br />
|USB-2 Fast Ethernet adapter || Realtek RTL8152 || 0bda:8152 || good || <br />
|-<br />
|USB-2 Ethernet adapter || ASIX AX77882 || 0b95:7720 || good || <br />
|-<br />
|USB Wifi Dongle || TP-Link TL-WN725N || 0bda:8179 || good || RTL8188EUS, Driver=rtl8188eu from MrFixit stock Debian, works better than internal Broadcom, but signal still not great, https://www.amazon.com/gp/product/B008IFXQFU/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1<br />
|-<br />
|USB Wifi Dongle || Shenzhen Dudes Tech #8541553244 || 0bda:c811 || mixed || plug/play on stock Armbian Buster with driver rtl8821cu; could not get operating driver built on MrFixit Debian or Manjaro KDE Plasma. Works 2x+ better than internal Broadcom on Armbian. https://www.amazon.com/gp/product/B07F595V22/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1<br />
|-<br />
|USB 3 to Gigabit Ethernet Adapter || Pluggable USB 3.0 to Ethernet Gigabit (ASIX AX88179 chipset) || 0b95:1790 || good ||<br />
|-<br />
|USB-C combo hub || [https://www.amazon.com/gp/product/B07XKRGQQ2/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1 from Amazon] || 0c76:161f 0c45:6321 2109:0813 1a40:0101 || good || Everything works: AltMode DP, Ethernet, SD card, USB-A and C, and charging using the stock Debian, and Ubuntu.<br />
|-<br />
|USB Drawing tablet || XP Pen G430s || 28bd:0913 || good || Hardware works, with qemu usermode and some hacks it should be possible to use the official configuration software (runs but does not work on my setup for unrelated reasons) but it may also be able to be configured using more standard methods<br />
|-<br />
|USB-C dock || i-Tec USB-C Metal Nano Dock 4K HDMI w/ LAN || 0bda:0411 hub, 0bda:8153 ethernet || good || plug & play with Manjaro, HDMI tested w/ fullHD only, works. sound output works, USB hub works. HDMI output may not be recognized by Plasma if dock is connected with HDMI port disconnected. Unable to test USB-C PD as I don't own suitable power source. NIC recognized by kernel, but untested if link actually works.<br />
|-<br />
|USB-C dock || Planet Computers Gemini USB-C hub || 0bda:0411 hub, 0bda:8153 ethernet || good || USB works, NIC recognized by kernel, but untested if link actually works. Interestingly, dmesg shows unconnected alternate mode DP, but no connector is present. It seems as if PlanetCom actually made custom version of above i-Tec device.<br />
|}<br />
<br />
== USB C alternate mode DP ==<br />
Note that only USB C alternate mode Display Port will pass video. Any HDMI, DVI or VGA port must be converted internally by the device from Display Port - or the device won't work for video.<br />
{| class="wikitable sortable"<br />
!Type || Make/Model || Hardware IDs || Result || Notes<br />
|-<br />
|USB-C to HDMI adapter 201018 || Cable Matters || || good || Tested up to 1080p30, audio works<br />
|-<br />
|USB-C to HDMI adapter || Choetech HUB-H06 || || good || Advertises support for 4K@60Hz, tested up to 1080p@60Hz, worked in both Debian and Manjaro 2020-04-04<br />
|-<br />
|USB-C to HDMI adapter || generic || || good || Tested up to 4k60<br />
|-<br />
|USB-C to DP Adapter || OrxnQ || 04b4:5210 || good || Advertises support for 4K@60Hz, tested up to 1080p. Only FullHD resolutions available on Debian.<br />
|-<br />
|USB-C HDMI adapter (DP-alt mode) || QGeeM || || good || Manjaro 2020-01-25<br />
|-<br />
|USB-C combo hub (HDMI, network, card slots, USB ports) || generic || || fail ||<br />
|-<br />
|USB-C combo hub (HDMI, VGA, Ethernet, card slots, USB 2 & 3 || Powlaken || 05e3:0610 0bda:8153 || USB, Power, Ethernet and SD good, HDMI and VGA fail ||<br />
|-<br />
|USB-C Dock (HDMI, VGA, Ethernet, microSD/SD card slots, 2 USB 3 Ports, 1 USB-C Port, USB-Power Passthru || Digitus DA-70865 || || USB, Ethernet and MicroSD/SD good, video crashes System (fail). || Tested on Manjaro w/ Kernel 5.5. You have to turn the USB-C connector upside down for it to work. Video seems to be a driver issue.<br />
|-<br />
|USB-C Dock (HDMI, VGA, Ethernet, microSD/SD card slots, 2 USB 3 Ports, 1 USB-C Port, USB-Power pass-through) || generic || || Ethernet and MicroSD/SD good, USB fail, video up to 1080p. || https://forum.pine64.org/showthread.php?tid=8728<br />
|- <br />
|USB-C Dock (DP, HDMI, 1Gbps Ethernet, SD card slot, 2 USB 3 Ports, USB-C power in port || goFanco || || DP, Ethernet & USB good, (HDMI & SD card untested). Video tested good to 1080p || Tested on default Debian<br />
|-<br />
|USB-C Dock (HDMI, USB 3.0 x 2, USB-C PD Pass Thru Power Port Up to 100W, SD/TF Card Reader || Hiearcool 7-in-1 || || HDMI, USB, Power Port good, SD/TF Reader fail || Default Debian <br />
|-<br />
|USB-C 3.0 Multi-Port Hub (HDMI, USB 3.0 x 1, USB-C charge only) || Linden LITCAD17 || || HDMI and USB good, Power Port fail || Default Debian & ayufan Ubuntu<br />
|-<br />
|USB-C to DP adapter || Nekteck || 04b4:5210 || good || Shows up as "Cypress Semiconductor Corp. Billboard Device" in lsusb and dmesg output. Works in latest Manjaro (as of January 26, 2020) with no issues. Only FullHD resolutions available on Debian.<br />
|-<br />
|USB-C to HDMI adapter || MHL TH002 || || good || Tested at 1080p@60<br />
|-<br />
|USB-C combo hub (USB-C power, HDMI, 2xUSB, 1xUSB-C(no power)) || Baseus || || good ||<br />
|-<br />
|USB-C Travel Dock with DP ALT-MODE || Targus DOCK411-A || 0835:2a01 (BILLBOARD DEVICE) 0bda:8153 (RTL8153 GbE Adapter) || GbE: works, HDMI: works, USB3.0 port: works, VGA: unknown || HDMI@1080p@60Hz: works OK, HDMI@4K@30Hz: works but buggy. GbE is only picked up when the USB C is plugged in with one certain side facing upwards. It is not detected the other way around. (Sounds weird, but reproduced it multiple times.) <br />
|-<br />
|USB-C to DP adapter || MediaGearPro AC0011 || 2109:0100 (USB 2.0 BILLBOARD) || DP: works || Only 1080p@60Hz is available, 4K resolutions not possible in contrast to what the manufacturer claims. <br />
|-<br />
|USB-C to DP cable || Generic on ebay || || good but with issues || Had some wonky framerates when tested on a 144hz monitor, 60hz mode was actually sent as ~48hz, 120hz mode was actually sent at ~112hz and 144hz mode was actually sent at ~120hz<br />
|-<br />
|USB-C Dock 6-in-1 HDMI || Ugreen 50771 || || HDMI: works, Ethernet: works, 3x USB: works, USB-PD: works || Tested on Manjaro 2020/03/18 Works USB-C PD Chargers provided they can do 5V3A, works with 5V3A USB-C Raspberry Pi 4 power supply (Doesn't work with 5V2A USB-C). No HDMI Audio.<br />
|-<br />
|USB-C to DP cable || [https://www.amazon.es/gp/product/B01N5RFAI4/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1 CHOETECH V-XCP-0012BK] || || good <br />
|-<br />
| [https://www.apple.com/ca/shop/product/MQ4H2AM/A/thunderbolt-3-usb%E2%80%91c-cable-08-m Thunderbolt 3 (USB‑C) Cable (0.8 m)] || Apple || || Display Port Alternate Mode: Fails, USB-PD: works || Tested on Manjaro 2020/05/29 - Charges but no video<br />
|-<br />
|USB-C to HDMI cable || Planet Computers USB-C to HDMI cable || || fail || does not work regardless of orientation in USB slot<br />
|}<br />
<br />
== Other hardware ==<br />
{| class="wikitable sortable"<br />
!Type || Make/Model || Hardware IDs || Result || Notes <br />
|-<br />
|Bluetooth Mouse || HP Z5000 || E5C13AA || good || <br />
|-<br />
|Bluetooth Mouse || Logitech Triathlon M720 || || good ||<br />
|-<br />
|Bluetooth Mouse || Logitech Ultra-Thin Touch Mouse || || good || Detects battery level as "keyboard"<br />
|-<br />
|Bluetooth Mouse || Logitech MX Anywhere 2 || || good || <br />
|-<br />
|Bluetooth Mouse || Logitech M535 || 910-004432 || good || <br />
|-<br />
|Bluetooth Mouse || Microsoft Bluetooth Mouse || RJN-00002 || good || <br />
|-<br />
|Bluetooth Mouse || Fenifox low profile || MX106-Black || good ||<br />
|-<br />
|Bluetooth Mouse || Technet || MGS479 || good ||<br />
|-<br />
|Bluetooth Speaker || Ivation Acoustix || || good || Use audio sink profile<br />
|-<br />
|Headphone || Sony WH-1000XM2 || || good* || Needs pulseaudio-module-bluetooth. *Recording untested.<br />
|-<br />
|Bluetooth Headphone || COWIN SE7 Noise Cancelling Headphones || || good || Pairs and plays audio with stock Debian OS. More detail [https://forum.pine64.org/showthread.php?tid=8192&pid=60682#pid60682 here].<br />
|-<br />
|[https://www.aliexpress.com/item/32831647303.html USB charging cable] || - || - || good || Got the cable a while back so may not be identical to current product<br />
|-<br />
|USB Audio & Bluetooth Headset || Sony SBH90C || || good || Works well connected via USB Type-C and Bluetooth. <br />
|-<br />
|SD Card || Samsung Evo Select 512GB || MB-ME512GA/AM || good || <br />
|-<br />
|SD Card || Samsung Evo Plus 64GB || || good || Hdparm tested 44MBps read speeds<br />
|-<br />
|SD Card || Sandisk Ultra 400GB || || good || Works fine as a storage extension. Mounted for pictures, etc.<br />
|-<br />
|Printer || HP DeskJet Ink Advantage 3775 || || good* || Using hplip-gui: via USB and WiFi. *Only print function tested.<br />
|-<br />
|Bluetooth Headset || BlueAnt Ribbon || 7252A-RB || good || a2dp mode works, headset mode seems to work, out of box with manjaro<br />
|-<br />
|}</div>Mrgtwentythreehttps://wiki.pine64.org/index.php?title=ROCKPro64&diff=3976ROCKPro642019-11-12T00:30:47Z<p>Mrgtwentythree: fix typo in ayufan name.</p>
<hr />
<div>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.<br />
<br />
Key features include a PCIe x4 open ended slot, the use of LPDDR4 RAM, and industry standard heatsink mounting holes.<br />
<br />
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.<br />
<br />
= Board layout =<br />
[[File:ROCKPro64_annotated.jpg]]<br />
<br />
[[File:ROCKPro64v21FRONT.jpg|200px|thumb|right|A hi-res picture of v2.1 front]]<br />
<br />
[[File:ROCKPro64v21REAR.jpg|200px|thumb|right|A hi-res picture of v2.1 rear]]<br />
<br />
== Main chips ==<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM 1 (18)<br />
* LPDDR4 SDRAM 2 (3)<br />
* SPI NOR flash memory (17)<br />
* RK808 power management (near 19)<br />
* RTL8211 ethernet transceiver (near 25)<br />
* ES8316 Sound Codec (on rear of board)<br />
* The heatsink mounting holes around the RK3399 are 59 mm apart<br />
<br />
== Switches ==<br />
<br />
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.<br />
<br />
The Reset button (10): perfoms a reset.<br />
<br />
The Recover button (28): used to enter maskrom mode.<br />
<br />
== Connectors, sockets and headers ==<br />
{| class="wikitable sortable"<br />
! Diagram !! Schematic<br>designator || Silkscreen<br>label !! Number<br>of pins !! Description<br />
|-<br />
| style="text-align: center;" | 2 || U39 || PI-2-bus || style="text-align: center;" | 40 || Pi-2 bus <br />
|-<br />
| style="text-align: center;" | 4 || J8 || +FAN- || style="text-align: center;" | 2 || PWM controlled fan header<br />
|-<br />
| style="text-align: center;" | 5 || J10 || SPDIF || style="text-align: center;" | 3 || SPDIF header<br />
|-<br />
| style="text-align: center;" | 6 || U6 || +RTC- || style="text-align: center;" | 2 || RTC battery backup header<br />
|-<br />
| style="text-align: center;" | 7 || U31 || Wifi-BT || style="text-align: center;" | 16 || SDIO WIFI/BT module-MIMO 2<br />
|-<br />
| style="text-align: center;" | 8 || USB3 || || style="text-align: center;" | 9 || USB-3 and USB Type C<br />
|-<br />
| style="text-align: center;" | 9 || USB1 || || style="text-align: center;" | 2×4 || Dual USB-2<br />
|-<br />
| style="text-align: center;" | 12 || IR1 || IR || style="text-align: center;" | 3 || infrared receiver socket <br />
|-<br />
| style="text-align: center;" | 13 || J16 || Headphone+mic || style="text-align: center;" | 4 || Headphone + mic 3.5mm jack <br />
|-<br />
| style="text-align: center;" | 14 || U29 || EMMC || style="text-align: center;" | 34 || eMMC connector<br />
|-<br />
| style="text-align: center;" | 14* || J13 || || style="text-align: center;" | 13 || TF-card, a.k.a. microSD (* under 14 on the bottom side)<br />
|-<br />
| style="text-align: center;" | 15 || U30 || || style="text-align: center;" | 14 || SDIO WIFI/BT module-MIMO 1<br />
|-<br />
| style="text-align: center;" | 19 || J15 || PCI || style="text-align: center;" | 64 || PCI-express X4 socket<br />
|-<br />
| style="text-align: center;" | 20 || J21 || DSI || style="text-align: center;" | 30 || DSI<br />
|-<br />
| style="text-align: center;" | 21 || J22 || EDP || style="text-align: center;" | 30 || LCD EDP<br />
|-<br />
| style="text-align: center;" | 22 || CON1 || TP || style="text-align: center;" | 6 || touch panel connector<br />
|-<br />
| style="text-align: center;" | 23 || CON15 || || style="text-align: center;" | 4 || DC out for SATA disk cable (direct connect from DC-IN)<br />
|-<br />
| style="text-align: center;" | 24 || J11 || DC-IN || style="text-align: center;" | 2 || Power input, positive tip; 12V/3A (minimum) recommended<br />
|-<br />
| style="text-align: center;" | 25 || U32 || || style="text-align: center;" | 8 || RJ45<br />
|-<br />
| style="text-align: center;" | 26 || J14 || || style="text-align: center;" | 19 || HDMI<br />
|-<br />
| style="text-align: center;" | 27 || J17 || MIPI CAM || style="text-align: center;" | 32 || MIPI-1<br />
|-<br />
| style="text-align: center;" | 29 || J19 || MIPI CAM || style="text-align: center;" | 32 || MIPI-2<br />
|-<br />
| style="text-align: center;" | 30 || J18 || CIF || style="text-align: center;" | 26 || CIF<br />
|}<br />
<br />
== LEDs ==<br />
<br />
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.)<br />
<br />
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.)<br />
<br />
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.<br />
<br />
Yellow and green LEDs on the LAN socket behave in a standard way.<br />
<br />
== Jumpers ==<br />
They are used for boot device selection, as described in the following section.<br />
<br />
=== Disable eMMC ===<br />
<br />
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:<br />
<br />
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).<br />
<br />
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):<br />
<br />
{| class="wikitable sortable" style="text-align: center;"<br />
! µSD !! eMMC !! SW4 !! boot<br />
|-<br />
| 0 || 0 || 0 || X<br />
|-<br />
| 0 || 0 || 1 || X<br />
|-<br />
| 0 || 1 || 0 || M<br />
|-<br />
| 0 || 1 || 1 || X<br />
|-<br />
| 1 || 0 || 0 || S<br />
|-<br />
| 1 || 0 || 1 || S<br />
|-<br />
| 1 || 1 || 0 || M<br />
|-<br />
| 1 || 1 || 1 || S<br />
|}<br />
<br />
=== Disable SPI (while booting) ===<br />
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.<br />
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.<br />
<br />
<div class="center" style="background-color: yellow;">[[#top | '''Return to top of page''']]</div><br />
<br />
= Getting Started =<br />
<br />
This section gives important information to get the board up and running.<br />
<br />
== Start here - Software and OS Image Builds ==<br />
<br />
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.<br />
<br />
Please see the [[NOOB]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.<br />
<br />
== More advanced Linux bits ==<br />
<br />
Some Linux tips are given below.<br />
<br />
=== How to update your Linux ===<br />
<br />
For Debian/Ubuntu images entering the following commands at a terminal prompt<br />
<br />
<code>sudo apt-get update</code><br><br />
<code>sudo apt-get upgrade</code><br />
<br />
will keep your installation up to date. To update Ayufan images to the next release (when available) use the following command<br />
<br />
<code>sudo apt-get dist-upgrade</code><br />
<br />
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.<br />
<br />
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).'''<br />
<br />
=== Useful scripts ===<br />
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)<br />
<br />
=== Video playback ===<br />
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<br />
<br />
<code>sudo apt-get install ffmpeg mpv libmali-rk-midgard-t86x-r14p0-gbm</code><br />
<br />
(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<br />
<br />
=== Swapping kernel versions ===<br />
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.<br />
<br />
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).<br />
<br />
=== Using an NVMe disk for rootfs ===<br />
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.<br />
<br />
== More advanced bits related to any OS ==<br />
<br />
This section gives some hints for advanced users.<br />
<br />
=== Setup a serial console (UART)===<br />
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.]<br />
<br />
=== Booting from USB or PXE ===<br />
<br />
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.]]<br />
<br />
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.]]<br />
<br />
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.]<br />
<br />
=== OTG mode ===<br />
<br />
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.<br />
<br />
The method is to power off the board. Then push and hold the Recover button and push and release the Power button. <br />
* 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.<br />
* 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.<br />
<br />
=== NVMe drives ===<br />
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.]<br />
<br />
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.]<br />
<br />
=== SATA drives ===<br />
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.<br />
<br />
ExplainingComputers did a YouTube [https://www.youtube.com/watch?v=9CCQicHwfDI ROCKPro64 PCIe SATA card review and tests using a Ubuntu console and OpenMediaVault.]<br />
<br />
=== Wi-Fi & Bluetooth module ===<br />
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.'''<br />
<br />
=== 7" LCD Touch Screen ===<br />
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.]]<br />
<br />
'''Note at present (August 2018) this screen is only supported by the Android image.'''<br />
<br />
=== RTC battery backup ===<br />
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 ]]<br />
<br />
=== Acryllic open enclosure ===<br />
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 ]]<br />
<br />
=== NAS case ===<br />
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.<br />
<br />
Detailed '''NAS Case overview and assembly instructions''' can be found [[NASCase | here]].<br />
<br />
<div class="center" style="background-color: yellow;">[[#top | '''Return to top of page''']]</div><br />
<br />
= Board Features =<br />
<br />
This section outlines the most important characteristics of the board and its components.<br />
<br />
== SoC and Memory Specification ==<br />
* Based on Rockchip RK3399<br />
[[File:Rockchip_RK3399.png|right]]<br />
<br />
=== CPU Architecture ===<br />
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
* Cortex-A72:<br />
** 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<br />
** AArch64 for 64-bit support and new architectural features<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
** DSP & SIMD extensions<br />
** VFPv4 floating point<br />
** Hardware virtualization support<br />
* Cortex-A53:<br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster <br />
* Full implementation of the ARM architecture v8-A instruction set<br />
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
* ARMv8 Cryptography Extensions<br />
* In-order pipeline with symmetric dual-issue of most instructions<br />
* Include VFP v3 hardware to support single and double-precision operations<br />
* TrustZone technology support<br />
* Full CoreSight debug solution<br />
* One isolated voltage domain to support DVFS<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s <br />
* 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™.<br />
<br />
=== System Memory ===<br />
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.<br />
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).<br />
<br />
== Display ==<br />
* Dual VOP: one supports 4096x2160 with AFBC supported;The other supports 2560x1600<br />
* Dual channel MIPI-DSI (4 lanes per channel)<br />
* eDP 1.3 (4 lanes with 10.8Gbps) to support display, with PSR<br />
* Digital Video port up to 4Kp60<br />
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)<br />
* Supports Rec.2020 and conversion to Rec.709 <br />
<br />
== Video ==<br />
* Digital Video output up to 4K@60Hz<br />
* 4K HDR @ 30fps<br />
* H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps<br />
* H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps<br />
* VP9, up to 4Kx2K @ 60fps<br />
* MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps<br />
* MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps<br />
* MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps<br />
* VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps<br />
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps<br />
<br />
== Audio ==<br />
* 3.5mm Phone Jack<br />
* 3-pin S/PDIF header <br />
* Audio via Digital Video port<br />
<br />
== Camera ==<br />
* Dual mipi CSI,dual ISP,Maximum input resolution of 13M pixels <br />
<br />
== Network ==<br />
* 10/100/1000Mbps Ethernet<br />
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (optional)<br />
<br />
== Storage ==<br />
* microSD - bootable, support SDHC and SDXC, storage up to 256GB<br />
* eMMC - bootable (optional eMMC Module)<br />
* 1 USB3.0 Host port<br />
* 1 USB type C OTG port with DP output <br />
* 2 USB2.0 Dedicated Host ports<br />
<br />
== Expansion Ports ==<br />
* 2x20 pins "Pi2" GPIO Header<br />
* PCIe 2.1 (4 full-duplex lanes with 20Gbps) x4 open ended port<br />
<br />
== Working Features ==<br />
{| class="wikitable sortable"<br />
! style="font-weight:bold;" | Feature/Option<br />
! style="font-weight:bold;" | Android<br />
! style="font-weight:bold;" | Android Version<br />
! style="font-weight:bold;" | Linux<br />
! style="font-weight:bold;" | Linux Version<br />
! style="font-weight:bold;" | Test/Verify Steps<br />
! style="font-weight:bold;" | Notes<br />
! style="font-weight:bold;" | Product Link<br />
|-<br />
| Pine64 LCD Touchscreen (Screen/Touch)<br />
| Yes/Yes<br />
| <br />
| No/No<br />
| <br />
| <br />
| Maybe this will help get this working? https://github.com/avafinger/pine64-touchscreen<br />
| https://store.pine64.org/?product=7-lcd-touch-screen-panel<br />
|-<br />
| ROCKPro64 2×2 MIMO Dual Band WIFI 802.11AC/BLUETOOTH 4.2 MODULE<br />
| Yes/Yes<br />
| <br />
| No/No<br />
| <br />
| <br />
| In 0.7.9 this is deliberately disabled for stability reasons.<br />
| https://store.pine64.org/?product=rockpro64-2x2-mimo-dual-band-wifi-802-11acbluetooth-4-1-module<br />
|-<br />
| USB OTG<br />
| <br />
| <br />
| <br />
| <br />
| 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<br />
| http://wiki.pine64.org/index.php/ROCKPro64_Main_Page#OTG_mode<br />
| <br />
|-<br />
| USB Mass Storage USB2/USB3<br />
| Yes/yes<br />
| <br />
| Yes/Yes<br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| Dedicated Fan Power (pwm1)<br />
| <br />
| <br />
| Yes<br />
| <br />
| <br />
| You might want to use ATS. https://github.com/tuxd3v/ats<br />
| <br />
|-<br />
| GPIO pins (raw or via RPI python scripts)<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| Check out what Frank Mankel has done. https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2<br />
| <br />
|-<br />
| MIPI CSI Camera 1 and 2<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| eDP<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| HDMI Audio<br />
| Yes<br />
| 7.1.2<br />
| Yes<br />
| 4.4.132-1083 - 4.4.138-1100<br />
| <br />
| Stopped working in 4.4.154.1105. Ayufan is looking into it.<br />
| <br />
|-<br />
| 3.5mm Audio/Mic<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| USB-C Host<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| Display via USB-C<br />
| Yes<br />
| 7.x and 8.x<br />
| <br />
| <br />
| <br />
| eDP via USB-C per tillim. No sound on Android 7.x. Sound does work on Android 8.x<br />
| <br />
|-<br />
| ROCKPro64 PLAYBOX ENCLOSURE<br />
| N/A<br />
| <br />
| N/A<br />
| <br />
| N/A<br />
| 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.<br />
| https://store.pine64.org/?product=rockpro64-playbox-enclosure<br />
|-<br />
| ROCKPro64 30mm Tall Profile Heatsink<br />
| N/A<br />
| <br />
| N/A<br />
| <br />
| N/A<br />
| <br />
| https://store.pine64.org/?product=rockpro64-heatsink<br />
|-<br />
| ROCKPro64 20mm Mid Profile Heatsink<br />
| N/A<br />
| <br />
| N/A<br />
| <br />
| N/A<br />
| <br />
| https://store.pine64.org/?product=rockpro64-20mm-mid-profile-heatsink<br />
|-<br />
| Fan For ROCKPro64 20mm Mid Profile Heatsink<br />
| N/A<br />
| <br />
| N/A<br />
| <br />
| N/A<br />
| You might want to use fanctl to control the fan while keeping your CPU cool https://github.com/tuxd3v/fanctl<br />
| https://store.pine64.org/?product=fan-for-rockpro64-20mm-mid-profile-heatsink<br />
|-<br />
| HDMI output 4K@60Hz<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| PCIe 2.1<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| Real Time Clock (RTC) battery backup<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| https://store.pine64.org/?product=rtc-backup-battery-cr-battery<br />
|-<br />
| Boot from USB/PXE<br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
| <br />
|}<br />
<br />
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.]<br />
<br />
= Board Information, Schematics and Certifications =<br />
* Board Dimensions: 133mm x 80mm x 19mm<br />
* Input Power: +12V @3A/5A with 5.5mm/2.1mm Type M Barrel type DC connector<br />
* [http://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]<br />
** [http://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]<br />
** [http://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]<br />
** [http://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]<br />
** [http://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]<br />
* [http://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]<br />
** [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]<br />
* [http://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]<br />
* [http://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]<br />
* [http://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]<br />
<br />
* Certifications:<br />
** 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.<br />
** [http://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]<br />
** [http://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCK64 RoHS Report]<br />
<br />
= Datasheets for Components and Peripherals =<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/2/28/Rockchip_RK3399_Datasheet_V1.8-20180529.pdf Rockchip RK3399 Datasheet V1.8]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (200 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
** [http://files.pine64.org/doc/datasheet/pine64/H26M64003DQR%20Datasheet.pdf Hynix eMMC Datasheet]<br />
** [http://files.pine64.org/doc/datasheet/pine64/FORESEE_eMMC_NCEMBSF9-xxG%20SPEC%20A0%2020150730.pdf Foresee eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [http://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]<br />
* Heatsink related info:<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]<br />
* Wireless related info:<br />
** [[Media:AP6356 datasheet V1.0 07252014.pdf|AMPAK AP6356 2x2 Wi-Fi + Bluetooth4.1 Datasheet]]<br />
* Ethernet related info:<br />
** [http://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]<br />
* Peripheral related info:<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]<br />
* Remote control button mapping<br />
** [http://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]<br />
* Audio Codec (ES8316) (Under Board)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
<br />
= The NAS Case for the ROCKPro64 =<br />
[[file:NASCaseMain.png|200px|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]<br />
Please [[NASCase | follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.<br />
<br />
The NAS Case instructions also contains detailed information about:<br />
*what the NAS Case ships with<br />
*What additional things you need to purchase for your NAS Case<br />
*What optional things you can consider purchasing for your NAS build<br />
*What OS Image we recommend you use for your NAS build<br />
*IO accessibility after installing the ROCKPro64 into the NAS Case<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [http://www.pine64.xyz:9090/?channels=ROCK64 ROCK64/ROCKPro64 IRC Channel]<br />
* [https://store.pine64.org/?post_type=product Pine64 shop]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]<br />
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]<br />
<br />
<div class="center" style="background-color: yellow;">[[#top | '''Return to top of page''']]</div></div>Mrgtwentythree