<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pine64.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aberts10</id>
	<title>PINE64 - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pine64.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aberts10"/>
	<link rel="alternate" type="text/html" href="https://wiki.pine64.org/wiki/Special:Contributions/Aberts10"/>
	<updated>2026-04-22T22:46:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=12601</id>
		<title>PinePhone Pro Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=12601"/>
		<updated>2022-02-26T23:14:32Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Upstreaming Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the current status of software support for the [[PinePhone Pro]], and provides links to resources to help prospective contributors get started.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
=== Upstreaming Status ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Function&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;2&amp;quot; | Status&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Component&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Bootloader (u-boot)&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FF0; text-align:center;&amp;quot;| Working. Not upstreamed.&lt;br /&gt;
|&lt;br /&gt;
| https://github.com/dreemurrs-embedded/Pine64-Arch/tree/master/PKGBUILDS/pine64/uboot-pinephonepro uses https://git.sr.ht/~martijnbraam/u-boot.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Modem&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FF0; text-align:center;&amp;quot;|Working. Not upstreamed.&lt;br /&gt;
| &lt;br /&gt;
| Support in https://gitlab.com/mobian1/devices/eg25-manager and Megi's kernel.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
The following sections give an overview over the current status of different parts of the phone. Some parts are waiting on a driver to be written or ported, others only need various adjustments.&lt;br /&gt;
&lt;br /&gt;
=== Working ===&lt;br /&gt;
&lt;br /&gt;
==== Kernel ====&lt;br /&gt;
&lt;br /&gt;
There's no canonical location for Pinephone Pro Linux kernel development, because Pinephone Pro DT is not mainline, yet. [https://xff.cz/git/linux/log/?h=orange-pi-5.16 megi's kernel tree] is the most complete one, as of November 2021.&lt;br /&gt;
&lt;br /&gt;
https://mainline.space/ tracks mainlining kernels for various phones.&lt;br /&gt;
&lt;br /&gt;
==== Firmware ====&lt;br /&gt;
&lt;br /&gt;
ATF? Likely working due to reuse of Pinebook Pro SoC?&lt;br /&gt;
&lt;br /&gt;
==== Display ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Sound ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Modem ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
* Megi's orange-pi branches: https://megous.com/git/linux.&lt;br /&gt;
* https://gitlab.com/mobian1/devices/eg25-manager&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Suspend ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
=== Not working ===&lt;br /&gt;
&lt;br /&gt;
=== Unknown ===&lt;br /&gt;
&lt;br /&gt;
==== Front camera ====&lt;br /&gt;
&lt;br /&gt;
OV8858 camera. Unknown.&lt;br /&gt;
&lt;br /&gt;
Datasheet: https://cdn.datasheetspdf.com/pdf-down/O/V/8/OV8858-OmniVision.pdf&lt;br /&gt;
&lt;br /&gt;
==== Back camera ====&lt;br /&gt;
&lt;br /&gt;
Sony IMX258. Support unknown.&lt;br /&gt;
&lt;br /&gt;
== Levinboot Based Kernel Development Image ==&lt;br /&gt;
&lt;br /&gt;
This guide will help you get a comfortable environment for testing your kernel builds on Pinephone Pro. It assumes you either already know how to build or cross-build a Linux kernel for arm64, or if you have a way to get a pre-built kernel from somewhere. For a quick test that your setup works, you can use [https://xff.cz/kernels/ megi's pre-built kernels].&lt;br /&gt;
&lt;br /&gt;
Quick and easy way to get started with kernel development and testing is to use CrystalGamma's Levinboot patched with support for Pinephone Pro and 3-option boot selection using volume keys. [https://xnux.eu/log/#049 You will be able to switch between kernels quickly without swapping uSD cards, which is necessary for painless kernel development experience.]&lt;br /&gt;
&lt;br /&gt;
1) Create a following partitioning scheme on a uSD card using &amp;lt;code&amp;gt;sfdisk&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
label: gpt&lt;br /&gt;
first-lba: 64&lt;br /&gt;
table-length: 8&lt;br /&gt;
&lt;br /&gt;
start=64, size=8128, type=D7B1F817-AA75-2F4F-830D-84818A145370, name=&amp;quot;sd-lboot&amp;quot;&lt;br /&gt;
size=60M, type=E5AB07A0-8E5E-46F6-9CE8-41A518929B7C, name=&amp;quot;sd-lpayload1&amp;quot;&lt;br /&gt;
size=60M, type=5f04b556-c920-4b6d-bd77-804efe6fae01, name=&amp;quot;sd-lpayload2&amp;quot;&lt;br /&gt;
size=60M, type=c195cc59-d766-4b78-813f-a0e1519099d8, name=&amp;quot;sd-lpayload3&amp;quot;&lt;br /&gt;
size=14G name=&amp;quot;sd-rootfs1&amp;quot;&lt;br /&gt;
name=&amp;quot;sd-rootfs2&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Write Levinboot to &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition using &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;. You can get a pre-built and tested version [https://xff.cz/kernels/pinephone-pro/ here] There are two options &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;levinboot-emmc.img&amp;lt;/code&amp;gt; you can use either one of them for your &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition. They differ in where they load the payloads from (either from SD or eMMC) and not in where they can be flashed to. For uSD card only workflow, you'll want &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3) Prepare payloads for Levinboot and copy them to appropriate partitions. Partition &amp;lt;code&amp;gt;sd-lpayload1&amp;lt;/code&amp;gt; is used by default, &amp;lt;code&amp;gt;sd-lpayload2&amp;lt;/code&amp;gt; when you hold a volume down key during powerup, and &amp;lt;code&amp;gt;sd-lpayload3&amp;lt;/code&amp;gt; when you hold the volume up key.&lt;br /&gt;
&lt;br /&gt;
Preparing a payload involves getting a TF-A &amp;lt;code&amp;gt;bl31.elf&amp;lt;/code&amp;gt; build, kernel &amp;lt;code&amp;gt;Image&amp;lt;/code&amp;gt; build, &amp;lt;code&amp;gt;DTB&amp;lt;/code&amp;gt; file for Pinephone Pro, and optionally an initramfs archive, modifying DTB to include kernel boot arguments, and compressing these using &amp;lt;code&amp;gt;lz4&amp;lt;/code&amp;gt; in specific order, as shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BOOTOPTS=(&lt;br /&gt;
        console=tty1&lt;br /&gt;
&lt;br /&gt;
        earlycon=uart8250,mmio32,0xff1a0000&lt;br /&gt;
        console=ttyS2,1500000n8&lt;br /&gt;
&lt;br /&gt;
        root=PARTLABEL=emmc-rootfs1&lt;br /&gt;
        rootfstype=f2fs&lt;br /&gt;
        rootflags=fastboot&lt;br /&gt;
        rootwait&lt;br /&gt;
        rw&lt;br /&gt;
&lt;br /&gt;
        loglevel=7&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
BOOTOPTS=&amp;quot;${BOOTOPTS[@]}&amp;quot;&lt;br /&gt;
ALGO=&amp;quot;lz4 -zc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cp -f rk3399-pinephone-pro.dtb board-cfg.dtb&lt;br /&gt;
fdtput -pt s board-cfg.dtb /chosen bootargs &amp;quot;$BOOTOPTS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
        $ALGO bl31.elf&lt;br /&gt;
        $ALGO board-cfg.dtb&lt;br /&gt;
        $ALGO Image&lt;br /&gt;
#       $ALGO initramfs.img&lt;br /&gt;
) &amp;gt; payload.img&lt;br /&gt;
&lt;br /&gt;
dd if=payload.img of=/dev/disk/by-partlabel/sd-payload1 bs=4M oflag=direct&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4) Prepare root filesystem. You can use any Linux distribution for aarch64 for development. For example if you want to use Arch Linux ARM, you would need to format the &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; partition with &amp;lt;code&amp;gt;f2fs&amp;lt;/code&amp;gt; filesystem and extract the Arch Linux ARM rootfs tarball there. That will give you a bootable SD card image for Pinephone Pro.&lt;br /&gt;
&lt;br /&gt;
5) Repeat steps 3 and 4 if you want either more kernel payloads, or more Linux distributions on the same uSD card. I recommend having at least some module-less working kernel in &amp;lt;code&amp;gt;sd-payload3&amp;lt;/code&amp;gt; and perhaps a small userspace in &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; with a pre-configured WiFi connection, that will allow you to always quickly recover if your development kernel fails to boot, just by pressing volume up key during boot and updating the the kernel in one of the primary payload partitions over WiFi.&lt;br /&gt;
&lt;br /&gt;
== Development discussion ==&lt;br /&gt;
&lt;br /&gt;
Most of the discussion happens in #pinedev channel on [https://www.pine64.org/web-irc/ Pine64 IRC server].&lt;br /&gt;
&lt;br /&gt;
See https://xnux.eu/log/ too.&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone Pro]][[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=12600</id>
		<title>PinePhone Pro Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=12600"/>
		<updated>2022-02-26T23:14:22Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Upstreaming Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the current status of software support for the [[PinePhone Pro]], and provides links to resources to help prospective contributors get started.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
=== Upstreaming Status ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Function&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;2&amp;quot; | Status&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Component&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Bootloader (u-boot)&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FF0; text-align:center;&amp;quot;| Working. Not upstreamed.&lt;br /&gt;
|&lt;br /&gt;
| https://github.com/dreemurrs-embedded/Pine64-Arch/tree/master/PKGBUILDS/pine64/uboot-pinephonepro uses https://git.sr.ht/~martijnbraam/u-boot.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Modem&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FF0; text-align:center;&amp;quot;|Working. Not upstreamed.&lt;br /&gt;
| &lt;br /&gt;
| Support in https://gitlab.com/mobian1/devices/eg25-manager and Megi's kernel.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
The following sections give an overview over the current status of different parts of the phone. Some parts are waiting on a driver to be written or ported, others only need various adjustments.&lt;br /&gt;
&lt;br /&gt;
=== Working ===&lt;br /&gt;
&lt;br /&gt;
==== Kernel ====&lt;br /&gt;
&lt;br /&gt;
There's no canonical location for Pinephone Pro Linux kernel development, because Pinephone Pro DT is not mainline, yet. [https://xff.cz/git/linux/log/?h=orange-pi-5.16 megi's kernel tree] is the most complete one, as of November 2021.&lt;br /&gt;
&lt;br /&gt;
https://mainline.space/ tracks mainlining kernels for various phones.&lt;br /&gt;
&lt;br /&gt;
==== Firmware ====&lt;br /&gt;
&lt;br /&gt;
ATF? Likely working due to reuse of Pinebook Pro SoC?&lt;br /&gt;
&lt;br /&gt;
==== Display ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Sound ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Modem ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
* Megi's orange-pi branches: https://megous.com/git/linux.&lt;br /&gt;
* https://gitlab.com/mobian1/devices/eg25-manager&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Suspend ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
=== Not working ===&lt;br /&gt;
&lt;br /&gt;
=== Unknown ===&lt;br /&gt;
&lt;br /&gt;
==== Front camera ====&lt;br /&gt;
&lt;br /&gt;
OV8858 camera. Unknown.&lt;br /&gt;
&lt;br /&gt;
Datasheet: https://cdn.datasheetspdf.com/pdf-down/O/V/8/OV8858-OmniVision.pdf&lt;br /&gt;
&lt;br /&gt;
==== Back camera ====&lt;br /&gt;
&lt;br /&gt;
Sony IMX258. Support unknown.&lt;br /&gt;
&lt;br /&gt;
== Levinboot Based Kernel Development Image ==&lt;br /&gt;
&lt;br /&gt;
This guide will help you get a comfortable environment for testing your kernel builds on Pinephone Pro. It assumes you either already know how to build or cross-build a Linux kernel for arm64, or if you have a way to get a pre-built kernel from somewhere. For a quick test that your setup works, you can use [https://xff.cz/kernels/ megi's pre-built kernels].&lt;br /&gt;
&lt;br /&gt;
Quick and easy way to get started with kernel development and testing is to use CrystalGamma's Levinboot patched with support for Pinephone Pro and 3-option boot selection using volume keys. [https://xnux.eu/log/#049 You will be able to switch between kernels quickly without swapping uSD cards, which is necessary for painless kernel development experience.]&lt;br /&gt;
&lt;br /&gt;
1) Create a following partitioning scheme on a uSD card using &amp;lt;code&amp;gt;sfdisk&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
label: gpt&lt;br /&gt;
first-lba: 64&lt;br /&gt;
table-length: 8&lt;br /&gt;
&lt;br /&gt;
start=64, size=8128, type=D7B1F817-AA75-2F4F-830D-84818A145370, name=&amp;quot;sd-lboot&amp;quot;&lt;br /&gt;
size=60M, type=E5AB07A0-8E5E-46F6-9CE8-41A518929B7C, name=&amp;quot;sd-lpayload1&amp;quot;&lt;br /&gt;
size=60M, type=5f04b556-c920-4b6d-bd77-804efe6fae01, name=&amp;quot;sd-lpayload2&amp;quot;&lt;br /&gt;
size=60M, type=c195cc59-d766-4b78-813f-a0e1519099d8, name=&amp;quot;sd-lpayload3&amp;quot;&lt;br /&gt;
size=14G name=&amp;quot;sd-rootfs1&amp;quot;&lt;br /&gt;
name=&amp;quot;sd-rootfs2&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Write Levinboot to &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition using &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;. You can get a pre-built and tested version [https://xff.cz/kernels/pinephone-pro/ here] There are two options &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;levinboot-emmc.img&amp;lt;/code&amp;gt; you can use either one of them for your &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition. They differ in where they load the payloads from (either from SD or eMMC) and not in where they can be flashed to. For uSD card only workflow, you'll want &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3) Prepare payloads for Levinboot and copy them to appropriate partitions. Partition &amp;lt;code&amp;gt;sd-lpayload1&amp;lt;/code&amp;gt; is used by default, &amp;lt;code&amp;gt;sd-lpayload2&amp;lt;/code&amp;gt; when you hold a volume down key during powerup, and &amp;lt;code&amp;gt;sd-lpayload3&amp;lt;/code&amp;gt; when you hold the volume up key.&lt;br /&gt;
&lt;br /&gt;
Preparing a payload involves getting a TF-A &amp;lt;code&amp;gt;bl31.elf&amp;lt;/code&amp;gt; build, kernel &amp;lt;code&amp;gt;Image&amp;lt;/code&amp;gt; build, &amp;lt;code&amp;gt;DTB&amp;lt;/code&amp;gt; file for Pinephone Pro, and optionally an initramfs archive, modifying DTB to include kernel boot arguments, and compressing these using &amp;lt;code&amp;gt;lz4&amp;lt;/code&amp;gt; in specific order, as shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BOOTOPTS=(&lt;br /&gt;
        console=tty1&lt;br /&gt;
&lt;br /&gt;
        earlycon=uart8250,mmio32,0xff1a0000&lt;br /&gt;
        console=ttyS2,1500000n8&lt;br /&gt;
&lt;br /&gt;
        root=PARTLABEL=emmc-rootfs1&lt;br /&gt;
        rootfstype=f2fs&lt;br /&gt;
        rootflags=fastboot&lt;br /&gt;
        rootwait&lt;br /&gt;
        rw&lt;br /&gt;
&lt;br /&gt;
        loglevel=7&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
BOOTOPTS=&amp;quot;${BOOTOPTS[@]}&amp;quot;&lt;br /&gt;
ALGO=&amp;quot;lz4 -zc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cp -f rk3399-pinephone-pro.dtb board-cfg.dtb&lt;br /&gt;
fdtput -pt s board-cfg.dtb /chosen bootargs &amp;quot;$BOOTOPTS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
        $ALGO bl31.elf&lt;br /&gt;
        $ALGO board-cfg.dtb&lt;br /&gt;
        $ALGO Image&lt;br /&gt;
#       $ALGO initramfs.img&lt;br /&gt;
) &amp;gt; payload.img&lt;br /&gt;
&lt;br /&gt;
dd if=payload.img of=/dev/disk/by-partlabel/sd-payload1 bs=4M oflag=direct&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4) Prepare root filesystem. You can use any Linux distribution for aarch64 for development. For example if you want to use Arch Linux ARM, you would need to format the &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; partition with &amp;lt;code&amp;gt;f2fs&amp;lt;/code&amp;gt; filesystem and extract the Arch Linux ARM rootfs tarball there. That will give you a bootable SD card image for Pinephone Pro.&lt;br /&gt;
&lt;br /&gt;
5) Repeat steps 3 and 4 if you want either more kernel payloads, or more Linux distributions on the same uSD card. I recommend having at least some module-less working kernel in &amp;lt;code&amp;gt;sd-payload3&amp;lt;/code&amp;gt; and perhaps a small userspace in &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; with a pre-configured WiFi connection, that will allow you to always quickly recover if your development kernel fails to boot, just by pressing volume up key during boot and updating the the kernel in one of the primary payload partitions over WiFi.&lt;br /&gt;
&lt;br /&gt;
== Development discussion ==&lt;br /&gt;
&lt;br /&gt;
Most of the discussion happens in #pinedev channel on [https://www.pine64.org/web-irc/ Pine64 IRC server].&lt;br /&gt;
&lt;br /&gt;
See https://xnux.eu/log/ too.&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone Pro]][[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=12599</id>
		<title>PinePhone Pro Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=12599"/>
		<updated>2022-02-26T23:13:51Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the current status of software support for the [[PinePhone Pro]], and provides links to resources to help prospective contributors get started.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
=== Upstreaming Status ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Function&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;2&amp;quot; | Status&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Component&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Bootloader (u-boot)&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FF0; text-align:center;&amp;quot;| Working. Not upstreamed.&lt;br /&gt;
|&lt;br /&gt;
| https://github.com/dreemurrs-embedded/Pine64-Arch/tree/master/PKGBUILDS/pine64/uboot-pinephonepro uses https://git.sr.ht/~martijnbraam/u-boot.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Modem&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FF0; text-align:center;&amp;quot;|Working. Not upstreamed.&lt;br /&gt;
| &lt;br /&gt;
| Support in https://gitlab.com/mobian1/devices/eg25-manager and Megi's kernel.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Sound&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F99; text-align:center;&amp;quot;|Working.&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
The following sections give an overview over the current status of different parts of the phone. Some parts are waiting on a driver to be written or ported, others only need various adjustments.&lt;br /&gt;
&lt;br /&gt;
=== Working ===&lt;br /&gt;
&lt;br /&gt;
==== Kernel ====&lt;br /&gt;
&lt;br /&gt;
There's no canonical location for Pinephone Pro Linux kernel development, because Pinephone Pro DT is not mainline, yet. [https://xff.cz/git/linux/log/?h=orange-pi-5.16 megi's kernel tree] is the most complete one, as of November 2021.&lt;br /&gt;
&lt;br /&gt;
https://mainline.space/ tracks mainlining kernels for various phones.&lt;br /&gt;
&lt;br /&gt;
==== Firmware ====&lt;br /&gt;
&lt;br /&gt;
ATF? Likely working due to reuse of Pinebook Pro SoC?&lt;br /&gt;
&lt;br /&gt;
==== Display ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Sound ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Modem ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
* Megi's orange-pi branches: https://megous.com/git/linux.&lt;br /&gt;
* https://gitlab.com/mobian1/devices/eg25-manager&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Suspend ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
=== Not working ===&lt;br /&gt;
&lt;br /&gt;
=== Unknown ===&lt;br /&gt;
&lt;br /&gt;
==== Front camera ====&lt;br /&gt;
&lt;br /&gt;
OV8858 camera. Unknown.&lt;br /&gt;
&lt;br /&gt;
Datasheet: https://cdn.datasheetspdf.com/pdf-down/O/V/8/OV8858-OmniVision.pdf&lt;br /&gt;
&lt;br /&gt;
==== Back camera ====&lt;br /&gt;
&lt;br /&gt;
Sony IMX258. Support unknown.&lt;br /&gt;
&lt;br /&gt;
== Levinboot Based Kernel Development Image ==&lt;br /&gt;
&lt;br /&gt;
This guide will help you get a comfortable environment for testing your kernel builds on Pinephone Pro. It assumes you either already know how to build or cross-build a Linux kernel for arm64, or if you have a way to get a pre-built kernel from somewhere. For a quick test that your setup works, you can use [https://xff.cz/kernels/ megi's pre-built kernels].&lt;br /&gt;
&lt;br /&gt;
Quick and easy way to get started with kernel development and testing is to use CrystalGamma's Levinboot patched with support for Pinephone Pro and 3-option boot selection using volume keys. [https://xnux.eu/log/#049 You will be able to switch between kernels quickly without swapping uSD cards, which is necessary for painless kernel development experience.]&lt;br /&gt;
&lt;br /&gt;
1) Create a following partitioning scheme on a uSD card using &amp;lt;code&amp;gt;sfdisk&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
label: gpt&lt;br /&gt;
first-lba: 64&lt;br /&gt;
table-length: 8&lt;br /&gt;
&lt;br /&gt;
start=64, size=8128, type=D7B1F817-AA75-2F4F-830D-84818A145370, name=&amp;quot;sd-lboot&amp;quot;&lt;br /&gt;
size=60M, type=E5AB07A0-8E5E-46F6-9CE8-41A518929B7C, name=&amp;quot;sd-lpayload1&amp;quot;&lt;br /&gt;
size=60M, type=5f04b556-c920-4b6d-bd77-804efe6fae01, name=&amp;quot;sd-lpayload2&amp;quot;&lt;br /&gt;
size=60M, type=c195cc59-d766-4b78-813f-a0e1519099d8, name=&amp;quot;sd-lpayload3&amp;quot;&lt;br /&gt;
size=14G name=&amp;quot;sd-rootfs1&amp;quot;&lt;br /&gt;
name=&amp;quot;sd-rootfs2&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Write Levinboot to &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition using &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;. You can get a pre-built and tested version [https://xff.cz/kernels/pinephone-pro/ here] There are two options &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;levinboot-emmc.img&amp;lt;/code&amp;gt; you can use either one of them for your &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition. They differ in where they load the payloads from (either from SD or eMMC) and not in where they can be flashed to. For uSD card only workflow, you'll want &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3) Prepare payloads for Levinboot and copy them to appropriate partitions. Partition &amp;lt;code&amp;gt;sd-lpayload1&amp;lt;/code&amp;gt; is used by default, &amp;lt;code&amp;gt;sd-lpayload2&amp;lt;/code&amp;gt; when you hold a volume down key during powerup, and &amp;lt;code&amp;gt;sd-lpayload3&amp;lt;/code&amp;gt; when you hold the volume up key.&lt;br /&gt;
&lt;br /&gt;
Preparing a payload involves getting a TF-A &amp;lt;code&amp;gt;bl31.elf&amp;lt;/code&amp;gt; build, kernel &amp;lt;code&amp;gt;Image&amp;lt;/code&amp;gt; build, &amp;lt;code&amp;gt;DTB&amp;lt;/code&amp;gt; file for Pinephone Pro, and optionally an initramfs archive, modifying DTB to include kernel boot arguments, and compressing these using &amp;lt;code&amp;gt;lz4&amp;lt;/code&amp;gt; in specific order, as shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BOOTOPTS=(&lt;br /&gt;
        console=tty1&lt;br /&gt;
&lt;br /&gt;
        earlycon=uart8250,mmio32,0xff1a0000&lt;br /&gt;
        console=ttyS2,1500000n8&lt;br /&gt;
&lt;br /&gt;
        root=PARTLABEL=emmc-rootfs1&lt;br /&gt;
        rootfstype=f2fs&lt;br /&gt;
        rootflags=fastboot&lt;br /&gt;
        rootwait&lt;br /&gt;
        rw&lt;br /&gt;
&lt;br /&gt;
        loglevel=7&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
BOOTOPTS=&amp;quot;${BOOTOPTS[@]}&amp;quot;&lt;br /&gt;
ALGO=&amp;quot;lz4 -zc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cp -f rk3399-pinephone-pro.dtb board-cfg.dtb&lt;br /&gt;
fdtput -pt s board-cfg.dtb /chosen bootargs &amp;quot;$BOOTOPTS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
        $ALGO bl31.elf&lt;br /&gt;
        $ALGO board-cfg.dtb&lt;br /&gt;
        $ALGO Image&lt;br /&gt;
#       $ALGO initramfs.img&lt;br /&gt;
) &amp;gt; payload.img&lt;br /&gt;
&lt;br /&gt;
dd if=payload.img of=/dev/disk/by-partlabel/sd-payload1 bs=4M oflag=direct&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4) Prepare root filesystem. You can use any Linux distribution for aarch64 for development. For example if you want to use Arch Linux ARM, you would need to format the &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; partition with &amp;lt;code&amp;gt;f2fs&amp;lt;/code&amp;gt; filesystem and extract the Arch Linux ARM rootfs tarball there. That will give you a bootable SD card image for Pinephone Pro.&lt;br /&gt;
&lt;br /&gt;
5) Repeat steps 3 and 4 if you want either more kernel payloads, or more Linux distributions on the same uSD card. I recommend having at least some module-less working kernel in &amp;lt;code&amp;gt;sd-payload3&amp;lt;/code&amp;gt; and perhaps a small userspace in &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; with a pre-configured WiFi connection, that will allow you to always quickly recover if your development kernel fails to boot, just by pressing volume up key during boot and updating the the kernel in one of the primary payload partitions over WiFi.&lt;br /&gt;
&lt;br /&gt;
== Development discussion ==&lt;br /&gt;
&lt;br /&gt;
Most of the discussion happens in #pinedev channel on [https://www.pine64.org/web-irc/ Pine64 IRC server].&lt;br /&gt;
&lt;br /&gt;
See https://xnux.eu/log/ too.&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone Pro]][[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=12598</id>
		<title>PinePhone Pro Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=12598"/>
		<updated>2022-02-26T23:12:53Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Working */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the current status of software support for the [[PinePhone Pro]], and provides links to resources to help prospective contributors get started.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
=== Upstreaming Status ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Function&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;2&amp;quot; | Status&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Component&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Bootloader (u-boot)&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FF0; text-align:center;&amp;quot;| Working. Not upstreamed.&lt;br /&gt;
|&lt;br /&gt;
| https://github.com/dreemurrs-embedded/Pine64-Arch/tree/master/PKGBUILDS/pine64/uboot-pinephonepro uses https://git.sr.ht/~martijnbraam/u-boot.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Modem&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FF0; text-align:center;&amp;quot;|Working. Not upstreamed.&lt;br /&gt;
| &lt;br /&gt;
| Support in https://gitlab.com/mobian1/devices/eg25-manager and Megi's kernel.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Sound&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F99; text-align:center;&amp;quot;|Unimplemented.&lt;br /&gt;
|&lt;br /&gt;
| See https://github.com/alsa-project/alsa-ucm-conf/issues/125.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
The following sections give an overview over the current status of different parts of the phone. Some parts are waiting on a driver to be written or ported, others only need various adjustments.&lt;br /&gt;
&lt;br /&gt;
=== Working ===&lt;br /&gt;
&lt;br /&gt;
==== Kernel ====&lt;br /&gt;
&lt;br /&gt;
There's no canonical location for Pinephone Pro Linux kernel development, because Pinephone Pro DT is not mainline, yet. [https://xff.cz/git/linux/log/?h=orange-pi-5.16 megi's kernel tree] is the most complete one, as of November 2021.&lt;br /&gt;
&lt;br /&gt;
https://mainline.space/ tracks mainlining kernels for various phones.&lt;br /&gt;
&lt;br /&gt;
==== Firmware ====&lt;br /&gt;
&lt;br /&gt;
ATF? Likely working due to reuse of Pinebook Pro SoC?&lt;br /&gt;
&lt;br /&gt;
==== Display ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Sound ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Modem ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
* Megi's orange-pi branches: https://megous.com/git/linux.&lt;br /&gt;
* https://gitlab.com/mobian1/devices/eg25-manager&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Suspend ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
=== Not working ===&lt;br /&gt;
&lt;br /&gt;
=== Unknown ===&lt;br /&gt;
&lt;br /&gt;
==== Front camera ====&lt;br /&gt;
&lt;br /&gt;
OV8858 camera. Unknown.&lt;br /&gt;
&lt;br /&gt;
Datasheet: https://cdn.datasheetspdf.com/pdf-down/O/V/8/OV8858-OmniVision.pdf&lt;br /&gt;
&lt;br /&gt;
==== Back camera ====&lt;br /&gt;
&lt;br /&gt;
Sony IMX258. Support unknown.&lt;br /&gt;
&lt;br /&gt;
== Levinboot Based Kernel Development Image ==&lt;br /&gt;
&lt;br /&gt;
This guide will help you get a comfortable environment for testing your kernel builds on Pinephone Pro. It assumes you either already know how to build or cross-build a Linux kernel for arm64, or if you have a way to get a pre-built kernel from somewhere. For a quick test that your setup works, you can use [https://xff.cz/kernels/ megi's pre-built kernels].&lt;br /&gt;
&lt;br /&gt;
Quick and easy way to get started with kernel development and testing is to use CrystalGamma's Levinboot patched with support for Pinephone Pro and 3-option boot selection using volume keys. [https://xnux.eu/log/#049 You will be able to switch between kernels quickly without swapping uSD cards, which is necessary for painless kernel development experience.]&lt;br /&gt;
&lt;br /&gt;
1) Create a following partitioning scheme on a uSD card using &amp;lt;code&amp;gt;sfdisk&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
label: gpt&lt;br /&gt;
first-lba: 64&lt;br /&gt;
table-length: 8&lt;br /&gt;
&lt;br /&gt;
start=64, size=8128, type=D7B1F817-AA75-2F4F-830D-84818A145370, name=&amp;quot;sd-lboot&amp;quot;&lt;br /&gt;
size=60M, type=E5AB07A0-8E5E-46F6-9CE8-41A518929B7C, name=&amp;quot;sd-lpayload1&amp;quot;&lt;br /&gt;
size=60M, type=5f04b556-c920-4b6d-bd77-804efe6fae01, name=&amp;quot;sd-lpayload2&amp;quot;&lt;br /&gt;
size=60M, type=c195cc59-d766-4b78-813f-a0e1519099d8, name=&amp;quot;sd-lpayload3&amp;quot;&lt;br /&gt;
size=14G name=&amp;quot;sd-rootfs1&amp;quot;&lt;br /&gt;
name=&amp;quot;sd-rootfs2&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Write Levinboot to &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition using &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;. You can get a pre-built and tested version [https://xff.cz/kernels/pinephone-pro/ here] There are two options &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;levinboot-emmc.img&amp;lt;/code&amp;gt; you can use either one of them for your &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition. They differ in where they load the payloads from (either from SD or eMMC) and not in where they can be flashed to. For uSD card only workflow, you'll want &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3) Prepare payloads for Levinboot and copy them to appropriate partitions. Partition &amp;lt;code&amp;gt;sd-lpayload1&amp;lt;/code&amp;gt; is used by default, &amp;lt;code&amp;gt;sd-lpayload2&amp;lt;/code&amp;gt; when you hold a volume down key during powerup, and &amp;lt;code&amp;gt;sd-lpayload3&amp;lt;/code&amp;gt; when you hold the volume up key.&lt;br /&gt;
&lt;br /&gt;
Preparing a payload involves getting a TF-A &amp;lt;code&amp;gt;bl31.elf&amp;lt;/code&amp;gt; build, kernel &amp;lt;code&amp;gt;Image&amp;lt;/code&amp;gt; build, &amp;lt;code&amp;gt;DTB&amp;lt;/code&amp;gt; file for Pinephone Pro, and optionally an initramfs archive, modifying DTB to include kernel boot arguments, and compressing these using &amp;lt;code&amp;gt;lz4&amp;lt;/code&amp;gt; in specific order, as shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BOOTOPTS=(&lt;br /&gt;
        console=tty1&lt;br /&gt;
&lt;br /&gt;
        earlycon=uart8250,mmio32,0xff1a0000&lt;br /&gt;
        console=ttyS2,1500000n8&lt;br /&gt;
&lt;br /&gt;
        root=PARTLABEL=emmc-rootfs1&lt;br /&gt;
        rootfstype=f2fs&lt;br /&gt;
        rootflags=fastboot&lt;br /&gt;
        rootwait&lt;br /&gt;
        rw&lt;br /&gt;
&lt;br /&gt;
        loglevel=7&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
BOOTOPTS=&amp;quot;${BOOTOPTS[@]}&amp;quot;&lt;br /&gt;
ALGO=&amp;quot;lz4 -zc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cp -f rk3399-pinephone-pro.dtb board-cfg.dtb&lt;br /&gt;
fdtput -pt s board-cfg.dtb /chosen bootargs &amp;quot;$BOOTOPTS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
        $ALGO bl31.elf&lt;br /&gt;
        $ALGO board-cfg.dtb&lt;br /&gt;
        $ALGO Image&lt;br /&gt;
#       $ALGO initramfs.img&lt;br /&gt;
) &amp;gt; payload.img&lt;br /&gt;
&lt;br /&gt;
dd if=payload.img of=/dev/disk/by-partlabel/sd-payload1 bs=4M oflag=direct&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4) Prepare root filesystem. You can use any Linux distribution for aarch64 for development. For example if you want to use Arch Linux ARM, you would need to format the &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; partition with &amp;lt;code&amp;gt;f2fs&amp;lt;/code&amp;gt; filesystem and extract the Arch Linux ARM rootfs tarball there. That will give you a bootable SD card image for Pinephone Pro.&lt;br /&gt;
&lt;br /&gt;
5) Repeat steps 3 and 4 if you want either more kernel payloads, or more Linux distributions on the same uSD card. I recommend having at least some module-less working kernel in &amp;lt;code&amp;gt;sd-payload3&amp;lt;/code&amp;gt; and perhaps a small userspace in &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; with a pre-configured WiFi connection, that will allow you to always quickly recover if your development kernel fails to boot, just by pressing volume up key during boot and updating the the kernel in one of the primary payload partitions over WiFi.&lt;br /&gt;
&lt;br /&gt;
== Development discussion ==&lt;br /&gt;
&lt;br /&gt;
Most of the discussion happens in #pinedev channel on [https://www.pine64.org/web-irc/ Pine64 IRC server].&lt;br /&gt;
&lt;br /&gt;
See https://xnux.eu/log/ too.&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone Pro]][[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=12597</id>
		<title>PinePhone Pro Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=12597"/>
		<updated>2022-02-26T23:11:38Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Current Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the current status of software support for the [[PinePhone Pro]], and provides links to resources to help prospective contributors get started.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
=== Upstreaming Status ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Function&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;2&amp;quot; | Status&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Component&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Bootloader (u-boot)&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FF0; text-align:center;&amp;quot;| Working. Not upstreamed.&lt;br /&gt;
|&lt;br /&gt;
| https://github.com/dreemurrs-embedded/Pine64-Arch/tree/master/PKGBUILDS/pine64/uboot-pinephonepro uses https://git.sr.ht/~martijnbraam/u-boot.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Modem&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FF0; text-align:center;&amp;quot;|Working. Not upstreamed.&lt;br /&gt;
| &lt;br /&gt;
| Support in https://gitlab.com/mobian1/devices/eg25-manager and Megi's kernel.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Sound&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F99; text-align:center;&amp;quot;|Unimplemented.&lt;br /&gt;
|&lt;br /&gt;
| See https://github.com/alsa-project/alsa-ucm-conf/issues/125.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
The following sections give an overview over the current status of different parts of the phone. Some parts are waiting on a driver to be written or ported, others only need various adjustments.&lt;br /&gt;
&lt;br /&gt;
=== Working ===&lt;br /&gt;
&lt;br /&gt;
==== Kernel ====&lt;br /&gt;
&lt;br /&gt;
There's no canonical location for Pinephone Pro Linux kernel development, because Pinephone Pro DT is not mainline, yet. [https://xff.cz/git/linux/log/?h=orange-pi-5.16 megi's kernel tree] is the most complete one, as of November 2021.&lt;br /&gt;
&lt;br /&gt;
https://mainline.space/ tracks mainlining kernels for various phones.&lt;br /&gt;
&lt;br /&gt;
==== Firmware ====&lt;br /&gt;
&lt;br /&gt;
ATF? Likely working due to reuse of Pinebook Pro SoC?&lt;br /&gt;
&lt;br /&gt;
==== Display ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Sound ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Modem ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
* Megi's orange-pi branches: https://megous.com/git/linux.&lt;br /&gt;
* https://gitlab.com/mobian1/devices/eg25-manager&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
=== Not working ===&lt;br /&gt;
&lt;br /&gt;
=== Unknown ===&lt;br /&gt;
&lt;br /&gt;
==== Front camera ====&lt;br /&gt;
&lt;br /&gt;
OV8858 camera. Unknown.&lt;br /&gt;
&lt;br /&gt;
Datasheet: https://cdn.datasheetspdf.com/pdf-down/O/V/8/OV8858-OmniVision.pdf&lt;br /&gt;
&lt;br /&gt;
==== Back camera ====&lt;br /&gt;
&lt;br /&gt;
Sony IMX258. Support unknown.&lt;br /&gt;
&lt;br /&gt;
== Levinboot Based Kernel Development Image ==&lt;br /&gt;
&lt;br /&gt;
This guide will help you get a comfortable environment for testing your kernel builds on Pinephone Pro. It assumes you either already know how to build or cross-build a Linux kernel for arm64, or if you have a way to get a pre-built kernel from somewhere. For a quick test that your setup works, you can use [https://xff.cz/kernels/ megi's pre-built kernels].&lt;br /&gt;
&lt;br /&gt;
Quick and easy way to get started with kernel development and testing is to use CrystalGamma's Levinboot patched with support for Pinephone Pro and 3-option boot selection using volume keys. [https://xnux.eu/log/#049 You will be able to switch between kernels quickly without swapping uSD cards, which is necessary for painless kernel development experience.]&lt;br /&gt;
&lt;br /&gt;
1) Create a following partitioning scheme on a uSD card using &amp;lt;code&amp;gt;sfdisk&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
label: gpt&lt;br /&gt;
first-lba: 64&lt;br /&gt;
table-length: 8&lt;br /&gt;
&lt;br /&gt;
start=64, size=8128, type=D7B1F817-AA75-2F4F-830D-84818A145370, name=&amp;quot;sd-lboot&amp;quot;&lt;br /&gt;
size=60M, type=E5AB07A0-8E5E-46F6-9CE8-41A518929B7C, name=&amp;quot;sd-lpayload1&amp;quot;&lt;br /&gt;
size=60M, type=5f04b556-c920-4b6d-bd77-804efe6fae01, name=&amp;quot;sd-lpayload2&amp;quot;&lt;br /&gt;
size=60M, type=c195cc59-d766-4b78-813f-a0e1519099d8, name=&amp;quot;sd-lpayload3&amp;quot;&lt;br /&gt;
size=14G name=&amp;quot;sd-rootfs1&amp;quot;&lt;br /&gt;
name=&amp;quot;sd-rootfs2&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Write Levinboot to &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition using &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;. You can get a pre-built and tested version [https://xff.cz/kernels/pinephone-pro/ here] There are two options &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;levinboot-emmc.img&amp;lt;/code&amp;gt; you can use either one of them for your &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition. They differ in where they load the payloads from (either from SD or eMMC) and not in where they can be flashed to. For uSD card only workflow, you'll want &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3) Prepare payloads for Levinboot and copy them to appropriate partitions. Partition &amp;lt;code&amp;gt;sd-lpayload1&amp;lt;/code&amp;gt; is used by default, &amp;lt;code&amp;gt;sd-lpayload2&amp;lt;/code&amp;gt; when you hold a volume down key during powerup, and &amp;lt;code&amp;gt;sd-lpayload3&amp;lt;/code&amp;gt; when you hold the volume up key.&lt;br /&gt;
&lt;br /&gt;
Preparing a payload involves getting a TF-A &amp;lt;code&amp;gt;bl31.elf&amp;lt;/code&amp;gt; build, kernel &amp;lt;code&amp;gt;Image&amp;lt;/code&amp;gt; build, &amp;lt;code&amp;gt;DTB&amp;lt;/code&amp;gt; file for Pinephone Pro, and optionally an initramfs archive, modifying DTB to include kernel boot arguments, and compressing these using &amp;lt;code&amp;gt;lz4&amp;lt;/code&amp;gt; in specific order, as shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BOOTOPTS=(&lt;br /&gt;
        console=tty1&lt;br /&gt;
&lt;br /&gt;
        earlycon=uart8250,mmio32,0xff1a0000&lt;br /&gt;
        console=ttyS2,1500000n8&lt;br /&gt;
&lt;br /&gt;
        root=PARTLABEL=emmc-rootfs1&lt;br /&gt;
        rootfstype=f2fs&lt;br /&gt;
        rootflags=fastboot&lt;br /&gt;
        rootwait&lt;br /&gt;
        rw&lt;br /&gt;
&lt;br /&gt;
        loglevel=7&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
BOOTOPTS=&amp;quot;${BOOTOPTS[@]}&amp;quot;&lt;br /&gt;
ALGO=&amp;quot;lz4 -zc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cp -f rk3399-pinephone-pro.dtb board-cfg.dtb&lt;br /&gt;
fdtput -pt s board-cfg.dtb /chosen bootargs &amp;quot;$BOOTOPTS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
        $ALGO bl31.elf&lt;br /&gt;
        $ALGO board-cfg.dtb&lt;br /&gt;
        $ALGO Image&lt;br /&gt;
#       $ALGO initramfs.img&lt;br /&gt;
) &amp;gt; payload.img&lt;br /&gt;
&lt;br /&gt;
dd if=payload.img of=/dev/disk/by-partlabel/sd-payload1 bs=4M oflag=direct&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4) Prepare root filesystem. You can use any Linux distribution for aarch64 for development. For example if you want to use Arch Linux ARM, you would need to format the &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; partition with &amp;lt;code&amp;gt;f2fs&amp;lt;/code&amp;gt; filesystem and extract the Arch Linux ARM rootfs tarball there. That will give you a bootable SD card image for Pinephone Pro.&lt;br /&gt;
&lt;br /&gt;
5) Repeat steps 3 and 4 if you want either more kernel payloads, or more Linux distributions on the same uSD card. I recommend having at least some module-less working kernel in &amp;lt;code&amp;gt;sd-payload3&amp;lt;/code&amp;gt; and perhaps a small userspace in &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; with a pre-configured WiFi connection, that will allow you to always quickly recover if your development kernel fails to boot, just by pressing volume up key during boot and updating the the kernel in one of the primary payload partitions over WiFi.&lt;br /&gt;
&lt;br /&gt;
== Development discussion ==&lt;br /&gt;
&lt;br /&gt;
Most of the discussion happens in #pinedev channel on [https://www.pine64.org/web-irc/ Pine64 IRC server].&lt;br /&gt;
&lt;br /&gt;
See https://xnux.eu/log/ too.&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone Pro]][[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=12596</id>
		<title>PinePhone Pro Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=12596"/>
		<updated>2022-02-26T23:10:39Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Working */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the current status of software support for the [[PinePhone Pro]], and provides links to resources to help prospective contributors get started.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
=== Upstreaming Status ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Function&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;2&amp;quot; | Status&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Component&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Bootloader (u-boot)&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FF0; text-align:center;&amp;quot;| Working. Not upstreamed.&lt;br /&gt;
|&lt;br /&gt;
| https://github.com/dreemurrs-embedded/Pine64-Arch/tree/master/PKGBUILDS/pine64/uboot-pinephonepro uses https://git.sr.ht/~martijnbraam/u-boot.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Modem&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FF0; text-align:center;&amp;quot;|Working. Not upstreamed.&lt;br /&gt;
| &lt;br /&gt;
| Support in https://gitlab.com/mobian1/devices/eg25-manager and Megi's kernel.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Sound&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F99; text-align:center;&amp;quot;|Unimplemented.&lt;br /&gt;
|&lt;br /&gt;
| See https://github.com/alsa-project/alsa-ucm-conf/issues/125.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
The following sections give an overview over the current status of different parts of the phone. Some parts are waiting on a driver to be written or ported, others only need various adjustments.&lt;br /&gt;
&lt;br /&gt;
=== Working ===&lt;br /&gt;
&lt;br /&gt;
==== Kernel ====&lt;br /&gt;
&lt;br /&gt;
There's no canonical location for Pinephone Pro Linux kernel development, because Pinephone Pro DT is not mainline, yet. [https://xff.cz/git/linux/log/?h=orange-pi-5.16 megi's kernel tree] is the most complete one, as of November 2021.&lt;br /&gt;
&lt;br /&gt;
https://mainline.space/ tracks mainlining kernels for various phones.&lt;br /&gt;
&lt;br /&gt;
==== Firmware ====&lt;br /&gt;
&lt;br /&gt;
ATF? Likely working due to reuse of Pinebook Pro SoC?&lt;br /&gt;
&lt;br /&gt;
==== Display ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Sound ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Modem ====&lt;br /&gt;
&lt;br /&gt;
Working. Supported in:&lt;br /&gt;
* Megi's orange-pi branches: https://megous.com/git/linux.&lt;br /&gt;
* https://gitlab.com/mobian1/devices/eg25-manager&lt;br /&gt;
&lt;br /&gt;
=== Not working ===&lt;br /&gt;
&lt;br /&gt;
=== Unknown ===&lt;br /&gt;
&lt;br /&gt;
==== Front camera ====&lt;br /&gt;
&lt;br /&gt;
OV8858 camera. Unknown.&lt;br /&gt;
&lt;br /&gt;
Datasheet: https://cdn.datasheetspdf.com/pdf-down/O/V/8/OV8858-OmniVision.pdf&lt;br /&gt;
&lt;br /&gt;
==== Back camera ====&lt;br /&gt;
&lt;br /&gt;
Sony IMX258. Support unknown.&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth ====&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
== Levinboot Based Kernel Development Image ==&lt;br /&gt;
&lt;br /&gt;
This guide will help you get a comfortable environment for testing your kernel builds on Pinephone Pro. It assumes you either already know how to build or cross-build a Linux kernel for arm64, or if you have a way to get a pre-built kernel from somewhere. For a quick test that your setup works, you can use [https://xff.cz/kernels/ megi's pre-built kernels].&lt;br /&gt;
&lt;br /&gt;
Quick and easy way to get started with kernel development and testing is to use CrystalGamma's Levinboot patched with support for Pinephone Pro and 3-option boot selection using volume keys. [https://xnux.eu/log/#049 You will be able to switch between kernels quickly without swapping uSD cards, which is necessary for painless kernel development experience.]&lt;br /&gt;
&lt;br /&gt;
1) Create a following partitioning scheme on a uSD card using &amp;lt;code&amp;gt;sfdisk&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
label: gpt&lt;br /&gt;
first-lba: 64&lt;br /&gt;
table-length: 8&lt;br /&gt;
&lt;br /&gt;
start=64, size=8128, type=D7B1F817-AA75-2F4F-830D-84818A145370, name=&amp;quot;sd-lboot&amp;quot;&lt;br /&gt;
size=60M, type=E5AB07A0-8E5E-46F6-9CE8-41A518929B7C, name=&amp;quot;sd-lpayload1&amp;quot;&lt;br /&gt;
size=60M, type=5f04b556-c920-4b6d-bd77-804efe6fae01, name=&amp;quot;sd-lpayload2&amp;quot;&lt;br /&gt;
size=60M, type=c195cc59-d766-4b78-813f-a0e1519099d8, name=&amp;quot;sd-lpayload3&amp;quot;&lt;br /&gt;
size=14G name=&amp;quot;sd-rootfs1&amp;quot;&lt;br /&gt;
name=&amp;quot;sd-rootfs2&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Write Levinboot to &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition using &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;. You can get a pre-built and tested version [https://xff.cz/kernels/pinephone-pro/ here] There are two options &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;levinboot-emmc.img&amp;lt;/code&amp;gt; you can use either one of them for your &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition. They differ in where they load the payloads from (either from SD or eMMC) and not in where they can be flashed to. For uSD card only workflow, you'll want &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3) Prepare payloads for Levinboot and copy them to appropriate partitions. Partition &amp;lt;code&amp;gt;sd-lpayload1&amp;lt;/code&amp;gt; is used by default, &amp;lt;code&amp;gt;sd-lpayload2&amp;lt;/code&amp;gt; when you hold a volume down key during powerup, and &amp;lt;code&amp;gt;sd-lpayload3&amp;lt;/code&amp;gt; when you hold the volume up key.&lt;br /&gt;
&lt;br /&gt;
Preparing a payload involves getting a TF-A &amp;lt;code&amp;gt;bl31.elf&amp;lt;/code&amp;gt; build, kernel &amp;lt;code&amp;gt;Image&amp;lt;/code&amp;gt; build, &amp;lt;code&amp;gt;DTB&amp;lt;/code&amp;gt; file for Pinephone Pro, and optionally an initramfs archive, modifying DTB to include kernel boot arguments, and compressing these using &amp;lt;code&amp;gt;lz4&amp;lt;/code&amp;gt; in specific order, as shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BOOTOPTS=(&lt;br /&gt;
        console=tty1&lt;br /&gt;
&lt;br /&gt;
        earlycon=uart8250,mmio32,0xff1a0000&lt;br /&gt;
        console=ttyS2,1500000n8&lt;br /&gt;
&lt;br /&gt;
        root=PARTLABEL=emmc-rootfs1&lt;br /&gt;
        rootfstype=f2fs&lt;br /&gt;
        rootflags=fastboot&lt;br /&gt;
        rootwait&lt;br /&gt;
        rw&lt;br /&gt;
&lt;br /&gt;
        loglevel=7&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
BOOTOPTS=&amp;quot;${BOOTOPTS[@]}&amp;quot;&lt;br /&gt;
ALGO=&amp;quot;lz4 -zc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cp -f rk3399-pinephone-pro.dtb board-cfg.dtb&lt;br /&gt;
fdtput -pt s board-cfg.dtb /chosen bootargs &amp;quot;$BOOTOPTS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
        $ALGO bl31.elf&lt;br /&gt;
        $ALGO board-cfg.dtb&lt;br /&gt;
        $ALGO Image&lt;br /&gt;
#       $ALGO initramfs.img&lt;br /&gt;
) &amp;gt; payload.img&lt;br /&gt;
&lt;br /&gt;
dd if=payload.img of=/dev/disk/by-partlabel/sd-payload1 bs=4M oflag=direct&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4) Prepare root filesystem. You can use any Linux distribution for aarch64 for development. For example if you want to use Arch Linux ARM, you would need to format the &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; partition with &amp;lt;code&amp;gt;f2fs&amp;lt;/code&amp;gt; filesystem and extract the Arch Linux ARM rootfs tarball there. That will give you a bootable SD card image for Pinephone Pro.&lt;br /&gt;
&lt;br /&gt;
5) Repeat steps 3 and 4 if you want either more kernel payloads, or more Linux distributions on the same uSD card. I recommend having at least some module-less working kernel in &amp;lt;code&amp;gt;sd-payload3&amp;lt;/code&amp;gt; and perhaps a small userspace in &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; with a pre-configured WiFi connection, that will allow you to always quickly recover if your development kernel fails to boot, just by pressing volume up key during boot and updating the the kernel in one of the primary payload partitions over WiFi.&lt;br /&gt;
&lt;br /&gt;
== Development discussion ==&lt;br /&gt;
&lt;br /&gt;
Most of the discussion happens in #pinedev channel on [https://www.pine64.org/web-irc/ Pine64 IRC server].&lt;br /&gt;
&lt;br /&gt;
See https://xnux.eu/log/ too.&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone Pro]][[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=12595</id>
		<title>PinePhone Pro Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=12595"/>
		<updated>2022-02-26T23:10:24Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Not working */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the current status of software support for the [[PinePhone Pro]], and provides links to resources to help prospective contributors get started.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
=== Upstreaming Status ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Function&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;2&amp;quot; | Status&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Component&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Bootloader (u-boot)&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FF0; text-align:center;&amp;quot;| Working. Not upstreamed.&lt;br /&gt;
|&lt;br /&gt;
| https://github.com/dreemurrs-embedded/Pine64-Arch/tree/master/PKGBUILDS/pine64/uboot-pinephonepro uses https://git.sr.ht/~martijnbraam/u-boot.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Modem&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FF0; text-align:center;&amp;quot;|Working. Not upstreamed.&lt;br /&gt;
| &lt;br /&gt;
| Support in https://gitlab.com/mobian1/devices/eg25-manager and Megi's kernel.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Sound&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F99; text-align:center;&amp;quot;|Unimplemented.&lt;br /&gt;
|&lt;br /&gt;
| See https://github.com/alsa-project/alsa-ucm-conf/issues/125.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
The following sections give an overview over the current status of different parts of the phone. Some parts are waiting on a driver to be written or ported, others only need various adjustments.&lt;br /&gt;
&lt;br /&gt;
=== Working ===&lt;br /&gt;
&lt;br /&gt;
==== Kernel ====&lt;br /&gt;
&lt;br /&gt;
There's no canonical location for Pinephone Pro Linux kernel development, because Pinephone Pro DT is not mainline, yet. [https://xff.cz/git/linux/log/?h=orange-pi-5.16 megi's kernel tree] is the most complete one, as of November 2021.&lt;br /&gt;
&lt;br /&gt;
https://mainline.space/ tracks mainlining kernels for various phones.&lt;br /&gt;
&lt;br /&gt;
==== Firmware ====&lt;br /&gt;
&lt;br /&gt;
ATF? Likely working due to reuse of Pinebook Pro SoC?&lt;br /&gt;
&lt;br /&gt;
==== Display ====&lt;br /&gt;
&lt;br /&gt;
Working.&lt;br /&gt;
&lt;br /&gt;
==== Modem ====&lt;br /&gt;
&lt;br /&gt;
Working. Supported in:&lt;br /&gt;
* Megi's orange-pi branches: https://megous.com/git/linux.&lt;br /&gt;
* https://gitlab.com/mobian1/devices/eg25-manager&lt;br /&gt;
&lt;br /&gt;
=== Not working ===&lt;br /&gt;
&lt;br /&gt;
=== Unknown ===&lt;br /&gt;
&lt;br /&gt;
==== Front camera ====&lt;br /&gt;
&lt;br /&gt;
OV8858 camera. Unknown.&lt;br /&gt;
&lt;br /&gt;
Datasheet: https://cdn.datasheetspdf.com/pdf-down/O/V/8/OV8858-OmniVision.pdf&lt;br /&gt;
&lt;br /&gt;
==== Back camera ====&lt;br /&gt;
&lt;br /&gt;
Sony IMX258. Support unknown.&lt;br /&gt;
&lt;br /&gt;
==== Sensors ====&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth ====&lt;br /&gt;
&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
== Levinboot Based Kernel Development Image ==&lt;br /&gt;
&lt;br /&gt;
This guide will help you get a comfortable environment for testing your kernel builds on Pinephone Pro. It assumes you either already know how to build or cross-build a Linux kernel for arm64, or if you have a way to get a pre-built kernel from somewhere. For a quick test that your setup works, you can use [https://xff.cz/kernels/ megi's pre-built kernels].&lt;br /&gt;
&lt;br /&gt;
Quick and easy way to get started with kernel development and testing is to use CrystalGamma's Levinboot patched with support for Pinephone Pro and 3-option boot selection using volume keys. [https://xnux.eu/log/#049 You will be able to switch between kernels quickly without swapping uSD cards, which is necessary for painless kernel development experience.]&lt;br /&gt;
&lt;br /&gt;
1) Create a following partitioning scheme on a uSD card using &amp;lt;code&amp;gt;sfdisk&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
label: gpt&lt;br /&gt;
first-lba: 64&lt;br /&gt;
table-length: 8&lt;br /&gt;
&lt;br /&gt;
start=64, size=8128, type=D7B1F817-AA75-2F4F-830D-84818A145370, name=&amp;quot;sd-lboot&amp;quot;&lt;br /&gt;
size=60M, type=E5AB07A0-8E5E-46F6-9CE8-41A518929B7C, name=&amp;quot;sd-lpayload1&amp;quot;&lt;br /&gt;
size=60M, type=5f04b556-c920-4b6d-bd77-804efe6fae01, name=&amp;quot;sd-lpayload2&amp;quot;&lt;br /&gt;
size=60M, type=c195cc59-d766-4b78-813f-a0e1519099d8, name=&amp;quot;sd-lpayload3&amp;quot;&lt;br /&gt;
size=14G name=&amp;quot;sd-rootfs1&amp;quot;&lt;br /&gt;
name=&amp;quot;sd-rootfs2&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Write Levinboot to &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition using &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;. You can get a pre-built and tested version [https://xff.cz/kernels/pinephone-pro/ here] There are two options &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;levinboot-emmc.img&amp;lt;/code&amp;gt; you can use either one of them for your &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition. They differ in where they load the payloads from (either from SD or eMMC) and not in where they can be flashed to. For uSD card only workflow, you'll want &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3) Prepare payloads for Levinboot and copy them to appropriate partitions. Partition &amp;lt;code&amp;gt;sd-lpayload1&amp;lt;/code&amp;gt; is used by default, &amp;lt;code&amp;gt;sd-lpayload2&amp;lt;/code&amp;gt; when you hold a volume down key during powerup, and &amp;lt;code&amp;gt;sd-lpayload3&amp;lt;/code&amp;gt; when you hold the volume up key.&lt;br /&gt;
&lt;br /&gt;
Preparing a payload involves getting a TF-A &amp;lt;code&amp;gt;bl31.elf&amp;lt;/code&amp;gt; build, kernel &amp;lt;code&amp;gt;Image&amp;lt;/code&amp;gt; build, &amp;lt;code&amp;gt;DTB&amp;lt;/code&amp;gt; file for Pinephone Pro, and optionally an initramfs archive, modifying DTB to include kernel boot arguments, and compressing these using &amp;lt;code&amp;gt;lz4&amp;lt;/code&amp;gt; in specific order, as shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BOOTOPTS=(&lt;br /&gt;
        console=tty1&lt;br /&gt;
&lt;br /&gt;
        earlycon=uart8250,mmio32,0xff1a0000&lt;br /&gt;
        console=ttyS2,1500000n8&lt;br /&gt;
&lt;br /&gt;
        root=PARTLABEL=emmc-rootfs1&lt;br /&gt;
        rootfstype=f2fs&lt;br /&gt;
        rootflags=fastboot&lt;br /&gt;
        rootwait&lt;br /&gt;
        rw&lt;br /&gt;
&lt;br /&gt;
        loglevel=7&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
BOOTOPTS=&amp;quot;${BOOTOPTS[@]}&amp;quot;&lt;br /&gt;
ALGO=&amp;quot;lz4 -zc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cp -f rk3399-pinephone-pro.dtb board-cfg.dtb&lt;br /&gt;
fdtput -pt s board-cfg.dtb /chosen bootargs &amp;quot;$BOOTOPTS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
        $ALGO bl31.elf&lt;br /&gt;
        $ALGO board-cfg.dtb&lt;br /&gt;
        $ALGO Image&lt;br /&gt;
#       $ALGO initramfs.img&lt;br /&gt;
) &amp;gt; payload.img&lt;br /&gt;
&lt;br /&gt;
dd if=payload.img of=/dev/disk/by-partlabel/sd-payload1 bs=4M oflag=direct&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4) Prepare root filesystem. You can use any Linux distribution for aarch64 for development. For example if you want to use Arch Linux ARM, you would need to format the &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; partition with &amp;lt;code&amp;gt;f2fs&amp;lt;/code&amp;gt; filesystem and extract the Arch Linux ARM rootfs tarball there. That will give you a bootable SD card image for Pinephone Pro.&lt;br /&gt;
&lt;br /&gt;
5) Repeat steps 3 and 4 if you want either more kernel payloads, or more Linux distributions on the same uSD card. I recommend having at least some module-less working kernel in &amp;lt;code&amp;gt;sd-payload3&amp;lt;/code&amp;gt; and perhaps a small userspace in &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; with a pre-configured WiFi connection, that will allow you to always quickly recover if your development kernel fails to boot, just by pressing volume up key during boot and updating the the kernel in one of the primary payload partitions over WiFi.&lt;br /&gt;
&lt;br /&gt;
== Development discussion ==&lt;br /&gt;
&lt;br /&gt;
Most of the discussion happens in #pinedev channel on [https://www.pine64.org/web-irc/ Pine64 IRC server].&lt;br /&gt;
&lt;br /&gt;
See https://xnux.eu/log/ too.&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone Pro]][[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Keyboard&amp;diff=12335</id>
		<title>PinePhone (Pro) Keyboard</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Keyboard&amp;diff=12335"/>
		<updated>2022-01-26T02:23:06Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Frequently asked questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under construction}}&lt;br /&gt;
&lt;br /&gt;
[[File:PP_KB_Front-1024x576.jpg|400px|thumb|right|Picture of the PinePhone (Pro) Keyboard]]&lt;br /&gt;
&lt;br /&gt;
The '''PinePhone (Pro) Keyboard Case''' is a case compatible with the [[PinePhone]] and [[PinePhone Pro]], adding a keyboard functionality to the phone. It features a clam-shell design and uses the pogo pins located on the smartphone’s midsection and attaches by replacing the default back cover. This add-on effectively turns the PinePhone (Pro) into a PDA with an in-built LTE modem.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
[[File:Ppkb_description.png|thumb|upright=1.2|]]&lt;br /&gt;
&lt;br /&gt;
The keyboard case works with both the PinePhone and PinePhone Pro and features a clam-shell design. It uses pogo pins located on the phone’s midsection and attaches by replacing the default back cover. When folded, the phone’s screen and the keyboard rest securely against each other. The hinge features a 180° design, which not only allows for two-hand typing on a surface but also for comfortable thumb-typing when fully extended. The etched keycaps can be easily relocated for alternate layouts such as AZERTY or QWERTZ. The keyboard case runs an [https://xff.cz/git/pinephone-keyboard/ open firmware], which means that anyone with the know-how can alter existing functions or add new ones. The bottom (keyboard) and top (phone) sections of the assembly are well-balanced thanks to the large, 6000mAh, internal battery capable of charging the PinePhone (Pro) during operation. The internal battery effectively triples the phone’s battery life. The internal keyboard battery can be manually toggled on/off and the keyboard’s battery charge level can be read in the supported OSes; the keyboard remains functional with the battery fully depleted.&lt;br /&gt;
&lt;br /&gt;
You do not lose access to the PinePhone (Pro)’s USB-C port, speaker, microphone, or any external features, such as volume and lock buttons, with the keyboard attached. There is also a cut-out for the camera, torch, and headphone jack. The USB-C port on the keyboard is capable of powering both the keyboard and PinePhone (Pro) simultaneously. This means that you can plug in a USB mouse, a USB-C dongle, or some other peripheral while the phone and keyboard’s internal battery charge. Please keep in mind that the keyboard case transforms the PinePhone (Pro) into a PDA, which means that taking calls will likely prove awkward without a wired or wireless headset connected.&lt;br /&gt;
&lt;br /&gt;
=== Mounting the keyboard ===&lt;br /&gt;
Power OFF your PinePhone and remove the back case. To remove the back case of the PinePhone use your fingernail or another soft object to pry up the back case. A notch to easily remove the cover is located at the bottom left of the PinePhone with the backcover facing the user. &lt;br /&gt;
&lt;br /&gt;
Open and place the keyboard flat on a hard surface with the hinge fully extended. Proceed to insert the PinePhone into the keyboard at an angle of approx. 15 degrees. Make sure that the PinePhone’s pogo pins and the corresponding pads ① on the keyboard are aligned. The leading edge with volume and power buttons should make contact first. Firmly press the PinePhone into place. Multiple clicks should be heard as the two snap into place. Pay special attention to the plastic pin below the camera hole. Firmly push from the rear, below the camera hole, to click it into position. Failing to do so may cause an insufficient pin contact and prevent the case from charging the phone.&lt;br /&gt;
&lt;br /&gt;
The PinePhone can be removed from the keyboard easily using a notch similar to the one found on the back case. The notch is located at the bottom of the leading edge with the power and volume buttons.&lt;br /&gt;
&lt;br /&gt;
=== Keyboard and internal battery operation ===&lt;br /&gt;
The keyboard will function automatically once a PinePhone running a compatible operating system is mounted. For alterations to physical layout and firmware see the relevant sections respectively.&lt;br /&gt;
&lt;br /&gt;
The keyboard features an in-built 6000mAh battery. The battery can be turned ON/OFF using the button on the right leading edge of the keyboard ②. A short button press activates the internal battery while a long (15 seconds) press deactivates it. Compatible operating systems display both the PinePhone’s and keyboard’s battery status.&lt;br /&gt;
&lt;br /&gt;
You should charge the PinePhone and the keyboard &amp;lt;u&amp;gt;only&amp;lt;/u&amp;gt; using the USB-C ③ port on the keyboard. The keyboard’s USB-C port cannot be used for peripherals. The PinePhone’s USB-C port remains operational when mounted in the keyboard and can be used for data and peripherals.&lt;br /&gt;
&lt;br /&gt;
=== Keyboard quick start guide user manual ===&lt;br /&gt;
The official keyboard Quick Start User Manual can be downloaded below. &lt;br /&gt;
Please read the manual in its entirety prior to use. &lt;br /&gt;
* [https://wiki.pine64.org/wiki/File:USER_MANUAL-KEYBOARD-V2-EN-DE-FR-ES.pdf The official keyboard manual]&lt;br /&gt;
&lt;br /&gt;
== Software support ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel-space driver ===&lt;br /&gt;
&lt;br /&gt;
Kernel driver implementation from Samuel Holland: ip5xxx_power and kb151 https://github.com/smaeul/linux/commits/wip/pp-keyboard&lt;br /&gt;
&lt;br /&gt;
=== User-space driver ===&lt;br /&gt;
The user-space driver is available [https://xff.cz/git/pinephone-keyboard/ here]. Use git to clone the repository. You're going to need sdcc 4.1+ installed to build it, so use your package manager to install that first. Next you'll cd into the directory you cloned pinephone-keyboard and use the command &amp;quot;make&amp;quot; to build. After the build is completed, cd into the build directory and you'll notice several new files starting with ppkb-. To use your keyboard case, you'll want to run the following command: &amp;lt;code&amp;gt;sudo ./ppkb-i2c-inputd&amp;lt;/code&amp;gt; &amp;lt;!-- this isn't running as a daemon, if anyone knows how to make it do so please edit that info in! --&amp;gt; Open something you can type into like a new terminal window or text editor and you should now be able to use the keyboard case! &lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
Virtual keyboards such as &amp;lt;i&amp;gt;squeekboard&amp;lt;/i&amp;gt; are opening whenever a text field is selected.&lt;br /&gt;
&lt;br /&gt;
To disable this behavior under GNU/Linux running Phosh, you can run the following: &lt;br /&gt;
&lt;br /&gt;
To disable the virtual keyboard: &amp;lt;code&amp;gt;gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled false&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enable the virtual keyboard: &amp;lt;code&amp;gt;gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual keyboard needs to be activated before removing the keyboard case again.&lt;br /&gt;
&lt;br /&gt;
== Keyboard layout ==&lt;br /&gt;
The keyboard features a default layout (pictured below) created and agreed upon by the community. The keyboard layout can be altered using software as well as by physically repositioning keycaps. All keycaps, with the &amp;lt;u&amp;gt;exception&amp;lt;/u&amp;gt; of space and return keys, can be easily and safely relocated for alternative layouts corresponding to software settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;nolines&amp;quot; widths=&amp;quot;800px&amp;quot; heights=&amp;quot;400px&amp;quot;&amp;gt;&lt;br /&gt;
Image:Ppkb_layout2.png|The keyboard layout how the keys were originally intended&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Keyboard firmware ==&lt;br /&gt;
PinePhone’s keyboard firmware was developed independently by Ondřej Jirman as a free-of-charge contribution to PINE64. The firmware source code is freely and publicly available and you can modify it, and the supporting utilities, using common FOSS tools.  &lt;br /&gt;
&lt;br /&gt;
=== Firmware and supporting utilities ===&lt;br /&gt;
The design of the firmware allows the keys, modifier keys, and their combinations to be handled in virtually unlimited ways, without a need to flash a customized version of the firmware. Mapping of keys is defined at runtime, using the supporting utilities, and is not hardcoded in the firmware. Different keyboard layouts can be loaded dynamically to support various use cases.&lt;br /&gt;
&lt;br /&gt;
The repository that contains the source code of the firmware, supporting utilities and associated documentation is located at https://xnux.eu/pinephone-keyboard/.&lt;br /&gt;
&lt;br /&gt;
You are welcome to contribute patches and improvements to the firmware and the supporting utilities. A summary of firmware development history is available at https://xnux.eu/log/ alongside other development updates from the firmware author.&lt;br /&gt;
&lt;br /&gt;
Much time and effort went into the development of this firmware. If you wish to send a token of appreciation or support the development efforts in any way, please consider making a donation to the author via one of the methods listed at the bottom of this web page: https://xnux.eu/contribute.html.&lt;br /&gt;
&lt;br /&gt;
=== Firmware License ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Copyright (C) 2021 Ondřej Jirman &amp;lt;megi@xff.cz&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This program is free software: you can redistribute it and/or modify&lt;br /&gt;
it under the terms of the GNU General Public License as published by&lt;br /&gt;
the Free Software Foundation, with either version 3 of the License or&lt;br /&gt;
(at your discretion) any later version.&lt;br /&gt;
&lt;br /&gt;
This program is distributed in the hope that it will be useful,&lt;br /&gt;
but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &lt;br /&gt;
See GNU General Public License for more details.&lt;br /&gt;
&lt;br /&gt;
GNU General Public License http://www.gnu.org/licenses/&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Detailed keyboard specifications including schematics can be found on our Wiki: https://wiki.pine64.org/wiki/PinePhoneKeyboard&lt;br /&gt;
&lt;br /&gt;
Key hardware specifications:&lt;br /&gt;
* Dimensions (closed): 161 x 95 x 21.5mm&lt;br /&gt;
* Weights (without / with PinePhone mounted): ~ 191 / ~391 grams&lt;br /&gt;
* Number of keys: 54&lt;br /&gt;
* Number of rows: 5&lt;br /&gt;
** Keyboard IC: Keyboard IC: EM85F684A 8-bit microcontroller with 256 bytes RAM, 2048/ bytes XRAM; 16kB for user’s own firmware&lt;br /&gt;
* Battery capacity: 6000mAh (22.2Wh 3.7V)&lt;br /&gt;
* Charger input: 5V, 3A (15W)&lt;br /&gt;
** Charging and battery IC chip: IP5209 power management IC with charge indicate controller and boost converter&lt;br /&gt;
&lt;br /&gt;
== Safety ==&lt;br /&gt;
{{warning|1=Do NOT plug any power source into the phone USB-C port while the keyboard is attached. Doing so may result in damage or loss of the keyboard charging functionality.}}&lt;br /&gt;
{{warning|1=Do NOT lube the keyboard with GPL 205G0 switch grease. It can cause problems with the key responsiveness and tactility.}}&lt;br /&gt;
{{hint|Only use mild isopropyl alcohol when wiping down the clamshell of the device. Stronger solutions may partially strip the coatings.}}&lt;br /&gt;
&lt;br /&gt;
== Frequently asked questions ==&lt;br /&gt;
{{Under construction}}&lt;br /&gt;
&lt;br /&gt;
''' The keyboard does not work under OSK-SDL (full-disk encryption UI at boot) '''&amp;lt;br&amp;gt;&lt;br /&gt;
That is a known bug, see https://gitlab.com/postmarketOS/pmaports/-/issues/1383.&lt;br /&gt;
&lt;br /&gt;
''' What is the keyboard driver situation? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#drivers&lt;br /&gt;
&lt;br /&gt;
''' Are keyboard drivers included in my distribution? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#distros&lt;br /&gt;
&lt;br /&gt;
''' What's the status of the existing software for the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#sw-status&lt;br /&gt;
&lt;br /&gt;
''' My keyboard doesn't work (well)! '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#faq-ts&lt;br /&gt;
&lt;br /&gt;
''' How does charging work? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#charging&lt;br /&gt;
&lt;br /&gt;
''' What charger is best for the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#chargers&lt;br /&gt;
&lt;br /&gt;
''' How safe is the charger circuit in the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#safety&lt;br /&gt;
&lt;br /&gt;
''' Keyboard doesn't react to any key presses '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Keyboard works but top row of keys is less responsive '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Phone is not charging from the keyboard '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Phone is charging slowly from the keyboard battery '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Can you open the keyboard and add extra functionality? '''&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to do so, however the production units can be extremely difficult to open. Do not attempt to open the keyboard if you do not want to risk cosmetic damage (scaring and scratching of the plastic).&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://www.pine64.org/2022/01/11/pinephone-pro-explorer-edition-pre-orders-open-january-11/ Pre-order announcement]&lt;br /&gt;
* FAQ of the developer megous: https://xnux.eu/pinephone-keyboard/faq.html&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Keyboard&amp;diff=12334</id>
		<title>PinePhone (Pro) Keyboard</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Keyboard&amp;diff=12334"/>
		<updated>2022-01-26T02:22:43Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Frequently asked questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under construction}}&lt;br /&gt;
&lt;br /&gt;
[[File:PP_KB_Front-1024x576.jpg|400px|thumb|right|Picture of the PinePhone (Pro) Keyboard]]&lt;br /&gt;
&lt;br /&gt;
The '''PinePhone (Pro) Keyboard Case''' is a case compatible with the [[PinePhone]] and [[PinePhone Pro]], adding a keyboard functionality to the phone. It features a clam-shell design and uses the pogo pins located on the smartphone’s midsection and attaches by replacing the default back cover. This add-on effectively turns the PinePhone (Pro) into a PDA with an in-built LTE modem.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
[[File:Ppkb_description.png|thumb|upright=1.2|]]&lt;br /&gt;
&lt;br /&gt;
The keyboard case works with both the PinePhone and PinePhone Pro and features a clam-shell design. It uses pogo pins located on the phone’s midsection and attaches by replacing the default back cover. When folded, the phone’s screen and the keyboard rest securely against each other. The hinge features a 180° design, which not only allows for two-hand typing on a surface but also for comfortable thumb-typing when fully extended. The etched keycaps can be easily relocated for alternate layouts such as AZERTY or QWERTZ. The keyboard case runs an [https://xff.cz/git/pinephone-keyboard/ open firmware], which means that anyone with the know-how can alter existing functions or add new ones. The bottom (keyboard) and top (phone) sections of the assembly are well-balanced thanks to the large, 6000mAh, internal battery capable of charging the PinePhone (Pro) during operation. The internal battery effectively triples the phone’s battery life. The internal keyboard battery can be manually toggled on/off and the keyboard’s battery charge level can be read in the supported OSes; the keyboard remains functional with the battery fully depleted.&lt;br /&gt;
&lt;br /&gt;
You do not lose access to the PinePhone (Pro)’s USB-C port, speaker, microphone, or any external features, such as volume and lock buttons, with the keyboard attached. There is also a cut-out for the camera, torch, and headphone jack. The USB-C port on the keyboard is capable of powering both the keyboard and PinePhone (Pro) simultaneously. This means that you can plug in a USB mouse, a USB-C dongle, or some other peripheral while the phone and keyboard’s internal battery charge. Please keep in mind that the keyboard case transforms the PinePhone (Pro) into a PDA, which means that taking calls will likely prove awkward without a wired or wireless headset connected.&lt;br /&gt;
&lt;br /&gt;
=== Mounting the keyboard ===&lt;br /&gt;
Power OFF your PinePhone and remove the back case. To remove the back case of the PinePhone use your fingernail or another soft object to pry up the back case. A notch to easily remove the cover is located at the bottom left of the PinePhone with the backcover facing the user. &lt;br /&gt;
&lt;br /&gt;
Open and place the keyboard flat on a hard surface with the hinge fully extended. Proceed to insert the PinePhone into the keyboard at an angle of approx. 15 degrees. Make sure that the PinePhone’s pogo pins and the corresponding pads ① on the keyboard are aligned. The leading edge with volume and power buttons should make contact first. Firmly press the PinePhone into place. Multiple clicks should be heard as the two snap into place. Pay special attention to the plastic pin below the camera hole. Firmly push from the rear, below the camera hole, to click it into position. Failing to do so may cause an insufficient pin contact and prevent the case from charging the phone.&lt;br /&gt;
&lt;br /&gt;
The PinePhone can be removed from the keyboard easily using a notch similar to the one found on the back case. The notch is located at the bottom of the leading edge with the power and volume buttons.&lt;br /&gt;
&lt;br /&gt;
=== Keyboard and internal battery operation ===&lt;br /&gt;
The keyboard will function automatically once a PinePhone running a compatible operating system is mounted. For alterations to physical layout and firmware see the relevant sections respectively.&lt;br /&gt;
&lt;br /&gt;
The keyboard features an in-built 6000mAh battery. The battery can be turned ON/OFF using the button on the right leading edge of the keyboard ②. A short button press activates the internal battery while a long (15 seconds) press deactivates it. Compatible operating systems display both the PinePhone’s and keyboard’s battery status.&lt;br /&gt;
&lt;br /&gt;
You should charge the PinePhone and the keyboard &amp;lt;u&amp;gt;only&amp;lt;/u&amp;gt; using the USB-C ③ port on the keyboard. The keyboard’s USB-C port cannot be used for peripherals. The PinePhone’s USB-C port remains operational when mounted in the keyboard and can be used for data and peripherals.&lt;br /&gt;
&lt;br /&gt;
=== Keyboard quick start guide user manual ===&lt;br /&gt;
The official keyboard Quick Start User Manual can be downloaded below. &lt;br /&gt;
Please read the manual in its entirety prior to use. &lt;br /&gt;
* [https://wiki.pine64.org/wiki/File:USER_MANUAL-KEYBOARD-V2-EN-DE-FR-ES.pdf The official keyboard manual]&lt;br /&gt;
&lt;br /&gt;
== Software support ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel-space driver ===&lt;br /&gt;
&lt;br /&gt;
Kernel driver implementation from Samuel Holland: ip5xxx_power and kb151 https://github.com/smaeul/linux/commits/wip/pp-keyboard&lt;br /&gt;
&lt;br /&gt;
=== User-space driver ===&lt;br /&gt;
The user-space driver is available [https://xff.cz/git/pinephone-keyboard/ here]. Use git to clone the repository. You're going to need sdcc 4.1+ installed to build it, so use your package manager to install that first. Next you'll cd into the directory you cloned pinephone-keyboard and use the command &amp;quot;make&amp;quot; to build. After the build is completed, cd into the build directory and you'll notice several new files starting with ppkb-. To use your keyboard case, you'll want to run the following command: &amp;lt;code&amp;gt;sudo ./ppkb-i2c-inputd&amp;lt;/code&amp;gt; &amp;lt;!-- this isn't running as a daemon, if anyone knows how to make it do so please edit that info in! --&amp;gt; Open something you can type into like a new terminal window or text editor and you should now be able to use the keyboard case! &lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
Virtual keyboards such as &amp;lt;i&amp;gt;squeekboard&amp;lt;/i&amp;gt; are opening whenever a text field is selected.&lt;br /&gt;
&lt;br /&gt;
To disable this behavior under GNU/Linux running Phosh, you can run the following: &lt;br /&gt;
&lt;br /&gt;
To disable the virtual keyboard: &amp;lt;code&amp;gt;gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled false&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enable the virtual keyboard: &amp;lt;code&amp;gt;gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual keyboard needs to be activated before removing the keyboard case again.&lt;br /&gt;
&lt;br /&gt;
== Keyboard layout ==&lt;br /&gt;
The keyboard features a default layout (pictured below) created and agreed upon by the community. The keyboard layout can be altered using software as well as by physically repositioning keycaps. All keycaps, with the &amp;lt;u&amp;gt;exception&amp;lt;/u&amp;gt; of space and return keys, can be easily and safely relocated for alternative layouts corresponding to software settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;nolines&amp;quot; widths=&amp;quot;800px&amp;quot; heights=&amp;quot;400px&amp;quot;&amp;gt;&lt;br /&gt;
Image:Ppkb_layout2.png|The keyboard layout how the keys were originally intended&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Keyboard firmware ==&lt;br /&gt;
PinePhone’s keyboard firmware was developed independently by Ondřej Jirman as a free-of-charge contribution to PINE64. The firmware source code is freely and publicly available and you can modify it, and the supporting utilities, using common FOSS tools.  &lt;br /&gt;
&lt;br /&gt;
=== Firmware and supporting utilities ===&lt;br /&gt;
The design of the firmware allows the keys, modifier keys, and their combinations to be handled in virtually unlimited ways, without a need to flash a customized version of the firmware. Mapping of keys is defined at runtime, using the supporting utilities, and is not hardcoded in the firmware. Different keyboard layouts can be loaded dynamically to support various use cases.&lt;br /&gt;
&lt;br /&gt;
The repository that contains the source code of the firmware, supporting utilities and associated documentation is located at https://xnux.eu/pinephone-keyboard/.&lt;br /&gt;
&lt;br /&gt;
You are welcome to contribute patches and improvements to the firmware and the supporting utilities. A summary of firmware development history is available at https://xnux.eu/log/ alongside other development updates from the firmware author.&lt;br /&gt;
&lt;br /&gt;
Much time and effort went into the development of this firmware. If you wish to send a token of appreciation or support the development efforts in any way, please consider making a donation to the author via one of the methods listed at the bottom of this web page: https://xnux.eu/contribute.html.&lt;br /&gt;
&lt;br /&gt;
=== Firmware License ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Copyright (C) 2021 Ondřej Jirman &amp;lt;megi@xff.cz&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This program is free software: you can redistribute it and/or modify&lt;br /&gt;
it under the terms of the GNU General Public License as published by&lt;br /&gt;
the Free Software Foundation, with either version 3 of the License or&lt;br /&gt;
(at your discretion) any later version.&lt;br /&gt;
&lt;br /&gt;
This program is distributed in the hope that it will be useful,&lt;br /&gt;
but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &lt;br /&gt;
See GNU General Public License for more details.&lt;br /&gt;
&lt;br /&gt;
GNU General Public License http://www.gnu.org/licenses/&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Detailed keyboard specifications including schematics can be found on our Wiki: https://wiki.pine64.org/wiki/PinePhoneKeyboard&lt;br /&gt;
&lt;br /&gt;
Key hardware specifications:&lt;br /&gt;
* Dimensions (closed): 161 x 95 x 21.5mm&lt;br /&gt;
* Weights (without / with PinePhone mounted): ~ 191 / ~391 grams&lt;br /&gt;
* Number of keys: 54&lt;br /&gt;
* Number of rows: 5&lt;br /&gt;
** Keyboard IC: Keyboard IC: EM85F684A 8-bit microcontroller with 256 bytes RAM, 2048/ bytes XRAM; 16kB for user’s own firmware&lt;br /&gt;
* Battery capacity: 6000mAh (22.2Wh 3.7V)&lt;br /&gt;
* Charger input: 5V, 3A (15W)&lt;br /&gt;
** Charging and battery IC chip: IP5209 power management IC with charge indicate controller and boost converter&lt;br /&gt;
&lt;br /&gt;
== Safety ==&lt;br /&gt;
{{warning|1=Do NOT plug any power source into the phone USB-C port while the keyboard is attached. Doing so may result in damage or loss of the keyboard charging functionality.}}&lt;br /&gt;
{{warning|1=Do NOT lube the keyboard with GPL 205G0 switch grease. It can cause problems with the key responsiveness and tactility.}}&lt;br /&gt;
{{hint|Only use mild isopropyl alcohol when wiping down the clamshell of the device. Stronger solutions may partially strip the coatings.}}&lt;br /&gt;
&lt;br /&gt;
== Frequently asked questions ==&lt;br /&gt;
{{Under construction}}&lt;br /&gt;
&lt;br /&gt;
''' The keyboard does not work under OSK-SDL (full-disk encryption UI at boot) '''&amp;lt;br&amp;gt;&lt;br /&gt;
That is a known bug, see https://gitlab.com/postmarketOS/pmaports/-/issues/1383.&lt;br /&gt;
&lt;br /&gt;
''' What is the keyboard driver situation? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#drivers&lt;br /&gt;
&lt;br /&gt;
''' Are keyboard drivers included in my distribution? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#distros&lt;br /&gt;
&lt;br /&gt;
''' What's the status of the existing software for the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#sw-status&lt;br /&gt;
&lt;br /&gt;
''' My keyboard doesn't work (well)! '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#faq-ts&lt;br /&gt;
&lt;br /&gt;
''' How does charging work? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#charging&lt;br /&gt;
&lt;br /&gt;
''' What charger is best for the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#chargers&lt;br /&gt;
&lt;br /&gt;
''' How safe is the charger circuit in the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#safety&lt;br /&gt;
&lt;br /&gt;
''' Keyboard doesn't react to any key presses '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Keyboard works but top row of keys is less responsive '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Phone is not charging from the keyboard '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Phone is charging slowly from the keyboard battery '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Can you open the keyboard and add extra functionality? ```&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to do so, however the production units can be extremely difficult to open. Do not attempt to open the keyboard if you do not want to risk cosmetic damage (scaring and scratching of the plastic).&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://www.pine64.org/2022/01/11/pinephone-pro-explorer-edition-pre-orders-open-january-11/ Pre-order announcement]&lt;br /&gt;
* FAQ of the developer megous: https://xnux.eu/pinephone-keyboard/faq.html&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Keyboard&amp;diff=12333</id>
		<title>PinePhone (Pro) Keyboard</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Keyboard&amp;diff=12333"/>
		<updated>2022-01-26T02:20:24Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Safety */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under construction}}&lt;br /&gt;
&lt;br /&gt;
[[File:PP_KB_Front-1024x576.jpg|400px|thumb|right|Picture of the PinePhone (Pro) Keyboard]]&lt;br /&gt;
&lt;br /&gt;
The '''PinePhone (Pro) Keyboard Case''' is a case compatible with the [[PinePhone]] and [[PinePhone Pro]], adding a keyboard functionality to the phone. It features a clam-shell design and uses the pogo pins located on the smartphone’s midsection and attaches by replacing the default back cover. This add-on effectively turns the PinePhone (Pro) into a PDA with an in-built LTE modem.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
[[File:Ppkb_description.png|thumb|upright=1.2|]]&lt;br /&gt;
&lt;br /&gt;
The keyboard case works with both the PinePhone and PinePhone Pro and features a clam-shell design. It uses pogo pins located on the phone’s midsection and attaches by replacing the default back cover. When folded, the phone’s screen and the keyboard rest securely against each other. The hinge features a 180° design, which not only allows for two-hand typing on a surface but also for comfortable thumb-typing when fully extended. The etched keycaps can be easily relocated for alternate layouts such as AZERTY or QWERTZ. The keyboard case runs an [https://xff.cz/git/pinephone-keyboard/ open firmware], which means that anyone with the know-how can alter existing functions or add new ones. The bottom (keyboard) and top (phone) sections of the assembly are well-balanced thanks to the large, 6000mAh, internal battery capable of charging the PinePhone (Pro) during operation. The internal battery effectively triples the phone’s battery life. The internal keyboard battery can be manually toggled on/off and the keyboard’s battery charge level can be read in the supported OSes; the keyboard remains functional with the battery fully depleted.&lt;br /&gt;
&lt;br /&gt;
You do not lose access to the PinePhone (Pro)’s USB-C port, speaker, microphone, or any external features, such as volume and lock buttons, with the keyboard attached. There is also a cut-out for the camera, torch, and headphone jack. The USB-C port on the keyboard is capable of powering both the keyboard and PinePhone (Pro) simultaneously. This means that you can plug in a USB mouse, a USB-C dongle, or some other peripheral while the phone and keyboard’s internal battery charge. Please keep in mind that the keyboard case transforms the PinePhone (Pro) into a PDA, which means that taking calls will likely prove awkward without a wired or wireless headset connected.&lt;br /&gt;
&lt;br /&gt;
=== Mounting the keyboard ===&lt;br /&gt;
Power OFF your PinePhone and remove the back case. To remove the back case of the PinePhone use your fingernail or another soft object to pry up the back case. A notch to easily remove the cover is located at the bottom left of the PinePhone with the backcover facing the user. &lt;br /&gt;
&lt;br /&gt;
Open and place the keyboard flat on a hard surface with the hinge fully extended. Proceed to insert the PinePhone into the keyboard at an angle of approx. 15 degrees. Make sure that the PinePhone’s pogo pins and the corresponding pads ① on the keyboard are aligned. The leading edge with volume and power buttons should make contact first. Firmly press the PinePhone into place. Multiple clicks should be heard as the two snap into place. Pay special attention to the plastic pin below the camera hole. Firmly push from the rear, below the camera hole, to click it into position. Failing to do so may cause an insufficient pin contact and prevent the case from charging the phone.&lt;br /&gt;
&lt;br /&gt;
The PinePhone can be removed from the keyboard easily using a notch similar to the one found on the back case. The notch is located at the bottom of the leading edge with the power and volume buttons.&lt;br /&gt;
&lt;br /&gt;
=== Keyboard and internal battery operation ===&lt;br /&gt;
The keyboard will function automatically once a PinePhone running a compatible operating system is mounted. For alterations to physical layout and firmware see the relevant sections respectively.&lt;br /&gt;
&lt;br /&gt;
The keyboard features an in-built 6000mAh battery. The battery can be turned ON/OFF using the button on the right leading edge of the keyboard ②. A short button press activates the internal battery while a long (15 seconds) press deactivates it. Compatible operating systems display both the PinePhone’s and keyboard’s battery status.&lt;br /&gt;
&lt;br /&gt;
You should charge the PinePhone and the keyboard &amp;lt;u&amp;gt;only&amp;lt;/u&amp;gt; using the USB-C ③ port on the keyboard. The keyboard’s USB-C port cannot be used for peripherals. The PinePhone’s USB-C port remains operational when mounted in the keyboard and can be used for data and peripherals.&lt;br /&gt;
&lt;br /&gt;
=== Keyboard quick start guide user manual ===&lt;br /&gt;
The official keyboard Quick Start User Manual can be downloaded below. &lt;br /&gt;
Please read the manual in its entirety prior to use. &lt;br /&gt;
* [https://wiki.pine64.org/wiki/File:USER_MANUAL-KEYBOARD-V2-EN-DE-FR-ES.pdf The official keyboard manual]&lt;br /&gt;
&lt;br /&gt;
== Software support ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel-space driver ===&lt;br /&gt;
&lt;br /&gt;
Kernel driver implementation from Samuel Holland: ip5xxx_power and kb151 https://github.com/smaeul/linux/commits/wip/pp-keyboard&lt;br /&gt;
&lt;br /&gt;
=== User-space driver ===&lt;br /&gt;
The user-space driver is available [https://xff.cz/git/pinephone-keyboard/ here]. Use git to clone the repository. You're going to need sdcc 4.1+ installed to build it, so use your package manager to install that first. Next you'll cd into the directory you cloned pinephone-keyboard and use the command &amp;quot;make&amp;quot; to build. After the build is completed, cd into the build directory and you'll notice several new files starting with ppkb-. To use your keyboard case, you'll want to run the following command: &amp;lt;code&amp;gt;sudo ./ppkb-i2c-inputd&amp;lt;/code&amp;gt; &amp;lt;!-- this isn't running as a daemon, if anyone knows how to make it do so please edit that info in! --&amp;gt; Open something you can type into like a new terminal window or text editor and you should now be able to use the keyboard case! &lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
Virtual keyboards such as &amp;lt;i&amp;gt;squeekboard&amp;lt;/i&amp;gt; are opening whenever a text field is selected.&lt;br /&gt;
&lt;br /&gt;
To disable this behavior under GNU/Linux running Phosh, you can run the following: &lt;br /&gt;
&lt;br /&gt;
To disable the virtual keyboard: &amp;lt;code&amp;gt;gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled false&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enable the virtual keyboard: &amp;lt;code&amp;gt;gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual keyboard needs to be activated before removing the keyboard case again.&lt;br /&gt;
&lt;br /&gt;
== Keyboard layout ==&lt;br /&gt;
The keyboard features a default layout (pictured below) created and agreed upon by the community. The keyboard layout can be altered using software as well as by physically repositioning keycaps. All keycaps, with the &amp;lt;u&amp;gt;exception&amp;lt;/u&amp;gt; of space and return keys, can be easily and safely relocated for alternative layouts corresponding to software settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;nolines&amp;quot; widths=&amp;quot;800px&amp;quot; heights=&amp;quot;400px&amp;quot;&amp;gt;&lt;br /&gt;
Image:Ppkb_layout2.png|The keyboard layout how the keys were originally intended&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Keyboard firmware ==&lt;br /&gt;
PinePhone’s keyboard firmware was developed independently by Ondřej Jirman as a free-of-charge contribution to PINE64. The firmware source code is freely and publicly available and you can modify it, and the supporting utilities, using common FOSS tools.  &lt;br /&gt;
&lt;br /&gt;
=== Firmware and supporting utilities ===&lt;br /&gt;
The design of the firmware allows the keys, modifier keys, and their combinations to be handled in virtually unlimited ways, without a need to flash a customized version of the firmware. Mapping of keys is defined at runtime, using the supporting utilities, and is not hardcoded in the firmware. Different keyboard layouts can be loaded dynamically to support various use cases.&lt;br /&gt;
&lt;br /&gt;
The repository that contains the source code of the firmware, supporting utilities and associated documentation is located at https://xnux.eu/pinephone-keyboard/.&lt;br /&gt;
&lt;br /&gt;
You are welcome to contribute patches and improvements to the firmware and the supporting utilities. A summary of firmware development history is available at https://xnux.eu/log/ alongside other development updates from the firmware author.&lt;br /&gt;
&lt;br /&gt;
Much time and effort went into the development of this firmware. If you wish to send a token of appreciation or support the development efforts in any way, please consider making a donation to the author via one of the methods listed at the bottom of this web page: https://xnux.eu/contribute.html.&lt;br /&gt;
&lt;br /&gt;
=== Firmware License ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Copyright (C) 2021 Ondřej Jirman &amp;lt;megi@xff.cz&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This program is free software: you can redistribute it and/or modify&lt;br /&gt;
it under the terms of the GNU General Public License as published by&lt;br /&gt;
the Free Software Foundation, with either version 3 of the License or&lt;br /&gt;
(at your discretion) any later version.&lt;br /&gt;
&lt;br /&gt;
This program is distributed in the hope that it will be useful,&lt;br /&gt;
but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &lt;br /&gt;
See GNU General Public License for more details.&lt;br /&gt;
&lt;br /&gt;
GNU General Public License http://www.gnu.org/licenses/&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Detailed keyboard specifications including schematics can be found on our Wiki: https://wiki.pine64.org/wiki/PinePhoneKeyboard&lt;br /&gt;
&lt;br /&gt;
Key hardware specifications:&lt;br /&gt;
* Dimensions (closed): 161 x 95 x 21.5mm&lt;br /&gt;
* Weights (without / with PinePhone mounted): ~ 191 / ~391 grams&lt;br /&gt;
* Number of keys: 54&lt;br /&gt;
* Number of rows: 5&lt;br /&gt;
** Keyboard IC: Keyboard IC: EM85F684A 8-bit microcontroller with 256 bytes RAM, 2048/ bytes XRAM; 16kB for user’s own firmware&lt;br /&gt;
* Battery capacity: 6000mAh (22.2Wh 3.7V)&lt;br /&gt;
* Charger input: 5V, 3A (15W)&lt;br /&gt;
** Charging and battery IC chip: IP5209 power management IC with charge indicate controller and boost converter&lt;br /&gt;
&lt;br /&gt;
== Safety ==&lt;br /&gt;
{{warning|1=Do NOT plug any power source into the phone USB-C port while the keyboard is attached. Doing so may result in damage or loss of the keyboard charging functionality.}}&lt;br /&gt;
{{warning|1=Do NOT lube the keyboard with GPL 205G0 switch grease. It can cause problems with the key responsiveness and tactility.}}&lt;br /&gt;
{{hint|Only use mild isopropyl alcohol when wiping down the clamshell of the device. Stronger solutions may partially strip the coatings.}}&lt;br /&gt;
&lt;br /&gt;
== Frequently asked questions ==&lt;br /&gt;
{{Under construction}}&lt;br /&gt;
&lt;br /&gt;
''' The keyboard does not work under OSK-SDL (full-disk encryption UI at boot) '''&amp;lt;br&amp;gt;&lt;br /&gt;
That is a known bug, see https://gitlab.com/postmarketOS/pmaports/-/issues/1383.&lt;br /&gt;
&lt;br /&gt;
''' What is the keyboard driver situation? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#drivers&lt;br /&gt;
&lt;br /&gt;
''' Are keyboard drivers included in my distribution? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#distros&lt;br /&gt;
&lt;br /&gt;
''' What's the status of the existing software for the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#sw-status&lt;br /&gt;
&lt;br /&gt;
''' My keyboard doesn't work (well)! '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#faq-ts&lt;br /&gt;
&lt;br /&gt;
''' How does charging work? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#charging&lt;br /&gt;
&lt;br /&gt;
''' What charger is best for the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#chargers&lt;br /&gt;
&lt;br /&gt;
''' How safe is the charger circuit in the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#safety&lt;br /&gt;
&lt;br /&gt;
''' Keyboard doesn't react to any key presses '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Keyboard works but top row of keys is less responsive '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Phone is not charging from the keyboard '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Phone is charging slowly from the keyboard battery '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://www.pine64.org/2022/01/11/pinephone-pro-explorer-edition-pre-orders-open-january-11/ Pre-order announcement]&lt;br /&gt;
* FAQ of the developer megous: https://xnux.eu/pinephone-keyboard/faq.html&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Keyboard&amp;diff=12332</id>
		<title>PinePhone (Pro) Keyboard</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Keyboard&amp;diff=12332"/>
		<updated>2022-01-26T02:18:13Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Safety */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under construction}}&lt;br /&gt;
&lt;br /&gt;
[[File:PP_KB_Front-1024x576.jpg|400px|thumb|right|Picture of the PinePhone (Pro) Keyboard]]&lt;br /&gt;
&lt;br /&gt;
The '''PinePhone (Pro) Keyboard Case''' is a case compatible with the [[PinePhone]] and [[PinePhone Pro]], adding a keyboard functionality to the phone. It features a clam-shell design and uses the pogo pins located on the smartphone’s midsection and attaches by replacing the default back cover. This add-on effectively turns the PinePhone (Pro) into a PDA with an in-built LTE modem.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
[[File:Ppkb_description.png|thumb|upright=1.2|]]&lt;br /&gt;
&lt;br /&gt;
The keyboard case works with both the PinePhone and PinePhone Pro and features a clam-shell design. It uses pogo pins located on the phone’s midsection and attaches by replacing the default back cover. When folded, the phone’s screen and the keyboard rest securely against each other. The hinge features a 180° design, which not only allows for two-hand typing on a surface but also for comfortable thumb-typing when fully extended. The etched keycaps can be easily relocated for alternate layouts such as AZERTY or QWERTZ. The keyboard case runs an [https://xff.cz/git/pinephone-keyboard/ open firmware], which means that anyone with the know-how can alter existing functions or add new ones. The bottom (keyboard) and top (phone) sections of the assembly are well-balanced thanks to the large, 6000mAh, internal battery capable of charging the PinePhone (Pro) during operation. The internal battery effectively triples the phone’s battery life. The internal keyboard battery can be manually toggled on/off and the keyboard’s battery charge level can be read in the supported OSes; the keyboard remains functional with the battery fully depleted.&lt;br /&gt;
&lt;br /&gt;
You do not lose access to the PinePhone (Pro)’s USB-C port, speaker, microphone, or any external features, such as volume and lock buttons, with the keyboard attached. There is also a cut-out for the camera, torch, and headphone jack. The USB-C port on the keyboard is capable of powering both the keyboard and PinePhone (Pro) simultaneously. This means that you can plug in a USB mouse, a USB-C dongle, or some other peripheral while the phone and keyboard’s internal battery charge. Please keep in mind that the keyboard case transforms the PinePhone (Pro) into a PDA, which means that taking calls will likely prove awkward without a wired or wireless headset connected.&lt;br /&gt;
&lt;br /&gt;
=== Mounting the keyboard ===&lt;br /&gt;
Power OFF your PinePhone and remove the back case. To remove the back case of the PinePhone use your fingernail or another soft object to pry up the back case. A notch to easily remove the cover is located at the bottom left of the PinePhone with the backcover facing the user. &lt;br /&gt;
&lt;br /&gt;
Open and place the keyboard flat on a hard surface with the hinge fully extended. Proceed to insert the PinePhone into the keyboard at an angle of approx. 15 degrees. Make sure that the PinePhone’s pogo pins and the corresponding pads ① on the keyboard are aligned. The leading edge with volume and power buttons should make contact first. Firmly press the PinePhone into place. Multiple clicks should be heard as the two snap into place. Pay special attention to the plastic pin below the camera hole. Firmly push from the rear, below the camera hole, to click it into position. Failing to do so may cause an insufficient pin contact and prevent the case from charging the phone.&lt;br /&gt;
&lt;br /&gt;
The PinePhone can be removed from the keyboard easily using a notch similar to the one found on the back case. The notch is located at the bottom of the leading edge with the power and volume buttons.&lt;br /&gt;
&lt;br /&gt;
=== Keyboard and internal battery operation ===&lt;br /&gt;
The keyboard will function automatically once a PinePhone running a compatible operating system is mounted. For alterations to physical layout and firmware see the relevant sections respectively.&lt;br /&gt;
&lt;br /&gt;
The keyboard features an in-built 6000mAh battery. The battery can be turned ON/OFF using the button on the right leading edge of the keyboard ②. A short button press activates the internal battery while a long (15 seconds) press deactivates it. Compatible operating systems display both the PinePhone’s and keyboard’s battery status.&lt;br /&gt;
&lt;br /&gt;
You should charge the PinePhone and the keyboard &amp;lt;u&amp;gt;only&amp;lt;/u&amp;gt; using the USB-C ③ port on the keyboard. The keyboard’s USB-C port cannot be used for peripherals. The PinePhone’s USB-C port remains operational when mounted in the keyboard and can be used for data and peripherals.&lt;br /&gt;
&lt;br /&gt;
=== Keyboard quick start guide user manual ===&lt;br /&gt;
The official keyboard Quick Start User Manual can be downloaded below. &lt;br /&gt;
Please read the manual in its entirety prior to use. &lt;br /&gt;
* [https://wiki.pine64.org/wiki/File:USER_MANUAL-KEYBOARD-V2-EN-DE-FR-ES.pdf The official keyboard manual]&lt;br /&gt;
&lt;br /&gt;
== Software support ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel-space driver ===&lt;br /&gt;
&lt;br /&gt;
Kernel driver implementation from Samuel Holland: ip5xxx_power and kb151 https://github.com/smaeul/linux/commits/wip/pp-keyboard&lt;br /&gt;
&lt;br /&gt;
=== User-space driver ===&lt;br /&gt;
The user-space driver is available [https://xff.cz/git/pinephone-keyboard/ here]. Use git to clone the repository. You're going to need sdcc 4.1+ installed to build it, so use your package manager to install that first. Next you'll cd into the directory you cloned pinephone-keyboard and use the command &amp;quot;make&amp;quot; to build. After the build is completed, cd into the build directory and you'll notice several new files starting with ppkb-. To use your keyboard case, you'll want to run the following command: &amp;lt;code&amp;gt;sudo ./ppkb-i2c-inputd&amp;lt;/code&amp;gt; &amp;lt;!-- this isn't running as a daemon, if anyone knows how to make it do so please edit that info in! --&amp;gt; Open something you can type into like a new terminal window or text editor and you should now be able to use the keyboard case! &lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
Virtual keyboards such as &amp;lt;i&amp;gt;squeekboard&amp;lt;/i&amp;gt; are opening whenever a text field is selected.&lt;br /&gt;
&lt;br /&gt;
To disable this behavior under GNU/Linux running Phosh, you can run the following: &lt;br /&gt;
&lt;br /&gt;
To disable the virtual keyboard: &amp;lt;code&amp;gt;gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled false&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enable the virtual keyboard: &amp;lt;code&amp;gt;gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual keyboard needs to be activated before removing the keyboard case again.&lt;br /&gt;
&lt;br /&gt;
== Keyboard layout ==&lt;br /&gt;
The keyboard features a default layout (pictured below) created and agreed upon by the community. The keyboard layout can be altered using software as well as by physically repositioning keycaps. All keycaps, with the &amp;lt;u&amp;gt;exception&amp;lt;/u&amp;gt; of space and return keys, can be easily and safely relocated for alternative layouts corresponding to software settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;nolines&amp;quot; widths=&amp;quot;800px&amp;quot; heights=&amp;quot;400px&amp;quot;&amp;gt;&lt;br /&gt;
Image:Ppkb_layout2.png|The keyboard layout how the keys were originally intended&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Keyboard firmware ==&lt;br /&gt;
PinePhone’s keyboard firmware was developed independently by Ondřej Jirman as a free-of-charge contribution to PINE64. The firmware source code is freely and publicly available and you can modify it, and the supporting utilities, using common FOSS tools.  &lt;br /&gt;
&lt;br /&gt;
=== Firmware and supporting utilities ===&lt;br /&gt;
The design of the firmware allows the keys, modifier keys, and their combinations to be handled in virtually unlimited ways, without a need to flash a customized version of the firmware. Mapping of keys is defined at runtime, using the supporting utilities, and is not hardcoded in the firmware. Different keyboard layouts can be loaded dynamically to support various use cases.&lt;br /&gt;
&lt;br /&gt;
The repository that contains the source code of the firmware, supporting utilities and associated documentation is located at https://xnux.eu/pinephone-keyboard/.&lt;br /&gt;
&lt;br /&gt;
You are welcome to contribute patches and improvements to the firmware and the supporting utilities. A summary of firmware development history is available at https://xnux.eu/log/ alongside other development updates from the firmware author.&lt;br /&gt;
&lt;br /&gt;
Much time and effort went into the development of this firmware. If you wish to send a token of appreciation or support the development efforts in any way, please consider making a donation to the author via one of the methods listed at the bottom of this web page: https://xnux.eu/contribute.html.&lt;br /&gt;
&lt;br /&gt;
=== Firmware License ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Copyright (C) 2021 Ondřej Jirman &amp;lt;megi@xff.cz&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This program is free software: you can redistribute it and/or modify&lt;br /&gt;
it under the terms of the GNU General Public License as published by&lt;br /&gt;
the Free Software Foundation, with either version 3 of the License or&lt;br /&gt;
(at your discretion) any later version.&lt;br /&gt;
&lt;br /&gt;
This program is distributed in the hope that it will be useful,&lt;br /&gt;
but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &lt;br /&gt;
See GNU General Public License for more details.&lt;br /&gt;
&lt;br /&gt;
GNU General Public License http://www.gnu.org/licenses/&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Detailed keyboard specifications including schematics can be found on our Wiki: https://wiki.pine64.org/wiki/PinePhoneKeyboard&lt;br /&gt;
&lt;br /&gt;
Key hardware specifications:&lt;br /&gt;
* Dimensions (closed): 161 x 95 x 21.5mm&lt;br /&gt;
* Weights (without / with PinePhone mounted): ~ 191 / ~391 grams&lt;br /&gt;
* Number of keys: 54&lt;br /&gt;
* Number of rows: 5&lt;br /&gt;
** Keyboard IC: Keyboard IC: EM85F684A 8-bit microcontroller with 256 bytes RAM, 2048/ bytes XRAM; 16kB for user’s own firmware&lt;br /&gt;
* Battery capacity: 6000mAh (22.2Wh 3.7V)&lt;br /&gt;
* Charger input: 5V, 3A (15W)&lt;br /&gt;
** Charging and battery IC chip: IP5209 power management IC with charge indicate controller and boost converter&lt;br /&gt;
&lt;br /&gt;
== Safety ==&lt;br /&gt;
{{warning|1=Do NOT plug any power source into the phone USB-C port while the keyboard is attached. Doing so may result in damage or loss of the keyboard charging functionality}}&lt;br /&gt;
{{warning|1=Do NOT lube the keyboard with GPL 205G0 switch grease. It can cause problems with the key responsiveness and tactility.}}&lt;br /&gt;
{{hint|Only use mild isopropyl alcohol when wiping down the clamshell of the device. Stronger solutions may partially strip the coatings.}}&lt;br /&gt;
&lt;br /&gt;
== Frequently asked questions ==&lt;br /&gt;
{{Under construction}}&lt;br /&gt;
&lt;br /&gt;
''' The keyboard does not work under OSK-SDL (full-disk encryption UI at boot) '''&amp;lt;br&amp;gt;&lt;br /&gt;
That is a known bug, see https://gitlab.com/postmarketOS/pmaports/-/issues/1383.&lt;br /&gt;
&lt;br /&gt;
''' What is the keyboard driver situation? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#drivers&lt;br /&gt;
&lt;br /&gt;
''' Are keyboard drivers included in my distribution? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#distros&lt;br /&gt;
&lt;br /&gt;
''' What's the status of the existing software for the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#sw-status&lt;br /&gt;
&lt;br /&gt;
''' My keyboard doesn't work (well)! '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#faq-ts&lt;br /&gt;
&lt;br /&gt;
''' How does charging work? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#charging&lt;br /&gt;
&lt;br /&gt;
''' What charger is best for the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#chargers&lt;br /&gt;
&lt;br /&gt;
''' How safe is the charger circuit in the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#safety&lt;br /&gt;
&lt;br /&gt;
''' Keyboard doesn't react to any key presses '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Keyboard works but top row of keys is less responsive '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Phone is not charging from the keyboard '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Phone is charging slowly from the keyboard battery '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://www.pine64.org/2022/01/11/pinephone-pro-explorer-edition-pre-orders-open-january-11/ Pre-order announcement]&lt;br /&gt;
* FAQ of the developer megous: https://xnux.eu/pinephone-keyboard/faq.html&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Keyboard&amp;diff=12331</id>
		<title>PinePhone (Pro) Keyboard</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Keyboard&amp;diff=12331"/>
		<updated>2022-01-26T02:16:42Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under construction}}&lt;br /&gt;
&lt;br /&gt;
[[File:PP_KB_Front-1024x576.jpg|400px|thumb|right|Picture of the PinePhone (Pro) Keyboard]]&lt;br /&gt;
&lt;br /&gt;
The '''PinePhone (Pro) Keyboard Case''' is a case compatible with the [[PinePhone]] and [[PinePhone Pro]], adding a keyboard functionality to the phone. It features a clam-shell design and uses the pogo pins located on the smartphone’s midsection and attaches by replacing the default back cover. This add-on effectively turns the PinePhone (Pro) into a PDA with an in-built LTE modem.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
[[File:Ppkb_description.png|thumb|upright=1.2|]]&lt;br /&gt;
&lt;br /&gt;
The keyboard case works with both the PinePhone and PinePhone Pro and features a clam-shell design. It uses pogo pins located on the phone’s midsection and attaches by replacing the default back cover. When folded, the phone’s screen and the keyboard rest securely against each other. The hinge features a 180° design, which not only allows for two-hand typing on a surface but also for comfortable thumb-typing when fully extended. The etched keycaps can be easily relocated for alternate layouts such as AZERTY or QWERTZ. The keyboard case runs an [https://xff.cz/git/pinephone-keyboard/ open firmware], which means that anyone with the know-how can alter existing functions or add new ones. The bottom (keyboard) and top (phone) sections of the assembly are well-balanced thanks to the large, 6000mAh, internal battery capable of charging the PinePhone (Pro) during operation. The internal battery effectively triples the phone’s battery life. The internal keyboard battery can be manually toggled on/off and the keyboard’s battery charge level can be read in the supported OSes; the keyboard remains functional with the battery fully depleted.&lt;br /&gt;
&lt;br /&gt;
You do not lose access to the PinePhone (Pro)’s USB-C port, speaker, microphone, or any external features, such as volume and lock buttons, with the keyboard attached. There is also a cut-out for the camera, torch, and headphone jack. The USB-C port on the keyboard is capable of powering both the keyboard and PinePhone (Pro) simultaneously. This means that you can plug in a USB mouse, a USB-C dongle, or some other peripheral while the phone and keyboard’s internal battery charge. Please keep in mind that the keyboard case transforms the PinePhone (Pro) into a PDA, which means that taking calls will likely prove awkward without a wired or wireless headset connected.&lt;br /&gt;
&lt;br /&gt;
=== Mounting the keyboard ===&lt;br /&gt;
Power OFF your PinePhone and remove the back case. To remove the back case of the PinePhone use your fingernail or another soft object to pry up the back case. A notch to easily remove the cover is located at the bottom left of the PinePhone with the backcover facing the user. &lt;br /&gt;
&lt;br /&gt;
Open and place the keyboard flat on a hard surface with the hinge fully extended. Proceed to insert the PinePhone into the keyboard at an angle of approx. 15 degrees. Make sure that the PinePhone’s pogo pins and the corresponding pads ① on the keyboard are aligned. The leading edge with volume and power buttons should make contact first. Firmly press the PinePhone into place. Multiple clicks should be heard as the two snap into place. Pay special attention to the plastic pin below the camera hole. Firmly push from the rear, below the camera hole, to click it into position. Failing to do so may cause an insufficient pin contact and prevent the case from charging the phone.&lt;br /&gt;
&lt;br /&gt;
The PinePhone can be removed from the keyboard easily using a notch similar to the one found on the back case. The notch is located at the bottom of the leading edge with the power and volume buttons.&lt;br /&gt;
&lt;br /&gt;
=== Keyboard and internal battery operation ===&lt;br /&gt;
The keyboard will function automatically once a PinePhone running a compatible operating system is mounted. For alterations to physical layout and firmware see the relevant sections respectively.&lt;br /&gt;
&lt;br /&gt;
The keyboard features an in-built 6000mAh battery. The battery can be turned ON/OFF using the button on the right leading edge of the keyboard ②. A short button press activates the internal battery while a long (15 seconds) press deactivates it. Compatible operating systems display both the PinePhone’s and keyboard’s battery status.&lt;br /&gt;
&lt;br /&gt;
You should charge the PinePhone and the keyboard &amp;lt;u&amp;gt;only&amp;lt;/u&amp;gt; using the USB-C ③ port on the keyboard. The keyboard’s USB-C port cannot be used for peripherals. The PinePhone’s USB-C port remains operational when mounted in the keyboard and can be used for data and peripherals.&lt;br /&gt;
&lt;br /&gt;
=== Keyboard quick start guide user manual ===&lt;br /&gt;
The official keyboard Quick Start User Manual can be downloaded below. &lt;br /&gt;
Please read the manual in its entirety prior to use. &lt;br /&gt;
* [https://wiki.pine64.org/wiki/File:USER_MANUAL-KEYBOARD-V2-EN-DE-FR-ES.pdf The official keyboard manual]&lt;br /&gt;
&lt;br /&gt;
== Software support ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel-space driver ===&lt;br /&gt;
&lt;br /&gt;
Kernel driver implementation from Samuel Holland: ip5xxx_power and kb151 https://github.com/smaeul/linux/commits/wip/pp-keyboard&lt;br /&gt;
&lt;br /&gt;
=== User-space driver ===&lt;br /&gt;
The user-space driver is available [https://xff.cz/git/pinephone-keyboard/ here]. Use git to clone the repository. You're going to need sdcc 4.1+ installed to build it, so use your package manager to install that first. Next you'll cd into the directory you cloned pinephone-keyboard and use the command &amp;quot;make&amp;quot; to build. After the build is completed, cd into the build directory and you'll notice several new files starting with ppkb-. To use your keyboard case, you'll want to run the following command: &amp;lt;code&amp;gt;sudo ./ppkb-i2c-inputd&amp;lt;/code&amp;gt; &amp;lt;!-- this isn't running as a daemon, if anyone knows how to make it do so please edit that info in! --&amp;gt; Open something you can type into like a new terminal window or text editor and you should now be able to use the keyboard case! &lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
Virtual keyboards such as &amp;lt;i&amp;gt;squeekboard&amp;lt;/i&amp;gt; are opening whenever a text field is selected.&lt;br /&gt;
&lt;br /&gt;
To disable this behavior under GNU/Linux running Phosh, you can run the following: &lt;br /&gt;
&lt;br /&gt;
To disable the virtual keyboard: &amp;lt;code&amp;gt;gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled false&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enable the virtual keyboard: &amp;lt;code&amp;gt;gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual keyboard needs to be activated before removing the keyboard case again.&lt;br /&gt;
&lt;br /&gt;
== Keyboard layout ==&lt;br /&gt;
The keyboard features a default layout (pictured below) created and agreed upon by the community. The keyboard layout can be altered using software as well as by physically repositioning keycaps. All keycaps, with the &amp;lt;u&amp;gt;exception&amp;lt;/u&amp;gt; of space and return keys, can be easily and safely relocated for alternative layouts corresponding to software settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;nolines&amp;quot; widths=&amp;quot;800px&amp;quot; heights=&amp;quot;400px&amp;quot;&amp;gt;&lt;br /&gt;
Image:Ppkb_layout2.png|The keyboard layout how the keys were originally intended&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Keyboard firmware ==&lt;br /&gt;
PinePhone’s keyboard firmware was developed independently by Ondřej Jirman as a free-of-charge contribution to PINE64. The firmware source code is freely and publicly available and you can modify it, and the supporting utilities, using common FOSS tools.  &lt;br /&gt;
&lt;br /&gt;
=== Firmware and supporting utilities ===&lt;br /&gt;
The design of the firmware allows the keys, modifier keys, and their combinations to be handled in virtually unlimited ways, without a need to flash a customized version of the firmware. Mapping of keys is defined at runtime, using the supporting utilities, and is not hardcoded in the firmware. Different keyboard layouts can be loaded dynamically to support various use cases.&lt;br /&gt;
&lt;br /&gt;
The repository that contains the source code of the firmware, supporting utilities and associated documentation is located at https://xnux.eu/pinephone-keyboard/.&lt;br /&gt;
&lt;br /&gt;
You are welcome to contribute patches and improvements to the firmware and the supporting utilities. A summary of firmware development history is available at https://xnux.eu/log/ alongside other development updates from the firmware author.&lt;br /&gt;
&lt;br /&gt;
Much time and effort went into the development of this firmware. If you wish to send a token of appreciation or support the development efforts in any way, please consider making a donation to the author via one of the methods listed at the bottom of this web page: https://xnux.eu/contribute.html.&lt;br /&gt;
&lt;br /&gt;
=== Firmware License ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Copyright (C) 2021 Ondřej Jirman &amp;lt;megi@xff.cz&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This program is free software: you can redistribute it and/or modify&lt;br /&gt;
it under the terms of the GNU General Public License as published by&lt;br /&gt;
the Free Software Foundation, with either version 3 of the License or&lt;br /&gt;
(at your discretion) any later version.&lt;br /&gt;
&lt;br /&gt;
This program is distributed in the hope that it will be useful,&lt;br /&gt;
but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &lt;br /&gt;
See GNU General Public License for more details.&lt;br /&gt;
&lt;br /&gt;
GNU General Public License http://www.gnu.org/licenses/&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Detailed keyboard specifications including schematics can be found on our Wiki: https://wiki.pine64.org/wiki/PinePhoneKeyboard&lt;br /&gt;
&lt;br /&gt;
Key hardware specifications:&lt;br /&gt;
* Dimensions (closed): 161 x 95 x 21.5mm&lt;br /&gt;
* Weights (without / with PinePhone mounted): ~ 191 / ~391 grams&lt;br /&gt;
* Number of keys: 54&lt;br /&gt;
* Number of rows: 5&lt;br /&gt;
** Keyboard IC: Keyboard IC: EM85F684A 8-bit microcontroller with 256 bytes RAM, 2048/ bytes XRAM; 16kB for user’s own firmware&lt;br /&gt;
* Battery capacity: 6000mAh (22.2Wh 3.7V)&lt;br /&gt;
* Charger input: 5V, 3A (15W)&lt;br /&gt;
** Charging and battery IC chip: IP5209 power management IC with charge indicate controller and boost converter&lt;br /&gt;
&lt;br /&gt;
== Safety ==&lt;br /&gt;
{{warning|1=Do NOT lube the keyboard with GPL 205G0 switch grease. It can cause problems with the key responsiveness and tactility.}}&lt;br /&gt;
{{hint|Only use mild isopropyl alcohol when wiping down the clamshell of the device. Stronger solutions may partially strip the coatings.}}&lt;br /&gt;
&lt;br /&gt;
== Frequently asked questions ==&lt;br /&gt;
{{Under construction}}&lt;br /&gt;
&lt;br /&gt;
''' The keyboard does not work under OSK-SDL (full-disk encryption UI at boot) '''&amp;lt;br&amp;gt;&lt;br /&gt;
That is a known bug, see https://gitlab.com/postmarketOS/pmaports/-/issues/1383.&lt;br /&gt;
&lt;br /&gt;
''' What is the keyboard driver situation? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#drivers&lt;br /&gt;
&lt;br /&gt;
''' Are keyboard drivers included in my distribution? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#distros&lt;br /&gt;
&lt;br /&gt;
''' What's the status of the existing software for the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#sw-status&lt;br /&gt;
&lt;br /&gt;
''' My keyboard doesn't work (well)! '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#faq-ts&lt;br /&gt;
&lt;br /&gt;
''' How does charging work? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#charging&lt;br /&gt;
&lt;br /&gt;
''' What charger is best for the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#chargers&lt;br /&gt;
&lt;br /&gt;
''' How safe is the charger circuit in the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#safety&lt;br /&gt;
&lt;br /&gt;
''' Keyboard doesn't react to any key presses '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Keyboard works but top row of keys is less responsive '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Phone is not charging from the keyboard '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Phone is charging slowly from the keyboard battery '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://www.pine64.org/2022/01/11/pinephone-pro-explorer-edition-pre-orders-open-january-11/ Pre-order announcement]&lt;br /&gt;
* FAQ of the developer megous: https://xnux.eu/pinephone-keyboard/faq.html&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Add-ons&amp;diff=12212</id>
		<title>PinePhone (Pro) Add-ons</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Add-ons&amp;diff=12212"/>
		<updated>2022-01-09T04:30:35Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PP_KB_Front-1024x576.jpg|400px|thumb|right|Rendering of the PinePhone (Pro) Keyboard]]&lt;br /&gt;
&lt;br /&gt;
== Keyboard Addon ==&lt;br /&gt;
&lt;br /&gt;
The keyboard case works with both the PinePhone and PinePhone Pro and features a clam-shell design. It uses pogo pins located on the phone’s midsection and attaches by replacing the default back cover. When folded, the phone’s screen and the keyboard rest securely against each other. The hinge features a 180° design, which not only allows for two-hand typing on a surface but also for comfortable thumb-typing when fully extended. The etched keycaps can be easily relocated for alternate layouts such as AZERTY or QWERTZ. The keyboard case runs an [https://xff.cz/git/pinephone-keyboard/ open firmware], which means that anyone with the know-how can alter existing functions or add new ones. The bottom (keyboard) and top (phone) sections of the assembly are well-balanced thanks to the large, 6000mAh, internal battery capable of charging the PinePhone (Pro) during operation. The internal battery effectively triples the phone’s battery life. The internal keyboard battery can be manually toggled on/off and the keyboard’s battery charge level can be read in the supported OSes; the keyboard remains functional with the battery fully depleted.&lt;br /&gt;
&lt;br /&gt;
You do not lose access to the PinePhone (Pro)’s USB-C port, speaker, microphone, or any external features, such as volume and lock buttons, with the keyboard attached. There is also a cut-out for the camera, torch, and headphone jack. The USB-C port on the keyboard is capable of powering both the keyboard and PinePhone (Pro) simultaneously. This means that you can plug in a USB mouse, a USB-C dongle, or some other peripheral while the phone and keyboard’s internal battery charge. Please keep in mind that the keyboard case transforms the PinePhone (Pro) into a PDA, which means that taking calls will likely prove awkward without a wired or wireless headset connected.&lt;br /&gt;
&lt;br /&gt;
== LoRa Addon ==&lt;br /&gt;
&lt;br /&gt;
[[File:PP LoRa.jpg|250px|Picture of the PinePhone (Pro) LoRa addon]]&lt;br /&gt;
&lt;br /&gt;
Uses the pogo pins to interface a Semtech SX1262 LoRa module with the PinePhone (Pro).&lt;br /&gt;
&lt;br /&gt;
{{note|Software for receiving and sending LoRa messages with this back cover does exist, however no PinePhone operating system has added support for it yet.}}&lt;br /&gt;
&lt;br /&gt;
== Qi Wireless Charging Addon ==&lt;br /&gt;
&lt;br /&gt;
[[File:PinePhone-Wireless-charger.jpg|250px|Picture of the PinePhone (Pro) wireless charging addon]]&lt;br /&gt;
&lt;br /&gt;
Uses the pogo pins to supply Qi Wireless and Wireless Power Consortium compatible charging. No software required.&lt;br /&gt;
&lt;br /&gt;
== Fingerprint Reader Addon ==&lt;br /&gt;
&lt;br /&gt;
[[File:PinePhone-FP-Addon.jpg|250px|Picture of the PinePhone (Pro) fingerprint reader addon]]&lt;br /&gt;
&lt;br /&gt;
Uses the pogo pins to interface a high quality fingerprint sensor, which uses open firmware for it's i2c bridge, and can also be used for gesture navigation thanks to it's ability to detect directional swipes.&lt;br /&gt;
&lt;br /&gt;
{{note|No PinePhone operating system has added support for the fingerprint reader yet.}}&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Add-ons&amp;diff=12211</id>
		<title>PinePhone (Pro) Add-ons</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Add-ons&amp;diff=12211"/>
		<updated>2022-01-09T04:27:21Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PP_KB_Front-1024x576.jpg|400px|thumb|right|Rendering of the PinePhone (Pro) Keyboard]]&lt;br /&gt;
&lt;br /&gt;
== Keyboard Addon ==&lt;br /&gt;
&lt;br /&gt;
The keyboard case works with both the PinePhone and PinePhone Pro and features a clam-shell design. It uses pogo pins located on the phone’s midsection and attaches by replacing the default back cover. When folded, the phone’s screen and the keyboard rest securely against each other. The hinge features a 180° design, which not only allows for two-hand typing on a surface but also for comfortable thumb-typing when fully extended. The etched keycaps can be easily relocated for alternate layouts such as AZERTY or QWERTZ. The keyboard case runs an [https://xff.cz/git/pinephone-keyboard/ open firmware], which means that anyone with the know-how can alter existing functions or add new ones. The bottom (keyboard) and top (phone) sections of the assembly are well-balanced thanks to the large, 6000mAh, internal battery capable of charging the PinePhone (Pro) during operation. The internal battery effectively triples the phone’s battery life. The internal keyboard battery can be manually toggled on/off and the keyboard’s battery charge level can be read in the supported OSes; the keyboard remains functional with the battery fully depleted.&lt;br /&gt;
&lt;br /&gt;
You do not lose access to the PinePhone (Pro)’s USB-C port, speaker, microphone, or any external features, such as volume and lock buttons, with the keyboard attached. There is also a cut-out for the camera, torch, and headphone jack. The USB-C port on the keyboard is capable of powering both the keyboard and PinePhone (Pro) simultaneously. This means that you can plug in a USB mouse, a USB-C dongle, or some other peripheral while the phone and keyboard’s internal battery charge. Please keep in mind that the keyboard case transforms the PinePhone (Pro) into a PDA, which means that taking calls will likely prove awkward without a wired or wireless headset connected.&lt;br /&gt;
&lt;br /&gt;
== LoRa Addon ==&lt;br /&gt;
&lt;br /&gt;
[[File:PP LoRa.jpg|250px|thumb|right|Picture of the PinePhone (Pro) LoRa addon]]&lt;br /&gt;
&lt;br /&gt;
Uses the pogo pins to interface a Semtech SX1262 LoRa module with the PinePhone (Pro).&lt;br /&gt;
&lt;br /&gt;
{{note|Software for receiving and sending LoRa messages with this back cover does exist, however no PinePhone operating system has added support for it yet.}}&lt;br /&gt;
&lt;br /&gt;
== Qi Wireless Charging Addon ==&lt;br /&gt;
&lt;br /&gt;
[[File:PinePhone-Wireless-charger.jpg|250px|thumb|right|Picture of the PinePhone (Pro) wireless charging addon]]&lt;br /&gt;
&lt;br /&gt;
Uses the pogo pins to supply Qi Wireless and Wireless Power Consortium compatible charging. No software required.&lt;br /&gt;
&lt;br /&gt;
== Fingerprint Reader Addon ==&lt;br /&gt;
&lt;br /&gt;
[[File:PinePhone-FP-Addon.jpg|250px|thumb|right|Picture of the PinePhone (Pro) fingerprint reader addon]]&lt;br /&gt;
&lt;br /&gt;
Uses the pogo pins to interface a high quality fingerprint sensor, which uses open firmware for it's i2c bridge, and can also be used for gesture navigation thanks to it's ability to detect directional swipes.&lt;br /&gt;
&lt;br /&gt;
{{note|No PinePhone operating system has added support for the fingerprint reader yet.}}&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Add-ons&amp;diff=12210</id>
		<title>PinePhone (Pro) Add-ons</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Add-ons&amp;diff=12210"/>
		<updated>2022-01-09T04:22:24Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PP_KB_Front-1024x576.jpg|400px|thumb|right|Rendering of the PinePhone (Pro) Keyboard]]&lt;br /&gt;
&lt;br /&gt;
== Keyboard Addon ==&lt;br /&gt;
&lt;br /&gt;
The keyboard case works with both the PinePhone and PinePhone Pro and features a clam-shell design. It uses pogo pins located on the phone’s midsection and attaches by replacing the default back cover. When folded, the phone’s screen and the keyboard rest securely against each other. The hinge features a 180° design, which not only allows for two-hand typing on a surface but also for comfortable thumb-typing when fully extended. The etched keycaps can be easily relocated for alternate layouts such as AZERTY or QWERTZ. The keyboard case runs an open firmware, which means that anyone with the know-how can alter existing functions or add new ones. The bottom (keyboard) and top (phone) sections of the assembly are well-balanced thanks to the large, 6000mAh, internal battery capable of charging the PinePhone (Pro) during operation. The internal battery effectively triples the phone’s battery life. The internal keyboard battery can be manually toggled on/off and the keyboard’s battery charge level can be read in the supported OSes; the keyboard remains functional with the battery fully depleted.&lt;br /&gt;
&lt;br /&gt;
You do not lose access to the PinePhone (Pro)’s USB-C port, speaker, microphone, or any external features, such as volume and lock buttons, with the keyboard attached. There is also a cut-out for the camera, torch, and headphone jack. The USB-C port on the keyboard is capable of powering both the keyboard and PinePhone (Pro) simultaneously. This means that you can plug in a USB mouse, a USB-C dongle, or some other peripheral while the phone and keyboard’s internal battery charge. Please keep in mind that the keyboard case transforms the PinePhone (Pro) into a PDA, which means that taking calls will likely prove awkward without a wired or wireless headset connected.&lt;br /&gt;
&lt;br /&gt;
== LoRa Addon ==&lt;br /&gt;
&lt;br /&gt;
[[File:PP LoRa.jpg|250px|thumb|right|Picture of the PinePhone (Pro) LoRa addon]]&lt;br /&gt;
&lt;br /&gt;
Uses the pogo pins to interface a Semtech SX1262 LoRa module with the PinePhone (Pro).&lt;br /&gt;
&lt;br /&gt;
{{note|Software for receiving and sending LoRa messages with this back cover does exist, however no PinePhone operating system has added support for it yet.}}&lt;br /&gt;
&lt;br /&gt;
== Qi Wireless Charging Addon ==&lt;br /&gt;
&lt;br /&gt;
[[File:PinePhone-Wireless-charger.jpg|250px|thumb|right|Picture of the PinePhone (Pro) wireless charging addon]]&lt;br /&gt;
&lt;br /&gt;
Uses the pogo pins to supply Qi Wireless and Wireless Power Consortium compatible charging. No software required.&lt;br /&gt;
&lt;br /&gt;
== Fingerprint Reader Addon ==&lt;br /&gt;
&lt;br /&gt;
[[File:PinePhone-FP-Addon.jpg|250px|thumb|right|Picture of the PinePhone (Pro) fingerprint reader addon]]&lt;br /&gt;
&lt;br /&gt;
Uses the pogo pins to interface a high quality fingerprint sensor, which uses open firmware for it's i2c bridge, and can also be used for gesture navigation thanks to it's ability to detect directional swipes.&lt;br /&gt;
&lt;br /&gt;
{{note|No PinePhone operating system has added support for the fingerprint reader yet.}}&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=File:PinePhone-Wireless-charger.jpg&amp;diff=12209</id>
		<title>File:PinePhone-Wireless-charger.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=File:PinePhone-Wireless-charger.jpg&amp;diff=12209"/>
		<updated>2022-01-09T04:21:04Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=File:PinePhone-FP-Addon.jpg&amp;diff=12208</id>
		<title>File:PinePhone-FP-Addon.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=File:PinePhone-FP-Addon.jpg&amp;diff=12208"/>
		<updated>2022-01-09T04:20:08Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=File:FP-PP-addon.jpg&amp;diff=12207</id>
		<title>File:FP-PP-addon.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=File:FP-PP-addon.jpg&amp;diff=12207"/>
		<updated>2022-01-09T04:18:03Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Add-ons&amp;diff=12206</id>
		<title>PinePhone (Pro) Add-ons</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Add-ons&amp;diff=12206"/>
		<updated>2022-01-09T04:17:25Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PP_KB_Front-1024x576.jpg|400px|thumb|right|Rendering of the PinePhone (Pro) Keyboard]]&lt;br /&gt;
&lt;br /&gt;
== Keyboard Addon ==&lt;br /&gt;
&lt;br /&gt;
The keyboard case works with both the PinePhone and PinePhone Pro and features a clam-shell design. It uses pogo pins located on the phone’s midsection and attaches by replacing the default back cover. When folded, the phone’s screen and the keyboard rest securely against each other. The hinge features a 180° design, which not only allows for two-hand typing on a surface but also for comfortable thumb-typing when fully extended. The etched keycaps can be easily relocated for alternate layouts such as AZERTY or QWERTZ. The keyboard case runs an open firmware, which means that anyone with the know-how can alter existing functions or add new ones. The bottom (keyboard) and top (phone) sections of the assembly are well-balanced thanks to the large, 6000mAh, internal battery capable of charging the PinePhone (Pro) during operation. The internal battery effectively triples the phone’s battery life. The internal keyboard battery can be manually toggled on/off and the keyboard’s battery charge level can be read in the supported OSes; the keyboard remains functional with the battery fully depleted.&lt;br /&gt;
&lt;br /&gt;
You do not lose access to the PinePhone (Pro)’s USB-C port, speaker, microphone, or any external features, such as volume and lock buttons, with the keyboard attached. There is also a cut-out for the camera, torch, and headphone jack. The USB-C port on the keyboard is capable of powering both the keyboard and PinePhone (Pro) simultaneously. This means that you can plug in a USB mouse, a USB-C dongle, or some other peripheral while the phone and keyboard’s internal battery charge. Please keep in mind that the keyboard case transforms the PinePhone (Pro) into a PDA, which means that taking calls will likely prove awkward without a wired or wireless headset connected.&lt;br /&gt;
&lt;br /&gt;
== LoRa Addon ==&lt;br /&gt;
&lt;br /&gt;
[[File:PP LoRa.jpg|400px|thumb|right|Picture of the PinePhone (Pro) LoRa addon]]&lt;br /&gt;
&lt;br /&gt;
Uses the pogo pins to interface a Semtech SX1262 LoRa module with the PinePhone (Pro).&lt;br /&gt;
&lt;br /&gt;
{{note|Software for receiving and sending LoRa messages with this back cover does exist, however no PinePhone operating system has added support for it yet.}}&lt;br /&gt;
&lt;br /&gt;
== Qi Wireless Charging Addon ==&lt;br /&gt;
&lt;br /&gt;
Uses the pogo pins to supply Qi Wireless and Wireless Power Consortium compatible charging. No software required.&lt;br /&gt;
&lt;br /&gt;
== Fingerprint Reader Addon ==&lt;br /&gt;
&lt;br /&gt;
Uses the pogo pins to interface a high quality fingerprint sensor, which uses open firmware for it's i2c bridge, and can also be used for gesture navigation thanks to it's ability to detect directional swipes.&lt;br /&gt;
&lt;br /&gt;
{{note|No PinePhone operating system has added support for the fingerprint reader yet.}}&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Add-ons&amp;diff=12205</id>
		<title>PinePhone (Pro) Add-ons</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Add-ons&amp;diff=12205"/>
		<updated>2022-01-09T04:13:28Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PP_KB_Front-1024x576.jpg|400px|thumb|right|Rendering of the PinePhone (Pro) Keyboard]]&lt;br /&gt;
&lt;br /&gt;
== Keyboard Addon ==&lt;br /&gt;
&lt;br /&gt;
The keyboard case works with both the PinePhone and PinePhone Pro and features a clam-shell design. It uses pogo pins located on the phone’s midsection and attaches by replacing the default back cover. When folded, the phone’s screen and the keyboard rest securely against each other. The hinge features a 180° design, which not only allows for two-hand typing on a surface but also for comfortable thumb-typing when fully extended. The etched keycaps can be easily relocated for alternate layouts such as AZERTY or QWERTZ. The keyboard case runs an open firmware, which means that anyone with the know-how can alter existing functions or add new ones. The bottom (keyboard) and top (phone) sections of the assembly are well-balanced thanks to the large, 6000mAh, internal battery capable of charging the PinePhone (Pro) during operation. The internal battery effectively triples the phone’s battery life. The internal keyboard battery can be manually toggled on/off and the keyboard’s battery charge level can be read in the supported OSes; the keyboard remains functional with the battery fully depleted.&lt;br /&gt;
&lt;br /&gt;
You do not lose access to the PinePhone (Pro)’s USB-C port, speaker, microphone, or any external features, such as volume and lock buttons, with the keyboard attached. There is also a cut-out for the camera, torch, and headphone jack. The USB-C port on the keyboard is capable of powering both the keyboard and PinePhone (Pro) simultaneously. This means that you can plug in a USB mouse, a USB-C dongle, or some other peripheral while the phone and keyboard’s internal battery charge. Please keep in mind that the keyboard case transforms the PinePhone (Pro) into a PDA, which means that taking calls will likely prove awkward without a wired or wireless headset connected.&lt;br /&gt;
&lt;br /&gt;
== LoRa Addon ==&lt;br /&gt;
&lt;br /&gt;
[[File:PP LoRa.jpg|400px|thumb|right|Picture of the PinePhone (Pro) LoRa addon]]&lt;br /&gt;
&lt;br /&gt;
Uses the pogo pins to interface a Semtech SX1262 LoRa module with the PinePhone (Pro).&lt;br /&gt;
&lt;br /&gt;
{{note|Software for receiving and sending LoRa messages with this back cover does exist, however no PinePhone operating system has added support for it yet.}}&lt;br /&gt;
&lt;br /&gt;
== Qi Wireless Charging Addon ==&lt;br /&gt;
&lt;br /&gt;
Uses the pogo&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=File:PP_LoRa.jpg&amp;diff=12204</id>
		<title>File:PP LoRa.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=File:PP_LoRa.jpg&amp;diff=12204"/>
		<updated>2022-01-09T04:07:33Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Add-ons&amp;diff=12203</id>
		<title>PinePhone (Pro) Add-ons</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Add-ons&amp;diff=12203"/>
		<updated>2022-01-09T04:04:42Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PP_KB_Front-1024x576.jpg|400px|thumb|right|Rendering of the PinePhone (Pro) Keyboard]]&lt;br /&gt;
&lt;br /&gt;
== Keyboard Addon ==&lt;br /&gt;
&lt;br /&gt;
The keyboard case works with both the PinePhone and PinePhone Pro and features a clam-shell design. It uses pogo pins located on the phone’s midsection and attaches by replacing the default back cover. When folded, the phone’s screen and the keyboard rest securely against each other. The hinge features a 180° design, which not only allows for two-hand typing on a surface but also for comfortable thumb-typing when fully extended. The etched keycaps can be easily relocated for alternate layouts such as AZERTY or QWERTZ. The keyboard case runs an open firmware, which means that anyone with the know-how can alter existing functions or add new ones. The bottom (keyboard) and top (phone) sections of the assembly are well-balanced thanks to the large, 6000mAh, internal battery capable of charging the PinePhone (Pro) during operation. The internal battery effectively triples the phone’s battery life. The internal keyboard battery can be manually toggled on/off and the keyboard’s battery charge level can be read in the supported OSes; the keyboard remains functional with the battery fully depleted.&lt;br /&gt;
&lt;br /&gt;
You do not lose access to the PinePhone (Pro)’s USB-C port, speaker, microphone, or any external features, such as volume and lock buttons, with the keyboard attached. There is also a cut-out for the camera, torch, and headphone jack. The USB-C port on the keyboard is capable of powering both the keyboard and PinePhone (Pro) simultaneously. This means that you can plug in a USB mouse, a USB-C dongle, or some other peripheral while the phone and keyboard’s internal battery charge. Please keep in mind that the keyboard case transforms the PinePhone (Pro) into a PDA, which means that taking calls will likely prove awkward without a wired or wireless headset connected.&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Add-ons&amp;diff=12202</id>
		<title>PinePhone (Pro) Add-ons</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Add-ons&amp;diff=12202"/>
		<updated>2022-01-09T04:04:09Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: Created page with &amp;quot;{{hint|This page is incomplete, you're welcome to improve it.}}  Rendering of the PinePhone (Pro) Keyboard  =PinePhone (Pro...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PP_KB_Front-1024x576.jpg|400px|thumb|right|Rendering of the PinePhone (Pro) Keyboard]]&lt;br /&gt;
&lt;br /&gt;
=PinePhone (Pro) Keyboard=&lt;br /&gt;
&lt;br /&gt;
The keyboard case works with both the PinePhone and PinePhone Pro and features a clam-shell design. It uses pogo pins located on the phone’s midsection and attaches by replacing the default back cover. When folded, the phone’s screen and the keyboard rest securely against each other. The hinge features a 180° design, which not only allows for two-hand typing on a surface but also for comfortable thumb-typing when fully extended. The etched keycaps can be easily relocated for alternate layouts such as AZERTY or QWERTZ. The keyboard case runs an open firmware, which means that anyone with the know-how can alter existing functions or add new ones. The bottom (keyboard) and top (phone) sections of the assembly are well-balanced thanks to the large, 6000mAh, internal battery capable of charging the PinePhone (Pro) during operation. The internal battery effectively triples the phone’s battery life. The internal keyboard battery can be manually toggled on/off and the keyboard’s battery charge level can be read in the supported OSes; the keyboard remains functional with the battery fully depleted.&lt;br /&gt;
&lt;br /&gt;
You do not lose access to the PinePhone (Pro)’s USB-C port, speaker, microphone, or any external features, such as volume and lock buttons, with the keyboard attached. There is also a cut-out for the camera, torch, and headphone jack. The USB-C port on the keyboard is capable of powering both the keyboard and PinePhone (Pro) simultaneously. This means that you can plug in a USB mouse, a USB-C dongle, or some other peripheral while the phone and keyboard’s internal battery charge. Please keep in mind that the keyboard case transforms the PinePhone (Pro) into a PDA, which means that taking calls will likely prove awkward without a wired or wireless headset connected.&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=File:PP_KB_Front-1024x576.jpg&amp;diff=12201</id>
		<title>File:PP KB Front-1024x576.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=File:PP_KB_Front-1024x576.jpg&amp;diff=12201"/>
		<updated>2022-01-09T04:03:57Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Mainline_Hardware_Decoding&amp;diff=11324</id>
		<title>Mainline Hardware Decoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Mainline_Hardware_Decoding&amp;diff=11324"/>
		<updated>2021-09-06T01:06:36Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* GStreamer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
&lt;br /&gt;
Onboard most SoCs there is what is referred to as a VPU (Video Processing Unit). The VPU is responsible for efficient encoding and decoding of videos. Video decoding can be extremely useful for example if you wanted to watch or stream video from your device without a high CPU utilization (which results from software decoding). Below information can be found on the various drivers that the SoCs used by PINE64 use, and their state of video decoding as a result of the mainline Linux drivers and software.&lt;br /&gt;
&lt;br /&gt;
=Cedrus and Hantro=&lt;br /&gt;
&lt;br /&gt;
In 2018 Bootlin launched a crowdfunding campaign to bring a open source Allwinner VPU driver to mainline Linux, which came to be called Cedrus. The Cedrus media driver (For Allwinner SOCs such as A64) supported by mainline Linux supports H.264 and H.265 video decoding as of Linux 5.10, and with 5.11 came VP8 decoding support and a H.264 stateless video decoder interface. For more information refer to the [https://linux-sunxi.org/Sunxi-Cedrus#Codec_Support Sunxi wiki].&lt;br /&gt;
&lt;br /&gt;
The Hantro media driver supports Rockchip and NXP SoCs including the RK3399 used in the Pinebook Pro and RockPro64. In November 2020 it [https://www.cnx-software.com/2020/11/24/hantro-h1-hardware-accelerated-video-encoding-support-in-mainline-linux/ was announced] that Bootlin was working on encoding support for the driver.&lt;br /&gt;
&lt;br /&gt;
==GStreamer==&lt;br /&gt;
H264 video decoding is possible when using GStreamer built from source, or an application utilizing it such as [https://github.com/Rafostar/clapper Clapper] or [https://flathub.org/apps/details/org.sigxcpu.Livi µPlayer]. µPlayer includes a indicator of when hardware acceleration is properly working and in use.&lt;br /&gt;
&lt;br /&gt;
==FFmpeg==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==More Resources==&lt;br /&gt;
&lt;br /&gt;
[https://xnux.eu/devices/feature/cedrus-pp.html Megi's Cedrus Information]&lt;br /&gt;
&lt;br /&gt;
[https://briandaniels.me/2021/06/27/hardware-accelerated-video-playback-on-the-pinephone.html HW accelerated GStreamer playback on the PinePhone]&lt;br /&gt;
&lt;br /&gt;
[https://briandaniels.me/2021/07/06/hardware-accelerated-video-playback-on-the-pinephone-with-clapper.html HW accelerated Clapper video player on the PinePhone]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Mainline_Hardware_Decoding&amp;diff=11323</id>
		<title>Mainline Hardware Decoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Mainline_Hardware_Decoding&amp;diff=11323"/>
		<updated>2021-09-06T01:05:21Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
&lt;br /&gt;
Onboard most SoCs there is what is referred to as a VPU (Video Processing Unit). The VPU is responsible for efficient encoding and decoding of videos. Video decoding can be extremely useful for example if you wanted to watch or stream video from your device without a high CPU utilization (which results from software decoding). Below information can be found on the various drivers that the SoCs used by PINE64 use, and their state of video decoding as a result of the mainline Linux drivers and software.&lt;br /&gt;
&lt;br /&gt;
=Cedrus and Hantro=&lt;br /&gt;
&lt;br /&gt;
In 2018 Bootlin launched a crowdfunding campaign to bring a open source Allwinner VPU driver to mainline Linux, which came to be called Cedrus. The Cedrus media driver (For Allwinner SOCs such as A64) supported by mainline Linux supports H.264 and H.265 video decoding as of Linux 5.10, and with 5.11 came VP8 decoding support and a H.264 stateless video decoder interface. For more information refer to the [https://linux-sunxi.org/Sunxi-Cedrus#Codec_Support Sunxi wiki].&lt;br /&gt;
&lt;br /&gt;
The Hantro media driver supports Rockchip and NXP SoCs including the RK3399 used in the Pinebook Pro and RockPro64. In November 2020 it [https://www.cnx-software.com/2020/11/24/hantro-h1-hardware-accelerated-video-encoding-support-in-mainline-linux/ was announced] that Bootlin was working on encoding support for the driver.&lt;br /&gt;
&lt;br /&gt;
==GStreamer==&lt;br /&gt;
H264 video decoding is possible when using GStreamer built from source, or an application utilizing it such as [https://github.com/Rafostar/clapper Clapper] or [https://flathub.org/apps/details/org.sigxcpu.Livi µPlayer]&lt;br /&gt;
&lt;br /&gt;
==FFmpeg==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==More Resources==&lt;br /&gt;
&lt;br /&gt;
[https://xnux.eu/devices/feature/cedrus-pp.html Megi's Cedrus Information]&lt;br /&gt;
&lt;br /&gt;
[https://briandaniels.me/2021/06/27/hardware-accelerated-video-playback-on-the-pinephone.html HW accelerated GStreamer playback on the PinePhone]&lt;br /&gt;
&lt;br /&gt;
[https://briandaniels.me/2021/07/06/hardware-accelerated-video-playback-on-the-pinephone-with-clapper.html HW accelerated Clapper video player on the PinePhone]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Mainline_Hardware_Decoding&amp;diff=11322</id>
		<title>Mainline Hardware Decoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Mainline_Hardware_Decoding&amp;diff=11322"/>
		<updated>2021-09-06T01:02:31Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
&lt;br /&gt;
Onboard most SoCs there is what is referred to as a VPU (Video Processing Unit). The VPU is reponsible for efficient encoding and decoding of videos. Video decoding can be extremely useful for example if you wanted to watch or stream video from your device without a high CPU utilization (which results from software decoding). Below information can be found on the various SoCs used by PINE64 and their state of video decoding as a result of the mainline Linux drivers and software.&lt;br /&gt;
&lt;br /&gt;
=Cedrus and Hantro=&lt;br /&gt;
&lt;br /&gt;
In 2018 Bootlin launched a crowdfunding campaign to bring a open source Allwinner VPU driver to mainline Linux, which became called Cedrus. The Cedrus media driver (For Allwinner SOCs such as A64) supported by mainline Linux supports H.264 and H.265 video decoding as of Linux 5.10, and with 5.11 came VP8 decoding support and a H.264 stateless video decoder interface. For more information refer to the [https://linux-sunxi.org/Sunxi-Cedrus#Codec_Support Sunxi wiki].&lt;br /&gt;
&lt;br /&gt;
The Hantro media driver supports Rockchip and NXP SoCs including the RK3399 used in the Pinebook Pro and RockPro64. In November 2020 it [https://www.cnx-software.com/2020/11/24/hantro-h1-hardware-accelerated-video-encoding-support-in-mainline-linux/ was announced] that Bootlin was working on encoding support for the driver.&lt;br /&gt;
&lt;br /&gt;
==GStreamer==&lt;br /&gt;
H264 video decoding is possible when using GStreamer built from source, or an application utilizing it such as [https://github.com/Rafostar/clapper Clapper] or [https://flathub.org/apps/details/org.sigxcpu.Livi µPlayer]&lt;br /&gt;
&lt;br /&gt;
==FFmpeg==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==More Resources==&lt;br /&gt;
&lt;br /&gt;
[https://xnux.eu/devices/feature/cedrus-pp.html Megi's Cedrus Information]&lt;br /&gt;
&lt;br /&gt;
[https://briandaniels.me/2021/06/27/hardware-accelerated-video-playback-on-the-pinephone.html HW accelerated GStreamer playback on the PinePhone]&lt;br /&gt;
&lt;br /&gt;
[https://briandaniels.me/2021/07/06/hardware-accelerated-video-playback-on-the-pinephone-with-clapper.html HW accelerated Clapper video player on the PinePhone]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Mainline_Hardware_Decoding&amp;diff=11321</id>
		<title>Mainline Hardware Decoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Mainline_Hardware_Decoding&amp;diff=11321"/>
		<updated>2021-09-06T01:00:39Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
&lt;br /&gt;
Onboard most SoCs there is what is referred to as a VPU (Video Processing Unit). The VPU is reponsible for efficient encoding and decoding of videos. Video decoding can be extremely useful for example if you wanted to watch or stream video from your device without a high CPU utilization (which results from software decoding). Below information can be found on the various SoCs used by PINE64 and their state of video decoding as a result of the mainline Linux drivers and software.&lt;br /&gt;
&lt;br /&gt;
=Cedrus and Hantro=&lt;br /&gt;
&lt;br /&gt;
In 2018 Bootlin launched a crowdfunding campaign to bring a open source Allwinner VPU driver to mainline Linux, which became called Cedrus. The Cedrus media driver (For Allwinner SOCs such as A64) supported by mainline Linux supports H.264 and H.265 video decoding as of Linux 5.10, and with 5.11 came VP8 decoding support and a H.264 stateless video decoder interface. For more information refer to the [https://linux-sunxi.org/Sunxi-Cedrus#Codec_Support Sunxi wiki].&lt;br /&gt;
&lt;br /&gt;
The Hantro media driver supports Rockchip and NXP SoCs including the RK3399 used in the Pinebook Pro and RockPro64. In November 2020 it [https://www.cnx-software.com/2020/11/24/hantro-h1-hardware-accelerated-video-encoding-support-in-mainline-linux/ was announced] that Bootlin was working on encoding support for the driver.&lt;br /&gt;
&lt;br /&gt;
==GStreamer==&lt;br /&gt;
H264 video decoding is possible when using GStreamer built from source, or an application utilizing it such as [https://github.com/Rafostar/clapper Clapper] or [https://flathub.org/apps/details/org.sigxcpu.Livi µPlayer]&lt;br /&gt;
&lt;br /&gt;
==FFmpeg==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==More Resources==&lt;br /&gt;
&lt;br /&gt;
https://xnux.eu/devices/feature/cedrus-pp.html&lt;br /&gt;
https://briandaniels.me/2021/06/27/hardware-accelerated-video-playback-on-the-pinephone.html&lt;br /&gt;
https://briandaniels.me/2021/07/06/hardware-accelerated-video-playback-on-the-pinephone-with-clapper.html&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Mainline_Hardware_Decoding&amp;diff=11320</id>
		<title>Mainline Hardware Decoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Mainline_Hardware_Decoding&amp;diff=11320"/>
		<updated>2021-09-06T00:49:57Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
&lt;br /&gt;
Onboard most SoCs there is what is referred to as a VPU (Video Processing Unit). The VPU is reponsible for efficient encoding and decoding of videos. Video decoding can be extremely useful for example if you wanted to watch or stream video from your device without a high CPU utilization (which results from software decoding). Below information can be found on the various SoCs used by PINE64 and their state of video decoding as a result of the mainline Linux drivers and software.&lt;br /&gt;
&lt;br /&gt;
=Allwinner-based devices=&lt;br /&gt;
&lt;br /&gt;
In 2018 Bootlin launched a crowdfunding campaign to bring a open source Allwinner VPU driver to mainline Linux, which became called Cedrus.&lt;br /&gt;
&lt;br /&gt;
The Cedrus media driver (For Allwinner SOCs such as A64) supported by mainline Linux supports H.264 and H.265 video decoding as of Linux 5.10, and with 5.11 came VP8 decoding support and a H.264 stateless video decoder interface. For more information refer to the [https://linux-sunxi.org/Sunxi-Cedrus#Codec_Support Sunxi wiki].&lt;br /&gt;
&lt;br /&gt;
=Rockchip-based devices=&lt;br /&gt;
&lt;br /&gt;
The Hantro media driver supports Rockchip and NXP SoCs including the RK3399 used in the Pinebook Pro and RockPro64. In November 2020 it [https://www.cnx-software.com/2020/11/24/hantro-h1-hardware-accelerated-video-encoding-support-in-mainline-linux/ was announced] that Bootlin was working on encoding support for the driver.&lt;br /&gt;
&lt;br /&gt;
==More Resources==&lt;br /&gt;
&lt;br /&gt;
https://xnux.eu/devices/feature/cedrus-pp.html&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Overclocking&amp;diff=11319</id>
		<title>Overclocking</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Overclocking&amp;diff=11319"/>
		<updated>2021-09-06T00:35:19Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Rockchip RK3399 based boards */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|1= There is the possibility of damaging your equipment by overclocking. Do so at your own risk!}}&lt;br /&gt;
{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
{{hint|All information regarding clock speeds, voltages and more are stored in the DTB (Device Tree Blob). You can learn more about it [https://elinux.org/Device_Tree_Reference here].}}&lt;br /&gt;
&lt;br /&gt;
Overclocking is a way to get more performance out of the system by running it at higher clock speeds than the factory default, usually while putting out more heat and using more power (You can also downclock to possibly reduce power consumption and thermals at the cost of performance). It is highly recommended that you avoid overvolting the device, as that has a high risk of damaging the hardware, hence the warning at the beginning of this page. However, just some slight overclocks without the added voltage can not only improve performance, but not carry as much risk (Still: Do at your own risk!). It should be noted however that overclocking can cause instability, so you will need to test and see what values work best with your device (There is a silicon lottery for the Pinephone's hardware).&lt;br /&gt;
&lt;br /&gt;
= A64-based devices =&lt;br /&gt;
&lt;br /&gt;
{{note|These instructions are targeting the Pinephone to simplify the explanation, however they can be used to also overclock other devices such as the Pinetab if you modify the proper DTB files.}}&lt;br /&gt;
&lt;br /&gt;
== Editing the Pinephone DTS ==&lt;br /&gt;
&lt;br /&gt;
In order to overclock the Pinephone you will have to first convert the DTB file in &amp;lt;code&amp;gt;/boot/dtbs/allwinner/&amp;lt;/code&amp;gt; to a DTS file. You will see &amp;lt;code&amp;gt;sun50i-a64-pinephone-1.2.dtb&amp;lt;/code&amp;gt;, and also two other files with different pinephone mainboard revisions (1.1 and 1.0). You will want to select the correct file for your pinephone (Only choose 1.1 if you have a braveheart, As all other consumer pinephones use the 1.2 DTS).&lt;br /&gt;
&lt;br /&gt;
Once you've found the file, you can run the following command to convert the DTB to DTS:&lt;br /&gt;
&amp;lt;code&amp;gt;dtc -I dtb -O dts /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dtb -o /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, modify the newly converted .dts file and change the clockspeeds you wish to modify. You can simply use a text editor to do so.&lt;br /&gt;
&lt;br /&gt;
To convert back to DTB:&lt;br /&gt;
&amp;lt;code&amp;gt;dtc -I dts -O dtb /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts -o /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterwards you can simply reboot and check with &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary&amp;lt;/code&amp;gt; to see if the changes have correctly applied.&lt;br /&gt;
&lt;br /&gt;
{{note|In the future it is possible that someone may make a driver to adjust clockspeeds of the A64 from userspace (using a config file) without the need to recompile. However, currently the only way to overclock is to either compile your own kernel, or modify just the DTB (instructions above).}}&lt;br /&gt;
&lt;br /&gt;
== GPU ==&lt;br /&gt;
&lt;br /&gt;
Open &amp;lt;code&amp;gt;/boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts&amp;lt;/code&amp;gt; (You will have to find the source of the kernel used by your distribution. There is the Pine64 kernel, and Megi's) in a text editor following these instructions: https://wiki.pine64.org/wiki/Overclocking#Edit_Pinephone_DTS&lt;br /&gt;
&lt;br /&gt;
Look for &amp;lt;code&amp;gt;mali: gpu@1c4000 {&amp;lt;/code&amp;gt; and within that block search for &amp;lt;code&amp;gt;assigned-clock-rates = &amp;lt;432000000&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;assigned-clock-rates&amp;lt;/code&amp;gt; line should be set to &amp;lt;code&amp;gt;432000000&amp;lt;/code&amp;gt;, this means that the GPU is clocked at 432MHz by default. So if you want 500MHz, set the value to &amp;lt;code&amp;gt;500000000&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Save the dts file, and recompile the DTB. In order to check if the overclock was successfully applied you can run: &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{note|The file may be slightly different and you may need to enter the values as hexidecimals}}&lt;br /&gt;
{{hint|The GPU appears to run stable overclocked to 560 Mhz, however more testing with a wider group of devices is needed.}}&lt;br /&gt;
{{hint|Remember to run a benchmark tool (such as glmark2-es2) to help check stability.}}&lt;br /&gt;
&lt;br /&gt;
== CPU ==&lt;br /&gt;
&lt;br /&gt;
The stock speed of the A64 is 1.152 GHz. It is not recommended to the overclock the CPU because doing so greatly increases power and thermals and will overheat the device for little to no gain.&lt;br /&gt;
&lt;br /&gt;
== DRAM ==&lt;br /&gt;
&lt;br /&gt;
{{warning|1=It is not recommended to exceed 667 MHz clockspeed on the DRAM. 624MHz is likely the upper limit.}}&lt;br /&gt;
{{hint|Make sure to set your DRAM to a multiple of 24.}}&lt;br /&gt;
&lt;br /&gt;
When overclocking the GPU, it is a good idea to also overclock the DRAM, as the main bottleneck of the A64 SOC is the memory. The A64's maximum ram clockspeed falls just short of 667MHz. This may be unstable on your device however. &lt;br /&gt;
&lt;br /&gt;
Around 600 MHz (PC-1200) should work fine, however some people have reported instability at lower clockspeeds. Arch Linux Arm uses a default clockspeed of 552MHz, with uboot builds available to easily switch out for a higher (624) or lower (492) DRAM clockspeed.&lt;br /&gt;
&lt;br /&gt;
It is possible that by reverse engineering the DRAM driver from allwinner that auto tuning can be accomplished to get the best performance.&lt;br /&gt;
&lt;br /&gt;
Setting the DRAM clock is accomplished by modifying pinephone_defconfig in uboot (https://gitlab.com/pine64-org/u-boot/-/blob/crust/configs/pinephone_defconfig)&lt;br /&gt;
&lt;br /&gt;
You can find simple instructions on doing so here: [[Uboot]]&lt;br /&gt;
&lt;br /&gt;
== VPU ==&lt;br /&gt;
&lt;br /&gt;
In order to allocate more VRAM for the GPU you can add &amp;lt;code&amp;gt;cma=256&amp;lt;/code&amp;gt; to your kernel (or use kconfig with CONFIG_CMA_SIZE_MBYTES=256) cmdline in boot.scr which you will have to compile using mkimage. By default the kernel allocates only 64MB, and the maximum value is 256MB.&lt;br /&gt;
&lt;br /&gt;
In order to compile boot.scr you can run &amp;lt;code&amp;gt;mkimage -C none -A arm64 -T script -d boot.cmd boot.scr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note|You may not have a boot.cmd file in your boot directory and instead you may instead have a boot.txt}}&lt;br /&gt;
&lt;br /&gt;
== Cedrus ==&lt;br /&gt;
&lt;br /&gt;
Overclocking cedrus is achieved by modifying the kernel source code: https://elixir.bootlin.com/linux/latest/source/drivers/staging/media/sunxi/cedrus/cedrus.c#L507&lt;br /&gt;
&lt;br /&gt;
{{note|I'm (33yn2) not particularly sure if this makes any difference, or if it might infact have a negative impact. Probably not worth messing with.}}&lt;br /&gt;
&lt;br /&gt;
= RK3399-based devices =&lt;br /&gt;
The RK3399 clocks are found in [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi]&lt;br /&gt;
&lt;br /&gt;
More optimised voltages and clocks can be found in [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi]&lt;br /&gt;
These include a slight overclock and undervolt, they are intended for the OP1 CPU found in many chromebooks but have worked fine in all recorded cases on regular RK3399s in other devices.&lt;br /&gt;
&lt;br /&gt;
==GPU==&lt;br /&gt;
Any clock speeds can be added for the GPU in &amp;lt;code&amp;gt;gpu_opp_table&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The highest safe voltage for the GPU is 1.2V as specified in the RK3399 schematic from Rockchip.&lt;br /&gt;
&lt;br /&gt;
Segfault has found that the RK3399 in his Pinebook Pro can reach 950MHz on the GPU while being stable.&lt;br /&gt;
&lt;br /&gt;
The stock speed for the GPU is 800Mhz.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
A set of available clock speeds that can be added to the CPU clusters can be found in &amp;lt;code&amp;gt;drivers/clk/rockchip/clk-rk3399.c&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;rk3399_cpuclkl_rates&amp;lt;/code&amp;gt; for the little cores and &amp;lt;code&amp;gt;rk3399_cpuclkb_rates&amp;lt;/code&amp;gt; for the big cores.&lt;br /&gt;
&lt;br /&gt;
These clock speeds can be added to &amp;lt;code&amp;gt;cluster0_opp&amp;lt;/code&amp;gt; for the small cores and &amp;lt;code&amp;gt;cluster1_opp&amp;lt;/code&amp;gt; for the big cores respectively.&lt;br /&gt;
&lt;br /&gt;
There is a hard limit of 1.8GHz on the little cores and 2.2GHz on the big cores.&lt;br /&gt;
&lt;br /&gt;
The highest safe voltage for the little cores is 1.2V and for the big cores is 1.25V.&lt;br /&gt;
&lt;br /&gt;
Segfault has found that the RK3399 in his Pinebook Pro can reach 1.6GHz on the little cores and 2.08GHz on the big ones.&lt;br /&gt;
&lt;br /&gt;
The stock speed for the little cores is 1.4GHz and on the big cores it is 1.8GHz, however the OP1 speeds default to 1.5GHz and 2.0GHz instead.&lt;br /&gt;
&lt;br /&gt;
= ROCK64 =&lt;br /&gt;
&lt;br /&gt;
DTB is in &amp;lt;code&amp;gt;/boot/dtbs/rockchip/rk3328-rock64.dtb&amp;lt;/code&amp;gt;. CPU clock rates are inside &amp;lt;code&amp;gt;opp_table0&amp;lt;/code&amp;gt; as hexadecimal numbers in the &amp;lt;code&amp;gt;opp-hz&amp;lt;/code&amp;gt; field.&lt;br /&gt;
&lt;br /&gt;
Check the achieved clock speed with &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary | grep armclk&amp;lt;/code&amp;gt;. Does not seem to overclock at stock voltages at all, defaults to 408 MHz if it fails to set a clock rate. Stock voltage is 1.30V, just shy of the 1.35V maximum outlined in [https://www.rockchip.fr/RK3328%20datasheet%20V1.1.pdf the datasheet]. Overvolting to 1.325V just left the device in an unbootable state for CounterPillow, would not recommend.&lt;br /&gt;
&lt;br /&gt;
GPU needs investigating, but is seemingly tied to the bus speed.&lt;br /&gt;
&lt;br /&gt;
[[Category:SOPine]] [[Category:Pine A64]] [[Category:Pine H64]] [[Category:A64-LTS]] [[Category:PineBook]] [[Category:PinePhone]] [[Category:PineTab]] [[Category:Rock64]] [[Category:PineBook Pro]] [[Category:ROCKPro64]] [[Category:Allwinner A64]] [[Category:Allwinner H6]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Overclocking&amp;diff=11318</id>
		<title>Overclocking</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Overclocking&amp;diff=11318"/>
		<updated>2021-09-06T00:35:03Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Edit Pinephone DTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|1= There is the possibility of damaging your equipment by overclocking. Do so at your own risk!}}&lt;br /&gt;
{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
{{hint|All information regarding clock speeds, voltages and more are stored in the DTB (Device Tree Blob). You can learn more about it [https://elinux.org/Device_Tree_Reference here].}}&lt;br /&gt;
&lt;br /&gt;
Overclocking is a way to get more performance out of the system by running it at higher clock speeds than the factory default, usually while putting out more heat and using more power (You can also downclock to possibly reduce power consumption and thermals at the cost of performance). It is highly recommended that you avoid overvolting the device, as that has a high risk of damaging the hardware, hence the warning at the beginning of this page. However, just some slight overclocks without the added voltage can not only improve performance, but not carry as much risk (Still: Do at your own risk!). It should be noted however that overclocking can cause instability, so you will need to test and see what values work best with your device (There is a silicon lottery for the Pinephone's hardware).&lt;br /&gt;
&lt;br /&gt;
= A64-based devices =&lt;br /&gt;
&lt;br /&gt;
{{note|These instructions are targeting the Pinephone to simplify the explanation, however they can be used to also overclock other devices such as the Pinetab if you modify the proper DTB files.}}&lt;br /&gt;
&lt;br /&gt;
== Editing the Pinephone DTS ==&lt;br /&gt;
&lt;br /&gt;
In order to overclock the Pinephone you will have to first convert the DTB file in &amp;lt;code&amp;gt;/boot/dtbs/allwinner/&amp;lt;/code&amp;gt; to a DTS file. You will see &amp;lt;code&amp;gt;sun50i-a64-pinephone-1.2.dtb&amp;lt;/code&amp;gt;, and also two other files with different pinephone mainboard revisions (1.1 and 1.0). You will want to select the correct file for your pinephone (Only choose 1.1 if you have a braveheart, As all other consumer pinephones use the 1.2 DTS).&lt;br /&gt;
&lt;br /&gt;
Once you've found the file, you can run the following command to convert the DTB to DTS:&lt;br /&gt;
&amp;lt;code&amp;gt;dtc -I dtb -O dts /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dtb -o /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, modify the newly converted .dts file and change the clockspeeds you wish to modify. You can simply use a text editor to do so.&lt;br /&gt;
&lt;br /&gt;
To convert back to DTB:&lt;br /&gt;
&amp;lt;code&amp;gt;dtc -I dts -O dtb /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts -o /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterwards you can simply reboot and check with &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary&amp;lt;/code&amp;gt; to see if the changes have correctly applied.&lt;br /&gt;
&lt;br /&gt;
{{note|In the future it is possible that someone may make a driver to adjust clockspeeds of the A64 from userspace (using a config file) without the need to recompile. However, currently the only way to overclock is to either compile your own kernel, or modify just the DTB (instructions above).}}&lt;br /&gt;
&lt;br /&gt;
== GPU ==&lt;br /&gt;
&lt;br /&gt;
Open &amp;lt;code&amp;gt;/boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts&amp;lt;/code&amp;gt; (You will have to find the source of the kernel used by your distribution. There is the Pine64 kernel, and Megi's) in a text editor following these instructions: https://wiki.pine64.org/wiki/Overclocking#Edit_Pinephone_DTS&lt;br /&gt;
&lt;br /&gt;
Look for &amp;lt;code&amp;gt;mali: gpu@1c4000 {&amp;lt;/code&amp;gt; and within that block search for &amp;lt;code&amp;gt;assigned-clock-rates = &amp;lt;432000000&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;assigned-clock-rates&amp;lt;/code&amp;gt; line should be set to &amp;lt;code&amp;gt;432000000&amp;lt;/code&amp;gt;, this means that the GPU is clocked at 432MHz by default. So if you want 500MHz, set the value to &amp;lt;code&amp;gt;500000000&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Save the dts file, and recompile the DTB. In order to check if the overclock was successfully applied you can run: &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{note|The file may be slightly different and you may need to enter the values as hexidecimals}}&lt;br /&gt;
{{hint|The GPU appears to run stable overclocked to 560 Mhz, however more testing with a wider group of devices is needed.}}&lt;br /&gt;
{{hint|Remember to run a benchmark tool (such as glmark2-es2) to help check stability.}}&lt;br /&gt;
&lt;br /&gt;
== CPU ==&lt;br /&gt;
&lt;br /&gt;
The stock speed of the A64 is 1.152 GHz. It is not recommended to the overclock the CPU because doing so greatly increases power and thermals and will overheat the device for little to no gain.&lt;br /&gt;
&lt;br /&gt;
== DRAM ==&lt;br /&gt;
&lt;br /&gt;
{{warning|1=It is not recommended to exceed 667 MHz clockspeed on the DRAM. 624MHz is likely the upper limit.}}&lt;br /&gt;
{{hint|Make sure to set your DRAM to a multiple of 24.}}&lt;br /&gt;
&lt;br /&gt;
When overclocking the GPU, it is a good idea to also overclock the DRAM, as the main bottleneck of the A64 SOC is the memory. The A64's maximum ram clockspeed falls just short of 667MHz. This may be unstable on your device however. &lt;br /&gt;
&lt;br /&gt;
Around 600 MHz (PC-1200) should work fine, however some people have reported instability at lower clockspeeds. Arch Linux Arm uses a default clockspeed of 552MHz, with uboot builds available to easily switch out for a higher (624) or lower (492) DRAM clockspeed.&lt;br /&gt;
&lt;br /&gt;
It is possible that by reverse engineering the DRAM driver from allwinner that auto tuning can be accomplished to get the best performance.&lt;br /&gt;
&lt;br /&gt;
Setting the DRAM clock is accomplished by modifying pinephone_defconfig in uboot (https://gitlab.com/pine64-org/u-boot/-/blob/crust/configs/pinephone_defconfig)&lt;br /&gt;
&lt;br /&gt;
You can find simple instructions on doing so here: [[Uboot]]&lt;br /&gt;
&lt;br /&gt;
== VPU ==&lt;br /&gt;
&lt;br /&gt;
In order to allocate more VRAM for the GPU you can add &amp;lt;code&amp;gt;cma=256&amp;lt;/code&amp;gt; to your kernel (or use kconfig with CONFIG_CMA_SIZE_MBYTES=256) cmdline in boot.scr which you will have to compile using mkimage. By default the kernel allocates only 64MB, and the maximum value is 256MB.&lt;br /&gt;
&lt;br /&gt;
In order to compile boot.scr you can run &amp;lt;code&amp;gt;mkimage -C none -A arm64 -T script -d boot.cmd boot.scr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note|You may not have a boot.cmd file in your boot directory and instead you may instead have a boot.txt}}&lt;br /&gt;
&lt;br /&gt;
== Cedrus ==&lt;br /&gt;
&lt;br /&gt;
Overclocking cedrus is achieved by modifying the kernel source code: https://elixir.bootlin.com/linux/latest/source/drivers/staging/media/sunxi/cedrus/cedrus.c#L507&lt;br /&gt;
&lt;br /&gt;
{{note|I'm (33yn2) not particularly sure if this makes any difference, or if it might infact have a negative impact. Probably not worth messing with.}}&lt;br /&gt;
&lt;br /&gt;
= Rockchip RK3399 based boards =&lt;br /&gt;
The RK3399 clocks are found in [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi]&lt;br /&gt;
&lt;br /&gt;
More optimised voltages and clocks can be found in [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi]&lt;br /&gt;
These include a slight overclock and undervolt, they are intended for the OP1 CPU found in many chromebooks but have worked fine in all recorded cases on regular RK3399s in other devices.&lt;br /&gt;
&lt;br /&gt;
==GPU==&lt;br /&gt;
Any clock speeds can be added for the GPU in &amp;lt;code&amp;gt;gpu_opp_table&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The highest safe voltage for the GPU is 1.2V as specified in the RK3399 schematic from Rockchip.&lt;br /&gt;
&lt;br /&gt;
Segfault has found that the RK3399 in his Pinebook Pro can reach 950MHz on the GPU while being stable.&lt;br /&gt;
&lt;br /&gt;
The stock speed for the GPU is 800Mhz.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
A set of available clock speeds that can be added to the CPU clusters can be found in &amp;lt;code&amp;gt;drivers/clk/rockchip/clk-rk3399.c&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;rk3399_cpuclkl_rates&amp;lt;/code&amp;gt; for the little cores and &amp;lt;code&amp;gt;rk3399_cpuclkb_rates&amp;lt;/code&amp;gt; for the big cores.&lt;br /&gt;
&lt;br /&gt;
These clock speeds can be added to &amp;lt;code&amp;gt;cluster0_opp&amp;lt;/code&amp;gt; for the small cores and &amp;lt;code&amp;gt;cluster1_opp&amp;lt;/code&amp;gt; for the big cores respectively.&lt;br /&gt;
&lt;br /&gt;
There is a hard limit of 1.8GHz on the little cores and 2.2GHz on the big cores.&lt;br /&gt;
&lt;br /&gt;
The highest safe voltage for the little cores is 1.2V and for the big cores is 1.25V.&lt;br /&gt;
&lt;br /&gt;
Segfault has found that the RK3399 in his Pinebook Pro can reach 1.6GHz on the little cores and 2.08GHz on the big ones.&lt;br /&gt;
&lt;br /&gt;
The stock speed for the little cores is 1.4GHz and on the big cores it is 1.8GHz, however the OP1 speeds default to 1.5GHz and 2.0GHz instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= ROCK64 =&lt;br /&gt;
&lt;br /&gt;
DTB is in &amp;lt;code&amp;gt;/boot/dtbs/rockchip/rk3328-rock64.dtb&amp;lt;/code&amp;gt;. CPU clock rates are inside &amp;lt;code&amp;gt;opp_table0&amp;lt;/code&amp;gt; as hexadecimal numbers in the &amp;lt;code&amp;gt;opp-hz&amp;lt;/code&amp;gt; field.&lt;br /&gt;
&lt;br /&gt;
Check the achieved clock speed with &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary | grep armclk&amp;lt;/code&amp;gt;. Does not seem to overclock at stock voltages at all, defaults to 408 MHz if it fails to set a clock rate. Stock voltage is 1.30V, just shy of the 1.35V maximum outlined in [https://www.rockchip.fr/RK3328%20datasheet%20V1.1.pdf the datasheet]. Overvolting to 1.325V just left the device in an unbootable state for CounterPillow, would not recommend.&lt;br /&gt;
&lt;br /&gt;
GPU needs investigating, but is seemingly tied to the bus speed.&lt;br /&gt;
&lt;br /&gt;
[[Category:SOPine]] [[Category:Pine A64]] [[Category:Pine H64]] [[Category:A64-LTS]] [[Category:PineBook]] [[Category:PinePhone]] [[Category:PineTab]] [[Category:Rock64]] [[Category:PineBook Pro]] [[Category:ROCKPro64]] [[Category:Allwinner A64]] [[Category:Allwinner H6]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Overclocking&amp;diff=11317</id>
		<title>Overclocking</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Overclocking&amp;diff=11317"/>
		<updated>2021-09-06T00:34:51Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* A64 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|1= There is the possibility of damaging your equipment by overclocking. Do so at your own risk!}}&lt;br /&gt;
{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
{{hint|All information regarding clock speeds, voltages and more are stored in the DTB (Device Tree Blob). You can learn more about it [https://elinux.org/Device_Tree_Reference here].}}&lt;br /&gt;
&lt;br /&gt;
Overclocking is a way to get more performance out of the system by running it at higher clock speeds than the factory default, usually while putting out more heat and using more power (You can also downclock to possibly reduce power consumption and thermals at the cost of performance). It is highly recommended that you avoid overvolting the device, as that has a high risk of damaging the hardware, hence the warning at the beginning of this page. However, just some slight overclocks without the added voltage can not only improve performance, but not carry as much risk (Still: Do at your own risk!). It should be noted however that overclocking can cause instability, so you will need to test and see what values work best with your device (There is a silicon lottery for the Pinephone's hardware).&lt;br /&gt;
&lt;br /&gt;
= A64-based devices =&lt;br /&gt;
&lt;br /&gt;
{{note|These instructions are targeting the Pinephone to simplify the explanation, however they can be used to also overclock other devices such as the Pinetab if you modify the proper DTB files.}}&lt;br /&gt;
&lt;br /&gt;
== Edit Pinephone DTS ==&lt;br /&gt;
&lt;br /&gt;
In order to overclock the Pinephone you will have to first convert the DTB file in &amp;lt;code&amp;gt;/boot/dtbs/allwinner/&amp;lt;/code&amp;gt; to a DTS file. You will see &amp;lt;code&amp;gt;sun50i-a64-pinephone-1.2.dtb&amp;lt;/code&amp;gt;, and also two other files with different pinephone mainboard revisions (1.1 and 1.0). You will want to select the correct file for your pinephone (Only choose 1.1 if you have a braveheart, As all other consumer pinephones use the 1.2 DTS).&lt;br /&gt;
&lt;br /&gt;
Once you've found the file, you can run the following command to convert the DTB to DTS:&lt;br /&gt;
&amp;lt;code&amp;gt;dtc -I dtb -O dts /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dtb -o /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, modify the newly converted .dts file and change the clockspeeds you wish to modify. You can simply use a text editor to do so.&lt;br /&gt;
&lt;br /&gt;
To convert back to DTB:&lt;br /&gt;
&amp;lt;code&amp;gt;dtc -I dts -O dtb /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts -o /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterwards you can simply reboot and check with &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary&amp;lt;/code&amp;gt; to see if the changes have correctly applied.&lt;br /&gt;
&lt;br /&gt;
{{note|In the future it is possible that someone may make a driver to adjust clockspeeds of the A64 from userspace (using a config file) without the need to recompile. However, currently the only way to overclock is to either compile your own kernel, or modify just the DTB (instructions above).}}&lt;br /&gt;
&lt;br /&gt;
== GPU ==&lt;br /&gt;
&lt;br /&gt;
Open &amp;lt;code&amp;gt;/boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts&amp;lt;/code&amp;gt; (You will have to find the source of the kernel used by your distribution. There is the Pine64 kernel, and Megi's) in a text editor following these instructions: https://wiki.pine64.org/wiki/Overclocking#Edit_Pinephone_DTS&lt;br /&gt;
&lt;br /&gt;
Look for &amp;lt;code&amp;gt;mali: gpu@1c4000 {&amp;lt;/code&amp;gt; and within that block search for &amp;lt;code&amp;gt;assigned-clock-rates = &amp;lt;432000000&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;assigned-clock-rates&amp;lt;/code&amp;gt; line should be set to &amp;lt;code&amp;gt;432000000&amp;lt;/code&amp;gt;, this means that the GPU is clocked at 432MHz by default. So if you want 500MHz, set the value to &amp;lt;code&amp;gt;500000000&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Save the dts file, and recompile the DTB. In order to check if the overclock was successfully applied you can run: &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{note|The file may be slightly different and you may need to enter the values as hexidecimals}}&lt;br /&gt;
{{hint|The GPU appears to run stable overclocked to 560 Mhz, however more testing with a wider group of devices is needed.}}&lt;br /&gt;
{{hint|Remember to run a benchmark tool (such as glmark2-es2) to help check stability.}}&lt;br /&gt;
&lt;br /&gt;
== CPU ==&lt;br /&gt;
&lt;br /&gt;
The stock speed of the A64 is 1.152 GHz. It is not recommended to the overclock the CPU because doing so greatly increases power and thermals and will overheat the device for little to no gain.&lt;br /&gt;
&lt;br /&gt;
== DRAM ==&lt;br /&gt;
&lt;br /&gt;
{{warning|1=It is not recommended to exceed 667 MHz clockspeed on the DRAM. 624MHz is likely the upper limit.}}&lt;br /&gt;
{{hint|Make sure to set your DRAM to a multiple of 24.}}&lt;br /&gt;
&lt;br /&gt;
When overclocking the GPU, it is a good idea to also overclock the DRAM, as the main bottleneck of the A64 SOC is the memory. The A64's maximum ram clockspeed falls just short of 667MHz. This may be unstable on your device however. &lt;br /&gt;
&lt;br /&gt;
Around 600 MHz (PC-1200) should work fine, however some people have reported instability at lower clockspeeds. Arch Linux Arm uses a default clockspeed of 552MHz, with uboot builds available to easily switch out for a higher (624) or lower (492) DRAM clockspeed.&lt;br /&gt;
&lt;br /&gt;
It is possible that by reverse engineering the DRAM driver from allwinner that auto tuning can be accomplished to get the best performance.&lt;br /&gt;
&lt;br /&gt;
Setting the DRAM clock is accomplished by modifying pinephone_defconfig in uboot (https://gitlab.com/pine64-org/u-boot/-/blob/crust/configs/pinephone_defconfig)&lt;br /&gt;
&lt;br /&gt;
You can find simple instructions on doing so here: [[Uboot]]&lt;br /&gt;
&lt;br /&gt;
== VPU ==&lt;br /&gt;
&lt;br /&gt;
In order to allocate more VRAM for the GPU you can add &amp;lt;code&amp;gt;cma=256&amp;lt;/code&amp;gt; to your kernel (or use kconfig with CONFIG_CMA_SIZE_MBYTES=256) cmdline in boot.scr which you will have to compile using mkimage. By default the kernel allocates only 64MB, and the maximum value is 256MB.&lt;br /&gt;
&lt;br /&gt;
In order to compile boot.scr you can run &amp;lt;code&amp;gt;mkimage -C none -A arm64 -T script -d boot.cmd boot.scr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note|You may not have a boot.cmd file in your boot directory and instead you may instead have a boot.txt}}&lt;br /&gt;
&lt;br /&gt;
== Cedrus ==&lt;br /&gt;
&lt;br /&gt;
Overclocking cedrus is achieved by modifying the kernel source code: https://elixir.bootlin.com/linux/latest/source/drivers/staging/media/sunxi/cedrus/cedrus.c#L507&lt;br /&gt;
&lt;br /&gt;
{{note|I'm (33yn2) not particularly sure if this makes any difference, or if it might infact have a negative impact. Probably not worth messing with.}}&lt;br /&gt;
&lt;br /&gt;
= Rockchip RK3399 based boards =&lt;br /&gt;
The RK3399 clocks are found in [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi]&lt;br /&gt;
&lt;br /&gt;
More optimised voltages and clocks can be found in [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi]&lt;br /&gt;
These include a slight overclock and undervolt, they are intended for the OP1 CPU found in many chromebooks but have worked fine in all recorded cases on regular RK3399s in other devices.&lt;br /&gt;
&lt;br /&gt;
==GPU==&lt;br /&gt;
Any clock speeds can be added for the GPU in &amp;lt;code&amp;gt;gpu_opp_table&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The highest safe voltage for the GPU is 1.2V as specified in the RK3399 schematic from Rockchip.&lt;br /&gt;
&lt;br /&gt;
Segfault has found that the RK3399 in his Pinebook Pro can reach 950MHz on the GPU while being stable.&lt;br /&gt;
&lt;br /&gt;
The stock speed for the GPU is 800Mhz.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
A set of available clock speeds that can be added to the CPU clusters can be found in &amp;lt;code&amp;gt;drivers/clk/rockchip/clk-rk3399.c&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;rk3399_cpuclkl_rates&amp;lt;/code&amp;gt; for the little cores and &amp;lt;code&amp;gt;rk3399_cpuclkb_rates&amp;lt;/code&amp;gt; for the big cores.&lt;br /&gt;
&lt;br /&gt;
These clock speeds can be added to &amp;lt;code&amp;gt;cluster0_opp&amp;lt;/code&amp;gt; for the small cores and &amp;lt;code&amp;gt;cluster1_opp&amp;lt;/code&amp;gt; for the big cores respectively.&lt;br /&gt;
&lt;br /&gt;
There is a hard limit of 1.8GHz on the little cores and 2.2GHz on the big cores.&lt;br /&gt;
&lt;br /&gt;
The highest safe voltage for the little cores is 1.2V and for the big cores is 1.25V.&lt;br /&gt;
&lt;br /&gt;
Segfault has found that the RK3399 in his Pinebook Pro can reach 1.6GHz on the little cores and 2.08GHz on the big ones.&lt;br /&gt;
&lt;br /&gt;
The stock speed for the little cores is 1.4GHz and on the big cores it is 1.8GHz, however the OP1 speeds default to 1.5GHz and 2.0GHz instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= ROCK64 =&lt;br /&gt;
&lt;br /&gt;
DTB is in &amp;lt;code&amp;gt;/boot/dtbs/rockchip/rk3328-rock64.dtb&amp;lt;/code&amp;gt;. CPU clock rates are inside &amp;lt;code&amp;gt;opp_table0&amp;lt;/code&amp;gt; as hexadecimal numbers in the &amp;lt;code&amp;gt;opp-hz&amp;lt;/code&amp;gt; field.&lt;br /&gt;
&lt;br /&gt;
Check the achieved clock speed with &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary | grep armclk&amp;lt;/code&amp;gt;. Does not seem to overclock at stock voltages at all, defaults to 408 MHz if it fails to set a clock rate. Stock voltage is 1.30V, just shy of the 1.35V maximum outlined in [https://www.rockchip.fr/RK3328%20datasheet%20V1.1.pdf the datasheet]. Overvolting to 1.325V just left the device in an unbootable state for CounterPillow, would not recommend.&lt;br /&gt;
&lt;br /&gt;
GPU needs investigating, but is seemingly tied to the bus speed.&lt;br /&gt;
&lt;br /&gt;
[[Category:SOPine]] [[Category:Pine A64]] [[Category:Pine H64]] [[Category:A64-LTS]] [[Category:PineBook]] [[Category:PinePhone]] [[Category:PineTab]] [[Category:Rock64]] [[Category:PineBook Pro]] [[Category:ROCKPro64]] [[Category:Allwinner A64]] [[Category:Allwinner H6]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Overclocking&amp;diff=11316</id>
		<title>Overclocking</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Overclocking&amp;diff=11316"/>
		<updated>2021-09-06T00:31:09Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Edit Pinephone DTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|1= There is the possibility of damaging your equipment by overclocking. Do so at your own risk!}}&lt;br /&gt;
{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
{{hint|All information regarding clock speeds, voltages and more are stored in the DTB (Device Tree Blob). You can learn more about it [https://elinux.org/Device_Tree_Reference here].}}&lt;br /&gt;
&lt;br /&gt;
Overclocking is a way to get more performance out of the system by running it at higher clock speeds than the factory default, usually while putting out more heat and using more power (You can also downclock to possibly reduce power consumption and thermals at the cost of performance). It is highly recommended that you avoid overvolting the device, as that has a high risk of damaging the hardware, hence the warning at the beginning of this page. However, just some slight overclocks without the added voltage can not only improve performance, but not carry as much risk (Still: Do at your own risk!). It should be noted however that overclocking can cause instability, so you will need to test and see what values work best with your device (There is a silicon lottery for the Pinephone's hardware).&lt;br /&gt;
&lt;br /&gt;
= A64 =&lt;br /&gt;
&lt;br /&gt;
{{note|These instructions are targeting the Pinephone to simplify the explanation, however they can be used to also overclock other devices such as the Pinetab if you modify the proper DTB files.}}&lt;br /&gt;
&lt;br /&gt;
== Edit Pinephone DTS ==&lt;br /&gt;
&lt;br /&gt;
In order to overclock the Pinephone you will have to first convert the DTB file in &amp;lt;code&amp;gt;/boot/dtbs/allwinner/&amp;lt;/code&amp;gt; to a DTS file. You will see &amp;lt;code&amp;gt;sun50i-a64-pinephone-1.2.dtb&amp;lt;/code&amp;gt;, and also two other files with different pinephone mainboard revisions (1.1 and 1.0). You will want to select the correct file for your pinephone (Only choose 1.1 if you have a braveheart, As all other consumer pinephones use the 1.2 DTS).&lt;br /&gt;
&lt;br /&gt;
Once you've found the file, you can run the following command to convert the DTB to DTS:&lt;br /&gt;
&amp;lt;code&amp;gt;dtc -I dtb -O dts /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dtb -o /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, modify the newly converted .dts file and change the clockspeeds you wish to modify. You can simply use a text editor to do so.&lt;br /&gt;
&lt;br /&gt;
To convert back to DTB:&lt;br /&gt;
&amp;lt;code&amp;gt;dtc -I dts -O dtb /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts -o /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterwards you can simply reboot and check with &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary&amp;lt;/code&amp;gt; to see if the changes have correctly applied.&lt;br /&gt;
&lt;br /&gt;
{{note|In the future it is possible that someone may make a driver to adjust clockspeeds of the A64 from userspace (using a config file) without the need to recompile. However, currently the only way to overclock is to either compile your own kernel, or modify just the DTB (instructions above).}}&lt;br /&gt;
&lt;br /&gt;
== GPU ==&lt;br /&gt;
&lt;br /&gt;
Open &amp;lt;code&amp;gt;/boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts&amp;lt;/code&amp;gt; (You will have to find the source of the kernel used by your distribution. There is the Pine64 kernel, and Megi's) in a text editor following these instructions: https://wiki.pine64.org/wiki/Overclocking#Edit_Pinephone_DTS&lt;br /&gt;
&lt;br /&gt;
Look for &amp;lt;code&amp;gt;mali: gpu@1c4000 {&amp;lt;/code&amp;gt; and within that block search for &amp;lt;code&amp;gt;assigned-clock-rates = &amp;lt;432000000&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;assigned-clock-rates&amp;lt;/code&amp;gt; line should be set to &amp;lt;code&amp;gt;432000000&amp;lt;/code&amp;gt;, this means that the GPU is clocked at 432MHz by default. So if you want 500MHz, set the value to &amp;lt;code&amp;gt;500000000&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Save the dts file, and recompile the DTB. In order to check if the overclock was successfully applied you can run: &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{note|The file may be slightly different and you may need to enter the values as hexidecimals}}&lt;br /&gt;
{{hint|The GPU appears to run stable overclocked to 560 Mhz, however more testing with a wider group of devices is needed.}}&lt;br /&gt;
{{hint|Remember to run a benchmark tool (such as glmark2-es2) to help check stability.}}&lt;br /&gt;
&lt;br /&gt;
== CPU ==&lt;br /&gt;
&lt;br /&gt;
The stock speed of the A64 is 1.152 GHz. It is not recommended to the overclock the CPU because doing so greatly increases power and thermals and will overheat the device for little to no gain.&lt;br /&gt;
&lt;br /&gt;
== DRAM ==&lt;br /&gt;
&lt;br /&gt;
{{warning|1=It is not recommended to exceed 667 MHz clockspeed on the DRAM. 624MHz is likely the upper limit.}}&lt;br /&gt;
{{hint|Make sure to set your DRAM to a multiple of 24.}}&lt;br /&gt;
&lt;br /&gt;
When overclocking the GPU, it is a good idea to also overclock the DRAM, as the main bottleneck of the A64 SOC is the memory. The A64's maximum ram clockspeed falls just short of 667MHz. This may be unstable on your device however. &lt;br /&gt;
&lt;br /&gt;
Around 600 MHz (PC-1200) should work fine, however some people have reported instability at lower clockspeeds. Arch Linux Arm uses a default clockspeed of 552MHz, with uboot builds available to easily switch out for a higher (624) or lower (492) DRAM clockspeed.&lt;br /&gt;
&lt;br /&gt;
It is possible that by reverse engineering the DRAM driver from allwinner that auto tuning can be accomplished to get the best performance.&lt;br /&gt;
&lt;br /&gt;
Setting the DRAM clock is accomplished by modifying pinephone_defconfig in uboot (https://gitlab.com/pine64-org/u-boot/-/blob/crust/configs/pinephone_defconfig)&lt;br /&gt;
&lt;br /&gt;
You can find simple instructions on doing so here: [[Uboot]]&lt;br /&gt;
&lt;br /&gt;
== VPU ==&lt;br /&gt;
&lt;br /&gt;
In order to allocate more VRAM for the GPU you can add &amp;lt;code&amp;gt;cma=256&amp;lt;/code&amp;gt; to your kernel (or use kconfig with CONFIG_CMA_SIZE_MBYTES=256) cmdline in boot.scr which you will have to compile using mkimage. By default the kernel allocates only 64MB, and the maximum value is 256MB.&lt;br /&gt;
&lt;br /&gt;
In order to compile boot.scr you can run &amp;lt;code&amp;gt;mkimage -C none -A arm64 -T script -d boot.cmd boot.scr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note|You may not have a boot.cmd file in your boot directory and instead you may instead have a boot.txt}}&lt;br /&gt;
&lt;br /&gt;
== Cedrus ==&lt;br /&gt;
&lt;br /&gt;
Overclocking cedrus is achieved by modifying the kernel source code: https://elixir.bootlin.com/linux/latest/source/drivers/staging/media/sunxi/cedrus/cedrus.c#L507&lt;br /&gt;
&lt;br /&gt;
{{note|I'm (33yn2) not particularly sure if this makes any difference, or if it might infact have a negative impact. Probably not worth messing with.}}&lt;br /&gt;
&lt;br /&gt;
= Rockchip RK3399 based boards =&lt;br /&gt;
The RK3399 clocks are found in [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi]&lt;br /&gt;
&lt;br /&gt;
More optimised voltages and clocks can be found in [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi]&lt;br /&gt;
These include a slight overclock and undervolt, they are intended for the OP1 CPU found in many chromebooks but have worked fine in all recorded cases on regular RK3399s in other devices.&lt;br /&gt;
&lt;br /&gt;
==GPU==&lt;br /&gt;
Any clock speeds can be added for the GPU in &amp;lt;code&amp;gt;gpu_opp_table&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The highest safe voltage for the GPU is 1.2V as specified in the RK3399 schematic from Rockchip.&lt;br /&gt;
&lt;br /&gt;
Segfault has found that the RK3399 in his Pinebook Pro can reach 950MHz on the GPU while being stable.&lt;br /&gt;
&lt;br /&gt;
The stock speed for the GPU is 800Mhz.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
A set of available clock speeds that can be added to the CPU clusters can be found in &amp;lt;code&amp;gt;drivers/clk/rockchip/clk-rk3399.c&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;rk3399_cpuclkl_rates&amp;lt;/code&amp;gt; for the little cores and &amp;lt;code&amp;gt;rk3399_cpuclkb_rates&amp;lt;/code&amp;gt; for the big cores.&lt;br /&gt;
&lt;br /&gt;
These clock speeds can be added to &amp;lt;code&amp;gt;cluster0_opp&amp;lt;/code&amp;gt; for the small cores and &amp;lt;code&amp;gt;cluster1_opp&amp;lt;/code&amp;gt; for the big cores respectively.&lt;br /&gt;
&lt;br /&gt;
There is a hard limit of 1.8GHz on the little cores and 2.2GHz on the big cores.&lt;br /&gt;
&lt;br /&gt;
The highest safe voltage for the little cores is 1.2V and for the big cores is 1.25V.&lt;br /&gt;
&lt;br /&gt;
Segfault has found that the RK3399 in his Pinebook Pro can reach 1.6GHz on the little cores and 2.08GHz on the big ones.&lt;br /&gt;
&lt;br /&gt;
The stock speed for the little cores is 1.4GHz and on the big cores it is 1.8GHz, however the OP1 speeds default to 1.5GHz and 2.0GHz instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= ROCK64 =&lt;br /&gt;
&lt;br /&gt;
DTB is in &amp;lt;code&amp;gt;/boot/dtbs/rockchip/rk3328-rock64.dtb&amp;lt;/code&amp;gt;. CPU clock rates are inside &amp;lt;code&amp;gt;opp_table0&amp;lt;/code&amp;gt; as hexadecimal numbers in the &amp;lt;code&amp;gt;opp-hz&amp;lt;/code&amp;gt; field.&lt;br /&gt;
&lt;br /&gt;
Check the achieved clock speed with &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary | grep armclk&amp;lt;/code&amp;gt;. Does not seem to overclock at stock voltages at all, defaults to 408 MHz if it fails to set a clock rate. Stock voltage is 1.30V, just shy of the 1.35V maximum outlined in [https://www.rockchip.fr/RK3328%20datasheet%20V1.1.pdf the datasheet]. Overvolting to 1.325V just left the device in an unbootable state for CounterPillow, would not recommend.&lt;br /&gt;
&lt;br /&gt;
GPU needs investigating, but is seemingly tied to the bus speed.&lt;br /&gt;
&lt;br /&gt;
[[Category:SOPine]] [[Category:Pine A64]] [[Category:Pine H64]] [[Category:A64-LTS]] [[Category:PineBook]] [[Category:PinePhone]] [[Category:PineTab]] [[Category:Rock64]] [[Category:PineBook Pro]] [[Category:ROCKPro64]] [[Category:Allwinner A64]] [[Category:Allwinner H6]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Mainline_Hardware_Decoding&amp;diff=11315</id>
		<title>Mainline Hardware Decoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Mainline_Hardware_Decoding&amp;diff=11315"/>
		<updated>2021-09-06T00:29:18Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
&lt;br /&gt;
Onboard most SoCs there is what is referred to as a VPU (Video Processing Unit). The VPU is reponsible for efficient encoding and decoding of videos. Video decoding can be extremely useful for example if you wanted to watch or stream video from your device without a high CPU utilization (which results from software decoding). Below information can be found on the various SoCs used by PINE64 and their state of video decoding as a result of the mainline Linux drivers and software.&lt;br /&gt;
&lt;br /&gt;
=Allwinner-based devices=&lt;br /&gt;
&lt;br /&gt;
In 2018 Bootlin launched a crowdfunding campaign to bring a open source Allwinner VPU driver to mainline Linux, which became called Cedrus.&lt;br /&gt;
&lt;br /&gt;
The Cedrus media driver (For Allwinner SOCs such as A64) supported by mainline Linux supports H.264 and H.265 video decoding as of Linux 5.10, and with 5.11 came VP8 decoding support and a H.264 stateless video decoder interface. For more information refer to the [https://linux-sunxi.org/Sunxi-Cedrus#Codec_Support Sunxi wiki].&lt;br /&gt;
&lt;br /&gt;
=Rockchip-based devices=&lt;br /&gt;
&lt;br /&gt;
==More Resources==&lt;br /&gt;
&lt;br /&gt;
https://xnux.eu/devices/feature/cedrus-pp.html&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Mainline_Hardware_Decoding&amp;diff=11314</id>
		<title>Mainline Hardware Decoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Mainline_Hardware_Decoding&amp;diff=11314"/>
		<updated>2021-09-06T00:29:00Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
&lt;br /&gt;
Onboard most SoCs there is what is referred to as a VPU (Video Processing Unit). The VPU is reponsible for efficient encoding and decoding of videos. Video decoding can be extremely useful for example if you wanted to watch or stream video from your device without a high CPU utilization (which results from software decoding). Below information can be found on the various SoCs used by PINE64 and their state of video decoding as a result of the mainline Linux drivers and software.&lt;br /&gt;
&lt;br /&gt;
=Allwinner-based devices=&lt;br /&gt;
&lt;br /&gt;
In 2018 Bootlin launched a crowdfunding campaign to bring a open source Allwinner VPU driver to mainline Linux, which became called Cedrus.&lt;br /&gt;
&lt;br /&gt;
The Cedrus media driver (For Allwinner SOCs such as A64) supported by mainline Linux supports H.264 and H.265 video decoding as of Linux 5.10, and with 5.11 came VP8 decoding support and a H.264 stateless video decoder interface. For more information refer to the [https://linux-sunxi.org/Sunxi-Cedrus#Codec_Support Sunxi wiki].&lt;br /&gt;
&lt;br /&gt;
==More Resources==&lt;br /&gt;
&lt;br /&gt;
https://xnux.eu/devices/feature/cedrus-pp.html&lt;br /&gt;
&lt;br /&gt;
=Rockchip-based devices=&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Overclocking&amp;diff=11313</id>
		<title>Overclocking</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Overclocking&amp;diff=11313"/>
		<updated>2021-09-05T23:58:27Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Cedrus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|1= There is the possibility of damaging your equipment by overclocking. Do so at your own risk!}}&lt;br /&gt;
{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
{{hint|All information regarding clock speeds, voltages and more are stored in the DTB (Device Tree Blob). You can learn more about it [https://elinux.org/Device_Tree_Reference here].}}&lt;br /&gt;
&lt;br /&gt;
Overclocking is a way to get more performance out of the system by running it at higher clock speeds than the factory default, usually while putting out more heat and using more power (You can also downclock to possibly reduce power consumption and thermals at the cost of performance). It is highly recommended that you avoid overvolting the device, as that has a high risk of damaging the hardware, hence the warning at the beginning of this page. However, just some slight overclocks without the added voltage can not only improve performance, but not carry as much risk (Still: Do at your own risk!). It should be noted however that overclocking can cause instability, so you will need to test and see what values work best with your device (There is a silicon lottery for the Pinephone's hardware).&lt;br /&gt;
&lt;br /&gt;
= A64 =&lt;br /&gt;
&lt;br /&gt;
{{note|These instructions are targeting the Pinephone to simplify the explanation, however they can be used to also overclock other devices such as the Pinetab if you modify the proper DTB files.}}&lt;br /&gt;
&lt;br /&gt;
== Edit Pinephone DTS ==&lt;br /&gt;
&lt;br /&gt;
In order to overclock the Pinephone you will have to first convert the DTB file in &amp;lt;code&amp;gt;/boot/dtbs/allwinner/&amp;lt;/code&amp;gt; to a DTS file. You will see &amp;lt;code&amp;gt;sun50i-a64-pinephone-1.2.dtb&amp;lt;/code&amp;gt;, and also two other files with different pinephone mainboard revisions (1.1 and 1.0). You will want to select the correct file for your pinephone (Only choose 1.1 if you have a braveheart, As all other consumer pinephones use the 1.2 DTS).&lt;br /&gt;
&lt;br /&gt;
Once you've found the file, you can run the following command to convert the DTB to DTS:&lt;br /&gt;
&amp;lt;code&amp;gt;dtc -I dtb -O dts /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dtb -o /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, modify the newly converted .dts file and change the clockspeeds you wish to modify. You can simply use a text editor to do so.&lt;br /&gt;
&lt;br /&gt;
To convert back to DTB:&lt;br /&gt;
&amp;lt;code&amp;gt;dtc -I dts -O dtb /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts -o /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterwards you can simply reboot and check with &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary&amp;lt;/code&amp;gt; to see if the changes have correctly applied.&lt;br /&gt;
&lt;br /&gt;
{{note|In the future it is possible that there will be a driver to adjust clockspeeds of the A64 from userspace without the need to recompile. Currently the only way to overclock is to either compile your own kernel, or modify just the DTB (instructions above).}}&lt;br /&gt;
&lt;br /&gt;
== GPU ==&lt;br /&gt;
&lt;br /&gt;
Open &amp;lt;code&amp;gt;/boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts&amp;lt;/code&amp;gt; (You will have to find the source of the kernel used by your distribution. There is the Pine64 kernel, and Megi's) in a text editor following these instructions: https://wiki.pine64.org/wiki/Overclocking#Edit_Pinephone_DTS&lt;br /&gt;
&lt;br /&gt;
Look for &amp;lt;code&amp;gt;mali: gpu@1c4000 {&amp;lt;/code&amp;gt; and within that block search for &amp;lt;code&amp;gt;assigned-clock-rates = &amp;lt;432000000&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;assigned-clock-rates&amp;lt;/code&amp;gt; line should be set to &amp;lt;code&amp;gt;432000000&amp;lt;/code&amp;gt;, this means that the GPU is clocked at 432MHz by default. So if you want 500MHz, set the value to &amp;lt;code&amp;gt;500000000&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Save the dts file, and recompile the DTB. In order to check if the overclock was successfully applied you can run: &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{note|The file may be slightly different and you may need to enter the values as hexidecimals}}&lt;br /&gt;
{{hint|The GPU appears to run stable overclocked to 560 Mhz, however more testing with a wider group of devices is needed.}}&lt;br /&gt;
{{hint|Remember to run a benchmark tool (such as glmark2-es2) to help check stability.}}&lt;br /&gt;
&lt;br /&gt;
== CPU ==&lt;br /&gt;
&lt;br /&gt;
The stock speed of the A64 is 1.152 GHz. It is not recommended to the overclock the CPU because doing so greatly increases power and thermals and will overheat the device for little to no gain.&lt;br /&gt;
&lt;br /&gt;
== DRAM ==&lt;br /&gt;
&lt;br /&gt;
{{warning|1=It is not recommended to exceed 667 MHz clockspeed on the DRAM. 624MHz is likely the upper limit.}}&lt;br /&gt;
{{hint|Make sure to set your DRAM to a multiple of 24.}}&lt;br /&gt;
&lt;br /&gt;
When overclocking the GPU, it is a good idea to also overclock the DRAM, as the main bottleneck of the A64 SOC is the memory. The A64's maximum ram clockspeed falls just short of 667MHz. This may be unstable on your device however. &lt;br /&gt;
&lt;br /&gt;
Around 600 MHz (PC-1200) should work fine, however some people have reported instability at lower clockspeeds. Arch Linux Arm uses a default clockspeed of 552MHz, with uboot builds available to easily switch out for a higher (624) or lower (492) DRAM clockspeed.&lt;br /&gt;
&lt;br /&gt;
It is possible that by reverse engineering the DRAM driver from allwinner that auto tuning can be accomplished to get the best performance.&lt;br /&gt;
&lt;br /&gt;
Setting the DRAM clock is accomplished by modifying pinephone_defconfig in uboot (https://gitlab.com/pine64-org/u-boot/-/blob/crust/configs/pinephone_defconfig)&lt;br /&gt;
&lt;br /&gt;
You can find simple instructions on doing so here: [[Uboot]]&lt;br /&gt;
&lt;br /&gt;
== VPU ==&lt;br /&gt;
&lt;br /&gt;
In order to allocate more VRAM for the GPU you can add &amp;lt;code&amp;gt;cma=256&amp;lt;/code&amp;gt; to your kernel (or use kconfig with CONFIG_CMA_SIZE_MBYTES=256) cmdline in boot.scr which you will have to compile using mkimage. By default the kernel allocates only 64MB, and the maximum value is 256MB.&lt;br /&gt;
&lt;br /&gt;
In order to compile boot.scr you can run &amp;lt;code&amp;gt;mkimage -C none -A arm64 -T script -d boot.cmd boot.scr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note|You may not have a boot.cmd file in your boot directory and instead you may instead have a boot.txt}}&lt;br /&gt;
&lt;br /&gt;
== Cedrus ==&lt;br /&gt;
&lt;br /&gt;
Overclocking cedrus is achieved by modifying the kernel source code: https://elixir.bootlin.com/linux/latest/source/drivers/staging/media/sunxi/cedrus/cedrus.c#L507&lt;br /&gt;
&lt;br /&gt;
{{note|I'm (33yn2) not particularly sure if this makes any difference, or if it might infact have a negative impact. Probably not worth messing with.}}&lt;br /&gt;
&lt;br /&gt;
= Rockchip RK3399 based boards =&lt;br /&gt;
The RK3399 clocks are found in [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi]&lt;br /&gt;
&lt;br /&gt;
More optimised voltages and clocks can be found in [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi]&lt;br /&gt;
These include a slight overclock and undervolt, they are intended for the OP1 CPU found in many chromebooks but have worked fine in all recorded cases on regular RK3399s in other devices.&lt;br /&gt;
&lt;br /&gt;
==GPU==&lt;br /&gt;
Any clock speeds can be added for the GPU in &amp;lt;code&amp;gt;gpu_opp_table&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The highest safe voltage for the GPU is 1.2V as specified in the RK3399 schematic from Rockchip.&lt;br /&gt;
&lt;br /&gt;
Segfault has found that the RK3399 in his Pinebook Pro can reach 950MHz on the GPU while being stable.&lt;br /&gt;
&lt;br /&gt;
The stock speed for the GPU is 800Mhz.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
A set of available clock speeds that can be added to the CPU clusters can be found in &amp;lt;code&amp;gt;drivers/clk/rockchip/clk-rk3399.c&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;rk3399_cpuclkl_rates&amp;lt;/code&amp;gt; for the little cores and &amp;lt;code&amp;gt;rk3399_cpuclkb_rates&amp;lt;/code&amp;gt; for the big cores.&lt;br /&gt;
&lt;br /&gt;
These clock speeds can be added to &amp;lt;code&amp;gt;cluster0_opp&amp;lt;/code&amp;gt; for the small cores and &amp;lt;code&amp;gt;cluster1_opp&amp;lt;/code&amp;gt; for the big cores respectively.&lt;br /&gt;
&lt;br /&gt;
There is a hard limit of 1.8GHz on the little cores and 2.2GHz on the big cores.&lt;br /&gt;
&lt;br /&gt;
The highest safe voltage for the little cores is 1.2V and for the big cores is 1.25V.&lt;br /&gt;
&lt;br /&gt;
Segfault has found that the RK3399 in his Pinebook Pro can reach 1.6GHz on the little cores and 2.08GHz on the big ones.&lt;br /&gt;
&lt;br /&gt;
The stock speed for the little cores is 1.4GHz and on the big cores it is 1.8GHz, however the OP1 speeds default to 1.5GHz and 2.0GHz instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= ROCK64 =&lt;br /&gt;
&lt;br /&gt;
DTB is in &amp;lt;code&amp;gt;/boot/dtbs/rockchip/rk3328-rock64.dtb&amp;lt;/code&amp;gt;. CPU clock rates are inside &amp;lt;code&amp;gt;opp_table0&amp;lt;/code&amp;gt; as hexadecimal numbers in the &amp;lt;code&amp;gt;opp-hz&amp;lt;/code&amp;gt; field.&lt;br /&gt;
&lt;br /&gt;
Check the achieved clock speed with &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary | grep armclk&amp;lt;/code&amp;gt;. Does not seem to overclock at stock voltages at all, defaults to 408 MHz if it fails to set a clock rate. Stock voltage is 1.30V, just shy of the 1.35V maximum outlined in [https://www.rockchip.fr/RK3328%20datasheet%20V1.1.pdf the datasheet]. Overvolting to 1.325V just left the device in an unbootable state for CounterPillow, would not recommend.&lt;br /&gt;
&lt;br /&gt;
GPU needs investigating, but is seemingly tied to the bus speed.&lt;br /&gt;
&lt;br /&gt;
[[Category:SOPine]] [[Category:Pine A64]] [[Category:Pine H64]] [[Category:A64-LTS]] [[Category:PineBook]] [[Category:PinePhone]] [[Category:PineTab]] [[Category:Rock64]] [[Category:PineBook Pro]] [[Category:ROCKPro64]] [[Category:Allwinner A64]] [[Category:Allwinner H6]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineTime&amp;diff=10980</id>
		<title>PineTime</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineTime&amp;diff=10980"/>
		<updated>2021-08-07T02:12:08Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Companion Apps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Frequently asked questions / Getting started ==&lt;br /&gt;
&lt;br /&gt;
'''Read these first!'''&lt;br /&gt;
&lt;br /&gt;
* [[Upgrade PineTime to InfiniTime 1.0.0|Upgrading your new PineTime to InfiniTime 1.0.0]]&lt;br /&gt;
* [[PineTime FAQ| Frequently Asked Questions about the devkit]]&lt;br /&gt;
* [[Reprogramming the PineTime|Reprogramming the PineTime (development kit)]]&lt;br /&gt;
* [[Switching your PineTime between InfiniTime and Wasp-os]]&lt;br /&gt;
&lt;br /&gt;
== Default OS ==&lt;br /&gt;
&lt;br /&gt;
The current default operating system on the PineTime is called [[InfiniTime]], you can find more information about the firmware on its GitHub page. First devkits shipped with a proprietary custom firmware.&lt;br /&gt;
&lt;br /&gt;
You can find a list of available firmware and other software here: [[PineTime Development]]&lt;br /&gt;
&lt;br /&gt;
== Companion Apps ==&lt;br /&gt;
&lt;br /&gt;
PineTime/InfiniTime needs a companion app to e.g. upload a firmware, get notifications from a phone, or just get the date/time.   &lt;br /&gt;
Here are some companion apps:&lt;br /&gt;
&lt;br /&gt;
* [https://www.gadgetbridge.org Gadgetbridge] (Android &amp;gt;= 4.4) - Companion mobile app, supports updating firmware/bootloader, send notifications, etc.&lt;br /&gt;
* [https://openrepos.net/content/piggz/amazfish Amazfish] (SailfishOS and Linux) - Companion mobile and desktop app, supports updating firmware/bootloader, send notifications, etc.&lt;br /&gt;
* [https://github.com/alexr4535/siglo Siglo] (Linux) - Companion desktop app.&lt;br /&gt;
* [https://github.com/ZephyrLabs/PinetimeFlasher PinetimeFlasher] (Windows) - Companion desktop app, only supports flashing firmware.&lt;br /&gt;
* [https://apps.apple.com/us/app/nrf-connect-for-mobile/id1054362403 nRFConnect] (iOS) - Only supports flashing firmware.&lt;br /&gt;
* [https://github.com/xan-m/Infini-iOS Infini-iOS] (iOS) - Companion mobile app in early development which will support updating firmware/bootloader, send notifications, etc.&lt;br /&gt;
&lt;br /&gt;
== Short overview  / Specifications ==&lt;br /&gt;
'''Dimensions:''' 37.5 x 40 x 11mm &amp;lt;br&amp;gt;&lt;br /&gt;
'''Weight:''' 38 grams &amp;lt;br&amp;gt;&lt;br /&gt;
'''IP Rating:''' IP67 (waterproof to 1 meter (sealed edition!)) &amp;lt;br&amp;gt;&lt;br /&gt;
'''Display:'''&lt;br /&gt;
: '''Size:''' 1.3 inches (33mm) diagonal&lt;br /&gt;
: '''Type:''' IPS capacitive touchscreen, RGB 65K colors&lt;br /&gt;
: '''Display Controller:''' ST7789&lt;br /&gt;
: '''Resolution:''' 240x240 pixels &amp;lt;br&amp;gt;&lt;br /&gt;
'''System on Chip:''' Nordic Semiconductor nRF52832 &amp;lt;br&amp;gt;&lt;br /&gt;
'''Flash:''' 512KB with additional 4MB SPI NOR &amp;lt;br&amp;gt;&lt;br /&gt;
'''RAM:''' 64KB &amp;lt;br&amp;gt;&lt;br /&gt;
'''Bluetooth:''' [[PineTime_Bluetooth|5.0 (including Bluetooth Low Energy)]] &amp;lt;br&amp;gt;&lt;br /&gt;
'''Sensors:''' Accelerometer, Heart rate sensor &amp;lt;br&amp;gt;&lt;br /&gt;
'''Feedback:''' Vibration motor &amp;lt;br&amp;gt;&lt;br /&gt;
'''Battery:''' 170-180mAh 3.8V LiPo&lt;br /&gt;
&lt;br /&gt;
= Community =&lt;br /&gt;
&lt;br /&gt;
== Forum ==&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=134 PineTime forum]&lt;br /&gt;
&lt;br /&gt;
== Chat ==&lt;br /&gt;
* [https://app.element.io/#/room/#pinetime:matrix.org Matrix Channel] (No login required to read)&lt;br /&gt;
* IRC Server: [ircs://irc.pine64.org#pinetime irc.pine64.org] Channel: PineTime&lt;br /&gt;
* [https://t.me/pinetime Telegram group]&lt;br /&gt;
* [https://discordapp.com/invite/DgB7kzr Discord server invite link]&lt;br /&gt;
&lt;br /&gt;
=== Developers and coding ===&lt;br /&gt;
* [https://app.element.io/#/room/#pinetime-dev:matrix.org Matrix Channel] (No login required to read)&lt;br /&gt;
* [https://t.me/pinetime_dev Telegram group]&lt;br /&gt;
* [https://discordapp.com/invite/DgB7kzr Discord server invite link]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
To read more about development on the PineTime, the projects available and more technical details, check out [[PineTime Development]]&lt;br /&gt;
&lt;br /&gt;
== Useful articles and blog posts == &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* [https://www.ncartron.org/one-week-with-my-pinetime---a-feedback.html Using the PineTime in production (January 2021)]&lt;br /&gt;
&lt;br /&gt;
* [https://medium.com/swlh/sneak-peek-of-pinetime-smart-watch-and-why-its-perfect-for-teaching-iot-81b74161c159 Sneak Peek of PineTime Smart Watch… And why it’s perfect for teaching IoT]&lt;br /&gt;
&lt;br /&gt;
* [https://medium.com/@ly.lee/building-a-rust-driver-for-pinetimes-touch-controller-cbc1a5d5d3e9 Building a Rust Driver for PineTime’s Touch Controller]&lt;br /&gt;
&lt;br /&gt;
* [https://medium.com/@ly.lee/porting-druid-rust-widgets-to-pinetime-smart-watch-7e1d5a5d977a Porting (druid) Rust Widgets to PineTime Smart Watch]&lt;br /&gt;
&lt;br /&gt;
* [https://medium.com/@ly.lee/optimising-pinetimes-display-driver-with-rust-and-mynewt-3ba269ea2f5c Optimising PineTime’s Display Driver with Rust and Mynewt]&lt;br /&gt;
&lt;br /&gt;
* [https://electronut.in/getting-started-with-zephyr-rtos-on-nordic-nrf52832-hackable/ Getting Started with Zephyr RTOS on Nordic nRF52832 hackaBLE]&lt;br /&gt;
&lt;br /&gt;
* [https://blog.aegrel.ee/absniffer-cmsis-dap-sniffer.html Removing the lock and installing another firmware on the nRF52832 using CMSIS-DAP dongle on Linux]&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/JF002/nrf52-baseproject/wiki/Build,-program-and-debug-NRF52-project-with-JLink,-CMake-and-CLion Build, program and debug NRF52 project with JLink, CMake and CLion]&lt;br /&gt;
&lt;br /&gt;
* [https://www.nrbtech.io/blog/2020/1/4/using-clion-for-nordic-nrf52-projects Using CLion for Nordic nRF52 projects]&lt;br /&gt;
&lt;br /&gt;
* [https://dev.to/aaronc81/flashing-your-pinetime-using-an-st-link-and-openocd-54dd Flashing your PineTime using an ST-Link and OpenOCD]&lt;br /&gt;
&lt;br /&gt;
* [https://zephyrlabs.github.io/Watchfaces/ Zephyrlabs: just a bunch of watchfaces made for the pinetime]&lt;br /&gt;
&lt;br /&gt;
*[https://pankajraghav.com/2021/04/03/PINETIME-STOPCLOCK.html Creating a stopwatch in Pinetime (with Infinitime)]&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Note: The factory-default software on the PineTime does not auto-detect the display being disconnected when it has already booted. That can cause garbled output, to fix it just restart the PineTime.&lt;br /&gt;
&lt;br /&gt;
The display is driven using the ST7789 display controller. Use the following pins to drive the screen:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PineTime pin&lt;br /&gt;
! ST7789 pin&lt;br /&gt;
|-&lt;br /&gt;
| LCD_SCK (P0.02)&lt;br /&gt;
| SPI clock&lt;br /&gt;
|-&lt;br /&gt;
| LCD_SDI (P0.03)&lt;br /&gt;
| SPI MOSI&lt;br /&gt;
|-&lt;br /&gt;
| LCD_RS (P0.18)&lt;br /&gt;
| Command/Data pin (CD)&lt;br /&gt;
|-&lt;br /&gt;
| LCD_CS (P0.25)&lt;br /&gt;
| Chip select&lt;br /&gt;
|-&lt;br /&gt;
| LCD_RESET (P0.26)&lt;br /&gt;
| Display reset&lt;br /&gt;
|-&lt;br /&gt;
| LCD_BACKLIGHT_{LOW,MID,HIGH}&lt;br /&gt;
| Backlight (active low)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
* Chip select must be held low while driving the display. It must be high when using other SPI devices on the same bus (such as external flash storage) so that the display controller won't respond to the wrong commands.&lt;br /&gt;
* SPI must be used in mode 3. Mode 0 (the default) won't work.&lt;br /&gt;
* LCD_DISPLAY_* is used to enable the backlight. Set at least one to low to see anything on the screen.&lt;br /&gt;
* Use SPI at 8MHz (the fastest clock available on the nRF52832) because otherwise refreshing will be super slow.&lt;br /&gt;
&lt;br /&gt;
'''References''':&lt;br /&gt;
&lt;br /&gt;
[https://github.com/adafruit/Adafruit-ST7735-Library/ Adafruit ST7789 driver in cpp]&lt;br /&gt;
&lt;br /&gt;
== Battery measurement ==&lt;br /&gt;
&lt;br /&gt;
Reading whether the PineTime has power attached is easy: simply read the charge indication pin (P0.12). When it is high it is running on battery, when it is low it is charging.&lt;br /&gt;
&lt;br /&gt;
Reading the battery voltage is a bit harder. For that you can use the battery voltage pin on P0.31 (AIN7). The returned value is 12 bits, which means it is 0..4095. You can get the measured voltage with the following formula, assuming a reference voltage of 3.3V (this is configurable in the ADC):&lt;br /&gt;
&lt;br /&gt;
 adcVoltage = adcValue / (4095 / 3.3)&lt;br /&gt;
&lt;br /&gt;
The measured voltage is actually half of the actual battery voltage, because the ADC is connected between a voltage divider where both resistors are 1MΩ. This can be corrected by multiplying the value:&lt;br /&gt;
&lt;br /&gt;
 batteryVoltage = adcValue * 2 / (4095 / 3.3)&lt;br /&gt;
&lt;br /&gt;
It's often better to avoid floating point values on embedded systems and in this case there is no reason to use float at all, we can just represent the value in millivolts. Therefore the formula can be simplified to:&lt;br /&gt;
&lt;br /&gt;
 batteryVoltage = adcValue * 2000 / (4095 / 3.3)&lt;br /&gt;
 batteryVoltage = adcValue * 2000 / 1241&lt;br /&gt;
&lt;br /&gt;
Converting this voltage to an estimated capacity in percent requires a more complicated algorithm, because Lithium-ion batteries have a non-linear discharge curve.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Button ==&lt;br /&gt;
&lt;br /&gt;
The button on the side of the PineTime is disabled by default. To enable it, drive the button out pin (P0.15) high.&lt;br /&gt;
&lt;br /&gt;
While enabled, the button in pin (P0.13) will be high when the button is pressed, and low when it is not pressed.&lt;br /&gt;
&lt;br /&gt;
== Touch panel ==&lt;br /&gt;
&lt;br /&gt;
The touch panel is controlled by a Hynitron CST816S chips. Unfortunately, there is not much information about this chip on the internet apart from the datasheet below and a [https://github.com/lupyuen/hynitron_i2c_cst0xxse/ reference driver]. This is enough to implement a basic driver, but crucial information needed to implement advanced functionalities are missing (I²C protocol and registers, timings, power modes,...).&lt;br /&gt;
&lt;br /&gt;
=== Pins ===&lt;br /&gt;
&lt;br /&gt;
* P0.10 : Reset&lt;br /&gt;
* P0.28 : Interrupt (signal to the CPU when a touch event is detected)&lt;br /&gt;
* P0.06 : I²C SDA&lt;br /&gt;
* P0.07 : I²C SCL&lt;br /&gt;
&lt;br /&gt;
=== I²C ===&lt;br /&gt;
&lt;br /&gt;
* Device address : 0x15&lt;br /&gt;
* Frequency : from 10Khz to 400Khz&lt;br /&gt;
&lt;br /&gt;
'''NOTE: ''' The controller go to sleep when no event is detected. In sleep mode, the controller does not communicate on the I²C bus (it appears disconnected). So, for the communication to work, you need to tap on the screen so that the chip wakes-up.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: ''' The I²C bus, also known as TWI bus has known issues, make sure to write your TWI driver with timeouts.&lt;br /&gt;
&lt;br /&gt;
=== Touch events ===&lt;br /&gt;
&lt;br /&gt;
Touch information is available from the 63 first registers of the controller. Remember: the device is in sleep mode when no touch event is detected. It means that you can read the register only when the touch controller detected an event. You can use the ''Interrupt'' pin to detect such event in the software. &lt;br /&gt;
&lt;br /&gt;
These 63 bytes contain up to 10 touch point (X, Y, event type, pressure,...) : &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Byte&lt;br /&gt;
! Bit7&lt;br /&gt;
! Bit6&lt;br /&gt;
! Bit5&lt;br /&gt;
! Bit4&lt;br /&gt;
! Bit3&lt;br /&gt;
! Bit2&lt;br /&gt;
! Bit1&lt;br /&gt;
! Bit0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|colspan=&amp;quot;8&amp;quot;|?&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|colspan=&amp;quot;8&amp;quot;|GestureID : (Gesture code ,&lt;br /&gt;
&lt;br /&gt;
0x00: no gesture,&lt;br /&gt;
&lt;br /&gt;
0x01: Slide down,&lt;br /&gt;
&lt;br /&gt;
0x02: Slide up,&lt;br /&gt;
&lt;br /&gt;
0x03: Slide left,&lt;br /&gt;
&lt;br /&gt;
0x04: Slide right,&lt;br /&gt;
&lt;br /&gt;
0x05: Single click,&lt;br /&gt;
&lt;br /&gt;
0x0B: Double click,&lt;br /&gt;
&lt;br /&gt;
0x0C: Long press) &lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|? &lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|Number of touch points &lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Event (0 = Down, 1 = Up, 2 = Contact)&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|?&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|X (MSB) coordinate&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|colspan=&amp;quot;8&amp;quot;|X (LSB) coordinate&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|?&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Touch ID&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|Y (MSB) coordinate&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|colspan=&amp;quot;8&amp;quot;|Y (LSB) coordinate&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|colspan=&amp;quot;8&amp;quot;|Pressure (?)&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|colspan=&amp;quot;8&amp;quot;|Miscellaneous (?)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Bytes 3 to 8 are repeated 10 times (10*6 + 3 = 63 bytes).&lt;br /&gt;
&lt;br /&gt;
'''NOTES'''&lt;br /&gt;
&lt;br /&gt;
* The touch controller seems to report only 1 touch point&lt;br /&gt;
* Fields X, Y, Number of touch points and touch ID are updated. The others are always 0.&lt;br /&gt;
&lt;br /&gt;
=== Registers ===&lt;br /&gt;
&lt;br /&gt;
The reference driver specifies some registers and value, but there is no information about them: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!Register&lt;br /&gt;
!Address&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_INT_CNT&lt;br /&gt;
|0x8F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_FLOW_WORK_CNT&lt;br /&gt;
|0x91&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_WORKMODE &lt;br /&gt;
|0x00&lt;br /&gt;
|0 = WORK, 0x40 = FACTORY&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_CHIP_ID&lt;br /&gt;
|0xA3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_CHIP_ID2&lt;br /&gt;
|0x9F&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_POWER_MODE&lt;br /&gt;
|0xA5&lt;br /&gt;
|0x03 = SLEEP (reset the touchpanel using the reset pin before using this register : pin_low, delay 5ms, pin_high, delay 50ms then write 3 to register 0xA5)&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_FW_VER&lt;br /&gt;
|0xA6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_VENDOR_ID&lt;br /&gt;
|0xA8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_LCD_BUSY_NUM&lt;br /&gt;
|0xAB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_FACE_DEC_MODE_EN&lt;br /&gt;
|0xB0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_GLOVE_MODE_EN&lt;br /&gt;
|0xC0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_COVER_MODE_EN&lt;br /&gt;
|0xC1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_CHARGER_MODE_EN&lt;br /&gt;
|0x8B&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_GESTURE_EN&lt;br /&gt;
|0xD0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_GESTURE_OUTPUT_ADDRESS&lt;br /&gt;
|0xD3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_ESD_SATURATE 0xED&lt;br /&gt;
|0xED&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''WARNING : ''' &amp;lt;del&amp;gt;Writing the SLEEP command (write 0x05 in HYN_REG_POWER_MODE) seems to freeze the controller (it returns only static values) until the battery is totally drained and the whole system reset. Analysis and debugging is more than welcome!&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Accelerometer==&lt;br /&gt;
The on board accelerometer is Bosch BMA421, connected to the I2C bus.&lt;br /&gt;
&lt;br /&gt;
=== Pins ===&lt;br /&gt;
&lt;br /&gt;
* P0.06 : I²C SDA&lt;br /&gt;
* P0.07 : I²C SCL&lt;br /&gt;
* P0.08 : Interrupt&lt;br /&gt;
&lt;br /&gt;
I2C Device address : 0x18&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Datasheets and Schematics =&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
* [https://files.pine64.org/doc/PineTime/PineTime%20Schematic-V1.0a-20191103.pdf PineTime Schematic ver1.0a]&lt;br /&gt;
* [https://files.pine64.org/doc/PineTime/PineTime%20Port%20Assignment%20rev1.0.pdf PineTime GPIO Port Assignment ver1.0]&lt;br /&gt;
&lt;br /&gt;
Note: The part number for the SPI FLASH in the schematic diagram is not correct, the PineTime features a larger external FLASH device, see below.&lt;br /&gt;
&lt;br /&gt;
== Chip Datasheets ==&lt;br /&gt;
* NORDIC nRF52832 information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/nRF52832%20product%20brief.pdf nRF52832 Product Brief]&lt;br /&gt;
** [https://infocenter.nordicsemi.com/pdf/nRF52832_PS_v1.4.pdf nRF52832 Product Specification v1.4]&lt;br /&gt;
* ARMv7-M information:&lt;br /&gt;
** [https://static.docs.arm.com/ddi0403/eb/DDI0403E_B_armv7m_arm.pdf ARMv7-M Architecture Reference Manual]&lt;br /&gt;
&lt;br /&gt;
== Component Datasheets ==&lt;br /&gt;
* PMU (Power Management Unit) information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/SGM40561.pdf SGMicro SGM40561 Single Cell Charger Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/SGMICRO-SGM2036.pdf SGMicro SGM2036 3.3V Low Power Low Dropout RF Linear Regulator Datasheet]&lt;br /&gt;
* SPI Flash information:&lt;br /&gt;
** [https://www.elnec.com/en/device/XTX/XT25F32B+%28QuadSPI%29+%5BSOP8-200%5D/ XTX XT25F32B 32Mb(4MB) SPI NOR Flash] (data sheets for this part are hard to find but it acts similar to other QuadSPI SPI NOR Flash such as [https://www.macronix.com/Lists/Datasheet/Attachments/7426/MX25L3233F,%203V,%2032Mb,%20v1.6.pdf Macronix 32Mb(4MB) SPI NOR Flash])&lt;br /&gt;
** [https://datasheet.lcsc.com/szlcsc/2005251035_XTX-XT25F32BSOIGU-S_C558851.pdf XTX XT25F32B]&lt;br /&gt;
** IDs for XT25F32B are: manufacturer (0x0b), device (0x15), memory type (0x40), density (0x16)&lt;br /&gt;
* LCD Panel:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/PineTime%20LCD%20Panel.jpg 1.3&amp;quot; 240x240 IPS LCD Panel Specification for PineTime]&lt;br /&gt;
** [https://wiki.pine64.org/images/5/54/ST7789V_v1.6.pdf 11.6&amp;quot; Sitronix LCD Driver/Controller Datasheet]&lt;br /&gt;
* Touchpad information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/PineTime%20Touch%20Panel.jpg Touchpad Specification for PineTimel]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/CST816S数据手册V1.1.pdf 11.6&amp;quot; Hynitron CST816S Capacitive Touch Controller Datasheet in Chinese]&lt;br /&gt;
** [https://wiki.pine64.org/images/2/2f/CST816S.zip Touch Controller Datasheet en]&lt;br /&gt;
* Sensor:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/BST-BMA421-FL000.pdf BOSCH BMA421 Triaxial VAcceleration Sensor Product Brief]&lt;br /&gt;
** [https://wiki.pine64.org/images/c/cc/Bst-bma400-ds000.pdf BOSCH BMA400 3-axes ultra-low power accelerometer datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/HRS3300%20Heart%20Rate%20Sensor.pdf TianYiHeXin HRS3300 PPG Heart Rate Sensor Data Sheet]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Community case design =&lt;br /&gt;
&lt;br /&gt;
* [https://www.thingiverse.com/thing:4172849 PineTime Smart Watch case by dara0s at thingiverse]&lt;br /&gt;
* [https://www.thingiverse.com/thing:4651462 PineTime dev kit back fix by joaquimorg at thingiverse]&lt;br /&gt;
* [https://www.thingiverse.com/thing:4763267 PineTime dev kit charging holder v4 by zevix81 at thingiverse]&lt;br /&gt;
&lt;br /&gt;
[[Category:PineTime]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineTime&amp;diff=10979</id>
		<title>PineTime</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineTime&amp;diff=10979"/>
		<updated>2021-08-07T02:11:47Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Companion Apps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Frequently asked questions / Getting started ==&lt;br /&gt;
&lt;br /&gt;
'''Read these first!'''&lt;br /&gt;
&lt;br /&gt;
* [[Upgrade PineTime to InfiniTime 1.0.0|Upgrading your new PineTime to InfiniTime 1.0.0]]&lt;br /&gt;
* [[PineTime FAQ| Frequently Asked Questions about the devkit]]&lt;br /&gt;
* [[Reprogramming the PineTime|Reprogramming the PineTime (development kit)]]&lt;br /&gt;
* [[Switching your PineTime between InfiniTime and Wasp-os]]&lt;br /&gt;
&lt;br /&gt;
== Default OS ==&lt;br /&gt;
&lt;br /&gt;
The current default operating system on the PineTime is called [[InfiniTime]], you can find more information about the firmware on its GitHub page. First devkits shipped with a proprietary custom firmware.&lt;br /&gt;
&lt;br /&gt;
You can find a list of available firmware and other software here: [[PineTime Development]]&lt;br /&gt;
&lt;br /&gt;
== Companion Apps ==&lt;br /&gt;
&lt;br /&gt;
PineTime/InfiniTime needs a companion app to e.g. upload a firmware, get notifications from a phone, or just get the date/time.   &lt;br /&gt;
Here are some companion apps:&lt;br /&gt;
&lt;br /&gt;
* [https://www.gadgetbridge.org Gadgetbridge] (Android &amp;gt;= 4.4) - Companion mobile app, supports updating firmware/bootloader, send notifications, etc.&lt;br /&gt;
* [https://openrepos.net/content/piggz/amazfish Amazfish] (SailfishOS and Linux) - Companion mobile and desktop app, supports updating firmware/bootloader, send notifications, etc.&lt;br /&gt;
* [https://github.com/alexr4535/siglo Siglo] (Linux) - Companion desktop app.&lt;br /&gt;
* [https://github.com/ZephyrLabs/PinetimeFlasher PinetimeFlasher] (Windows) - Companion desktop app, only supports flashing firmware.&lt;br /&gt;
* [https://apps.apple.com/us/app/nrf-connect-for-mobile/id1054362403 nRFConnect] (iOS) - Only supports flashing firmware.&lt;br /&gt;
* [https://github.com/xan-m/Infini-iOS (iOS) - Companion mobile app in early development which will support updating firmware/bootloader, send notifications, etc.&lt;br /&gt;
&lt;br /&gt;
== Short overview  / Specifications ==&lt;br /&gt;
'''Dimensions:''' 37.5 x 40 x 11mm &amp;lt;br&amp;gt;&lt;br /&gt;
'''Weight:''' 38 grams &amp;lt;br&amp;gt;&lt;br /&gt;
'''IP Rating:''' IP67 (waterproof to 1 meter (sealed edition!)) &amp;lt;br&amp;gt;&lt;br /&gt;
'''Display:'''&lt;br /&gt;
: '''Size:''' 1.3 inches (33mm) diagonal&lt;br /&gt;
: '''Type:''' IPS capacitive touchscreen, RGB 65K colors&lt;br /&gt;
: '''Display Controller:''' ST7789&lt;br /&gt;
: '''Resolution:''' 240x240 pixels &amp;lt;br&amp;gt;&lt;br /&gt;
'''System on Chip:''' Nordic Semiconductor nRF52832 &amp;lt;br&amp;gt;&lt;br /&gt;
'''Flash:''' 512KB with additional 4MB SPI NOR &amp;lt;br&amp;gt;&lt;br /&gt;
'''RAM:''' 64KB &amp;lt;br&amp;gt;&lt;br /&gt;
'''Bluetooth:''' [[PineTime_Bluetooth|5.0 (including Bluetooth Low Energy)]] &amp;lt;br&amp;gt;&lt;br /&gt;
'''Sensors:''' Accelerometer, Heart rate sensor &amp;lt;br&amp;gt;&lt;br /&gt;
'''Feedback:''' Vibration motor &amp;lt;br&amp;gt;&lt;br /&gt;
'''Battery:''' 170-180mAh 3.8V LiPo&lt;br /&gt;
&lt;br /&gt;
= Community =&lt;br /&gt;
&lt;br /&gt;
== Forum ==&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=134 PineTime forum]&lt;br /&gt;
&lt;br /&gt;
== Chat ==&lt;br /&gt;
* [https://app.element.io/#/room/#pinetime:matrix.org Matrix Channel] (No login required to read)&lt;br /&gt;
* IRC Server: [ircs://irc.pine64.org#pinetime irc.pine64.org] Channel: PineTime&lt;br /&gt;
* [https://t.me/pinetime Telegram group]&lt;br /&gt;
* [https://discordapp.com/invite/DgB7kzr Discord server invite link]&lt;br /&gt;
&lt;br /&gt;
=== Developers and coding ===&lt;br /&gt;
* [https://app.element.io/#/room/#pinetime-dev:matrix.org Matrix Channel] (No login required to read)&lt;br /&gt;
* [https://t.me/pinetime_dev Telegram group]&lt;br /&gt;
* [https://discordapp.com/invite/DgB7kzr Discord server invite link]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
To read more about development on the PineTime, the projects available and more technical details, check out [[PineTime Development]]&lt;br /&gt;
&lt;br /&gt;
== Useful articles and blog posts == &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* [https://www.ncartron.org/one-week-with-my-pinetime---a-feedback.html Using the PineTime in production (January 2021)]&lt;br /&gt;
&lt;br /&gt;
* [https://medium.com/swlh/sneak-peek-of-pinetime-smart-watch-and-why-its-perfect-for-teaching-iot-81b74161c159 Sneak Peek of PineTime Smart Watch… And why it’s perfect for teaching IoT]&lt;br /&gt;
&lt;br /&gt;
* [https://medium.com/@ly.lee/building-a-rust-driver-for-pinetimes-touch-controller-cbc1a5d5d3e9 Building a Rust Driver for PineTime’s Touch Controller]&lt;br /&gt;
&lt;br /&gt;
* [https://medium.com/@ly.lee/porting-druid-rust-widgets-to-pinetime-smart-watch-7e1d5a5d977a Porting (druid) Rust Widgets to PineTime Smart Watch]&lt;br /&gt;
&lt;br /&gt;
* [https://medium.com/@ly.lee/optimising-pinetimes-display-driver-with-rust-and-mynewt-3ba269ea2f5c Optimising PineTime’s Display Driver with Rust and Mynewt]&lt;br /&gt;
&lt;br /&gt;
* [https://electronut.in/getting-started-with-zephyr-rtos-on-nordic-nrf52832-hackable/ Getting Started with Zephyr RTOS on Nordic nRF52832 hackaBLE]&lt;br /&gt;
&lt;br /&gt;
* [https://blog.aegrel.ee/absniffer-cmsis-dap-sniffer.html Removing the lock and installing another firmware on the nRF52832 using CMSIS-DAP dongle on Linux]&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/JF002/nrf52-baseproject/wiki/Build,-program-and-debug-NRF52-project-with-JLink,-CMake-and-CLion Build, program and debug NRF52 project with JLink, CMake and CLion]&lt;br /&gt;
&lt;br /&gt;
* [https://www.nrbtech.io/blog/2020/1/4/using-clion-for-nordic-nrf52-projects Using CLion for Nordic nRF52 projects]&lt;br /&gt;
&lt;br /&gt;
* [https://dev.to/aaronc81/flashing-your-pinetime-using-an-st-link-and-openocd-54dd Flashing your PineTime using an ST-Link and OpenOCD]&lt;br /&gt;
&lt;br /&gt;
* [https://zephyrlabs.github.io/Watchfaces/ Zephyrlabs: just a bunch of watchfaces made for the pinetime]&lt;br /&gt;
&lt;br /&gt;
*[https://pankajraghav.com/2021/04/03/PINETIME-STOPCLOCK.html Creating a stopwatch in Pinetime (with Infinitime)]&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Note: The factory-default software on the PineTime does not auto-detect the display being disconnected when it has already booted. That can cause garbled output, to fix it just restart the PineTime.&lt;br /&gt;
&lt;br /&gt;
The display is driven using the ST7789 display controller. Use the following pins to drive the screen:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PineTime pin&lt;br /&gt;
! ST7789 pin&lt;br /&gt;
|-&lt;br /&gt;
| LCD_SCK (P0.02)&lt;br /&gt;
| SPI clock&lt;br /&gt;
|-&lt;br /&gt;
| LCD_SDI (P0.03)&lt;br /&gt;
| SPI MOSI&lt;br /&gt;
|-&lt;br /&gt;
| LCD_RS (P0.18)&lt;br /&gt;
| Command/Data pin (CD)&lt;br /&gt;
|-&lt;br /&gt;
| LCD_CS (P0.25)&lt;br /&gt;
| Chip select&lt;br /&gt;
|-&lt;br /&gt;
| LCD_RESET (P0.26)&lt;br /&gt;
| Display reset&lt;br /&gt;
|-&lt;br /&gt;
| LCD_BACKLIGHT_{LOW,MID,HIGH}&lt;br /&gt;
| Backlight (active low)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
* Chip select must be held low while driving the display. It must be high when using other SPI devices on the same bus (such as external flash storage) so that the display controller won't respond to the wrong commands.&lt;br /&gt;
* SPI must be used in mode 3. Mode 0 (the default) won't work.&lt;br /&gt;
* LCD_DISPLAY_* is used to enable the backlight. Set at least one to low to see anything on the screen.&lt;br /&gt;
* Use SPI at 8MHz (the fastest clock available on the nRF52832) because otherwise refreshing will be super slow.&lt;br /&gt;
&lt;br /&gt;
'''References''':&lt;br /&gt;
&lt;br /&gt;
[https://github.com/adafruit/Adafruit-ST7735-Library/ Adafruit ST7789 driver in cpp]&lt;br /&gt;
&lt;br /&gt;
== Battery measurement ==&lt;br /&gt;
&lt;br /&gt;
Reading whether the PineTime has power attached is easy: simply read the charge indication pin (P0.12). When it is high it is running on battery, when it is low it is charging.&lt;br /&gt;
&lt;br /&gt;
Reading the battery voltage is a bit harder. For that you can use the battery voltage pin on P0.31 (AIN7). The returned value is 12 bits, which means it is 0..4095. You can get the measured voltage with the following formula, assuming a reference voltage of 3.3V (this is configurable in the ADC):&lt;br /&gt;
&lt;br /&gt;
 adcVoltage = adcValue / (4095 / 3.3)&lt;br /&gt;
&lt;br /&gt;
The measured voltage is actually half of the actual battery voltage, because the ADC is connected between a voltage divider where both resistors are 1MΩ. This can be corrected by multiplying the value:&lt;br /&gt;
&lt;br /&gt;
 batteryVoltage = adcValue * 2 / (4095 / 3.3)&lt;br /&gt;
&lt;br /&gt;
It's often better to avoid floating point values on embedded systems and in this case there is no reason to use float at all, we can just represent the value in millivolts. Therefore the formula can be simplified to:&lt;br /&gt;
&lt;br /&gt;
 batteryVoltage = adcValue * 2000 / (4095 / 3.3)&lt;br /&gt;
 batteryVoltage = adcValue * 2000 / 1241&lt;br /&gt;
&lt;br /&gt;
Converting this voltage to an estimated capacity in percent requires a more complicated algorithm, because Lithium-ion batteries have a non-linear discharge curve.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Button ==&lt;br /&gt;
&lt;br /&gt;
The button on the side of the PineTime is disabled by default. To enable it, drive the button out pin (P0.15) high.&lt;br /&gt;
&lt;br /&gt;
While enabled, the button in pin (P0.13) will be high when the button is pressed, and low when it is not pressed.&lt;br /&gt;
&lt;br /&gt;
== Touch panel ==&lt;br /&gt;
&lt;br /&gt;
The touch panel is controlled by a Hynitron CST816S chips. Unfortunately, there is not much information about this chip on the internet apart from the datasheet below and a [https://github.com/lupyuen/hynitron_i2c_cst0xxse/ reference driver]. This is enough to implement a basic driver, but crucial information needed to implement advanced functionalities are missing (I²C protocol and registers, timings, power modes,...).&lt;br /&gt;
&lt;br /&gt;
=== Pins ===&lt;br /&gt;
&lt;br /&gt;
* P0.10 : Reset&lt;br /&gt;
* P0.28 : Interrupt (signal to the CPU when a touch event is detected)&lt;br /&gt;
* P0.06 : I²C SDA&lt;br /&gt;
* P0.07 : I²C SCL&lt;br /&gt;
&lt;br /&gt;
=== I²C ===&lt;br /&gt;
&lt;br /&gt;
* Device address : 0x15&lt;br /&gt;
* Frequency : from 10Khz to 400Khz&lt;br /&gt;
&lt;br /&gt;
'''NOTE: ''' The controller go to sleep when no event is detected. In sleep mode, the controller does not communicate on the I²C bus (it appears disconnected). So, for the communication to work, you need to tap on the screen so that the chip wakes-up.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: ''' The I²C bus, also known as TWI bus has known issues, make sure to write your TWI driver with timeouts.&lt;br /&gt;
&lt;br /&gt;
=== Touch events ===&lt;br /&gt;
&lt;br /&gt;
Touch information is available from the 63 first registers of the controller. Remember: the device is in sleep mode when no touch event is detected. It means that you can read the register only when the touch controller detected an event. You can use the ''Interrupt'' pin to detect such event in the software. &lt;br /&gt;
&lt;br /&gt;
These 63 bytes contain up to 10 touch point (X, Y, event type, pressure,...) : &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Byte&lt;br /&gt;
! Bit7&lt;br /&gt;
! Bit6&lt;br /&gt;
! Bit5&lt;br /&gt;
! Bit4&lt;br /&gt;
! Bit3&lt;br /&gt;
! Bit2&lt;br /&gt;
! Bit1&lt;br /&gt;
! Bit0&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|colspan=&amp;quot;8&amp;quot;|?&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|colspan=&amp;quot;8&amp;quot;|GestureID : (Gesture code ,&lt;br /&gt;
&lt;br /&gt;
0x00: no gesture,&lt;br /&gt;
&lt;br /&gt;
0x01: Slide down,&lt;br /&gt;
&lt;br /&gt;
0x02: Slide up,&lt;br /&gt;
&lt;br /&gt;
0x03: Slide left,&lt;br /&gt;
&lt;br /&gt;
0x04: Slide right,&lt;br /&gt;
&lt;br /&gt;
0x05: Single click,&lt;br /&gt;
&lt;br /&gt;
0x0B: Double click,&lt;br /&gt;
&lt;br /&gt;
0x0C: Long press) &lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|? &lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|Number of touch points &lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Event (0 = Down, 1 = Up, 2 = Contact)&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|?&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|X (MSB) coordinate&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|colspan=&amp;quot;8&amp;quot;|X (LSB) coordinate&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|?&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Touch ID&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|Y (MSB) coordinate&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|colspan=&amp;quot;8&amp;quot;|Y (LSB) coordinate&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|colspan=&amp;quot;8&amp;quot;|Pressure (?)&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|colspan=&amp;quot;8&amp;quot;|Miscellaneous (?)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Bytes 3 to 8 are repeated 10 times (10*6 + 3 = 63 bytes).&lt;br /&gt;
&lt;br /&gt;
'''NOTES'''&lt;br /&gt;
&lt;br /&gt;
* The touch controller seems to report only 1 touch point&lt;br /&gt;
* Fields X, Y, Number of touch points and touch ID are updated. The others are always 0.&lt;br /&gt;
&lt;br /&gt;
=== Registers ===&lt;br /&gt;
&lt;br /&gt;
The reference driver specifies some registers and value, but there is no information about them: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!Register&lt;br /&gt;
!Address&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_INT_CNT&lt;br /&gt;
|0x8F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_FLOW_WORK_CNT&lt;br /&gt;
|0x91&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_WORKMODE &lt;br /&gt;
|0x00&lt;br /&gt;
|0 = WORK, 0x40 = FACTORY&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_CHIP_ID&lt;br /&gt;
|0xA3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_CHIP_ID2&lt;br /&gt;
|0x9F&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_POWER_MODE&lt;br /&gt;
|0xA5&lt;br /&gt;
|0x03 = SLEEP (reset the touchpanel using the reset pin before using this register : pin_low, delay 5ms, pin_high, delay 50ms then write 3 to register 0xA5)&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_FW_VER&lt;br /&gt;
|0xA6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_VENDOR_ID&lt;br /&gt;
|0xA8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_LCD_BUSY_NUM&lt;br /&gt;
|0xAB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_FACE_DEC_MODE_EN&lt;br /&gt;
|0xB0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_GLOVE_MODE_EN&lt;br /&gt;
|0xC0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_COVER_MODE_EN&lt;br /&gt;
|0xC1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_CHARGER_MODE_EN&lt;br /&gt;
|0x8B&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_GESTURE_EN&lt;br /&gt;
|0xD0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_GESTURE_OUTPUT_ADDRESS&lt;br /&gt;
|0xD3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HYN_REG_ESD_SATURATE 0xED&lt;br /&gt;
|0xED&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''WARNING : ''' &amp;lt;del&amp;gt;Writing the SLEEP command (write 0x05 in HYN_REG_POWER_MODE) seems to freeze the controller (it returns only static values) until the battery is totally drained and the whole system reset. Analysis and debugging is more than welcome!&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Accelerometer==&lt;br /&gt;
The on board accelerometer is Bosch BMA421, connected to the I2C bus.&lt;br /&gt;
&lt;br /&gt;
=== Pins ===&lt;br /&gt;
&lt;br /&gt;
* P0.06 : I²C SDA&lt;br /&gt;
* P0.07 : I²C SCL&lt;br /&gt;
* P0.08 : Interrupt&lt;br /&gt;
&lt;br /&gt;
I2C Device address : 0x18&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Datasheets and Schematics =&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
* [https://files.pine64.org/doc/PineTime/PineTime%20Schematic-V1.0a-20191103.pdf PineTime Schematic ver1.0a]&lt;br /&gt;
* [https://files.pine64.org/doc/PineTime/PineTime%20Port%20Assignment%20rev1.0.pdf PineTime GPIO Port Assignment ver1.0]&lt;br /&gt;
&lt;br /&gt;
Note: The part number for the SPI FLASH in the schematic diagram is not correct, the PineTime features a larger external FLASH device, see below.&lt;br /&gt;
&lt;br /&gt;
== Chip Datasheets ==&lt;br /&gt;
* NORDIC nRF52832 information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/nRF52832%20product%20brief.pdf nRF52832 Product Brief]&lt;br /&gt;
** [https://infocenter.nordicsemi.com/pdf/nRF52832_PS_v1.4.pdf nRF52832 Product Specification v1.4]&lt;br /&gt;
* ARMv7-M information:&lt;br /&gt;
** [https://static.docs.arm.com/ddi0403/eb/DDI0403E_B_armv7m_arm.pdf ARMv7-M Architecture Reference Manual]&lt;br /&gt;
&lt;br /&gt;
== Component Datasheets ==&lt;br /&gt;
* PMU (Power Management Unit) information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/SGM40561.pdf SGMicro SGM40561 Single Cell Charger Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/SGMICRO-SGM2036.pdf SGMicro SGM2036 3.3V Low Power Low Dropout RF Linear Regulator Datasheet]&lt;br /&gt;
* SPI Flash information:&lt;br /&gt;
** [https://www.elnec.com/en/device/XTX/XT25F32B+%28QuadSPI%29+%5BSOP8-200%5D/ XTX XT25F32B 32Mb(4MB) SPI NOR Flash] (data sheets for this part are hard to find but it acts similar to other QuadSPI SPI NOR Flash such as [https://www.macronix.com/Lists/Datasheet/Attachments/7426/MX25L3233F,%203V,%2032Mb,%20v1.6.pdf Macronix 32Mb(4MB) SPI NOR Flash])&lt;br /&gt;
** [https://datasheet.lcsc.com/szlcsc/2005251035_XTX-XT25F32BSOIGU-S_C558851.pdf XTX XT25F32B]&lt;br /&gt;
** IDs for XT25F32B are: manufacturer (0x0b), device (0x15), memory type (0x40), density (0x16)&lt;br /&gt;
* LCD Panel:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/PineTime%20LCD%20Panel.jpg 1.3&amp;quot; 240x240 IPS LCD Panel Specification for PineTime]&lt;br /&gt;
** [https://wiki.pine64.org/images/5/54/ST7789V_v1.6.pdf 11.6&amp;quot; Sitronix LCD Driver/Controller Datasheet]&lt;br /&gt;
* Touchpad information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/PineTime%20Touch%20Panel.jpg Touchpad Specification for PineTimel]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/CST816S数据手册V1.1.pdf 11.6&amp;quot; Hynitron CST816S Capacitive Touch Controller Datasheet in Chinese]&lt;br /&gt;
** [https://wiki.pine64.org/images/2/2f/CST816S.zip Touch Controller Datasheet en]&lt;br /&gt;
* Sensor:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/BST-BMA421-FL000.pdf BOSCH BMA421 Triaxial VAcceleration Sensor Product Brief]&lt;br /&gt;
** [https://wiki.pine64.org/images/c/cc/Bst-bma400-ds000.pdf BOSCH BMA400 3-axes ultra-low power accelerometer datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinetime/HRS3300%20Heart%20Rate%20Sensor.pdf TianYiHeXin HRS3300 PPG Heart Rate Sensor Data Sheet]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Community case design =&lt;br /&gt;
&lt;br /&gt;
* [https://www.thingiverse.com/thing:4172849 PineTime Smart Watch case by dara0s at thingiverse]&lt;br /&gt;
* [https://www.thingiverse.com/thing:4651462 PineTime dev kit back fix by joaquimorg at thingiverse]&lt;br /&gt;
* [https://www.thingiverse.com/thing:4763267 PineTime dev kit charging holder v4 by zevix81 at thingiverse]&lt;br /&gt;
&lt;br /&gt;
[[Category:PineTime]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Overclocking&amp;diff=10726</id>
		<title>Overclocking</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Overclocking&amp;diff=10726"/>
		<updated>2021-06-16T17:43:05Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* DRAM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|1= There is the possibility of damaging your equipment by overclocking. Do so at your own risk!}}&lt;br /&gt;
{{hint|This page is incomplete, you're welcome to improve it.}}&lt;br /&gt;
{{hint|All information regarding clock speeds, voltages and more are stored in the DTB (Device Tree Blob). You can learn more about it [https://elinux.org/Device_Tree_Reference here].}}&lt;br /&gt;
&lt;br /&gt;
Overclocking is a way to get more performance out of the system by running it at higher clock speeds than the factory default, usually while putting out more heat and using more power (You can also downclock to possibly reduce power consumption and thermals at the cost of performance). It is highly recommended that you avoid overvolting the device, as that has a high risk of damaging the hardware, hence the warning at the beginning of this page. However, just some slight overclocks without the added voltage can not only improve performance, but not carry as much risk (Still: Do at your own risk!). It should be noted however that overclocking can cause instability, so you will need to test and see what values work best with your device (There is a silicon lottery for the Pinephone's hardware).&lt;br /&gt;
&lt;br /&gt;
= A64 =&lt;br /&gt;
&lt;br /&gt;
{{note|These instructions are targeting the Pinephone to simplify the explanation, however they can be used to also overclock other devices such as the Pinetab if you modify the proper DTB files.}}&lt;br /&gt;
&lt;br /&gt;
== Edit Pinephone DTS ==&lt;br /&gt;
&lt;br /&gt;
In order to overclock the Pinephone you will have to first convert the DTB file in &amp;lt;code&amp;gt;/boot/dtbs/allwinner/&amp;lt;/code&amp;gt; to a DTS file. You will see &amp;lt;code&amp;gt;sun50i-a64-pinephone-1.2.dtb&amp;lt;/code&amp;gt;, and also two other files with different pinephone mainboard revisions (1.1 and 1.0). You will want to select the correct file for your pinephone (Only choose 1.1 if you have a braveheart, As all other consumer pinephones use the 1.2 DTS).&lt;br /&gt;
&lt;br /&gt;
Once you've found the file, you can run the following command to convert the DTB to DTS:&lt;br /&gt;
&amp;lt;code&amp;gt;dtc -I dtb -O dts /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dtb -o /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, modify the newly converted .dts file and change the clockspeeds you wish to modify. You can simply use a text editor to do so.&lt;br /&gt;
&lt;br /&gt;
To convert back to DTB:&lt;br /&gt;
&amp;lt;code&amp;gt;dtc -I dts -O dtb /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts -o /boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterwards you can simply reboot and check with &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary&amp;lt;/code&amp;gt; to see if the changes have correctly applied.&lt;br /&gt;
&lt;br /&gt;
{{note|In the future it is possible that there will be a driver to adjust clockspeeds of the A64 from userspace without the need to recompile. Currently the only way to overclock is to either compile your own kernel, or modify just the DTB (instructions above).}}&lt;br /&gt;
&lt;br /&gt;
== GPU ==&lt;br /&gt;
&lt;br /&gt;
Open &amp;lt;code&amp;gt;/boot/dtbs/allwinner/sun50i-a64-pinephone-1.2.dts&amp;lt;/code&amp;gt; (You will have to find the source of the kernel used by your distribution. There is the Pine64 kernel, and Megi's) in a text editor following these instructions: https://wiki.pine64.org/wiki/Overclocking#Edit_Pinephone_DTS&lt;br /&gt;
&lt;br /&gt;
Look for &amp;lt;code&amp;gt;mali: gpu@1c4000 {&amp;lt;/code&amp;gt; and within that block search for &amp;lt;code&amp;gt;assigned-clock-rates = &amp;lt;432000000&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;assigned-clock-rates&amp;lt;/code&amp;gt; line should be set to &amp;lt;code&amp;gt;432000000&amp;lt;/code&amp;gt;, this means that the GPU is clocked at 432MHz by default. So if you want 500MHz, set the value to &amp;lt;code&amp;gt;500000000&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Save the dts file, and recompile the DTB. In order to check if the overclock was successfully applied you can run: &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{note|The file may be slightly different and you may need to enter the values as hexidecimals}}&lt;br /&gt;
{{hint|The GPU appears to run stable overclocked to 560 Mhz, however more testing with a wider group of devices is needed.}}&lt;br /&gt;
{{hint|Remember to run a benchmark tool (such as glmark2-es2) to help check stability.}}&lt;br /&gt;
&lt;br /&gt;
== CPU ==&lt;br /&gt;
&lt;br /&gt;
The stock speed of the A64 is 1.152 GHz. It is not recommended to the overclock the CPU because doing so greatly increases power and thermals and will overheat the device for little to no gain.&lt;br /&gt;
&lt;br /&gt;
== DRAM ==&lt;br /&gt;
&lt;br /&gt;
{{warning|1=It is not recommended to exceed 667 MHz clockspeed on the DRAM. 624MHz is likely the upper limit.}}&lt;br /&gt;
{{hint|Make sure to set your DRAM to a multiple of 24.}}&lt;br /&gt;
&lt;br /&gt;
When overclocking the GPU, it is a good idea to also overclock the DRAM, as the main bottleneck of the A64 SOC is the memory. The A64's maximum ram clockspeed falls just short of 667MHz. This may be unstable on your device however. &lt;br /&gt;
&lt;br /&gt;
Around 600 MHz (PC-1200) should work fine, however some people have reported instability at lower clockspeeds. Arch Linux Arm uses a default clockspeed of 552MHz, with uboot builds available to easily switch out for a higher (624) or lower (492) DRAM clockspeed.&lt;br /&gt;
&lt;br /&gt;
It is possible that by reverse engineering the DRAM driver from allwinner that auto tuning can be accomplished to get the best performance.&lt;br /&gt;
&lt;br /&gt;
Setting the DRAM clock is accomplished by modifying pinephone_defconfig in uboot (https://gitlab.com/pine64-org/u-boot/-/blob/crust/configs/pinephone_defconfig)&lt;br /&gt;
&lt;br /&gt;
You can find simple instructions on doing so here: [[Uboot]]&lt;br /&gt;
&lt;br /&gt;
== VPU ==&lt;br /&gt;
&lt;br /&gt;
In order to allocate more VRAM for the GPU you can add &amp;lt;code&amp;gt;cma=256&amp;lt;/code&amp;gt; to your kernel (or use kconfig with CONFIG_CMA_SIZE_MBYTES=256) cmdline in boot.scr which you will have to compile using mkimage. By default the kernel allocates only 64MB, and the maximum value is 256MB.&lt;br /&gt;
&lt;br /&gt;
In order to compile boot.scr you can run &amp;lt;code&amp;gt;mkimage -C none -A arm64 -T script -d boot.cmd boot.scr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note|You may not have a boot.cmd file in your boot directory and instead you may instead have a boot.txt}}&lt;br /&gt;
&lt;br /&gt;
== Cedrus ==&lt;br /&gt;
&lt;br /&gt;
Overclocking cedrus is achieved by modifying the kernel source code: https://elixir.bootlin.com/linux/latest/source/drivers/staging/media/sunxi/cedrus/cedrus.c#L507&lt;br /&gt;
&lt;br /&gt;
= Rockchip RK3399 based boards =&lt;br /&gt;
The RK3399 clocks are found in [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi]&lt;br /&gt;
&lt;br /&gt;
More optimised voltages and clocks can be found in [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi]&lt;br /&gt;
These include a slight overclock and undervolt, they are intended for the OP1 CPU found in many chromebooks but have worked fine in all recorded cases on regular RK3399s in other devices.&lt;br /&gt;
&lt;br /&gt;
==GPU==&lt;br /&gt;
Any clock speeds can be added for the GPU in &amp;lt;code&amp;gt;gpu_opp_table&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The highest safe voltage for the GPU is 1.2V as specified in the RK3399 schematic from Rockchip.&lt;br /&gt;
&lt;br /&gt;
Segfault has found that the RK3399 in his Pinebook Pro can reach 950MHz on the GPU while being stable.&lt;br /&gt;
&lt;br /&gt;
The stock speed for the GPU is 800Mhz.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
A set of available clock speeds that can be added to the CPU clusters can be found in &amp;lt;code&amp;gt;drivers/clk/rockchip/clk-rk3399.c&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;rk3399_cpuclkl_rates&amp;lt;/code&amp;gt; for the little cores and &amp;lt;code&amp;gt;rk3399_cpuclkb_rates&amp;lt;/code&amp;gt; for the big cores.&lt;br /&gt;
&lt;br /&gt;
These clock speeds can be added to &amp;lt;code&amp;gt;cluster0_opp&amp;lt;/code&amp;gt; for the small cores and &amp;lt;code&amp;gt;cluster1_opp&amp;lt;/code&amp;gt; for the big cores respectively.&lt;br /&gt;
&lt;br /&gt;
There is a hard limit of 1.8GHz on the little cores and 2.2GHz on the big cores.&lt;br /&gt;
&lt;br /&gt;
The highest safe voltage for the little cores is 1.2V and for the big cores is 1.25V.&lt;br /&gt;
&lt;br /&gt;
Segfault has found that the RK3399 in his Pinebook Pro can reach 1.6GHz on the little cores and 2.08GHz on the big ones.&lt;br /&gt;
&lt;br /&gt;
The stock speed for the little cores is 1.4GHz and on the big cores it is 1.8GHz, however the OP1 speeds default to 1.5GHz and 2.0GHz instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= ROCK64 =&lt;br /&gt;
&lt;br /&gt;
DTB is in &amp;lt;code&amp;gt;/boot/dtbs/rockchip/rk3328-rock64.dtb&amp;lt;/code&amp;gt;. CPU clock rates are inside &amp;lt;code&amp;gt;opp_table0&amp;lt;/code&amp;gt; as hexadecimal numbers in the &amp;lt;code&amp;gt;opp-hz&amp;lt;/code&amp;gt; field.&lt;br /&gt;
&lt;br /&gt;
Check the achieved clock speed with &amp;lt;code&amp;gt;sudo cat /sys/kernel/debug/clk/clk_summary | grep armclk&amp;lt;/code&amp;gt;. Does not seem to overclock at stock voltages at all, defaults to 408 MHz if it fails to set a clock rate. Stock voltage is 1.30V, just shy of the 1.35V maximum outlined in [https://www.rockchip.fr/RK3328%20datasheet%20V1.1.pdf the datasheet]. Overvolting to 1.325V just left the device in an unbootable state for CounterPillow, would not recommend.&lt;br /&gt;
&lt;br /&gt;
GPU needs investigating, but is seemingly tied to the bus speed.&lt;br /&gt;
&lt;br /&gt;
[[Category:SOPine]] [[Category:Pine A64]] [[Category:Pine H64]] [[Category:A64-LTS]] [[Category:PineBook]] [[Category:PinePhone]] [[Category:PineTab]] [[Category:Rock64]] [[Category:PineBook Pro]] [[Category:ROCKPro64]] [[Category:Allwinner A64]] [[Category:Allwinner H6]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_FAQ&amp;diff=10715</id>
		<title>PinePhone FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_FAQ&amp;diff=10715"/>
		<updated>2021-06-13T20:36:52Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* How powerful is the PinePhone's hardware? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A list of frequently asked question.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Revisions ===&lt;br /&gt;
==== What are Community Editions? ====&lt;br /&gt;
Community Editions of the PinePhone were versions of the PinePhone which came preinstalled with the operating system of a partner project and featured the logo of the project on the back panel. The Community Edition was intended to help partner projects developing these systems: &amp;quot;Community editions are meant to bring exposure to partner-projects operating systems and communities, as well as help finance ongoing development.&amp;quot;, [https://www.pine64.org/2020/04/02/pinephone-ubports-community-edition-pre-orders-now-open/ source].&lt;br /&gt;
&lt;br /&gt;
==== Is the Community Edition hardware the latest revision? ====&lt;br /&gt;
The Community Edition program (featuring the mainboard numbers 1.2 through 1.2b and branded back covers) which provided the branded PinePhones has since ended, and a Beta Edition has since been released. The only difference between each Community Edition is the inclusion of crucial bug fixes, with the last issue being fixed with the 1.2b motherboard shipping with the Manjaro CE PinePhones. The 1.2b motherboard is also currently used in the Beta Edition PinePhones, however the Beta Edition units do not ship with any back cover branding. There are currently no plans for further hardware revisions.&lt;br /&gt;
&lt;br /&gt;
Aside from the back cover, the only other difference between each Community Edition is that starting with the postmarketOS PinePhone, a convergence package option was released that adds another gigabyte of ram to the phone and a 32GB eMMC instead of a 16GB eMMC. Convergence packages also included a dock for plugging in USB peripherals and connecting to an HDMI monitor, however you can purchase a generic USB-C dock to use with a 2GB PinePhone. &lt;br /&gt;
&lt;br /&gt;
The predecessor to the Convergence Edition PinePhones was the Braveheart Edition intended for developers to bring up the platform, which had the version number 1.1. For more details about the topic see [[PinePhone#Hardware Revisions]].&lt;br /&gt;
&lt;br /&gt;
==== Will there be other Community Editions? ====&lt;br /&gt;
Five Community Editions have been announced: [https://www.pine64.org/2020/04/02/pinephone-ubports-community-edition-pre-orders-now-open/ UBports], [https://www.pine64.org/2020/06/15/june-update-postmarketos-ce-pinephone-shipping-pine64-cluster/ postmarketOS], [https://www.pine64.org/2020/08/31/pinephone-manjaro-community-edition/ Manjaro], [https://www.pine64.org/2020/12/01/kde-community-edition-is-now-available/ KDE], and [https://www.pine64.org/2021/01/17/mobian-community-edition/ Mobian]. Since the release of the Mobian edition, the Beta Edition PinePhones have been released and the Community Edition Program has ended.&lt;br /&gt;
&lt;br /&gt;
==== In simple terms, what are the differences between Braveheart and the new Community Edition? ====&lt;br /&gt;
The Braveheart PinePhone was the first public revision of the PinePhone which was intended solely for developers and Linux enthusiasts. The UBports Community Edition was the next revision of the PinePhone with an updated mainboard based on feedback from the Braveheart Edition, see [[PinePhone#Hardware Revisions]]. All current revisions of the PinePhone continue to be intended for developers and enthusiasts, however, PINE64 will be starting to offer partnered retail units of the PinePhone which will have a better warranty and technical support (keep in mind even then it is not intended for a broader audience at this time, as the software still needs work and the hardware does not hold up well to modern consumer standards).&lt;br /&gt;
&lt;br /&gt;
==== Will there be a newer revision after the Community Editions? ====&lt;br /&gt;
Starting with the UBports Community Edition the PinePhone has gotten CE and FCC certifications, repeating the certification process due to changes in the hardware design is very expensive, so the 1.2b motherboard is viewed as the final revision. The PinePhone (and parts for them) will be produced and sold for at least 5 years.&lt;br /&gt;
&lt;br /&gt;
==== Will there be hardware differences between the Community Editions? ====&lt;br /&gt;
&lt;br /&gt;
Besides the varied back covers, starting with the launch of the PostmarketOS CE there has been the release of a convergence package option for the PinePhone which includes more ram and storage, and an included dock for convenience. There has also been multiple hardware changes starting with the UBports CE (mainboard 1.2) and ending with the Manjaro CE (mainboard revision 1.2b). There are currently no plans for future hardware changes for a few years.&lt;br /&gt;
&lt;br /&gt;
==== How powerful is the PinePhone's hardware? ====&lt;br /&gt;
&lt;br /&gt;
The PinePhone is about on par with a Raspberry Pi 3 in terms of CPU performance, however it's Mali 400 MP2 is much weaker than the Pi 3's VideoCore IV. The Mali 400 was the first mobile OpenGL ES 2.0 GPU on the market back in 2008 when it was released, compared to the much newer Videocore IV released in 2010. The PinePhone has been shown to handle smooth H.264 1440p30 video playback using Cedrus and gstreamer as documented [https://xnux.eu/log/#001 here]. The device should be more than capable of a smooth phone experience when used in conjunction with well optimized software that makes use of its hardware features. It is also capable of running many light games (including 3D ones such as SuperTuxKart), and retro gaming. Expect further speed improvements over time as the drivers are improved, and in the meanwhile you can look into slightly [[overclocking]] the device (at your own risk).&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
The default ringtone for Mobian Phosh can be found at /usr/share/sounds/freedesktop/stereo/phone-incoming-call.oga&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
For some reason, using pipewire-pulse with bluetooth headphones (In my case, Sony WH1000X-M3) using the default LDAC codec causes the headphones to constantly connect and disconnect until they eventually give up pairing. A work around I've found is to quickly go into Sound settings and switch the codec to &amp;quot;SBC&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Modem ===&lt;br /&gt;
&lt;br /&gt;
==== The modem isn't working ====&lt;br /&gt;
&lt;br /&gt;
In order to use the modem and Wi-Fi/Bluetooth, you need to ensure the battery is inside the device and has a sufficient charge. Even when supplying the phone with enough power, the modem and Wi-Fi chip will not work without a connected battery. Further, double check that you have not put the SD card into the sim card slot, or vice versa.&lt;br /&gt;
&lt;br /&gt;
==== Does the PinePhone only wake up from sleep for calls and texts? ====&lt;br /&gt;
&lt;br /&gt;
Yes. Unless the PinePhone is configured to wake up every few minutes from deep sleep in crust (At the cost of battery life. However, in the future there may be other solutions), then there is not any way to get any notifications for applications. The modem on the PinePhone will wake the device for incoming calls and texts however, and the real-time clock is also capable of waking the device for alarms.&lt;br /&gt;
&lt;br /&gt;
=== Battery ===&lt;br /&gt;
&lt;br /&gt;
==== The battery is stuck inside the phone ====&lt;br /&gt;
&lt;br /&gt;
The battery can be stuck in the phone if the screws of the frame are overtightened.&lt;br /&gt;
&lt;br /&gt;
If your battery is stuck inside the PinePhone, grab a screwdriver and completely unscrew all the screws of the midframe. Then pull out the battery (you may have to fully take off the midframe in some cases to get it out). And then rescrew the midframe, but only tighten the screws to the point where they are just barely tight to hold. This should allow you to remove the battery easily.&lt;br /&gt;
&lt;br /&gt;
==== The battery is discharging while the phone is powered off (Braveheart Edition) ====&lt;br /&gt;
&lt;br /&gt;
The issue is not present on the Community Edition. Due to a hardware bug, after power off, the phone still consumes 20–30mA which drains the battery in 3-4 days. A manual procedure to fix the hardware bug is described [https://xnux.eu/devices/pp-pmic-fix.jpg here].&lt;br /&gt;
&lt;br /&gt;
==== The battery only charges to ~84% ====&lt;br /&gt;
&lt;br /&gt;
Some pre-made OSes using megi's kernel limit the maximum amount of charge to roughly ~84% in the hope of prolonging the battery life, as repeatedly reaching the upper level of battery charge reduces the battery's lifetime (this is &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; a safety feature!). The same effect however also applies when repeatedly draining the battery to a low level - users are therefore advised to consider if that setting is reasonable depending on their usage. The setting can be overwritten via Sysfs, to let the battery fully charge (this can lower the replaceable's battery lifetime considerably depending on the charging behavior!):&lt;br /&gt;
&lt;br /&gt;
{{warning|The following instructions are directed towards expert-level users and developers!}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;echo 4350000 &amp;gt; /sys/class/power_supply/axp20x-battery/voltage_max_design&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kill Switches ===&lt;br /&gt;
==== What are the kill switches doing? ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number&lt;br /&gt;
! Name&lt;br /&gt;
! Explanation&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Modem&lt;br /&gt;
| Pulls Q1501 gate up (FET killing modem power)&lt;br /&gt;
| &amp;quot;On&amp;quot; enables cellular communication and GNSS hardware, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Wi-Fi / Bluetooth&lt;br /&gt;
| Pulls up CHIP_EN&lt;br /&gt;
| &amp;quot;On&amp;quot; enables Wi-Fi and Bluetooth communication hardware, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Microphone&lt;br /&gt;
| Breaks microphone bias voltage from the SoC&lt;br /&gt;
| &amp;quot;On&amp;quot; enables audio input from on-board microphones (not 3.5mm jack), &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Rear camera&lt;br /&gt;
| Pulls up PWDN on OV5640 &lt;br /&gt;
| &amp;quot;On&amp;quot; enables the rear camera, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Front camera&lt;br /&gt;
| Pulls up PWDN on GC2145&lt;br /&gt;
| &amp;quot;On&amp;quot; enables the front camera, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Headphone&lt;br /&gt;
| Pulls up IN2 on analog switch BCT4717ETB&lt;br /&gt;
| &amp;quot;On&amp;quot; enables audio input and output via the 3.5mm audio jack, &amp;quot;off&amp;quot; switches the jack to hardware UART mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
&lt;br /&gt;
==== What's the speed difference between the eMMC and SD cards? ====&lt;br /&gt;
Maximum transfer speed of the eMMC is around 85 MB/s, while SD cards are limited to approximately 23 MB/s (even with faster cards).&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
==== GPS doesn't work ====&lt;br /&gt;
&lt;br /&gt;
Like almost all smartphones, the PinePhone GPS antenna is small and can only get a first fix unassisted if the GPS signal is very strong. To make first fix faster and more reliable, phones download assistance data either from the phone network or from the internet. The GPS in the PinePhone modem supports the internet based assistance method, as detailed in the modem documentation, but this is currently only supported by a few distributions, and a [https://gist.github.com/alastair-dm/263209b54d01209be28828e555fa6628 proof of concept script] that shows it can work.&lt;br /&gt;
&lt;br /&gt;
Until aGPS support becomes standard you'll have to make some manual changes - see for example [https://wiki.mobian-project.org/doku.php?id=location Mobian wiki]&lt;br /&gt;
&lt;br /&gt;
==== GPS can't determine direction ====&lt;br /&gt;
&lt;br /&gt;
Currently, due to the magnetometer not being hooked up in software at this time, it is not possible for GPS software to use the phone's compass functionality. This means while you are walking it will not be possible to determine the direction of travel. This is not as much of an issue for vehicles as the faster speeds mean that it is possible to estimate the direction of travel, however it will still be an issue should the vehicle travel through a tunnel and loose GPS signal.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== How can I install an operating system on the SD card / eMMC? ====&lt;br /&gt;
&lt;br /&gt;
See [[PinePhone Installation Instructions]].&lt;br /&gt;
&lt;br /&gt;
=== Updating ===&lt;br /&gt;
&lt;br /&gt;
Read the [[PinePhone Updating Instructions]].&lt;br /&gt;
&lt;br /&gt;
=== Booting ===&lt;br /&gt;
&lt;br /&gt;
==== What's the boot order for SD cards and eMMC? ====&lt;br /&gt;
&lt;br /&gt;
The PinePhone will automatically boot from microSD if a bootable card is inserted. If no (bootable) microSD is found, it will boot from eMMC.&lt;br /&gt;
&lt;br /&gt;
==== How can I select different OSes at boot? ====&lt;br /&gt;
&lt;br /&gt;
There was a project by Danct12 which allowed the user to select different OSes at boot, but the repository has since been archived: https://github.com/dreemurrs-embedded/Pineloader.&lt;br /&gt;
&lt;br /&gt;
==== I turned on my Manjaro CE PinePhone. The red LED and screen backlight are briefly lit, then both are not and it will not boot. ====&lt;br /&gt;
&lt;br /&gt;
This can be the result of at least one situation:&lt;br /&gt;
&lt;br /&gt;
# The eMMC installation became corrupt or otherwise unbootable&lt;br /&gt;
# An SD card is present but not bootable (consider [[PinePhone#Detailed usage instructions]])&lt;br /&gt;
&lt;br /&gt;
If there is an installation of Manjaro on both the eMMC &amp;amp; an SD card, the SD card will always boot first on the device. Try taking the SD card out and booting the installation that is on the eMMC. If the problem persists, it is likely there is an issue with both installations and you will need to reinstall your distribution. You may also want to check with your distribution's maintainers if boot issues are a common problem in a recent update.&lt;br /&gt;
&lt;br /&gt;
====  I did not install an update in Ubuntu Touch and I'm stuck on the PINE64 logo after rebooting. ====&lt;br /&gt;
&lt;br /&gt;
# Use a USB A-C cable to plug your phone into your PC&lt;br /&gt;
# Hold the PinePhone's power button for 4 seconds or more to power it off.&lt;br /&gt;
# Wait 5 seconds&lt;br /&gt;
# Hold the Volume Up and Power buttons on the PinePhone to boot into recovery. You should see the LED light red, then yellow, then green. The &amp;quot;Installing update&amp;quot; screen will appear, but a progress bar to indicate update progress will not. Ignore the &amp;quot;Installing update&amp;quot; part.&lt;br /&gt;
# Your PC may automatically mount the PinePhone's partitions. If it does, Safely Remove or Eject all of them.&lt;br /&gt;
# Open a terminal on your PC. Type &amp;lt;code&amp;gt;telnet 172.16.42.1&amp;lt;/code&amp;gt;&lt;br /&gt;
# You should receive the text 'Welcome to Rescue SD Shell!'&lt;br /&gt;
# In the new Rescue SD shell, type &amp;lt;code&amp;gt;umount /dev/mmcblk2p10; e2fsck -fy /dev/mmcblk2p10 &amp;amp;&amp;amp; sync&amp;lt;/code&amp;gt;&lt;br /&gt;
# Once this command pipeline finishes, type &amp;lt;code&amp;gt;sync &amp;amp;&amp;amp; reboot -f&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your PinePhone should reboot into Ubuntu Touch. Now head to Settings -&amp;gt; Updates and install the new update! &lt;br /&gt;
&lt;br /&gt;
If these steps did not solve your issue, please create a new thread here on the PINE64 forums, note what the problem looks like, then say that you've tried these steps already.&lt;br /&gt;
&lt;br /&gt;
This is caused by corruption on the userdata partition. Normally this should be fixed by 'e2fsck' in the initramfs, however, an error in image creation means that that version of e2fsck is unable to correct the corruption. This has been fixed in all new PinePhone updates, so if you update from the factory image to any other image available to the PinePhone now, you will not experience this issue any longer.&lt;br /&gt;
&lt;br /&gt;
==== I turned on my PinePhone running Ubuntu Touch. The red LED is lit and it will not boot. ====&lt;br /&gt;
# Hold the power button until the light turns off&lt;br /&gt;
# Hold the power button until the light turns on&lt;br /&gt;
&lt;br /&gt;
You may need to repeat these steps more than once.&lt;br /&gt;
&lt;br /&gt;
This is caused by u-boot apparently trying to use the eMMC before it is ready. We are not entirely sure why this occurs yet.&lt;br /&gt;
&lt;br /&gt;
==== Can I install a different OS on my Community Edition? ====&lt;br /&gt;
&lt;br /&gt;
Yes! While all the Community Edition PinePhones come with an OS preinstalled, you are free to use any OS on the integrated storage (the eMMC) or an SD card, see [[PinePhone Installation Instructions]] and [[PinePhone Software Releases]] on how to install them.&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
==== How can I enable SSH? ====&lt;br /&gt;
&lt;br /&gt;
In Ubuntu Touch you can run &amp;quot;sudo start ssh&amp;quot; to get a one-time start, or edit /etc/init/ssh.override and remove the manual line to make it auto-start.&lt;br /&gt;
&lt;br /&gt;
In other distributions you may have to install SSH through its package manager and then proceed to use its init system to enable it. For Manjaro, Arch, and Mobian you can use &amp;quot;systemctl enable&amp;quot; and &amp;quot;systemctl start&amp;quot; command to enable and start ssh.&lt;br /&gt;
&lt;br /&gt;
==== What works, what doesn't? ====&lt;br /&gt;
&lt;br /&gt;
For Ubuntu Touch see https://gitlab.com/ubports/community-ports/pinephone#what-works-what-doesnt.&lt;br /&gt;
&lt;br /&gt;
Other distributions will have different levels of functionality. Please refer to the release page of your chosen distribution for further information.&lt;br /&gt;
&lt;br /&gt;
====  I can't connect to a 2.4Ghz Wi-Fi network in Ubuntu Touch. ====&lt;br /&gt;
&lt;br /&gt;
Reboot your device by holding the power button until the &amp;quot;Power&amp;quot; dialog appears, then pressing &amp;quot;Restart&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If that does not fix the issue, note that all the following conditions must be met to use Wi-Fi on the PinePhone:&lt;br /&gt;
&lt;br /&gt;
# The plastic tab between the battery and the device's battery contacts has been removed&lt;br /&gt;
# The battery is installed&lt;br /&gt;
# The Wi-Fi killswitch, #2, on the rear of the device is switched &amp;quot;ON&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wi-Fi in the PinePhone only seems stable after a warm reboot like this.&lt;br /&gt;
&lt;br /&gt;
==== What's the status of Android for the PinePhone? ====&lt;br /&gt;
&lt;br /&gt;
Currently, there isn't any major push to get Android running well on the PinePhone. The developer Icenowy did get a Android image to run and partly work, it was however slow and buggy, with major functions not working. A solution for running some of your android apps may be found in Anbox as of now. Anbox is currently not included in Ubuntu Touch. In other distributions your millage may vary on what applications will run and how well.&lt;br /&gt;
&lt;br /&gt;
==== Why are my apps loading slower than on my Android phone? ====&lt;br /&gt;
&lt;br /&gt;
Android has multiple techniques in place to speed up launching applications after the first launch, such as the &amp;quot;Dalvik cache&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Using an alternative filesystem such as F2FS on the eMMC (which is considerably faster than running software on the SD card) may help improve performance slightly. Over time you can expect further optimizations and improvements in various distributions that will help speed up the PinePhone.&lt;br /&gt;
&lt;br /&gt;
==== How can I turn on the backlight? ====&lt;br /&gt;
&lt;br /&gt;
On some devices the default calibration of the backlight is not sufficient and the minimum setting of the brightness of the used OS can be too low, causing the backlight to completely shut down. In that case it is recommended to connect the phone to a charger and/or to shine a flashlight at the screen to adjust the brightness to a higher setting again.&lt;br /&gt;
&lt;br /&gt;
On many Linux OSes the brightness setting is an integer between 0 and 1000 and available at runtime in /sys/class/backlight/backlight/brightness and stored at shutdown and loaded at boot from /var/lib/systemd/backlight/platform-backlight:backlight:backlight by systemd-backlight@backlight:backlight.service. Changing the brightness setting can be done at runtime, for example over SSH, by executing as root &amp;lt;code&amp;gt;echo 500 &amp;gt; /sys/class/backlight/backlight/brightness&amp;lt;/code&amp;gt;. The stored brightness setting can be modified using another system, by mounting the root filesystem of the system you want to fix and by executing &amp;lt;code&amp;gt;echo 500 &amp;gt; [MOUNT LOCATION]/var/lib/systemd/backlight/platform-backlight\:backlight\:backlight&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SMS ===&lt;br /&gt;
&lt;br /&gt;
==== The phone does not receive SMS ====&lt;br /&gt;
&lt;br /&gt;
Sometimes incoming SMS messages are not being received, but outgoing ones, phone calls and data are working fine. One potential cause could be SMS messages that linger in the modem's queue (10 or more of them). This queue appears to be persistent across reboots and also re-imaging the OS.&lt;br /&gt;
&lt;br /&gt;
On Mobian and Manjaro, the ModemManager does all the communications with the 3G modem including phone calls, cellular data, GPS and SMS. This may not be the case with other PinePhone OSes.&lt;br /&gt;
&lt;br /&gt;
You can access the ModemManager using the mmcli command.&lt;br /&gt;
&lt;br /&gt;
'''Mobian:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mmcli -m 0 --messaging-list-sms&lt;br /&gt;
Found 10 SMS messages:&lt;br /&gt;
/org/freedesktop/ModemManager1/SMS/0 (received)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Manjaro:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mmcli -m 3 --messaging-list-sms&lt;br /&gt;
/org/freedesktop/ModemManager1/SMS/77 (received)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Mobian, delete all the messages like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo mmcli -m 0 --messaging-delete-sms=1&amp;lt;/code&amp;gt; (Repeat with 1 through 10 to delete all the messages)&lt;br /&gt;
&lt;br /&gt;
For Manjaro, delete all the messages like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo mmcli -m 3 --messaging-delete-sms=77&amp;lt;/code&amp;gt; (Repeat with all listed messages)&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;-m 0&amp;quot; or &amp;quot;-m 3&amp;quot; refers to modem 0 or 3 (the only one in a PinePhone). For more help on the messaging related actions available in mmcli you can check the help with &amp;lt;code&amp;gt;mmcli --help-messaging.&amp;lt;/code&amp;gt; This article is also helpful in learning: https://electronproton.com/mmcli-command-examples/. For your particular configuration, you may need to try different &amp;quot;-m #&amp;quot; combinations, e.g., &amp;quot;-m 2&amp;quot; or &amp;quot;-m 4.&amp;quot; &amp;quot;-m 0&amp;quot; is not always the default.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that recent releases of Mobian and postmarketOS now include a userspace daemon called [https://gitlab.com/mobian1/devices/eg25-manager eg25-manager], which helps manage the modem and ensure proper operation.&lt;br /&gt;
&lt;br /&gt;
== Shipping ==&lt;br /&gt;
=== I did not receive an order confirmation ===&lt;br /&gt;
Check your &amp;quot;spam&amp;quot; folder. It was reported that some users did not receive an order confirmation. You will also still get a shipping notification when the device ships out, even if you didn't get an order confirmation email.&lt;br /&gt;
&lt;br /&gt;
=== When does the phone ship? ===&lt;br /&gt;
For up-to-date information when the phone's shipping date is estimated, see the edits in the corresponding forum thread.&lt;br /&gt;
&lt;br /&gt;
=== It is shipping day but I did not receive a shipping notification ===&lt;br /&gt;
For shipments with DHL the shipping notification is sent out as soon as the packet reached DHL's warehouse and scanned (it can take up to 24 hours after scanning after the shipment is added to DHL's database). For all other shipments (via Ascendia) the notification is sent out sometime after shipment.&lt;br /&gt;
&lt;br /&gt;
=== When does my phone ship if I order now? ===&lt;br /&gt;
Orders made after Friday, 22nd May 2020 are shipped after the first bulk of pre-orders has been shipped. The exact date is not known yet due to various reasons, it may be a few weeks after the first bulk shipped. [https://forum.pine64.org/showthread.php?tid=9942 The forum] will be edited with updated information and you will receive a shipping notification when the device was shipped.&lt;br /&gt;
&lt;br /&gt;
=== What about import taxes? ===&lt;br /&gt;
Import taxes have to be paid by the buyer depending on the jurisdiction of the country of the buyer. Please check with your local laws if there are import taxes to pay and if so how to do the tax filing.&lt;br /&gt;
&lt;br /&gt;
== Accessories ==&lt;br /&gt;
&lt;br /&gt;
=== Protection ===&lt;br /&gt;
==== Which screen protector should I use? ====&lt;br /&gt;
&lt;br /&gt;
Protecting your screen is important, especially for devices like the PinePhone that doesn't have access to the newest glass technology.&lt;br /&gt;
The Braveheart and Community Editions of the PinePhone comes with a plastic film screen protector installed, and PINE64 sells a tempered glass screen protector [https://pine64.com/product/pinephone-tempered-glass-screen-protector/ in their store].&lt;br /&gt;
&lt;br /&gt;
You can also buy a third-party screen protector, as the screen protectors for the iPhone 11 Pro Max/XS Max fit the PinePhone pretty well based on [https://forum.pine64.org/showthread.php?tid=8458&amp;amp;pid=65409#pid65409 this] forum post.&lt;br /&gt;
&lt;br /&gt;
=== Batteries ===&lt;br /&gt;
==== I want a replacement battery, which one should I buy? ====&lt;br /&gt;
&lt;br /&gt;
Replacement batteries for US customers are available in the store.&lt;br /&gt;
&lt;br /&gt;
Currently the PinePhone battery is known to be compatible with replacement batteries for the Samsung J700. Specifically, models &amp;quot;EB-BJ700BBC&amp;quot; and &amp;quot;EB-BJ700BBE&amp;quot; are compatible with all PinePhone models, and &amp;quot;EB-BJ700CBE&amp;quot; is compatible with Community Editions [https://www.reddit.com/r/PINE64official/comments/kcof97/pinephone_replacement_battery_found_and_tested/gfrx4p2/?utm_source=reddit&amp;amp;utm_medium=web2x&amp;amp;context=3 after UBPorts] (due to plastic tabs on its bottom which only the newer phones [https://forum.pine64.org/showthread.php?tid=11901 have tolerance for]).&lt;br /&gt;
&lt;br /&gt;
=== External hardware ===&lt;br /&gt;
&lt;br /&gt;
==== Will PINE64 sell other add-ons made for the PinePhone? ====&lt;br /&gt;
&lt;br /&gt;
Yes, currently there is a keyboard case [https://forum.pine64.org/showthread.php?tid=8537&amp;amp;pid=55396#pid55396 with similarities to the Psion 5] which includes an internal battery, and a [https://www.pine64.org/2020/05/15/may-update-pinetab-pre-orders-pinephone-qi-charging-more/ Qi wireless charging] add-on planned, both of which PINE64 intends to directly sell. There is the potential for future add-ons such as a game pad, however that is currently just an idea and not in any way planned.&lt;br /&gt;
&lt;br /&gt;
==== Which 3rd party hardware can connect to my PinePhone? ====&lt;br /&gt;
&lt;br /&gt;
See [[PinePhone Hardware Accessory Compatibility]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PINE_A64-LTS&amp;diff=10640</id>
		<title>PINE A64-LTS</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PINE_A64-LTS&amp;diff=10640"/>
		<updated>2021-06-06T03:57:31Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* System Memory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Software and operating system images ==&lt;br /&gt;
&lt;br /&gt;
'''Important''': The SOPine operating system images are compatible with PINE A64-LTS.&lt;br /&gt;
&lt;br /&gt;
Please see [[SOPINE Software Release]] for a complete list of currently supported operating system images that work with the SOPine, as well as other related software. For a quick reference, the list includes the following operating system images:&lt;br /&gt;
&lt;br /&gt;
* [[SOPINE_Software_Release#Armbian|Armbian]]&lt;br /&gt;
* [[SOPINE_Software_Release#AOSC|AOSC]]&lt;br /&gt;
* [[SOPINE Software Release#OpenEmbedded.2FYocto_Images|OpenEmbedded/Yocto]]&lt;br /&gt;
* [[SOPINE Software Release#OpenWRT|OpenWRT]]&lt;br /&gt;
* [[SOPINE Software Release#Volumio 2 Digital Audio Player|Volumio 2 Digital Audio Player]]&lt;br /&gt;
* [[SOPINE Software Release#FreedomBox|FreedomBox]]&lt;br /&gt;
* [[SOPINE Software Release#LibreELEC(KODI)|LibreELEC (KODI)]]&lt;br /&gt;
* [[SOPINE Software Release#NetBSD|NetBSD]]&lt;br /&gt;
* [[SOPINE Software Release#Android 6.x|Android 6.x]] / [[SOPINE Software Release#Android 5.x|Android 5.x]].&lt;br /&gt;
&lt;br /&gt;
Below is a list of links to the build sources and environments for some operating system images.  Some of themare labelled as '''beta or nightly builds''', which means they are fit for testing purposes only.  Those images should be used at your own risk and are not fit for regular use.&lt;br /&gt;
&lt;br /&gt;
* [https://www.stdin.xyz/downloads/people/longsleep/pine64-images/ longsleep BSP Linux]&lt;br /&gt;
* [https://github.com/ayufan-pine64/linux-build/releases/latest/ ayufan Linux]&lt;br /&gt;
* [https://github.com/ayufan-pine64/android-7.1/releases/latest/ ayufan Android 7.1], [https://github.com/ayufan-pine64/android-6.0/releases/latest/ Android 6.0], and [https://github.com/ayufan-pine64/android-5.1/releases/latest/ Android 5.1]&lt;br /&gt;
* [https://pine64suse.weebly.com/download.html openSUSE]&lt;br /&gt;
* [https://dl.armbian.com/pine64so/archive/ SOPINE Armbian]&lt;br /&gt;
* [https://github.com/anarsoul/linux-build/releases/latest Arch Linux XFCE]&lt;br /&gt;
* [https://sourceforge.net/projects/openmediavault/files/Other%20armhf%20images/ OpenMediaVault]&lt;br /&gt;
&lt;br /&gt;
== Accessories and Step-by-Step Guides ==&lt;br /&gt;
&lt;br /&gt;
Please see [[Accessories Step by Step Guides]] for a list of guides for Pine A64 accessories; there you can find instructions and guides about the following:&lt;br /&gt;
&lt;br /&gt;
* Enclosures&lt;br /&gt;
* Bluetooth and WiFi module&lt;br /&gt;
* Real Time Clock (RTC) battery&lt;br /&gt;
* Real Time Clock (RTC) battery holder&lt;br /&gt;
* First and third party cases&lt;br /&gt;
* Featured 3D printed cases (and more)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specification ==&lt;br /&gt;
* Based on Allwinner A64/R18&lt;br /&gt;
** '''R18 and A64 are identical SoC but R18 committed for 10 years supply by vendor.''' &lt;br /&gt;
[[File:Allwinner_A64.jpg|right]]&lt;br /&gt;
[[File:Allwinner_R18.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://www.arm.com/products/processors/cortex-a/cortex-a53-processor.php Quad-core ARM Cortex-A53 Processor@1152Mhz]&lt;br /&gt;
* A power-efficient ARM v8 architecture&lt;br /&gt;
* 64 and 32bit execution states for scalable high performance&lt;br /&gt;
* Support NEON Advanced SIMD (Single Instruction Multiple Data) instruction for acceleration of media and signal processing function&lt;br /&gt;
* Support Large Physical Address Extensions(LPAE)&lt;br /&gt;
* VFPv4 Floating Point Unit&lt;br /&gt;
* 32KB L1 Instruction cache and 32KB L1 Data cache&lt;br /&gt;
* 512KB L2 cache&lt;br /&gt;
&lt;br /&gt;
=== GPU Architecture ===&lt;br /&gt;
* [https://www.arm.com/products/multimedia/mali-gpu/ultra-low-power/mali-400.php ARM Mali400MP2 Dual-core GPU]&lt;br /&gt;
* Support OpenGL ES 2.0 and OpenVG 1.1 standard&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory Variants: 2GB LPDDR3.&lt;br /&gt;
* Storage Memory: 128Mb SPI Flash and optional eMMC module from 16GB up to 128GB&lt;br /&gt;
&lt;br /&gt;
== PINE A64-LTS Board Features ==&lt;br /&gt;
[[File:PINEA64 LTS board front.jpg|thumb|400px|Front view of a Pine A64-LTS board]]&lt;br /&gt;
[[File:PINEA64 LTS board back.jpg|thumb|400px|Rear view of a Pine A64-LTS board]]&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
* Digital Video (Type A - full)&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* 3.5mm stereo earphone/microphone plug&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* 10/100/1000Mbps Ethernet(PINE A64+ version), 10/100Mbps Ethernet(PINE A64 version)&lt;br /&gt;
* WiFi 802.11 b/g/n with Bluetooth 4.0 (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* USB -	2 USB2.0 Host port&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
* DSI - Display Serial Interface, 4 lanes MiPi, up to 1080P&lt;br /&gt;
* CSI - CMOS Camera Interface up to 5 mega pixel&lt;br /&gt;
* TP - Touch Panel Port, SPI with interrupt&lt;br /&gt;
* RTC - Real Time Clock Battery Connector&lt;br /&gt;
* VBAT - Lithium Battery Connector with temperature sensor input&lt;br /&gt;
* Wifi/BT Module Header - SDIO 3.0 and UART&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* 2x17 pins &amp;quot;Euler&amp;quot; GPIO Header&lt;br /&gt;
* 2x5 pins &amp;quot;EXP&amp;quot; Console Header&lt;br /&gt;
&lt;br /&gt;
== Pine A64-LTS, SOPine Module and Baseboard Information, Schematics, and Certifications ==&lt;br /&gt;
[[File:SOPINE Baseboard front.jpg|thumb|400px|Front view of a SOPine Baseboard]]&lt;br /&gt;
[[File:SOPINE front.jpg|thumb|400px|Front view of a SOPine module]]&lt;br /&gt;
[[File:SOPINE back.jpg|thumb|400px|Rear view of a SOPine module]]&lt;br /&gt;
&lt;br /&gt;
* Model &amp;quot;A&amp;quot; Baseboard Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: DC 5V @ 2A, 3.7V Li-Ion battery connector, 3.5OD/1.35ID Barrel DC Jack connector, Euler connector&lt;br /&gt;
* [https://wiki.pine64.org/images/7/7d/Pine64_Board_Connector.png PINE A64 Connector Layout @courtesy of norm24]&lt;br /&gt;
* [https://wiki.pine64.org/images/d/da/Pine64_Connector.JPG PINE A64 Connector List]&lt;br /&gt;
* [https://files.pine64.org/doc/SOPINE-A64/SOPINE-A64-Pin-Assignments-ver-1.0.pdf SOPine Module Pin Assignment ver 1.0]&lt;br /&gt;
* [https://forum.pine64.org/showthread.php?tid=8058 a PDF mapping the pins from the A64 chip itself, to the gold-fingers on the SO-DIMM edge, to the multiple connectors on the baseboard and on the clusterboard, attached to this forum post.]&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/Pine%20A64%20Pin%20Assignment%20160119.pdf PINE A64 Pi-2/Eular/Ext Bus/Wifi Bus Connector Pin Assignment (Updated 15/Feb/2016)]&lt;br /&gt;
** [https://synfare.com/599N105E/hwdocs/pine64/index.html Good documentation about PINE A64, A64+, and A64-LTS GPIO pins article]&lt;br /&gt;
* Pine A64-LTS Schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/PINE%20A64-TLS-20180130.pdf Pine A64-LTS Schematic]&lt;br /&gt;
* SOPine Module Schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPINE-A64-Schematic-ver-0.9.pdf SOPine Module Schematic]&lt;br /&gt;
* SOPine Model &amp;quot;A&amp;quot; Baseboard Schematic and PCB Board Resource:&lt;br /&gt;
** '''SOPine model &amp;quot;A&amp;quot; Baseboard is an hardware open source project but is not &amp;quot;OSH&amp;quot; compliance.:'''&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Baseboard%20Model%20A%20Rev%20B20170207.DSN SOPine Model &amp;quot;A&amp;quot; Baseboard Schematic capture Rev B DSN source file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Baseboard%20Model%20A%20Rev%20B20170207.pdf SOPine Model &amp;quot;A&amp;quot; Baseboard Schematic Rev B PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Model%20A%20baseboard%20PCB%20layout%20PCB%20Job.tar SOPine Model &amp;quot;A&amp;quot; Baseboard PCB Job source file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Model%20A%20basedboard%20GERBER.tar SOPine Model &amp;quot;A&amp;quot; Baseboard PCB Gerber file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Model%20A%20baseboard%20PCB%20layout%20PDF.tar SOPine Model &amp;quot;A&amp;quot; Baseboard PCB Layout PDF file]&lt;br /&gt;
* PINE A64-LTS / SOPine Wifi/BT module Schematic&lt;br /&gt;
** [https://files.pine64.org/doc/Pine%20A64%20Schematic/A64-DB-WIFI-BT-REV%20B.pdf PINE A64 Wifi/BT Module Schematic]&lt;br /&gt;
* PINE A64-LTS / SOPine Stereo Audio Dac Board Schematic&lt;br /&gt;
**[https://forum.pine64.org/attachment.php?aid=697 PINE A64-LTS / SOPine Stereo Audio Dac Board Schematic]&lt;br /&gt;
* SOPine (together with model &amp;quot;A&amp;quot; baseboard) Certification:&lt;br /&gt;
** Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; product and in general certification is not necessary. However, PINE64 still submits the SBC for FCC, CE, and ROHS certifications and obtain the certificates to prove that the SBC board can pass the testing. Please note, a final commercial product needs to perform its own testing and obtain its own certificate.&lt;br /&gt;
** [https://files.pine64.org/doc/cert/SOPine%20FCC%20certification%20VOC20170428.pdf SOPine with model &amp;quot;A&amp;quot; baseboard FCC Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/SOPine%20CE%20certification%20VOC20170428.pdf SOPine with model &amp;quot;A&amp;quot; baseboard CE Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/SOPine%20ROHS%20certification%20VOC20170322.pdf SOPine with model &amp;quot;A&amp;quot; baseboard RoHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
* Allwinner A64/R18 SoC information:&lt;br /&gt;
** '''R18 and A64 are identical SoC but R18 committed for 10 years supply by vendor.''' &lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/A64%20brief%20v1.0%2020150323.pdf Allwinner A64 SoC Brief Introduction]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/Allwinner-R18-Brief%20Sheet.pdf Allwinner R18 SoC Brief Introduction]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/A64_Datasheet_V1.1.pdf Allwinner A64/R18 SoC Data Sheet V1.1 (Official Released Version)]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/Allwinner_A64_User_Manual_V1.0.pdf Allwinner A64/R18 SoC User Manual V1.0 (Official Release Version)]&lt;br /&gt;
* X-Powers AXP803 PMU (Power Management Unit) information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/AXP803_Datasheet_V1.0.pdf AXP803 PMIC Datasheet]&lt;br /&gt;
* LPDDR3 information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/AWL3A1632_mobile_lpddr3_1600Mbps.pdf Allwinner LPDDR3 Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/FORESEE%20178ball%2012x11.5%20LPDDR3%2016G%20Spec%20V1.0-1228.pdf Foresee LPDDR3 Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/K4E6E304EE-EGCE.pdf Samsung LPDDR3 Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/LPDDR3%20178ball%208Gb_H9CCNNN8JTALAR_Rev1.0.pdf Hynix LPDDR3 Datasheet]&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
* SPI NOR Flash information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
* '''PINE A64, PINE A64+, PINE A64-LTS and SOPINE Related:'''&lt;br /&gt;
** 5MPixel CMOS Camera module information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/YL-PINE64-4EC.pdf PINE64 YL-PINE64-4EC 5M Pixel CMOS Image Sensor Module (Description in Chinese)]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/S5K4EC%205M%208%205X8%205%20PLCC%20%20Data%20Sheet_V1.0.pdf S5K4EC 5MP CMOS Image Sensor SoC Module Datasheet]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/S5K4ECGX_EVT1_DataSheet_R005_20100816.pdf S5K4EC 5MP CMOS Image Sensor SoC Chip Datasheet]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/s5k4ec.c S5K4EC 5MP CMOS Image Sensor Driver Source Code in C language]&lt;br /&gt;
*** Early version Camera module information:&lt;br /&gt;
**** [https://files.pine64.org/doc/datasheet/pine64/D116-A64_Bonsen_cmos_camera.pdf Bonsen Kexin V118-A64-GC2145-HM5065 CMOS Image Sensor Module]&lt;br /&gt;
**** [https://files.pine64.org/doc/datasheet/pine64/HM5065-DS-V03.pdf HiMax 5MP CMOS Image Sensor SoC]&lt;br /&gt;
** LCD Touch Screen Panel information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0&amp;quot; 1200x600 TFT-LCD Panel Specification]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/HK70DR2459-PG-V01.pdf Touch Panel Specification]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/GT911%20Capacitive%20Touch%20Controller%20Datasheet.pdf GOODiX GT911 5-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
** Lithium Battery information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/9070120P%203.7V%208000MAH.pdf 8000mAH Lithium Battery Specification]&lt;br /&gt;
** Ethernet PHY information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver for PINE A64-LTS Board and SOPine Baseboard]&lt;br /&gt;
** Wifi/BT module information:&lt;br /&gt;
*** [https://files.pine64.org/doc/Pine%20A64%20Schematic/A64-DB-WIFI-BT-REV%20B.pdf PINE A64 Wifi/BT Module Schematic]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/RTL8723BS.pdf Realtek RTL8723BS WiFi with BT SDIO]&lt;br /&gt;
** Enclosure information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/ABS_enclosure_20160426.stp ABS Enclosure 3D file]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/pine64%20Die%20Cast%20casing-final.jpg Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]&lt;br /&gt;
** Connector information:&lt;br /&gt;
*** [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]&lt;br /&gt;
*** [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]&lt;br /&gt;
** Remote control button mapping&lt;br /&gt;
*** [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE A64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
== Pine A64 POT ==&lt;br /&gt;
* [[POT|PINE A64 Peripheral On Top (POT) and Related Devices]]&lt;br /&gt;
* [[Wifi_Remote_I2c|WiFi Remote I2c Quick Start Guide]]&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
* [https://linux-sunxi.org/Pine64#Manufacturer_images Linux Sunxi Wiki page on PINE A64]&lt;br /&gt;
* [https://github.com/umiddelb/z2d/tree/master/pine64 Collection of scripts to set up a minimal Xenial 14.04.3 / Debian 8 Jessie root filesystem Contributed By Uli Middelberg]&lt;br /&gt;
* [https://github.com/apritzel/pine64 Linux Image created by Andre Przywara]&lt;br /&gt;
* [https://blog.hypriot.com/post/the-pine-a64-is-about-to-become=the-cheapest-ARM-64-bit-platform-to-run-Docker/ PINE A64 with HypriotOS by Dieter and Govinda]&lt;br /&gt;
* [https://sosfakeflash.wordpress.com/2008/09/02/h2testw-14-gold-standard-in-detecting-usb-counterfeit-drives/comment-page-3/#comment-9861 H2testw 1.4 – Gold Standard In Detecting USB Counterfeit Drives]&lt;br /&gt;
* [https://oss.digirati.com.br/f3/ F3 - an alternative to h2testw]&lt;br /&gt;
* [https://www.phoronix.com/scan.php?page=article&amp;amp;item=pine-64-benchmark&amp;amp;num=1 Benchmarking The Low-Cost PINE 64+ ARM Single Board Computer by Michael Larabel]&lt;br /&gt;
* [https://github.com/longsleep/build-pine64-image PINE64 Linux build scripts, tools and instructions by Longsleep]&lt;br /&gt;
* [https://www.stdin.xyz/downloads/people/longsleep/pine64-images/ PINE64 Linux image by Longsleep]&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLgj96wTPcMKffRm_Sk6673Nfy_I6b5UJW A series of Youtube video on PINE A64 Developers Board by Michael Larson]&lt;br /&gt;
* [https://rayhightower.com/blog/2016/04/04/pine64-quick-start-guide-using-mac-os-x/ PINE64 Quick Start Guide (with Gotchas)]&lt;br /&gt;
* [https://softwarebakery.com/shrinking-images-on-linux Shrinking images on Linux by FrozenCow]&lt;br /&gt;
* [https://gitlab.manjaro.org/packages/community/manjaro-arm-installer Manjaro Arm installation script]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SOPine]] [[Category:A64-LTS]] [[Category:Allwinner A64]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=SOEDGE&amp;diff=10639</id>
		<title>SOEDGE</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=SOEDGE&amp;diff=10639"/>
		<updated>2021-06-06T03:57:13Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* System Memory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The SOEdge is a 3TOPS compute module that can be paired with the SOPine base board or USB 3.0 and PCIe adapters for development. It can connect to a SBC, such as the ROCKPro64 or a regular PC. &lt;br /&gt;
&lt;br /&gt;
== Software and OS Image Downloads ==&lt;br /&gt;
=== SOEdge Software Release ===&lt;br /&gt;
&lt;br /&gt;
The SOEdge software releases can be found in the article [[SOEdge Software Release]].&lt;br /&gt;
&lt;br /&gt;
== Accessories Step-by-Step Guides ==&lt;br /&gt;
Under [[Accessories_Step_by_Step_Guides|'Guides for model A baseboard accessories']] you can find instructions and guides concerning:&lt;br /&gt;
* Enclosures&lt;br /&gt;
* Bluetooth and WiFi module&lt;br /&gt;
* Real Time Clock (RTC) battery&lt;br /&gt;
* Real Time Clock (RTC) battery holder&lt;br /&gt;
* First and third party cases&lt;br /&gt;
* Featured 3D printed cases (and more)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specification ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK18_Series/2019/0529/989.html Rockchip RK1808]&lt;br /&gt;
[[File:RK1808_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a35 Dual-core ARM Cortex-A35 Processor@1600-2000Mhz]&lt;br /&gt;
* A power-efficient ARM 64-Bit Armv8-A architecture&lt;br /&gt;
* AArch32 for full backward compatibility with Armv7&lt;br /&gt;
* Support NEON Advanced SIMD (Single Instruction Multiple Data) instruction for acceleration of media and signal processing function&lt;br /&gt;
* Support Large Physical Address Extensions(LPAE)&lt;br /&gt;
* VFPv4 Floating Point Unit&lt;br /&gt;
* 32KB L1 Instruction cache and 32KB L1 Data cache&lt;br /&gt;
* AArch64 for 64-bit support and new architectural features&lt;br /&gt;
* TrustZone security technology&lt;br /&gt;
* Neon Advanced SIMD&lt;br /&gt;
* DSP and SIMD extensions&lt;br /&gt;
* VFPv4 Floating point&lt;br /&gt;
* Hardware virtualization support&lt;br /&gt;
* 128KB L2 cache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Neural Process Unit NPU Capability ===&lt;br /&gt;
* [https://www.verisilicon.com/en/IPPortfolio/VivanteNPUIP NPU IP from Verisilicon Vivante]&lt;br /&gt;
* Support max 1920 Int8 MAC operation per cycle&lt;br /&gt;
* Support max192 Int16 MAC operation per cycle&lt;br /&gt;
* Support max 64 FP16 MAC operation per cycle&lt;br /&gt;
* 512KB internal buffer&lt;br /&gt;
* One isolated voltage domain to support DVFS&lt;br /&gt;
* [https://github.com/VeriSilicon/acuity-models Acuity models Github]&lt;br /&gt;
&lt;br /&gt;
[[File:Vivante_Acuity_SDK.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory Variants: 2GB DDR4.&lt;br /&gt;
* Storage Memory: 128Mb SPI Flash and optional eMMC module from 16GB up to 128GB&lt;br /&gt;
&lt;br /&gt;
== SOEdge Baseboard Features ==&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* 10/100/1000Mbps Etherne&lt;br /&gt;
* WiFi 802.11 b/g/n with Bluetooth 4.0 (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* USB -	2 USB2.0 Host port&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
* DSI - Display Serial Interface, 4 lanes MiPi, up to 1080P&lt;br /&gt;
* TP - Touch Panel Port, SPI with interrupt&lt;br /&gt;
* RTC - Real Time Clock Battery Connector&lt;br /&gt;
* VBAT - Lithium Battery Connector with temperature sensor input&lt;br /&gt;
* Wifi/BT Module Header - SDIO 3.0 and UART&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* PCIe 2x open ended slot&lt;br /&gt;
&lt;br /&gt;
== SOEdge Module and Baseboard Information, Schematics, and Certifications ==&lt;br /&gt;
* Model &amp;quot;A&amp;quot; Baseboard Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: DC 12V @ 3A 5.5OD/2.1ID Barrel DC Jack connector&lt;br /&gt;
&lt;br /&gt;
* SOEdge Module Schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SOEdge-Schematic-v2.0-190919.pdf SOEdge Module ver 2.0 20190919 Schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SoEdge-PCB-placement-v2.0-topplace.pdf SOEdge Module ver 2.0 20190919 PCB Component Placement Top PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SoEdge-PCB-placement-v2.0-bottomplace.pdf SOEdge Module ver 2.0 20190919 PCB Component Placement Bottom PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SoEdge-PCB-placement-v2.0-topplace.dxf SOEdge Module ver 2.0 20190919 PCB Component Placement Top Drawing file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SoEdge-PCB-placement-v2.0-bottomplace.dxf SOEdge Module ver 2.0 20190919 PCB Component Placement Bottom Drawing file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SOEdge%20Pin%20Assignments%20ver%201.00.xlsx SOEdge Module Pin Assignment ver 1.0 in Excel format(includes comparison chart to SOPine)]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SOEdge%20Pin%20Assignments%20ver%201.00.ods SOEdge Module Pin Assignment ver 1.0 in Open Document format(includes comparison chart to SOPine)]&lt;br /&gt;
* SOEdge Model &amp;quot;A&amp;quot; Baseboard Schematic and PCB Board Resource:&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SOEDGE_MODEL_A_BASEBOARD_Schematic-20210223.pdf SOEdge Model &amp;quot;A&amp;quot; Baseboard Schematic 20210223 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SOEDGE_MODEL_A_BASEBOARD_PCB-TOP-20210223.pdf SOEdge Model &amp;quot;A&amp;quot; Baseboard 20210223 PCB Component Placement Top PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SOEDGE_MODEL_A_BASEBOARD_PCB-BOT-20210223.pdf SOEdge Model &amp;quot;A&amp;quot; Baseboard 20210223 PCB Component Placement Bottom PDF file]&lt;br /&gt;
* SOEdge Neural AI Stick Schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SOEdge%20Neural%20AI%20Stick%20Schematic_V10.pdf SOEdge Neural AI Stick PDF file]&lt;br /&gt;
* SOEdge/SOPine/PINE A64 Wifi/BT module Schematic&lt;br /&gt;
** [https://files.pine64.org/doc/Pine%20A64%20Schematic/A64-DB-WIFI-BT-REV%20B.pdf PINE A64 Wifi/BT Module Schematic]&lt;br /&gt;
* SOEdge module together with model &amp;quot;A&amp;quot; baseboard Certification:&lt;br /&gt;
** Disclaimer: Please note that SOEdge module is not a &amp;quot;final&amp;quot; product and in general certification is not necessary. However, SOEdge module still submits the mpdel A baseboard for FCC, CE, and ROHS certifications and obtain the certificates to prove that can pass the testing. Please note, a final commercial product needs to perform its own testing and obtain its own certificate.&lt;br /&gt;
** Not yet available&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
* Rockchip RK1808 SoC information:&lt;br /&gt;
** [http://opensource.rock-chips.com/images/4/43/Rockchip_RK1808_Datasheet_V1.2_20190527.pdf Rockchip RK1808 ver 1.2 datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/SOEdge/Rockchip%20RK1808%20TRM%20Part1%20V1.2--20190826%20open%20source.pdf Rockchip TK1808 Technical Reference Manual Part 1]&lt;br /&gt;
* Rockchip RK809 PMU (Power Management Unit) information:&lt;br /&gt;
** [https://rockchip.fr/RK809%20datasheet%20V1.01.pdf Rockchip RK809 PMIC Datasheet]&lt;br /&gt;
* DDR4 information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/SOEdge/Micron%208Gb_DDR4_SDRAM.pdf Micron DDR4 Datasheet]&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
* SPI NOR Flash information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
* '''SOEdge Related:'''&lt;br /&gt;
** LCD Touch Screen Panel information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0&amp;quot; 1200x600 TFT-LCD Panel Specification]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/HK70DR2459-PG-V01.pdf Touch Panel Specification]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/GT911%20Capacitive%20Touch%20Controller%20Datasheet.pdf GOODiX GT911 5-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
** Ethernet PHY information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver for SOEdge model A baseboard]&lt;br /&gt;
** Wifi/BT module information:&lt;br /&gt;
*** [https://files.pine64.org/doc/Pine%20A64%20Schematic/A64-DB-WIFI-BT-REV%20B.pdf SOEdge/SOPine/PINE A64 Wifi/BT Module Schematic]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/RTL8723BS.pdf Realtek RTL8723BS WiFi with BT SDIO]&lt;br /&gt;
** Enclosure information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/ABS_enclosure_20160426.stp ABS Enclosure 3D file]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/pine64%20Die%20Cast%20casing-final.jpg Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]&lt;br /&gt;
** Connector information:&lt;br /&gt;
*** [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]&lt;br /&gt;
*** [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]&lt;br /&gt;
&lt;br /&gt;
== SOEdge/SOPine Cluster Board Resource ==&lt;br /&gt;
* Cluster board is an hardware open source project and will be available at PINE64 store on late January 2018. &lt;br /&gt;
* Please note that this project is not &amp;quot;OSH&amp;quot; compliance.:&lt;br /&gt;
** [https://files.pine64.org/doc/clusterboard/PINE64%20CLUSTER%20BOARD_2_2.DSN Clusterboard version 2.2 Schematic Capture source file]&lt;br /&gt;
** [https://files.pine64.org/doc/clusterboard/PINE64%20CLUSTER%20BOARD_2_2_Schematic.pdf Clusterboard version 2.2 Schematic Capture PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/clusterboard/PINE64%20CLUSTER%20BOARD_2_2.brd Clusterboard version 2.2 PCB Job source file]&lt;br /&gt;
** [https://files.pine64.org/doc/clusterboard/PINE64%20CLUSTER%20BOARD%20V2.2-gerber.rar Clusterboard version 2.2 PCB Gerber file]&lt;br /&gt;
** [https://files.pine64.org/doc/clusterboard/PINE64%20CLUSTER%20BOARD_2_2_PCB.pdf Clusterboard version 2.2 PCB Layout PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/clusterboard/clusterboard_20pins_header.jpg Clusterboard 20pins header definition]&lt;br /&gt;
** [https://myhub.autodesk360.com/ue2b2f72e/g/shares/SH56a43QTfd62c1cd96840f4ec37c60bcf12 Clusterboard 3D drawing in Fusion360]&lt;br /&gt;
** [https://myhub.autodesk360.com/ue2b2f72e/g/shares/SH56a43QTfd62c1cd968cd6bc203ac753401?viewState=NoIgbgDAdAjCA0ICGBmARgEwGZIOwGMBaDFADgFNCAWfAJi2o1IFZDmlTSIA2DW8-FTQgAukA Clusterboard PDF drawing]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Linux Image Releases =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stock BSP ==&lt;br /&gt;
&lt;br /&gt;
=== BSP Linux ver 1.1 Build from SDK ===&lt;br /&gt;
* Please unzip first and then using Rockchip tool to flash in&lt;br /&gt;
* [https://wiki.pine64.org/index.php/NOOB#Flashing_to_eMMC_using_Rockchip_Tools_.28Rock64_Only.29 Guide to flashing eMMC using Rockchip Tools]&lt;br /&gt;
** [http://files.pine64.org/os/SOEdge/stock/SOEdge_linux_v1.1.img.gz download from pine64.org]&lt;br /&gt;
** MD5 (TAR-GZip file): a6629f997ae2cae7d9d5324c4e942deda9&lt;br /&gt;
** File Size: 119MB&lt;br /&gt;
&lt;br /&gt;
=== BSP Linux ver 1.1 Build as USB Stick application from SDK ===&lt;br /&gt;
* Please unzip first and then using Rockchip tool to flash in&lt;br /&gt;
* [https://wiki.pine64.org/index.php/NOOB#Flashing_to_eMMC_using_Rockchip_Tools_.28Rock64_Only.29 Guide to flashing eMMC using Rockchip Tools]&lt;br /&gt;
** [http://files.pine64.org/os/SOEdge/stock/SOEdge_linux_usb_compute_stick.img.gz download from pine64.org]&lt;br /&gt;
** MD5 (GZip file): af6ac45995f7ddd9343a7052efffaf30&lt;br /&gt;
** File Size: 47MB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Factory Test Build ==&lt;br /&gt;
&lt;br /&gt;
* Factory Test Build by Gamiee&lt;br /&gt;
* DD image (for 8GB micoSD card or eMMC Module and above)&lt;br /&gt;
** [http://files.pine64.org/os/SOEdge/gamiee/update-soedge-factory-test-2021-03-23.img.gz download from pine64.org]&lt;br /&gt;
** MD5 (GZip file): b3d09933734eaaebb34c357b73f5c69e&lt;br /&gt;
** File Size: 119MB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Linux BSP SDK =&lt;br /&gt;
&lt;br /&gt;
== Linux BSP Kernel ver 1.1 ==&lt;br /&gt;
* [http://files.pine64.org/SDK/SOEdge/SOEdge_RK-BSP_SDK_v1.1.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** MD5 (TAR-GZip file): a66c92e52824762d7c0a63400d6342ea&lt;br /&gt;
** File Size: 13.55GB&lt;br /&gt;
&lt;br /&gt;
== Linux BSP Kernel ver 1.1 as USB Stick application ==&lt;br /&gt;
* [http://files.pine64.org/SDK/SOEdge/SOEdge_RK-BSP_USB_Dongle_SDK_v1.1.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** MD5 (TAR-GZip file): 46f12441e8c35c06184681f355c89651&lt;br /&gt;
** File Size: 9.65GB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SOPine]] [[Category:Rockchip RK1808]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PINE_A64-LTS&amp;diff=10638</id>
		<title>PINE A64-LTS</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PINE_A64-LTS&amp;diff=10638"/>
		<updated>2021-06-06T03:57:02Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* System Memory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Software and operating system images ==&lt;br /&gt;
&lt;br /&gt;
'''Important''': The SOPine operating system images are compatible with PINE A64-LTS.&lt;br /&gt;
&lt;br /&gt;
Please see [[SOPINE Software Release]] for a complete list of currently supported operating system images that work with the SOPine, as well as other related software. For a quick reference, the list includes the following operating system images:&lt;br /&gt;
&lt;br /&gt;
* [[SOPINE_Software_Release#Armbian|Armbian]]&lt;br /&gt;
* [[SOPINE_Software_Release#AOSC|AOSC]]&lt;br /&gt;
* [[SOPINE Software Release#OpenEmbedded.2FYocto_Images|OpenEmbedded/Yocto]]&lt;br /&gt;
* [[SOPINE Software Release#OpenWRT|OpenWRT]]&lt;br /&gt;
* [[SOPINE Software Release#Volumio 2 Digital Audio Player|Volumio 2 Digital Audio Player]]&lt;br /&gt;
* [[SOPINE Software Release#FreedomBox|FreedomBox]]&lt;br /&gt;
* [[SOPINE Software Release#LibreELEC(KODI)|LibreELEC (KODI)]]&lt;br /&gt;
* [[SOPINE Software Release#NetBSD|NetBSD]]&lt;br /&gt;
* [[SOPINE Software Release#Android 6.x|Android 6.x]] / [[SOPINE Software Release#Android 5.x|Android 5.x]].&lt;br /&gt;
&lt;br /&gt;
Below is a list of links to the build sources and environments for some operating system images.  Some of themare labelled as '''beta or nightly builds''', which means they are fit for testing purposes only.  Those images should be used at your own risk and are not fit for regular use.&lt;br /&gt;
&lt;br /&gt;
* [https://www.stdin.xyz/downloads/people/longsleep/pine64-images/ longsleep BSP Linux]&lt;br /&gt;
* [https://github.com/ayufan-pine64/linux-build/releases/latest/ ayufan Linux]&lt;br /&gt;
* [https://github.com/ayufan-pine64/android-7.1/releases/latest/ ayufan Android 7.1], [https://github.com/ayufan-pine64/android-6.0/releases/latest/ Android 6.0], and [https://github.com/ayufan-pine64/android-5.1/releases/latest/ Android 5.1]&lt;br /&gt;
* [https://pine64suse.weebly.com/download.html openSUSE]&lt;br /&gt;
* [https://dl.armbian.com/pine64so/archive/ SOPINE Armbian]&lt;br /&gt;
* [https://github.com/anarsoul/linux-build/releases/latest Arch Linux XFCE]&lt;br /&gt;
* [https://sourceforge.net/projects/openmediavault/files/Other%20armhf%20images/ OpenMediaVault]&lt;br /&gt;
&lt;br /&gt;
== Accessories and Step-by-Step Guides ==&lt;br /&gt;
&lt;br /&gt;
Please see [[Accessories Step by Step Guides]] for a list of guides for Pine A64 accessories; there you can find instructions and guides about the following:&lt;br /&gt;
&lt;br /&gt;
* Enclosures&lt;br /&gt;
* Bluetooth and WiFi module&lt;br /&gt;
* Real Time Clock (RTC) battery&lt;br /&gt;
* Real Time Clock (RTC) battery holder&lt;br /&gt;
* First and third party cases&lt;br /&gt;
* Featured 3D printed cases (and more)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specification ==&lt;br /&gt;
* Based on Allwinner A64/R18&lt;br /&gt;
** '''R18 and A64 are identical SoC but R18 committed for 10 years supply by vendor.''' &lt;br /&gt;
[[File:Allwinner_A64.jpg|right]]&lt;br /&gt;
[[File:Allwinner_R18.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://www.arm.com/products/processors/cortex-a/cortex-a53-processor.php Quad-core ARM Cortex-A53 Processor@1152Mhz]&lt;br /&gt;
* A power-efficient ARM v8 architecture&lt;br /&gt;
* 64 and 32bit execution states for scalable high performance&lt;br /&gt;
* Support NEON Advanced SIMD (Single Instruction Multiple Data) instruction for acceleration of media and signal processing function&lt;br /&gt;
* Support Large Physical Address Extensions(LPAE)&lt;br /&gt;
* VFPv4 Floating Point Unit&lt;br /&gt;
* 32KB L1 Instruction cache and 32KB L1 Data cache&lt;br /&gt;
* 512KB L2 cache&lt;br /&gt;
&lt;br /&gt;
=== GPU Architecture ===&lt;br /&gt;
* [https://www.arm.com/products/multimedia/mali-gpu/ultra-low-power/mali-400.php ARM Mali400MP2 Dual-core GPU]&lt;br /&gt;
* Support OpenGL ES 2.0 and OpenVG 1.1 standard&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory Variants: 2GB LPDDR3.&lt;br /&gt;
* Storage Memory: 128Mb SPI Flash and optional eMMC module from 16GB up to 64GB&lt;br /&gt;
&lt;br /&gt;
== PINE A64-LTS Board Features ==&lt;br /&gt;
[[File:PINEA64 LTS board front.jpg|thumb|400px|Front view of a Pine A64-LTS board]]&lt;br /&gt;
[[File:PINEA64 LTS board back.jpg|thumb|400px|Rear view of a Pine A64-LTS board]]&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
* Digital Video (Type A - full)&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* 3.5mm stereo earphone/microphone plug&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* 10/100/1000Mbps Ethernet(PINE A64+ version), 10/100Mbps Ethernet(PINE A64 version)&lt;br /&gt;
* WiFi 802.11 b/g/n with Bluetooth 4.0 (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* USB -	2 USB2.0 Host port&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
* DSI - Display Serial Interface, 4 lanes MiPi, up to 1080P&lt;br /&gt;
* CSI - CMOS Camera Interface up to 5 mega pixel&lt;br /&gt;
* TP - Touch Panel Port, SPI with interrupt&lt;br /&gt;
* RTC - Real Time Clock Battery Connector&lt;br /&gt;
* VBAT - Lithium Battery Connector with temperature sensor input&lt;br /&gt;
* Wifi/BT Module Header - SDIO 3.0 and UART&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* 2x17 pins &amp;quot;Euler&amp;quot; GPIO Header&lt;br /&gt;
* 2x5 pins &amp;quot;EXP&amp;quot; Console Header&lt;br /&gt;
&lt;br /&gt;
== Pine A64-LTS, SOPine Module and Baseboard Information, Schematics, and Certifications ==&lt;br /&gt;
[[File:SOPINE Baseboard front.jpg|thumb|400px|Front view of a SOPine Baseboard]]&lt;br /&gt;
[[File:SOPINE front.jpg|thumb|400px|Front view of a SOPine module]]&lt;br /&gt;
[[File:SOPINE back.jpg|thumb|400px|Rear view of a SOPine module]]&lt;br /&gt;
&lt;br /&gt;
* Model &amp;quot;A&amp;quot; Baseboard Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: DC 5V @ 2A, 3.7V Li-Ion battery connector, 3.5OD/1.35ID Barrel DC Jack connector, Euler connector&lt;br /&gt;
* [https://wiki.pine64.org/images/7/7d/Pine64_Board_Connector.png PINE A64 Connector Layout @courtesy of norm24]&lt;br /&gt;
* [https://wiki.pine64.org/images/d/da/Pine64_Connector.JPG PINE A64 Connector List]&lt;br /&gt;
* [https://files.pine64.org/doc/SOPINE-A64/SOPINE-A64-Pin-Assignments-ver-1.0.pdf SOPine Module Pin Assignment ver 1.0]&lt;br /&gt;
* [https://forum.pine64.org/showthread.php?tid=8058 a PDF mapping the pins from the A64 chip itself, to the gold-fingers on the SO-DIMM edge, to the multiple connectors on the baseboard and on the clusterboard, attached to this forum post.]&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/Pine%20A64%20Pin%20Assignment%20160119.pdf PINE A64 Pi-2/Eular/Ext Bus/Wifi Bus Connector Pin Assignment (Updated 15/Feb/2016)]&lt;br /&gt;
** [https://synfare.com/599N105E/hwdocs/pine64/index.html Good documentation about PINE A64, A64+, and A64-LTS GPIO pins article]&lt;br /&gt;
* Pine A64-LTS Schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/PINE%20A64-TLS-20180130.pdf Pine A64-LTS Schematic]&lt;br /&gt;
* SOPine Module Schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPINE-A64-Schematic-ver-0.9.pdf SOPine Module Schematic]&lt;br /&gt;
* SOPine Model &amp;quot;A&amp;quot; Baseboard Schematic and PCB Board Resource:&lt;br /&gt;
** '''SOPine model &amp;quot;A&amp;quot; Baseboard is an hardware open source project but is not &amp;quot;OSH&amp;quot; compliance.:'''&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Baseboard%20Model%20A%20Rev%20B20170207.DSN SOPine Model &amp;quot;A&amp;quot; Baseboard Schematic capture Rev B DSN source file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Baseboard%20Model%20A%20Rev%20B20170207.pdf SOPine Model &amp;quot;A&amp;quot; Baseboard Schematic Rev B PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Model%20A%20baseboard%20PCB%20layout%20PCB%20Job.tar SOPine Model &amp;quot;A&amp;quot; Baseboard PCB Job source file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Model%20A%20basedboard%20GERBER.tar SOPine Model &amp;quot;A&amp;quot; Baseboard PCB Gerber file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Model%20A%20baseboard%20PCB%20layout%20PDF.tar SOPine Model &amp;quot;A&amp;quot; Baseboard PCB Layout PDF file]&lt;br /&gt;
* PINE A64-LTS / SOPine Wifi/BT module Schematic&lt;br /&gt;
** [https://files.pine64.org/doc/Pine%20A64%20Schematic/A64-DB-WIFI-BT-REV%20B.pdf PINE A64 Wifi/BT Module Schematic]&lt;br /&gt;
* PINE A64-LTS / SOPine Stereo Audio Dac Board Schematic&lt;br /&gt;
**[https://forum.pine64.org/attachment.php?aid=697 PINE A64-LTS / SOPine Stereo Audio Dac Board Schematic]&lt;br /&gt;
* SOPine (together with model &amp;quot;A&amp;quot; baseboard) Certification:&lt;br /&gt;
** Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; product and in general certification is not necessary. However, PINE64 still submits the SBC for FCC, CE, and ROHS certifications and obtain the certificates to prove that the SBC board can pass the testing. Please note, a final commercial product needs to perform its own testing and obtain its own certificate.&lt;br /&gt;
** [https://files.pine64.org/doc/cert/SOPine%20FCC%20certification%20VOC20170428.pdf SOPine with model &amp;quot;A&amp;quot; baseboard FCC Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/SOPine%20CE%20certification%20VOC20170428.pdf SOPine with model &amp;quot;A&amp;quot; baseboard CE Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/SOPine%20ROHS%20certification%20VOC20170322.pdf SOPine with model &amp;quot;A&amp;quot; baseboard RoHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
* Allwinner A64/R18 SoC information:&lt;br /&gt;
** '''R18 and A64 are identical SoC but R18 committed for 10 years supply by vendor.''' &lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/A64%20brief%20v1.0%2020150323.pdf Allwinner A64 SoC Brief Introduction]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/Allwinner-R18-Brief%20Sheet.pdf Allwinner R18 SoC Brief Introduction]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/A64_Datasheet_V1.1.pdf Allwinner A64/R18 SoC Data Sheet V1.1 (Official Released Version)]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/Allwinner_A64_User_Manual_V1.0.pdf Allwinner A64/R18 SoC User Manual V1.0 (Official Release Version)]&lt;br /&gt;
* X-Powers AXP803 PMU (Power Management Unit) information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/AXP803_Datasheet_V1.0.pdf AXP803 PMIC Datasheet]&lt;br /&gt;
* LPDDR3 information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/AWL3A1632_mobile_lpddr3_1600Mbps.pdf Allwinner LPDDR3 Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/FORESEE%20178ball%2012x11.5%20LPDDR3%2016G%20Spec%20V1.0-1228.pdf Foresee LPDDR3 Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/K4E6E304EE-EGCE.pdf Samsung LPDDR3 Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/LPDDR3%20178ball%208Gb_H9CCNNN8JTALAR_Rev1.0.pdf Hynix LPDDR3 Datasheet]&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
* SPI NOR Flash information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
* '''PINE A64, PINE A64+, PINE A64-LTS and SOPINE Related:'''&lt;br /&gt;
** 5MPixel CMOS Camera module information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/YL-PINE64-4EC.pdf PINE64 YL-PINE64-4EC 5M Pixel CMOS Image Sensor Module (Description in Chinese)]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/S5K4EC%205M%208%205X8%205%20PLCC%20%20Data%20Sheet_V1.0.pdf S5K4EC 5MP CMOS Image Sensor SoC Module Datasheet]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/S5K4ECGX_EVT1_DataSheet_R005_20100816.pdf S5K4EC 5MP CMOS Image Sensor SoC Chip Datasheet]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/s5k4ec.c S5K4EC 5MP CMOS Image Sensor Driver Source Code in C language]&lt;br /&gt;
*** Early version Camera module information:&lt;br /&gt;
**** [https://files.pine64.org/doc/datasheet/pine64/D116-A64_Bonsen_cmos_camera.pdf Bonsen Kexin V118-A64-GC2145-HM5065 CMOS Image Sensor Module]&lt;br /&gt;
**** [https://files.pine64.org/doc/datasheet/pine64/HM5065-DS-V03.pdf HiMax 5MP CMOS Image Sensor SoC]&lt;br /&gt;
** LCD Touch Screen Panel information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0&amp;quot; 1200x600 TFT-LCD Panel Specification]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/HK70DR2459-PG-V01.pdf Touch Panel Specification]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/GT911%20Capacitive%20Touch%20Controller%20Datasheet.pdf GOODiX GT911 5-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
** Lithium Battery information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/9070120P%203.7V%208000MAH.pdf 8000mAH Lithium Battery Specification]&lt;br /&gt;
** Ethernet PHY information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver for PINE A64-LTS Board and SOPine Baseboard]&lt;br /&gt;
** Wifi/BT module information:&lt;br /&gt;
*** [https://files.pine64.org/doc/Pine%20A64%20Schematic/A64-DB-WIFI-BT-REV%20B.pdf PINE A64 Wifi/BT Module Schematic]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/RTL8723BS.pdf Realtek RTL8723BS WiFi with BT SDIO]&lt;br /&gt;
** Enclosure information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/ABS_enclosure_20160426.stp ABS Enclosure 3D file]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/pine64%20Die%20Cast%20casing-final.jpg Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]&lt;br /&gt;
** Connector information:&lt;br /&gt;
*** [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]&lt;br /&gt;
*** [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]&lt;br /&gt;
** Remote control button mapping&lt;br /&gt;
*** [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE A64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
== Pine A64 POT ==&lt;br /&gt;
* [[POT|PINE A64 Peripheral On Top (POT) and Related Devices]]&lt;br /&gt;
* [[Wifi_Remote_I2c|WiFi Remote I2c Quick Start Guide]]&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
* [https://linux-sunxi.org/Pine64#Manufacturer_images Linux Sunxi Wiki page on PINE A64]&lt;br /&gt;
* [https://github.com/umiddelb/z2d/tree/master/pine64 Collection of scripts to set up a minimal Xenial 14.04.3 / Debian 8 Jessie root filesystem Contributed By Uli Middelberg]&lt;br /&gt;
* [https://github.com/apritzel/pine64 Linux Image created by Andre Przywara]&lt;br /&gt;
* [https://blog.hypriot.com/post/the-pine-a64-is-about-to-become=the-cheapest-ARM-64-bit-platform-to-run-Docker/ PINE A64 with HypriotOS by Dieter and Govinda]&lt;br /&gt;
* [https://sosfakeflash.wordpress.com/2008/09/02/h2testw-14-gold-standard-in-detecting-usb-counterfeit-drives/comment-page-3/#comment-9861 H2testw 1.4 – Gold Standard In Detecting USB Counterfeit Drives]&lt;br /&gt;
* [https://oss.digirati.com.br/f3/ F3 - an alternative to h2testw]&lt;br /&gt;
* [https://www.phoronix.com/scan.php?page=article&amp;amp;item=pine-64-benchmark&amp;amp;num=1 Benchmarking The Low-Cost PINE 64+ ARM Single Board Computer by Michael Larabel]&lt;br /&gt;
* [https://github.com/longsleep/build-pine64-image PINE64 Linux build scripts, tools and instructions by Longsleep]&lt;br /&gt;
* [https://www.stdin.xyz/downloads/people/longsleep/pine64-images/ PINE64 Linux image by Longsleep]&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLgj96wTPcMKffRm_Sk6673Nfy_I6b5UJW A series of Youtube video on PINE A64 Developers Board by Michael Larson]&lt;br /&gt;
* [https://rayhightower.com/blog/2016/04/04/pine64-quick-start-guide-using-mac-os-x/ PINE64 Quick Start Guide (with Gotchas)]&lt;br /&gt;
* [https://softwarebakery.com/shrinking-images-on-linux Shrinking images on Linux by FrozenCow]&lt;br /&gt;
* [https://gitlab.manjaro.org/packages/community/manjaro-arm-installer Manjaro Arm installation script]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SOPine]] [[Category:A64-LTS]] [[Category:Allwinner A64]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PINE_A64-LTS&amp;diff=10637</id>
		<title>PINE A64-LTS</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PINE_A64-LTS&amp;diff=10637"/>
		<updated>2021-06-06T03:56:39Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* System Memory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Software and operating system images ==&lt;br /&gt;
&lt;br /&gt;
'''Important''': The SOPine operating system images are compatible with PINE A64-LTS.&lt;br /&gt;
&lt;br /&gt;
Please see [[SOPINE Software Release]] for a complete list of currently supported operating system images that work with the SOPine, as well as other related software. For a quick reference, the list includes the following operating system images:&lt;br /&gt;
&lt;br /&gt;
* [[SOPINE_Software_Release#Armbian|Armbian]]&lt;br /&gt;
* [[SOPINE_Software_Release#AOSC|AOSC]]&lt;br /&gt;
* [[SOPINE Software Release#OpenEmbedded.2FYocto_Images|OpenEmbedded/Yocto]]&lt;br /&gt;
* [[SOPINE Software Release#OpenWRT|OpenWRT]]&lt;br /&gt;
* [[SOPINE Software Release#Volumio 2 Digital Audio Player|Volumio 2 Digital Audio Player]]&lt;br /&gt;
* [[SOPINE Software Release#FreedomBox|FreedomBox]]&lt;br /&gt;
* [[SOPINE Software Release#LibreELEC(KODI)|LibreELEC (KODI)]]&lt;br /&gt;
* [[SOPINE Software Release#NetBSD|NetBSD]]&lt;br /&gt;
* [[SOPINE Software Release#Android 6.x|Android 6.x]] / [[SOPINE Software Release#Android 5.x|Android 5.x]].&lt;br /&gt;
&lt;br /&gt;
Below is a list of links to the build sources and environments for some operating system images.  Some of themare labelled as '''beta or nightly builds''', which means they are fit for testing purposes only.  Those images should be used at your own risk and are not fit for regular use.&lt;br /&gt;
&lt;br /&gt;
* [https://www.stdin.xyz/downloads/people/longsleep/pine64-images/ longsleep BSP Linux]&lt;br /&gt;
* [https://github.com/ayufan-pine64/linux-build/releases/latest/ ayufan Linux]&lt;br /&gt;
* [https://github.com/ayufan-pine64/android-7.1/releases/latest/ ayufan Android 7.1], [https://github.com/ayufan-pine64/android-6.0/releases/latest/ Android 6.0], and [https://github.com/ayufan-pine64/android-5.1/releases/latest/ Android 5.1]&lt;br /&gt;
* [https://pine64suse.weebly.com/download.html openSUSE]&lt;br /&gt;
* [https://dl.armbian.com/pine64so/archive/ SOPINE Armbian]&lt;br /&gt;
* [https://github.com/anarsoul/linux-build/releases/latest Arch Linux XFCE]&lt;br /&gt;
* [https://sourceforge.net/projects/openmediavault/files/Other%20armhf%20images/ OpenMediaVault]&lt;br /&gt;
&lt;br /&gt;
== Accessories and Step-by-Step Guides ==&lt;br /&gt;
&lt;br /&gt;
Please see [[Accessories Step by Step Guides]] for a list of guides for Pine A64 accessories; there you can find instructions and guides about the following:&lt;br /&gt;
&lt;br /&gt;
* Enclosures&lt;br /&gt;
* Bluetooth and WiFi module&lt;br /&gt;
* Real Time Clock (RTC) battery&lt;br /&gt;
* Real Time Clock (RTC) battery holder&lt;br /&gt;
* First and third party cases&lt;br /&gt;
* Featured 3D printed cases (and more)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specification ==&lt;br /&gt;
* Based on Allwinner A64/R18&lt;br /&gt;
** '''R18 and A64 are identical SoC but R18 committed for 10 years supply by vendor.''' &lt;br /&gt;
[[File:Allwinner_A64.jpg|right]]&lt;br /&gt;
[[File:Allwinner_R18.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://www.arm.com/products/processors/cortex-a/cortex-a53-processor.php Quad-core ARM Cortex-A53 Processor@1152Mhz]&lt;br /&gt;
* A power-efficient ARM v8 architecture&lt;br /&gt;
* 64 and 32bit execution states for scalable high performance&lt;br /&gt;
* Support NEON Advanced SIMD (Single Instruction Multiple Data) instruction for acceleration of media and signal processing function&lt;br /&gt;
* Support Large Physical Address Extensions(LPAE)&lt;br /&gt;
* VFPv4 Floating Point Unit&lt;br /&gt;
* 32KB L1 Instruction cache and 32KB L1 Data cache&lt;br /&gt;
* 512KB L2 cache&lt;br /&gt;
&lt;br /&gt;
=== GPU Architecture ===&lt;br /&gt;
* [https://www.arm.com/products/multimedia/mali-gpu/ultra-low-power/mali-400.php ARM Mali400MP2 Dual-core GPU]&lt;br /&gt;
* Support OpenGL ES 2.0 and OpenVG 1.1 standard&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory Variants: 2GB LPDDR3.&lt;br /&gt;
* Storage Memory: 128Mb SPI Flash and optional eMMC module from 16GB up to 128GB&lt;br /&gt;
&lt;br /&gt;
== PINE A64-LTS Board Features ==&lt;br /&gt;
[[File:PINEA64 LTS board front.jpg|thumb|400px|Front view of a Pine A64-LTS board]]&lt;br /&gt;
[[File:PINEA64 LTS board back.jpg|thumb|400px|Rear view of a Pine A64-LTS board]]&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
* Digital Video (Type A - full)&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* 3.5mm stereo earphone/microphone plug&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* 10/100/1000Mbps Ethernet(PINE A64+ version), 10/100Mbps Ethernet(PINE A64 version)&lt;br /&gt;
* WiFi 802.11 b/g/n with Bluetooth 4.0 (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* USB -	2 USB2.0 Host port&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
* DSI - Display Serial Interface, 4 lanes MiPi, up to 1080P&lt;br /&gt;
* CSI - CMOS Camera Interface up to 5 mega pixel&lt;br /&gt;
* TP - Touch Panel Port, SPI with interrupt&lt;br /&gt;
* RTC - Real Time Clock Battery Connector&lt;br /&gt;
* VBAT - Lithium Battery Connector with temperature sensor input&lt;br /&gt;
* Wifi/BT Module Header - SDIO 3.0 and UART&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* 2x17 pins &amp;quot;Euler&amp;quot; GPIO Header&lt;br /&gt;
* 2x5 pins &amp;quot;EXP&amp;quot; Console Header&lt;br /&gt;
&lt;br /&gt;
== Pine A64-LTS, SOPine Module and Baseboard Information, Schematics, and Certifications ==&lt;br /&gt;
[[File:SOPINE Baseboard front.jpg|thumb|400px|Front view of a SOPine Baseboard]]&lt;br /&gt;
[[File:SOPINE front.jpg|thumb|400px|Front view of a SOPine module]]&lt;br /&gt;
[[File:SOPINE back.jpg|thumb|400px|Rear view of a SOPine module]]&lt;br /&gt;
&lt;br /&gt;
* Model &amp;quot;A&amp;quot; Baseboard Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: DC 5V @ 2A, 3.7V Li-Ion battery connector, 3.5OD/1.35ID Barrel DC Jack connector, Euler connector&lt;br /&gt;
* [https://wiki.pine64.org/images/7/7d/Pine64_Board_Connector.png PINE A64 Connector Layout @courtesy of norm24]&lt;br /&gt;
* [https://wiki.pine64.org/images/d/da/Pine64_Connector.JPG PINE A64 Connector List]&lt;br /&gt;
* [https://files.pine64.org/doc/SOPINE-A64/SOPINE-A64-Pin-Assignments-ver-1.0.pdf SOPine Module Pin Assignment ver 1.0]&lt;br /&gt;
* [https://forum.pine64.org/showthread.php?tid=8058 a PDF mapping the pins from the A64 chip itself, to the gold-fingers on the SO-DIMM edge, to the multiple connectors on the baseboard and on the clusterboard, attached to this forum post.]&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/Pine%20A64%20Pin%20Assignment%20160119.pdf PINE A64 Pi-2/Eular/Ext Bus/Wifi Bus Connector Pin Assignment (Updated 15/Feb/2016)]&lt;br /&gt;
** [https://synfare.com/599N105E/hwdocs/pine64/index.html Good documentation about PINE A64, A64+, and A64-LTS GPIO pins article]&lt;br /&gt;
* Pine A64-LTS Schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/PINE%20A64-TLS-20180130.pdf Pine A64-LTS Schematic]&lt;br /&gt;
* SOPine Module Schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPINE-A64-Schematic-ver-0.9.pdf SOPine Module Schematic]&lt;br /&gt;
* SOPine Model &amp;quot;A&amp;quot; Baseboard Schematic and PCB Board Resource:&lt;br /&gt;
** '''SOPine model &amp;quot;A&amp;quot; Baseboard is an hardware open source project but is not &amp;quot;OSH&amp;quot; compliance.:'''&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Baseboard%20Model%20A%20Rev%20B20170207.DSN SOPine Model &amp;quot;A&amp;quot; Baseboard Schematic capture Rev B DSN source file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Baseboard%20Model%20A%20Rev%20B20170207.pdf SOPine Model &amp;quot;A&amp;quot; Baseboard Schematic Rev B PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Model%20A%20baseboard%20PCB%20layout%20PCB%20Job.tar SOPine Model &amp;quot;A&amp;quot; Baseboard PCB Job source file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Model%20A%20basedboard%20GERBER.tar SOPine Model &amp;quot;A&amp;quot; Baseboard PCB Gerber file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Model%20A%20baseboard%20PCB%20layout%20PDF.tar SOPine Model &amp;quot;A&amp;quot; Baseboard PCB Layout PDF file]&lt;br /&gt;
* PINE A64-LTS / SOPine Wifi/BT module Schematic&lt;br /&gt;
** [https://files.pine64.org/doc/Pine%20A64%20Schematic/A64-DB-WIFI-BT-REV%20B.pdf PINE A64 Wifi/BT Module Schematic]&lt;br /&gt;
* PINE A64-LTS / SOPine Stereo Audio Dac Board Schematic&lt;br /&gt;
**[https://forum.pine64.org/attachment.php?aid=697 PINE A64-LTS / SOPine Stereo Audio Dac Board Schematic]&lt;br /&gt;
* SOPine (together with model &amp;quot;A&amp;quot; baseboard) Certification:&lt;br /&gt;
** Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; product and in general certification is not necessary. However, PINE64 still submits the SBC for FCC, CE, and ROHS certifications and obtain the certificates to prove that the SBC board can pass the testing. Please note, a final commercial product needs to perform its own testing and obtain its own certificate.&lt;br /&gt;
** [https://files.pine64.org/doc/cert/SOPine%20FCC%20certification%20VOC20170428.pdf SOPine with model &amp;quot;A&amp;quot; baseboard FCC Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/SOPine%20CE%20certification%20VOC20170428.pdf SOPine with model &amp;quot;A&amp;quot; baseboard CE Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/SOPine%20ROHS%20certification%20VOC20170322.pdf SOPine with model &amp;quot;A&amp;quot; baseboard RoHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
* Allwinner A64/R18 SoC information:&lt;br /&gt;
** '''R18 and A64 are identical SoC but R18 committed for 10 years supply by vendor.''' &lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/A64%20brief%20v1.0%2020150323.pdf Allwinner A64 SoC Brief Introduction]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/Allwinner-R18-Brief%20Sheet.pdf Allwinner R18 SoC Brief Introduction]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/A64_Datasheet_V1.1.pdf Allwinner A64/R18 SoC Data Sheet V1.1 (Official Released Version)]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/Allwinner_A64_User_Manual_V1.0.pdf Allwinner A64/R18 SoC User Manual V1.0 (Official Release Version)]&lt;br /&gt;
* X-Powers AXP803 PMU (Power Management Unit) information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/AXP803_Datasheet_V1.0.pdf AXP803 PMIC Datasheet]&lt;br /&gt;
* LPDDR3 information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/AWL3A1632_mobile_lpddr3_1600Mbps.pdf Allwinner LPDDR3 Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/FORESEE%20178ball%2012x11.5%20LPDDR3%2016G%20Spec%20V1.0-1228.pdf Foresee LPDDR3 Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/K4E6E304EE-EGCE.pdf Samsung LPDDR3 Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/LPDDR3%20178ball%208Gb_H9CCNNN8JTALAR_Rev1.0.pdf Hynix LPDDR3 Datasheet]&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
* SPI NOR Flash information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
* '''PINE A64, PINE A64+, PINE A64-LTS and SOPINE Related:'''&lt;br /&gt;
** 5MPixel CMOS Camera module information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/YL-PINE64-4EC.pdf PINE64 YL-PINE64-4EC 5M Pixel CMOS Image Sensor Module (Description in Chinese)]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/S5K4EC%205M%208%205X8%205%20PLCC%20%20Data%20Sheet_V1.0.pdf S5K4EC 5MP CMOS Image Sensor SoC Module Datasheet]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/S5K4ECGX_EVT1_DataSheet_R005_20100816.pdf S5K4EC 5MP CMOS Image Sensor SoC Chip Datasheet]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/s5k4ec.c S5K4EC 5MP CMOS Image Sensor Driver Source Code in C language]&lt;br /&gt;
*** Early version Camera module information:&lt;br /&gt;
**** [https://files.pine64.org/doc/datasheet/pine64/D116-A64_Bonsen_cmos_camera.pdf Bonsen Kexin V118-A64-GC2145-HM5065 CMOS Image Sensor Module]&lt;br /&gt;
**** [https://files.pine64.org/doc/datasheet/pine64/HM5065-DS-V03.pdf HiMax 5MP CMOS Image Sensor SoC]&lt;br /&gt;
** LCD Touch Screen Panel information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0&amp;quot; 1200x600 TFT-LCD Panel Specification]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/HK70DR2459-PG-V01.pdf Touch Panel Specification]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/GT911%20Capacitive%20Touch%20Controller%20Datasheet.pdf GOODiX GT911 5-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
** Lithium Battery information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/9070120P%203.7V%208000MAH.pdf 8000mAH Lithium Battery Specification]&lt;br /&gt;
** Ethernet PHY information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver for PINE A64-LTS Board and SOPine Baseboard]&lt;br /&gt;
** Wifi/BT module information:&lt;br /&gt;
*** [https://files.pine64.org/doc/Pine%20A64%20Schematic/A64-DB-WIFI-BT-REV%20B.pdf PINE A64 Wifi/BT Module Schematic]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/RTL8723BS.pdf Realtek RTL8723BS WiFi with BT SDIO]&lt;br /&gt;
** Enclosure information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/ABS_enclosure_20160426.stp ABS Enclosure 3D file]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/pine64%20Die%20Cast%20casing-final.jpg Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]&lt;br /&gt;
** Connector information:&lt;br /&gt;
*** [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]&lt;br /&gt;
*** [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]&lt;br /&gt;
** Remote control button mapping&lt;br /&gt;
*** [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE A64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
== Pine A64 POT ==&lt;br /&gt;
* [[POT|PINE A64 Peripheral On Top (POT) and Related Devices]]&lt;br /&gt;
* [[Wifi_Remote_I2c|WiFi Remote I2c Quick Start Guide]]&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
* [https://linux-sunxi.org/Pine64#Manufacturer_images Linux Sunxi Wiki page on PINE A64]&lt;br /&gt;
* [https://github.com/umiddelb/z2d/tree/master/pine64 Collection of scripts to set up a minimal Xenial 14.04.3 / Debian 8 Jessie root filesystem Contributed By Uli Middelberg]&lt;br /&gt;
* [https://github.com/apritzel/pine64 Linux Image created by Andre Przywara]&lt;br /&gt;
* [https://blog.hypriot.com/post/the-pine-a64-is-about-to-become=the-cheapest-ARM-64-bit-platform-to-run-Docker/ PINE A64 with HypriotOS by Dieter and Govinda]&lt;br /&gt;
* [https://sosfakeflash.wordpress.com/2008/09/02/h2testw-14-gold-standard-in-detecting-usb-counterfeit-drives/comment-page-3/#comment-9861 H2testw 1.4 – Gold Standard In Detecting USB Counterfeit Drives]&lt;br /&gt;
* [https://oss.digirati.com.br/f3/ F3 - an alternative to h2testw]&lt;br /&gt;
* [https://www.phoronix.com/scan.php?page=article&amp;amp;item=pine-64-benchmark&amp;amp;num=1 Benchmarking The Low-Cost PINE 64+ ARM Single Board Computer by Michael Larabel]&lt;br /&gt;
* [https://github.com/longsleep/build-pine64-image PINE64 Linux build scripts, tools and instructions by Longsleep]&lt;br /&gt;
* [https://www.stdin.xyz/downloads/people/longsleep/pine64-images/ PINE64 Linux image by Longsleep]&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLgj96wTPcMKffRm_Sk6673Nfy_I6b5UJW A series of Youtube video on PINE A64 Developers Board by Michael Larson]&lt;br /&gt;
* [https://rayhightower.com/blog/2016/04/04/pine64-quick-start-guide-using-mac-os-x/ PINE64 Quick Start Guide (with Gotchas)]&lt;br /&gt;
* [https://softwarebakery.com/shrinking-images-on-linux Shrinking images on Linux by FrozenCow]&lt;br /&gt;
* [https://gitlab.manjaro.org/packages/community/manjaro-arm-installer Manjaro Arm installation script]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SOPine]] [[Category:A64-LTS]] [[Category:Allwinner A64]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PINE_A64-LTS&amp;diff=10636</id>
		<title>PINE A64-LTS</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PINE_A64-LTS&amp;diff=10636"/>
		<updated>2021-06-06T03:55:29Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* System Memory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Software and operating system images ==&lt;br /&gt;
&lt;br /&gt;
'''Important''': The SOPine operating system images are compatible with PINE A64-LTS.&lt;br /&gt;
&lt;br /&gt;
Please see [[SOPINE Software Release]] for a complete list of currently supported operating system images that work with the SOPine, as well as other related software. For a quick reference, the list includes the following operating system images:&lt;br /&gt;
&lt;br /&gt;
* [[SOPINE_Software_Release#Armbian|Armbian]]&lt;br /&gt;
* [[SOPINE_Software_Release#AOSC|AOSC]]&lt;br /&gt;
* [[SOPINE Software Release#OpenEmbedded.2FYocto_Images|OpenEmbedded/Yocto]]&lt;br /&gt;
* [[SOPINE Software Release#OpenWRT|OpenWRT]]&lt;br /&gt;
* [[SOPINE Software Release#Volumio 2 Digital Audio Player|Volumio 2 Digital Audio Player]]&lt;br /&gt;
* [[SOPINE Software Release#FreedomBox|FreedomBox]]&lt;br /&gt;
* [[SOPINE Software Release#LibreELEC(KODI)|LibreELEC (KODI)]]&lt;br /&gt;
* [[SOPINE Software Release#NetBSD|NetBSD]]&lt;br /&gt;
* [[SOPINE Software Release#Android 6.x|Android 6.x]] / [[SOPINE Software Release#Android 5.x|Android 5.x]].&lt;br /&gt;
&lt;br /&gt;
Below is a list of links to the build sources and environments for some operating system images.  Some of themare labelled as '''beta or nightly builds''', which means they are fit for testing purposes only.  Those images should be used at your own risk and are not fit for regular use.&lt;br /&gt;
&lt;br /&gt;
* [https://www.stdin.xyz/downloads/people/longsleep/pine64-images/ longsleep BSP Linux]&lt;br /&gt;
* [https://github.com/ayufan-pine64/linux-build/releases/latest/ ayufan Linux]&lt;br /&gt;
* [https://github.com/ayufan-pine64/android-7.1/releases/latest/ ayufan Android 7.1], [https://github.com/ayufan-pine64/android-6.0/releases/latest/ Android 6.0], and [https://github.com/ayufan-pine64/android-5.1/releases/latest/ Android 5.1]&lt;br /&gt;
* [https://pine64suse.weebly.com/download.html openSUSE]&lt;br /&gt;
* [https://dl.armbian.com/pine64so/archive/ SOPINE Armbian]&lt;br /&gt;
* [https://github.com/anarsoul/linux-build/releases/latest Arch Linux XFCE]&lt;br /&gt;
* [https://sourceforge.net/projects/openmediavault/files/Other%20armhf%20images/ OpenMediaVault]&lt;br /&gt;
&lt;br /&gt;
== Accessories and Step-by-Step Guides ==&lt;br /&gt;
&lt;br /&gt;
Please see [[Accessories Step by Step Guides]] for a list of guides for Pine A64 accessories; there you can find instructions and guides about the following:&lt;br /&gt;
&lt;br /&gt;
* Enclosures&lt;br /&gt;
* Bluetooth and WiFi module&lt;br /&gt;
* Real Time Clock (RTC) battery&lt;br /&gt;
* Real Time Clock (RTC) battery holder&lt;br /&gt;
* First and third party cases&lt;br /&gt;
* Featured 3D printed cases (and more)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specification ==&lt;br /&gt;
* Based on Allwinner A64/R18&lt;br /&gt;
** '''R18 and A64 are identical SoC but R18 committed for 10 years supply by vendor.''' &lt;br /&gt;
[[File:Allwinner_A64.jpg|right]]&lt;br /&gt;
[[File:Allwinner_R18.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://www.arm.com/products/processors/cortex-a/cortex-a53-processor.php Quad-core ARM Cortex-A53 Processor@1152Mhz]&lt;br /&gt;
* A power-efficient ARM v8 architecture&lt;br /&gt;
* 64 and 32bit execution states for scalable high performance&lt;br /&gt;
* Support NEON Advanced SIMD (Single Instruction Multiple Data) instruction for acceleration of media and signal processing function&lt;br /&gt;
* Support Large Physical Address Extensions(LPAE)&lt;br /&gt;
* VFPv4 Floating Point Unit&lt;br /&gt;
* 32KB L1 Instruction cache and 32KB L1 Data cache&lt;br /&gt;
* 512KB L2 cache&lt;br /&gt;
&lt;br /&gt;
=== GPU Architecture ===&lt;br /&gt;
* [https://www.arm.com/products/multimedia/mali-gpu/ultra-low-power/mali-400.php ARM Mali400MP2 Dual-core GPU]&lt;br /&gt;
* Support OpenGL ES 2.0 and OpenVG 1.1 standard&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory Variants: 2GB LPDDR3.&lt;br /&gt;
* Storage Memory: 128Mb SPI Flash and optional eMMC module from 16GB up to 64GB&lt;br /&gt;
&lt;br /&gt;
== PINE A64-LTS Board Features ==&lt;br /&gt;
[[File:PINEA64 LTS board front.jpg|thumb|400px|Front view of a Pine A64-LTS board]]&lt;br /&gt;
[[File:PINEA64 LTS board back.jpg|thumb|400px|Rear view of a Pine A64-LTS board]]&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
* Digital Video (Type A - full)&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* 3.5mm stereo earphone/microphone plug&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* 10/100/1000Mbps Ethernet(PINE A64+ version), 10/100Mbps Ethernet(PINE A64 version)&lt;br /&gt;
* WiFi 802.11 b/g/n with Bluetooth 4.0 (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* USB -	2 USB2.0 Host port&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
* DSI - Display Serial Interface, 4 lanes MiPi, up to 1080P&lt;br /&gt;
* CSI - CMOS Camera Interface up to 5 mega pixel&lt;br /&gt;
* TP - Touch Panel Port, SPI with interrupt&lt;br /&gt;
* RTC - Real Time Clock Battery Connector&lt;br /&gt;
* VBAT - Lithium Battery Connector with temperature sensor input&lt;br /&gt;
* Wifi/BT Module Header - SDIO 3.0 and UART&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* 2x17 pins &amp;quot;Euler&amp;quot; GPIO Header&lt;br /&gt;
* 2x5 pins &amp;quot;EXP&amp;quot; Console Header&lt;br /&gt;
&lt;br /&gt;
== Pine A64-LTS, SOPine Module and Baseboard Information, Schematics, and Certifications ==&lt;br /&gt;
[[File:SOPINE Baseboard front.jpg|thumb|400px|Front view of a SOPine Baseboard]]&lt;br /&gt;
[[File:SOPINE front.jpg|thumb|400px|Front view of a SOPine module]]&lt;br /&gt;
[[File:SOPINE back.jpg|thumb|400px|Rear view of a SOPine module]]&lt;br /&gt;
&lt;br /&gt;
* Model &amp;quot;A&amp;quot; Baseboard Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: DC 5V @ 2A, 3.7V Li-Ion battery connector, 3.5OD/1.35ID Barrel DC Jack connector, Euler connector&lt;br /&gt;
* [https://wiki.pine64.org/images/7/7d/Pine64_Board_Connector.png PINE A64 Connector Layout @courtesy of norm24]&lt;br /&gt;
* [https://wiki.pine64.org/images/d/da/Pine64_Connector.JPG PINE A64 Connector List]&lt;br /&gt;
* [https://files.pine64.org/doc/SOPINE-A64/SOPINE-A64-Pin-Assignments-ver-1.0.pdf SOPine Module Pin Assignment ver 1.0]&lt;br /&gt;
* [https://forum.pine64.org/showthread.php?tid=8058 a PDF mapping the pins from the A64 chip itself, to the gold-fingers on the SO-DIMM edge, to the multiple connectors on the baseboard and on the clusterboard, attached to this forum post.]&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/Pine%20A64%20Pin%20Assignment%20160119.pdf PINE A64 Pi-2/Eular/Ext Bus/Wifi Bus Connector Pin Assignment (Updated 15/Feb/2016)]&lt;br /&gt;
** [https://synfare.com/599N105E/hwdocs/pine64/index.html Good documentation about PINE A64, A64+, and A64-LTS GPIO pins article]&lt;br /&gt;
* Pine A64-LTS Schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/PINE%20A64-TLS-20180130.pdf Pine A64-LTS Schematic]&lt;br /&gt;
* SOPine Module Schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPINE-A64-Schematic-ver-0.9.pdf SOPine Module Schematic]&lt;br /&gt;
* SOPine Model &amp;quot;A&amp;quot; Baseboard Schematic and PCB Board Resource:&lt;br /&gt;
** '''SOPine model &amp;quot;A&amp;quot; Baseboard is an hardware open source project but is not &amp;quot;OSH&amp;quot; compliance.:'''&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Baseboard%20Model%20A%20Rev%20B20170207.DSN SOPine Model &amp;quot;A&amp;quot; Baseboard Schematic capture Rev B DSN source file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Baseboard%20Model%20A%20Rev%20B20170207.pdf SOPine Model &amp;quot;A&amp;quot; Baseboard Schematic Rev B PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Model%20A%20baseboard%20PCB%20layout%20PCB%20Job.tar SOPine Model &amp;quot;A&amp;quot; Baseboard PCB Job source file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Model%20A%20basedboard%20GERBER.tar SOPine Model &amp;quot;A&amp;quot; Baseboard PCB Gerber file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOPINE-A64/SOPine%20Model%20A%20baseboard%20PCB%20layout%20PDF.tar SOPine Model &amp;quot;A&amp;quot; Baseboard PCB Layout PDF file]&lt;br /&gt;
* PINE A64-LTS / SOPine Wifi/BT module Schematic&lt;br /&gt;
** [https://files.pine64.org/doc/Pine%20A64%20Schematic/A64-DB-WIFI-BT-REV%20B.pdf PINE A64 Wifi/BT Module Schematic]&lt;br /&gt;
* PINE A64-LTS / SOPine Stereo Audio Dac Board Schematic&lt;br /&gt;
**[https://forum.pine64.org/attachment.php?aid=697 PINE A64-LTS / SOPine Stereo Audio Dac Board Schematic]&lt;br /&gt;
* SOPine (together with model &amp;quot;A&amp;quot; baseboard) Certification:&lt;br /&gt;
** Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; product and in general certification is not necessary. However, PINE64 still submits the SBC for FCC, CE, and ROHS certifications and obtain the certificates to prove that the SBC board can pass the testing. Please note, a final commercial product needs to perform its own testing and obtain its own certificate.&lt;br /&gt;
** [https://files.pine64.org/doc/cert/SOPine%20FCC%20certification%20VOC20170428.pdf SOPine with model &amp;quot;A&amp;quot; baseboard FCC Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/SOPine%20CE%20certification%20VOC20170428.pdf SOPine with model &amp;quot;A&amp;quot; baseboard CE Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/SOPine%20ROHS%20certification%20VOC20170322.pdf SOPine with model &amp;quot;A&amp;quot; baseboard RoHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
* Allwinner A64/R18 SoC information:&lt;br /&gt;
** '''R18 and A64 are identical SoC but R18 committed for 10 years supply by vendor.''' &lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/A64%20brief%20v1.0%2020150323.pdf Allwinner A64 SoC Brief Introduction]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/Allwinner-R18-Brief%20Sheet.pdf Allwinner R18 SoC Brief Introduction]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/A64_Datasheet_V1.1.pdf Allwinner A64/R18 SoC Data Sheet V1.1 (Official Released Version)]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/Allwinner_A64_User_Manual_V1.0.pdf Allwinner A64/R18 SoC User Manual V1.0 (Official Release Version)]&lt;br /&gt;
* X-Powers AXP803 PMU (Power Management Unit) information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/AXP803_Datasheet_V1.0.pdf AXP803 PMIC Datasheet]&lt;br /&gt;
* LPDDR3 information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/AWL3A1632_mobile_lpddr3_1600Mbps.pdf Allwinner LPDDR3 Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/FORESEE%20178ball%2012x11.5%20LPDDR3%2016G%20Spec%20V1.0-1228.pdf Foresee LPDDR3 Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/K4E6E304EE-EGCE.pdf Samsung LPDDR3 Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/LPDDR3%20178ball%208Gb_H9CCNNN8JTALAR_Rev1.0.pdf Hynix LPDDR3 Datasheet]&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
* SPI NOR Flash information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
* '''PINE A64, PINE A64+, PINE A64-LTS and SOPINE Related:'''&lt;br /&gt;
** 5MPixel CMOS Camera module information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/YL-PINE64-4EC.pdf PINE64 YL-PINE64-4EC 5M Pixel CMOS Image Sensor Module (Description in Chinese)]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/S5K4EC%205M%208%205X8%205%20PLCC%20%20Data%20Sheet_V1.0.pdf S5K4EC 5MP CMOS Image Sensor SoC Module Datasheet]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/S5K4ECGX_EVT1_DataSheet_R005_20100816.pdf S5K4EC 5MP CMOS Image Sensor SoC Chip Datasheet]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/s5k4ec.c S5K4EC 5MP CMOS Image Sensor Driver Source Code in C language]&lt;br /&gt;
*** Early version Camera module information:&lt;br /&gt;
**** [https://files.pine64.org/doc/datasheet/pine64/D116-A64_Bonsen_cmos_camera.pdf Bonsen Kexin V118-A64-GC2145-HM5065 CMOS Image Sensor Module]&lt;br /&gt;
**** [https://files.pine64.org/doc/datasheet/pine64/HM5065-DS-V03.pdf HiMax 5MP CMOS Image Sensor SoC]&lt;br /&gt;
** LCD Touch Screen Panel information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0&amp;quot; 1200x600 TFT-LCD Panel Specification]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/HK70DR2459-PG-V01.pdf Touch Panel Specification]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/GT911%20Capacitive%20Touch%20Controller%20Datasheet.pdf GOODiX GT911 5-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
** Lithium Battery information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/9070120P%203.7V%208000MAH.pdf 8000mAH Lithium Battery Specification]&lt;br /&gt;
** Ethernet PHY information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver for PINE A64-LTS Board and SOPine Baseboard]&lt;br /&gt;
** Wifi/BT module information:&lt;br /&gt;
*** [https://files.pine64.org/doc/Pine%20A64%20Schematic/A64-DB-WIFI-BT-REV%20B.pdf PINE A64 Wifi/BT Module Schematic]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/RTL8723BS.pdf Realtek RTL8723BS WiFi with BT SDIO]&lt;br /&gt;
** Enclosure information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/ABS_enclosure_20160426.stp ABS Enclosure 3D file]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/pine64%20Die%20Cast%20casing-final.jpg Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]&lt;br /&gt;
** Connector information:&lt;br /&gt;
*** [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]&lt;br /&gt;
*** [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]&lt;br /&gt;
** Remote control button mapping&lt;br /&gt;
*** [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE A64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
== Pine A64 POT ==&lt;br /&gt;
* [[POT|PINE A64 Peripheral On Top (POT) and Related Devices]]&lt;br /&gt;
* [[Wifi_Remote_I2c|WiFi Remote I2c Quick Start Guide]]&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
* [https://linux-sunxi.org/Pine64#Manufacturer_images Linux Sunxi Wiki page on PINE A64]&lt;br /&gt;
* [https://github.com/umiddelb/z2d/tree/master/pine64 Collection of scripts to set up a minimal Xenial 14.04.3 / Debian 8 Jessie root filesystem Contributed By Uli Middelberg]&lt;br /&gt;
* [https://github.com/apritzel/pine64 Linux Image created by Andre Przywara]&lt;br /&gt;
* [https://blog.hypriot.com/post/the-pine-a64-is-about-to-become=the-cheapest-ARM-64-bit-platform-to-run-Docker/ PINE A64 with HypriotOS by Dieter and Govinda]&lt;br /&gt;
* [https://sosfakeflash.wordpress.com/2008/09/02/h2testw-14-gold-standard-in-detecting-usb-counterfeit-drives/comment-page-3/#comment-9861 H2testw 1.4 – Gold Standard In Detecting USB Counterfeit Drives]&lt;br /&gt;
* [https://oss.digirati.com.br/f3/ F3 - an alternative to h2testw]&lt;br /&gt;
* [https://www.phoronix.com/scan.php?page=article&amp;amp;item=pine-64-benchmark&amp;amp;num=1 Benchmarking The Low-Cost PINE 64+ ARM Single Board Computer by Michael Larabel]&lt;br /&gt;
* [https://github.com/longsleep/build-pine64-image PINE64 Linux build scripts, tools and instructions by Longsleep]&lt;br /&gt;
* [https://www.stdin.xyz/downloads/people/longsleep/pine64-images/ PINE64 Linux image by Longsleep]&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLgj96wTPcMKffRm_Sk6673Nfy_I6b5UJW A series of Youtube video on PINE A64 Developers Board by Michael Larson]&lt;br /&gt;
* [https://rayhightower.com/blog/2016/04/04/pine64-quick-start-guide-using-mac-os-x/ PINE64 Quick Start Guide (with Gotchas)]&lt;br /&gt;
* [https://softwarebakery.com/shrinking-images-on-linux Shrinking images on Linux by FrozenCow]&lt;br /&gt;
* [https://gitlab.manjaro.org/packages/community/manjaro-arm-installer Manjaro Arm installation script]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SOPine]] [[Category:A64-LTS]] [[Category:Allwinner A64]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=SOEDGE&amp;diff=10635</id>
		<title>SOEDGE</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=SOEDGE&amp;diff=10635"/>
		<updated>2021-06-06T03:55:06Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* System Memory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The SOEdge is a 3TOPS compute module that can be paired with the SOPine base board or USB 3.0 and PCIe adapters for development. It can connect to a SBC, such as the ROCKPro64 or a regular PC. &lt;br /&gt;
&lt;br /&gt;
== Software and OS Image Downloads ==&lt;br /&gt;
=== SOEdge Software Release ===&lt;br /&gt;
&lt;br /&gt;
The SOEdge software releases can be found in the article [[SOEdge Software Release]].&lt;br /&gt;
&lt;br /&gt;
== Accessories Step-by-Step Guides ==&lt;br /&gt;
Under [[Accessories_Step_by_Step_Guides|'Guides for model A baseboard accessories']] you can find instructions and guides concerning:&lt;br /&gt;
* Enclosures&lt;br /&gt;
* Bluetooth and WiFi module&lt;br /&gt;
* Real Time Clock (RTC) battery&lt;br /&gt;
* Real Time Clock (RTC) battery holder&lt;br /&gt;
* First and third party cases&lt;br /&gt;
* Featured 3D printed cases (and more)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specification ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK18_Series/2019/0529/989.html Rockchip RK1808]&lt;br /&gt;
[[File:RK1808_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a35 Dual-core ARM Cortex-A35 Processor@1600-2000Mhz]&lt;br /&gt;
* A power-efficient ARM 64-Bit Armv8-A architecture&lt;br /&gt;
* AArch32 for full backward compatibility with Armv7&lt;br /&gt;
* Support NEON Advanced SIMD (Single Instruction Multiple Data) instruction for acceleration of media and signal processing function&lt;br /&gt;
* Support Large Physical Address Extensions(LPAE)&lt;br /&gt;
* VFPv4 Floating Point Unit&lt;br /&gt;
* 32KB L1 Instruction cache and 32KB L1 Data cache&lt;br /&gt;
* AArch64 for 64-bit support and new architectural features&lt;br /&gt;
* TrustZone security technology&lt;br /&gt;
* Neon Advanced SIMD&lt;br /&gt;
* DSP and SIMD extensions&lt;br /&gt;
* VFPv4 Floating point&lt;br /&gt;
* Hardware virtualization support&lt;br /&gt;
* 128KB L2 cache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Neural Process Unit NPU Capability ===&lt;br /&gt;
* [https://www.verisilicon.com/en/IPPortfolio/VivanteNPUIP NPU IP from Verisilicon Vivante]&lt;br /&gt;
* Support max 1920 Int8 MAC operation per cycle&lt;br /&gt;
* Support max192 Int16 MAC operation per cycle&lt;br /&gt;
* Support max 64 FP16 MAC operation per cycle&lt;br /&gt;
* 512KB internal buffer&lt;br /&gt;
* One isolated voltage domain to support DVFS&lt;br /&gt;
* [https://github.com/VeriSilicon/acuity-models Acuity models Github]&lt;br /&gt;
&lt;br /&gt;
[[File:Vivante_Acuity_SDK.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory Variants: 2GB DDR4.&lt;br /&gt;
* Storage Memory: 128Mb SPI Flash and optional eMMC module from 16GB up to 64GB&lt;br /&gt;
&lt;br /&gt;
== SOEdge Baseboard Features ==&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* 10/100/1000Mbps Etherne&lt;br /&gt;
* WiFi 802.11 b/g/n with Bluetooth 4.0 (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* USB -	2 USB2.0 Host port&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
* DSI - Display Serial Interface, 4 lanes MiPi, up to 1080P&lt;br /&gt;
* TP - Touch Panel Port, SPI with interrupt&lt;br /&gt;
* RTC - Real Time Clock Battery Connector&lt;br /&gt;
* VBAT - Lithium Battery Connector with temperature sensor input&lt;br /&gt;
* Wifi/BT Module Header - SDIO 3.0 and UART&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* PCIe 2x open ended slot&lt;br /&gt;
&lt;br /&gt;
== SOEdge Module and Baseboard Information, Schematics, and Certifications ==&lt;br /&gt;
* Model &amp;quot;A&amp;quot; Baseboard Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: DC 12V @ 3A 5.5OD/2.1ID Barrel DC Jack connector&lt;br /&gt;
&lt;br /&gt;
* SOEdge Module Schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SOEdge-Schematic-v2.0-190919.pdf SOEdge Module ver 2.0 20190919 Schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SoEdge-PCB-placement-v2.0-topplace.pdf SOEdge Module ver 2.0 20190919 PCB Component Placement Top PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SoEdge-PCB-placement-v2.0-bottomplace.pdf SOEdge Module ver 2.0 20190919 PCB Component Placement Bottom PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SoEdge-PCB-placement-v2.0-topplace.dxf SOEdge Module ver 2.0 20190919 PCB Component Placement Top Drawing file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SoEdge-PCB-placement-v2.0-bottomplace.dxf SOEdge Module ver 2.0 20190919 PCB Component Placement Bottom Drawing file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SOEdge%20Pin%20Assignments%20ver%201.00.xlsx SOEdge Module Pin Assignment ver 1.0 in Excel format(includes comparison chart to SOPine)]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SOEdge%20Pin%20Assignments%20ver%201.00.ods SOEdge Module Pin Assignment ver 1.0 in Open Document format(includes comparison chart to SOPine)]&lt;br /&gt;
* SOEdge Model &amp;quot;A&amp;quot; Baseboard Schematic and PCB Board Resource:&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SOEDGE_MODEL_A_BASEBOARD_Schematic-20210223.pdf SOEdge Model &amp;quot;A&amp;quot; Baseboard Schematic 20210223 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SOEDGE_MODEL_A_BASEBOARD_PCB-TOP-20210223.pdf SOEdge Model &amp;quot;A&amp;quot; Baseboard 20210223 PCB Component Placement Top PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SOEDGE_MODEL_A_BASEBOARD_PCB-BOT-20210223.pdf SOEdge Model &amp;quot;A&amp;quot; Baseboard 20210223 PCB Component Placement Bottom PDF file]&lt;br /&gt;
* SOEdge Neural AI Stick Schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SOEdge%20Neural%20AI%20Stick%20Schematic_V10.pdf SOEdge Neural AI Stick PDF file]&lt;br /&gt;
* SOEdge/SOPine/PINE A64 Wifi/BT module Schematic&lt;br /&gt;
** [https://files.pine64.org/doc/Pine%20A64%20Schematic/A64-DB-WIFI-BT-REV%20B.pdf PINE A64 Wifi/BT Module Schematic]&lt;br /&gt;
* SOEdge module together with model &amp;quot;A&amp;quot; baseboard Certification:&lt;br /&gt;
** Disclaimer: Please note that SOEdge module is not a &amp;quot;final&amp;quot; product and in general certification is not necessary. However, SOEdge module still submits the mpdel A baseboard for FCC, CE, and ROHS certifications and obtain the certificates to prove that can pass the testing. Please note, a final commercial product needs to perform its own testing and obtain its own certificate.&lt;br /&gt;
** Not yet available&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
* Rockchip RK1808 SoC information:&lt;br /&gt;
** [http://opensource.rock-chips.com/images/4/43/Rockchip_RK1808_Datasheet_V1.2_20190527.pdf Rockchip RK1808 ver 1.2 datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/SOEdge/Rockchip%20RK1808%20TRM%20Part1%20V1.2--20190826%20open%20source.pdf Rockchip TK1808 Technical Reference Manual Part 1]&lt;br /&gt;
* Rockchip RK809 PMU (Power Management Unit) information:&lt;br /&gt;
** [https://rockchip.fr/RK809%20datasheet%20V1.01.pdf Rockchip RK809 PMIC Datasheet]&lt;br /&gt;
* DDR4 information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/SOEdge/Micron%208Gb_DDR4_SDRAM.pdf Micron DDR4 Datasheet]&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
* SPI NOR Flash information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
* '''SOEdge Related:'''&lt;br /&gt;
** LCD Touch Screen Panel information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0&amp;quot; 1200x600 TFT-LCD Panel Specification]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/HK70DR2459-PG-V01.pdf Touch Panel Specification]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/GT911%20Capacitive%20Touch%20Controller%20Datasheet.pdf GOODiX GT911 5-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
** Ethernet PHY information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver for SOEdge model A baseboard]&lt;br /&gt;
** Wifi/BT module information:&lt;br /&gt;
*** [https://files.pine64.org/doc/Pine%20A64%20Schematic/A64-DB-WIFI-BT-REV%20B.pdf SOEdge/SOPine/PINE A64 Wifi/BT Module Schematic]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/pine64/RTL8723BS.pdf Realtek RTL8723BS WiFi with BT SDIO]&lt;br /&gt;
** Enclosure information:&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/ABS_enclosure_20160426.stp ABS Enclosure 3D file]&lt;br /&gt;
*** [https://files.pine64.org/doc/datasheet/case/pine64%20Die%20Cast%20casing-final.jpg Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]&lt;br /&gt;
** Connector information:&lt;br /&gt;
*** [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]&lt;br /&gt;
*** [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]&lt;br /&gt;
&lt;br /&gt;
== SOEdge/SOPine Cluster Board Resource ==&lt;br /&gt;
* Cluster board is an hardware open source project and will be available at PINE64 store on late January 2018. &lt;br /&gt;
* Please note that this project is not &amp;quot;OSH&amp;quot; compliance.:&lt;br /&gt;
** [https://files.pine64.org/doc/clusterboard/PINE64%20CLUSTER%20BOARD_2_2.DSN Clusterboard version 2.2 Schematic Capture source file]&lt;br /&gt;
** [https://files.pine64.org/doc/clusterboard/PINE64%20CLUSTER%20BOARD_2_2_Schematic.pdf Clusterboard version 2.2 Schematic Capture PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/clusterboard/PINE64%20CLUSTER%20BOARD_2_2.brd Clusterboard version 2.2 PCB Job source file]&lt;br /&gt;
** [https://files.pine64.org/doc/clusterboard/PINE64%20CLUSTER%20BOARD%20V2.2-gerber.rar Clusterboard version 2.2 PCB Gerber file]&lt;br /&gt;
** [https://files.pine64.org/doc/clusterboard/PINE64%20CLUSTER%20BOARD_2_2_PCB.pdf Clusterboard version 2.2 PCB Layout PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/clusterboard/clusterboard_20pins_header.jpg Clusterboard 20pins header definition]&lt;br /&gt;
** [https://myhub.autodesk360.com/ue2b2f72e/g/shares/SH56a43QTfd62c1cd96840f4ec37c60bcf12 Clusterboard 3D drawing in Fusion360]&lt;br /&gt;
** [https://myhub.autodesk360.com/ue2b2f72e/g/shares/SH56a43QTfd62c1cd968cd6bc203ac753401?viewState=NoIgbgDAdAjCA0ICGBmARgEwGZIOwGMBaDFADgFNCAWfAJi2o1IFZDmlTSIA2DW8-FTQgAukA Clusterboard PDF drawing]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Linux Image Releases =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stock BSP ==&lt;br /&gt;
&lt;br /&gt;
=== BSP Linux ver 1.1 Build from SDK ===&lt;br /&gt;
* Please unzip first and then using Rockchip tool to flash in&lt;br /&gt;
* [https://wiki.pine64.org/index.php/NOOB#Flashing_to_eMMC_using_Rockchip_Tools_.28Rock64_Only.29 Guide to flashing eMMC using Rockchip Tools]&lt;br /&gt;
** [http://files.pine64.org/os/SOEdge/stock/SOEdge_linux_v1.1.img.gz download from pine64.org]&lt;br /&gt;
** MD5 (TAR-GZip file): a6629f997ae2cae7d9d5324c4e942deda9&lt;br /&gt;
** File Size: 119MB&lt;br /&gt;
&lt;br /&gt;
=== BSP Linux ver 1.1 Build as USB Stick application from SDK ===&lt;br /&gt;
* Please unzip first and then using Rockchip tool to flash in&lt;br /&gt;
* [https://wiki.pine64.org/index.php/NOOB#Flashing_to_eMMC_using_Rockchip_Tools_.28Rock64_Only.29 Guide to flashing eMMC using Rockchip Tools]&lt;br /&gt;
** [http://files.pine64.org/os/SOEdge/stock/SOEdge_linux_usb_compute_stick.img.gz download from pine64.org]&lt;br /&gt;
** MD5 (GZip file): af6ac45995f7ddd9343a7052efffaf30&lt;br /&gt;
** File Size: 47MB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Factory Test Build ==&lt;br /&gt;
&lt;br /&gt;
* Factory Test Build by Gamiee&lt;br /&gt;
* DD image (for 8GB micoSD card or eMMC Module and above)&lt;br /&gt;
** [http://files.pine64.org/os/SOEdge/gamiee/update-soedge-factory-test-2021-03-23.img.gz download from pine64.org]&lt;br /&gt;
** MD5 (GZip file): b3d09933734eaaebb34c357b73f5c69e&lt;br /&gt;
** File Size: 119MB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Linux BSP SDK =&lt;br /&gt;
&lt;br /&gt;
== Linux BSP Kernel ver 1.1 ==&lt;br /&gt;
* [http://files.pine64.org/SDK/SOEdge/SOEdge_RK-BSP_SDK_v1.1.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** MD5 (TAR-GZip file): a66c92e52824762d7c0a63400d6342ea&lt;br /&gt;
** File Size: 13.55GB&lt;br /&gt;
&lt;br /&gt;
== Linux BSP Kernel ver 1.1 as USB Stick application ==&lt;br /&gt;
* [http://files.pine64.org/SDK/SOEdge/SOEdge_RK-BSP_USB_Dongle_SDK_v1.1.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** MD5 (TAR-GZip file): 46f12441e8c35c06184681f355c89651&lt;br /&gt;
** File Size: 9.65GB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SOPine]] [[Category:Rockchip RK1808]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_FAQ&amp;diff=10598</id>
		<title>PinePhone FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_FAQ&amp;diff=10598"/>
		<updated>2021-06-03T05:33:30Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* What are the kill switches doing? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A list of frequently asked question.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Revisions ===&lt;br /&gt;
==== What are Community Editions? ====&lt;br /&gt;
Community Editions of the PinePhone were versions of the PinePhone which came preinstalled with the operating system of a partner project and featured the logo of the project on the back panel. The Community Edition was intended to help partner projects developing these systems: &amp;quot;Community editions are meant to bring exposure to partner-projects operating systems and communities, as well as help finance ongoing development.&amp;quot;, [https://www.pine64.org/2020/04/02/pinephone-ubports-community-edition-pre-orders-now-open/ source].&lt;br /&gt;
&lt;br /&gt;
==== Is the Community Edition hardware the latest revision? ====&lt;br /&gt;
The Community Edition program (featuring the mainboard numbers 1.2 through 1.2b and branded back covers) which provided the branded PinePhones has since ended, and a Beta Edition has since been released. The only difference between each Community Edition is the inclusion of crucial bug fixes, with the last issue being fixed with the 1.2b motherboard shipping with the Manjaro CE PinePhones. The 1.2b motherboard is also currently used in the Beta Edition PinePhones, however the Beta Edition units do not ship with any back cover branding. There are currently no plans for further hardware revisions.&lt;br /&gt;
&lt;br /&gt;
Aside from the back cover, the only other difference between each Community Edition is that starting with the postmarketOS PinePhone, a convergence package option was released that adds another gigabyte of ram to the phone and a 32GB eMMC instead of a 16GB eMMC. Convergence packages also included a dock for plugging in USB peripherals and connecting to an HDMI monitor, however you can purchase a generic USB-C dock to use with a 2GB PinePhone. &lt;br /&gt;
&lt;br /&gt;
The predecessor to the Convergence Edition PinePhones was the Braveheart Edition intended for developers to bring up the platform, which had the version number 1.1. For more details about the topic see [[PinePhone#Hardware Revisions]].&lt;br /&gt;
&lt;br /&gt;
==== Will there be other Community Editions? ====&lt;br /&gt;
Five Community Editions have been announced: [https://www.pine64.org/2020/04/02/pinephone-ubports-community-edition-pre-orders-now-open/ UBports], [https://www.pine64.org/2020/06/15/june-update-postmarketos-ce-pinephone-shipping-pine64-cluster/ postmarketOS], [https://www.pine64.org/2020/08/31/pinephone-manjaro-community-edition/ Manjaro], [https://www.pine64.org/2020/12/01/kde-community-edition-is-now-available/ KDE], and [https://www.pine64.org/2021/01/17/mobian-community-edition/ Mobian]. Since the release of the Mobian edition, the Beta Edition PinePhones have been released and the Community Edition Program has ended.&lt;br /&gt;
&lt;br /&gt;
==== In simple terms, what are the differences between Braveheart and the new Community Edition? ====&lt;br /&gt;
The Braveheart PinePhone was the first public revision of the PinePhone which was intended solely for developers and Linux enthusiasts. The UBports Community Edition was the next revision of the PinePhone with an updated mainboard based on feedback from the Braveheart Edition, see [[PinePhone#Hardware Revisions]]. All current revisions of the PinePhone continue to be intended for developers and enthusiasts, however, PINE64 will be starting to offer partnered retail units of the PinePhone which will have a better warranty and technical support (keep in mind even then it is not intended for a broader audience at this time, as the software still needs work and the hardware does not hold up well to modern consumer standards).&lt;br /&gt;
&lt;br /&gt;
==== Will there be a newer revision after the Community Editions? ====&lt;br /&gt;
Starting with the UBports Community Edition the PinePhone has gotten CE and FCC certifications, repeating the certification process due to changes in the hardware design is very expensive, so the 1.2b motherboard is viewed as the final revision. The PinePhone (and parts for them) will be produced and sold for at least 5 years.&lt;br /&gt;
&lt;br /&gt;
==== Will there be hardware differences between the Community Editions? ====&lt;br /&gt;
&lt;br /&gt;
Besides the varied back covers, starting with the launch of the PostmarketOS CE there has been the release of a convergence package option for the PinePhone which includes more ram and storage, and an included dock for convenience. There has also been multiple hardware changes starting with the UBports CE (mainboard 1.2) and ending with the Manjaro CE (mainboard revision 1.2b). There are currently no plans for future hardware changes for a few years.&lt;br /&gt;
&lt;br /&gt;
==== How powerful is the PinePhone's hardware? ====&lt;br /&gt;
&lt;br /&gt;
The PinePhone is about on par with a Raspberry Pi 3 in terms of CPU power, however going by GFLOPS it has half the GPU power. The Pi 3's Videocore IV does 24 GFLOPS, and the Mali 400 MP2 on the PinePhone only 10.8.&lt;br /&gt;
&lt;br /&gt;
Despite this, using software rendering the PinePhone is capable of smoothly rendering at 1080p resolution or higher. However, with a fully GPU-accelerated mobile environment you should expect a more sluggish experience outputting to such resolutions. Unfortunately, the Mali 400 MP2 (a 2008 arm mobile GPU) simply isn't intended to push 1080p resolution. With that said, the VPU of the PinePhone has been shown to handle smooth H.264 1440p30 video playback using Cedrus and gstreamer as documented [https://xnux.eu/log/#001 here]. Further, the PinePhone should be more than capable of a smooth phone experience when used in conjunction with well optimized software that makes use of its hardware features. It is also more than capable of running many light games (including 3D ones such as SuperTuxKart), and retro gaming. Expect further speed improvements over time as the drivers are improved, and in the meanwhile you can look into slightly [[overclocking]] the device (at your own risk).&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
The default ringtone for Mobian Phosh can be found at /usr/share/sounds/freedesktop/stereo/phone-incoming-call.oga&lt;br /&gt;
&lt;br /&gt;
=== Modem ===&lt;br /&gt;
&lt;br /&gt;
==== The modem isn't working ====&lt;br /&gt;
&lt;br /&gt;
In order to use the modem and Wi-Fi/Bluetooth, you need to ensure the battery is inside the device and has a sufficient charge. Even when supplying the phone with enough power, the modem and Wi-Fi chip will not work without a connected battery. Further, double check that you have not put the SD card into the sim card slot, or vice versa.&lt;br /&gt;
&lt;br /&gt;
==== Does the PinePhone only wake up from sleep for calls and texts? ====&lt;br /&gt;
&lt;br /&gt;
Yes. Unless the PinePhone is configured to wake up every few minutes from deep sleep in crust (At the cost of battery life. However, in the future there may be other solutions), then there is not any way to get any notifications for applications. The modem on the PinePhone will wake the device for incoming calls and texts however, and the real-time clock is also capable of waking the device for alarms.&lt;br /&gt;
&lt;br /&gt;
=== Battery ===&lt;br /&gt;
&lt;br /&gt;
==== The battery is stuck inside the phone ====&lt;br /&gt;
&lt;br /&gt;
The battery can be stuck in the phone if the screws of the frame are overtightened.&lt;br /&gt;
&lt;br /&gt;
If your battery is stuck inside the PinePhone, grab a screwdriver and completely unscrew all the screws of the midframe. Then pull out the battery (you may have to fully take off the midframe in some cases to get it out). And then rescrew the midframe, but only tighten the screws to the point where they are just barely tight to hold. This should allow you to remove the battery easily.&lt;br /&gt;
&lt;br /&gt;
==== The battery is discharging while the phone is powered off (Braveheart Edition) ====&lt;br /&gt;
&lt;br /&gt;
The issue is not present on the Community Edition. Due to a hardware bug, after power off, the phone still consumes 20–30mA which drains the battery in 3-4 days. A manual procedure to fix the hardware bug is described [https://xnux.eu/devices/pp-pmic-fix.jpg here].&lt;br /&gt;
&lt;br /&gt;
==== The battery only charges to ~84% ====&lt;br /&gt;
&lt;br /&gt;
Some pre-made OSes using megi's kernel limit the maximum amount of charge to roughly ~84% in the hope of prolonging the battery life, as repeatedly reaching the upper level of battery charge reduces the battery's lifetime (this is &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; a safety feature!). The same effect however also applies when repeatedly draining the battery to a low level - users are therefore advised to consider if that setting is reasonable depending on their usage. The setting can be overwritten via Sysfs, to let the battery fully charge (this can lower the replaceable's battery lifetime considerably depending on the charging behavior!):&lt;br /&gt;
&lt;br /&gt;
{{warning|The following instructions are directed towards expert-level users and developers!}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;echo 4350000 &amp;gt; /sys/class/power_supply/axp20x-battery/voltage_max_design&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kill Switches ===&lt;br /&gt;
==== What are the kill switches doing? ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number&lt;br /&gt;
! Name&lt;br /&gt;
! Explanation&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Modem&lt;br /&gt;
| Pulls Q1501 gate up (FET killing modem power)&lt;br /&gt;
| &amp;quot;On&amp;quot; enables cellular communication and GNSS hardware, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Wi-Fi / Bluetooth&lt;br /&gt;
| Pulls up CHIP_EN&lt;br /&gt;
| &amp;quot;On&amp;quot; enables Wi-Fi and Bluetooth communication hardware, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Microphone&lt;br /&gt;
| Breaks microphone bias voltage from the SoC&lt;br /&gt;
| &amp;quot;On&amp;quot; enables audio input from on-board microphones (not 3.5mm jack), &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Rear camera&lt;br /&gt;
| Pulls up PWDN on OV5640 &lt;br /&gt;
| &amp;quot;On&amp;quot; enables the rear camera, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Front camera&lt;br /&gt;
| Pulls up PWDN on GC2145&lt;br /&gt;
| &amp;quot;On&amp;quot; enables the front camera, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Headphone&lt;br /&gt;
| Pulls up IN2 on analog switch BCT4717ETB&lt;br /&gt;
| &amp;quot;On&amp;quot; enables audio input and output via the 3.5mm audio jack, &amp;quot;off&amp;quot; switches the jack to hardware UART mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
&lt;br /&gt;
==== What's the speed difference between the eMMC and SD cards? ====&lt;br /&gt;
Maximum transfer speed of the eMMC is around 85 MB/s, while SD cards are limited to approximately 23 MB/s (even with faster cards).&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
==== GPS doesn't work ====&lt;br /&gt;
&lt;br /&gt;
Like almost all smartphones, the PinePhone GPS antenna is small and can only get a first fix unassisted if the GPS signal is very strong. To make first fix faster and more reliable, phones download assistance data either from the phone network or from the internet. The GPS in the PinePhone modem supports the internet based assistance method, as detailed in the modem documentation, but this is currently only supported by a few distros, and a [https://gist.github.com/alastair-dm/263209b54d01209be28828e555fa6628 proof of concept script] that shows it can work.&lt;br /&gt;
&lt;br /&gt;
Until AGPS support becomes standard you'll have to make some manual changes - see for example [https://wiki.mobian-project.org/doku.php?id=location Mobian wiki]&lt;br /&gt;
&lt;br /&gt;
==== GPS can't determine direction ====&lt;br /&gt;
&lt;br /&gt;
Currently, due to the magnetometer not being hooked up in software at this time, it is not possible for GPS software to use the phone's compass functionality. This means while you are walking it will not be possible to determine the direction of travel. This is not as much of an issue for vehicles as the faster speeds mean that it is possible to estimate the direction of travel, however it will still be an issue should the vehicle travel through a tunnel and loose GPS signal.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== How can I install an operating system on the SD card / eMMC? ====&lt;br /&gt;
&lt;br /&gt;
See [[PinePhone Installation Instructions]].&lt;br /&gt;
&lt;br /&gt;
=== Updating ===&lt;br /&gt;
&lt;br /&gt;
Read the [[PinePhone Updating Instructions]].&lt;br /&gt;
&lt;br /&gt;
=== Booting ===&lt;br /&gt;
&lt;br /&gt;
==== What's the boot order for SD cards and eMMC? ====&lt;br /&gt;
&lt;br /&gt;
The PinePhone will automatically boot from microSD if a bootable card is inserted. If no (bootable) microSD is found, it will boot from eMMC.&lt;br /&gt;
&lt;br /&gt;
==== How can I select different OSes at boot? ====&lt;br /&gt;
&lt;br /&gt;
There was a project by Danct12 which allowed the user to select different OSes at boot, but the repository has since been archived: https://github.com/dreemurrs-embedded/Pineloader.&lt;br /&gt;
&lt;br /&gt;
==== I turned on my Manjaro CE PinePhone. The red LED and screen backlight are briefly lit, then both are not and it will not boot. ====&lt;br /&gt;
&lt;br /&gt;
This can be the result of at least one situation:&lt;br /&gt;
&lt;br /&gt;
# The eMMC installation became corrupt or otherwise unbootable&lt;br /&gt;
# An SD card is present but not bootable (consider [[PinePhone#Detailed usage instructions]])&lt;br /&gt;
&lt;br /&gt;
If there is an installation of Manjaro on both the eMMC &amp;amp; an SD card, the SD card will always boot first on the device. Try taking the SD card out and booting the installation that is on the eMMC. If the problem persists, it is likely there is an issue with both installations and you will need to reinstall your distribution. You may also want to check with your distribution's maintainers if boot issues are a common problem in a recent update.&lt;br /&gt;
&lt;br /&gt;
====  I did not install an update in Ubuntu Touch and I'm stuck on the PINE64 logo after rebooting. ====&lt;br /&gt;
&lt;br /&gt;
# Use a USB A-C cable to plug your phone into your PC&lt;br /&gt;
# Hold the PinePhone's power button for 4 seconds or more to power it off.&lt;br /&gt;
# Wait 5 seconds&lt;br /&gt;
# Hold the Volume Up and Power buttons on the PinePhone to boot into recovery. You should see the LED light red, then yellow, then green. The &amp;quot;Installing update&amp;quot; screen will appear, but a progress bar to indicate update progress will not. Ignore the &amp;quot;Installing update&amp;quot; part.&lt;br /&gt;
# Your PC may automatically mount the PinePhone's partitions. If it does, Safely Remove or Eject all of them.&lt;br /&gt;
# Open a terminal on your PC. Type &amp;lt;code&amp;gt;telnet 172.16.42.1&amp;lt;/code&amp;gt;&lt;br /&gt;
# You should receive the text 'Welcome to Rescue SD Shell!'&lt;br /&gt;
# In the new Rescue SD shell, type &amp;lt;code&amp;gt;umount /dev/mmcblk2p10; e2fsck -fy /dev/mmcblk2p10 &amp;amp;&amp;amp; sync&amp;lt;/code&amp;gt;&lt;br /&gt;
# Once this command pipeline finishes, type &amp;lt;code&amp;gt;sync &amp;amp;&amp;amp; reboot -f&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your PinePhone should reboot into Ubuntu Touch. Now head to Settings -&amp;gt; Updates and install the new update! &lt;br /&gt;
&lt;br /&gt;
If these steps did not solve your issue, please create a new thread here on the PINE64 forums, note what the problem looks like, then say that you've tried these steps already.&lt;br /&gt;
&lt;br /&gt;
This is caused by corruption on the userdata partition. Normally this should be fixed by 'e2fsck' in the initramfs, however, an error in image creation means that that version of e2fsck is unable to correct the corruption. This has been fixed in all new PinePhone updates, so if you update from the factory image to any other image available to the PinePhone now, you will not experience this issue any longer.&lt;br /&gt;
&lt;br /&gt;
==== I turned on my PinePhone running Ubuntu Touch. The red LED is lit and it will not boot. ====&lt;br /&gt;
# Hold the power button until the light turns off&lt;br /&gt;
# Hold the power button until the light turns on&lt;br /&gt;
&lt;br /&gt;
You may need to repeat these steps more than once.&lt;br /&gt;
&lt;br /&gt;
This is caused by u-boot apparently trying to use the eMMC before it is ready. We are not entirely sure why this occurs yet.&lt;br /&gt;
&lt;br /&gt;
==== Can I install a different OS on my Community Edition? ====&lt;br /&gt;
&lt;br /&gt;
Yes! While all the Community Edition PinePhones come with an OS preinstalled, you are free to use any OS on the integrated storage (the eMMC) or an SD card, see [[PinePhone Installation Instructions]] and [[PinePhone Software Releases]] on how to install them.&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
==== How can I enable SSH? ====&lt;br /&gt;
&lt;br /&gt;
In Ubuntu Touch you can run &amp;quot;sudo start ssh&amp;quot; to get a one-time start, or edit /etc/init/ssh.override and remove the manual line to make it auto-start.&lt;br /&gt;
&lt;br /&gt;
In other distributions you may have to install SSH through its package manager and then proceed to use its init system to enable it. For Manjaro, Arch, and Mobian you can use &amp;quot;systemctl enable&amp;quot; and &amp;quot;systemctl start&amp;quot; command to enable and start ssh.&lt;br /&gt;
&lt;br /&gt;
==== What works, what doesn't? ====&lt;br /&gt;
&lt;br /&gt;
For Ubuntu Touch see https://gitlab.com/ubports/community-ports/pinephone#what-works-what-doesnt.&lt;br /&gt;
&lt;br /&gt;
Other distributions will have different levels of functionality. Please refer to the release page of your chosen distribution for further information.&lt;br /&gt;
&lt;br /&gt;
====  I can't connect to a 2.4Ghz Wi-Fi network in Ubuntu Touch. ====&lt;br /&gt;
&lt;br /&gt;
Reboot your device by holding the power button until the &amp;quot;Power&amp;quot; dialog appears, then pressing &amp;quot;Restart&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If that does not fix the issue, note that all the following conditions must be met to use Wi-Fi on the PinePhone:&lt;br /&gt;
&lt;br /&gt;
# The plastic tab between the battery and the device's battery contacts has been removed&lt;br /&gt;
# The battery is installed&lt;br /&gt;
# The Wi-Fi killswitch, #2, on the rear of the device is switched &amp;quot;ON&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wi-Fi in the PinePhone only seems stable after a warm reboot like this.&lt;br /&gt;
&lt;br /&gt;
==== What's the status of Android for the PinePhone? ====&lt;br /&gt;
&lt;br /&gt;
Currently, there isn't any major push to get Android running well on the PinePhone. The developer Icenowy did get a Android image to run and partly work, it was however slow and buggy, with major functions not working. A solution for running some of your android apps may be found in Anbox as of now. Anbox is currently not included in Ubuntu Touch. In other distributions your millage may vary on what applications will run and how well.&lt;br /&gt;
&lt;br /&gt;
==== Why are my apps loading slower than on my Android phone? ====&lt;br /&gt;
&lt;br /&gt;
Android has multiple techniques in place to speed up launching applications after the first launch, such as the &amp;quot;Dalvik cache&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Using an alternative filesystem such as F2FS on the eMMC (which is considerably faster than running software on the SD card) may help improve performance slightly. Over time you can expect further optimizations and improvements in various distributions that will help speed up the PinePhone.&lt;br /&gt;
&lt;br /&gt;
=== SMS ===&lt;br /&gt;
&lt;br /&gt;
==== The phone does not receive SMS ====&lt;br /&gt;
&lt;br /&gt;
Sometimes incoming SMS messages are not being received, but outgoing ones, phone calls and data are working fine. One potential cause could be SMS messages that linger in the modem's queue (10 or more of them). This queue appears to be persistent across reboots and also re-imaging the OS.&lt;br /&gt;
&lt;br /&gt;
On Mobian and Manjaro, the ModemManager does all the communications with the 3G modem including phone calls, cellular data, GPS and SMS. This may not be the case with other PinePhone OSes.&lt;br /&gt;
&lt;br /&gt;
You can access the ModemManager using the mmcli command.&lt;br /&gt;
&lt;br /&gt;
'''Mobian:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mmcli -m 0 --messaging-list-sms&lt;br /&gt;
Found 10 SMS messages:&lt;br /&gt;
/org/freedesktop/ModemManager1/SMS/0 (received)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Manjaro:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mmcli -m 3 --messaging-list-sms&lt;br /&gt;
/org/freedesktop/ModemManager1/SMS/77 (received)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Mobian, delete all the messages like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo mmcli -m 0 --messaging-delete-sms=1&amp;lt;/code&amp;gt; (Repeat with 1 through 10 to delete all the messages)&lt;br /&gt;
&lt;br /&gt;
For Manjaro, delete all the messages like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo mmcli -m 3 --messaging-delete-sms=77&amp;lt;/code&amp;gt; (Repeat with all listed messages)&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;-m 0&amp;quot; or &amp;quot;-m 3&amp;quot; refers to modem 0 or 3 (the only one in a PinePhone). For more help on the messaging related actions available in mmcli you can check the help with &amp;lt;code&amp;gt;mmcli --help-messaging.&amp;lt;/code&amp;gt; This article is also helpful in learning: https://electronproton.com/mmcli-command-examples/. For your particular configuration, you may need to try different &amp;quot;-m #&amp;quot; combinations, e.g., &amp;quot;-m 2&amp;quot; or &amp;quot;-m 4.&amp;quot; &amp;quot;-m 0&amp;quot; is not always the default.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that recent releases of Mobian and postmarketOS now include a userspace daemon called [https://gitlab.com/mobian1/devices/eg25-manager eg25-manager], which helps manage the modem and ensure proper operation.&lt;br /&gt;
&lt;br /&gt;
== Shipping ==&lt;br /&gt;
=== I did not receive an order confirmation ===&lt;br /&gt;
Check your &amp;quot;spam&amp;quot; folder. It was reported that some users did not receive an order confirmation. You will also still get a shipping notification when the device ships out, even if you didn't get an order confirmation email.&lt;br /&gt;
&lt;br /&gt;
=== When does the phone ship? ===&lt;br /&gt;
For up-to-date information when the phone's shipping date is estimated, see the edits in the corresponding forum thread.&lt;br /&gt;
&lt;br /&gt;
=== It is shipping day but I did not receive a shipping notification ===&lt;br /&gt;
For shipments with DHL the shipping notification is sent out as soon as the packet reached DHL's warehouse and scanned (it can take up to 24 hours after scanning after the shipment is added to DHL's database). For all other shipments (via Ascendia) the notification is sent out sometime after shipment.&lt;br /&gt;
&lt;br /&gt;
=== When does my phone ship if I order now? ===&lt;br /&gt;
Orders made after Friday, 22nd May 2020 are shipped after the first bulk of pre-orders has been shipped. The exact date is not known yet due to various reasons, it may be a few weeks after the first bulk shipped. [https://forum.pine64.org/showthread.php?tid=9942 The forum] will be edited with updated information and you will receive a shipping notification when the device was shipped.&lt;br /&gt;
&lt;br /&gt;
=== What about import taxes? ===&lt;br /&gt;
Import taxes have to be paid by the buyer depending on the jurisdiction of the country of the buyer. Please check with your local laws if there are import taxes to pay and if so how to do the tax filing.&lt;br /&gt;
&lt;br /&gt;
== Accessories ==&lt;br /&gt;
&lt;br /&gt;
=== Protection ===&lt;br /&gt;
==== Which screen protector should I use? ====&lt;br /&gt;
&lt;br /&gt;
Protecting your screen is important, especially for devices like the PinePhone that doesn't have access to the newest glass technology.&lt;br /&gt;
The Braveheart and Community Editions of the PinePhone comes with a plastic film screen protector installed, and PINE64 sells a tempered glass screen protector [https://pine64.com/product/pinephone-tempered-glass-screen-protector/ in their store].&lt;br /&gt;
&lt;br /&gt;
You can also buy a third-party screen protector, as the screen protectors for the iPhone 11 Pro Max/XS Max fit the PinePhone pretty well based on [https://forum.pine64.org/showthread.php?tid=8458&amp;amp;pid=65409#pid65409 this] forum post.&lt;br /&gt;
&lt;br /&gt;
=== Batteries ===&lt;br /&gt;
==== I want a replacement battery, which one should I buy? ====&lt;br /&gt;
&lt;br /&gt;
Replacement batteries for US customers are available in the store.&lt;br /&gt;
&lt;br /&gt;
Currently the PinePhone battery is known to be compatible with replacement batteries for the Samsung J700. Specifically, models &amp;quot;EB-BJ700BBC&amp;quot; and &amp;quot;EB-BJ700BBE&amp;quot; are compatible with all PinePhone models, and &amp;quot;EB-BJ700CBE&amp;quot; is compatible with Community Editions [https://www.reddit.com/r/PINE64official/comments/kcof97/pinephone_replacement_battery_found_and_tested/gfrx4p2/?utm_source=reddit&amp;amp;utm_medium=web2x&amp;amp;context=3 after UBPorts] (due to plastic tabs on its bottom which only the newer phones [https://forum.pine64.org/showthread.php?tid=11901 have tolerance for]).&lt;br /&gt;
&lt;br /&gt;
=== External hardware ===&lt;br /&gt;
&lt;br /&gt;
==== Will PINE64 sell other add-ons made for the PinePhone? ====&lt;br /&gt;
&lt;br /&gt;
Yes, currently there is a keyboard case [https://forum.pine64.org/showthread.php?tid=8537&amp;amp;pid=55396#pid55396 with similarities to the Psion 5] which includes an internal battery, and a [https://www.pine64.org/2020/05/15/may-update-pinetab-pre-orders-pinephone-qi-charging-more/ Qi wireless charging] add-on planned, both of which PINE64 intends to directly sell. There is the potential for future add-ons such as a game pad, however that is currently just an idea and not in any way planned.&lt;br /&gt;
&lt;br /&gt;
==== Which 3rd party hardware can connect to my PinePhone? ====&lt;br /&gt;
&lt;br /&gt;
See [[PinePhone Hardware Accessory Compatibility]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_FAQ&amp;diff=10597</id>
		<title>PinePhone FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_FAQ&amp;diff=10597"/>
		<updated>2021-06-03T05:32:07Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* GPS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A list of frequently asked question.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Revisions ===&lt;br /&gt;
==== What are Community Editions? ====&lt;br /&gt;
Community Editions of the PinePhone were versions of the PinePhone which came preinstalled with the operating system of a partner project and featured the logo of the project on the back panel. The Community Edition was intended to help partner projects developing these systems: &amp;quot;Community editions are meant to bring exposure to partner-projects operating systems and communities, as well as help finance ongoing development.&amp;quot;, [https://www.pine64.org/2020/04/02/pinephone-ubports-community-edition-pre-orders-now-open/ source].&lt;br /&gt;
&lt;br /&gt;
==== Is the Community Edition hardware the latest revision? ====&lt;br /&gt;
The Community Edition program (featuring the mainboard numbers 1.2 through 1.2b and branded back covers) which provided the branded PinePhones has since ended, and a Beta Edition has since been released. The only difference between each Community Edition is the inclusion of crucial bug fixes, with the last issue being fixed with the 1.2b motherboard shipping with the Manjaro CE PinePhones. The 1.2b motherboard is also currently used in the Beta Edition PinePhones, however the Beta Edition units do not ship with any back cover branding. There are currently no plans for further hardware revisions.&lt;br /&gt;
&lt;br /&gt;
Aside from the back cover, the only other difference between each Community Edition is that starting with the postmarketOS PinePhone, a convergence package option was released that adds another gigabyte of ram to the phone and a 32GB eMMC instead of a 16GB eMMC. Convergence packages also included a dock for plugging in USB peripherals and connecting to an HDMI monitor, however you can purchase a generic USB-C dock to use with a 2GB PinePhone. &lt;br /&gt;
&lt;br /&gt;
The predecessor to the Convergence Edition PinePhones was the Braveheart Edition intended for developers to bring up the platform, which had the version number 1.1. For more details about the topic see [[PinePhone#Hardware Revisions]].&lt;br /&gt;
&lt;br /&gt;
==== Will there be other Community Editions? ====&lt;br /&gt;
Five Community Editions have been announced: [https://www.pine64.org/2020/04/02/pinephone-ubports-community-edition-pre-orders-now-open/ UBports], [https://www.pine64.org/2020/06/15/june-update-postmarketos-ce-pinephone-shipping-pine64-cluster/ postmarketOS], [https://www.pine64.org/2020/08/31/pinephone-manjaro-community-edition/ Manjaro], [https://www.pine64.org/2020/12/01/kde-community-edition-is-now-available/ KDE], and [https://www.pine64.org/2021/01/17/mobian-community-edition/ Mobian]. Since the release of the Mobian edition, the Beta Edition PinePhones have been released and the Community Edition Program has ended.&lt;br /&gt;
&lt;br /&gt;
==== In simple terms, what are the differences between Braveheart and the new Community Edition? ====&lt;br /&gt;
The Braveheart PinePhone was the first public revision of the PinePhone which was intended solely for developers and Linux enthusiasts. The UBports Community Edition was the next revision of the PinePhone with an updated mainboard based on feedback from the Braveheart Edition, see [[PinePhone#Hardware Revisions]]. All current revisions of the PinePhone continue to be intended for developers and enthusiasts, however, PINE64 will be starting to offer partnered retail units of the PinePhone which will have a better warranty and technical support (keep in mind even then it is not intended for a broader audience at this time, as the software still needs work and the hardware does not hold up well to modern consumer standards).&lt;br /&gt;
&lt;br /&gt;
==== Will there be a newer revision after the Community Editions? ====&lt;br /&gt;
Starting with the UBports Community Edition the PinePhone has gotten CE and FCC certifications, repeating the certification process due to changes in the hardware design is very expensive, so the 1.2b motherboard is viewed as the final revision. The PinePhone (and parts for them) will be produced and sold for at least 5 years.&lt;br /&gt;
&lt;br /&gt;
==== Will there be hardware differences between the Community Editions? ====&lt;br /&gt;
&lt;br /&gt;
Besides the varied back covers, starting with the launch of the PostmarketOS CE there has been the release of a convergence package option for the PinePhone which includes more ram and storage, and an included dock for convenience. There has also been multiple hardware changes starting with the UBports CE (mainboard 1.2) and ending with the Manjaro CE (mainboard revision 1.2b). There are currently no plans for future hardware changes for a few years.&lt;br /&gt;
&lt;br /&gt;
==== How powerful is the PinePhone's hardware? ====&lt;br /&gt;
&lt;br /&gt;
The PinePhone is about on par with a Raspberry Pi 3 in terms of CPU power, however going by GFLOPS it has half the GPU power. The Pi 3's Videocore IV does 24 GFLOPS, and the Mali 400 MP2 on the PinePhone only 10.8.&lt;br /&gt;
&lt;br /&gt;
Despite this, using software rendering the PinePhone is capable of smoothly rendering at 1080p resolution or higher. However, with a fully GPU-accelerated mobile environment you should expect a more sluggish experience outputting to such resolutions. Unfortunately, the Mali 400 MP2 (a 2008 arm mobile GPU) simply isn't intended to push 1080p resolution. With that said, the VPU of the PinePhone has been shown to handle smooth H.264 1440p30 video playback using Cedrus and gstreamer as documented [https://xnux.eu/log/#001 here]. Further, the PinePhone should be more than capable of a smooth phone experience when used in conjunction with well optimized software that makes use of its hardware features. It is also more than capable of running many light games (including 3D ones such as SuperTuxKart), and retro gaming. Expect further speed improvements over time as the drivers are improved, and in the meanwhile you can look into slightly [[overclocking]] the device (at your own risk).&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
The default ringtone for Mobian Phosh can be found at /usr/share/sounds/freedesktop/stereo/phone-incoming-call.oga&lt;br /&gt;
&lt;br /&gt;
=== Modem ===&lt;br /&gt;
&lt;br /&gt;
==== The modem isn't working ====&lt;br /&gt;
&lt;br /&gt;
In order to use the modem and Wi-Fi/Bluetooth, you need to ensure the battery is inside the device and has a sufficient charge. Even when supplying the phone with enough power, the modem and Wi-Fi chip will not work without a connected battery. Further, double check that you have not put the SD card into the sim card slot, or vice versa.&lt;br /&gt;
&lt;br /&gt;
==== Does the PinePhone only wake up from sleep for calls and texts? ====&lt;br /&gt;
&lt;br /&gt;
Yes. Unless the PinePhone is configured to wake up every few minutes from deep sleep in crust (At the cost of battery life. However, in the future there may be other solutions), then there is not any way to get any notifications for applications. The modem on the PinePhone will wake the device for incoming calls and texts however, and the real-time clock is also capable of waking the device for alarms.&lt;br /&gt;
&lt;br /&gt;
=== Battery ===&lt;br /&gt;
&lt;br /&gt;
==== The battery is stuck inside the phone ====&lt;br /&gt;
&lt;br /&gt;
The battery can be stuck in the phone if the screws of the frame are overtightened.&lt;br /&gt;
&lt;br /&gt;
If your battery is stuck inside the PinePhone, grab a screwdriver and completely unscrew all the screws of the midframe. Then pull out the battery (you may have to fully take off the midframe in some cases to get it out). And then rescrew the midframe, but only tighten the screws to the point where they are just barely tight to hold. This should allow you to remove the battery easily.&lt;br /&gt;
&lt;br /&gt;
==== The battery is discharging while the phone is powered off (Braveheart Edition) ====&lt;br /&gt;
&lt;br /&gt;
The issue is not present on the Community Edition. Due to a hardware bug, after power off, the phone still consumes 20–30mA which drains the battery in 3-4 days. A manual procedure to fix the hardware bug is described [https://xnux.eu/devices/pp-pmic-fix.jpg here].&lt;br /&gt;
&lt;br /&gt;
==== The battery only charges to ~84% ====&lt;br /&gt;
&lt;br /&gt;
Some pre-made OSes using megi's kernel limit the maximum amount of charge to roughly ~84% in the hope of prolonging the battery life, as repeatedly reaching the upper level of battery charge reduces the battery's lifetime (this is &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; a safety feature!). The same effect however also applies when repeatedly draining the battery to a low level - users are therefore advised to consider if that setting is reasonable depending on their usage. The setting can be overwritten via Sysfs, to let the battery fully charge (this can lower the replaceable's battery lifetime considerably depending on the charging behavior!):&lt;br /&gt;
&lt;br /&gt;
{{warning|The following instructions are directed towards expert-level users and developers!}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;echo 4350000 &amp;gt; /sys/class/power_supply/axp20x-battery/voltage_max_design&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kill Switches ===&lt;br /&gt;
==== What are the kill switches doing? ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number&lt;br /&gt;
! Name&lt;br /&gt;
! Explanation&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Modem&lt;br /&gt;
| Pulls Q1501 gate up (FET killing modem power)&lt;br /&gt;
| &amp;quot;On&amp;quot; enables 2G/3G/4G communication and GNSS hardware, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Wi-Fi / Bluetooth&lt;br /&gt;
| Pulls up CHIP_EN&lt;br /&gt;
| &amp;quot;On&amp;quot; enables Wi-Fi and Bluetooth communication hardware, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Microphone&lt;br /&gt;
| Breaks microphone bias voltage from the SoC&lt;br /&gt;
| &amp;quot;On&amp;quot; enables audio input from on-board microphones (not 3.5mm jack), &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Rear camera&lt;br /&gt;
| Pulls up PWDN on OV5640 &lt;br /&gt;
| &amp;quot;On&amp;quot; enables the rear camera, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Front camera&lt;br /&gt;
| Pulls up PWDN on GC2145&lt;br /&gt;
| &amp;quot;On&amp;quot; enables the front camera, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Headphone&lt;br /&gt;
| Pulls up IN2 on analog switch BCT4717ETB&lt;br /&gt;
| &amp;quot;On&amp;quot; enables audio input and output via the 3.5mm audio jack, &amp;quot;off&amp;quot; switches the jack to hardware UART mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
&lt;br /&gt;
==== What's the speed difference between the eMMC and SD cards? ====&lt;br /&gt;
Maximum transfer speed of the eMMC is around 85 MB/s, while SD cards are limited to approximately 23 MB/s (even with faster cards).&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
==== GPS doesn't work ====&lt;br /&gt;
&lt;br /&gt;
Like almost all smartphones, the PinePhone GPS antenna is small and can only get a first fix unassisted if the GPS signal is very strong. To make first fix faster and more reliable, phones download assistance data either from the phone network or from the internet. The GPS in the PinePhone modem supports the internet based assistance method, as detailed in the modem documentation, but this is currently only supported by a few distros, and a [https://gist.github.com/alastair-dm/263209b54d01209be28828e555fa6628 proof of concept script] that shows it can work.&lt;br /&gt;
&lt;br /&gt;
Until AGPS support becomes standard you'll have to make some manual changes - see for example [https://wiki.mobian-project.org/doku.php?id=location Mobian wiki]&lt;br /&gt;
&lt;br /&gt;
==== GPS can't determine direction ====&lt;br /&gt;
&lt;br /&gt;
Currently, due to the magnetometer not being hooked up in software at this time, it is not possible for GPS software to use the phone's compass functionality. This means while you are walking it will not be possible to determine the direction of travel. This is not as much of an issue for vehicles as the faster speeds mean that it is possible to estimate the direction of travel, however it will still be an issue should the vehicle travel through a tunnel and loose GPS signal.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== How can I install an operating system on the SD card / eMMC? ====&lt;br /&gt;
&lt;br /&gt;
See [[PinePhone Installation Instructions]].&lt;br /&gt;
&lt;br /&gt;
=== Updating ===&lt;br /&gt;
&lt;br /&gt;
Read the [[PinePhone Updating Instructions]].&lt;br /&gt;
&lt;br /&gt;
=== Booting ===&lt;br /&gt;
&lt;br /&gt;
==== What's the boot order for SD cards and eMMC? ====&lt;br /&gt;
&lt;br /&gt;
The PinePhone will automatically boot from microSD if a bootable card is inserted. If no (bootable) microSD is found, it will boot from eMMC.&lt;br /&gt;
&lt;br /&gt;
==== How can I select different OSes at boot? ====&lt;br /&gt;
&lt;br /&gt;
There was a project by Danct12 which allowed the user to select different OSes at boot, but the repository has since been archived: https://github.com/dreemurrs-embedded/Pineloader.&lt;br /&gt;
&lt;br /&gt;
==== I turned on my Manjaro CE PinePhone. The red LED and screen backlight are briefly lit, then both are not and it will not boot. ====&lt;br /&gt;
&lt;br /&gt;
This can be the result of at least one situation:&lt;br /&gt;
&lt;br /&gt;
# The eMMC installation became corrupt or otherwise unbootable&lt;br /&gt;
# An SD card is present but not bootable (consider [[PinePhone#Detailed usage instructions]])&lt;br /&gt;
&lt;br /&gt;
If there is an installation of Manjaro on both the eMMC &amp;amp; an SD card, the SD card will always boot first on the device. Try taking the SD card out and booting the installation that is on the eMMC. If the problem persists, it is likely there is an issue with both installations and you will need to reinstall your distribution. You may also want to check with your distribution's maintainers if boot issues are a common problem in a recent update.&lt;br /&gt;
&lt;br /&gt;
====  I did not install an update in Ubuntu Touch and I'm stuck on the PINE64 logo after rebooting. ====&lt;br /&gt;
&lt;br /&gt;
# Use a USB A-C cable to plug your phone into your PC&lt;br /&gt;
# Hold the PinePhone's power button for 4 seconds or more to power it off.&lt;br /&gt;
# Wait 5 seconds&lt;br /&gt;
# Hold the Volume Up and Power buttons on the PinePhone to boot into recovery. You should see the LED light red, then yellow, then green. The &amp;quot;Installing update&amp;quot; screen will appear, but a progress bar to indicate update progress will not. Ignore the &amp;quot;Installing update&amp;quot; part.&lt;br /&gt;
# Your PC may automatically mount the PinePhone's partitions. If it does, Safely Remove or Eject all of them.&lt;br /&gt;
# Open a terminal on your PC. Type &amp;lt;code&amp;gt;telnet 172.16.42.1&amp;lt;/code&amp;gt;&lt;br /&gt;
# You should receive the text 'Welcome to Rescue SD Shell!'&lt;br /&gt;
# In the new Rescue SD shell, type &amp;lt;code&amp;gt;umount /dev/mmcblk2p10; e2fsck -fy /dev/mmcblk2p10 &amp;amp;&amp;amp; sync&amp;lt;/code&amp;gt;&lt;br /&gt;
# Once this command pipeline finishes, type &amp;lt;code&amp;gt;sync &amp;amp;&amp;amp; reboot -f&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your PinePhone should reboot into Ubuntu Touch. Now head to Settings -&amp;gt; Updates and install the new update! &lt;br /&gt;
&lt;br /&gt;
If these steps did not solve your issue, please create a new thread here on the PINE64 forums, note what the problem looks like, then say that you've tried these steps already.&lt;br /&gt;
&lt;br /&gt;
This is caused by corruption on the userdata partition. Normally this should be fixed by 'e2fsck' in the initramfs, however, an error in image creation means that that version of e2fsck is unable to correct the corruption. This has been fixed in all new PinePhone updates, so if you update from the factory image to any other image available to the PinePhone now, you will not experience this issue any longer.&lt;br /&gt;
&lt;br /&gt;
==== I turned on my PinePhone running Ubuntu Touch. The red LED is lit and it will not boot. ====&lt;br /&gt;
# Hold the power button until the light turns off&lt;br /&gt;
# Hold the power button until the light turns on&lt;br /&gt;
&lt;br /&gt;
You may need to repeat these steps more than once.&lt;br /&gt;
&lt;br /&gt;
This is caused by u-boot apparently trying to use the eMMC before it is ready. We are not entirely sure why this occurs yet.&lt;br /&gt;
&lt;br /&gt;
==== Can I install a different OS on my Community Edition? ====&lt;br /&gt;
&lt;br /&gt;
Yes! While all the Community Edition PinePhones come with an OS preinstalled, you are free to use any OS on the integrated storage (the eMMC) or an SD card, see [[PinePhone Installation Instructions]] and [[PinePhone Software Releases]] on how to install them.&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
==== How can I enable SSH? ====&lt;br /&gt;
&lt;br /&gt;
In Ubuntu Touch you can run &amp;quot;sudo start ssh&amp;quot; to get a one-time start, or edit /etc/init/ssh.override and remove the manual line to make it auto-start.&lt;br /&gt;
&lt;br /&gt;
In other distributions you may have to install SSH through its package manager and then proceed to use its init system to enable it. For Manjaro, Arch, and Mobian you can use &amp;quot;systemctl enable&amp;quot; and &amp;quot;systemctl start&amp;quot; command to enable and start ssh.&lt;br /&gt;
&lt;br /&gt;
==== What works, what doesn't? ====&lt;br /&gt;
&lt;br /&gt;
For Ubuntu Touch see https://gitlab.com/ubports/community-ports/pinephone#what-works-what-doesnt.&lt;br /&gt;
&lt;br /&gt;
Other distributions will have different levels of functionality. Please refer to the release page of your chosen distribution for further information.&lt;br /&gt;
&lt;br /&gt;
====  I can't connect to a 2.4Ghz Wi-Fi network in Ubuntu Touch. ====&lt;br /&gt;
&lt;br /&gt;
Reboot your device by holding the power button until the &amp;quot;Power&amp;quot; dialog appears, then pressing &amp;quot;Restart&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If that does not fix the issue, note that all the following conditions must be met to use Wi-Fi on the PinePhone:&lt;br /&gt;
&lt;br /&gt;
# The plastic tab between the battery and the device's battery contacts has been removed&lt;br /&gt;
# The battery is installed&lt;br /&gt;
# The Wi-Fi killswitch, #2, on the rear of the device is switched &amp;quot;ON&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wi-Fi in the PinePhone only seems stable after a warm reboot like this.&lt;br /&gt;
&lt;br /&gt;
==== What's the status of Android for the PinePhone? ====&lt;br /&gt;
&lt;br /&gt;
Currently, there isn't any major push to get Android running well on the PinePhone. The developer Icenowy did get a Android image to run and partly work, it was however slow and buggy, with major functions not working. A solution for running some of your android apps may be found in Anbox as of now. Anbox is currently not included in Ubuntu Touch. In other distributions your millage may vary on what applications will run and how well.&lt;br /&gt;
&lt;br /&gt;
==== Why are my apps loading slower than on my Android phone? ====&lt;br /&gt;
&lt;br /&gt;
Android has multiple techniques in place to speed up launching applications after the first launch, such as the &amp;quot;Dalvik cache&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Using an alternative filesystem such as F2FS on the eMMC (which is considerably faster than running software on the SD card) may help improve performance slightly. Over time you can expect further optimizations and improvements in various distributions that will help speed up the PinePhone.&lt;br /&gt;
&lt;br /&gt;
=== SMS ===&lt;br /&gt;
&lt;br /&gt;
==== The phone does not receive SMS ====&lt;br /&gt;
&lt;br /&gt;
Sometimes incoming SMS messages are not being received, but outgoing ones, phone calls and data are working fine. One potential cause could be SMS messages that linger in the modem's queue (10 or more of them). This queue appears to be persistent across reboots and also re-imaging the OS.&lt;br /&gt;
&lt;br /&gt;
On Mobian and Manjaro, the ModemManager does all the communications with the 3G modem including phone calls, cellular data, GPS and SMS. This may not be the case with other PinePhone OSes.&lt;br /&gt;
&lt;br /&gt;
You can access the ModemManager using the mmcli command.&lt;br /&gt;
&lt;br /&gt;
'''Mobian:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mmcli -m 0 --messaging-list-sms&lt;br /&gt;
Found 10 SMS messages:&lt;br /&gt;
/org/freedesktop/ModemManager1/SMS/0 (received)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Manjaro:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mmcli -m 3 --messaging-list-sms&lt;br /&gt;
/org/freedesktop/ModemManager1/SMS/77 (received)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Mobian, delete all the messages like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo mmcli -m 0 --messaging-delete-sms=1&amp;lt;/code&amp;gt; (Repeat with 1 through 10 to delete all the messages)&lt;br /&gt;
&lt;br /&gt;
For Manjaro, delete all the messages like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo mmcli -m 3 --messaging-delete-sms=77&amp;lt;/code&amp;gt; (Repeat with all listed messages)&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;-m 0&amp;quot; or &amp;quot;-m 3&amp;quot; refers to modem 0 or 3 (the only one in a PinePhone). For more help on the messaging related actions available in mmcli you can check the help with &amp;lt;code&amp;gt;mmcli --help-messaging.&amp;lt;/code&amp;gt; This article is also helpful in learning: https://electronproton.com/mmcli-command-examples/. For your particular configuration, you may need to try different &amp;quot;-m #&amp;quot; combinations, e.g., &amp;quot;-m 2&amp;quot; or &amp;quot;-m 4.&amp;quot; &amp;quot;-m 0&amp;quot; is not always the default.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that recent releases of Mobian and postmarketOS now include a userspace daemon called [https://gitlab.com/mobian1/devices/eg25-manager eg25-manager], which helps manage the modem and ensure proper operation.&lt;br /&gt;
&lt;br /&gt;
== Shipping ==&lt;br /&gt;
=== I did not receive an order confirmation ===&lt;br /&gt;
Check your &amp;quot;spam&amp;quot; folder. It was reported that some users did not receive an order confirmation. You will also still get a shipping notification when the device ships out, even if you didn't get an order confirmation email.&lt;br /&gt;
&lt;br /&gt;
=== When does the phone ship? ===&lt;br /&gt;
For up-to-date information when the phone's shipping date is estimated, see the edits in the corresponding forum thread.&lt;br /&gt;
&lt;br /&gt;
=== It is shipping day but I did not receive a shipping notification ===&lt;br /&gt;
For shipments with DHL the shipping notification is sent out as soon as the packet reached DHL's warehouse and scanned (it can take up to 24 hours after scanning after the shipment is added to DHL's database). For all other shipments (via Ascendia) the notification is sent out sometime after shipment.&lt;br /&gt;
&lt;br /&gt;
=== When does my phone ship if I order now? ===&lt;br /&gt;
Orders made after Friday, 22nd May 2020 are shipped after the first bulk of pre-orders has been shipped. The exact date is not known yet due to various reasons, it may be a few weeks after the first bulk shipped. [https://forum.pine64.org/showthread.php?tid=9942 The forum] will be edited with updated information and you will receive a shipping notification when the device was shipped.&lt;br /&gt;
&lt;br /&gt;
=== What about import taxes? ===&lt;br /&gt;
Import taxes have to be paid by the buyer depending on the jurisdiction of the country of the buyer. Please check with your local laws if there are import taxes to pay and if so how to do the tax filing.&lt;br /&gt;
&lt;br /&gt;
== Accessories ==&lt;br /&gt;
&lt;br /&gt;
=== Protection ===&lt;br /&gt;
==== Which screen protector should I use? ====&lt;br /&gt;
&lt;br /&gt;
Protecting your screen is important, especially for devices like the PinePhone that doesn't have access to the newest glass technology.&lt;br /&gt;
The Braveheart and Community Editions of the PinePhone comes with a plastic film screen protector installed, and PINE64 sells a tempered glass screen protector [https://pine64.com/product/pinephone-tempered-glass-screen-protector/ in their store].&lt;br /&gt;
&lt;br /&gt;
You can also buy a third-party screen protector, as the screen protectors for the iPhone 11 Pro Max/XS Max fit the PinePhone pretty well based on [https://forum.pine64.org/showthread.php?tid=8458&amp;amp;pid=65409#pid65409 this] forum post.&lt;br /&gt;
&lt;br /&gt;
=== Batteries ===&lt;br /&gt;
==== I want a replacement battery, which one should I buy? ====&lt;br /&gt;
&lt;br /&gt;
Replacement batteries for US customers are available in the store.&lt;br /&gt;
&lt;br /&gt;
Currently the PinePhone battery is known to be compatible with replacement batteries for the Samsung J700. Specifically, models &amp;quot;EB-BJ700BBC&amp;quot; and &amp;quot;EB-BJ700BBE&amp;quot; are compatible with all PinePhone models, and &amp;quot;EB-BJ700CBE&amp;quot; is compatible with Community Editions [https://www.reddit.com/r/PINE64official/comments/kcof97/pinephone_replacement_battery_found_and_tested/gfrx4p2/?utm_source=reddit&amp;amp;utm_medium=web2x&amp;amp;context=3 after UBPorts] (due to plastic tabs on its bottom which only the newer phones [https://forum.pine64.org/showthread.php?tid=11901 have tolerance for]).&lt;br /&gt;
&lt;br /&gt;
=== External hardware ===&lt;br /&gt;
&lt;br /&gt;
==== Will PINE64 sell other add-ons made for the PinePhone? ====&lt;br /&gt;
&lt;br /&gt;
Yes, currently there is a keyboard case [https://forum.pine64.org/showthread.php?tid=8537&amp;amp;pid=55396#pid55396 with similarities to the Psion 5] which includes an internal battery, and a [https://www.pine64.org/2020/05/15/may-update-pinetab-pre-orders-pinephone-qi-charging-more/ Qi wireless charging] add-on planned, both of which PINE64 intends to directly sell. There is the potential for future add-ons such as a game pad, however that is currently just an idea and not in any way planned.&lt;br /&gt;
&lt;br /&gt;
==== Which 3rd party hardware can connect to my PinePhone? ====&lt;br /&gt;
&lt;br /&gt;
See [[PinePhone Hardware Accessory Compatibility]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_FAQ&amp;diff=10596</id>
		<title>PinePhone FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_FAQ&amp;diff=10596"/>
		<updated>2021-06-03T05:25:56Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* GPS doesn't work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A list of frequently asked question.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Revisions ===&lt;br /&gt;
==== What are Community Editions? ====&lt;br /&gt;
Community Editions of the PinePhone were versions of the PinePhone which came preinstalled with the operating system of a partner project and featured the logo of the project on the back panel. The Community Edition was intended to help partner projects developing these systems: &amp;quot;Community editions are meant to bring exposure to partner-projects operating systems and communities, as well as help finance ongoing development.&amp;quot;, [https://www.pine64.org/2020/04/02/pinephone-ubports-community-edition-pre-orders-now-open/ source].&lt;br /&gt;
&lt;br /&gt;
==== Is the Community Edition hardware the latest revision? ====&lt;br /&gt;
The Community Edition program (featuring the mainboard numbers 1.2 through 1.2b and branded back covers) which provided the branded PinePhones has since ended, and a Beta Edition has since been released. The only difference between each Community Edition is the inclusion of crucial bug fixes, with the last issue being fixed with the 1.2b motherboard shipping with the Manjaro CE PinePhones. The 1.2b motherboard is also currently used in the Beta Edition PinePhones, however the Beta Edition units do not ship with any back cover branding. There are currently no plans for further hardware revisions.&lt;br /&gt;
&lt;br /&gt;
Aside from the back cover, the only other difference between each Community Edition is that starting with the postmarketOS PinePhone, a convergence package option was released that adds another gigabyte of ram to the phone and a 32GB eMMC instead of a 16GB eMMC. Convergence packages also included a dock for plugging in USB peripherals and connecting to an HDMI monitor, however you can purchase a generic USB-C dock to use with a 2GB PinePhone. &lt;br /&gt;
&lt;br /&gt;
The predecessor to the Convergence Edition PinePhones was the Braveheart Edition intended for developers to bring up the platform, which had the version number 1.1. For more details about the topic see [[PinePhone#Hardware Revisions]].&lt;br /&gt;
&lt;br /&gt;
==== Will there be other Community Editions? ====&lt;br /&gt;
Five Community Editions have been announced: [https://www.pine64.org/2020/04/02/pinephone-ubports-community-edition-pre-orders-now-open/ UBports], [https://www.pine64.org/2020/06/15/june-update-postmarketos-ce-pinephone-shipping-pine64-cluster/ postmarketOS], [https://www.pine64.org/2020/08/31/pinephone-manjaro-community-edition/ Manjaro], [https://www.pine64.org/2020/12/01/kde-community-edition-is-now-available/ KDE], and [https://www.pine64.org/2021/01/17/mobian-community-edition/ Mobian]. Since the release of the Mobian edition, the Beta Edition PinePhones have been released and the Community Edition Program has ended.&lt;br /&gt;
&lt;br /&gt;
==== In simple terms, what are the differences between Braveheart and the new Community Edition? ====&lt;br /&gt;
The Braveheart PinePhone was the first public revision of the PinePhone which was intended solely for developers and Linux enthusiasts. The UBports Community Edition was the next revision of the PinePhone with an updated mainboard based on feedback from the Braveheart Edition, see [[PinePhone#Hardware Revisions]]. All current revisions of the PinePhone continue to be intended for developers and enthusiasts, however, PINE64 will be starting to offer partnered retail units of the PinePhone which will have a better warranty and technical support (keep in mind even then it is not intended for a broader audience at this time, as the software still needs work and the hardware does not hold up well to modern consumer standards).&lt;br /&gt;
&lt;br /&gt;
==== Will there be a newer revision after the Community Editions? ====&lt;br /&gt;
Starting with the UBports Community Edition the PinePhone has gotten CE and FCC certifications, repeating the certification process due to changes in the hardware design is very expensive, so the 1.2b motherboard is viewed as the final revision. The PinePhone (and parts for them) will be produced and sold for at least 5 years.&lt;br /&gt;
&lt;br /&gt;
==== Will there be hardware differences between the Community Editions? ====&lt;br /&gt;
&lt;br /&gt;
Besides the varied back covers, starting with the launch of the PostmarketOS CE there has been the release of a convergence package option for the PinePhone which includes more ram and storage, and an included dock for convenience. There has also been multiple hardware changes starting with the UBports CE (mainboard 1.2) and ending with the Manjaro CE (mainboard revision 1.2b). There are currently no plans for future hardware changes for a few years.&lt;br /&gt;
&lt;br /&gt;
==== How powerful is the PinePhone's hardware? ====&lt;br /&gt;
&lt;br /&gt;
The PinePhone is about on par with a Raspberry Pi 3 in terms of CPU power, however going by GFLOPS it has half the GPU power. The Pi 3's Videocore IV does 24 GFLOPS, and the Mali 400 MP2 on the PinePhone only 10.8.&lt;br /&gt;
&lt;br /&gt;
Despite this, using software rendering the PinePhone is capable of smoothly rendering at 1080p resolution or higher. However, with a fully GPU-accelerated mobile environment you should expect a more sluggish experience outputting to such resolutions. Unfortunately, the Mali 400 MP2 (a 2008 arm mobile GPU) simply isn't intended to push 1080p resolution. With that said, the VPU of the PinePhone has been shown to handle smooth H.264 1440p30 video playback using Cedrus and gstreamer as documented [https://xnux.eu/log/#001 here]. Further, the PinePhone should be more than capable of a smooth phone experience when used in conjunction with well optimized software that makes use of its hardware features. It is also more than capable of running many light games (including 3D ones such as SuperTuxKart), and retro gaming. Expect further speed improvements over time as the drivers are improved, and in the meanwhile you can look into slightly [[overclocking]] the device (at your own risk).&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
The default ringtone for Mobian Phosh can be found at /usr/share/sounds/freedesktop/stereo/phone-incoming-call.oga&lt;br /&gt;
&lt;br /&gt;
=== Modem ===&lt;br /&gt;
&lt;br /&gt;
==== The modem isn't working ====&lt;br /&gt;
&lt;br /&gt;
In order to use the modem and Wi-Fi/Bluetooth, you need to ensure the battery is inside the device and has a sufficient charge. Even when supplying the phone with enough power, the modem and Wi-Fi chip will not work without a connected battery. Further, double check that you have not put the SD card into the sim card slot, or vice versa.&lt;br /&gt;
&lt;br /&gt;
==== Does the PinePhone only wake up from sleep for calls and texts? ====&lt;br /&gt;
&lt;br /&gt;
Yes. Unless the PinePhone is configured to wake up every few minutes from deep sleep in crust (At the cost of battery life. However, in the future there may be other solutions), then there is not any way to get any notifications for applications. The modem on the PinePhone will wake the device for incoming calls and texts however, and the real-time clock is also capable of waking the device for alarms.&lt;br /&gt;
&lt;br /&gt;
=== Battery ===&lt;br /&gt;
&lt;br /&gt;
==== The battery is stuck inside the phone ====&lt;br /&gt;
&lt;br /&gt;
The battery can be stuck in the phone if the screws of the frame are overtightened.&lt;br /&gt;
&lt;br /&gt;
If your battery is stuck inside the PinePhone, grab a screwdriver and completely unscrew all the screws of the midframe. Then pull out the battery (you may have to fully take off the midframe in some cases to get it out). And then rescrew the midframe, but only tighten the screws to the point where they are just barely tight to hold. This should allow you to remove the battery easily.&lt;br /&gt;
&lt;br /&gt;
==== The battery is discharging while the phone is powered off (Braveheart Edition) ====&lt;br /&gt;
&lt;br /&gt;
The issue is not present on the Community Edition. Due to a hardware bug, after power off, the phone still consumes 20–30mA which drains the battery in 3-4 days. A manual procedure to fix the hardware bug is described [https://xnux.eu/devices/pp-pmic-fix.jpg here].&lt;br /&gt;
&lt;br /&gt;
==== The battery only charges to ~84% ====&lt;br /&gt;
&lt;br /&gt;
Some pre-made OSes using megi's kernel limit the maximum amount of charge to roughly ~84% in the hope of prolonging the battery life, as repeatedly reaching the upper level of battery charge reduces the battery's lifetime (this is &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; a safety feature!). The same effect however also applies when repeatedly draining the battery to a low level - users are therefore advised to consider if that setting is reasonable depending on their usage. The setting can be overwritten via Sysfs, to let the battery fully charge (this can lower the replaceable's battery lifetime considerably depending on the charging behavior!):&lt;br /&gt;
&lt;br /&gt;
{{warning|The following instructions are directed towards expert-level users and developers!}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;echo 4350000 &amp;gt; /sys/class/power_supply/axp20x-battery/voltage_max_design&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kill Switches ===&lt;br /&gt;
==== What are the kill switches doing? ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number&lt;br /&gt;
! Name&lt;br /&gt;
! Explanation&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Modem&lt;br /&gt;
| Pulls Q1501 gate up (FET killing modem power)&lt;br /&gt;
| &amp;quot;On&amp;quot; enables 2G/3G/4G communication and GNSS hardware, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Wi-Fi / Bluetooth&lt;br /&gt;
| Pulls up CHIP_EN&lt;br /&gt;
| &amp;quot;On&amp;quot; enables Wi-Fi and Bluetooth communication hardware, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Microphone&lt;br /&gt;
| Breaks microphone bias voltage from the SoC&lt;br /&gt;
| &amp;quot;On&amp;quot; enables audio input from on-board microphones (not 3.5mm jack), &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Rear camera&lt;br /&gt;
| Pulls up PWDN on OV5640 &lt;br /&gt;
| &amp;quot;On&amp;quot; enables the rear camera, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Front camera&lt;br /&gt;
| Pulls up PWDN on GC2145&lt;br /&gt;
| &amp;quot;On&amp;quot; enables the front camera, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Headphone&lt;br /&gt;
| Pulls up IN2 on analog switch BCT4717ETB&lt;br /&gt;
| &amp;quot;On&amp;quot; enables audio input and output via the 3.5mm audio jack, &amp;quot;off&amp;quot; switches the jack to hardware UART mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
&lt;br /&gt;
==== What's the speed difference between the eMMC and SD cards? ====&lt;br /&gt;
Maximum transfer speed of the eMMC is around 85 MB/s, while SD cards are limited to approximately 23 MB/s (even with faster cards).&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
==== GPS doesn't work ====&lt;br /&gt;
&lt;br /&gt;
Like almost all smartphones, the PinePhone GPS antenna is small and can only get a first fix unassisted if the GPS signal is very strong. To make first fix faster and more reliable, phones download assistance data either from the phone network or from the internet. The GPS in the PinePhone modem supports the internet based assistance method, as detailed in the modem documentation, but this is currently only supported by a few distros, and a [https://gist.github.com/alastair-dm/263209b54d01209be28828e555fa6628 proof of concept script] that shows it can work.&lt;br /&gt;
&lt;br /&gt;
Until AGPS support becomes standard you'll have to make some manual changes - see for example [https://wiki.mobian-project.org/doku.php?id=location Mobian wiki]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== How can I install an operating system on the SD card / eMMC? ====&lt;br /&gt;
&lt;br /&gt;
See [[PinePhone Installation Instructions]].&lt;br /&gt;
&lt;br /&gt;
=== Updating ===&lt;br /&gt;
&lt;br /&gt;
Read the [[PinePhone Updating Instructions]].&lt;br /&gt;
&lt;br /&gt;
=== Booting ===&lt;br /&gt;
&lt;br /&gt;
==== What's the boot order for SD cards and eMMC? ====&lt;br /&gt;
&lt;br /&gt;
The PinePhone will automatically boot from microSD if a bootable card is inserted. If no (bootable) microSD is found, it will boot from eMMC.&lt;br /&gt;
&lt;br /&gt;
==== How can I select different OSes at boot? ====&lt;br /&gt;
&lt;br /&gt;
There was a project by Danct12 which allowed the user to select different OSes at boot, but the repository has since been archived: https://github.com/dreemurrs-embedded/Pineloader.&lt;br /&gt;
&lt;br /&gt;
==== I turned on my Manjaro CE PinePhone. The red LED and screen backlight are briefly lit, then both are not and it will not boot. ====&lt;br /&gt;
&lt;br /&gt;
This can be the result of at least one situation:&lt;br /&gt;
&lt;br /&gt;
# The eMMC installation became corrupt or otherwise unbootable&lt;br /&gt;
# An SD card is present but not bootable (consider [[PinePhone#Detailed usage instructions]])&lt;br /&gt;
&lt;br /&gt;
If there is an installation of Manjaro on both the eMMC &amp;amp; an SD card, the SD card will always boot first on the device. Try taking the SD card out and booting the installation that is on the eMMC. If the problem persists, it is likely there is an issue with both installations and you will need to reinstall your distribution. You may also want to check with your distribution's maintainers if boot issues are a common problem in a recent update.&lt;br /&gt;
&lt;br /&gt;
====  I did not install an update in Ubuntu Touch and I'm stuck on the PINE64 logo after rebooting. ====&lt;br /&gt;
&lt;br /&gt;
# Use a USB A-C cable to plug your phone into your PC&lt;br /&gt;
# Hold the PinePhone's power button for 4 seconds or more to power it off.&lt;br /&gt;
# Wait 5 seconds&lt;br /&gt;
# Hold the Volume Up and Power buttons on the PinePhone to boot into recovery. You should see the LED light red, then yellow, then green. The &amp;quot;Installing update&amp;quot; screen will appear, but a progress bar to indicate update progress will not. Ignore the &amp;quot;Installing update&amp;quot; part.&lt;br /&gt;
# Your PC may automatically mount the PinePhone's partitions. If it does, Safely Remove or Eject all of them.&lt;br /&gt;
# Open a terminal on your PC. Type &amp;lt;code&amp;gt;telnet 172.16.42.1&amp;lt;/code&amp;gt;&lt;br /&gt;
# You should receive the text 'Welcome to Rescue SD Shell!'&lt;br /&gt;
# In the new Rescue SD shell, type &amp;lt;code&amp;gt;umount /dev/mmcblk2p10; e2fsck -fy /dev/mmcblk2p10 &amp;amp;&amp;amp; sync&amp;lt;/code&amp;gt;&lt;br /&gt;
# Once this command pipeline finishes, type &amp;lt;code&amp;gt;sync &amp;amp;&amp;amp; reboot -f&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your PinePhone should reboot into Ubuntu Touch. Now head to Settings -&amp;gt; Updates and install the new update! &lt;br /&gt;
&lt;br /&gt;
If these steps did not solve your issue, please create a new thread here on the PINE64 forums, note what the problem looks like, then say that you've tried these steps already.&lt;br /&gt;
&lt;br /&gt;
This is caused by corruption on the userdata partition. Normally this should be fixed by 'e2fsck' in the initramfs, however, an error in image creation means that that version of e2fsck is unable to correct the corruption. This has been fixed in all new PinePhone updates, so if you update from the factory image to any other image available to the PinePhone now, you will not experience this issue any longer.&lt;br /&gt;
&lt;br /&gt;
==== I turned on my PinePhone running Ubuntu Touch. The red LED is lit and it will not boot. ====&lt;br /&gt;
# Hold the power button until the light turns off&lt;br /&gt;
# Hold the power button until the light turns on&lt;br /&gt;
&lt;br /&gt;
You may need to repeat these steps more than once.&lt;br /&gt;
&lt;br /&gt;
This is caused by u-boot apparently trying to use the eMMC before it is ready. We are not entirely sure why this occurs yet.&lt;br /&gt;
&lt;br /&gt;
==== Can I install a different OS on my Community Edition? ====&lt;br /&gt;
&lt;br /&gt;
Yes! While all the Community Edition PinePhones come with an OS preinstalled, you are free to use any OS on the integrated storage (the eMMC) or an SD card, see [[PinePhone Installation Instructions]] and [[PinePhone Software Releases]] on how to install them.&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
==== How can I enable SSH? ====&lt;br /&gt;
&lt;br /&gt;
In Ubuntu Touch you can run &amp;quot;sudo start ssh&amp;quot; to get a one-time start, or edit /etc/init/ssh.override and remove the manual line to make it auto-start.&lt;br /&gt;
&lt;br /&gt;
In other distributions you may have to install SSH through its package manager and then proceed to use its init system to enable it. For Manjaro, Arch, and Mobian you can use &amp;quot;systemctl enable&amp;quot; and &amp;quot;systemctl start&amp;quot; command to enable and start ssh.&lt;br /&gt;
&lt;br /&gt;
==== What works, what doesn't? ====&lt;br /&gt;
&lt;br /&gt;
For Ubuntu Touch see https://gitlab.com/ubports/community-ports/pinephone#what-works-what-doesnt.&lt;br /&gt;
&lt;br /&gt;
Other distributions will have different levels of functionality. Please refer to the release page of your chosen distribution for further information.&lt;br /&gt;
&lt;br /&gt;
====  I can't connect to a 2.4Ghz Wi-Fi network in Ubuntu Touch. ====&lt;br /&gt;
&lt;br /&gt;
Reboot your device by holding the power button until the &amp;quot;Power&amp;quot; dialog appears, then pressing &amp;quot;Restart&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If that does not fix the issue, note that all the following conditions must be met to use Wi-Fi on the PinePhone:&lt;br /&gt;
&lt;br /&gt;
# The plastic tab between the battery and the device's battery contacts has been removed&lt;br /&gt;
# The battery is installed&lt;br /&gt;
# The Wi-Fi killswitch, #2, on the rear of the device is switched &amp;quot;ON&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wi-Fi in the PinePhone only seems stable after a warm reboot like this.&lt;br /&gt;
&lt;br /&gt;
==== What's the status of Android for the PinePhone? ====&lt;br /&gt;
&lt;br /&gt;
Currently, there isn't any major push to get Android running well on the PinePhone. The developer Icenowy did get a Android image to run and partly work, it was however slow and buggy, with major functions not working. A solution for running some of your android apps may be found in Anbox as of now. Anbox is currently not included in Ubuntu Touch. In other distributions your millage may vary on what applications will run and how well.&lt;br /&gt;
&lt;br /&gt;
==== Why are my apps loading slower than on my Android phone? ====&lt;br /&gt;
&lt;br /&gt;
Android has multiple techniques in place to speed up launching applications after the first launch, such as the &amp;quot;Dalvik cache&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Using an alternative filesystem such as F2FS on the eMMC (which is considerably faster than running software on the SD card) may help improve performance slightly. Over time you can expect further optimizations and improvements in various distributions that will help speed up the PinePhone.&lt;br /&gt;
&lt;br /&gt;
=== SMS ===&lt;br /&gt;
&lt;br /&gt;
==== The phone does not receive SMS ====&lt;br /&gt;
&lt;br /&gt;
Sometimes incoming SMS messages are not being received, but outgoing ones, phone calls and data are working fine. One potential cause could be SMS messages that linger in the modem's queue (10 or more of them). This queue appears to be persistent across reboots and also re-imaging the OS.&lt;br /&gt;
&lt;br /&gt;
On Mobian and Manjaro, the ModemManager does all the communications with the 3G modem including phone calls, cellular data, GPS and SMS. This may not be the case with other PinePhone OSes.&lt;br /&gt;
&lt;br /&gt;
You can access the ModemManager using the mmcli command.&lt;br /&gt;
&lt;br /&gt;
'''Mobian:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mmcli -m 0 --messaging-list-sms&lt;br /&gt;
Found 10 SMS messages:&lt;br /&gt;
/org/freedesktop/ModemManager1/SMS/0 (received)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Manjaro:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mmcli -m 3 --messaging-list-sms&lt;br /&gt;
/org/freedesktop/ModemManager1/SMS/77 (received)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Mobian, delete all the messages like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo mmcli -m 0 --messaging-delete-sms=1&amp;lt;/code&amp;gt; (Repeat with 1 through 10 to delete all the messages)&lt;br /&gt;
&lt;br /&gt;
For Manjaro, delete all the messages like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo mmcli -m 3 --messaging-delete-sms=77&amp;lt;/code&amp;gt; (Repeat with all listed messages)&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;-m 0&amp;quot; or &amp;quot;-m 3&amp;quot; refers to modem 0 or 3 (the only one in a PinePhone). For more help on the messaging related actions available in mmcli you can check the help with &amp;lt;code&amp;gt;mmcli --help-messaging.&amp;lt;/code&amp;gt; This article is also helpful in learning: https://electronproton.com/mmcli-command-examples/. For your particular configuration, you may need to try different &amp;quot;-m #&amp;quot; combinations, e.g., &amp;quot;-m 2&amp;quot; or &amp;quot;-m 4.&amp;quot; &amp;quot;-m 0&amp;quot; is not always the default.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that recent releases of Mobian and postmarketOS now include a userspace daemon called [https://gitlab.com/mobian1/devices/eg25-manager eg25-manager], which helps manage the modem and ensure proper operation.&lt;br /&gt;
&lt;br /&gt;
== Shipping ==&lt;br /&gt;
=== I did not receive an order confirmation ===&lt;br /&gt;
Check your &amp;quot;spam&amp;quot; folder. It was reported that some users did not receive an order confirmation. You will also still get a shipping notification when the device ships out, even if you didn't get an order confirmation email.&lt;br /&gt;
&lt;br /&gt;
=== When does the phone ship? ===&lt;br /&gt;
For up-to-date information when the phone's shipping date is estimated, see the edits in the corresponding forum thread.&lt;br /&gt;
&lt;br /&gt;
=== It is shipping day but I did not receive a shipping notification ===&lt;br /&gt;
For shipments with DHL the shipping notification is sent out as soon as the packet reached DHL's warehouse and scanned (it can take up to 24 hours after scanning after the shipment is added to DHL's database). For all other shipments (via Ascendia) the notification is sent out sometime after shipment.&lt;br /&gt;
&lt;br /&gt;
=== When does my phone ship if I order now? ===&lt;br /&gt;
Orders made after Friday, 22nd May 2020 are shipped after the first bulk of pre-orders has been shipped. The exact date is not known yet due to various reasons, it may be a few weeks after the first bulk shipped. [https://forum.pine64.org/showthread.php?tid=9942 The forum] will be edited with updated information and you will receive a shipping notification when the device was shipped.&lt;br /&gt;
&lt;br /&gt;
=== What about import taxes? ===&lt;br /&gt;
Import taxes have to be paid by the buyer depending on the jurisdiction of the country of the buyer. Please check with your local laws if there are import taxes to pay and if so how to do the tax filing.&lt;br /&gt;
&lt;br /&gt;
== Accessories ==&lt;br /&gt;
&lt;br /&gt;
=== Protection ===&lt;br /&gt;
==== Which screen protector should I use? ====&lt;br /&gt;
&lt;br /&gt;
Protecting your screen is important, especially for devices like the PinePhone that doesn't have access to the newest glass technology.&lt;br /&gt;
The Braveheart and Community Editions of the PinePhone comes with a plastic film screen protector installed, and PINE64 sells a tempered glass screen protector [https://pine64.com/product/pinephone-tempered-glass-screen-protector/ in their store].&lt;br /&gt;
&lt;br /&gt;
You can also buy a third-party screen protector, as the screen protectors for the iPhone 11 Pro Max/XS Max fit the PinePhone pretty well based on [https://forum.pine64.org/showthread.php?tid=8458&amp;amp;pid=65409#pid65409 this] forum post.&lt;br /&gt;
&lt;br /&gt;
=== Batteries ===&lt;br /&gt;
==== I want a replacement battery, which one should I buy? ====&lt;br /&gt;
&lt;br /&gt;
Replacement batteries for US customers are available in the store.&lt;br /&gt;
&lt;br /&gt;
Currently the PinePhone battery is known to be compatible with replacement batteries for the Samsung J700. Specifically, models &amp;quot;EB-BJ700BBC&amp;quot; and &amp;quot;EB-BJ700BBE&amp;quot; are compatible with all PinePhone models, and &amp;quot;EB-BJ700CBE&amp;quot; is compatible with Community Editions [https://www.reddit.com/r/PINE64official/comments/kcof97/pinephone_replacement_battery_found_and_tested/gfrx4p2/?utm_source=reddit&amp;amp;utm_medium=web2x&amp;amp;context=3 after UBPorts] (due to plastic tabs on its bottom which only the newer phones [https://forum.pine64.org/showthread.php?tid=11901 have tolerance for]).&lt;br /&gt;
&lt;br /&gt;
=== External hardware ===&lt;br /&gt;
&lt;br /&gt;
==== Will PINE64 sell other add-ons made for the PinePhone? ====&lt;br /&gt;
&lt;br /&gt;
Yes, currently there is a keyboard case [https://forum.pine64.org/showthread.php?tid=8537&amp;amp;pid=55396#pid55396 with similarities to the Psion 5] which includes an internal battery, and a [https://www.pine64.org/2020/05/15/may-update-pinetab-pre-orders-pinephone-qi-charging-more/ Qi wireless charging] add-on planned, both of which PINE64 intends to directly sell. There is the potential for future add-ons such as a game pad, however that is currently just an idea and not in any way planned.&lt;br /&gt;
&lt;br /&gt;
==== Which 3rd party hardware can connect to my PinePhone? ====&lt;br /&gt;
&lt;br /&gt;
See [[PinePhone Hardware Accessory Compatibility]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Pinebook_Pro&amp;diff=10530</id>
		<title>Pinebook Pro</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Pinebook_Pro&amp;diff=10530"/>
		<updated>2021-05-25T18:22:26Z</updated>

		<summary type="html">&lt;p&gt;Aberts10: /* Webcam */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= User Guide =&lt;br /&gt;
== Introducing PineBook Pro == &lt;br /&gt;
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]&lt;br /&gt;
&lt;br /&gt;
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
It's compact and slim dimensions are 329mm x 220mm x 12mm (WxDxH).&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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). &lt;br /&gt;
&lt;br /&gt;
The keyboard and trackpad both use the USB 2.0 protocol.  The LCD panel uses eDP MiPi display protocol.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Software and OS Image Downloads ==&lt;br /&gt;
&lt;br /&gt;
=== Default Manjaro KDE Desktop Quick Start ===&lt;br /&gt;
&lt;br /&gt;
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.]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;codename&amp;quot; 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. &amp;quot;pbpro&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Pinebook Pro images ===&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
The list includes OS images and descriptions of:&lt;br /&gt;
&lt;br /&gt;
* [[PinebookPro_Software_Release#Manjaro ARM|Manjaro ARM]] (microSD and eMMC Boot)&lt;br /&gt;
* [[PinebookPro_Software_Release#Armbian|Armbian]] (microSD and eMMC Boot)&lt;br /&gt;
* [[PinebookPro_Software_Release#Twister OS|Twister OS]] (microSD Boot)&lt;br /&gt;
* [[PinebookPro_Software_Release#Fedora|Fedora]] (microSD and eMMC Boot)&lt;br /&gt;
* [[PinebookPro_Software_Release#Arch_Linux_ARM|Arch Linux]] (microSD and USB boot)&lt;br /&gt;
* [[PinebookPro_Software_Release#postmarketOS|Postmarket OS]] (microSD and USB boot)&lt;br /&gt;
* [[PinebookPro_Software_Release#Kali Linux|Kali Linux]] (microSD and USB boot)&lt;br /&gt;
* [[PinebookPro_Software_Release#Q4OS|Q4OS]] (microSD and eMMC Boot)&lt;br /&gt;
* [[PinebookPro_Software_Release#NetBSD|NetBSD]] (microSD and eMMC Boot)&lt;br /&gt;
* [[Pinebook_Pro_Software_Release#OpenBSD|OpenBSD release for ARM64]]&lt;br /&gt;
* [[Pinebook_Pro_Software_Release#Gentoo|Gentoo]]&lt;br /&gt;
&lt;br /&gt;
== Keyboard ==&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
The keyboard firmware binary can be flashed from userspace using the provided open source utility. &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;WARNING: DO NOT update the keyboard firmware before checking which keyboard IC your Pinebook Pro has.&amp;lt;/b&amp;gt; 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 &amp;lt;code&amp;gt;step-1&amp;lt;/code&amp;gt; is flashed, see the [https://reddit.com/r/PINE64official/comments/loq4db/very_disappointed/ Reddit SH61F83 thread].&lt;br /&gt;
&lt;br /&gt;
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. &lt;br /&gt;
&lt;br /&gt;
=== Typing special characters ===&lt;br /&gt;
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. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Character&lt;br /&gt;
!Key combination/sequence&lt;br /&gt;
|-&lt;br /&gt;
|Ä, Ö, Ü, ä, ö, ü&lt;br /&gt;
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]&lt;br /&gt;
|-&lt;br /&gt;
|µ&lt;br /&gt;
|[AltGr]+[m]&lt;br /&gt;
|-&lt;br /&gt;
|Ø, ø&lt;br /&gt;
|[AltGr]+[O], [AltGr]+[o]&lt;br /&gt;
|-&lt;br /&gt;
|@&lt;br /&gt;
|[AltGr]+[q] (as on the German layout)&lt;br /&gt;
|-&lt;br /&gt;
|ß&lt;br /&gt;
|[AltGr]+[s]&lt;br /&gt;
|-&lt;br /&gt;
|§&lt;br /&gt;
|[AltGr]+[S]&lt;br /&gt;
|-&lt;br /&gt;
|°&lt;br /&gt;
|[AltGr]+[)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Privacy Switches ===&lt;br /&gt;
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Privacy switch function and description&lt;br /&gt;
! Combination&lt;br /&gt;
! Effect&lt;br /&gt;
! Description&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | PINE64 logo key+F10&lt;br /&gt;
| Microphone Privacy switch&lt;br /&gt;
| CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | PINE64 logo key+F11&lt;br /&gt;
| WiFi Privacy switch&lt;br /&gt;
| NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.&lt;br /&gt;
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&amp;amp;pid=52645#pid52645 command line hack to bind/unbind]).&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | PINE64 logo key+F12&lt;br /&gt;
| Camera privacy switch&lt;br /&gt;
| CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled&lt;br /&gt;
| Can use tools like '''&amp;lt;code&amp;gt;lsusb&amp;lt;/code&amp;gt;''' to detect camera's presence. If not detected, check privacy switch.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Basic summary of replacing keyboard ===&lt;br /&gt;
&lt;br /&gt;
This guide is very basic and should be fleshed out with pictures.  There just isn't a list of steps anywhere else yet.&lt;br /&gt;
&lt;br /&gt;
''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).&lt;br /&gt;
&lt;br /&gt;
''Step 1'': The remove back back panel.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
''Step 2'': Places to unscrew.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
''Step 3'': Remove the battery.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
''Step 4'': Unplug the ribbon cables.&lt;br /&gt;
&lt;br /&gt;
There are several ribbon cables.  To remove, flip up the tab and gentle pull the ribbon out.&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* One cable runs between the trackpad and the mainboard.  Detach from both ends, and also set aside.&lt;br /&gt;
* 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.&lt;br /&gt;
* One cable from the LCD attaches near the lid hinge.  It should be just unplugged.&lt;br /&gt;
&lt;br /&gt;
''Step 5'': Detach microphone and speakers.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
''Step 6'': Remove mainboard and daughterboard.&lt;br /&gt;
&lt;br /&gt;
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.)&lt;br /&gt;
&lt;br /&gt;
''Step 7'': Detach the LCD panel.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
''Step 8'': Try Not To Break Your Trackpad, or, How I Learned To Love Things That Bend&lt;br /&gt;
&lt;br /&gt;
'''NOTE This section really feels like you're going to break something.'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
''Step 9'': Over the hill, trackpad goes into new shell.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
''Step 10'': Reattach the LCD panel.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
''Step 11'': Tape it out.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
''Step 12'': Board install.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
''Step 13'': Microphone and speaker install.&lt;br /&gt;
&lt;br /&gt;
Reattached the microphones and speakers to their respective areas, making sure that both are properly oriented - the speaker &amp;quot;out&amp;quot; faces up, and the microphone cables as connected must face up (these are opposite directions.)&lt;br /&gt;
&lt;br /&gt;
''Step 14'': Reattach other ribbon cables.&lt;br /&gt;
 &lt;br /&gt;
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.&lt;br /&gt;
 &lt;br /&gt;
''Step 15'': Reattach the battery, and final re-tape.&lt;br /&gt;
  &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
''Step 16'': Reattach the back panel.&lt;br /&gt;
 &lt;br /&gt;
Put the back panel back on, and reattach the 10 screws.&lt;br /&gt;
&lt;br /&gt;
''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.&lt;br /&gt;
&lt;br /&gt;
== Trackpad ==&lt;br /&gt;
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. &lt;br /&gt;
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' &lt;br /&gt;
&lt;br /&gt;
{{warning| DO NOT update the trackpad firmware before checking which keyboard IC your Pinebook Pro has.&amp;lt;/b&amp;gt; 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 &amp;lt;code&amp;gt;step-1&amp;lt;/code&amp;gt; is flashed. See [//old.reddit.com/r/PINE64official/comments/loq4db/very_disappointed/ Reddit SH61F83 thread].}}&lt;br /&gt;
&lt;br /&gt;
Please refer to the original documentation for details.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
Firmware update steps for both models are listed below.  &lt;br /&gt;
&lt;br /&gt;
What you will need:&lt;br /&gt;
&lt;br /&gt;
*Your Pinebook Pro fully charged or running off of mains power&lt;br /&gt;
*Connection to WiFi&lt;br /&gt;
*An external USB keyboard &amp;amp; mouse (or access to the Pinebook Pro via SSH)&lt;br /&gt;
&lt;br /&gt;
'''ISO Model''' &lt;br /&gt;
&lt;br /&gt;
From the terminal command line: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater&lt;br /&gt;
cd pinebook-pro-keyboard-updater&lt;br /&gt;
sudo apt-get install build-essential libusb-1.0-0-dev xxd&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd pinebook-pro-keyboard-updater&lt;br /&gt;
sudo ./updater step-1 iso&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 2 (after reboot)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd pinebook-pro-keyboard-updater&lt;br /&gt;
sudo ./updater step-2 iso&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''ANSI Model''' &lt;br /&gt;
&lt;br /&gt;
{{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!}}&lt;br /&gt;
&lt;br /&gt;
From the terminal command line: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater&lt;br /&gt;
cd pinebook-pro-keyboard-updater&lt;br /&gt;
sudo apt-get install build-essential libusb-1.0-0-dev xxd&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd pinebook-pro-keyboard-updater&lt;br /&gt;
sudo ./updater step-1 ansi&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 2 (after reboot)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd pinebook-pro-keyboard-updater&lt;br /&gt;
sudo ./updater step-2 ansi&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== X-Windows &amp;amp; trackpad settings ===&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;synclient MinSpeed=0.25&amp;lt;/pre&amp;gt;&lt;br /&gt;
You may experiment with different settings, but 0.25 was tested as helping noticeably.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To make the change persist across reboots, change the file &amp;lt;code&amp;gt;/etc/X11/xorg.conf&amp;lt;/code&amp;gt; similar to below:&lt;br /&gt;
&amp;lt;pre&amp;gt;    Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;touchpad catchall&amp;quot;&lt;br /&gt;
        Driver &amp;quot;synaptics&amp;quot;&lt;br /&gt;
        MatchIsTouchpad &amp;quot;on&amp;quot;&lt;br /&gt;
        MatchDevicePath &amp;quot;/dev/input/event*&amp;quot;&lt;br /&gt;
        Option &amp;quot;MinSpeed&amp;quot; &amp;quot;0.25&amp;quot;&lt;br /&gt;
    EndSection&amp;lt;/pre&amp;gt;&lt;br /&gt;
The line &amp;lt;code&amp;gt;Option &amp;quot;MinSpeed&amp;quot; &amp;quot;0.25&amp;quot;&amp;lt;/code&amp;gt; is the change.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Another forum user built on the above settings a little, and have found these to be very good:&lt;br /&gt;
&amp;lt;pre&amp;gt;synclient MinSpeed=0.25&lt;br /&gt;
synclient TapButton1=1&lt;br /&gt;
synclient TapButton2=3&lt;br /&gt;
synclient TapButton3=2&lt;br /&gt;
synclient FingerLow=30&lt;br /&gt;
synclient PalmDetect=1&lt;br /&gt;
synclient VertScrollDelta=64&lt;br /&gt;
synclient HorizScrollDelta=64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;FingerLow&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
You may find this config to be comfortable for daily use.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TabButton&amp;lt;/code&amp;gt; allows to just tab the touchpad instead of physically pressing it down (to get this click noise).&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;right mouse click&amp;lt;/code&amp;gt; is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:&lt;br /&gt;
&amp;lt;pre&amp;gt; synclient MaxTapTime=250 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Power Supply ==&lt;br /&gt;
* Input Power: 5V DC @ 3A&lt;br /&gt;
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack&lt;br /&gt;
* USB-C 5V, 15W PD quickcharge&lt;br /&gt;
* Only use one power input at a time, barrel jack OR USB-C&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
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: &lt;br /&gt;
&lt;br /&gt;
# 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&amp;amp;nbsp;Hz if there are any problems that prevent charging, such as the battery becoming too hot.&lt;br /&gt;
# 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). &lt;br /&gt;
# The green NumLock LED, above the keyboard.&lt;br /&gt;
# The green CapsLock LED, above the keyboard.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Webcam ==&lt;br /&gt;
{{Hint| You can use Cheese to test the Camera functionality}}&lt;br /&gt;
* Streaming video resolutions supported, (uncompressed):&lt;br /&gt;
** 320 x 240 &lt;br /&gt;
** 640 x 480&lt;br /&gt;
** 800 x 600&lt;br /&gt;
** 1280 x 720&lt;br /&gt;
** 1600 x 1200&lt;br /&gt;
* Still frame resolutions supported:&lt;br /&gt;
** 160 x 120&lt;br /&gt;
** 176 x 144&lt;br /&gt;
** 320 x 240&lt;br /&gt;
** 352 x 288 &lt;br /&gt;
** 640 x 480&lt;br /&gt;
** 800 x 600&lt;br /&gt;
** 1280 x 720&lt;br /&gt;
** 1600 x 1200&lt;br /&gt;
&lt;br /&gt;
== Microphones ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Microphones not working?'''&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;code&amp;gt;alsamixer&amp;lt;/code&amp;gt; from the command line, hit &amp;lt;i&amp;gt;F6&amp;lt;/i&amp;gt; and select the &amp;lt;i&amp;gt;es8316&amp;lt;/i&amp;gt;, 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]]).&lt;br /&gt;
&lt;br /&gt;
== Bluetooth and WiFi ==&lt;br /&gt;
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]&lt;br /&gt;
===Hardware Overview===&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Issues===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Wi-Fi Capabilities===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Be aware that Linux userspace utilities, such as &amp;lt;code&amp;gt;iw&amp;lt;/code&amp;gt;, 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.&lt;br /&gt;
&lt;br /&gt;
===Bluetooth Capabilities===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Disabling Bluetooth===&lt;br /&gt;
&lt;br /&gt;
To disable Bluetooth under Linux once:&lt;br /&gt;
&lt;br /&gt;
 sudo rfkill block bluetooth&lt;br /&gt;
&lt;br /&gt;
To confirm if Bluetooth under Linux is disabled:&lt;br /&gt;
&lt;br /&gt;
 rfkill&lt;br /&gt;
&lt;br /&gt;
To disable Bluetooth on boot (note: for distributions such as Manjaro XFCE see the step below):&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable rfkill-block@bluetooth&lt;br /&gt;
&lt;br /&gt;
To disable Bluetooth on certain distributions, such as Manjaro XFCE, right click on the Bluetooth panel icon, select &amp;lt;i&amp;gt;plugins&amp;lt;/i&amp;gt;, then &amp;lt;i&amp;gt;PowerManager&amp;lt;/i&amp;gt;, then &amp;lt;i&amp;gt;configuration&amp;lt;/i&amp;gt; and then deselect the &amp;lt;i&amp;gt;auto power on&amp;lt;/i&amp;gt; option&lt;br /&gt;
&lt;br /&gt;
== LCD Panel ==&lt;br /&gt;
* Model: BOE NV140FHM-N49&lt;br /&gt;
* 14.0&amp;quot; (35.56&amp;amp;nbsp;cm) diagonal size&lt;br /&gt;
* 1920x1080 resolution&lt;br /&gt;
* 60&amp;amp;nbsp;Hz refresh rate&lt;br /&gt;
* IPS technology&lt;br /&gt;
* 1000:1 contrast&lt;br /&gt;
* 250&amp;amp;nbsp;nit brightness&lt;br /&gt;
* 63% sRGB coverage&lt;br /&gt;
* 6-bit color&lt;br /&gt;
* 30-pin eDP connection&lt;br /&gt;
&lt;br /&gt;
Some people have tested hardware video decode using the following;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External ports list ==&lt;br /&gt;
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.&lt;br /&gt;
* Left side&lt;br /&gt;
** Barrel jack for power, (with LED)&lt;br /&gt;
** USB 3, Type A&lt;br /&gt;
** USB 3, Type C&lt;br /&gt;
* Right side&lt;br /&gt;
** USB 2, Type A&lt;br /&gt;
** Standard headset jack&lt;br /&gt;
** MicroSD card slot&lt;br /&gt;
&lt;br /&gt;
== Using the UART ==&lt;br /&gt;
[[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].]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&amp;amp;nbsp;V interface (such as the CH340, FTDI-232R, or PL2303, which are sold in both 3.3&amp;amp;nbsp;V and 5&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ lsusb&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you should find a line similar to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Serial output should now be accessible using screen, picocom or minicom (and others).&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
screen /dev/ttyUSB0 1500000&lt;br /&gt;
&lt;br /&gt;
picocom /dev/ttyUSB0 -b 1500000&lt;br /&gt;
&lt;br /&gt;
minicom -D /dev/ttyUSB0 -b 1500000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Old versions of U-Boot do not use the UART for console output. &amp;lt;strike&amp;gt;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.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using the optional NVMe adapter ==&lt;br /&gt;
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''' &amp;amp; '''M'''+'''B''' keyed devices, in both 2242 &amp;amp; 2280 physical sizes, the most common ones available. In addition, 2230 &amp;amp; 2260 are also supported, though NVMe devices that use those sizes are rare.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Please see [[Pinebook Pro Troubleshooting Guide#NVMe SSD issues|a separate section]] that describes reported issues with the NVMe drives in PineBook Pro.&lt;br /&gt;
&lt;br /&gt;
=== Installing the adapter ===&lt;br /&gt;
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.&lt;br /&gt;
(If necessary, it can be modified to work. There is [https://forum.pine64.org/showthread.php?tid=8322&amp;amp;pid=52700#pid52700 an unofficial tutorial on the forums] describing these modifications.)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
This is the link to the Pinebook Pro accessories in the store: [[https://pine64.com/?v=0446c16e2e66]]&lt;br /&gt;
&lt;br /&gt;
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].&lt;br /&gt;
&lt;br /&gt;
=== Post NVMe install power limiting ===&lt;br /&gt;
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.&lt;br /&gt;
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);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nvme id-ctrl /dev/nvme0&lt;br /&gt;
NVME Identify Controller:&lt;br /&gt;
...&lt;br /&gt;
ps    0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0&lt;br /&gt;
         rwt:0 rwl:0 idle_power:- active_power:-&lt;br /&gt;
ps    1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1&lt;br /&gt;
         rwt:1 rwl:1 idle_power:- active_power:-&lt;br /&gt;
ps    2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2&lt;br /&gt;
         rwt:2 rwl:2 idle_power:- active_power:-&lt;br /&gt;
ps    3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3&lt;br /&gt;
         rwt:3 rwl:3 idle_power:- active_power:-&lt;br /&gt;
ps    4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4&lt;br /&gt;
         rwt:4 rwl:4 idle_power:- active_power:-&lt;br /&gt;
&lt;br /&gt;
$ sudo nvme get-feature /dev/nvme0 -f 2&lt;br /&gt;
get-feature:0x2 (Power Management), Current value:00000000&lt;br /&gt;
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s&lt;br /&gt;
set-feature:02 (Power Management), value:0x000002&amp;lt;/pre&amp;gt;&lt;br /&gt;
Some NVMe SSDs don't appear to allow saving the setting with &amp;quot;-s&amp;quot; option. In those cases, leave off the &amp;quot;-s&amp;quot; and use a startup script to set the non-default power state at boot.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to test performance without saving the new power setting semi-permanantly, then leave off the &amp;quot;-s&amp;quot; option.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
There is another power saving feature for NVMes, APST, (Autonomous Power State Transitions). This performs the power saving &amp;amp; transitions based on usage. To check if you have a NVMe SSD with this feature;&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo nvme get-feature -f 0x0c -H /dev/nvme0&amp;lt;/pre&amp;gt;&lt;br /&gt;
Information for this feature, (on a Pinebook Pro), is a work in progress.&lt;br /&gt;
&lt;br /&gt;
=== Using as data drive ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Using as OS root drive ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The current boot order, per last testing, for this modified U-Boot is:&lt;br /&gt;
*MicroSD&lt;br /&gt;
*eMMC&lt;br /&gt;
*NVMe&lt;br /&gt;
&lt;br /&gt;
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&amp;amp;pid=53764#pid53764 the forum post.]&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;code&amp;gt;/boot&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; off the NVMe drive. So this may change in the future.)&lt;br /&gt;
&lt;br /&gt;
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].&lt;br /&gt;
&lt;br /&gt;
== Caring for the PineBook Pro ==&lt;br /&gt;
=== Bypass Cables ===&lt;br /&gt;
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].  &lt;br /&gt;
&lt;br /&gt;
'''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!'''&lt;br /&gt;
&lt;br /&gt;
WARNING: Do not connect the bypass cables with the battery connected.  Using the bypass cables with the battery connected can permanently damage the computer.&lt;br /&gt;
&lt;br /&gt;
=== Pinebook Service Step-by-Step Guides ===&lt;br /&gt;
&lt;br /&gt;
Under [[Pinebook_Service_Step_by_Step_Guides|Service Guides for Pinebook]] you can find instructions guides concerning disassembly of:&lt;br /&gt;
&lt;br /&gt;
* The installation process on Pinebook Pro similar to 14&amp;quot; Pinebook&lt;br /&gt;
* The installation process is the reverse order of removal guide:&lt;br /&gt;
** 14″ Pinebook Lithium Battery Pack Removal Guide&lt;br /&gt;
** 14″ Pinebook LCD Panel Screen Removal Guide&lt;br /&gt;
** 14″ Pinebook eMMC Module Removal Guide&lt;br /&gt;
&lt;br /&gt;
== Using the SPI flash device ==&lt;br /&gt;
&lt;br /&gt;
See [[Pinebook Pro SPI]] for details.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Here is some information on using the SPI flash device:&lt;br /&gt;
&lt;br /&gt;
* You need the kernel built with SPI flash device support, which will supply a device similar to: code&amp;gt;/dev/mtd0&amp;lt;/code&amp;gt;&lt;br /&gt;
* The Linux package below, will need to be available: &amp;lt;code&amp;gt;mtd-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
* You can then use this program from the package to write the SPI device: &amp;lt;code&amp;gt;flashcp &amp;amp;lt;filename&amp;amp;gt; /dev/mtd0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Software tuning guide =&lt;br /&gt;
Details on how to get the most out of a Pinebook Pro &amp;amp; its RK3399 SoC.&lt;br /&gt;
&lt;br /&gt;
== Customizing the Pinebook Pro's default Manjaro KDE system ==&lt;br /&gt;
=== Watching DRM content (Netflix, etc.) ===&lt;br /&gt;
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 &amp;quot;chromium-docker&amp;quot; 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:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo pacman -Sy chromium-docker&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Checking GPU capabilities ===&lt;br /&gt;
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 &amp;quot;mesa-demos&amp;quot; package with:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo pacman -Sy mesa-demos&amp;lt;/pre&amp;gt;&lt;br /&gt;
And then run:&lt;br /&gt;
&amp;lt;pre&amp;gt;glxinfo | grep OpenGL&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give detailed information about your graphics card and driver, useful for debugging.&lt;br /&gt;
&lt;br /&gt;
=== Better GPU compatibility and performance ===&lt;br /&gt;
For better graphics performance, you may install the &amp;quot;mesa-git&amp;quot; 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:&lt;br /&gt;
&amp;lt;pre&amp;gt;pacman -Sy mesa-git&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then you may reboot to load the newer driver.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[https://docs.mesa3d.org/bugs.html Reporting bugs] to the Mesa project will help make sure any problems are quickly fixed.&lt;br /&gt;
&lt;br /&gt;
=== OpenGL 3.3 support ===&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;kate /etc/environment&amp;lt;/pre&amp;gt;&lt;br /&gt;
And then at the bottom of the file, on a new line, add:&lt;br /&gt;
&amp;lt;pre&amp;gt;PAN_MESA_DEBUG=&amp;quot;gl3&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Install Anbox on Pinebook Pro Manjaro 20.10 ===&lt;br /&gt;
[https://www.youtube.com/watch?v=EU8_Q11dATs Youtube video on installing Anbox on Pienbook Pro Manjaro Build 20.10 by LivingLinux]&lt;br /&gt;
&lt;br /&gt;
== Customizing the Pinebook Pro's previously-default Debian system ==&lt;br /&gt;
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])&lt;br /&gt;
&lt;br /&gt;
=== Initial user changes, password, name, etc ===&lt;br /&gt;
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.&lt;br /&gt;
&lt;br /&gt;
* 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)&lt;br /&gt;
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal&lt;br /&gt;
* Login as root (login: root, password: root)&lt;br /&gt;
* Set a strong password for the root user using the following command and it's prompts:&lt;br /&gt;
&amp;lt;pre&amp;gt;# passwd (and follow prompts)&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Rename the rock user to your prefered username (replace myself with whatever you like):&lt;br /&gt;
&amp;lt;pre&amp;gt;# usermod -l myself -d /home/myself -m rock&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Rename the rock group to match your preferred username:&lt;br /&gt;
&amp;lt;pre&amp;gt;# groupmod -n myself rock&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Put your name in the account, (replace &amp;quot;John A Doe&amp;quot; with your name):&lt;br /&gt;
&amp;lt;pre&amp;gt;# chfn -f &amp;quot;John A Doe&amp;quot; myself&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Set a strong password for the normal user:&lt;br /&gt;
&amp;lt;pre&amp;gt;# passwd myself&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Log out of the text terminal:&lt;br /&gt;
&amp;lt;pre&amp;gt;# logout&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user&lt;br /&gt;
* Open text terminal to fix login error: &amp;quot;Configured directory for incoming files does not exist&amp;quot;;&lt;br /&gt;
&amp;lt;pre&amp;gt;$ blueman-services&amp;lt;/pre&amp;gt;&lt;br /&gt;
Select &amp;quot;Transfer&amp;quot; tab and set &amp;quot;Incoming Folder&amp;quot; to myself&lt;br /&gt;
OR&lt;br /&gt;
If adduser is in distro, this is MUCH easier&lt;br /&gt;
sudo adduser $USER ,, fill out requested data&lt;br /&gt;
Then,, sudo adduser $USER $GROUP,,, 1 group at a time&lt;br /&gt;
To see which groups to add,,, id $USER,  id rock&lt;br /&gt;
&lt;br /&gt;
=== Changing the default hostname ===&lt;br /&gt;
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo hostnamectl&lt;br /&gt;
   Static hostname: Debian-Desktop&lt;br /&gt;
         Icon name: computer&lt;br /&gt;
        Machine ID: dccbddccbdccbdccbdccbdccbdccbccb&lt;br /&gt;
           Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99&lt;br /&gt;
  Operating System: Debian GNU/Linux 9 (stretch)&lt;br /&gt;
            Kernel: Linux 4.4.210&lt;br /&gt;
      Architecture: arm64&amp;lt;/pre&amp;gt;&lt;br /&gt;
To change, use this, (with &amp;quot;My_Hostname&amp;quot; used as the example);&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo hostnamectl set-hostname My_Hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
Whence done, you can re-verify using the first example.&lt;br /&gt;
&lt;br /&gt;
Then you should backup and edit your &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; entry's name;&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`&lt;br /&gt;
$ sudo vi /etc/hosts&lt;br /&gt;
127.0.0.1	localhost&lt;br /&gt;
127.0.0.1	My_Hostname&lt;br /&gt;
::1		localhost ip6-localhost ip6-loopback&lt;br /&gt;
fe00::0		ip6-localnet&lt;br /&gt;
ff00::0		ip6-mcastprefix&lt;br /&gt;
ff02::1		ip6-allnodes&lt;br /&gt;
ff02::2		ip6-allrouters&lt;br /&gt;
127.0.1.1       linaro-alip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Disable Chromium browser's prompt for passphrase &amp;amp; password storage ===&lt;br /&gt;
&lt;br /&gt;
Perform the following steps:&lt;br /&gt;
&lt;br /&gt;
* On the tool bar, hover over the Chromium icon&lt;br /&gt;
* Using the right mouse button, select '''Properties'''&lt;br /&gt;
* In the '''Command:''' line section, add &amp;lt;code&amp;gt;--password-store=basic&amp;lt;/code&amp;gt; before the &amp;lt;code&amp;gt;%U&amp;lt;/code&amp;gt;&lt;br /&gt;
* Use the '''x Close''' button to save the change&lt;br /&gt;
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.&lt;br /&gt;
&lt;br /&gt;
=== Changing the boot splash picture ===&lt;br /&gt;
&lt;br /&gt;
The default boot splash picture can be replaced using the following instructions:&lt;br /&gt;
&lt;br /&gt;
* Install '''ImageMagick''' which will do the conversion&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo apt-get install imagemagick&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).&lt;br /&gt;
* From the directory in which your new image is stored run the following commands&lt;br /&gt;
* Convert your image to the bootsplash raw format using imagemagick convert.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a backup copy of your current splash screen&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Copy your new splash screen into place&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo cp splash.fb /usr/share/backgrounds/splash.fb&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Set the correct permissions on the splash.fb file&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo chmod 644 /usr/share/backgrounds/splash.fb&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed&lt;br /&gt;
&lt;br /&gt;
=== Watching Amazon Prime videos with Chromium ===&lt;br /&gt;
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;&lt;br /&gt;
&amp;lt;pre&amp;gt;chromium-browser --user-agent=&amp;quot;Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
There may be more tweaks needed.&lt;br /&gt;
&lt;br /&gt;
=== Enabling text boot time messages ===&lt;br /&gt;
&lt;br /&gt;
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;&lt;br /&gt;
&lt;br /&gt;
==== Debian ====&lt;br /&gt;
* Backup and edit the U-Boot configuration file:&lt;br /&gt;
&lt;br /&gt;
 cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`&lt;br /&gt;
 chmod a-w /etc/default/u-boot.`date +%Y%m%d`&lt;br /&gt;
 vi /etc/default/u-boot&lt;br /&gt;
&lt;br /&gt;
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.&lt;br /&gt;
&lt;br /&gt;
* Update the U-Boot configuration:&lt;br /&gt;
&lt;br /&gt;
 u-boot-update&lt;br /&gt;
&lt;br /&gt;
* Test and verify you get what you think you should be seeing.&lt;br /&gt;
&lt;br /&gt;
==== Manjaro ====&lt;br /&gt;
* Backup and edit the U-Boot configuration file:&lt;br /&gt;
&lt;br /&gt;
 cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`&lt;br /&gt;
 chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`&lt;br /&gt;
 vi /boot/extlinux/extlinux.conf&lt;br /&gt;
&lt;br /&gt;
* Change '''console=ttyS2,1500000''' to '''console=tty1'''&lt;br /&gt;
* Remove the '''bootsplash.bootfile''' option and it's parameter.&lt;br /&gt;
* You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.&lt;br /&gt;
* Leave everything else alone.&lt;br /&gt;
* Test and verify you get what you think you should be seeing.&lt;br /&gt;
&lt;br /&gt;
== Improving readability ==&lt;br /&gt;
&lt;br /&gt;
Some people find that a 14&amp;quot; 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.&amp;lt;br&amp;gt;&lt;br /&gt;
* Increase the font size&lt;br /&gt;
* Use a font with more pronounced features&lt;br /&gt;
* Increase the various window manager sizes (e.g. increase the height of the tool bar)&lt;br /&gt;
* Change the color scheme to be easier on the eyes. Higher contrast can help usability.&lt;br /&gt;
* Change the window manager's decorations (e.g. use larger icons)&lt;br /&gt;
* Use a workspace manager, with one application per workspace&lt;br /&gt;
* When at home or office, use an external monitor&lt;br /&gt;
* Change the X-Windows DPI&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
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:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]&lt;br /&gt;
&lt;br /&gt;
== Chromium tweaks ==&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
&lt;br /&gt;
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--disable-low-res-tiling \&lt;br /&gt;
--num-raster-threads=6 \&lt;br /&gt;
--profiler-timing=0 \&lt;br /&gt;
--disable-composited-antialiasing \&lt;br /&gt;
--test-type \&lt;br /&gt;
--show-component-extension-options \&lt;br /&gt;
--ignore-gpu-blacklist \&lt;br /&gt;
--use-gl=egl \&lt;br /&gt;
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \&lt;br /&gt;
--ppapi-flash-version=32.0.0.255 \&lt;br /&gt;
--enable-pinch \&lt;br /&gt;
--flag-switches-begin \&lt;br /&gt;
--enable-gpu-rasterization \&lt;br /&gt;
--enable-oop-rasterization \&lt;br /&gt;
--flag-switches-end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== gVim has performance issue ==&lt;br /&gt;
It appears that using GTK3 can cause very slow scrolling, while Vim in a terminal window works fine.&amp;lt;br/&amp;gt;&lt;br /&gt;
Simply revert back to using GTK2, (how to do so is somewhat Linux distro-specific).&lt;br /&gt;
&lt;br /&gt;
Another solution may be to run gVim with &lt;br /&gt;
&lt;br /&gt;
 GDK_RENDERING=image&lt;br /&gt;
&lt;br /&gt;
environment variable set. It seems that this improves the performance by reverting back to software-only rendering.&lt;br /&gt;
&lt;br /&gt;
== Kernel options ==&lt;br /&gt;
Here are some Pinebook Pro &amp;amp; its RK3399 SoC Linux specific options. If kernel version, (or version range specific), it should list that information in the description.&lt;br /&gt;
&lt;br /&gt;
To see if a specific feature is enabled in the current kernel, you can use something like this;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ zgrep -i rockchip_pcie /proc/config.gz&lt;br /&gt;
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set&lt;br /&gt;
CONFIG_PHY_ROCKCHIP_PCIE=m&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If it's listed as &amp;lt;code&amp;gt;=m&amp;lt;/code&amp;gt;, then it's a module. You can see if the module is loaded with;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsmod | grep -i rockchip_pcie&lt;br /&gt;
phy_rockchip_pcie      16384  0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Hardware video decoding ===&lt;br /&gt;
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.&amp;lt;br&amp;gt;&lt;br /&gt;
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module &amp;lt;code&amp;gt;rk-vcodec&amp;lt;/code&amp;gt;. To check, something like this can be used:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsmod | grep rk-vcodec&lt;br /&gt;
    or&lt;br /&gt;
$ zgrep RK_VCODEC /proc/config.gz&lt;br /&gt;
CONFIG_RK_VCODEC=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Newer systems may use a different option as in the configuration below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ zgrep HANTRO /proc/config.gz&lt;br /&gt;
CONFIG_VIDEO_HANTRO=m&lt;br /&gt;
CONFIG_VIDEO_HANTRO_ROCKCHIP=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting guide =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Please, have a look at the [[Pinebook Pro Troubleshooting Guide]], which details a number of issues you may encounter.&lt;br /&gt;
&lt;br /&gt;
= Hardware/Accessory Compatibility =&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* [[Pinebook Pro Hardware Accessory Compatibility#NVMe SSD drives|NVMe SSD drives]]&lt;br /&gt;
* [[Pinebook Pro Hardware Accessory Compatibility#USB hardware|USB hardware]]&lt;br /&gt;
* [[Pinebook Pro Hardware Accessory Compatibility#USB C alternate mode DP|USB-C alternate mode DP]]&lt;br /&gt;
* [[Pinebook Pro Hardware Accessory Compatibility#Other hardware|Other hardware]]&lt;br /&gt;
&lt;br /&gt;
= Technical Reference =&lt;br /&gt;
== Disassembly and Reassembly  == &lt;br /&gt;
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]&lt;br /&gt;
&lt;br /&gt;
There are a few '''mandatory''' precautions to be taken:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[File:PinebookProScrewGuide.png|400px|thumb|right|Pinebook Pro external screws (this particular unit has suffered damage on screw (4)L)]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Internal Layout ==&lt;br /&gt;
&lt;br /&gt;
=== Main chips ===&lt;br /&gt;
* RK3399 system-on-chip (1)&lt;br /&gt;
* LPDDR4 SDRAM (21)&lt;br /&gt;
* SPI NOR flash memory (29)&lt;br /&gt;
* eMMC flash memory (26)&lt;br /&gt;
* WiFi/BT module (27)&lt;br /&gt;
&lt;br /&gt;
=== Mainboard Switches and Buttons ===&lt;br /&gt;
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. &lt;br /&gt;
&lt;br /&gt;
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). &lt;br /&gt;
&lt;br /&gt;
[[File:PBPL_S.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Key Internal Parts ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Numbered parts classification and description&lt;br /&gt;
! Number&lt;br /&gt;
! Type&lt;br /&gt;
! Descriptor&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 1&lt;br /&gt;
| Component || RK3399 System-On-Chip&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 2&lt;br /&gt;
| Socket || PCIe x4 slot for optional NVMe adapter&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 3&lt;br /&gt;
| Socket || Speakers socket&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 4&lt;br /&gt;
| Socket || Trackpad socket&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 5&lt;br /&gt;
| Component || Left speaker &lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 6&lt;br /&gt;
| Connector || Power bridge connector &lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 7&lt;br /&gt;
| Socket || Keyboard Socket&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 8&lt;br /&gt;
| Component || Optional NVMe SSD adapter&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 9&lt;br /&gt;
| Switch || UART/Audio switch - outputs UART via headphone jack&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 10&lt;br /&gt;
| Socket || Power bridge socket&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 11&lt;br /&gt;
| Socket || Battery socket&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 12&lt;br /&gt;
| Component || Trackpad&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 13&lt;br /&gt;
| Component || Battery&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 14&lt;br /&gt;
| Component || Right speaker&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 15&lt;br /&gt;
| Socket || MicroSD card slot&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 16&lt;br /&gt;
| Socket || Headphone / UART jack&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 17&lt;br /&gt;
| Socket || USB 2.0 Type A&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 18&lt;br /&gt;
| Socket || Daughterboard-to-mainboard ribbon cable socket&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 19&lt;br /&gt;
| Cable || Daughterboard-to-mainboard ribbon cable&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 20&lt;br /&gt;
| Component || microphone&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 21&lt;br /&gt;
| Component || LPDDR4 RAM&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 22&lt;br /&gt;
| Socket || Mainboard-to-daughterboard ribbon cable socket&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 23&lt;br /&gt;
| Socket || Microphone socket&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 24&lt;br /&gt;
| Switch || Switch to hardware disable eMMC&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 25&lt;br /&gt;
| Antenna || BT/WiFI antenna&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 26&lt;br /&gt;
| Component || eMMC flash memory module &lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 27&lt;br /&gt;
| Component ||BT/WiFi module chip&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 28&lt;br /&gt;
| Buttons || Reset and recovery buttons&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 29&lt;br /&gt;
| Component || SPI flash storage&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 30&lt;br /&gt;
| Socket || eDP LCD socket&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 31&lt;br /&gt;
| Socket || Power in barrel socket&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 32&lt;br /&gt;
| Socket || USB 3.0 Type A&lt;br /&gt;
|-&lt;br /&gt;
! scope=row | 33&lt;br /&gt;
| Socket || USB 3.0 Type C &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Smallboard detailed picture ===&lt;br /&gt;
&lt;br /&gt;
[[File:Pinebook_pro_smallboard.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Bootable Storage ==&lt;br /&gt;
&lt;br /&gt;
=== Boot sequence details ===&lt;br /&gt;
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.&amp;lt;br&amp;gt;&lt;br /&gt;
[[RK3399_boot_sequence|RK3399 boot sequence]]&lt;br /&gt;
&lt;br /&gt;
=== Boot devices ===&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(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.)&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
in a /boot partition on the eMMC.&lt;br /&gt;
&lt;br /&gt;
=== eMMC information ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The eMMC storage will show up as multiple block devices:&lt;br /&gt;
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB&lt;br /&gt;
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB&lt;br /&gt;
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB&lt;br /&gt;
*mmcblk1 - This block contains the user areas&lt;br /&gt;
&lt;br /&gt;
Only the last is usable as regular storage device in the Pinebook Pro.&lt;br /&gt;
The device number of &amp;quot;1&amp;quot; shown above may vary, depending on kernel.&lt;br /&gt;
&lt;br /&gt;
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user &amp;quot;root&amp;quot;;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo fe330000.sdhci &amp;gt;/sys/bus/platform/drivers/sdhci-arasan/unbind&lt;br /&gt;
echo fe330000.sdhci &amp;gt;/sys/bus/platform/drivers/sdhci-arasan/bind&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Case Dimensions and Data ==&lt;br /&gt;
* Dimensions: 329mm x 220mm x 12mm (WxDxH)&lt;br /&gt;
* Weight: 1.26Kg&lt;br /&gt;
* Screws&lt;br /&gt;
** Philips head type screws&lt;br /&gt;
** M2 flat head machine screws (measurements in mm)&lt;br /&gt;
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1,  Overall length - 3.05&lt;br /&gt;
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85&lt;br /&gt;
* Rubber Feet&lt;br /&gt;
** 18mm diameter&lt;br /&gt;
** 3mm height&lt;br /&gt;
** Dome shaped&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specification ==&lt;br /&gt;
[[File:Rockchip_RK3399.png|right]]&lt;br /&gt;
* Based on Rockchip RK3399&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU&lt;br /&gt;
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)&lt;br /&gt;
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
** ARMv8 Cryptography Extensions&lt;br /&gt;
** VFPv4 floating point unit supporting single and double-precision operations&lt;br /&gt;
** Hardware virtualization support&lt;br /&gt;
** TrustZone technology support&lt;br /&gt;
** Full CoreSight debug solution&lt;br /&gt;
** One isolated voltage domain to support DVFS&lt;br /&gt;
* Cortex-A72 (big cluster):&lt;br /&gt;
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]&lt;br /&gt;
** Superscalar, variable-length, out-of-order pipeline&lt;br /&gt;
** L1 cache 48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
** L2 cache 1024KB for big cluster &lt;br /&gt;
* Cortex-A53 (little cluster):&lt;br /&gt;
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]&lt;br /&gt;
** In-order pipeline with symmetric dual-issue of most instructions &lt;br /&gt;
** L1 cache 32KB Icache and 32KB Dcache for each A53&lt;br /&gt;
** L2 cache 512KB for little cluster&lt;br /&gt;
* Cortex-M0 (control processors):&lt;br /&gt;
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]&lt;br /&gt;
** Two Cortex-M0 cooperate with the central processors&lt;br /&gt;
** Architecture: Armv6-M&lt;br /&gt;
** Thumb/Thumb2 instruction set&lt;br /&gt;
** 32 bit only&lt;br /&gt;
&lt;br /&gt;
=== GPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]&lt;br /&gt;
* 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.&lt;br /&gt;
* Frequency 	650MHz &lt;br /&gt;
* Throughput 	1300Mtri/s, 10.4Gpix/s&lt;br /&gt;
* Graphic interface standards:&lt;br /&gt;
** 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)&lt;br /&gt;
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)&lt;br /&gt;
** OpenCL™ 1.1, 1.2&lt;br /&gt;
** DirectX® 11 FL11_1&lt;br /&gt;
** RenderScript™&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory:&lt;br /&gt;
** LPDDR4&lt;br /&gt;
** 800MHz, (limited by RK3399)&lt;br /&gt;
** Dual memory channels on the CPU, each 32 bits wide&lt;br /&gt;
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel&lt;br /&gt;
** 4GB as a single 366 pin mobile RAM chip&lt;br /&gt;
* Storage Memory: &lt;br /&gt;
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)&lt;br /&gt;
** eMMC version 5.1, HS400, 8 bit on RK3399 side&lt;br /&gt;
** Bootable&lt;br /&gt;
* SPI flash:&lt;br /&gt;
** [[Pinebook Pro SPI]]&lt;br /&gt;
** 128Mbit / 16MByte&lt;br /&gt;
** 1 bit interface&lt;br /&gt;
** Bootable, (first boot device, ahead of eMMC &amp;amp; SD card)&lt;br /&gt;
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.&lt;br /&gt;
&lt;br /&gt;
=== Video out ===&lt;br /&gt;
* USB-C Alt mode DP&lt;br /&gt;
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
* MicroSD card:&lt;br /&gt;
** Bootable&lt;br /&gt;
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.&lt;br /&gt;
** Version SD3.0, (MMC 4.5), up to 50MB/s&lt;br /&gt;
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS&lt;br /&gt;
* USB ports:&lt;br /&gt;
** 1 x USB 2.0 Type-A Host Port, bootable&lt;br /&gt;
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable&lt;br /&gt;
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable&lt;br /&gt;
** 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.&lt;br /&gt;
* Headphone jack switchable to UART console mux circuit&lt;br /&gt;
&lt;br /&gt;
== Additional hardware ==&lt;br /&gt;
Hardware that is not part of the SoC.&lt;br /&gt;
&lt;br /&gt;
=== Battery ===&lt;br /&gt;
* Lithium Polymer Battery (10,000 mAH)&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
* 14.0&amp;quot; 1920x1080 IPS LCD panel&lt;br /&gt;
=== Lid closed magnet ===&lt;br /&gt;
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.&lt;br /&gt;
* The magnet is located on the LCD panel right side, around 1.5 inches up measure from bottom edge.&lt;br /&gt;
&lt;br /&gt;
=== Webcam ===&lt;br /&gt;
* Internal USB attached Webcam&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* 3.5mm stereo earphone/microphone plug&lt;br /&gt;
* Built-in microphone&lt;br /&gt;
* Built-in stereo speakers:&lt;br /&gt;
** Oval in design&lt;br /&gt;
** 3 mm high x 20 mm x 30 mm&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi:&lt;br /&gt;
** 802.11 b/g/n/ac&lt;br /&gt;
** Dual band: 2.4Ghz &amp;amp; 5Ghz&lt;br /&gt;
** Single antenna&lt;br /&gt;
* Bluetooth 5.0&lt;br /&gt;
&lt;br /&gt;
=== Optional NVMe adapter ===&lt;br /&gt;
* PCIe 2.0, 5&amp;amp;nbsp;GT/s per lane&lt;br /&gt;
* Four PCIe lanes, which can not be bifurcated, but can be used with one- or two-lane NVMe cards&lt;br /&gt;
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too&lt;br /&gt;
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260&lt;br /&gt;
* Power: 2.5&amp;amp;nbsp;W continuous, 8.25&amp;amp;nbsp;W peak momentary&lt;br /&gt;
* Does not support SATA M.2 cards&lt;br /&gt;
* Does not support USB M.2 cards&lt;br /&gt;
&lt;br /&gt;
== Pinebook Pro Schematics and Certifications ==&lt;br /&gt;
* Pinebook Pro Main Board Schematic And Silkscreen:&lt;br /&gt;
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]&lt;br /&gt;
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]&lt;br /&gt;
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]&lt;br /&gt;
* Pinebook Pro Daughter Board Schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]&lt;br /&gt;
* Optional Pinebook Pro NVMe Adapter Schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]&lt;br /&gt;
* Serial Console Earphone Jack Pinout:&lt;br /&gt;
** [https://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]&lt;br /&gt;
* Pinebook Pro Case:&lt;br /&gt;
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]&lt;br /&gt;
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]&lt;br /&gt;
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]&lt;br /&gt;
* Pinebook Pro Certifications:&lt;br /&gt;
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
* Rockchip RK3399 SoC information:&lt;br /&gt;
** [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]&lt;br /&gt;
** [https://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet v2.1]&lt;br /&gt;
** [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.4%20Part1.pdf Rockchip RK3399 Technical Reference Manual v1.4, part 1]&lt;br /&gt;
** [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]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet v0.8]&lt;br /&gt;
* LPDDR4 SDRAM (366-pin BGA):&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
* SPI NOR Flash information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (updated)]&lt;br /&gt;
* Wireless and Bluetooth information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]&lt;br /&gt;
* Audio codec:&lt;br /&gt;
** [http://www.everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec Datasheet]&lt;br /&gt;
* LCD panel:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14&amp;quot; 1920x1080 IPS LCD Panel datasheet]&lt;br /&gt;
* USB-related information:&lt;br /&gt;
** Internal USB 2.0 hub: [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub Datasheet]&lt;br /&gt;
** USB Type-C Controller: [https://www.onsemi.com/pub/Collateral/FUSB302-D.PDF ON Semiconductor FUSB302 Datasheet]&lt;br /&gt;
* Touchpad information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf PineBook Pro Touchpad Specification]&lt;br /&gt;
* Keyboard information:&lt;br /&gt;
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]&lt;br /&gt;
** US ANSI: XK-HS002 MB27716023&lt;br /&gt;
* Full HD camera sensor:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification (in Chinese)]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Datasheet]&lt;br /&gt;
* Battery-related information:&lt;br /&gt;
** Battery charging IC: [https://www.ti.com/lit/ds/symlink/bq24171.pdf?ts=1607068456825&amp;amp;ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FBQ24171 Texas Instruments BQ24171 Datasheet]&lt;br /&gt;
** Battery monitoring IC: [https://cdn.datasheetspdf.com/pdf-down/C/W/2/CW2015-Cellwise.pdf Cellwise CW2015 Datasheet]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification]&lt;br /&gt;
* Power path device:&lt;br /&gt;
** [https://wiki.pine64.org/images/9/99/Sis412dn.pdf N-MOS / MOSFET]&lt;br /&gt;
* NVMe adapter:&lt;br /&gt;
** [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)]&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The &amp;quot;first batch&amp;quot; (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111]&lt;br /&gt;
&lt;br /&gt;
=Skinning and Case Customization=&lt;br /&gt;
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.&lt;br /&gt;
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]&lt;br /&gt;
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]&lt;br /&gt;
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]&lt;br /&gt;
&lt;br /&gt;
= Other Resources =&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]&lt;br /&gt;
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (no login required to read)&lt;br /&gt;
* IRC Server: irc.pine64.org Channel: PineBook&lt;br /&gt;
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]&lt;br /&gt;
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]&lt;br /&gt;
* [https://opensource.rock-chips.com/ Rockchip Open Source Wiki]&lt;br /&gt;
* [[Pinebook Pro/Freepascal and Lazarus IDE on Manjaro|Freepascal and Lazarus IDE on Pinebook Pro]]&lt;br /&gt;
&lt;br /&gt;
[[Category:PineBook Pro]]&lt;br /&gt;
[[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Aberts10</name></author>
	</entry>
</feed>