<?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=Ian-S-McB</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=Ian-S-McB"/>
	<link rel="alternate" type="text/html" href="https://wiki.pine64.org/wiki/Special:Contributions/Ian-S-McB"/>
	<updated>2026-04-22T09:36:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=SOEDGE&amp;diff=8254</id>
		<title>SOEDGE</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=SOEDGE&amp;diff=8254"/>
		<updated>2020-11-16T20:24:16Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Add link to SoC product page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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 Vivantee]&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;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory Variants: 2GB DDR4.&lt;br /&gt;
* Storage Memory: 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;
* 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;
* 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_Baseboard%20Schematic%20Model%20A-20200513.pdf SOEdge Model &amp;quot;A&amp;quot; Baseboard Schematic 20200513 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SoEdge_Baseboard_PCB_layout_Model_A2020-05-31.pdf SOEdge Model &amp;quot;A&amp;quot; Baseboard PCB Layout 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;
** [https://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;
** 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;
** 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;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SOEdge]] [[Category:SOPine Clusterboard]] [[Category:SOEdge Baseboard]] [[Category:Rockchip RK1808]]&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=SOEDGE&amp;diff=8253</id>
		<title>SOEDGE</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=SOEDGE&amp;diff=8253"/>
		<updated>2020-11-16T20:21:55Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Fix CPU spec link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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 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 Vivantee]&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;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory Variants: 2GB DDR4.&lt;br /&gt;
* Storage Memory: 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;
* 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;
* 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_Baseboard%20Schematic%20Model%20A-20200513.pdf SOEdge Model &amp;quot;A&amp;quot; Baseboard Schematic 20200513 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/SOEdge/SoEdge_Baseboard_PCB_layout_Model_A2020-05-31.pdf SOEdge Model &amp;quot;A&amp;quot; Baseboard PCB Layout 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;
** [https://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;
** 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;
** 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;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SOEdge]] [[Category:SOPine Clusterboard]] [[Category:SOEdge Baseboard]] [[Category:Rockchip RK1808]]&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Pinebook_Pro_Hardware_Accessory_Compatibility&amp;diff=6996</id>
		<title>Pinebook Pro Hardware Accessory Compatibility</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Pinebook_Pro_Hardware_Accessory_Compatibility&amp;diff=6996"/>
		<updated>2020-09-10T19:32:32Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Fix format typo in last edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Please test as many things as you can find with your [[Pinebook Pro]] and share the results here. Some devices which should work don't!&lt;br /&gt;
&lt;br /&gt;
= Storage =&lt;br /&gt;
&lt;br /&gt;
== NVMe SSD drives ==&lt;br /&gt;
Note that only PCIe type M.2 drives will work. Any SATA or USB type M.2 card will NOT work.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Size || Hardware IDs || Result || Notes || Power options&amp;lt;br/&amp;gt;Active only || Save&amp;lt;br/&amp;gt;power&amp;lt;br/&amp;gt;setting?&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Kingston A2000 || 250 GB || SA2000M8250G || good ||  || PS 0: 9.00W&amp;lt;br/&amp;gt;PS 1: 4.60W&amp;lt;br/&amp;gt;PS 2: 3.80W&amp;lt;br/&amp;gt;PS 3: 0.045W&amp;lt;br/&amp;gt;PS 4: 0.004W&amp;lt;br/&amp;gt;APSTE: enabled by default || Yes&lt;br /&gt;
|-&lt;br /&gt;
| 2242 || Toshiba OCZ RC 100 || 240 GB || RC100-M22242-240G || good || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2242 || Lexar NM520 || 256 GB || LNM520-256RBNA || good ||For some data on power use and performance, see [https://forum.pine64.org/showthread.php?tid=9029 here.]  || PS 0: 3.05W&amp;lt;br/&amp;gt;PS 1: 2.44W&amp;lt;br/&amp;gt;PS 2: 2.02W || No.  See [https://forum.pine64.org/showthread.php?tid=8737&amp;amp;pid=56481#pid56481 workaround].&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || XPS SX8200 || 512 GB || ASX8200PNP-512GT-C || good || Performed [https://forum.pine64.org/showthread.php?tid=8322 these] steps for physical installation.  Currently rooting from drive. || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Intel 660p M.2 || 512 GB || SSDPEKNW512G8X1 || good || PS 1 (2.70W) will work without issues, even under heavy load. Recommended over PS 2, as PS 2 will incur an additional 80% performance penalty. APSTE shows enabled but drive does not support it. || PS 0: 3.50W&amp;lt;br/&amp;gt;PS 1: 2.70W&amp;lt;br/&amp;gt;PS 2: 2.00W || No &lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Intel 660p M.2 || 1 TB || SSDPEKNW010T8X1 || good || || PS 0: 4.00W&amp;lt;br/&amp;gt;PS 1: 3.00W&amp;lt;br/&amp;gt;PS 2: 2.20W&amp;lt;br/&amp;gt;APSTE Disabled by default || No&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Intel 660p M.2 || 2 TB || SSDPEKNW020T8 || good || [https://forum.pine64.org/showthread.php?tid=7524&amp;amp;pid=49300#pid49300 Performance tests results] || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Intel 760p M.2 || 128 GB || SSDPEKKW128G8 || good || Firmware Revision 004C || PS 0: 9.00W&amp;lt;br/&amp;gt;PS 1: 4.60W&amp;lt;br/&amp;gt;PS 2: 3.80W&amp;lt;br/&amp;gt;PS 3: 0.045W&amp;lt;br/&amp;gt;PS 4: 0.004W&amp;lt;br/&amp;gt;APSTE: disabled by default with 4.4 kernel (mrfixit Debian), enabled by default with 5.6 kernel (Manjaro KDE) || Yes&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Intel 760p M.2 || 256 GB || SSDPEKKW256G8 || good || Firmware Revision 004C || PS 0: 9.00W&amp;lt;br/&amp;gt;PS 1: 4.60W&amp;lt;br/&amp;gt;PS 2: 3.80W&amp;lt;br/&amp;gt;PS 3: 0.045W&amp;lt;br/&amp;gt;PS 4: 0.004W&amp;lt;br/&amp;gt;Need to use lower power. || &lt;br /&gt;
|-&lt;br /&gt;
| 2280 || integral 256GB SSD M.2 2280 NVME || 256 GB || INSSD256GM280NM1 || usable ||  || PS 0: 9.00W || No&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Samsung 970 EVO Plus || 250 GB || MZ-V7S250BW || fail || Tested on Manjaro-ARM as root drive. Limited to PS 2 and Volatile Write Cache off gives the most stable results, but it will still hang on a hdparm test. || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Samsung 970 EVO Plus || 500 GB || MZ-V7S500 || fail || Too power hungry? || PS 0: 6.2W&amp;lt;br/&amp;gt;PS 1: 4.3W&amp;lt;br/&amp;gt;PS 2: 2.1W ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Samsung 970 EVO || 1 TB || MZ-V7E1T0BW || fail || Too power hungry? || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Corsair MP300 || 120 GB || CSSD-F120GBMP300 || good || || PS 0: 3.00W&amp;lt;br/&amp;gt;PS 1: 2.00W&amp;lt;br/&amp;gt;PS 2: 2.00W&amp;lt;br/&amp;gt;PS 3: 0.1W&amp;lt;br/&amp;gt;PS 4: 0.005W&amp;lt;br/&amp;gt;APSTE Disabled by default ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Silicon Power P34A60 || 1TB || SP001TBP34A60M28 || Usable || Power eager, but doesn't seem to use all 9W all the time, only under heavy I/O || PS 0: 9W || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Silicon Power P34A60 || 256 GB || SPCC M.2 PCIe SSD || detected || ASIN B07ZH6QR8Q &amp;quot;Silicon Power PCIe M.2 NVMe SSD 256GB Gen3x4&amp;quot; / PCIe A60 || PS 0: 6.77W&amp;lt;br/&amp;gt; PS 1: 5.71W&amp;lt;br/&amp;gt; PS 2: 5.19W&amp;lt;br/&amp;gt;APSTE Enabled by default || No&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Silicon Power P34A60 || 256 GB || ??? || fail || Isn't detected || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Sabrent Rocket || 256 GB || SB-ROCKET-256 || good || || || No&lt;br /&gt;
|-&lt;br /&gt;
| 2242 || Sabrent Rocket Nano || 512 GB || SB-1342-512 || good* || No touchpad issues, didn't trim NVME adapter board.&amp;lt;br/&amp;gt;(*Might be too power hungry. More testing needed.) || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || MyDigitalSSD SBXe || 960 GB || || good || || APST enabled&amp;lt;br/&amp;gt;Power states N/A || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 2280 || HP SSD EX900 || 250GB || || good || No low-power modes available || || &lt;br /&gt;
|-&lt;br /&gt;
| 2280 || HP SSD EX950  || 512GB || || good || Unsure about low-power modes || || &lt;br /&gt;
|-&lt;br /&gt;
| 2280 || WD BLUE SN550 || 1TB || WDC WDS100T2B0C-00PXH0 || WARNING &amp;lt;br /&amp;gt;good || WARNING mine was SATA and does NOT work!&amp;lt;br /&amp;gt; Booted successfully from NVMe (Bionic MATE) || PS 0: 3.50W&amp;lt;br/&amp;gt;PS 1: 2.70W&amp;lt;br/&amp;gt;PS 2: 1.90W&amp;lt;br/&amp;gt;APSTE Disabled by default || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 2280 || WD Blue SN500 || 500GB || WDS500G1B0C || fail || Works OK on power state 2 (2.5W), but hangs the system whenever there is intense IO (peak draw) on the drive || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2242 || WD PC SN520 || 256GB || - || fail || Power LED Flashes. Nothing else happens. || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || WD BLACK SN750 || 250GB || WDS250G3X0C-00SJG0 || good || No touchpad issues, didn't trim NVME adapter board. || APSTE disabled by default&amp;lt;br/&amp;gt; PS 0: 5.00W&amp;lt;br/&amp;gt;PS 1: 3.50W&amp;lt;br/&amp;gt;PS 2: 3.00W||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || WD BLACK SN750 || 500GB || WDS500G3X0C-00SJG0 || good || No tp issues. had to charge battery for 20% initially. || APSTE disabled by default&amp;lt;br/&amp;gt; PS 0: 5.50W&amp;lt;br/&amp;gt;PS 1: 3.50W&amp;lt;br/&amp;gt;PS 2: 3.00W&amp;lt;br/&amp;gt;PS 3: 0.07W&amp;lt;br/&amp;gt;PS 4: 0.0025W||&lt;br /&gt;
|-&lt;br /&gt;
| 2242 || KingSpec NE-512 || 512 GB || NE512 || good || || APST enabled&amp;lt;br/&amp;gt;Power states N/A || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 2230 || Kioxia BG4 256GBTB|| 256 GB || KBG40ZNS256G || good || || APST enabled by default&amp;lt;br/&amp;gt;Power states PS 0: 3.60W&amp;lt;br/&amp;gt;PS 1: 2.60W&amp;lt;br/&amp;gt;PS 2: 2.20W&amp;lt;br/&amp;gt;PS 3: 0.005W&amp;lt;br/&amp;gt;PS 4: 0.005W ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Patriot P300 || 256 GB || P300P256GM28US || good || Booted successfully with / on NVMe and /boot on eMMC (Armbian Buster) || APSTE disabled by default&amp;lt;br/&amp;gt; PS 0: 4.50W&amp;lt;br/&amp;gt; PS 1: 2.70W&amp;lt;br/&amp;gt; PS 2: 2.16W&amp;lt;br/&amp;gt;PS 3: 0.07W&amp;lt;br/&amp;gt;PS 4: 0.002W||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Team Group MP33 || 128 GB || TM8FP6128G0C101 || good   || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Team Group MP34 || 512 GB || TM8FP6512G0C101 || fail  ||APST enabled by default and scripts do not change the power mode. &amp;lt;br&amp;gt;Higher power consumption modes cause the PBP to crash&amp;lt;br/&amp;gt; || PS 0 5.55W &amp;lt;br/&amp;gt;PS 1 4.49W&amp;lt;br/&amp;gt;PS 2 3.97W &amp;lt;br/&amp;gt;PS 3 0.0490W &amp;lt;br/&amp;gt;PS 4 0.0018W ||No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== microSD Cards ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|SD Card || Samsung Evo Select 512GB || MB-ME512GA/AM || good ||&lt;br /&gt;
|-&lt;br /&gt;
|SD Card || Samsung Evo Plus 64GB || || good || Hdparm tested 44MBps read speeds&lt;br /&gt;
|-&lt;br /&gt;
|SD Card || Sandisk Ultra 400GB || || good || Works fine as a storage extension. Mounted for pictures, etc.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= USB hardware =&lt;br /&gt;
&lt;br /&gt;
== USB Card Readers ==&lt;br /&gt;
&lt;br /&gt;
Stand-alone card readers only please, see below for combination devices&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|USB-2 SDHC reader || Sandisk MobileMate+ || 0781:b2b3 || good ||&lt;br /&gt;
|-&lt;br /&gt;
|USB-3 SDHC/CF reader || Transcend TS-RDF8K || 8564:4000 || good ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB Networking ==&lt;br /&gt;
&lt;br /&gt;
Stand-alone network devices only please, see below for combination devices&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|USB-2 Fast Ethernet adapter || Realtek RTL8152 || 0bda:8152 || good || &lt;br /&gt;
|-&lt;br /&gt;
|USB-2 Ethernet adapter || ASIX AX77882 || 0b95:7720 || good || &lt;br /&gt;
|-&lt;br /&gt;
|USB Wifi Dongle || TP-Link TL-WN725N || 0bda:8179 || good || RTL8188EUS, Driver=rtl8188eu from MrFixit stock Debian, works better than internal Broadcom, but signal still not great, https://www.amazon.com/gp/product/B008IFXQFU/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&amp;amp;psc=1&lt;br /&gt;
|-&lt;br /&gt;
|USB Wifi Dongle || Shenzhen Dudes Tech #8541553244 || 0bda:c811 || mixed || plug/play on stock Armbian Buster with driver rtl8821cu; could not get operating driver built on MrFixit Debian or Manjaro KDE Plasma. Works 2x+ better than internal Broadcom on Armbian. https://www.amazon.com/gp/product/B07F595V22/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&amp;amp;psc=1&lt;br /&gt;
|-&lt;br /&gt;
|USB 3 to Gigabit Ethernet Adapter || Pluggable USB 3.0 to Ethernet Gigabit (ASIX AX88179 chipset) || 0b95:1790 || good ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB Combination Devices ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Hub || Totu 8-in-1 || 058f:8468, 2109:0817 USB3, 1a40:0801, 2109:2817 USB2, bda:8153 RTL8153 Gigabit Ethernet || Network, USB, Card Reader, Power Good, HDMI Not Working || Amazon Smile [https://smile.amazon.com/gp/product/B07FX2LW35/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;amp;psc=1]&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Hub || Delock 87721 || || Network Works, USB Works, Card Reader not tested, Power Good, HDMI Works but does not show as an extra output in X. It just mirrors the default display || Delock 87721 [https://www.delock.de/produkte/G_87721/merkmale.html?setLanguage=en]&lt;br /&gt;
|-&lt;br /&gt;
|USB-3 combo hub (network, card slots, usb ports) || generic || 05e3:0610 hub, 0bda:8153 gigE, 05e3:0743 card reader || Network good, usb ports good, card reader good ||&lt;br /&gt;
|-&lt;br /&gt;
|USB-C combo hub (network, card slots, usb ports) || generic || 05e3:0612 hub, 0bda:8153 realtek gigE || Network good, usb ports fail, card reader fail ||&lt;br /&gt;
|-&lt;br /&gt;
|5-1 USB-C hub || [https://www.aliexpress.com/item/32954358411.html from aliexpress] ||  05e3:0626 hub || HDMI, Network, USB-3, USB-C PD [http://www.sympato.ch/~dryak/files/usbc-dock.jpg good] || Might need changing orientation or USB-C cable &lt;br /&gt;
|- &lt;br /&gt;
|4 Port USB 3 NIC || Delock 62966 || || good || 4 individually controllable Gigabit Ethernet Ports. Consider using it with own power supply&lt;br /&gt;
|-&lt;br /&gt;
|USB-C combo hub || [https://www.amazon.com/gp/product/B07XKRGQQ2/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&amp;amp;psc=1 from Amazon] || 0c76:161f 0c45:6321 2109:0813 1a40:0101 || good || Everything works: AltMode DP, Ethernet, SD card, USB-A and C, and charging using the stock Debian, and Ubuntu.&lt;br /&gt;
|-&lt;br /&gt;
|USB-C dock || i-Tec USB-C Metal Nano Dock 4K HDMI w/ LAN || 0bda:0411 hub, 0bda:8153 ethernet || mixed || plug &amp;amp; play with Manjaro, HDMI tested w/ fullHD only, works but only in one polarity. Sound output works, USB hub works. HDMI output may not be recognized by Plasma if dock is connected with HDMI port disconnected. NIC recognized by kernel, but untested if link actually works. USB power delivery works only in one polarity. Unfortunately HDMI works with opposite polarity than USB PD.&lt;br /&gt;
|-&lt;br /&gt;
|USB-C dock || Planet Computers Gemini USB-C hub || 0bda:0411 hub, 0bda:8153 ethernet || good || USB works, NIC recognized by kernel, but untested if link actually works. Interestingly, dmesg shows unconnected alternate mode DP, but no connector is present. It seems as if PlanetCom actually made custom version of above i-Tec device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB C alternate mode DP ==&lt;br /&gt;
Note that only USB C alternate mode Display Port will pass video. Any HDMI, DVI or VGA port must be converted internally by the device from Display Port - or the device won't work for video.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to HDMI adapter 201018 || Cable Matters || || good || Tested up to 1080p30, audio works&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to HDMI adapter || Choetech HUB-H06 || || good || Advertises support for 4K@60Hz, tested up to 1080p@60Hz, worked in both Debian and Manjaro 2020-04-04&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to HDMI adapter || generic || || good || Tested up to 4k60&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to DP Adapter || OrxnQ || 04b4:5210 || good || Advertises support for 4K@60Hz, tested up to 1080p. Only FullHD resolutions available on Debian.&lt;br /&gt;
|-&lt;br /&gt;
|USB-C HDMI adapter (DP-alt mode) || QGeeM || || good || Manjaro 2020-01-25&lt;br /&gt;
|-&lt;br /&gt;
|USB-C combo hub (HDMI, network, card slots, USB ports) || generic || || fail ||&lt;br /&gt;
|-&lt;br /&gt;
|USB-C combo hub (HDMI, VGA, Ethernet, card slots, USB 2 &amp;amp; 3 || Powlaken || 05e3:0610 0bda:8153 || USB, Power, Ethernet and SD good, HDMI and VGA fail ||&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Dock (HDMI, VGA, Ethernet, microSD/SD card slots, 2 USB 3 Ports, 1 USB-C Port, USB-Power Passthru || Digitus DA-70865 || || USB, Ethernet and MicroSD/SD good, video crashes System (fail). || Tested on Manjaro w/ Kernel 5.5. You have to turn the USB-C connector upside down for it to work. Video seems to be a driver issue.&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Dock (HDMI, VGA, Ethernet, microSD/SD card slots, 2 USB 3 Ports, 1 USB-C Port, USB-Power pass-through) || generic || || Ethernet and MicroSD/SD good, USB fail, video up to 1080p. || https://forum.pine64.org/showthread.php?tid=8728&lt;br /&gt;
|- &lt;br /&gt;
|USB-C Dock (DP, HDMI, 1Gbps Ethernet, SD card slot, 2 USB 3 Ports, USB-C power in port || goFanco || || DP, Ethernet &amp;amp; USB good, (HDMI &amp;amp; SD card untested). Video tested good to 1080p || Tested on default Debian&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Dock (HDMI, USB 3.0 x 2, USB-C PD Pass Thru Power Port Up to 100W, SD/TF Card Reader || Hiearcool 7-in-1 || || HDMI, USB, Power Port good, SD/TF Reader fail || Default Debian &lt;br /&gt;
|-&lt;br /&gt;
|USB-C 3.0 Multi-Port Hub (HDMI, USB 3.0 x 1, USB-C charge only) || Linden LITCAD17 || || HDMI and USB good, Power Port fail || Default Debian &amp;amp; ayufan Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to DP adapter || Nekteck || 04b4:5210 || good || Shows up as &amp;quot;Cypress Semiconductor Corp. Billboard Device&amp;quot; in lsusb and dmesg output. Works in latest Manjaro (as of January 26, 2020) with no issues. Only FullHD resolutions available on Debian.&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to HDMI adapter || MHL TH002 || || good || Tested at 1080p@60&lt;br /&gt;
|-&lt;br /&gt;
|USB-C combo hub (USB-C power, HDMI, 2xUSB, 1xUSB-C(no power)) || Baseus || || good ||&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Travel Dock with DP ALT-MODE || Targus DOCK411-A || 0835:2a01 (BILLBOARD DEVICE) 0bda:8153 (RTL8153 GbE Adapter) || GbE: works, HDMI: works, USB3.0 port: works, VGA: unknown || HDMI@1080p@60Hz: works OK, HDMI@4K@30Hz: works but buggy. GbE is only picked up when the USB C is plugged in with one certain side facing upwards. It is not detected the other way around. (Sounds weird, but reproduced it multiple times.) &lt;br /&gt;
|-&lt;br /&gt;
|USB-C to DP adapter || MediaGearPro AC0011 || 2109:0100 (USB 2.0 BILLBOARD) || DP: works || Only 1080p@60Hz is available, 4K resolutions not possible in contrast to what the manufacturer claims. &lt;br /&gt;
|-&lt;br /&gt;
|USB-C to DP cable || Generic on ebay ||  || good but with issues || Had some wonky framerates when tested on a 144hz monitor, 60hz mode was actually sent as ~48hz, 120hz mode was actually sent at ~112hz and 144hz mode was actually sent at ~120hz&lt;br /&gt;
|-&lt;br /&gt;
|UGREEN Hub USB C 9 in 1 HDMI and VGA || UGREEN || || good || VGA and HDMI works but not at the same time. HDMI audio not tested. Switching between HDMI and VGA need to replug the hub.&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Dock 6-in-1 HDMI || Ugreen 50771 || || HDMI: works, Ethernet: works, 3x USB: works, USB-PD: works || Tested on Manjaro 2020/03/18 Works USB-C PD Chargers provided they can do 5V3A, works with 5V3A USB-C Raspberry Pi 4 power supply (Doesn't work with 5V2A USB-C). No HDMI Audio.&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to DP cable || [https://www.amazon.es/gp/product/B01N5RFAI4/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&amp;amp;psc=1 CHOETECH V-XCP-0012BK] || || good &lt;br /&gt;
|-&lt;br /&gt;
| [https://www.apple.com/ca/shop/product/MQ4H2AM/A/thunderbolt-3-usb%E2%80%91c-cable-08-m Thunderbolt 3 (USB‑C) Cable (0.8 m)] || Apple || || Display Port Alternate Mode: Fails, USB-PD: works || Tested on Manjaro 2020/05/29 - Charges but no video&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to HDMI cable || Planet Computers USB-C to HDMI cable ||  || fail || does not work regardless of orientation in USB slot&lt;br /&gt;
|-&lt;br /&gt;
|USB-C combo hub || Moreslan 11in1 (https://www.amazon.fr/gp/product/B08397B66G) || || good || GbE: OK, HDMI: OK, 4 usb ports: OK, Power via USB-C: OK, microSD: OK, TFT: OK, Jack: OK, VGA: Not tested; UPDATE: HDMI Display not working anymore since Manjaro release 20.08&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Multiport Adapter || [https://www.wentronic.com/en/usb-ctm-multiport-adapter-hdmi-ethernet-pd-white-62105 Goobay 62105] || || Fail || GbE: OK, UBS port: OK, Power via USB-C: OK, HDMI: Does generate an image, but it jumps X pixels right from time to time (4K@30 and FHD)&lt;br /&gt;
|-&lt;br /&gt;
| USB Type-C to HDMI Adapter || Insignia NS-PU369CH-WH || 0bda:5400|| good || tested on kernel 5.5.0, video out works, audio not tested ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB other ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|Drawing tablet || XP Pen G430s || 28bd:0913 || good || Hardware works, with qemu usermode and some hacks it should be possible to use the official configuration software (runs but does not work on my setup for unrelated reasons) but it may also be able to be configured using more standard methods&lt;br /&gt;
|-&lt;br /&gt;
|Yubikey original || Yubico || 1050:0010 || good ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Bluetooth hardware =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes &lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || HP Z5000 || E5C13AA || good || &lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Kensington Expert Wireless Trackball || || good ||&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Logitech MX Vertical || || good || Battery level is not detected over bluetooth, detected when using the logitech receiver&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Logitech Triathlon M720 || || good ||&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Logitech Ultra-Thin Touch Mouse || || good || Detects battery level as &amp;quot;keyboard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Logitech MX Anywhere 2 || || good ||&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Logitech M535 || 910-004432 || good ||&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Microsoft Bluetooth Mouse || RJN-00002 || good ||&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Fenifox low profile || MX106-Black || good ||&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Technet || MGS479 || good ||&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Keyboard || Logitech MX Keys || || good || Battery level is not detected over bluetooth, detected when using the logitech receiver&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Speaker || Ivation Acoustix || || good || Use audio sink profile&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Headphones || Sony WH-1000XM2 || || good* || Needs pulseaudio-module-bluetooth. *Recording untested.&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Headphones || COWIN SE7 Noise Cancelling Headphones || || good || Pairs and plays audio with stock Debian OS.  More detail [https://forum.pine64.org/showthread.php?tid=8192&amp;amp;pid=60682#pid60682 here].&lt;br /&gt;
|-&lt;br /&gt;
|USB Audio &amp;amp; Bluetooth Headset || Sony SBH90C || || good || Works well connected via USB Type-C and Bluetooth.&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Headset || BlueAnt Ribbon || 7252A-RB || good || a2dp mode works, headset mode seems to work, out of box with manjaro&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Other hardware =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.aliexpress.com/item/32831647303.html USB charging cable] || - || - || good || Got the cable a while back so may not be identical to current product&lt;br /&gt;
|-&lt;br /&gt;
|Printer || HP DeskJet Ink Advantage 3775 || || good* || Using hplip-gui: via USB and WiFi. *Only print function tested.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Pinebook_Pro_Hardware_Accessory_Compatibility&amp;diff=6995</id>
		<title>Pinebook Pro Hardware Accessory Compatibility</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Pinebook_Pro_Hardware_Accessory_Compatibility&amp;diff=6995"/>
		<updated>2020-09-10T19:30:02Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Add HP EX950 NVMe drive&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Please test as many things as you can find with your [[Pinebook Pro]] and share the results here. Some devices which should work don't!&lt;br /&gt;
&lt;br /&gt;
= Storage =&lt;br /&gt;
&lt;br /&gt;
== NVMe SSD drives ==&lt;br /&gt;
Note that only PCIe type M.2 drives will work. Any SATA or USB type M.2 card will NOT work.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Size || Hardware IDs || Result || Notes || Power options&amp;lt;br/&amp;gt;Active only || Save&amp;lt;br/&amp;gt;power&amp;lt;br/&amp;gt;setting?&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Kingston A2000 || 250 GB || SA2000M8250G || good ||  || PS 0: 9.00W&amp;lt;br/&amp;gt;PS 1: 4.60W&amp;lt;br/&amp;gt;PS 2: 3.80W&amp;lt;br/&amp;gt;PS 3: 0.045W&amp;lt;br/&amp;gt;PS 4: 0.004W&amp;lt;br/&amp;gt;APSTE: enabled by default || Yes&lt;br /&gt;
|-&lt;br /&gt;
| 2242 || Toshiba OCZ RC 100 || 240 GB || RC100-M22242-240G || good || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2242 || Lexar NM520 || 256 GB || LNM520-256RBNA || good ||For some data on power use and performance, see [https://forum.pine64.org/showthread.php?tid=9029 here.]  || PS 0: 3.05W&amp;lt;br/&amp;gt;PS 1: 2.44W&amp;lt;br/&amp;gt;PS 2: 2.02W || No.  See [https://forum.pine64.org/showthread.php?tid=8737&amp;amp;pid=56481#pid56481 workaround].&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || XPS SX8200 || 512 GB || ASX8200PNP-512GT-C || good || Performed [https://forum.pine64.org/showthread.php?tid=8322 these] steps for physical installation.  Currently rooting from drive. || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Intel 660p M.2 || 512 GB || SSDPEKNW512G8X1 || good || PS 1 (2.70W) will work without issues, even under heavy load. Recommended over PS 2, as PS 2 will incur an additional 80% performance penalty. APSTE shows enabled but drive does not support it. || PS 0: 3.50W&amp;lt;br/&amp;gt;PS 1: 2.70W&amp;lt;br/&amp;gt;PS 2: 2.00W || No &lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Intel 660p M.2 || 1 TB || SSDPEKNW010T8X1 || good || || PS 0: 4.00W&amp;lt;br/&amp;gt;PS 1: 3.00W&amp;lt;br/&amp;gt;PS 2: 2.20W&amp;lt;br/&amp;gt;APSTE Disabled by default || No&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Intel 660p M.2 || 2 TB || SSDPEKNW020T8 || good || [https://forum.pine64.org/showthread.php?tid=7524&amp;amp;pid=49300#pid49300 Performance tests results] || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Intel 760p M.2 || 128 GB || SSDPEKKW128G8 || good || Firmware Revision 004C || PS 0: 9.00W&amp;lt;br/&amp;gt;PS 1: 4.60W&amp;lt;br/&amp;gt;PS 2: 3.80W&amp;lt;br/&amp;gt;PS 3: 0.045W&amp;lt;br/&amp;gt;PS 4: 0.004W&amp;lt;br/&amp;gt;APSTE: disabled by default with 4.4 kernel (mrfixit Debian), enabled by default with 5.6 kernel (Manjaro KDE) || Yes&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Intel 760p M.2 || 256 GB || SSDPEKKW256G8 || good || Firmware Revision 004C || PS 0: 9.00W&amp;lt;br/&amp;gt;PS 1: 4.60W&amp;lt;br/&amp;gt;PS 2: 3.80W&amp;lt;br/&amp;gt;PS 3: 0.045W&amp;lt;br/&amp;gt;PS 4: 0.004W&amp;lt;br/&amp;gt;Need to use lower power. || &lt;br /&gt;
|-&lt;br /&gt;
| 2280 || integral 256GB SSD M.2 2280 NVME || 256 GB || INSSD256GM280NM1 || usable ||  || PS 0: 9.00W || No&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Samsung 970 EVO Plus || 250 GB || MZ-V7S250BW || fail || Tested on Manjaro-ARM as root drive. Limited to PS 2 and Volatile Write Cache off gives the most stable results, but it will still hang on a hdparm test. || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Samsung 970 EVO Plus || 500 GB || MZ-V7S500 || fail || Too power hungry? || PS 0: 6.2W&amp;lt;br/&amp;gt;PS 1: 4.3W&amp;lt;br/&amp;gt;PS 2: 2.1W ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Samsung 970 EVO || 1 TB || MZ-V7E1T0BW || fail || Too power hungry? || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Corsair MP300 || 120 GB || CSSD-F120GBMP300 || good || || PS 0: 3.00W&amp;lt;br/&amp;gt;PS 1: 2.00W&amp;lt;br/&amp;gt;PS 2: 2.00W&amp;lt;br/&amp;gt;PS 3: 0.1W&amp;lt;br/&amp;gt;PS 4: 0.005W&amp;lt;br/&amp;gt;APSTE Disabled by default ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Silicon Power P34A60 || 1TB || SP001TBP34A60M28 || Usable || Power eager, but doesn't seem to use all 9W all the time, only under heavy I/O || PS 0: 9W || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Silicon Power P34A60 || 256 GB || SPCC M.2 PCIe SSD || detected || ASIN B07ZH6QR8Q &amp;quot;Silicon Power PCIe M.2 NVMe SSD 256GB Gen3x4&amp;quot; / PCIe A60 || PS 0: 6.77W&amp;lt;br/&amp;gt; PS 1: 5.71W&amp;lt;br/&amp;gt; PS 2: 5.19W&amp;lt;br/&amp;gt;APSTE Enabled by default || No&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Silicon Power P34A60 || 256 GB || ??? || fail || Isn't detected || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Sabrent Rocket || 256 GB || SB-ROCKET-256 || good || || || No&lt;br /&gt;
|-&lt;br /&gt;
| 2242 || Sabrent Rocket Nano || 512 GB || SB-1342-512 || good* || No touchpad issues, didn't trim NVME adapter board.&amp;lt;br/&amp;gt;(*Might be too power hungry. More testing needed.) || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || MyDigitalSSD SBXe || 960 GB || || good || || APST enabled&amp;lt;br/&amp;gt;Power states N/A || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 2280 || HP SSD EX900 || 250GB || || good || No low-power modes available || || &lt;br /&gt;
| 2280 || HP SSD EX950  || 512GB || || good || Unsure about low-power modes || || &lt;br /&gt;
|-&lt;br /&gt;
| 2280 || WD BLUE SN550 || 1TB || WDC WDS100T2B0C-00PXH0 || WARNING &amp;lt;br /&amp;gt;good || WARNING mine was SATA and does NOT work!&amp;lt;br /&amp;gt; Booted successfully from NVMe (Bionic MATE) || PS 0: 3.50W&amp;lt;br/&amp;gt;PS 1: 2.70W&amp;lt;br/&amp;gt;PS 2: 1.90W&amp;lt;br/&amp;gt;APSTE Disabled by default || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 2280 || WD Blue SN500 || 500GB || WDS500G1B0C || fail || Works OK on power state 2 (2.5W), but hangs the system whenever there is intense IO (peak draw) on the drive || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2242 || WD PC SN520 || 256GB || - || fail || Power LED Flashes. Nothing else happens. || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || WD BLACK SN750 || 250GB || WDS250G3X0C-00SJG0 || good || No touchpad issues, didn't trim NVME adapter board. || APSTE disabled by default&amp;lt;br/&amp;gt; PS 0: 5.00W&amp;lt;br/&amp;gt;PS 1: 3.50W&amp;lt;br/&amp;gt;PS 2: 3.00W||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || WD BLACK SN750 || 500GB || WDS500G3X0C-00SJG0 || good || No tp issues. had to charge battery for 20% initially. || APSTE disabled by default&amp;lt;br/&amp;gt; PS 0: 5.50W&amp;lt;br/&amp;gt;PS 1: 3.50W&amp;lt;br/&amp;gt;PS 2: 3.00W&amp;lt;br/&amp;gt;PS 3: 0.07W&amp;lt;br/&amp;gt;PS 4: 0.0025W||&lt;br /&gt;
|-&lt;br /&gt;
| 2242 || KingSpec NE-512 || 512 GB || NE512 || good || || APST enabled&amp;lt;br/&amp;gt;Power states N/A || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 2230 || Kioxia BG4 256GBTB|| 256 GB || KBG40ZNS256G || good || || APST enabled by default&amp;lt;br/&amp;gt;Power states PS 0: 3.60W&amp;lt;br/&amp;gt;PS 1: 2.60W&amp;lt;br/&amp;gt;PS 2: 2.20W&amp;lt;br/&amp;gt;PS 3: 0.005W&amp;lt;br/&amp;gt;PS 4: 0.005W ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Patriot P300 || 256 GB || P300P256GM28US || good || Booted successfully with / on NVMe and /boot on eMMC (Armbian Buster) || APSTE disabled by default&amp;lt;br/&amp;gt; PS 0: 4.50W&amp;lt;br/&amp;gt; PS 1: 2.70W&amp;lt;br/&amp;gt; PS 2: 2.16W&amp;lt;br/&amp;gt;PS 3: 0.07W&amp;lt;br/&amp;gt;PS 4: 0.002W||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Team Group MP33 || 128 GB || TM8FP6128G0C101 || good   || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2280 || Team Group MP34 || 512 GB || TM8FP6512G0C101 || fail  ||APST enabled by default and scripts do not change the power mode. &amp;lt;br&amp;gt;Higher power consumption modes cause the PBP to crash&amp;lt;br/&amp;gt; || PS 0 5.55W &amp;lt;br/&amp;gt;PS 1 4.49W&amp;lt;br/&amp;gt;PS 2 3.97W &amp;lt;br/&amp;gt;PS 3 0.0490W &amp;lt;br/&amp;gt;PS 4 0.0018W ||No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== microSD Cards ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|SD Card || Samsung Evo Select 512GB || MB-ME512GA/AM || good ||&lt;br /&gt;
|-&lt;br /&gt;
|SD Card || Samsung Evo Plus 64GB || || good || Hdparm tested 44MBps read speeds&lt;br /&gt;
|-&lt;br /&gt;
|SD Card || Sandisk Ultra 400GB || || good || Works fine as a storage extension. Mounted for pictures, etc.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= USB hardware =&lt;br /&gt;
&lt;br /&gt;
== USB Card Readers ==&lt;br /&gt;
&lt;br /&gt;
Stand-alone card readers only please, see below for combination devices&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|USB-2 SDHC reader || Sandisk MobileMate+ || 0781:b2b3 || good ||&lt;br /&gt;
|-&lt;br /&gt;
|USB-3 SDHC/CF reader || Transcend TS-RDF8K || 8564:4000 || good ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB Networking ==&lt;br /&gt;
&lt;br /&gt;
Stand-alone network devices only please, see below for combination devices&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|USB-2 Fast Ethernet adapter || Realtek RTL8152 || 0bda:8152 || good || &lt;br /&gt;
|-&lt;br /&gt;
|USB-2 Ethernet adapter || ASIX AX77882 || 0b95:7720 || good || &lt;br /&gt;
|-&lt;br /&gt;
|USB Wifi Dongle || TP-Link TL-WN725N || 0bda:8179 || good || RTL8188EUS, Driver=rtl8188eu from MrFixit stock Debian, works better than internal Broadcom, but signal still not great, https://www.amazon.com/gp/product/B008IFXQFU/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&amp;amp;psc=1&lt;br /&gt;
|-&lt;br /&gt;
|USB Wifi Dongle || Shenzhen Dudes Tech #8541553244 || 0bda:c811 || mixed || plug/play on stock Armbian Buster with driver rtl8821cu; could not get operating driver built on MrFixit Debian or Manjaro KDE Plasma. Works 2x+ better than internal Broadcom on Armbian. https://www.amazon.com/gp/product/B07F595V22/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&amp;amp;psc=1&lt;br /&gt;
|-&lt;br /&gt;
|USB 3 to Gigabit Ethernet Adapter || Pluggable USB 3.0 to Ethernet Gigabit (ASIX AX88179 chipset) || 0b95:1790 || good ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB Combination Devices ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Hub || Totu 8-in-1 || 058f:8468, 2109:0817 USB3, 1a40:0801, 2109:2817 USB2, bda:8153 RTL8153 Gigabit Ethernet || Network, USB, Card Reader, Power Good, HDMI Not Working || Amazon Smile [https://smile.amazon.com/gp/product/B07FX2LW35/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;amp;psc=1]&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Hub || Delock 87721 || || Network Works, USB Works, Card Reader not tested, Power Good, HDMI Works but does not show as an extra output in X. It just mirrors the default display || Delock 87721 [https://www.delock.de/produkte/G_87721/merkmale.html?setLanguage=en]&lt;br /&gt;
|-&lt;br /&gt;
|USB-3 combo hub (network, card slots, usb ports) || generic || 05e3:0610 hub, 0bda:8153 gigE, 05e3:0743 card reader || Network good, usb ports good, card reader good ||&lt;br /&gt;
|-&lt;br /&gt;
|USB-C combo hub (network, card slots, usb ports) || generic || 05e3:0612 hub, 0bda:8153 realtek gigE || Network good, usb ports fail, card reader fail ||&lt;br /&gt;
|-&lt;br /&gt;
|5-1 USB-C hub || [https://www.aliexpress.com/item/32954358411.html from aliexpress] ||  05e3:0626 hub || HDMI, Network, USB-3, USB-C PD [http://www.sympato.ch/~dryak/files/usbc-dock.jpg good] || Might need changing orientation or USB-C cable &lt;br /&gt;
|- &lt;br /&gt;
|4 Port USB 3 NIC || Delock 62966 || || good || 4 individually controllable Gigabit Ethernet Ports. Consider using it with own power supply&lt;br /&gt;
|-&lt;br /&gt;
|USB-C combo hub || [https://www.amazon.com/gp/product/B07XKRGQQ2/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&amp;amp;psc=1 from Amazon] || 0c76:161f 0c45:6321 2109:0813 1a40:0101 || good || Everything works: AltMode DP, Ethernet, SD card, USB-A and C, and charging using the stock Debian, and Ubuntu.&lt;br /&gt;
|-&lt;br /&gt;
|USB-C dock || i-Tec USB-C Metal Nano Dock 4K HDMI w/ LAN || 0bda:0411 hub, 0bda:8153 ethernet || mixed || plug &amp;amp; play with Manjaro, HDMI tested w/ fullHD only, works but only in one polarity. Sound output works, USB hub works. HDMI output may not be recognized by Plasma if dock is connected with HDMI port disconnected. NIC recognized by kernel, but untested if link actually works. USB power delivery works only in one polarity. Unfortunately HDMI works with opposite polarity than USB PD.&lt;br /&gt;
|-&lt;br /&gt;
|USB-C dock || Planet Computers Gemini USB-C hub || 0bda:0411 hub, 0bda:8153 ethernet || good || USB works, NIC recognized by kernel, but untested if link actually works. Interestingly, dmesg shows unconnected alternate mode DP, but no connector is present. It seems as if PlanetCom actually made custom version of above i-Tec device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB C alternate mode DP ==&lt;br /&gt;
Note that only USB C alternate mode Display Port will pass video. Any HDMI, DVI or VGA port must be converted internally by the device from Display Port - or the device won't work for video.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to HDMI adapter 201018 || Cable Matters || || good || Tested up to 1080p30, audio works&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to HDMI adapter || Choetech HUB-H06 || || good || Advertises support for 4K@60Hz, tested up to 1080p@60Hz, worked in both Debian and Manjaro 2020-04-04&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to HDMI adapter || generic || || good || Tested up to 4k60&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to DP Adapter || OrxnQ || 04b4:5210 || good || Advertises support for 4K@60Hz, tested up to 1080p. Only FullHD resolutions available on Debian.&lt;br /&gt;
|-&lt;br /&gt;
|USB-C HDMI adapter (DP-alt mode) || QGeeM || || good || Manjaro 2020-01-25&lt;br /&gt;
|-&lt;br /&gt;
|USB-C combo hub (HDMI, network, card slots, USB ports) || generic || || fail ||&lt;br /&gt;
|-&lt;br /&gt;
|USB-C combo hub (HDMI, VGA, Ethernet, card slots, USB 2 &amp;amp; 3 || Powlaken || 05e3:0610 0bda:8153 || USB, Power, Ethernet and SD good, HDMI and VGA fail ||&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Dock (HDMI, VGA, Ethernet, microSD/SD card slots, 2 USB 3 Ports, 1 USB-C Port, USB-Power Passthru || Digitus DA-70865 || || USB, Ethernet and MicroSD/SD good, video crashes System (fail). || Tested on Manjaro w/ Kernel 5.5. You have to turn the USB-C connector upside down for it to work. Video seems to be a driver issue.&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Dock (HDMI, VGA, Ethernet, microSD/SD card slots, 2 USB 3 Ports, 1 USB-C Port, USB-Power pass-through) || generic || || Ethernet and MicroSD/SD good, USB fail, video up to 1080p. || https://forum.pine64.org/showthread.php?tid=8728&lt;br /&gt;
|- &lt;br /&gt;
|USB-C Dock (DP, HDMI, 1Gbps Ethernet, SD card slot, 2 USB 3 Ports, USB-C power in port || goFanco || || DP, Ethernet &amp;amp; USB good, (HDMI &amp;amp; SD card untested). Video tested good to 1080p || Tested on default Debian&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Dock (HDMI, USB 3.0 x 2, USB-C PD Pass Thru Power Port Up to 100W, SD/TF Card Reader || Hiearcool 7-in-1 || || HDMI, USB, Power Port good, SD/TF Reader fail || Default Debian &lt;br /&gt;
|-&lt;br /&gt;
|USB-C 3.0 Multi-Port Hub (HDMI, USB 3.0 x 1, USB-C charge only) || Linden LITCAD17 || || HDMI and USB good, Power Port fail || Default Debian &amp;amp; ayufan Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to DP adapter || Nekteck || 04b4:5210 || good || Shows up as &amp;quot;Cypress Semiconductor Corp. Billboard Device&amp;quot; in lsusb and dmesg output. Works in latest Manjaro (as of January 26, 2020) with no issues. Only FullHD resolutions available on Debian.&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to HDMI adapter || MHL TH002 || || good || Tested at 1080p@60&lt;br /&gt;
|-&lt;br /&gt;
|USB-C combo hub (USB-C power, HDMI, 2xUSB, 1xUSB-C(no power)) || Baseus || || good ||&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Travel Dock with DP ALT-MODE || Targus DOCK411-A || 0835:2a01 (BILLBOARD DEVICE) 0bda:8153 (RTL8153 GbE Adapter) || GbE: works, HDMI: works, USB3.0 port: works, VGA: unknown || HDMI@1080p@60Hz: works OK, HDMI@4K@30Hz: works but buggy. GbE is only picked up when the USB C is plugged in with one certain side facing upwards. It is not detected the other way around. (Sounds weird, but reproduced it multiple times.) &lt;br /&gt;
|-&lt;br /&gt;
|USB-C to DP adapter || MediaGearPro AC0011 || 2109:0100 (USB 2.0 BILLBOARD) || DP: works || Only 1080p@60Hz is available, 4K resolutions not possible in contrast to what the manufacturer claims. &lt;br /&gt;
|-&lt;br /&gt;
|USB-C to DP cable || Generic on ebay ||  || good but with issues || Had some wonky framerates when tested on a 144hz monitor, 60hz mode was actually sent as ~48hz, 120hz mode was actually sent at ~112hz and 144hz mode was actually sent at ~120hz&lt;br /&gt;
|-&lt;br /&gt;
|UGREEN Hub USB C 9 in 1 HDMI and VGA || UGREEN || || good || VGA and HDMI works but not at the same time. HDMI audio not tested. Switching between HDMI and VGA need to replug the hub.&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Dock 6-in-1 HDMI || Ugreen 50771 || || HDMI: works, Ethernet: works, 3x USB: works, USB-PD: works || Tested on Manjaro 2020/03/18 Works USB-C PD Chargers provided they can do 5V3A, works with 5V3A USB-C Raspberry Pi 4 power supply (Doesn't work with 5V2A USB-C). No HDMI Audio.&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to DP cable || [https://www.amazon.es/gp/product/B01N5RFAI4/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&amp;amp;psc=1 CHOETECH V-XCP-0012BK] || || good &lt;br /&gt;
|-&lt;br /&gt;
| [https://www.apple.com/ca/shop/product/MQ4H2AM/A/thunderbolt-3-usb%E2%80%91c-cable-08-m Thunderbolt 3 (USB‑C) Cable (0.8 m)] || Apple || || Display Port Alternate Mode: Fails, USB-PD: works || Tested on Manjaro 2020/05/29 - Charges but no video&lt;br /&gt;
|-&lt;br /&gt;
|USB-C to HDMI cable || Planet Computers USB-C to HDMI cable ||  || fail || does not work regardless of orientation in USB slot&lt;br /&gt;
|-&lt;br /&gt;
|USB-C combo hub || Moreslan 11in1 (https://www.amazon.fr/gp/product/B08397B66G) || || good || GbE: OK, HDMI: OK, 4 usb ports: OK, Power via USB-C: OK, microSD: OK, TFT: OK, Jack: OK, VGA: Not tested; UPDATE: HDMI Display not working anymore since Manjaro release 20.08&lt;br /&gt;
|-&lt;br /&gt;
|USB-C Multiport Adapter || [https://www.wentronic.com/en/usb-ctm-multiport-adapter-hdmi-ethernet-pd-white-62105 Goobay 62105] || || Fail || GbE: OK, UBS port: OK, Power via USB-C: OK, HDMI: Does generate an image, but it jumps X pixels right from time to time (4K@30 and FHD)&lt;br /&gt;
|-&lt;br /&gt;
| USB Type-C to HDMI Adapter || Insignia NS-PU369CH-WH || 0bda:5400|| good || tested on kernel 5.5.0, video out works, audio not tested ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB other ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|Drawing tablet || XP Pen G430s || 28bd:0913 || good || Hardware works, with qemu usermode and some hacks it should be possible to use the official configuration software (runs but does not work on my setup for unrelated reasons) but it may also be able to be configured using more standard methods&lt;br /&gt;
|-&lt;br /&gt;
|Yubikey original || Yubico || 1050:0010 || good ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Bluetooth hardware =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes &lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || HP Z5000 || E5C13AA || good || &lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Kensington Expert Wireless Trackball || || good ||&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Logitech MX Vertical || || good || Battery level is not detected over bluetooth, detected when using the logitech receiver&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Logitech Triathlon M720 || || good ||&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Logitech Ultra-Thin Touch Mouse || || good || Detects battery level as &amp;quot;keyboard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Logitech MX Anywhere 2 || || good ||&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Logitech M535 || 910-004432 || good ||&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Microsoft Bluetooth Mouse || RJN-00002 || good ||&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Fenifox low profile || MX106-Black || good ||&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Mouse || Technet || MGS479 || good ||&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Keyboard || Logitech MX Keys || || good || Battery level is not detected over bluetooth, detected when using the logitech receiver&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Speaker || Ivation Acoustix || || good || Use audio sink profile&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Headphones || Sony WH-1000XM2 || || good* || Needs pulseaudio-module-bluetooth. *Recording untested.&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Headphones || COWIN SE7 Noise Cancelling Headphones || || good || Pairs and plays audio with stock Debian OS.  More detail [https://forum.pine64.org/showthread.php?tid=8192&amp;amp;pid=60682#pid60682 here].&lt;br /&gt;
|-&lt;br /&gt;
|USB Audio &amp;amp; Bluetooth Headset || Sony SBH90C || || good || Works well connected via USB Type-C and Bluetooth.&lt;br /&gt;
|-&lt;br /&gt;
|Bluetooth Headset || BlueAnt Ribbon || 7252A-RB || good || a2dp mode works, headset mode seems to work, out of box with manjaro&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Other hardware =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.aliexpress.com/item/32831647303.html USB charging cable] || - || - || good || Got the cable a while back so may not be identical to current product&lt;br /&gt;
|-&lt;br /&gt;
|Printer || HP DeskJet Ink Advantage 3775 || || good* || Using hplip-gui: via USB and WiFi. *Only print function tested.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6798</id>
		<title>Pinebook Pro SPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6798"/>
		<updated>2020-09-01T05:32:40Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Shift chip diagram to right of text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Pinebook Pro comes equipped with two non-volatile storage components, the eMMC and the SPI. The capacity of the SPI is 128MiB and it may be used in the boot process.&lt;br /&gt;
&lt;br /&gt;
Boot data can be written to the SPI via two methods: either from within PBP or from a second machine connected to the PBP by USB.&lt;br /&gt;
&lt;br /&gt;
= Writing to SPI from within PBP =&lt;br /&gt;
&lt;br /&gt;
[https://forum.pine64.org/member.php?action=profile&amp;amp;uid=15527 Forum user pcm720] showed an example of writing to the SPI from within PBP in [https://github.com/pcm720/u-boot-build-scripts/releases their self-published version of U-Boot] that offers boot functionality for NVMe drives. It involves use of &amp;lt;code&amp;gt;flash_erase&amp;lt;/code&amp;gt; command (available in the mtd-utils package on Arch/Manjaro) and the &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
= Writing to SPI from a second machine =&lt;br /&gt;
&lt;br /&gt;
Writing to the SPI from a second machine is more complicated than the other method, but it is the only option when troubleshooting an SPI flash gone wrong. This method works by bringing the PBP into &amp;lt;code&amp;gt;maskrom mode&amp;lt;/code&amp;gt; and issuing commands on the second machine that download the flash image onto the PBP.&lt;br /&gt;
&lt;br /&gt;
Upon entering &amp;lt;code&amp;gt;maskrom mode&amp;lt;/code&amp;gt;, the power LED on your PBP won't light up and neither will the display. Instead, your second machine, the one connected to your PBP via USB, will indicate &amp;lt;code&amp;gt;maskrom mode&amp;lt;/code&amp;gt; by logging to &amp;lt;code&amp;gt;journalctl&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
There are two ways to reach &amp;lt;code&amp;gt;maskrom mode&amp;lt;/code&amp;gt;, but the first tends to be less reliable.&lt;br /&gt;
&lt;br /&gt;
== Maskrom mode (unreliable method) ==&lt;br /&gt;
&lt;br /&gt;
According to Rockchip documentation, these steps should work; unfortunately, many users have reported them to be unsuccessful. You may need to repeat these steps several times for them to work.&lt;br /&gt;
&lt;br /&gt;
# Press and hold recovery button.&lt;br /&gt;
# Short press reset.&lt;br /&gt;
# Release recovery button after about 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Why this procedure is unreliable is not clear, but there are two suspicions:&lt;br /&gt;
&lt;br /&gt;
* The button is not working correctly or is just prone to failures.&lt;br /&gt;
* The problem occurs only when the SPI was previously flashed.&lt;br /&gt;
&lt;br /&gt;
The button works by shorting two pins in the SPI device. But in some cases it just does nothing. Fortunately, the two pins can shorted by hand, as described in the next method.&lt;br /&gt;
&lt;br /&gt;
== Maskrom mode (reliable method) ==&lt;br /&gt;
&lt;br /&gt;
# Build and install &amp;lt;code&amp;gt;rkdeveloptool&amp;lt;/code&amp;gt; (see [https://github.com/rockchip-linux/rkdeveloptool project repository] for instructions)&lt;br /&gt;
# Verify successful installation. Running &amp;lt;code&amp;gt;rkdeveloptool --version&amp;lt;/code&amp;gt; should output: &amp;lt;code&amp;gt;rkdeveloptool ver 1.3&amp;lt;/code&amp;gt;&lt;br /&gt;
# Run &amp;lt;code&amp;gt;journalctl -f&amp;lt;/code&amp;gt; and keep it running. Once maskrom mode is reached it will produce additional output.&lt;br /&gt;
# Unscrew bottom cover.&lt;br /&gt;
# Remove the metal shield surrounding main CPU. The shield is held in place by a tape and micro clamps on the board. The clamps can be released with a pry tool and some force. [https://forum.pine64.org/showthread.php?tid=11073&amp;amp;pid=75096#pid75096 This forum post with photos] shows how it can be done.&lt;br /&gt;
# Disconnect all (!!!) boot devices (emmc, sdcard, usb).&lt;br /&gt;
# Locate SPI flash (component number 29 on [https://wiki.pine64.org/images/4/45/PBPL_S.jpg this photo of the Pinebook Pro internals]).&lt;br /&gt;
# Connect your PBP with USB-C - USB-A cable to second machine (PBP on USB-C side)&lt;br /&gt;
# Short pins CLK and VSS (see chip diagram to the right for the names of pins). This can be done with a pair of tweezers when short on tools. [[File:Spi.png|right]]&lt;br /&gt;
# Press the reset button (component number 28)&lt;br /&gt;
# Check if there is new output from &amp;lt;code&amp;gt;journalctl&amp;lt;/code&amp;gt; program.&lt;br /&gt;
# Check if the PBP connected by running &amp;lt;code&amp;gt;rkdeveloptool ld&amp;lt;/code&amp;gt;. If successful, the output should be like: &amp;lt;code&amp;gt;DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=1401 Maskrom&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== After entering maskrom mode ==&lt;br /&gt;
&lt;br /&gt;
Now that the PBP is in &amp;lt;code&amp;gt;maskrom mode&amp;lt;/code&amp;gt;, you can use &amp;lt;code&amp;gt;rkdeveloptool&amp;lt;/code&amp;gt; to write data to the SPI. To do so you'll need the binary file you'll be writing to SPI, which will be referred to as &amp;lt;code&amp;gt;SPI_new.bin&amp;lt;/code&amp;gt;, and a helper file named [https://droppy.ironrobin.net/%24/JWP47 rk3399_loader_spinor_v1.15.114.bin].&lt;br /&gt;
&lt;br /&gt;
# Flash the flash helper db file: &amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;. If successful, the output should read &amp;lt;code&amp;gt;Downloading bootloader succeeded&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Flash the new SPI binary: &amp;lt;code&amp;gt;rkdeveloptool wl 0 SPI_new.bin&amp;lt;/code&amp;gt;. If successful, the output should read: &amp;lt;code&amp;gt;Write LBA from file (100%)&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Test the installation: &amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;. If successful, output should read &amp;lt;code&amp;gt;Reset Device OK&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Run &amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt; to reboot your Pinebook Pro.&lt;br /&gt;
&lt;br /&gt;
== Zeroing out the SPI ==&lt;br /&gt;
&lt;br /&gt;
In case, you wrote something bad to your SPI, it's helpful to wipe away that data with zeros. To do that, you follow the same steps above to enter &amp;lt;code&amp;gt;maskrom mode&amp;lt;/code&amp;gt; and then write an binary file that consists of all zeros.&lt;br /&gt;
&lt;br /&gt;
# Create the binary file &amp;lt;code&amp;gt;dd if=/dev/zero of=zero.bin bs=1M count=16&amp;lt;/code&amp;gt;&lt;br /&gt;
# Flash the flash helper db file: &amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;. If successful, the output should read &amp;lt;code&amp;gt;Downloading bootloader succeeded&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Flash the new SPI binary: &amp;lt;code&amp;gt;rkdeveloptool wl 0 zero.bin&amp;lt;/code&amp;gt;. If successful, the output should read: &amp;lt;code&amp;gt;Write LBA from file (100%)&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Test the installation: &amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;. If successful, output should read &amp;lt;code&amp;gt;Reset Device OK&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Run &amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt; to reboot your Pinebook Pro.&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Talk:Pinebook_Pro_SPI&amp;diff=6797</id>
		<title>Talk:Pinebook Pro SPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Talk:Pinebook_Pro_SPI&amp;diff=6797"/>
		<updated>2020-09-01T05:12:47Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: /* Consolidated content, clarified some points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Consolidated content, clarified some points ==&lt;br /&gt;
&lt;br /&gt;
After my struggle with a bad SPI flash, I wanted to give back to community the knowledge I learned, so I tidied up this article. Originally, it was a bit repetitious, jumped right into writing to SPI, and lacked some detail about what to expect if you reach &amp;lt;code&amp;gt;maskrom mode&amp;lt;/code&amp;gt; Credit goes to great community members who helped me along the way: as400, phone, gnarface, and CrystalGamma - [[User:Ian-S-McB|Ian-S-McB]] ([[User talk:Ian-S-McB|talk]]) 05:11, 1 September 2020 (UTC)&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Talk:Pinebook_Pro_SPI&amp;diff=6796</id>
		<title>Talk:Pinebook Pro SPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Talk:Pinebook_Pro_SPI&amp;diff=6796"/>
		<updated>2020-09-01T05:12:06Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Add explanation of my recent contribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Consolidated content, clarified some points ==&lt;br /&gt;
&lt;br /&gt;
After my struggle with a bad SPI flash, I wanted to give back to community the knowledge I learned, so I tidied up this article. Originally, it was a bit repetitious, jumped right into writing to SPI, and lacked some detail about what to expect if you reach &amp;lt;code&amp;gt;maskrom mode&amp;lt;/code&amp;gt; Credit goes to great community members who helped me along the way: as400, phone, gnarface, and CrystalGamma [[User:Ian-S-McB|Ian-S-McB]] ([[User talk:Ian-S-McB|talk]]) 05:11, 1 September 2020 (UTC)&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6795</id>
		<title>Pinebook Pro SPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6795"/>
		<updated>2020-09-01T04:53:15Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Overhaul whole article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Pinebook Pro comes equipped with two non-volatile storage components, the eMMC and the SPI. The capacity of the SPI is 128MiB and it may be used in the boot process.&lt;br /&gt;
&lt;br /&gt;
Boot data can be written to the SPI via two methods: either from within PBP or from a second machine connected to the PBP by USB.&lt;br /&gt;
&lt;br /&gt;
= Writing to SPI from within PBP =&lt;br /&gt;
&lt;br /&gt;
[https://forum.pine64.org/member.php?action=profile&amp;amp;uid=15527 Forum user pcm720] showed an example of writing to the SPI from within PBP in [https://github.com/pcm720/u-boot-build-scripts/releases their self-published version of U-Boot] that offers boot functionality for NVMe drives. It involves use of &amp;lt;code&amp;gt;flash_erase&amp;lt;/code&amp;gt; command (available in the mtd-utils package on Arch/Manjaro) and the &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
= Writing to SPI from a second machine =&lt;br /&gt;
&lt;br /&gt;
Writing to the SPI from a second machine is more complicated than the other method, but it is the only option when troubleshooting an SPI flash gone wrong. This method works by bringing the PBP into &amp;lt;code&amp;gt;maskrom mode&amp;lt;/code&amp;gt; and issuing commands on the second machine that download the flash image onto the PBP.&lt;br /&gt;
&lt;br /&gt;
Upon entering &amp;lt;code&amp;gt;maskrom mode&amp;lt;/code&amp;gt;, the power LED on your PBP won't light up and neither will the display. Instead, your second machine, the one connected to your PBP via USB, will indicate &amp;lt;code&amp;gt;maskrom mode&amp;lt;/code&amp;gt; by logging to &amp;lt;code&amp;gt;journalctl&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
There are two ways to reach &amp;lt;code&amp;gt;maskrom mode&amp;lt;/code&amp;gt;, but the first tends to be less reliable.&lt;br /&gt;
&lt;br /&gt;
== Maskrom mode (unreliable method) ==&lt;br /&gt;
&lt;br /&gt;
According to Rockchip documentation, these steps should work; unfortunately, many users have reported them to be unsuccessful. You may need to repeat these steps several times for them to work.&lt;br /&gt;
&lt;br /&gt;
# Press and hold recovery button.&lt;br /&gt;
# Short press reset.&lt;br /&gt;
# Release recovery button after about 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Why this procedure is unreliable is not clear, but there are two suspicions:&lt;br /&gt;
&lt;br /&gt;
* The button is not working correctly or is just prone to failures.&lt;br /&gt;
* The problem occurs only when the SPI was previously flashed.&lt;br /&gt;
&lt;br /&gt;
The button works by shorting two pins in the SPI device. But in some cases it just does nothing. Fortunately, the two pins can shorted by hand, as described in the next method.&lt;br /&gt;
&lt;br /&gt;
== Maskrom mode (reliable method) ==&lt;br /&gt;
&lt;br /&gt;
# Build and install &amp;lt;code&amp;gt;rkdeveloptool&amp;lt;/code&amp;gt; (see [https://github.com/rockchip-linux/rkdeveloptool project repository] for instructions)&lt;br /&gt;
# Verify successful installation. Running &amp;lt;code&amp;gt;rkdeveloptool --version&amp;lt;/code&amp;gt; should output: &amp;lt;code&amp;gt;rkdeveloptool ver 1.3&amp;lt;/code&amp;gt;&lt;br /&gt;
# Run &amp;lt;code&amp;gt;journalctl -f&amp;lt;/code&amp;gt; and keep it running. Once maskrom mode is reached it will produce additional output.&lt;br /&gt;
# Unscrew bottom cover.&lt;br /&gt;
# Remove the metal shield surrounding main CPU. The shield is held in place by a tape and micro clamps on the board. The clamps can be released with a pry tool and some force. [https://forum.pine64.org/showthread.php?tid=11073&amp;amp;pid=75096#pid75096 This forum post with photos] shows how it can be done.&lt;br /&gt;
# Disconnect all (!!!) boot devices (emmc, sdcard, usb).&lt;br /&gt;
# Locate SPI flash (component number 29 on [https://wiki.pine64.org/images/4/45/PBPL_S.jpg this photo of the Pinebook Pro internals]).&lt;br /&gt;
# Connect your PBP with USB-C - USB-A cable to second machine (PBP on USB-C side)&lt;br /&gt;
# Short pins CLK and VSS (see chip diagram below for names of pins). This can be done with a pair of tweezers when short on tools. [[File:Spi.png]]&lt;br /&gt;
# Press the reset button (component number 28)&lt;br /&gt;
# Check if there is new output from &amp;lt;code&amp;gt;journalctl&amp;lt;/code&amp;gt; program.&lt;br /&gt;
# Check if the PBP connected by running &amp;lt;code&amp;gt;rkdeveloptool ld&amp;lt;/code&amp;gt;. If successful, the output should be like: &amp;lt;code&amp;gt;DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=1401 Maskrom&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== After entering maskrom mode ==&lt;br /&gt;
&lt;br /&gt;
Now that the PBP is in &amp;lt;code&amp;gt;maskrom mode&amp;lt;/code&amp;gt;, you can use &amp;lt;code&amp;gt;rkdeveloptool&amp;lt;/code&amp;gt; to write data to the SPI. To do so you'll need the binary file you'll be writing to SPI, which will be referred to as &amp;lt;code&amp;gt;SPI_new.bin&amp;lt;/code&amp;gt;, and a helper file named [https://droppy.ironrobin.net/%24/JWP47 rk3399_loader_spinor_v1.15.114.bin].&lt;br /&gt;
&lt;br /&gt;
# Flash the flash helper db file: &amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;. If successful, the output should read &amp;lt;code&amp;gt;Downloading bootloader succeeded&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Flash the new SPI binary: &amp;lt;code&amp;gt;rkdeveloptool wl 0 SPI_new.bin&amp;lt;/code&amp;gt;. If successful, the output should read: &amp;lt;code&amp;gt;Write LBA from file (100%)&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Test the installation: &amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;. If successful, output should read &amp;lt;code&amp;gt;Reset Device OK&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Run &amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt; to reboot your Pinebook Pro.&lt;br /&gt;
&lt;br /&gt;
== Zeroing out the SPI ==&lt;br /&gt;
&lt;br /&gt;
In case, you wrote something bad to your SPI, it's helpful to wipe away that data with zeros. To do that, you follow the same steps above to enter &amp;lt;code&amp;gt;maskrom mode&amp;lt;/code&amp;gt; and then write an binary file that consists of all zeros.&lt;br /&gt;
&lt;br /&gt;
# Create the binary file &amp;lt;code&amp;gt;dd if=/dev/zero of=zero.bin bs=1M count=16&amp;lt;/code&amp;gt;&lt;br /&gt;
# Flash the flash helper db file: &amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;. If successful, the output should read &amp;lt;code&amp;gt;Downloading bootloader succeeded&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Flash the new SPI binary: &amp;lt;code&amp;gt;rkdeveloptool wl 0 zero.bin&amp;lt;/code&amp;gt;. If successful, the output should read: &amp;lt;code&amp;gt;Write LBA from file (100%)&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Test the installation: &amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;. If successful, output should read &amp;lt;code&amp;gt;Reset Device OK&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Run &amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt; to reboot your Pinebook Pro.&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6794</id>
		<title>Pinebook Pro SPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6794"/>
		<updated>2020-09-01T02:30:32Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Adding introduction text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Pinebook Pro comes equipped with two non-volatile storage components, the eMMC and the SPI. The capacity of the SPI is 128MiB and it may be used in the boot process.&lt;br /&gt;
&lt;br /&gt;
= Writing to the Pinebook Pro SPI =&lt;br /&gt;
&lt;br /&gt;
'''Necessary Items:'''&lt;br /&gt;
&lt;br /&gt;
1. A screwdriver&amp;lt;br&amp;gt;&lt;br /&gt;
2. USB Type-A to USB-C cable&amp;lt;br&amp;gt;&lt;br /&gt;
3. Another Computer with a USB-A 3.0 port&lt;br /&gt;
*''Not a requirement but if you want to boot from NVMe you need:''&lt;br /&gt;
4. A bootable NVMe (i.e., with /boot/boot.txt having root=/dev/whatever_your_nvme_is plus some operating system.&lt;br /&gt;
&lt;br /&gt;
'''Procedure:'''&lt;br /&gt;
&lt;br /&gt;
1. Build and install rkdeveloptool on your other computer, find out all the info to do that on [https://github.com/rockchip-linux/rkdeveloptool their Github.]&lt;br /&gt;
&lt;br /&gt;
2. Verify correct and successful installation:&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool --version&amp;lt;/code&amp;gt; should output: &amp;lt;code&amp;gt;rkdeveloptool ver 1.3&amp;lt;/code&amp;gt;&lt;br /&gt;
3. On the same computer, make a directory to hold the necessary files.&lt;br /&gt;
:&amp;lt;code&amp;gt;mkdir ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:You will need to have two files in this directory:&lt;br /&gt;
*The db flash helper([https://droppy.ironrobin.net/%24/JWP47 rk3399_loader_spinor_v1.15.114.bin]). This prepares the SPI for a binary.&lt;br /&gt;
*The U-Boot, or other bootloader binary.&lt;br /&gt;
&lt;br /&gt;
'''Note: SPI binaries are built for SPI environment only. It will not work if you try putting it on your eMMC.'''&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;mv rk3399_loader_spinor_v1.15.114.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;mv dhiv_SPI_uboot.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;cd ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Put the Pinebook Pro into maskrom mode:&lt;br /&gt;
*Remove all bootable devices from your Pinebook Pro.&lt;br /&gt;
*Plug the Type-A end into your non-Pinebook Pro device.&lt;br /&gt;
*Plug the Type-C end into your Pinebook Pro.&lt;br /&gt;
5. Reboot the Pinebook Pro.&lt;br /&gt;
:To verify you are in maskrom mode, with your computers connected, run &amp;lt;code&amp;gt;rkdeveloptool ld&amp;lt;/code&amp;gt;&lt;br /&gt;
:You should get an output like this: '''DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=1401 Maskrom'''&lt;br /&gt;
6. Flash the flash helper db file.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Upon success, the output should read '''Downloading bootloader succeeded.'''&lt;br /&gt;
7. Flash the new SPI binary.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool wl 0 dhiv_SPI_uboot.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read: '''Write LBA from file (100%)'''.&lt;br /&gt;
8. Test the installation.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read '''Reset Device OK'''.&lt;br /&gt;
9. Run &amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt; to reboot your Pinebook Pro.&lt;br /&gt;
&lt;br /&gt;
= Recovering from broken SPI flashes/installs =&lt;br /&gt;
&lt;br /&gt;
If you accidentally soft brick your PBP there is special mode implemented called maskrom mode. In this mode the device is accessible as regular USB device and can be accessed using rkdeveloptools, especially to rewrite SPI flash or to erase it.&lt;br /&gt;
&lt;br /&gt;
Upon entering maskrom mode, the power LED on your PBP won't light up and neither will the display. Instead, your second machine, the one connected to your PBP via USB, will indicate maskrom mode by logging to journalctl.&lt;br /&gt;
&lt;br /&gt;
Below are the two known procedures to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Simple, but unreliable maskrom mode procedure ===&lt;br /&gt;
&lt;br /&gt;
According to Rockchip documentation, these steps should work; unfortunately, many users have reported them to be unsuccessful. You may need to repeat these steps several times for them to work.&lt;br /&gt;
&lt;br /&gt;
# Press and hold recovery button.&lt;br /&gt;
# Short press reset.&lt;br /&gt;
# Release recovery button after about 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Why this procedure is unreliable is not clear, but there are two suspicions:&lt;br /&gt;
&lt;br /&gt;
* The button is not working correctly or is just prone to failures.&lt;br /&gt;
* The problem occurs only when the SPI was previously flashed.&lt;br /&gt;
&lt;br /&gt;
The button works by shorting two pins in an SPI device. But in some cases it just does nothing. Fortunately, the two pins can shorted by hand, as described in the next procedure.&lt;br /&gt;
&lt;br /&gt;
=== Demanding, but reliable maskrom mode procedure ===&lt;br /&gt;
&lt;br /&gt;
# Compile rkdeveloptools (see [https://github.com/rockchip-linux/rkdeveloptool project repository] for instructions)&lt;br /&gt;
# Unscrew bottom cover.&lt;br /&gt;
# Remove the metal shield surrounding main CPU - it is held in place by a tape and micro clamps on pcb. The clamps can be released with a pry tool and some force. [https://forum.pine64.org/showthread.php?tid=11073&amp;amp;pid=75096#pid75096 This forum post with photos] shows how it can be done.&lt;br /&gt;
# Disconnect all (!!!) boot devices (emmc, sdcard, usb).&lt;br /&gt;
# Locate SPI flash (number 29 on picture with Pinebook Pro internals).&lt;br /&gt;
# Connect your PBP with USB-C - USB-A cable to another computer (PBP on USB-C side)&lt;br /&gt;
# Turn on PBP, short pins CLK and VSS and press reset. It should get your PBP into maskrom mode. (see picture)&lt;br /&gt;
&lt;br /&gt;
[[File:Spi.png]]&lt;br /&gt;
&lt;br /&gt;
= Zeroing out SPI Flash =&lt;br /&gt;
&lt;br /&gt;
On another computer:&lt;br /&gt;
&lt;br /&gt;
1. Create a file filled with zeros&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dd if=/dev/zero of=zerospi bs=1M count=16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Write the file to SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool wl 0 zerospi&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6793</id>
		<title>Pinebook Pro SPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6793"/>
		<updated>2020-09-01T01:59:07Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Removed unneeded heading but keep outline&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Writing to the Pinebook Pro SPI =&lt;br /&gt;
&lt;br /&gt;
'''Necessary Items:'''&lt;br /&gt;
&lt;br /&gt;
1. A screwdriver&amp;lt;br&amp;gt;&lt;br /&gt;
2. USB Type-A to USB-C cable&amp;lt;br&amp;gt;&lt;br /&gt;
3. Another Computer with a USB-A 3.0 port&lt;br /&gt;
*''Not a requirement but if you want to boot from NVMe you need:''&lt;br /&gt;
4. A bootable NVMe (i.e., with /boot/boot.txt having root=/dev/whatever_your_nvme_is plus some operating system.&lt;br /&gt;
&lt;br /&gt;
'''Procedure:'''&lt;br /&gt;
&lt;br /&gt;
1. Build and install rkdeveloptool on your other computer, find out all the info to do that on [https://github.com/rockchip-linux/rkdeveloptool their Github.]&lt;br /&gt;
&lt;br /&gt;
2. Verify correct and successful installation:&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool --version&amp;lt;/code&amp;gt; should output: &amp;lt;code&amp;gt;rkdeveloptool ver 1.3&amp;lt;/code&amp;gt;&lt;br /&gt;
3. On the same computer, make a directory to hold the necessary files.&lt;br /&gt;
:&amp;lt;code&amp;gt;mkdir ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:You will need to have two files in this directory:&lt;br /&gt;
*The db flash helper([https://droppy.ironrobin.net/%24/JWP47 rk3399_loader_spinor_v1.15.114.bin]). This prepares the SPI for a binary.&lt;br /&gt;
*The U-Boot, or other bootloader binary.&lt;br /&gt;
&lt;br /&gt;
'''Note: SPI binaries are built for SPI environment only. It will not work if you try putting it on your eMMC.'''&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;mv rk3399_loader_spinor_v1.15.114.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;mv dhiv_SPI_uboot.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;cd ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Put the Pinebook Pro into maskrom mode:&lt;br /&gt;
*Remove all bootable devices from your Pinebook Pro.&lt;br /&gt;
*Plug the Type-A end into your non-Pinebook Pro device.&lt;br /&gt;
*Plug the Type-C end into your Pinebook Pro.&lt;br /&gt;
5. Reboot the Pinebook Pro.&lt;br /&gt;
:To verify you are in maskrom mode, with your computers connected, run &amp;lt;code&amp;gt;rkdeveloptool ld&amp;lt;/code&amp;gt;&lt;br /&gt;
:You should get an output like this: '''DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=1401 Maskrom'''&lt;br /&gt;
6. Flash the flash helper db file.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Upon success, the output should read '''Downloading bootloader succeeded.'''&lt;br /&gt;
7. Flash the new SPI binary.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool wl 0 dhiv_SPI_uboot.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read: '''Write LBA from file (100%)'''.&lt;br /&gt;
8. Test the installation.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read '''Reset Device OK'''.&lt;br /&gt;
9. Run &amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt; to reboot your Pinebook Pro.&lt;br /&gt;
&lt;br /&gt;
= Recovering from broken SPI flashes/installs =&lt;br /&gt;
&lt;br /&gt;
If you accidentally soft brick your PBP there is special mode implemented called maskrom mode. In this mode the device is accessible as regular USB device and can be accessed using rkdeveloptools, especially to rewrite SPI flash or to erase it.&lt;br /&gt;
&lt;br /&gt;
Upon entering maskrom mode, the power LED on your PBP won't light up and neither will the display. Instead, your second machine, the one connected to your PBP via USB, will indicate maskrom mode by logging to journalctl.&lt;br /&gt;
&lt;br /&gt;
Below are the two known procedures to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Simple, but unreliable maskrom mode procedure ===&lt;br /&gt;
&lt;br /&gt;
According to Rockchip documentation, these steps should work; unfortunately, many users have reported them to be unsuccessful. You may need to repeat these steps several times for them to work.&lt;br /&gt;
&lt;br /&gt;
# Press and hold recovery button.&lt;br /&gt;
# Short press reset.&lt;br /&gt;
# Release recovery button after about 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Why this procedure is unreliable is not clear, but there are two suspicions:&lt;br /&gt;
&lt;br /&gt;
* The button is not working correctly or is just prone to failures.&lt;br /&gt;
* The problem occurs only when the SPI was previously flashed.&lt;br /&gt;
&lt;br /&gt;
The button works by shorting two pins in an SPI device. But in some cases it just does nothing. Fortunately, the two pins can shorted by hand, as described in the next procedure.&lt;br /&gt;
&lt;br /&gt;
=== Demanding, but reliable maskrom mode procedure ===&lt;br /&gt;
&lt;br /&gt;
# Compile rkdeveloptools (see [https://github.com/rockchip-linux/rkdeveloptool project repository] for instructions)&lt;br /&gt;
# Unscrew bottom cover.&lt;br /&gt;
# Remove the metal shield surrounding main CPU - it is held in place by a tape and micro clamps on pcb. The clamps can be released with a pry tool and some force. [https://forum.pine64.org/showthread.php?tid=11073&amp;amp;pid=75096#pid75096 This forum post with photos] shows how it can be done.&lt;br /&gt;
# Disconnect all (!!!) boot devices (emmc, sdcard, usb).&lt;br /&gt;
# Locate SPI flash (number 29 on picture with Pinebook Pro internals).&lt;br /&gt;
# Connect your PBP with USB-C - USB-A cable to another computer (PBP on USB-C side)&lt;br /&gt;
# Turn on PBP, short pins CLK and VSS and press reset. It should get your PBP into maskrom mode. (see picture)&lt;br /&gt;
&lt;br /&gt;
[[File:Spi.png]]&lt;br /&gt;
&lt;br /&gt;
= Zeroing out SPI Flash =&lt;br /&gt;
&lt;br /&gt;
On another computer:&lt;br /&gt;
&lt;br /&gt;
1. Create a file filled with zeros&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dd if=/dev/zero of=zerospi bs=1M count=16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Write the file to SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool wl 0 zerospi&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6792</id>
		<title>Pinebook Pro SPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6792"/>
		<updated>2020-09-01T01:49:29Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Correct typo: one missing word&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pinebook Pro SPI =&lt;br /&gt;
== Writing to the Pinebook Pro SPI ==&lt;br /&gt;
&lt;br /&gt;
'''Necessary Items:'''&lt;br /&gt;
&lt;br /&gt;
1. A screwdriver&amp;lt;br&amp;gt;&lt;br /&gt;
2. USB Type-A to USB-C cable&amp;lt;br&amp;gt;&lt;br /&gt;
3. Another Computer with a USB-A 3.0 port&lt;br /&gt;
*''Not a requirement but if you want to boot from NVMe you need:''&lt;br /&gt;
4. A bootable NVMe (i.e., with /boot/boot.txt having root=/dev/whatever_your_nvme_is plus some operating system.&lt;br /&gt;
&lt;br /&gt;
'''Procedure:'''&lt;br /&gt;
&lt;br /&gt;
1. Build and install rkdeveloptool on your other computer, find out all the info to do that on [https://github.com/rockchip-linux/rkdeveloptool their Github.]&lt;br /&gt;
&lt;br /&gt;
2. Verify correct and successful installation:&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool --version&amp;lt;/code&amp;gt; should output: &amp;lt;code&amp;gt;rkdeveloptool ver 1.3&amp;lt;/code&amp;gt;&lt;br /&gt;
3. On the same computer, make a directory to hold the necessary files.&lt;br /&gt;
:&amp;lt;code&amp;gt;mkdir ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:You will need to have two files in this directory:&lt;br /&gt;
*The db flash helper([https://droppy.ironrobin.net/%24/JWP47 rk3399_loader_spinor_v1.15.114.bin]). This prepares the SPI for a binary.&lt;br /&gt;
*The U-Boot, or other bootloader binary.&lt;br /&gt;
&lt;br /&gt;
'''Note: SPI binaries are built for SPI environment only. It will not work if you try putting it on your eMMC.'''&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;mv rk3399_loader_spinor_v1.15.114.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;mv dhiv_SPI_uboot.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;cd ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Put the Pinebook Pro into maskrom mode:&lt;br /&gt;
*Remove all bootable devices from your Pinebook Pro.&lt;br /&gt;
*Plug the Type-A end into your non-Pinebook Pro device.&lt;br /&gt;
*Plug the Type-C end into your Pinebook Pro.&lt;br /&gt;
5. Reboot the Pinebook Pro.&lt;br /&gt;
:To verify you are in maskrom mode, with your computers connected, run &amp;lt;code&amp;gt;rkdeveloptool ld&amp;lt;/code&amp;gt;&lt;br /&gt;
:You should get an output like this: '''DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=1401 Maskrom'''&lt;br /&gt;
6. Flash the flash helper db file.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Upon success, the output should read '''Downloading bootloader succeeded.'''&lt;br /&gt;
7. Flash the new SPI binary.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool wl 0 dhiv_SPI_uboot.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read: '''Write LBA from file (100%)'''.&lt;br /&gt;
8. Test the installation.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read '''Reset Device OK'''.&lt;br /&gt;
9. Run &amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt; to reboot your Pinebook Pro.&lt;br /&gt;
&lt;br /&gt;
== Recovering from broken SPI flashes/installs ==&lt;br /&gt;
&lt;br /&gt;
If you accidentally soft brick your PBP there is special mode implemented called maskrom mode. In this mode the device is accessible as regular USB device and can be accessed using rkdeveloptools, especially to rewrite SPI flash or to erase it.&lt;br /&gt;
&lt;br /&gt;
Upon entering maskrom mode, the power LED on your PBP won't light up and neither will the display. Instead, your second machine, the one connected to your PBP via USB, will indicate maskrom mode by logging to journalctl.&lt;br /&gt;
&lt;br /&gt;
Below are the two known procedures to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Simple, but unreliable maskrom mode procedure ===&lt;br /&gt;
&lt;br /&gt;
According to Rockchip documentation, these steps should work; unfortunately, many users have reported them to be unsuccessful. You may need to repeat these steps several times for them to work.&lt;br /&gt;
&lt;br /&gt;
# Press and hold recovery button.&lt;br /&gt;
# Short press reset.&lt;br /&gt;
# Release recovery button after about 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Why this procedure is unreliable is not clear, but there are two suspicions:&lt;br /&gt;
&lt;br /&gt;
* The button is not working correctly or is just prone to failures.&lt;br /&gt;
* The problem occurs only when the SPI was previously flashed.&lt;br /&gt;
&lt;br /&gt;
The button works by shorting two pins in an SPI device. But in some cases it just does nothing. Fortunately, the two pins can shorted by hand, as described in the next procedure.&lt;br /&gt;
&lt;br /&gt;
=== Demanding, but reliable maskrom mode procedure ===&lt;br /&gt;
&lt;br /&gt;
# Compile rkdeveloptools (see [https://github.com/rockchip-linux/rkdeveloptool project repository] for instructions)&lt;br /&gt;
# Unscrew bottom cover.&lt;br /&gt;
# Remove the metal shield surrounding main CPU - it is held in place by a tape and micro clamps on pcb. The clamps can be released with a pry tool and some force. [https://forum.pine64.org/showthread.php?tid=11073&amp;amp;pid=75096#pid75096 This forum post with photos] shows how it can be done.&lt;br /&gt;
# Disconnect all (!!!) boot devices (emmc, sdcard, usb).&lt;br /&gt;
# Locate SPI flash (number 29 on picture with Pinebook Pro internals).&lt;br /&gt;
# Connect your PBP with USB-C - USB-A cable to another computer (PBP on USB-C side)&lt;br /&gt;
# Turn on PBP, short pins CLK and VSS and press reset. It should get your PBP into maskrom mode. (see picture)&lt;br /&gt;
&lt;br /&gt;
[[File:Spi.png]]&lt;br /&gt;
&lt;br /&gt;
== Zeroing out SPI Flash ==&lt;br /&gt;
&lt;br /&gt;
On another computer:&lt;br /&gt;
&lt;br /&gt;
1. Create a file filled with zeros&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dd if=/dev/zero of=zerospi bs=1M count=16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Write the file to SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool wl 0 zerospi&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6791</id>
		<title>Pinebook Pro SPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6791"/>
		<updated>2020-09-01T01:48:55Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Fix syntax for link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pinebook Pro SPI =&lt;br /&gt;
== Writing to the Pinebook Pro SPI ==&lt;br /&gt;
&lt;br /&gt;
'''Necessary Items:'''&lt;br /&gt;
&lt;br /&gt;
1. A screwdriver&amp;lt;br&amp;gt;&lt;br /&gt;
2. USB Type-A to USB-C cable&amp;lt;br&amp;gt;&lt;br /&gt;
3. Another Computer with a USB-A 3.0 port&lt;br /&gt;
*''Not a requirement but if you want to boot from NVMe you need:''&lt;br /&gt;
4. A bootable NVMe (i.e., with /boot/boot.txt having root=/dev/whatever_your_nvme_is plus some operating system.&lt;br /&gt;
&lt;br /&gt;
'''Procedure:'''&lt;br /&gt;
&lt;br /&gt;
1. Build and install rkdeveloptool on your other computer, find out all the info to do that on [https://github.com/rockchip-linux/rkdeveloptool their Github.]&lt;br /&gt;
&lt;br /&gt;
2. Verify correct and successful installation:&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool --version&amp;lt;/code&amp;gt; should output: &amp;lt;code&amp;gt;rkdeveloptool ver 1.3&amp;lt;/code&amp;gt;&lt;br /&gt;
3. On the same computer, make a directory to hold the necessary files.&lt;br /&gt;
:&amp;lt;code&amp;gt;mkdir ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:You will need to have two files in this directory:&lt;br /&gt;
*The db flash helper([https://droppy.ironrobin.net/%24/JWP47 rk3399_loader_spinor_v1.15.114.bin]). This prepares the SPI for a binary.&lt;br /&gt;
*The U-Boot, or other bootloader binary.&lt;br /&gt;
&lt;br /&gt;
'''Note: SPI binaries are built for SPI environment only. It will not work if you try putting it on your eMMC.'''&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;mv rk3399_loader_spinor_v1.15.114.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;mv dhiv_SPI_uboot.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;cd ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Put the Pinebook Pro into maskrom mode:&lt;br /&gt;
*Remove all bootable devices from your Pinebook Pro.&lt;br /&gt;
*Plug the Type-A end into your non-Pinebook Pro device.&lt;br /&gt;
*Plug the Type-C end into your Pinebook Pro.&lt;br /&gt;
5. Reboot the Pinebook Pro.&lt;br /&gt;
:To verify you are in maskrom mode, with your computers connected, run &amp;lt;code&amp;gt;rkdeveloptool ld&amp;lt;/code&amp;gt;&lt;br /&gt;
:You should get an output like this: '''DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=1401 Maskrom'''&lt;br /&gt;
6. Flash the flash helper db file.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Upon success, the output should read '''Downloading bootloader succeeded.'''&lt;br /&gt;
7. Flash the new SPI binary.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool wl 0 dhiv_SPI_uboot.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read: '''Write LBA from file (100%)'''.&lt;br /&gt;
8. Test the installation.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read '''Reset Device OK'''.&lt;br /&gt;
9. Run &amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt; to reboot your Pinebook Pro.&lt;br /&gt;
&lt;br /&gt;
== Recovering from broken SPI flashes/installs ==&lt;br /&gt;
&lt;br /&gt;
If you accidentally soft brick your PBP there is special mode implemented called maskrom mode. In this mode the device is accessible as regular USB device and can be accessed using rkdeveloptools, especially to rewrite SPI flash or to erase it.&lt;br /&gt;
&lt;br /&gt;
Upon entering maskrom mode, the power LED on your PBP won't light up and neither will the display. Instead, your second machine, the one connected to your PBP via USB, will indicate maskrom mode by logging to journalctl.&lt;br /&gt;
&lt;br /&gt;
Below are the two known procedures to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Simple, but unreliable maskrom mode procedure ===&lt;br /&gt;
&lt;br /&gt;
According to Rockchip documentation, these steps should work; unfortunately, many users have reported them to be unsuccessful. You may need to repeat these steps several times for them to work.&lt;br /&gt;
&lt;br /&gt;
# Press and hold recovery button.&lt;br /&gt;
# Short press reset.&lt;br /&gt;
# Release recovery button after about 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Why this procedure is unreliable is not clear, but there are two suspicions:&lt;br /&gt;
&lt;br /&gt;
* The button is not working correctly or is just prone to failures.&lt;br /&gt;
* The problem occurs only when the SPI was previously flashed.&lt;br /&gt;
&lt;br /&gt;
The button works by shorting two pins in an SPI device. But in some cases it just does nothing. Fortunately, the two pins can shorted by hand, as described in the next procedure.&lt;br /&gt;
&lt;br /&gt;
=== Demanding, but reliable maskrom mode procedure ===&lt;br /&gt;
&lt;br /&gt;
# Compile rkdeveloptools (see [https://github.com/rockchip-linux/rkdeveloptool project repository] for instructions)&lt;br /&gt;
# Unscrew bottom cover.&lt;br /&gt;
# Remove the metal shield surrounding main CPU - it is held in place by a tape and micro clamps on pcb. The clamps can released with a pry tool and some force. [https://forum.pine64.org/showthread.php?tid=11073&amp;amp;pid=75096#pid75096 This forum post with photos] shows how it can be done.&lt;br /&gt;
# Disconnect all (!!!) boot devices (emmc, sdcard, usb).&lt;br /&gt;
# Locate SPI flash (number 29 on picture with Pinebook Pro internals).&lt;br /&gt;
# Connect your PBP with USB-C - USB-A cable to another computer (PBP on USB-C side)&lt;br /&gt;
# Turn on PBP, short pins CLK and VSS and press reset. It should get your PBP into maskrom mode. (see picture)&lt;br /&gt;
&lt;br /&gt;
[[File:Spi.png]]&lt;br /&gt;
&lt;br /&gt;
== Zeroing out SPI Flash ==&lt;br /&gt;
&lt;br /&gt;
On another computer:&lt;br /&gt;
&lt;br /&gt;
1. Create a file filled with zeros&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dd if=/dev/zero of=zerospi bs=1M count=16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Write the file to SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool wl 0 zerospi&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6790</id>
		<title>Pinebook Pro SPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6790"/>
		<updated>2020-09-01T01:46:27Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Add detail about metal shield removal including a forum link with photos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pinebook Pro SPI =&lt;br /&gt;
== Writing to the Pinebook Pro SPI ==&lt;br /&gt;
&lt;br /&gt;
'''Necessary Items:'''&lt;br /&gt;
&lt;br /&gt;
1. A screwdriver&amp;lt;br&amp;gt;&lt;br /&gt;
2. USB Type-A to USB-C cable&amp;lt;br&amp;gt;&lt;br /&gt;
3. Another Computer with a USB-A 3.0 port&lt;br /&gt;
*''Not a requirement but if you want to boot from NVMe you need:''&lt;br /&gt;
4. A bootable NVMe (i.e., with /boot/boot.txt having root=/dev/whatever_your_nvme_is plus some operating system.&lt;br /&gt;
&lt;br /&gt;
'''Procedure:'''&lt;br /&gt;
&lt;br /&gt;
1. Build and install rkdeveloptool on your other computer, find out all the info to do that on [https://github.com/rockchip-linux/rkdeveloptool their Github.]&lt;br /&gt;
&lt;br /&gt;
2. Verify correct and successful installation:&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool --version&amp;lt;/code&amp;gt; should output: &amp;lt;code&amp;gt;rkdeveloptool ver 1.3&amp;lt;/code&amp;gt;&lt;br /&gt;
3. On the same computer, make a directory to hold the necessary files.&lt;br /&gt;
:&amp;lt;code&amp;gt;mkdir ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:You will need to have two files in this directory:&lt;br /&gt;
*The db flash helper([https://droppy.ironrobin.net/%24/JWP47 rk3399_loader_spinor_v1.15.114.bin]). This prepares the SPI for a binary.&lt;br /&gt;
*The U-Boot, or other bootloader binary.&lt;br /&gt;
&lt;br /&gt;
'''Note: SPI binaries are built for SPI environment only. It will not work if you try putting it on your eMMC.'''&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;mv rk3399_loader_spinor_v1.15.114.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;mv dhiv_SPI_uboot.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;cd ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Put the Pinebook Pro into maskrom mode:&lt;br /&gt;
*Remove all bootable devices from your Pinebook Pro.&lt;br /&gt;
*Plug the Type-A end into your non-Pinebook Pro device.&lt;br /&gt;
*Plug the Type-C end into your Pinebook Pro.&lt;br /&gt;
5. Reboot the Pinebook Pro.&lt;br /&gt;
:To verify you are in maskrom mode, with your computers connected, run &amp;lt;code&amp;gt;rkdeveloptool ld&amp;lt;/code&amp;gt;&lt;br /&gt;
:You should get an output like this: '''DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=1401 Maskrom'''&lt;br /&gt;
6. Flash the flash helper db file.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Upon success, the output should read '''Downloading bootloader succeeded.'''&lt;br /&gt;
7. Flash the new SPI binary.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool wl 0 dhiv_SPI_uboot.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read: '''Write LBA from file (100%)'''.&lt;br /&gt;
8. Test the installation.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read '''Reset Device OK'''.&lt;br /&gt;
9. Run &amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt; to reboot your Pinebook Pro.&lt;br /&gt;
&lt;br /&gt;
== Recovering from broken SPI flashes/installs ==&lt;br /&gt;
&lt;br /&gt;
If you accidentally soft brick your PBP there is special mode implemented called maskrom mode. In this mode the device is accessible as regular USB device and can be accessed using rkdeveloptools, especially to rewrite SPI flash or to erase it.&lt;br /&gt;
&lt;br /&gt;
Upon entering maskrom mode, the power LED on your PBP won't light up and neither will the display. Instead, your second machine, the one connected to your PBP via USB, will indicate maskrom mode by logging to journalctl.&lt;br /&gt;
&lt;br /&gt;
Below are the two known procedures to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Simple, but unreliable maskrom mode procedure ===&lt;br /&gt;
&lt;br /&gt;
According to Rockchip documentation, these steps should work; unfortunately, many users have reported them to be unsuccessful. You may need to repeat these steps several times for them to work.&lt;br /&gt;
&lt;br /&gt;
# Press and hold recovery button.&lt;br /&gt;
# Short press reset.&lt;br /&gt;
# Release recovery button after about 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Why this procedure is unreliable is not clear, but there are two suspicions:&lt;br /&gt;
&lt;br /&gt;
* The button is not working correctly or is just prone to failures.&lt;br /&gt;
* The problem occurs only when the SPI was previously flashed.&lt;br /&gt;
&lt;br /&gt;
The button works by shorting two pins in an SPI device. But in some cases it just does nothing. Fortunately, the two pins can shorted by hand, as described in the next procedure.&lt;br /&gt;
&lt;br /&gt;
=== Demanding, but reliable maskrom mode procedure ===&lt;br /&gt;
&lt;br /&gt;
# Compile rkdeveloptools --&amp;gt; https://github.com/rockchip-linux/rkdeveloptool.&lt;br /&gt;
# Unscrew bottom cover.&lt;br /&gt;
# Remove the metal shield surrounding main CPU - it is held in place by a tape and micro clamps on pcb. The clamps can released with a pry tool and some force. [https://forum.pine64.org/showthread.php?tid=11073&amp;amp;pid=75096#pid75096 This forum post with photos] shows how it can be done.&lt;br /&gt;
# Disconnect all (!!!) boot devices (emmc, sdcard, usb).&lt;br /&gt;
# Locate SPI flash (number 29 on picture with Pinebook Pro internals).&lt;br /&gt;
# Connect your PBP with USB-C - USB-A cable to another computer (PBP on USB-C side)&lt;br /&gt;
# Turn on PBP, short pins CLK and VSS and press reset. It should get your PBP into maskrom mode. (see picture)&lt;br /&gt;
&lt;br /&gt;
[[File:Spi.png]]&lt;br /&gt;
&lt;br /&gt;
== Zeroing out SPI Flash ==&lt;br /&gt;
&lt;br /&gt;
On another computer:&lt;br /&gt;
&lt;br /&gt;
1. Create a file filled with zeros&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dd if=/dev/zero of=zerospi bs=1M count=16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Write the file to SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool wl 0 zerospi&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6789</id>
		<title>Pinebook Pro SPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6789"/>
		<updated>2020-09-01T01:33:25Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Separate the two maskrom modes into sections and adjust phrasing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pinebook Pro SPI =&lt;br /&gt;
== Writing to the Pinebook Pro SPI ==&lt;br /&gt;
&lt;br /&gt;
'''Necessary Items:'''&lt;br /&gt;
&lt;br /&gt;
1. A screwdriver&amp;lt;br&amp;gt;&lt;br /&gt;
2. USB Type-A to USB-C cable&amp;lt;br&amp;gt;&lt;br /&gt;
3. Another Computer with a USB-A 3.0 port&lt;br /&gt;
*''Not a requirement but if you want to boot from NVMe you need:''&lt;br /&gt;
4. A bootable NVMe (i.e., with /boot/boot.txt having root=/dev/whatever_your_nvme_is plus some operating system.&lt;br /&gt;
&lt;br /&gt;
'''Procedure:'''&lt;br /&gt;
&lt;br /&gt;
1. Build and install rkdeveloptool on your other computer, find out all the info to do that on [https://github.com/rockchip-linux/rkdeveloptool their Github.]&lt;br /&gt;
&lt;br /&gt;
2. Verify correct and successful installation:&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool --version&amp;lt;/code&amp;gt; should output: &amp;lt;code&amp;gt;rkdeveloptool ver 1.3&amp;lt;/code&amp;gt;&lt;br /&gt;
3. On the same computer, make a directory to hold the necessary files.&lt;br /&gt;
:&amp;lt;code&amp;gt;mkdir ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:You will need to have two files in this directory:&lt;br /&gt;
*The db flash helper([https://droppy.ironrobin.net/%24/JWP47 rk3399_loader_spinor_v1.15.114.bin]). This prepares the SPI for a binary.&lt;br /&gt;
*The U-Boot, or other bootloader binary.&lt;br /&gt;
&lt;br /&gt;
'''Note: SPI binaries are built for SPI environment only. It will not work if you try putting it on your eMMC.'''&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;mv rk3399_loader_spinor_v1.15.114.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;mv dhiv_SPI_uboot.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;cd ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Put the Pinebook Pro into maskrom mode:&lt;br /&gt;
*Remove all bootable devices from your Pinebook Pro.&lt;br /&gt;
*Plug the Type-A end into your non-Pinebook Pro device.&lt;br /&gt;
*Plug the Type-C end into your Pinebook Pro.&lt;br /&gt;
5. Reboot the Pinebook Pro.&lt;br /&gt;
:To verify you are in maskrom mode, with your computers connected, run &amp;lt;code&amp;gt;rkdeveloptool ld&amp;lt;/code&amp;gt;&lt;br /&gt;
:You should get an output like this: '''DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=1401 Maskrom'''&lt;br /&gt;
6. Flash the flash helper db file.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Upon success, the output should read '''Downloading bootloader succeeded.'''&lt;br /&gt;
7. Flash the new SPI binary.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool wl 0 dhiv_SPI_uboot.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read: '''Write LBA from file (100%)'''.&lt;br /&gt;
8. Test the installation.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read '''Reset Device OK'''.&lt;br /&gt;
9. Run &amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt; to reboot your Pinebook Pro.&lt;br /&gt;
&lt;br /&gt;
== Recovering from broken SPI flashes/installs ==&lt;br /&gt;
&lt;br /&gt;
If you accidentally soft brick your PBP there is special mode implemented called maskrom mode. In this mode the device is accessible as regular USB device and can be accessed using rkdeveloptools, especially to rewrite SPI flash or to erase it.&lt;br /&gt;
&lt;br /&gt;
Upon entering maskrom mode, the power LED on your PBP won't light up and neither will the display. Instead, your second machine, the one connected to your PBP via USB, will indicate maskrom mode by logging to journalctl.&lt;br /&gt;
&lt;br /&gt;
Below are the two known procedures to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Simple, but unreliable maskrom mode procedure ===&lt;br /&gt;
&lt;br /&gt;
According to Rockchip documentation, these steps should work; unfortunately, many users have reported them to be unsuccessful. You may need to repeat these steps several times for them to work.&lt;br /&gt;
&lt;br /&gt;
# Press and hold recovery button.&lt;br /&gt;
# Short press reset.&lt;br /&gt;
# Release recovery button after about 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Why this procedure is unreliable is not clear, but there are two suspicions:&lt;br /&gt;
&lt;br /&gt;
* The button is not working correctly or is just prone to failures.&lt;br /&gt;
* The problem occurs only when the SPI was previously flashed.&lt;br /&gt;
&lt;br /&gt;
The button works by shorting two pins in an SPI device. But in some cases it just does nothing. Fortunately, the two pins can shorted by hand, as described in the next procedure.&lt;br /&gt;
&lt;br /&gt;
=== Demanding, but reliable maskrom mode procedure ===&lt;br /&gt;
&lt;br /&gt;
# Compile rkdeveloptools --&amp;gt; https://github.com/rockchip-linux/rkdeveloptool.&lt;br /&gt;
# Unscrew bottom cover.&lt;br /&gt;
# Remove the metal shield surrounding main CPU - it is held in place by a tape and micro clamps on pcb.&lt;br /&gt;
# Disconnect all (!!!) boot devices (emmc, sdcard, usb).&lt;br /&gt;
# Locate SPI flash (number 29 on picture with Pinebook Pro internals).&lt;br /&gt;
# Connect your PBP with USB-C - USB-A cable to another computer (PBP on USB-C side)&lt;br /&gt;
# Turn on PBP, short pins CLK and VSS and press reset. It should get your PBP into maskrom mode. (see picture)&lt;br /&gt;
&lt;br /&gt;
[[File:Spi.png]]&lt;br /&gt;
&lt;br /&gt;
== Zeroing out SPI Flash ==&lt;br /&gt;
&lt;br /&gt;
On another computer:&lt;br /&gt;
&lt;br /&gt;
1. Create a file filled with zeros&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dd if=/dev/zero of=zerospi bs=1M count=16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Write the file to SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool wl 0 zerospi&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6788</id>
		<title>Pinebook Pro SPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6788"/>
		<updated>2020-09-01T00:58:06Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Use proper list syntax&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pinebook Pro SPI =&lt;br /&gt;
== Writing to the Pinebook Pro SPI ==&lt;br /&gt;
&lt;br /&gt;
'''Necessary Items:'''&lt;br /&gt;
&lt;br /&gt;
1. A screwdriver&amp;lt;br&amp;gt;&lt;br /&gt;
2. USB Type-A to USB-C cable&amp;lt;br&amp;gt;&lt;br /&gt;
3. Another Computer with a USB-A 3.0 port&lt;br /&gt;
*''Not a requirement but if you want to boot from NVMe you need:''&lt;br /&gt;
4. A bootable NVMe (i.e., with /boot/boot.txt having root=/dev/whatever_your_nvme_is plus some operating system.&lt;br /&gt;
&lt;br /&gt;
'''Procedure:'''&lt;br /&gt;
&lt;br /&gt;
1. Build and install rkdeveloptool on your other computer, find out all the info to do that on [https://github.com/rockchip-linux/rkdeveloptool their Github.]&lt;br /&gt;
&lt;br /&gt;
2. Verify correct and successful installation:&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool --version&amp;lt;/code&amp;gt; should output: &amp;lt;code&amp;gt;rkdeveloptool ver 1.3&amp;lt;/code&amp;gt;&lt;br /&gt;
3. On the same computer, make a directory to hold the necessary files.&lt;br /&gt;
:&amp;lt;code&amp;gt;mkdir ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:You will need to have two files in this directory:&lt;br /&gt;
*The db flash helper([https://droppy.ironrobin.net/%24/JWP47 rk3399_loader_spinor_v1.15.114.bin]). This prepares the SPI for a binary.&lt;br /&gt;
*The U-Boot, or other bootloader binary.&lt;br /&gt;
&lt;br /&gt;
'''Note: SPI binaries are built for SPI environment only. It will not work if you try putting it on your eMMC.'''&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;mv rk3399_loader_spinor_v1.15.114.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;mv dhiv_SPI_uboot.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;cd ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Put the Pinebook Pro into maskrom mode:&lt;br /&gt;
*Remove all bootable devices from your Pinebook Pro.&lt;br /&gt;
*Plug the Type-A end into your non-Pinebook Pro device.&lt;br /&gt;
*Plug the Type-C end into your Pinebook Pro.&lt;br /&gt;
5. Reboot the Pinebook Pro.&lt;br /&gt;
:To verify you are in maskrom mode, with your computers connected, run &amp;lt;code&amp;gt;rkdeveloptool ld&amp;lt;/code&amp;gt;&lt;br /&gt;
:You should get an output like this: '''DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=1401 Maskrom'''&lt;br /&gt;
6. Flash the flash helper db file.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Upon success, the output should read '''Downloading bootloader succeeded.'''&lt;br /&gt;
7. Flash the new SPI binary.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool wl 0 dhiv_SPI_uboot.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read: '''Write LBA from file (100%)'''.&lt;br /&gt;
8. Test the installation.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read '''Reset Device OK'''.&lt;br /&gt;
9. Run &amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt; to reboot your Pinebook Pro.&lt;br /&gt;
&lt;br /&gt;
== Recovering from broken SPI flashes/installs ==&lt;br /&gt;
&lt;br /&gt;
If you accidentally soft brick your PBP there is special mode implemented called maskrom mode. In this mode the device is accessible as regular USB device and can be accessed using rkdeveloptools, especially to rewrite SPI flash or to erase it.&lt;br /&gt;
&lt;br /&gt;
Upon entering maskrom mode, the power LED on your PBP won't light up and neither will the display. Instead, your second machine, the one connected to your PBP via USB, will indicate maskrom mode by logging to journalctl.&lt;br /&gt;
&lt;br /&gt;
According to Rockchip documentation it should be accessible following below procedure:&lt;br /&gt;
&lt;br /&gt;
# Press and hold recovery button.&amp;lt;br&amp;gt;&lt;br /&gt;
# Short press reset.&amp;lt;br&amp;gt;&lt;br /&gt;
# Release recovery button after about 3 seconds.&lt;br /&gt;
&lt;br /&gt;
You may need to repeat these steps several times to successfully get into maskrom mode. The nature of this problem is not clear. There are two suspicions:&lt;br /&gt;
&lt;br /&gt;
*the button is not working correctly or is just prone to failures.&lt;br /&gt;
*the problem occurs only when the SPI was previously flashed.&lt;br /&gt;
&lt;br /&gt;
The button works by shorting two pins in an SPI device. But in some cases it just does nothing. So if you experience such problem there is a way to overcome it. You can short the two pins by yourself.&lt;br /&gt;
&lt;br /&gt;
Procedure:&lt;br /&gt;
&lt;br /&gt;
# Compile rkdeveloptools --&amp;gt; https://github.com/rockchip-linux/rkdeveloptool. &amp;lt;br&amp;gt;&lt;br /&gt;
# Unscrew bottom cover.&amp;lt;br&amp;gt;&lt;br /&gt;
# Remove the metal shield surrounding main CPU - it is held in place by a tape and micro clamps on pcb.&amp;lt;br&amp;gt;&lt;br /&gt;
# Disconnect all (!!!) boot devices (emmc, sdcard, usb).&amp;lt;br&amp;gt;&lt;br /&gt;
# Locate SPI flash (number 29 on picture with Pinebook Pro internals).&amp;lt;br&amp;gt;&lt;br /&gt;
# Connect your PBP with USB-C - USB-A cable to another computer (PBP on USB-C side).&amp;lt;br&amp;gt;&lt;br /&gt;
# Turn on PBP, short pins CLK and VSS and press reset. It should get your PBP into maskrom mode. (see picture)&lt;br /&gt;
&lt;br /&gt;
[[File:Spi.png]]&lt;br /&gt;
&lt;br /&gt;
== Zeroing out SPI Flash ==&lt;br /&gt;
&lt;br /&gt;
On another computer:&lt;br /&gt;
&lt;br /&gt;
1. Create a file filled with zeros&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dd if=/dev/zero of=zerospi bs=1M count=16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Write the file to SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool wl 0 zerospi&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6787</id>
		<title>Pinebook Pro SPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6787"/>
		<updated>2020-09-01T00:50:03Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Mention what signs to expect when entering maskrom mode&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pinebook Pro SPI =&lt;br /&gt;
== Writing to the Pinebook Pro SPI ==&lt;br /&gt;
&lt;br /&gt;
'''Necessary Items:'''&lt;br /&gt;
&lt;br /&gt;
1. A screwdriver&amp;lt;br&amp;gt;&lt;br /&gt;
2. USB Type-A to USB-C cable&amp;lt;br&amp;gt;&lt;br /&gt;
3. Another Computer with a USB-A 3.0 port&lt;br /&gt;
*''Not a requirement but if you want to boot from NVMe you need:''&lt;br /&gt;
4. A bootable NVMe (i.e., with /boot/boot.txt having root=/dev/whatever_your_nvme_is plus some operating system.&lt;br /&gt;
&lt;br /&gt;
'''Procedure:'''&lt;br /&gt;
&lt;br /&gt;
1. Build and install rkdeveloptool on your other computer, find out all the info to do that on [https://github.com/rockchip-linux/rkdeveloptool their Github.]&lt;br /&gt;
&lt;br /&gt;
2. Verify correct and successful installation:&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool --version&amp;lt;/code&amp;gt; should output: &amp;lt;code&amp;gt;rkdeveloptool ver 1.3&amp;lt;/code&amp;gt;&lt;br /&gt;
3. On the same computer, make a directory to hold the necessary files.&lt;br /&gt;
:&amp;lt;code&amp;gt;mkdir ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:You will need to have two files in this directory:&lt;br /&gt;
*The db flash helper([https://droppy.ironrobin.net/%24/JWP47 rk3399_loader_spinor_v1.15.114.bin]). This prepares the SPI for a binary.&lt;br /&gt;
*The U-Boot, or other bootloader binary.&lt;br /&gt;
&lt;br /&gt;
'''Note: SPI binaries are built for SPI environment only. It will not work if you try putting it on your eMMC.'''&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;mv rk3399_loader_spinor_v1.15.114.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;mv dhiv_SPI_uboot.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;cd ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Put the Pinebook Pro into maskrom mode:&lt;br /&gt;
*Remove all bootable devices from your Pinebook Pro.&lt;br /&gt;
*Plug the Type-A end into your non-Pinebook Pro device.&lt;br /&gt;
*Plug the Type-C end into your Pinebook Pro.&lt;br /&gt;
5. Reboot the Pinebook Pro.&lt;br /&gt;
:To verify you are in maskrom mode, with your computers connected, run &amp;lt;code&amp;gt;rkdeveloptool ld&amp;lt;/code&amp;gt;&lt;br /&gt;
:You should get an output like this: '''DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=1401 Maskrom'''&lt;br /&gt;
6. Flash the flash helper db file.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Upon success, the output should read '''Downloading bootloader succeeded.'''&lt;br /&gt;
7. Flash the new SPI binary.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool wl 0 dhiv_SPI_uboot.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read: '''Write LBA from file (100%)'''.&lt;br /&gt;
8. Test the installation.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read '''Reset Device OK'''.&lt;br /&gt;
9. Run &amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt; to reboot your Pinebook Pro.&lt;br /&gt;
&lt;br /&gt;
== Recovering from broken SPI flashes/installs ==&lt;br /&gt;
&lt;br /&gt;
If you accidentally soft brick your PBP there is special mode implemented called maskrom mode. In this mode the device is accessible as regular USB device and can be accessed using rkdeveloptools, especially to rewrite SPI flash or to erase it.&lt;br /&gt;
&lt;br /&gt;
Upon entering maskrom mode, the power LED on your PBP won't light up and neither will the display. Instead, your second machine, the one connected to your PBP via USB, will indicate maskrom mode by logging to journalctl.&lt;br /&gt;
&lt;br /&gt;
According to Rockchip documentation it should be accessible following below procedure:&lt;br /&gt;
&lt;br /&gt;
1. Press and hold recovery button.&amp;lt;br&amp;gt;&lt;br /&gt;
2. Short press reset.&amp;lt;br&amp;gt;&lt;br /&gt;
3. Release recovery button after about 3 seconds.&lt;br /&gt;
&lt;br /&gt;
You may need to repeat these steps several times to successfully get into maskrom mode. The nature of this problem is not clear. There are two suspicions:&lt;br /&gt;
&lt;br /&gt;
*the button is not working correctly or is just prone to failures.&lt;br /&gt;
*the problem occurs only when the SPI was previously flashed.&lt;br /&gt;
&lt;br /&gt;
The button works by shorting two pins in an SPI device. But in some cases it just does nothing. So if you experience such problem there is a way to overcome it. You can short the two pins by yourself.&lt;br /&gt;
&lt;br /&gt;
Procedure:&lt;br /&gt;
&lt;br /&gt;
1. Compile rkdeveloptools --&amp;gt; https://github.com/rockchip-linux/rkdeveloptool. &amp;lt;br&amp;gt;&lt;br /&gt;
2. Unscrew bottom cover.&amp;lt;br&amp;gt;&lt;br /&gt;
3. Remove the metal shield surrounding main CPU - it is held in place by a tape and micro clamps on pcb.&amp;lt;br&amp;gt;&lt;br /&gt;
4. Disconnect all (!!!) boot devices (emmc, sdcard, usb).&amp;lt;br&amp;gt;&lt;br /&gt;
5. Locate SPI flash (number 29 on picture with Pinebook Pro internals).&amp;lt;br&amp;gt;&lt;br /&gt;
6. Connect your PBP with USB-C - USB-A cable to another computer (PBP on USB-C side).&amp;lt;br&amp;gt;&lt;br /&gt;
7. Turn on PBP, short pins CLK and VSS and press reset. It should get your PBP into maskrom mode. (see picture)&lt;br /&gt;
&lt;br /&gt;
[[File:Spi.png]]&lt;br /&gt;
&lt;br /&gt;
== Zeroing out SPI Flash ==&lt;br /&gt;
&lt;br /&gt;
On another computer:&lt;br /&gt;
&lt;br /&gt;
1. Create a file filled with zeros&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dd if=/dev/zero of=zerospi bs=1M count=16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Write the file to SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool wl 0 zerospi&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6786</id>
		<title>Pinebook Pro SPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Pinebook_Pro_SPI&amp;diff=6786"/>
		<updated>2020-09-01T00:34:36Z</updated>

		<summary type="html">&lt;p&gt;Ian-S-McB: Add article outline&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pinebook Pro SPI =&lt;br /&gt;
== Writing to the Pinebook Pro SPI ==&lt;br /&gt;
&lt;br /&gt;
'''Necessary Items:'''&lt;br /&gt;
&lt;br /&gt;
1. A screwdriver&amp;lt;br&amp;gt;&lt;br /&gt;
2. USB Type-A to USB-C cable&amp;lt;br&amp;gt;&lt;br /&gt;
3. Another Computer with a USB-A 3.0 port&lt;br /&gt;
*''Not a requirement but if you want to boot from NVMe you need:''&lt;br /&gt;
4. A bootable NVMe (i.e., with /boot/boot.txt having root=/dev/whatever_your_nvme_is plus some operating system.&lt;br /&gt;
&lt;br /&gt;
'''Procedure:'''&lt;br /&gt;
&lt;br /&gt;
1. Build and install rkdeveloptool on your other computer, find out all the info to do that on [https://github.com/rockchip-linux/rkdeveloptool their Github.]&lt;br /&gt;
&lt;br /&gt;
2. Verify correct and successful installation:&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool --version&amp;lt;/code&amp;gt; should output: &amp;lt;code&amp;gt;rkdeveloptool ver 1.3&amp;lt;/code&amp;gt;&lt;br /&gt;
3. On the same computer, make a directory to hold the necessary files.&lt;br /&gt;
:&amp;lt;code&amp;gt;mkdir ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:You will need to have two files in this directory:&lt;br /&gt;
*The db flash helper([https://droppy.ironrobin.net/%24/JWP47 rk3399_loader_spinor_v1.15.114.bin]). This prepares the SPI for a binary.&lt;br /&gt;
*The U-Boot, or other bootloader binary.&lt;br /&gt;
&lt;br /&gt;
'''Note: SPI binaries are built for SPI environment only. It will not work if you try putting it on your eMMC.'''&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;mv rk3399_loader_spinor_v1.15.114.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;mv dhiv_SPI_uboot.bin ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;cd ~/PBPBoot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Put the Pinebook Pro into maskrom mode:&lt;br /&gt;
*Remove all bootable devices from your Pinebook Pro.&lt;br /&gt;
*Plug the Type-A end into your non-Pinebook Pro device.&lt;br /&gt;
*Plug the Type-C end into your Pinebook Pro.&lt;br /&gt;
5. Reboot the Pinebook Pro.&lt;br /&gt;
:To verify you are in maskrom mode, with your computers connected, run &amp;lt;code&amp;gt;rkdeveloptool ld&amp;lt;/code&amp;gt;&lt;br /&gt;
:You should get an output like this: '''DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=1401 Maskrom'''&lt;br /&gt;
6. Flash the flash helper db file.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Upon success, the output should read '''Downloading bootloader succeeded.'''&lt;br /&gt;
7. Flash the new SPI binary.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool wl 0 dhiv_SPI_uboot.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read: '''Write LBA from file (100%)'''.&lt;br /&gt;
8. Test the installation.&lt;br /&gt;
:&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&lt;br /&gt;
:Successful output should read '''Reset Device OK'''.&lt;br /&gt;
9. Run &amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt; to reboot your Pinebook Pro.&lt;br /&gt;
&lt;br /&gt;
== Recovering from broken SPI flashes/installs ==&lt;br /&gt;
&lt;br /&gt;
If you accidentally soft brick your PBP there is special mode implemented called maskrom mode. In this mode the device is accessible as regular USB device and can be accessed using rkdeveloptools, especially to rewrite SPI flash or to erase it.&lt;br /&gt;
&lt;br /&gt;
According to Rockchip documentation it should be accessible following below procedure:&lt;br /&gt;
&lt;br /&gt;
1. Press and hold recovery button.&amp;lt;br&amp;gt;&lt;br /&gt;
2. Short press reset.&amp;lt;br&amp;gt;&lt;br /&gt;
3. Release recovery button after about 3 seconds.&lt;br /&gt;
&lt;br /&gt;
You may need to repeat these steps several times to successfully get into maskrom mode. The nature of this problem is not clear. There are two suspicions:&lt;br /&gt;
&lt;br /&gt;
*the button is not working correctly or is just prone to failures.&lt;br /&gt;
*the problem occurs only when the SPI was previously flashed.&lt;br /&gt;
&lt;br /&gt;
The button works by shorting two pins in an SPI device. But in some cases it just does nothing. So if you experience such problem there is a way to overcome it. You can short the two pins by yourself.&lt;br /&gt;
&lt;br /&gt;
Procedure:&lt;br /&gt;
&lt;br /&gt;
1. Compile rkdeveloptools --&amp;gt; https://github.com/rockchip-linux/rkdeveloptool. &amp;lt;br&amp;gt;&lt;br /&gt;
2. Unscrew bottom cover.&amp;lt;br&amp;gt;&lt;br /&gt;
3. Remove the metal shield surrounding main CPU - it is held in place by a tape and micro clamps on pcb.&amp;lt;br&amp;gt;&lt;br /&gt;
4. Disconnect all (!!!) boot devices (emmc, sdcard, usb).&amp;lt;br&amp;gt;&lt;br /&gt;
5. Locate SPI flash (number 29 on picture with Pinebook Pro internals).&amp;lt;br&amp;gt;&lt;br /&gt;
6. Connect your PBP with USB-C - USB-A cable to another computer (PBP on USB-C side).&amp;lt;br&amp;gt;&lt;br /&gt;
7. Turn on PBP, short pins CLK and VSS and press reset. It should get your PBP into maskrom mode. (see picture)&lt;br /&gt;
&lt;br /&gt;
[[File:Spi.png]]&lt;br /&gt;
&lt;br /&gt;
== Zeroing out SPI Flash ==&lt;br /&gt;
&lt;br /&gt;
On another computer:&lt;br /&gt;
&lt;br /&gt;
1. Create a file filled with zeros&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dd if=/dev/zero of=zerospi bs=1M count=16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Write the file to SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool db rk3399_loader_spinor_v1.15.114.bin&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool wl 0 zerospi&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool td&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rkdeveloptool rd&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ian-S-McB</name></author>
	</entry>
</feed>