<?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=Mweigand</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=Mweigand"/>
	<link rel="alternate" type="text/html" href="https://wiki.pine64.org/wiki/Special:Contributions/Mweigand"/>
	<updated>2026-04-05T18:03:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development/UART&amp;diff=21707</id>
		<title>PineNote Development/UART</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development/UART&amp;diff=21707"/>
		<updated>2024-12-31T08:56:37Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: Restructure the PineNote UART-dongle page: show stock uart picture and usage first and move the custom dongle section down&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Pn_uart_connection.jpg|thumb|Batch 1+2 UART dongle in use]]&lt;br /&gt;
&lt;br /&gt;
This page contains information on creating and using a [https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter UART] dongle for the [[PineNote]].&lt;br /&gt;
The PineNote was shipped with a compatible UART dongle, but replacements are not available to order in case of loss or hardware fault.&lt;br /&gt;
Thankfully it is not difficult to make your own from easily-acquired components and a small bit of soldering.&lt;br /&gt;
&lt;br /&gt;
Fear not if you've never soldered anything before!&lt;br /&gt;
This serves as an excellent first soldering project.&lt;br /&gt;
Borrow the tools from a friend, local hackerspace, or tool library.&lt;br /&gt;
Pine64 also makes [[Pinecil|a nice soldering iron]] themselves.&lt;br /&gt;
&lt;br /&gt;
A PineNote UART dongle enables you to:&lt;br /&gt;
# Interact with the system boot menu&lt;br /&gt;
# Read system events in real time as the PineNote is used&lt;br /&gt;
# Fix the PineNote without opening the case if something goes wrong while [[PineNote Development/Flashing|flashing it]]&lt;br /&gt;
&lt;br /&gt;
Since the PineNote is an embedded system, interfacing with it during boot is more complicated than with an ordinary computer.&lt;br /&gt;
The UART dongle enables you to do this.&lt;br /&gt;
&lt;br /&gt;
The PineNote factory firmware runs UART at a baud rate of 1500000 bps, 8 data bits, 1 stop bit, no parity and no flow control.&lt;br /&gt;
The process by which the PineNote design was modified to include closed-case UART is documented [[PineNote/Hardware Changes/Closed Case UART|here]].&lt;br /&gt;
&lt;br /&gt;
== Stock dongle ==&lt;br /&gt;
{{Warning|The second PineNote batch, which started shipping during the first half of November 2024, is the last batch that has the USB UART dongle included in the box.}}&lt;br /&gt;
&lt;br /&gt;
The stock UART dongle included with the PineNote is a simple device that plugs directly into the PineNote's USB-C port.  The dongle exposes a female USB-C port, which the user connects to their host computer to get access to the serial console UART.  This design unfortunately ruled out passthrough USB connections, where the user connects to the PineNote via UART and USB simultaneously.  The dongle is not currently available separately for purchase.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Pinenote-stock-uart-dongle-front.jpg|Front&lt;br /&gt;
Pinenote-stock-uart-dongle-back.jpg|Back&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using the dongle ==&lt;br /&gt;
&lt;br /&gt;
First, use your UART dongle to physically connect your PineNote to your computer:&lt;br /&gt;
# Plug the USB-UART adapter into one of your computer's USB ports&lt;br /&gt;
# Plug the USB-C breakout board into the USB-C port on the bottom of your PineNote; the orientation matters, so try both and remember which one works&lt;br /&gt;
&lt;br /&gt;
Once the hardware is connected, we need some program on your computer to communicate over that connection with 1500000 (1.5 million) bps, 8 data bits, 1 stop bit, no parity and no flow control.&lt;br /&gt;
Here's how you do that:&lt;br /&gt;
# Identify the USB-UART adapter in your &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory by running &amp;lt;code&amp;gt;ls /dev&amp;lt;/code&amp;gt; with it plugged in, unplugging it, then again running &amp;lt;code&amp;gt;ls /dev&amp;lt;/code&amp;gt; and seeing what changed; it is likely to be called &amp;lt;code&amp;gt;/dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check your permissions; run &amp;lt;code&amp;gt;ls -l /dev/ttyUSB0&amp;lt;/code&amp;gt; to see which groups have access to the dongle (probably &amp;lt;code&amp;gt;dialout&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;uucp&amp;lt;/code&amp;gt;), and add your user to that group; remember you need to log out before group changes take effect&lt;br /&gt;
# Install [https://salsa.debian.org/minicom-team/minicom minicom] (or [https://askubuntu.com/q/40959 some other option], but the instructions below are written for &amp;lt;code&amp;gt;minicom&amp;lt;/code&amp;gt;)&lt;br /&gt;
# In a terminal window, run &amp;lt;code&amp;gt;minicom -D /dev/ttyUSB0 -b 1500000&amp;lt;/code&amp;gt; or run &amp;lt;code&amp;gt;minicom --setup&amp;lt;/code&amp;gt; to specify these settings by default&lt;br /&gt;
# Alternatively, you can also &amp;lt;code&amp;gt;picocom&amp;lt;/code&amp;gt; for the connection: &amp;lt;code&amp;gt;picocom --baud 1500000 --databits 8 --stopbits 1 --flow none --parity none /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# Side note: If you are often using the UART dongle, it could make sense to define a shell alias for this:&lt;br /&gt;
  &amp;lt;code&amp;gt;alias ppc='picocom --baud 1500000 --databits 8 --stopbits 1 --flow none --parity none /dev/ttyUSB0'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the software is set up, power-cycle your PineNote; as the system boots you should see text appearing in your terminal window.&lt;br /&gt;
You can exit the session with &amp;lt;code&amp;gt;ctrl+a x&amp;lt;/code&amp;gt; then pressing &amp;lt;code&amp;gt;Enter&amp;lt;/code&amp;gt; to confirm.&lt;br /&gt;
Run &amp;lt;code&amp;gt;man minicom&amp;lt;/code&amp;gt; for more details.&lt;br /&gt;
&lt;br /&gt;
=== Sending commands (minicom) ===&lt;br /&gt;
&lt;br /&gt;
Pressing &amp;lt;code&amp;gt;ctrl+a&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;minicom&amp;lt;/code&amp;gt; enables you to send keystrokes to your PineNote.&lt;br /&gt;
The most important of these is &amp;lt;code&amp;gt;ctrl+c&amp;lt;/code&amp;gt;, which if sent during boot will put you in the U-Boot command prompt.&lt;br /&gt;
You can then type &amp;lt;code&amp;gt;help&amp;lt;/code&amp;gt; to list possible commands.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting Stock UART dongle ===&lt;br /&gt;
&lt;br /&gt;
If you don't see any text in your terminal as the PineNote boots, or the text is garbled, try the following:&lt;br /&gt;
&lt;br /&gt;
* Connect your USB-C breakout board to your PineNote in the opposite orientation&lt;br /&gt;
* Run &amp;lt;code&amp;gt;minicom&amp;lt;/code&amp;gt; as sudo in case your user doesn't have appropriate permissions&lt;br /&gt;
* Ensure you are setting the baud rate to 1500000 (1.5 million), and (less importantly because these are probably used by default) 8 data bits, 1 stop bit, no parity and no flow control&lt;br /&gt;
&lt;br /&gt;
If you can see text but are having trouble sending &amp;lt;code&amp;gt;ctrl+c&amp;lt;/code&amp;gt; to the PineNote during boot:&lt;br /&gt;
* Be sure you're typing &amp;lt;code&amp;gt;ctrl+a&amp;lt;/code&amp;gt; first, or whatever escape sequence your terminal emulator uses&lt;br /&gt;
* Send it right as the PineNote is booting, before the loading bar appears on screen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building a new UART dongle ==&lt;br /&gt;
&lt;br /&gt;
[[File:Pinenote-uart-dongle.jpeg|thumb|Basic non-stock PineNote UART dongle]]&lt;br /&gt;
&lt;br /&gt;
A typical self-built PineNote UART dongle design has the following components:&lt;br /&gt;
# A USB-C breakout board with a male connector exposing the 24 pins of the PineNote's USB-C port&lt;br /&gt;
# A USB-UART adapter, to plug into a USB port of the computer you'll use to interface with the PineNote&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Jump_wire Jump wires] to connect specific breakout board pins to pins on the USB-UART adapter&lt;br /&gt;
# Two 1,000 Ohm through-hole resistors to splice into the jump wires&lt;br /&gt;
# Electrical tape or heat shrink to wrap connectors and prevent shorts&lt;br /&gt;
&lt;br /&gt;
You will also need the following tools:&lt;br /&gt;
# Soldering iron with solder&lt;br /&gt;
# Wire cutters &amp;amp; strippers&lt;br /&gt;
&lt;br /&gt;
The PineNote's internal UART system is documented in [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf this schematic].&lt;br /&gt;
The purpose of all 24 USB-C pins is documented [https://en.wikipedia.org/wiki/USB-C#Receptacles on the USB-C Wikipedia page].&lt;br /&gt;
We are interested in three sets of pins:&lt;br /&gt;
# The SBU1 (A8) and SBU2 (B8) side band use pins&lt;br /&gt;
# The CC1 (A5) and CC2 (B5) configuration channel pins&lt;br /&gt;
# The GND [https://en.wikipedia.org/wiki/Ground_(electricity) ground return] pins (A1, A12, B1, and B12)&lt;br /&gt;
&lt;br /&gt;
In the PineNote UART schematic you can see (on the bottom right diagram labeled &amp;lt;code&amp;gt;USB_TYPEC_Male&amp;lt;/code&amp;gt;) the side band pins are given the labels &amp;lt;code&amp;gt;UART2_TX_SUB1&amp;lt;/code&amp;gt; for A8 and &amp;lt;code&amp;gt;UART2_RX_SUB2&amp;lt;/code&amp;gt; for B8.&lt;br /&gt;
The first (TX) is used for transmitting data and the second (RX) is used for receiving data, from the perspective of the PineNote.&lt;br /&gt;
Also note the configuration channel pins labeled &amp;lt;code&amp;gt;TYPEC_CC1&amp;lt;/code&amp;gt; for A5 and &amp;lt;code&amp;gt;TYPEC_CC2&amp;lt;/code&amp;gt; for B5.&lt;br /&gt;
The diagram shows they must be connected to a 3.3V source in parallel, mediated by resistors.&lt;br /&gt;
Per the USB-C standard, when these pins are pulled high this indicates the device should enter [https://en.wikipedia.org/wiki/USB-C#Debug_Accessory_Mode Debug Accessory Mode]; connecting them to a voltage source &amp;amp; limiting the current with [https://www.electronics-tutorials.ws/logic/pull-up-resistor.html pull-up resistors] accomplishes this.&lt;br /&gt;
The schematic indicates 10,000 Ohm resistors, but community member Visti Andresen (talpadk) experimented and found 1,000 Ohm resistors work better.&lt;br /&gt;
Our mission is to wire up pins from a USB-UART adapter to a USB-C breakout board following these requirements.&lt;br /&gt;
&lt;br /&gt;
=== Buying components ===&lt;br /&gt;
&lt;br /&gt;
There are many possible USB-C breakout board designs available for purchase online.&lt;br /&gt;
One particularly useful design is a &amp;quot;passthrough&amp;quot; or &amp;quot;intercept&amp;quot; style, with both male and female USB-C ports.&lt;br /&gt;
This design is more versatile in case you want to reuse it in other projects, and also enables you to connect to the PineNote via UART and USB at the same time.&lt;br /&gt;
An example of this product can be found [https://pmdway.com/products/usb-3-1-type-c-male-to-female-breakout-test-board here], although you are encouraged to shop around for cheaper options.&lt;br /&gt;
If you're fine with a bit more soldering, there is a very cheap one [https://www.ebay.com/itm/275407037613 here].&lt;br /&gt;
&lt;br /&gt;
Similarly, there are many USB-UART adapter designs available.&lt;br /&gt;
These devices plug into your computer and expose a number of pins themselves, connecting to specific pins on the breakout board with jump wires.&lt;br /&gt;
It is important to get a 3.3V model, or at least a model with the option of 3.3V, as a 5V source might fry the PineNote.&lt;br /&gt;
[https://pmdway.com/products/usb-to-ttl-serial-cp2104-6-pin-converter-module Here] is one example with jump wires included, although you are again encouraged to shop around for alternatives.&lt;br /&gt;
&lt;br /&gt;
All other necessary components of our UART dongle are readily &amp;amp; cheaply available in many locations.&lt;br /&gt;
&lt;br /&gt;
=== Splicing resistors ===&lt;br /&gt;
&lt;br /&gt;
[[File:PineNote-UART-Y-pull-up-resistor-cable.jpg|thumb|The desired end result; wrap removed from resistors for illustration purposes.]]&lt;br /&gt;
&lt;br /&gt;
This is the only difficult part of the whole process.&lt;br /&gt;
Your goal is to create a Y-shaped jump wire with 1,000 Ohm through-hole resistors spliced into each of the twin arms.&lt;br /&gt;
The solitary leg will connect to a 3.3V source on your USB-UART adapter.&lt;br /&gt;
The twin arms will connect to the configuration channel pins on your USB-C breakout board.&lt;br /&gt;
Per the USB-C standard, when these pins are pulled high this indicates the device should enter [https://en.wikipedia.org/wiki/USB-C#Debug_Accessory_Mode Debug Accessory Mode]; connecting them to a voltage source &amp;amp; limiting the current with [https://www.electronics-tutorials.ws/logic/pull-up-resistor.html pull-up resistors] accomplishes this.&lt;br /&gt;
&lt;br /&gt;
For this project you'll need:&lt;br /&gt;
# A soldering iron with solder&lt;br /&gt;
# Wire cutters &amp;amp; strippers&lt;br /&gt;
# 2x jumper wires, male/female as compatible with your board designs&lt;br /&gt;
# 2x 1,000 Ohm through-hole resistors&lt;br /&gt;
# Electrical tape or heat shrink wrap&lt;br /&gt;
&lt;br /&gt;
Consider buying extra jumper wires and resistors in case you mess up.&lt;br /&gt;
Also double-check that you have 1K resistors with [https://resistorcolorcodecalc.com/ this color code calculator].&lt;br /&gt;
Although the PineNote UART schematic says to use 10K Ohm resistors, community member Visti Andresen (talpadk) experimented and found 1K is more appropriate.&lt;br /&gt;
Assemble your Y-cable as follows:&lt;br /&gt;
# Graft one jump wire onto the other to form a Y shape using [https://www.youtube.com/watch?v=KpiEfuhPqew this] technique, ensuring solitary leg end is compatible with your USB-UART adapter&lt;br /&gt;
# Splice resistors into the twin arms using [https://www.youtube.com/watch?v=RMgMVqqjPZ0 this] technique&lt;br /&gt;
# Splice remaining jump wire onto the ends of the resistors, ensuring ends are compatible with your USB-C breakout board&lt;br /&gt;
# Cover all exposed wire &amp;amp; resistors with electrical tape or heat shrink wrap&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
&lt;br /&gt;
Once you have acquired all necessary components, assemble the UART dongle as follows:&lt;br /&gt;
# Connect a jump wire from the GND pin on the USB-UART adapter to any one of the four GND pins on the USB-C breakout board (A1, A12, B1, or B12)&lt;br /&gt;
# Connect a jump wire from the RXD pin on the USB-UART adapter to the &amp;lt;code&amp;gt;UART2_TX_SUB1&amp;lt;/code&amp;gt; SBU1 pin on the USB-C breakout board (A8)&lt;br /&gt;
# Connect a jump wire from the TXD pin on the USB-UART adapter to the &amp;lt;code&amp;gt;UART2_RX_SUB2&amp;lt;/code&amp;gt; SBU2 pin on the USB-C breakout board (B8)&lt;br /&gt;
# Connect your Y-shaped jump wire from the 3.3V source pin on the USB-UART adapter to the CC1 and CC2 pins on the USB-C breakout board (A5 and B5)&lt;br /&gt;
# Wrap all metal connectors in electrical tape or heat shrink to prevent accidental shorts&lt;br /&gt;
&lt;br /&gt;
Be '''very certain''' of your connections for the 3.3V source and its cable, as there is a real risk of irreparably frying your PineNote if they're wrong!&lt;br /&gt;
Especially be sure you are connecting to a 3.3V source and not a 5V source.&lt;br /&gt;
&lt;br /&gt;
Note that if you mix up the TX/RX pins, it will still work but the USB-C breakout board will just plug into the PineNote upside down.&lt;br /&gt;
You can therefore choose which orientation you want by swapping the TX/RX pin connections.&lt;br /&gt;
Experience shows that RX/TX-TX/RX connections will have the PineNote face down while connected, while RX/RX-TX/TX connections will put the PineNote face up.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting Custom UART dongles ===&lt;br /&gt;
&lt;br /&gt;
If you don't see any text in your terminal as the PineNote boots, or the text is garbled, try the following:&lt;br /&gt;
* Ensure your GND, RX/TX, and CC jump wires are connected to the correct pins on both the USB-UART adapter and the USB-C breakout board&lt;br /&gt;
&lt;br /&gt;
If you can see text but are having trouble sending &amp;lt;code&amp;gt;ctrl+c&amp;lt;/code&amp;gt; to the PineNote during boot:&lt;br /&gt;
* Double-check your Y-shaped pull-up resistor cable; if this isn't working properly you'll probably be able to read text but not send text&lt;br /&gt;
&lt;br /&gt;
== USB passthrough (only custom-built dongles) ==&lt;br /&gt;
&lt;br /&gt;
If your USB-C breakout board has a passthrough/intercept design, you can connect to your PineNote over USB and UART at the same time.&lt;br /&gt;
This can be useful when you're doing development work on the PineNote boot process so you don't have to continually reconnect cables.&lt;br /&gt;
You'll need a USB-A to USB-C cable, connecting directly from your computer's USB-A hub to your USB-C breakout board's female USB-C port.&lt;br /&gt;
It's important to connect directly from USB-A, without any intermediate USB-C components.&lt;br /&gt;
Note that connecting a live USB cable to your USB-C breakout board in this way dramatically increases the danger of frying your PineNote with a short, so you should only do this if all connectors are safely wrapped in electrical tape.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=File:Pn_uart_connection.jpg&amp;diff=21706</id>
		<title>File:Pn uart connection.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=File:Pn_uart_connection.jpg&amp;diff=21706"/>
		<updated>2024-12-31T08:45:54Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: A picture of an UART connection between laptop and PineNote&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
A picture of an UART connection between laptop and PineNote&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{PD|PD}}&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21705</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21705"/>
		<updated>2024-12-30T07:29:47Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: /* State of the software */ add warning to remove lightdm in batch-2 PineNotes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 Model-A single-board computer and powered by Rockchip RK3566 quad-core ARM Cortex-A55 64-bit SoC with Mali G52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
{{Warning|'''For Batch-2 (2024) PineNotes''': The version of Debian-based Linux distribution shipped with the second PineNote batch contains a U-Boot build that prevents suspend-to-RAM from working correctly and make entering MaskROM mode using a magnet not possible.  This was caused by the unfortunate timing, so the factory ended up installing version of the operating system image that contained these issues.  The required fixes are already available in the shipped Linux distribution, but they need to be [https://gist.github.com/m-weigand/efb1bef6097611d327533ab67b76903b installed manually] by the users.}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|'''For Batch-2 (2024) PineNotes''': The Batch 2 operating system is based on Debian Trixie, which is still in development flux. An issue with /lib64 symlinks was encountered for the specific built of the image that ships with the PineNotes of 2024. If you encounter update failures, please take a look at: [https://github.com/PNDeb/pinenote-debian-image/issues/99 this Github issues]}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|'''For Batch-2 (2024) PineNotes''': In order to prevent Gnome from starting after updates, it is recommend to uninstall the lightdm package: &amp;lt;code&amp;gt;sudo apt remove lightdm&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the Rockchip RK3566 SoC, which was released in 2021. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer that uses the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific to the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
In October 2024, the second PineNote batch was announced. This batch started shipping during the first half of November 2024 with a Debian-based operating system, currently developed here: [https://github.com/PNDeb/pinenote-debian-image]. Please note, however, that this batch is still aimed at developers with Linux and embedded experience, and should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://pine64.org/community/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
While there are no robust and tested operating system releases for the PineNote available at this time, various linux distributions can be installed on the PineNote, with various degrees of working functionality.&lt;br /&gt;
Operating system software releases, or efforts to create them, can be found in the [[PineNote Software Releases]] section. Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Flashing]] for general flashing instructions of data to the PineNote&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
==== Linux Kernel ====&lt;br /&gt;
&lt;br /&gt;
* If you are looking for a working kernel for the PineNote, please see her: [https://github.com/m-weigand/linux/]&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
* BSP Linux SDK version 4.19 for the PineNote and [[Quartz64|Quartz64 Model A]]:&lt;br /&gt;
** [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct download] from ''pine64.org'' (32.67GB, MD5 of the TAR-GZip file ''24554419aec29700add97167a3a4c9ed'')&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz Mirror by mwfc]&lt;br /&gt;
** An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
==== User Space ====&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
==== Android ====&lt;br /&gt;
&lt;br /&gt;
{{Note|As of November 2024 there is no working Android build available for the PineNote!}}&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for the PineNote and [[Quartz64|Quartz64 Model A]. This is the Android SDK build for 10.3&amp;quot; eink panels on Quartz64 Model A. &lt;br /&gt;
&lt;br /&gt;
Download:&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct download] from ''pine64.org'' (72.88GB, MD5 of the TAR-GZip file ''293a550584298de4fb95ceae18103672'')&lt;br /&gt;
* [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz Mirror by mwfc]&lt;br /&gt;
* An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
* Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
==== Related ====&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
* [[PineNote/Battery Replacement]]&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
{{Note|See main article: [[PineNote Development/UART]]}}&lt;br /&gt;
{{Warning|The second PineNote batch, which started shipping during the first half of November 2024, is the last batch that has the USB UART dongle included in the box.}}&lt;br /&gt;
{{Note|The UART adapter is not symmetrically wired, make sure to orient it with the components oriented towards the screen!}}&lt;br /&gt;
&lt;br /&gt;
The USB [https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter UART] dongle delivered with the PineNote allows you to have access to its serial console via USB-C Debug Accessory Mode (DAM) without having to disassemble the device.  The factory-installed operating system runs the serial console at the 1,500,000 bps speed, 8 data bits and 1 stop bit, no parity, and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
It is relatively easy to build your own UART interface with a USB-C breakout board (for example https://www.ebay.com/itm/275407037613), two resistors and a 3.3V USB serial adapter. It is basically just two 1K pull up resistors (R3, R4), the data sheet values of 10K isn't whats on the real hardware, see the [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf schematic]. The pull ups enable the serial output on SBU1 and SBU2 you can use with any 3.3V USB serial adapter.&lt;br /&gt;
&lt;br /&gt;
The UART dongle is not necessary to flash the PineNote, but is essential if something goes wrong to fix it without having to open the case.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* RAM: 4 GB LPDDR4&lt;br /&gt;
* Flash: 128 GB eMMC (soldered)&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector, conforms to the USB Type-C Cable and Connector Specification&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch, the second batch (2024) ships with a purely passive pen)&lt;br /&gt;
* Optional Cover (included in the first and second production batches)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM: 4 GB LPDDR4&lt;br /&gt;
* Flash: 128 GB eMMC (soldered)&lt;br /&gt;
&lt;br /&gt;
== Information, Schematics, and Certifications ==&lt;br /&gt;
&lt;br /&gt;
Version v1.2 of the PineNote is the production version sold through the Pine Store as Developer Edition and Community Edition:&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file]&amp;lt;br /&amp;gt;When building a USB-C console breakout board, please be aware that a 10k CC pin pull-up is too weak to pull CC to a logically high level.  Replacing it to a lower resistance, such as 1k, is recommended.&lt;br /&gt;
* [[:File:Pinenote quick start guide en ger fr pl.pdf|PineNote Quick Start Guide]]&amp;lt;br /&amp;gt;Developer Edition uses an active pen, which is different than the passive EMR pen described in the guide.&lt;br /&gt;
&lt;br /&gt;
Version v1.1 of the PineNote is used by developers who received the early prototype, whose schematic is provided for reference only: &lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3566 SoC information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, release permission from Rockchip]&lt;br /&gt;
&lt;br /&gt;
Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
* [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 version 1.01 datasheet]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
* ---&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
* [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
&lt;br /&gt;
E-ink Panel information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
&lt;br /&gt;
Touch Screen information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
* Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
&lt;br /&gt;
WiFi/BT module information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
&lt;br /&gt;
G Sensor information:&lt;br /&gt;
* [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
&lt;br /&gt;
Audio Amplifier information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[PineNote Press]]&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21704</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21704"/>
		<updated>2024-12-30T07:25:08Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: /* State of the software */  Fix warnings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 Model-A single-board computer and powered by Rockchip RK3566 quad-core ARM Cortex-A55 64-bit SoC with Mali G52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
{{Warning|**For Batch-2 (2024) PineNotes**: The version of Debian-based Linux distribution shipped with the second PineNote batch contains a U-Boot build that prevents suspend-to-RAM from working correctly and make entering MaskROM mode using a magnet not possible.  This was caused by the unfortunate timing, so the factory ended up installing version of the operating system image that contained these issues.  The required fixes are already available in the shipped Linux distribution, but they need to be [https://gist.github.com/m-weigand/efb1bef6097611d327533ab67b76903b installed manually] by the users.}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|**For Batch-2 (2024) PineNotes**: The Batch 2 operating system is based on Debian Trixie, which is still in development flux. An issue with /lib64 symlinks was encountered for the specific built of the image that ships with the PineNotes of 2024. If you encounter update failures, please take a look at: [https://github.com/PNDeb/pinenote-debian-image/issues/99 this Github issues]}}&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the Rockchip RK3566 SoC, which was released in 2021. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer that uses the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific to the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
In October 2024, the second PineNote batch was announced. This batch started shipping during the first half of November 2024 with a Debian-based operating system, currently developed here: [https://github.com/PNDeb/pinenote-debian-image]. Please note, however, that this batch is still aimed at developers with Linux and embedded experience, and should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://pine64.org/community/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
While there are no robust and tested operating system releases for the PineNote available at this time, various linux distributions can be installed on the PineNote, with various degrees of working functionality.&lt;br /&gt;
Operating system software releases, or efforts to create them, can be found in the [[PineNote Software Releases]] section. Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Flashing]] for general flashing instructions of data to the PineNote&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
==== Linux Kernel ====&lt;br /&gt;
&lt;br /&gt;
* If you are looking for a working kernel for the PineNote, please see her: [https://github.com/m-weigand/linux/]&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
* BSP Linux SDK version 4.19 for the PineNote and [[Quartz64|Quartz64 Model A]]:&lt;br /&gt;
** [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct download] from ''pine64.org'' (32.67GB, MD5 of the TAR-GZip file ''24554419aec29700add97167a3a4c9ed'')&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz Mirror by mwfc]&lt;br /&gt;
** An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
==== User Space ====&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
==== Android ====&lt;br /&gt;
&lt;br /&gt;
{{Note|As of November 2024 there is no working Android build available for the PineNote!}}&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for the PineNote and [[Quartz64|Quartz64 Model A]. This is the Android SDK build for 10.3&amp;quot; eink panels on Quartz64 Model A. &lt;br /&gt;
&lt;br /&gt;
Download:&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct download] from ''pine64.org'' (72.88GB, MD5 of the TAR-GZip file ''293a550584298de4fb95ceae18103672'')&lt;br /&gt;
* [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz Mirror by mwfc]&lt;br /&gt;
* An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
* Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
==== Related ====&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
* [[PineNote/Battery Replacement]]&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
{{Note|See main article: [[PineNote Development/UART]]}}&lt;br /&gt;
{{Warning|The second PineNote batch, which started shipping during the first half of November 2024, is the last batch that has the USB UART dongle included in the box.}}&lt;br /&gt;
{{Note|The UART adapter is not symmetrically wired, make sure to orient it with the components oriented towards the screen!}}&lt;br /&gt;
&lt;br /&gt;
The USB [https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter UART] dongle delivered with the PineNote allows you to have access to its serial console via USB-C Debug Accessory Mode (DAM) without having to disassemble the device.  The factory-installed operating system runs the serial console at the 1,500,000 bps speed, 8 data bits and 1 stop bit, no parity, and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
It is relatively easy to build your own UART interface with a USB-C breakout board (for example https://www.ebay.com/itm/275407037613), two resistors and a 3.3V USB serial adapter. It is basically just two 1K pull up resistors (R3, R4), the data sheet values of 10K isn't whats on the real hardware, see the [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf schematic]. The pull ups enable the serial output on SBU1 and SBU2 you can use with any 3.3V USB serial adapter.&lt;br /&gt;
&lt;br /&gt;
The UART dongle is not necessary to flash the PineNote, but is essential if something goes wrong to fix it without having to open the case.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* RAM: 4 GB LPDDR4&lt;br /&gt;
* Flash: 128 GB eMMC (soldered)&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector, conforms to the USB Type-C Cable and Connector Specification&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch, the second batch (2024) ships with a purely passive pen)&lt;br /&gt;
* Optional Cover (included in the first and second production batches)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM: 4 GB LPDDR4&lt;br /&gt;
* Flash: 128 GB eMMC (soldered)&lt;br /&gt;
&lt;br /&gt;
== Information, Schematics, and Certifications ==&lt;br /&gt;
&lt;br /&gt;
Version v1.2 of the PineNote is the production version sold through the Pine Store as Developer Edition and Community Edition:&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file]&amp;lt;br /&amp;gt;When building a USB-C console breakout board, please be aware that a 10k CC pin pull-up is too weak to pull CC to a logically high level.  Replacing it to a lower resistance, such as 1k, is recommended.&lt;br /&gt;
* [[:File:Pinenote quick start guide en ger fr pl.pdf|PineNote Quick Start Guide]]&amp;lt;br /&amp;gt;Developer Edition uses an active pen, which is different than the passive EMR pen described in the guide.&lt;br /&gt;
&lt;br /&gt;
Version v1.1 of the PineNote is used by developers who received the early prototype, whose schematic is provided for reference only: &lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3566 SoC information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, release permission from Rockchip]&lt;br /&gt;
&lt;br /&gt;
Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
* [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 version 1.01 datasheet]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
* ---&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
* [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
&lt;br /&gt;
E-ink Panel information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
&lt;br /&gt;
Touch Screen information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
* Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
&lt;br /&gt;
WiFi/BT module information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
&lt;br /&gt;
G Sensor information:&lt;br /&gt;
* [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
&lt;br /&gt;
Audio Amplifier information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[PineNote Press]]&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21703</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21703"/>
		<updated>2024-12-30T07:24:22Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: /* State of the software */  Add note regarding the /lib64 issue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 Model-A single-board computer and powered by Rockchip RK3566 quad-core ARM Cortex-A55 64-bit SoC with Mali G52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
{{Warning:|**For Batch-2 (2024) PineNotes**: The version of Debian-based Linux distribution shipped with the second PineNote batch contains a U-Boot build that prevents suspend-to-RAM from working correctly and make entering MaskROM mode using a magnet not possible.  This was caused by the unfortunate timing, so the factory ended up installing version of the operating system image that contained these issues.  The required fixes are already available in the shipped Linux distribution, but they need to be [https://gist.github.com/m-weigand/efb1bef6097611d327533ab67b76903b installed manually] by the users.}}&lt;br /&gt;
&lt;br /&gt;
{{Warning:**For Batch-2 (2024) PineNotes**: The Batch 2 operating system is based on Debian Trixie, which is still in development flux. An issue with /lib64 symlinks was encountered for the specific built of the image that ships with the PineNotes of 2024. If you encounter update failures, please take a look at: [https://github.com/PNDeb/pinenote-debian-image/issues/99 this Github issues]}}&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the Rockchip RK3566 SoC, which was released in 2021. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer that uses the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific to the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
In October 2024, the second PineNote batch was announced. This batch started shipping during the first half of November 2024 with a Debian-based operating system, currently developed here: [https://github.com/PNDeb/pinenote-debian-image]. Please note, however, that this batch is still aimed at developers with Linux and embedded experience, and should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://pine64.org/community/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
While there are no robust and tested operating system releases for the PineNote available at this time, various linux distributions can be installed on the PineNote, with various degrees of working functionality.&lt;br /&gt;
Operating system software releases, or efforts to create them, can be found in the [[PineNote Software Releases]] section. Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Flashing]] for general flashing instructions of data to the PineNote&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
==== Linux Kernel ====&lt;br /&gt;
&lt;br /&gt;
* If you are looking for a working kernel for the PineNote, please see her: [https://github.com/m-weigand/linux/]&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
* BSP Linux SDK version 4.19 for the PineNote and [[Quartz64|Quartz64 Model A]]:&lt;br /&gt;
** [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct download] from ''pine64.org'' (32.67GB, MD5 of the TAR-GZip file ''24554419aec29700add97167a3a4c9ed'')&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz Mirror by mwfc]&lt;br /&gt;
** An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
==== User Space ====&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
==== Android ====&lt;br /&gt;
&lt;br /&gt;
{{Note|As of November 2024 there is no working Android build available for the PineNote!}}&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for the PineNote and [[Quartz64|Quartz64 Model A]. This is the Android SDK build for 10.3&amp;quot; eink panels on Quartz64 Model A. &lt;br /&gt;
&lt;br /&gt;
Download:&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct download] from ''pine64.org'' (72.88GB, MD5 of the TAR-GZip file ''293a550584298de4fb95ceae18103672'')&lt;br /&gt;
* [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz Mirror by mwfc]&lt;br /&gt;
* An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
* Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
==== Related ====&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
* [[PineNote/Battery Replacement]]&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
{{Note|See main article: [[PineNote Development/UART]]}}&lt;br /&gt;
{{Warning|The second PineNote batch, which started shipping during the first half of November 2024, is the last batch that has the USB UART dongle included in the box.}}&lt;br /&gt;
{{Note|The UART adapter is not symmetrically wired, make sure to orient it with the components oriented towards the screen!}}&lt;br /&gt;
&lt;br /&gt;
The USB [https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter UART] dongle delivered with the PineNote allows you to have access to its serial console via USB-C Debug Accessory Mode (DAM) without having to disassemble the device.  The factory-installed operating system runs the serial console at the 1,500,000 bps speed, 8 data bits and 1 stop bit, no parity, and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
It is relatively easy to build your own UART interface with a USB-C breakout board (for example https://www.ebay.com/itm/275407037613), two resistors and a 3.3V USB serial adapter. It is basically just two 1K pull up resistors (R3, R4), the data sheet values of 10K isn't whats on the real hardware, see the [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf schematic]. The pull ups enable the serial output on SBU1 and SBU2 you can use with any 3.3V USB serial adapter.&lt;br /&gt;
&lt;br /&gt;
The UART dongle is not necessary to flash the PineNote, but is essential if something goes wrong to fix it without having to open the case.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* RAM: 4 GB LPDDR4&lt;br /&gt;
* Flash: 128 GB eMMC (soldered)&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector, conforms to the USB Type-C Cable and Connector Specification&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch, the second batch (2024) ships with a purely passive pen)&lt;br /&gt;
* Optional Cover (included in the first and second production batches)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM: 4 GB LPDDR4&lt;br /&gt;
* Flash: 128 GB eMMC (soldered)&lt;br /&gt;
&lt;br /&gt;
== Information, Schematics, and Certifications ==&lt;br /&gt;
&lt;br /&gt;
Version v1.2 of the PineNote is the production version sold through the Pine Store as Developer Edition and Community Edition:&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file]&amp;lt;br /&amp;gt;When building a USB-C console breakout board, please be aware that a 10k CC pin pull-up is too weak to pull CC to a logically high level.  Replacing it to a lower resistance, such as 1k, is recommended.&lt;br /&gt;
* [[:File:Pinenote quick start guide en ger fr pl.pdf|PineNote Quick Start Guide]]&amp;lt;br /&amp;gt;Developer Edition uses an active pen, which is different than the passive EMR pen described in the guide.&lt;br /&gt;
&lt;br /&gt;
Version v1.1 of the PineNote is used by developers who received the early prototype, whose schematic is provided for reference only: &lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3566 SoC information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, release permission from Rockchip]&lt;br /&gt;
&lt;br /&gt;
Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
* [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 version 1.01 datasheet]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
* ---&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
* [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
&lt;br /&gt;
E-ink Panel information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
&lt;br /&gt;
Touch Screen information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
* Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
&lt;br /&gt;
WiFi/BT module information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
&lt;br /&gt;
G Sensor information:&lt;br /&gt;
* [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
&lt;br /&gt;
Audio Amplifier information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[PineNote Press]]&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21693</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21693"/>
		<updated>2024-11-26T10:52:55Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: PineNote: Add link to working kernel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 Model-A single-board computer and powered by Rockchip RK3566 quad-core ARM Cortex-A55 64-bit SoC with Mali G52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
{{Warning|The version of Debian-based Linux distribution shipped with the second PineNote batch contains a U-Boot build that prevents suspend-to-RAM from working correctly and make entering MaskROM mode using a magnet not possible.  This was caused by the unfortunate timing, so the factory ended up installing version of the operating system image that contained these issues.  The required fixes are already available in the shipped Linux distribution, but they need to be [https://gist.github.com/m-weigand/efb1bef6097611d327533ab67b76903b installed manually] by the users.}}&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the Rockchip RK3566 SoC, which was released in 2021. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer that uses the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific to the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
In October 2024, the second PineNote batch was announced. This batch started shipping during the first half of November 2024 with a Debian-based operating system, currently developed here: [https://github.com/PNDeb/pinenote-debian-image]. Please note, however, that this batch is still aimed at developers with Linux and embedded experience, and should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://pine64.org/community/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
While there are no robust and tested operating system releases for the PineNote available at this time, various linux distributions can be installed on the PineNote, with various degrees of working functionality.&lt;br /&gt;
Operating system software releases, or efforts to create them, can be found in the [[PineNote Software Releases]] section. Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Flashing]] for general flashing instructions of data to the PineNote&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
==== Linux Kernel ====&lt;br /&gt;
&lt;br /&gt;
* If you are looking for a working kernel for the PineNote, please see her: [https://github.com/m-weigand/linux/]&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
* BSP Linux SDK version 4.19 for the PineNote and [[Quartz64|Quartz64 Model A]]:&lt;br /&gt;
** [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct download] from ''pine64.org'' (32.67GB, MD5 of the TAR-GZip file ''24554419aec29700add97167a3a4c9ed'')&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz Mirror by mwfc]&lt;br /&gt;
** An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
==== User Space ====&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
==== Android ====&lt;br /&gt;
&lt;br /&gt;
{{Note|As of November 2024 there is no working Android build available for the PineNote!}}&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for the PineNote and [[Quartz64|Quartz64 Model A]. This is the Android SDK build for 10.3&amp;quot; eink panels on Quartz64 Model A. &lt;br /&gt;
&lt;br /&gt;
Download:&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct download] from ''pine64.org'' (72.88GB, MD5 of the TAR-GZip file ''293a550584298de4fb95ceae18103672'')&lt;br /&gt;
* [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz Mirror by mwfc]&lt;br /&gt;
* An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
* Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
==== Related ====&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
* [[PineNote/Battery Replacement]]&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
{{Note|See main article: [[PineNote Development/UART]]}}&lt;br /&gt;
{{Warning|The second PineNote batch, which started shipping during the first half of November 2024, is the last batch that has the USB UART dongle included in the box.}}&lt;br /&gt;
{{Note|The UART adapter is not symmetrically wired, make sure to orient it with the components oriented towards the screen!}}&lt;br /&gt;
&lt;br /&gt;
The USB [https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter UART] dongle delivered with the PineNote allows you to have access to its serial console via USB-C Debug Accessory Mode (DAM) without having to disassemble the device.  The factory-installed operating system runs the serial console at the 1,500,000 bps speed, 8 data bits and 1 stop bit, no parity, and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
It is relatively easy to build your own UART interface with a USB-C breakout board (for example https://www.ebay.com/itm/275407037613), two resistors and a 3.3V USB serial adapter. It is basically just two 1K pull up resistors (R3, R4), the data sheet values of 10K isn't whats on the real hardware, see the [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf schematic]. The pull ups enable the serial output on SBU1 and SBU2 you can use with any 3.3V USB serial adapter.&lt;br /&gt;
&lt;br /&gt;
The UART dongle is not necessary to flash the PineNote, but is essential if something goes wrong to fix it without having to open the case.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* RAM: 4 GB LPDDR4&lt;br /&gt;
* Flash: 128 GB eMMC (soldered)&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector, conforms to the USB Type-C Cable and Connector Specification&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch, the second batch (2024) ships with a purely passive pen)&lt;br /&gt;
* Optional Cover (included in the first and second production batches)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM: 4 GB LPDDR4&lt;br /&gt;
* Flash: 128 GB eMMC (soldered)&lt;br /&gt;
&lt;br /&gt;
== Information, Schematics, and Certifications ==&lt;br /&gt;
&lt;br /&gt;
Version v1.2 of the PineNote is the production version sold through the Pine Store as Developer Edition and Community Edition:&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file]&amp;lt;br /&amp;gt;When building a USB-C console breakout board, please be aware that a 10k CC pin pull-up is too weak to pull CC to a logically high level.  Replacing it to a lower resistance, such as 1k, is recommended.&lt;br /&gt;
* [[:File:Pinenote quick start guide en ger fr pl.pdf|PineNote Quick Start Guide]]&amp;lt;br /&amp;gt;Developer Edition uses an active pen, which is different than the passive EMR pen described in the guide.&lt;br /&gt;
&lt;br /&gt;
Version v1.1 of the PineNote is used by developers who received the early prototype, whose schematic is provided for reference only: &lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3566 SoC information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, release permission from Rockchip]&lt;br /&gt;
&lt;br /&gt;
Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
* [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 version 1.01 datasheet]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
* ---&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
* [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
&lt;br /&gt;
E-ink Panel information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
&lt;br /&gt;
Touch Screen information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
* Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
&lt;br /&gt;
WiFi/BT module information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
&lt;br /&gt;
G Sensor information:&lt;br /&gt;
* [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
&lt;br /&gt;
Audio Amplifier information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[PineNote Press]]&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Software_Releases&amp;diff=21692</id>
		<title>PineNote Software Releases</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Software_Releases&amp;diff=21692"/>
		<updated>2024-11-26T10:51:41Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: PineNote: rearrange software release and add link to factory files for batch 2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains a list of all available operating systems for the [[PineNote]] in alphabetical order.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debian ==&lt;br /&gt;
&lt;br /&gt;
* A full GNOME-enabled disc image is provided under [https://github.com/m-weigand/pinenote-debian-recipes/releases m-weigand/pinenote-debian-recipes/releases]. This image can be flashed using rkdeveloptool.&lt;br /&gt;
{{Info|Check the [https://github.com/m-weigand/pinenote-debian-recipes/tree/trixie trixie] branch and github actions artifacts (possibly requires github login) for builds newer than the latest release.}}&lt;br /&gt;
Note that the second batch of PineNotes (from 2024) ships with this image based on Debian trixie. Images of the factory files (without the waveform data) can be found in this [https://github.com/PNDeb/pinenote-debian-image/releases/tag/batch-2-factory-image-wo-waveform Github release].&lt;br /&gt;
* A Debian-based minimalistic rootfs/disc image can be built using &amp;lt;code&amp;gt;debos&amp;lt;/code&amp;gt; using the work from  [https://salsa.debian.org/eugenrh Eugen Răhăian]. The GNOME image linked above is building on this work.&lt;br /&gt;
&lt;br /&gt;
== Alpine ==&lt;br /&gt;
&lt;br /&gt;
See https://github.com/DorianRudolph/pinenotes#alpine&lt;br /&gt;
&lt;br /&gt;
== Arch Linux ==&lt;br /&gt;
&lt;br /&gt;
See https://github.com/DorianRudolph/pinenotes#arch-linux&lt;br /&gt;
== postmarketOS ==&lt;br /&gt;
&lt;br /&gt;
See https://wiki.postmarketos.org/wiki/PINE64_PineNote_(pine64-pinenote)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21691</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21691"/>
		<updated>2024-11-26T10:44:22Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: /* Accessories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 Model-A single-board computer and powered by Rockchip RK3566 quad-core ARM Cortex-A55 64-bit SoC with Mali G52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
{{Warning|The version of Debian-based Linux distribution shipped with the second PineNote batch contains a U-Boot build that prevents suspend-to-RAM from working correctly and make entering MaskROM mode using a magnet not possible.  This was caused by the unfortunate timing, so the factory ended up installing version of the operating system image that contained these issues.  The required fixes are already available in the shipped Linux distribution, but they need to be [https://gist.github.com/m-weigand/efb1bef6097611d327533ab67b76903b installed manually] by the users.}}&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the Rockchip RK3566 SoC, which was released in 2021. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer that uses the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific to the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
In October 2024, the second PineNote batch was announced. This batch started shipping during the first half of November 2024 with a Debian-based operating system, currently developed here: [https://github.com/PNDeb/pinenote-debian-image]. Please note, however, that this batch is still aimed at developers with Linux and embedded experience, and should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://pine64.org/community/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
While there are no robust and tested operating system releases for the PineNote available at this time, various linux distributions can be installed on the PineNote, with various degrees of working functionality.&lt;br /&gt;
Operating system software releases, or efforts to create them, can be found in the [[PineNote Software Releases]] section. Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Flashing]] for general flashing instructions of data to the PineNote&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
==== Linux Kernel ====&lt;br /&gt;
&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
* BSP Linux SDK version 4.19 for the PineNote and [[Quartz64|Quartz64 Model A]]:&lt;br /&gt;
** [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct download] from ''pine64.org'' (32.67GB, MD5 of the TAR-GZip file ''24554419aec29700add97167a3a4c9ed'')&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz Mirror by mwfc]&lt;br /&gt;
** An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
==== User Space ====&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
==== Android ====&lt;br /&gt;
&lt;br /&gt;
{{Note|As of November 2024 there is no working Android build available for the PineNote!}}&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for the PineNote and [[Quartz64|Quartz64 Model A]. This is the Android SDK build for 10.3&amp;quot; eink panels on Quartz64 Model A. &lt;br /&gt;
&lt;br /&gt;
Download:&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct download] from ''pine64.org'' (72.88GB, MD5 of the TAR-GZip file ''293a550584298de4fb95ceae18103672'')&lt;br /&gt;
* [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz Mirror by mwfc]&lt;br /&gt;
* An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
* Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
==== Related ====&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
* [[PineNote/Battery Replacement]]&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
{{Note|See main article: [[PineNote Development/UART]]}}&lt;br /&gt;
{{Warning|The second PineNote batch, which started shipping during the first half of November 2024, is the last batch that has the USB UART dongle included in the box.}}&lt;br /&gt;
{{Note|The UART adapter is not symmetrically wired, make sure to orient it with the components oriented towards the screen!}}&lt;br /&gt;
&lt;br /&gt;
The USB [https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter UART] dongle delivered with the PineNote allows you to have access to its serial console via USB-C Debug Accessory Mode (DAM) without having to disassemble the device.  The factory-installed operating system runs the serial console at the 1,500,000 bps speed, 8 data bits and 1 stop bit, no parity, and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
It is relatively easy to build your own UART interface with a USB-C breakout board (for example https://www.ebay.com/itm/275407037613), two resistors and a 3.3V USB serial adapter. It is basically just two 1K pull up resistors (R3, R4), the data sheet values of 10K isn't whats on the real hardware, see the [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf schematic]. The pull ups enable the serial output on SBU1 and SBU2 you can use with any 3.3V USB serial adapter.&lt;br /&gt;
&lt;br /&gt;
The UART dongle is not necessary to flash the PineNote, but is essential if something goes wrong to fix it without having to open the case.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* RAM: 4 GB LPDDR4&lt;br /&gt;
* Flash: 128 GB eMMC (soldered)&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector, conforms to the USB Type-C Cable and Connector Specification&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch, the second batch (2024) ships with a purely passive pen)&lt;br /&gt;
* Optional Cover (included in the first and second production batches)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM: 4 GB LPDDR4&lt;br /&gt;
* Flash: 128 GB eMMC (soldered)&lt;br /&gt;
&lt;br /&gt;
== Information, Schematics, and Certifications ==&lt;br /&gt;
&lt;br /&gt;
Version v1.2 of the PineNote is the production version sold through the Pine Store as Developer Edition and Community Edition:&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file]&amp;lt;br /&amp;gt;When building a USB-C console breakout board, please be aware that a 10k CC pin pull-up is too weak to pull CC to a logically high level.  Replacing it to a lower resistance, such as 1k, is recommended.&lt;br /&gt;
* [[:File:Pinenote quick start guide en ger fr pl.pdf|PineNote Quick Start Guide]]&amp;lt;br /&amp;gt;Developer Edition uses an active pen, which is different than the passive EMR pen described in the guide.&lt;br /&gt;
&lt;br /&gt;
Version v1.1 of the PineNote is used by developers who received the early prototype, whose schematic is provided for reference only: &lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3566 SoC information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, release permission from Rockchip]&lt;br /&gt;
&lt;br /&gt;
Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
* [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 version 1.01 datasheet]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
* ---&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
* [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
&lt;br /&gt;
E-ink Panel information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
&lt;br /&gt;
Touch Screen information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
* Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
&lt;br /&gt;
WiFi/BT module information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
&lt;br /&gt;
G Sensor information:&lt;br /&gt;
* [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
&lt;br /&gt;
Audio Amplifier information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[PineNote Press]]&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21690</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21690"/>
		<updated>2024-11-26T10:43:40Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: /* Android: Add note that we do not have a working android at the moment*/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 Model-A single-board computer and powered by Rockchip RK3566 quad-core ARM Cortex-A55 64-bit SoC with Mali G52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
{{Warning|The version of Debian-based Linux distribution shipped with the second PineNote batch contains a U-Boot build that prevents suspend-to-RAM from working correctly and make entering MaskROM mode using a magnet not possible.  This was caused by the unfortunate timing, so the factory ended up installing version of the operating system image that contained these issues.  The required fixes are already available in the shipped Linux distribution, but they need to be [https://gist.github.com/m-weigand/efb1bef6097611d327533ab67b76903b installed manually] by the users.}}&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the Rockchip RK3566 SoC, which was released in 2021. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer that uses the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific to the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
In October 2024, the second PineNote batch was announced. This batch started shipping during the first half of November 2024 with a Debian-based operating system, currently developed here: [https://github.com/PNDeb/pinenote-debian-image]. Please note, however, that this batch is still aimed at developers with Linux and embedded experience, and should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://pine64.org/community/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
While there are no robust and tested operating system releases for the PineNote available at this time, various linux distributions can be installed on the PineNote, with various degrees of working functionality.&lt;br /&gt;
Operating system software releases, or efforts to create them, can be found in the [[PineNote Software Releases]] section. Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Flashing]] for general flashing instructions of data to the PineNote&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
==== Linux Kernel ====&lt;br /&gt;
&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
* BSP Linux SDK version 4.19 for the PineNote and [[Quartz64|Quartz64 Model A]]:&lt;br /&gt;
** [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct download] from ''pine64.org'' (32.67GB, MD5 of the TAR-GZip file ''24554419aec29700add97167a3a4c9ed'')&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz Mirror by mwfc]&lt;br /&gt;
** An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
==== User Space ====&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
==== Android ====&lt;br /&gt;
&lt;br /&gt;
{{Note|As of November 2024 there is no working Android build available for the PineNote!}}&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for the PineNote and [[Quartz64|Quartz64 Model A]. This is the Android SDK build for 10.3&amp;quot; eink panels on Quartz64 Model A. &lt;br /&gt;
&lt;br /&gt;
Download:&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct download] from ''pine64.org'' (72.88GB, MD5 of the TAR-GZip file ''293a550584298de4fb95ceae18103672'')&lt;br /&gt;
* [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz Mirror by mwfc]&lt;br /&gt;
* An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
* Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
==== Related ====&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
* [[PineNote/Battery Replacement]]&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
{{Note|See main article: [[PineNote Development/UART]]}}&lt;br /&gt;
{{Warning|The second PineNote batch, which started shipping during the first half of November 2024, is the last batch that has the USB UART dongle included in the box.}}&lt;br /&gt;
{{Note|The UART adapter is not symmetrically wired, make sure to orient it with the components oriented towards the screen!}}&lt;br /&gt;
&lt;br /&gt;
The USB [https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter UART] dongle delivered with the PineNote allows you to have access to its serial console via USB-C Debug Accessory Mode (DAM) without having to disassemble the device.  The factory-installed operating system runs the serial console at the 1,500,000 bps speed, 8 data bits and 1 stop bit, no parity, and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
It is relatively easy to build your own UART interface with a USB-C breakout board (for example https://www.ebay.com/itm/275407037613), two resistors and a 3.3V USB serial adapter. It is basically just two 1K pull up resistors (R3, R4), the data sheet values of 10K isn't whats on the real hardware, see the [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf schematic]. The pull ups enable the serial output on SBU1 and SBU2 you can use with any 3.3V USB serial adapter.&lt;br /&gt;
&lt;br /&gt;
The UART dongle is not necessary to flash the PineNote, but is essential if something goes wrong to fix it without having to open the case.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* RAM: 4 GB LPDDR4&lt;br /&gt;
* Flash: 128 GB eMMC (soldered)&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector, conforms to the USB Type-C Cable and Connector Specification&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch)&lt;br /&gt;
* Optional Cover (included in the first production batch)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM: 4 GB LPDDR4&lt;br /&gt;
* Flash: 128 GB eMMC (soldered)&lt;br /&gt;
&lt;br /&gt;
== Information, Schematics, and Certifications ==&lt;br /&gt;
&lt;br /&gt;
Version v1.2 of the PineNote is the production version sold through the Pine Store as Developer Edition and Community Edition:&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file]&amp;lt;br /&amp;gt;When building a USB-C console breakout board, please be aware that a 10k CC pin pull-up is too weak to pull CC to a logically high level.  Replacing it to a lower resistance, such as 1k, is recommended.&lt;br /&gt;
* [[:File:Pinenote quick start guide en ger fr pl.pdf|PineNote Quick Start Guide]]&amp;lt;br /&amp;gt;Developer Edition uses an active pen, which is different than the passive EMR pen described in the guide.&lt;br /&gt;
&lt;br /&gt;
Version v1.1 of the PineNote is used by developers who received the early prototype, whose schematic is provided for reference only: &lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3566 SoC information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, release permission from Rockchip]&lt;br /&gt;
&lt;br /&gt;
Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
* [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 version 1.01 datasheet]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
* ---&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
* [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
&lt;br /&gt;
E-ink Panel information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
&lt;br /&gt;
Touch Screen information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
* Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
&lt;br /&gt;
WiFi/BT module information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
&lt;br /&gt;
G Sensor information:&lt;br /&gt;
* [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
&lt;br /&gt;
Audio Amplifier information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[PineNote Press]]&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development/Booting_Linux&amp;diff=21689</id>
		<title>PineNote Development/Booting Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development/Booting_Linux&amp;diff=21689"/>
		<updated>2024-11-26T10:42:00Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: Add note that this page only refers to batch 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This page is only relevant for the first batch of PineNotes, sold in 2021/2022! Batch 2 (2024) PineNote come with linux pre-flashed!}}&lt;br /&gt;
&lt;br /&gt;
To boot Linux, the stock U-Boot has to be patched. &lt;br /&gt;
&lt;br /&gt;
Here the method from [https://gist.github.com/charasyn/206b2537534b6679b0961be64cf9c35f charasyn] is used, based of work from Dorian as credited in the script. We'll use the script to pull the U-Boot environment out of the stock U-Boot partition. We'll then apply the patch, recreate the image, add a configuration file, and flash the new image to the PineNote.&lt;br /&gt;
&lt;br /&gt;
== Steps to patch U-Boot ==&lt;br /&gt;
&lt;br /&gt;
1. Get the [https://gist.github.com/charasyn/206b2537534b6679b0961be64cf9c35f patch and the Python tool]:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir pinenote-uboot &amp;amp;&amp;amp; cd pinenote-uboot&lt;br /&gt;
 $ curl https://gist.githubusercontent.com/charasyn/206b2537534b6679b0961be64cf9c35f/raw/cc513998a36fac0cea266260e3ca3e64abfe3696/boot-menu.patch -o boot-menu.patch&lt;br /&gt;
 $ curl https://gist.githubusercontent.com/charasyn/206b2537534b6679b0961be64cf9c35f/raw/cc513998a36fac0cea266260e3ca3e64abfe3696/pinenote-uboot-envtool.py -o pinenote-uboot-envtool.py&lt;br /&gt;
 $ chmod o+x pinenote-uboot-envtool.py&lt;br /&gt;
&lt;br /&gt;
2. Write your U-Boot partition to an image file: &amp;lt;code&amp;gt;dd if=/dev/mmcblk0p1 of=~/uboot.img&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Extract the environment: &amp;lt;code&amp;gt;./pinenote-uboot-envtool.py extract uboot.img uboot.env&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Poke around the files (or skip this if you don't like to learn...):&lt;br /&gt;
&lt;br /&gt;
# Open &amp;lt;code&amp;gt;uboot.env&amp;lt;/code&amp;gt; -- see, it's just text at this point!&lt;br /&gt;
&lt;br /&gt;
# Open &amp;lt;code&amp;gt;boot-menu.patch&amp;lt;/code&amp;gt; to get a feel for how that works&lt;br /&gt;
&lt;br /&gt;
5. The boot-menu.patch makes assumptions about where your Linux partition lives. Specifically, it will look at partition 0x11 (which is 17 in decimal). Change this in boot-menu.patch to reflect where your Linux boot partition lives.&lt;br /&gt;
&lt;br /&gt;
6. Apply boot-menu.patch: &amp;lt;code&amp;gt;patch uboot.env boot-menu.patch&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Info|Note: Might fail with the following error: &amp;quot;''patch: **** unexpected end of file in patch at line 27''&amp;quot;. In that case applying the patch manually is the solution.}}&lt;br /&gt;
&lt;br /&gt;
7. Rewrite the new environment to the image: &amp;lt;code&amp;gt;./pinenote-uboot-envtool.py insert uboot.img uboot.env uboot-patched.img&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Write the image to the boot partition from the PineNote: &amp;lt;code&amp;gt;dd if=~/uboot-patched.img of=/dev/mmcblk0p1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. At this point, restarting your system will boot into Android -- this is because the patched U-Boot we've just created looks for &amp;lt;code&amp;gt;/boot/which_os.txt&amp;lt;/code&amp;gt; to determine whether to boot Android or Linux, and since it can't find this file (we haven't made it yet), the bootloader defaults to Android. Create that file on the same boot partition you specified in the boot-menu.patch file, placing an &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; in the file for Linux. &lt;br /&gt;
&lt;br /&gt;
10. Reboot into Linux&lt;br /&gt;
&lt;br /&gt;
== Sources and further reading ==&lt;br /&gt;
# [https://u-boot.readthedocs.io/en/latest/board/rockchip/rockchip.html U-boot with rockchip docs]&lt;br /&gt;
# [https://stackoverflow.com/questions/31244862/what-is-the-use-of-spl-secondary-program-loader Helpful stack overflow to learn a bit about the boot process/terminology]&lt;br /&gt;
# [https://matrix.to/#/!QtTzSRYMuozjbOQkzJ:matrix.org/$bVBxdD3E01da7w4LRm45-mwbw_jPk6CrJTQWGMG3B2I?via=matrix.org&amp;amp;via=kde.org&amp;amp;via=tchncs.de This conversation in matrix between pgwipeout, vveapon, and pinenewb about flashing U-Boot.]&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21688</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21688"/>
		<updated>2024-11-26T10:40:18Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: UART adapter: remove link to debian image and add note regarding asymmetric wiring&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 Model-A single-board computer and powered by Rockchip RK3566 quad-core ARM Cortex-A55 64-bit SoC with Mali G52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
{{Warning|The version of Debian-based Linux distribution shipped with the second PineNote batch contains a U-Boot build that prevents suspend-to-RAM from working correctly and make entering MaskROM mode using a magnet not possible.  This was caused by the unfortunate timing, so the factory ended up installing version of the operating system image that contained these issues.  The required fixes are already available in the shipped Linux distribution, but they need to be [https://gist.github.com/m-weigand/efb1bef6097611d327533ab67b76903b installed manually] by the users.}}&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the Rockchip RK3566 SoC, which was released in 2021. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer that uses the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific to the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
In October 2024, the second PineNote batch was announced. This batch started shipping during the first half of November 2024 with a Debian-based operating system, currently developed here: [https://github.com/PNDeb/pinenote-debian-image]. Please note, however, that this batch is still aimed at developers with Linux and embedded experience, and should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://pine64.org/community/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
While there are no robust and tested operating system releases for the PineNote available at this time, various linux distributions can be installed on the PineNote, with various degrees of working functionality.&lt;br /&gt;
Operating system software releases, or efforts to create them, can be found in the [[PineNote Software Releases]] section. Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Flashing]] for general flashing instructions of data to the PineNote&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
==== Linux Kernel ====&lt;br /&gt;
&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
* BSP Linux SDK version 4.19 for the PineNote and [[Quartz64|Quartz64 Model A]]:&lt;br /&gt;
** [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct download] from ''pine64.org'' (32.67GB, MD5 of the TAR-GZip file ''24554419aec29700add97167a3a4c9ed'')&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz Mirror by mwfc]&lt;br /&gt;
** An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
==== User Space ====&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
==== Android ====&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for the PineNote and [[Quartz64|Quartz64 Model A]. This is the Android SDK build for 10.3&amp;quot; eink panels on Quartz64 Model A. &lt;br /&gt;
&lt;br /&gt;
Download:&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct download] from ''pine64.org'' (72.88GB, MD5 of the TAR-GZip file ''293a550584298de4fb95ceae18103672'')&lt;br /&gt;
* [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz Mirror by mwfc]&lt;br /&gt;
* An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
* Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
==== Related ====&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
* [[PineNote/Battery Replacement]]&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
{{Note|See main article: [[PineNote Development/UART]]}}&lt;br /&gt;
{{Warning|The second PineNote batch, which started shipping during the first half of November 2024, is the last batch that has the USB UART dongle included in the box.}}&lt;br /&gt;
{{Note|The UART adapter is not symmetrically wired, make sure to orient it with the components oriented towards the screen!}}&lt;br /&gt;
&lt;br /&gt;
The USB [https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter UART] dongle delivered with the PineNote allows you to have access to its serial console via USB-C Debug Accessory Mode (DAM) without having to disassemble the device.  The factory-installed operating system runs the serial console at the 1,500,000 bps speed, 8 data bits and 1 stop bit, no parity, and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
It is relatively easy to build your own UART interface with a USB-C breakout board (for example https://www.ebay.com/itm/275407037613), two resistors and a 3.3V USB serial adapter. It is basically just two 1K pull up resistors (R3, R4), the data sheet values of 10K isn't whats on the real hardware, see the [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf schematic]. The pull ups enable the serial output on SBU1 and SBU2 you can use with any 3.3V USB serial adapter.&lt;br /&gt;
&lt;br /&gt;
The UART dongle is not necessary to flash the PineNote, but is essential if something goes wrong to fix it without having to open the case.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* RAM: 4 GB LPDDR4&lt;br /&gt;
* Flash: 128 GB eMMC (soldered)&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector, conforms to the USB Type-C Cable and Connector Specification&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch)&lt;br /&gt;
* Optional Cover (included in the first production batch)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM: 4 GB LPDDR4&lt;br /&gt;
* Flash: 128 GB eMMC (soldered)&lt;br /&gt;
&lt;br /&gt;
== Information, Schematics, and Certifications ==&lt;br /&gt;
&lt;br /&gt;
Version v1.2 of the PineNote is the production version sold through the Pine Store as Developer Edition and Community Edition:&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file]&amp;lt;br /&amp;gt;When building a USB-C console breakout board, please be aware that a 10k CC pin pull-up is too weak to pull CC to a logically high level.  Replacing it to a lower resistance, such as 1k, is recommended.&lt;br /&gt;
* [[:File:Pinenote quick start guide en ger fr pl.pdf|PineNote Quick Start Guide]]&amp;lt;br /&amp;gt;Developer Edition uses an active pen, which is different than the passive EMR pen described in the guide.&lt;br /&gt;
&lt;br /&gt;
Version v1.1 of the PineNote is used by developers who received the early prototype, whose schematic is provided for reference only: &lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3566 SoC information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, release permission from Rockchip]&lt;br /&gt;
&lt;br /&gt;
Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
* [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 version 1.01 datasheet]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
* ---&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
* [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
&lt;br /&gt;
E-ink Panel information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
&lt;br /&gt;
Touch Screen information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
* Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
&lt;br /&gt;
WiFi/BT module information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
&lt;br /&gt;
G Sensor information:&lt;br /&gt;
* [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
&lt;br /&gt;
Audio Amplifier information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[PineNote Press]]&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21607</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21607"/>
		<updated>2024-10-17T11:20:17Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: fix link to philosophy page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 model A SBC and powered by a Rockchip RK3566 quad-core ARM Cortex A55 64-bit processor with a MALI G-52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the in 2021 released Rockchip RK3566 SoC. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer using the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific for the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
In October 2024 the second batch of PineNotes was announced. This batch will ship with a Debian-based operating system, currently developed here: [https://github.com/PNDeb/pinenote-debian-image]. Please note, however, that this batch is still aimed at developers with linux and embedded experience and, and should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://pine64.org/community/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
While there are no robust and tested operating system releases for the PineNote available at this time, various linux distributions can be installed on the PineNote, with various degrees of working functionality.&lt;br /&gt;
Operating system software releases, or efforts to create them, can be found in the [[PineNote Software Releases]] section. Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Flashing]] for general flashing instructions of data to the PineNote&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
==== Linux Kernel ====&lt;br /&gt;
&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
* BSP Linux SDK version 4.19 for the PineNote and [[Quartz64|Quartz64 Model A]]:&lt;br /&gt;
** [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct download] from ''pine64.org'' (32.67GB, MD5 of the TAR-GZip file ''24554419aec29700add97167a3a4c9ed'')&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz Mirror by mwfc]&lt;br /&gt;
** An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
==== User Space ====&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
==== Android ====&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for the PineNote and [[Quartz64|Quartz64 Model A]. This is the Android SDK build for 10.3&amp;quot; eink panels on Quartz64 Model A. &lt;br /&gt;
&lt;br /&gt;
Download:&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct download] from ''pine64.org'' (72.88GB, MD5 of the TAR-GZip file ''293a550584298de4fb95ceae18103672'')&lt;br /&gt;
* [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz Mirror by mwfc]&lt;br /&gt;
* An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
* Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
==== Related ====&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
* [[PineNote/Battery Replacement]]&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
{{Note|See main article: [[PineNote Development/UART]]}}&lt;br /&gt;
&lt;br /&gt;
The USB UART dongle delivered with the PineNote allows you to have access to a serial port via USB-C Debug Accessory Mode (''DAM'') without having to open up the device. &lt;br /&gt;
The factory firmware runs at a baud rate of 1500000bps, 8 data bits 1 stop bit, no parity and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
It is relatively easy to build your own UART interface with a USB-C breakout board (for example https://www.ebay.com/itm/275407037613), two resistors and a 3.3V USB serial adapter. It is basically just two 1K pull up resistors (R3, R4), the data sheet values of 10K isn't whats on the real hardware, see the [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf schematic]. The pull ups enable the serial output on SBU1 and SBU2 you can use with any 3.3V USB serial adapter.&lt;br /&gt;
&lt;br /&gt;
The UART dongle is not necessary to flash the PineNote, but is essential if something goes wrong to fix it without having to open the case.&lt;br /&gt;
&lt;br /&gt;
You can flash premade images with the following links:&lt;br /&gt;
* https://github.com/m-weigand/pinenote_uboot_patching_dorians_backup (Note: this creates a U-Boot image to flash, do not worry about idblock.bin on the instructions for the next link)&lt;br /&gt;
* https://github.com/m-weigand/pinenote-debian-recipes/releases/&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* System memory: 4GB LPDDR4&lt;br /&gt;
* Flash: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector, conforms to the USB Type-C Cable and Connector Specification&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch)&lt;br /&gt;
* Optional Cover (included in the first production batch)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory : 4GB LPDDR4.&lt;br /&gt;
* Flash Memory: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
== Information, Schematics, and Certifications ==&lt;br /&gt;
&lt;br /&gt;
=== PineNote Developer kit version ===&lt;br /&gt;
Version v1.2 is the PineNote production version that was sold through the Pines64 store&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file] Note: When building USB-C console breakout board, please be aware 10k CC pin pull-up is too weak to pull CC to logically high level. Replacing it to lower resistance, such as 1k is recommended.&lt;br /&gt;
&lt;br /&gt;
The v1.1 is early release schematic just for reference only and used by developers who received the prototype. &lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3566 SoC information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, release permission from Rockchip]&lt;br /&gt;
&lt;br /&gt;
Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
* [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 version 1.01 datasheet]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
* ---&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
* [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
&lt;br /&gt;
E-ink Panel information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
&lt;br /&gt;
Touch Screen information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
* Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
&lt;br /&gt;
WiFi/BT module information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
&lt;br /&gt;
G Sensor information:&lt;br /&gt;
* [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
&lt;br /&gt;
Audio Amplifier information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[PineNote Press]]&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21606</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=21606"/>
		<updated>2024-10-17T10:23:22Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: Add a note regarding batch 2 and the Debian image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 model A SBC and powered by a Rockchip RK3566 quad-core ARM Cortex A55 64-bit processor with a MALI G-52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the in 2021 released Rockchip RK3566 SoC. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer using the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific for the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
In October 2024 the second batch of PineNotes was announced. This batch will ship with a Debian-based operating system, currently developed here: [https://github.com/PNDeb/pinenote-debian-image]. Please note, however, that this batch is still aimed at developers with linux and embedded experience and, and should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://www.pine64.org/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
While there are no robust and tested operating system releases for the PineNote available at this time, various linux distributions can be installed on the PineNote, with various degrees of working functionality.&lt;br /&gt;
Operating system software releases, or efforts to create them, can be found in the [[PineNote Software Releases]] section. Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Flashing]] for general flashing instructions of data to the PineNote&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
==== Linux Kernel ====&lt;br /&gt;
&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
* BSP Linux SDK version 4.19 for the PineNote and [[Quartz64|Quartz64 Model A]]:&lt;br /&gt;
** [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct download] from ''pine64.org'' (32.67GB, MD5 of the TAR-GZip file ''24554419aec29700add97167a3a4c9ed'')&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz Mirror by mwfc]&lt;br /&gt;
** An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
==== User Space ====&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
==== Android ====&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for the PineNote and [[Quartz64|Quartz64 Model A]. This is the Android SDK build for 10.3&amp;quot; eink panels on Quartz64 Model A. &lt;br /&gt;
&lt;br /&gt;
Download:&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct download] from ''pine64.org'' (72.88GB, MD5 of the TAR-GZip file ''293a550584298de4fb95ceae18103672'')&lt;br /&gt;
* [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz Mirror by mwfc]&lt;br /&gt;
* An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
* Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
==== Related ====&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
* [[PineNote/Battery Replacement]]&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
{{Note|See main article: [[PineNote Development/UART]]}}&lt;br /&gt;
&lt;br /&gt;
The USB UART dongle delivered with the PineNote allows you to have access to a serial port via USB-C Debug Accessory Mode (''DAM'') without having to open up the device. &lt;br /&gt;
The factory firmware runs at a baud rate of 1500000bps, 8 data bits 1 stop bit, no parity and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
It is relatively easy to build your own UART interface with a USB-C breakout board (for example https://www.ebay.com/itm/275407037613), two resistors and a 3.3V USB serial adapter. It is basically just two 1K pull up resistors (R3, R4), the data sheet values of 10K isn't whats on the real hardware, see the [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf schematic]. The pull ups enable the serial output on SBU1 and SBU2 you can use with any 3.3V USB serial adapter.&lt;br /&gt;
&lt;br /&gt;
The UART dongle is not necessary to flash the PineNote, but is essential if something goes wrong to fix it without having to open the case.&lt;br /&gt;
&lt;br /&gt;
You can flash premade images with the following links:&lt;br /&gt;
* https://github.com/m-weigand/pinenote_uboot_patching_dorians_backup (Note: this creates a U-Boot image to flash, do not worry about idblock.bin on the instructions for the next link)&lt;br /&gt;
* https://github.com/m-weigand/pinenote-debian-recipes/releases/&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* System memory: 4GB LPDDR4&lt;br /&gt;
* Flash: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector, conforms to the USB Type-C Cable and Connector Specification&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch)&lt;br /&gt;
* Optional Cover (included in the first production batch)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory : 4GB LPDDR4.&lt;br /&gt;
* Flash Memory: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
== Information, Schematics, and Certifications ==&lt;br /&gt;
&lt;br /&gt;
=== PineNote Developer kit version ===&lt;br /&gt;
Version v1.2 is the PineNote production version that was sold through the Pines64 store&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file] Note: When building USB-C console breakout board, please be aware 10k CC pin pull-up is too weak to pull CC to logically high level. Replacing it to lower resistance, such as 1k is recommended.&lt;br /&gt;
&lt;br /&gt;
The v1.1 is early release schematic just for reference only and used by developers who received the prototype. &lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
* [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3566 SoC information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, release permission from Rockchip]&lt;br /&gt;
&lt;br /&gt;
Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
* [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 version 1.01 datasheet]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
* ---&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
* [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
&lt;br /&gt;
E-ink Panel information:&lt;br /&gt;
* [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
&lt;br /&gt;
Touch Screen information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
* Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
&lt;br /&gt;
WiFi/BT module information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
&lt;br /&gt;
G Sensor information:&lt;br /&gt;
* [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
&lt;br /&gt;
Audio Amplifier information:&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[PineNote Press]]&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development/Flashing&amp;diff=16157</id>
		<title>PineNote Development/Flashing</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development/Flashing&amp;diff=16157"/>
		<updated>2023-02-04T12:54:22Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: add links back to PN main page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under construction}}&lt;br /&gt;
&lt;br /&gt;
{{Info|These instructions are directed towards experienced developers only!}}&lt;br /&gt;
&lt;br /&gt;
This page contains information on flashing software to the [https://wiki.pine64.org/wiki/PineNote PineNote].&lt;br /&gt;
&lt;br /&gt;
Currently, software can be flashed using rkdeveloptool or from the factory Android installation (UART shell, adb, or fastboot).&lt;br /&gt;
&lt;br /&gt;
== Backup ==&lt;br /&gt;
&lt;br /&gt;
{{Info|A backup of the content of the internal eMMC before anything gets messed is '''mandatory'''.}}&lt;br /&gt;
&lt;br /&gt;
Especially the ''waveform'' partition contains data '''unique''' to your PineNote and is a prime candidate for backup.&lt;br /&gt;
&lt;br /&gt;
But other partitions like U-Boot (need for any operation of the device) or the un-partitioned space at the beginning containing the GPT partition table (and presumably the VCOM setting for the e-ink display and maybe device mac addresses) contains data you may wish to backup.&lt;br /&gt;
&lt;br /&gt;
Depending of your personal level of data hoarder you may want to backup more than this or even just everything (the large ''userdata'' partition is supposed to be able to be repopulated as empty space by Android)&lt;br /&gt;
&lt;br /&gt;
In any case it is easier to restore/extract data from a backup than not having one if you need one.&lt;br /&gt;
&lt;br /&gt;
=== Manually using rkdeveloptool ===&lt;br /&gt;
Dorian has some nice [https://github.com/DorianRudolph/pinenotes notes regarding the PineNote]&lt;br /&gt;
&lt;br /&gt;
Don't forget to install a patched U-Boo for reading beyond 32MB and to respect the 2GB limit/bug of the current rkdeveloptool as per his notes&lt;br /&gt;
&lt;br /&gt;
Build rkdeveloptool:&lt;br /&gt;
&lt;br /&gt;
 git clone https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool.git&lt;br /&gt;
 cd rkdeveloptool&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake ..&lt;br /&gt;
&lt;br /&gt;
Download mode&lt;br /&gt;
Enter the download mode by placing the pen as pictured below. A magnet placed where the pen's cap is should also work (haven't tried). I guess the dot on the case also indicates the position of the sensor.&lt;br /&gt;
&lt;br /&gt;
placing pen on the back&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;lsusb&amp;lt;/code&amp;gt; should now recognize the PineNote as:&lt;br /&gt;
&lt;br /&gt;
 2207:350a Fuzhou Rockchip Electronics Company USB download gadget&lt;br /&gt;
&lt;br /&gt;
List partitions:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; rkdeveloptool list-partitions                      &lt;br /&gt;
 #   LBA start (sectors)  LBA end (sectors)  Size (bytes)       Name                &lt;br /&gt;
 00                16384              24575       4194304       uboot&lt;br /&gt;
 01                24576              32767       4194304       trust&lt;br /&gt;
 02                32768              36863       2097152       waveform&lt;br /&gt;
 03                36864              45055       4194304       misc&lt;br /&gt;
 04                45056              53247       4194304       dtbo&lt;br /&gt;
 05                53248              55295       1048576       vbmeta&lt;br /&gt;
 06                55296             137215      41943040       boot&lt;br /&gt;
 07               137216             145407       4194304       security&lt;br /&gt;
 08               145408             407551     134217728       recovery&lt;br /&gt;
 09               407552            1193983     402653184       backup&lt;br /&gt;
 10              1193984            3291135    1073741824       cache&lt;br /&gt;
 11              3291136            3323903      16777216       metadata&lt;br /&gt;
 12              3323904            9697279    3263168512       super&lt;br /&gt;
 13              9697280            9730047      16777216       logo&lt;br /&gt;
 14              9730048            9861119      67108864       device&lt;br /&gt;
 15              9861120          241827775  118766927872       userdata&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Warning|this process is very new! Proceed at your own risk.}}&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/m-weigand/pinenote-debian-recipes/releases/tag/v0.1 instructions on this artifact]. It will instruct you on extracting the rootfs into an empty ext4 partition. This can be done from Linux or Android. Further instructions on building your own rootfs [https://github.com/m-weigand/pinenote-debian-recipes can be found here].&lt;br /&gt;
&lt;br /&gt;
=== Automated backup using a script and rkdeveloptool ===&lt;br /&gt;
[https://github.com/talpadk/pinenote-backup pinenote-backup] is a python script for detecting the partitions and automating the backup of partitions or the whole disk.&lt;br /&gt;
&lt;br /&gt;
It also requires a patched u-boot but automatically handles the 2GB limit by splitting up larger reads into smaller ones&lt;br /&gt;
&lt;br /&gt;
=== Using the factory Android installation ===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Using a user installed Linux ===&lt;br /&gt;
A Linux installed to the cache partition should be able to easily backup everything over WiFi or to a USB stick/disk using ''dd''.&lt;br /&gt;
&lt;br /&gt;
However the user would need to backup the cache partition themself (if they want that).&lt;br /&gt;
&lt;br /&gt;
And more importantly they would only be getting the backup ''after'' they started playing with the content of the eMMC.&lt;br /&gt;
&lt;br /&gt;
== Side-by-side setup ==&lt;br /&gt;
&lt;br /&gt;
It is possible to set up a partition for mainline development without disturbing the factory Android installation. This allows updating a mainline kernel, DTB, and initramfs over Wi-Fi until WiFi or USB OTG is working in mainline Linux.&lt;br /&gt;
&lt;br /&gt;
=== Without Repartitioning ===&lt;br /&gt;
&lt;br /&gt;
The recommended partition for this is &amp;lt;tt&amp;gt;mmcblk0p11&amp;lt;/tt&amp;gt; aka &amp;lt;tt&amp;gt;/cache&amp;lt;/tt&amp;gt;. It is large and already formatted as &amp;lt;tt&amp;gt;ext4&amp;lt;/tt&amp;gt;, so it is readable from U-Boot. Here are some general steps:&lt;br /&gt;
&lt;br /&gt;
# From the UART or adb shell, set up your chroot in &amp;lt;tt&amp;gt;/cache&amp;lt;/tt&amp;gt;. I used the Alpine Linux rootfs tarball.&lt;br /&gt;
# Copy in your kernel and DTB, using for example &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;wget&amp;lt;/tt&amp;gt; inside the chroot.&lt;br /&gt;
# Finally, create and boot an &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; as described below.&lt;br /&gt;
&lt;br /&gt;
=== With Repartitioning ===&lt;br /&gt;
&lt;br /&gt;
It is possible to shrink the &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt; partition, and create a new partition at the end for use with mainline Linux. This provides much more space than &amp;lt;tt&amp;gt;cache&amp;lt;/tt&amp;gt;. However, because &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt; is formatted with &amp;lt;tt&amp;gt;f2fs&amp;lt;/tt&amp;gt;, and that filesystem cannot be shrunk, resizing the partition requires wiping &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# Back up any necessary files from userdata&lt;br /&gt;
# Boot to a mainline kernel from &amp;lt;tt&amp;gt;mmcblk0p11&amp;lt;/tt&amp;gt;, either using that partition as rootfs (see above), or using an initramfs with repartitioning tools&lt;br /&gt;
# Modify the partition table with your favorite tool, e.g. &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gdisk&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;parted&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Reboot into &amp;lt;tt&amp;gt;fastboot&amp;lt;/tt&amp;gt; and wipe &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Reboot into Android, where you can now chroot in and install your favorite distribution to the new partition.&lt;br /&gt;
&lt;br /&gt;
== Using rkdeveloptool ==&lt;br /&gt;
&lt;br /&gt;
rkdeveloptool is a command line utility built on libusb.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and Building rkdeveloptool ===&lt;br /&gt;
&lt;br /&gt;
PINE64 develops [https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool its own updated fork of rkdeveloptool on GitLab].&lt;br /&gt;
&lt;br /&gt;
You will need to have libusb 1.0, its development headers and scdoc installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool.git&lt;br /&gt;
cd rkdeveloptool&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sets up all the build files. You can then compile with &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; inside the build directory.&lt;br /&gt;
&lt;br /&gt;
After you're done, you'll likely also need to install the udev rules, or else your user won't have permission to access the USB devices:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp 99-rk-rockusb.rules /etc/udev/rules.d/&lt;br /&gt;
sudo udevadm control --reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copying the udev rules is also performed automatically when you &amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Building Downstream U-Boot ===&lt;br /&gt;
&lt;br /&gt;
While in maskrom mode, we need to have a u-boot to download onto the device for any of the other commands to work. To build you'll also need to install device-tree-compiler.&lt;br /&gt;
&lt;br /&gt;
You also need to install Python and pyelftools.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Note that rkbin is a &amp;amp;gt;5GB download!&amp;lt;/b&amp;gt; This will take some time to clone and process the deltas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b quartz64 https://gitlab.com/pgwipeout/u-boot-rockchip.git&lt;br /&gt;
git clone -b rkbin https://github.com/JeffyCN/rockchip_mirrors.git rkbin&lt;br /&gt;
cd u-boot-rockchip&lt;br /&gt;
# If using Arch Linux, export CROSS_COMPILE=aarch64-linux-gnu-&lt;br /&gt;
export CROSS_COMPILE=aarch64-none-linux-gnu-&lt;br /&gt;
make rk3566-quartz64_defconfig&lt;br /&gt;
./make.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
In the current version (current as of 2022-01-02), there might have to be made a change to one line to get a clean compilation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/lib/avb/libavb/avb_slot_verify.c b/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
index 123701fc3b..64a1ce6450 100644&lt;br /&gt;
--- a/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
+++ b/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
@@ -296,7 +296,7 @@ static AvbSlotVerifyResult load_and_verify_hash_partition(&lt;br /&gt;
   bool image_preloaded = false;&lt;br /&gt;
   uint8_t* digest;&lt;br /&gt;
   size_t digest_len;&lt;br /&gt;
-  const char* found;&lt;br /&gt;
+  const char* found = NULL;&lt;br /&gt;
   uint64_t image_size;&lt;br /&gt;
   size_t expected_digest_len = 0;&lt;br /&gt;
   uint8_t expected_digest_buf[AVB_SHA512_DIGEST_SIZE];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For systems where the global python executable points to python2, compilation fails with an error related to pyelftools not being installed (even if it is). To fix this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/make.sh b/make.sh&lt;br /&gt;
index 2bba05b4e4..cfe5b0afd5 100755&lt;br /&gt;
--- a/make.sh&lt;br /&gt;
+++ b/make.sh&lt;br /&gt;
@@ -758,7 +758,7 @@ function pack_fit_image()&lt;br /&gt;
        fi&lt;br /&gt;
 &lt;br /&gt;
        if [ &amp;quot;${ARM64_TRUSTZONE}&amp;quot; == &amp;quot;y&amp;quot; ]; then&lt;br /&gt;
-               if ! python -c &amp;quot;import elftools&amp;quot; ; then&lt;br /&gt;
+               if ! python3 -c &amp;quot;import elftools&amp;quot; ; then&lt;br /&gt;
                        echo &amp;quot;ERROR: No python 'pyelftools', please: pip install pyelftools&amp;quot;&lt;br /&gt;
                        exit 1&lt;br /&gt;
                fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entering Maskrom/Rockusb Mode ===&lt;br /&gt;
&lt;br /&gt;
There are three ways to get into Maskrom/Rockusb mode:&lt;br /&gt;
&lt;br /&gt;
====  The easy way ====&lt;br /&gt;
&lt;br /&gt;
# Flip the device around so that the display faces down&lt;br /&gt;
# Lay the pen on the right side, with its tip pointing towards the speaker grill, and its magnet pointing towards the upper right corner of the label on the back (or place the magnetic cap from the pen on the spot marked on the back).&lt;br /&gt;
# Turn the device on and wait for it to show up in &amp;lt;code&amp;gt;lsusb&amp;lt;/code&amp;gt;. It should now be in Loader mode, according to &amp;lt;code&amp;gt;rkdeveloptool list-devices&amp;lt;/code&amp;gt; (note that ''Loader'' here indicates U-Boot's Rockusb; separately, booting with an erased eMMC displays ''Maskrom'' (not ''Loader'') from the RK3566).&lt;br /&gt;
# Unplug the device and plug it back in. It should now be in Rockusb mode.&lt;br /&gt;
&lt;br /&gt;
This can be a bit fiddly to get right and may need a few tries.&lt;br /&gt;
&lt;br /&gt;
==== The u-boot way ====&lt;br /&gt;
# Interrupt the u-boot startup using ''ctrl-c'' (while attached using an UART dongle)&lt;br /&gt;
# While in u-boot use the command &amp;lt;code&amp;gt;rockusb 0 mmc 0&amp;lt;/code&amp;gt; to start Rockusb mode.&lt;br /&gt;
&lt;br /&gt;
One benefit from this is, that if you have an UART dongle that allows to simultaneous having an UART and USB connection, there is no need to plug and unplug cables and flipping the PineNote around and placing magnets.  &lt;br /&gt;
&lt;br /&gt;
This is especially helpful when changing back and forth between U-Boot and Rockusb, for instance when trying to develop u-boot.&lt;br /&gt;
&lt;br /&gt;
==== Shorting test points ====&lt;br /&gt;
&lt;br /&gt;
If the bootloader is broken/corrupted, you cannot get to Maskrom without opening up the device (it can be opened using spudger and a bit of patience).&lt;br /&gt;
&lt;br /&gt;
Once inside, short TP1301 (GND) and TP1302 (eMMC_D0/FLASH_D0) with a small tweezers, this is how it looks on board view (credit to Caleb):&lt;br /&gt;
&lt;br /&gt;
[[File:PineNote_Maskrom_TP.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Then plug the device to the computer and if you see the device with VID=2207/PID=350a then it should be in Maskrom mode, you can verify by typing &amp;lt;code&amp;gt;rkdeveloptool list-devices&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Jan 07 15:04:13 melttower kernel: usb 1-14: New USB device found, idVendor=2207, idProduct=350a, bcdDevice= 1.00&lt;br /&gt;
Jan 07 15:04:13 melttower kernel: usb 1-14: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
&lt;br /&gt;
$ rkdeveloptool list-devices&lt;br /&gt;
DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=10e    Maskrom&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If nothing shows up, you can try to hold down the power button for 5 seconds and then try again.&lt;br /&gt;
&lt;br /&gt;
=== Running rkdeveloptool ===&lt;br /&gt;
&lt;br /&gt;
First, you'll want to make sure the device you've connected is in maskrom mode:&lt;br /&gt;
&lt;br /&gt;
 ./rkdeveloptool list&lt;br /&gt;
&lt;br /&gt;
It should output something like &amp;quot;''DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=202 Maskrom''&amp;quot;. If it doesn't, see [[PineNote Development#Entering Maskrom Mode]].&lt;br /&gt;
&lt;br /&gt;
You can now download u-boot onto it:&lt;br /&gt;
&lt;br /&gt;
 ./rkdeveloptool boot ../u-boot-rockchip/rk356x_spl_loader_v1.08.111.bin&lt;br /&gt;
&lt;br /&gt;
This should output &amp;quot;''Downloading bootloader succeeded''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
We can now verify that this worked using e.g. the &amp;quot;read flash info&amp;quot; command:&lt;br /&gt;
&lt;br /&gt;
 ./rkdeveloptool read-flash-info&lt;br /&gt;
&lt;br /&gt;
{{Note|'''TODO:''' Section needs to be finished}}&lt;br /&gt;
&lt;br /&gt;
=== Creating a mainline boot image ===&lt;br /&gt;
&lt;br /&gt;
You can create a filesystem image that replaces the Android boot or recovery partition by doing roughly the following:&lt;br /&gt;
&lt;br /&gt;
# Erase boot and dtbo with rkdeveloptool or fastboot (back them up first!!!)&lt;br /&gt;
# Create an ext2 partition image and mount it (fallocate, mkfs.ext2)&lt;br /&gt;
# Build your mainline kernel&lt;br /&gt;
# Copy the kernel, dtb and an initramfs to the root of the mounted image (use any old postmarketOS initramfs)&lt;br /&gt;
# Create a file in the root of the mounted image called &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; as described below&lt;br /&gt;
# Unmount the image and then use rkdeveloptool to flash it to the &amp;quot;recovery&amp;quot; partition on the pinenote (it's about the right size until we get around to replacing the partition layout).&lt;br /&gt;
&lt;br /&gt;
== Using fastboot ==&lt;br /&gt;
&lt;br /&gt;
Follow the steps for [[PineNote Development/Flashing#Creating a mainline boot image|Creating a mainline boot image]], but instead of flashing it with ''rkdeveloptool'', use ''fastboot''. You can enter fastboot in either of two ways:&lt;br /&gt;
&lt;br /&gt;
* Use &amp;quot;reboot bootloader&amp;quot; from adb or a UART console or&lt;br /&gt;
* get a U-Boot prompt and run &amp;lt;code&amp;gt;fastboot usb 0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development/Building_Kernel&amp;diff=16156</id>
		<title>PineNote Development/Building Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development/Building_Kernel&amp;diff=16156"/>
		<updated>2023-02-04T12:48:54Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: start restructuring the building_kernel page for the PineNote&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains information on how to build a linux kernel for the [https://wiki.pine64.org/wiki/PineNote PineNote].&lt;br /&gt;
&lt;br /&gt;
= Available Kernel Repositories =&lt;br /&gt;
&lt;br /&gt;
The following (incomplete?) PineNote-specific kernel repositories are available:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/m-weigand/linux/ (based mainly on the repository from smaeul, with additional patches pulled in from other sources, Debian packages available)&lt;br /&gt;
* https://gitlab.com/pgwipeout/linux-next/&lt;br /&gt;
* https://github.com/smaeul/linux/tree/rk35/pinenote-next&lt;br /&gt;
* https://pine64.cknow.org/kernel/ A rebasing effort to kernel 6.2 (Debian packages available for testing)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Building the kernel =&lt;br /&gt;
&lt;br /&gt;
{{Info|These following instructions need to be cleaned up and updated, and OS-specific information and tweaks should be moved elsewhere}}&lt;br /&gt;
&lt;br /&gt;
After following [https://github.com/DorianRudolph/pinenotes#starter-guide Dorian's directions] to get Arch installed you've seen someone [https://github.com/m-weigand/mw_pinenote_misc/blob/main/videos/20220808_bw_dither_mode_picture_doom_video_small.mp4 playing DOOM]  and you want to learn how to get the features that enable that kind of performance. To get your PN running this smoothly, we'll need to build our own kernel. There are two kernel efforts underway right now:&lt;br /&gt;
&lt;br /&gt;
# pgwipeout: https://gitlab.com/pgwipeout/linux-next&lt;br /&gt;
# smaeul: https://github.com/smaeul/linux/tree/rk35/pinenote-next&lt;br /&gt;
&lt;br /&gt;
We'll be using smaeul's kernel + some additional patches provided by DorianRudolph, pgwipeout, Maximilian Weigand, occam_razor, and hrdl. Thanks so much to them, and all the other users who have worked on piecing together drivers, twiddling configs, answering questions, and sharing their work in other ways. Brava!&lt;br /&gt;
&lt;br /&gt;
Perhaps the main component of the kernel is the DRM driver. You can read more about the driver by reading [https://lore.kernel.org/linux-rockchip/20220413221916.50995-1-samuel@sholland.org/T/ Smaeul's RFC].&lt;br /&gt;
&lt;br /&gt;
=== A small warning ===&lt;br /&gt;
&lt;br /&gt;
This guide is completely based off of the scripts provided by Maximilian. We'll be cloning and running them, but he owns them and he -- or others -- might change them. It's smart to have a look at what's going on, check when this page was last updated vs when his scripts were last updated, etc. Be nimble!&lt;br /&gt;
&lt;br /&gt;
Additionally, as Maximilian warns [https://github.com/m-weigand/mw_pinenote_misc/tree/main/rockchip_ebc/patches here], these changes are all experimental and may damage your panel. &lt;br /&gt;
&lt;br /&gt;
{{info|If anyone reading this has recommended reading for how we can understand what may damage our panels (IE is the risk in fast updates? The types of updates? something more complicated?), please add it here!}}&lt;br /&gt;
&lt;br /&gt;
== What you should have already done ==&lt;br /&gt;
&lt;br /&gt;
It is assumed you've already got an operating system installed on your Pinenote other than the stock Android. Doing this isn't trivial, but it is well understood - you will be following the footsteps of many others. Dorian Rudolph made a guide for doing this, available [https://github.com/DorianRudolph/pinenotes#starter-guide here].&lt;br /&gt;
&lt;br /&gt;
== What do you need to know? ==&lt;br /&gt;
&lt;br /&gt;
If you followed Dorian's guide to get here and felt semi-comfortable, you'll be fine. This is no more complicated than that. If you are intimidated, that's okay! I'll still encourage you to try :) you will learn a lot, just be patient and don't put any data on your PineNote that you wouldn't be okay losing. If you run into trouble, ask for help in the [https://discord.com/invite/pine64 Discord]/[https://matrix.to/#/#pinenote:matrix.org Matrix]. Please try to solve problems on your own first, and then ask for help -- if nobody replies, please be patient and ask again soon.&lt;br /&gt;
&lt;br /&gt;
== Steps to build ==&lt;br /&gt;
&lt;br /&gt;
1. Clone Maximilian's scripts:&lt;br /&gt;
&lt;br /&gt;
 $ git clone https://github.com/m-weigand/mw_pinenote_misc.git&lt;br /&gt;
&lt;br /&gt;
2. Make a separate directory for patching the kernel. Then run Maximilian's ''clone_and_prepare_git.sh''. This will clone smaeul's kernel and a number of patches. Read the script to see which patches it is using. Feel free to open the patches too -- it's helpful to get a slim idea of what's going on, if only looking at the commit messages in them:&lt;br /&gt;
&lt;br /&gt;
 $ cd ../&lt;br /&gt;
 $ sh mw_pinenote_misc/custom_kernel/clone_and_prepare_git.sh&lt;br /&gt;
&lt;br /&gt;
3. Compile the kernel:&lt;br /&gt;
&lt;br /&gt;
 $ sh ./mw_pinenote_misc/custom_kernel/compile.sh&lt;br /&gt;
&lt;br /&gt;
4. Next we want to perform the work captured in '''install_to_pn.sh''', but the work may vary slightly from person to person. As long as you put them somewhere and configure your '''extlinux.conf''' to point at it, things will be okay. Looking at '''install_to_pn.sh''', we can see that there are three pieces to installing the kernel: the kernel image (called ''Image''), the device tree (''rk3566-pinenote-v1.2.dtb''), and the modules. All of these files have been compiled and placed into the '''linux/pack''' folder. The easiest way to send these over is by using ''scp'' or ''rsync'' - read the script and decide how you would like to get your files in the correct location. You may need to install ''rsync'' on your PineNote if it doesn't already have it.&lt;br /&gt;
&lt;br /&gt;
5. DTB was installed like this: &amp;lt;code&amp;gt;$ scp rk3566-pinenote-v1.2.dtb root@pinenote:/boot/dtbs/rockchip/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. After installing the DTB as above, the file '''/boot/extlinux/extlinux.conf''' may be updated to point to this new file&lt;br /&gt;
&lt;br /&gt;
7. (Perhaps not necessary?) The last step is to generate a new initrd image (see [https://en.wikipedia.org/wiki/Initial_ramdisk Wikipedia] for an explanation about initial ramdisk). This is done on the PineNote itself. Send Maximilian's installation script over and run it. Then place the generated image (from the last step of the shell script) into your boot partition and update '''extlinux.conf''' if needed to point at this new file.  &lt;br /&gt;
&lt;br /&gt;
 $ scp initrd/gen_uboot_image.sh root@pinenote:/root # Do this part on local to put script on PN&lt;br /&gt;
 $ ssh root@pinenote # Or use UART, the dongle + picocom, and change to root&lt;br /&gt;
 $ cd /root&lt;br /&gt;
 $ ./gen_uboot_image.sh&lt;br /&gt;
 $ mv initrd.img /boot/initrd.img&lt;br /&gt;
 $ vim /boot/extlinux/extlinux.conf # Update this to reference this new initrd image&lt;br /&gt;
&lt;br /&gt;
8. At this point your kernel is in place! However, there are a few more steps you may need to complete to ensure the display and networking continue to work:&lt;br /&gt;
* For display, you may need to change '''/lib/firmware/waveform.bin''' to '''/lib/firmware/rockchip/ebc.wbf''' (TODO: is this a difference between PG and smaeul's kernel or a patch?)&lt;br /&gt;
* For networking, you may need to change '''/lib/firmware/pinenote.bin''' to '''/lib/firmware/pinenote-v1.2.bin'''&lt;br /&gt;
&lt;br /&gt;
9. This part technically isn't kernel specific, but we need to install a patched version of Mesa. If you are running an Arch based system, you're in luck! occam_razor provides prebuilt patched packages (say that 5 times fast) [https://github.com/0cc4m/pinenote-misc/releases here]. Simply extract these files, send them to PN, and install them using the package manager. You can also patch it yourself by looking at Maximilian's [https://github.com/m-weigand/mw_pinenote_misc/blob/main/compile_mesa.sh compile_mesa.sh]. &lt;br /&gt;
&lt;br /&gt;
{{Info|If you frequently update your system with ''pacman -Syu'', you will end up updating these packages and losing the patches. Add this line to your &amp;lt;code&amp;gt;/etc/pacman.conf&amp;lt;/code&amp;gt; to prevent them from being updated: &amp;lt;pre&amp;gt;IgnorePkg = libva-mesa-driver mesa mesa-debug mesa-vdpau opencl-mesa vulkan-mesa-layers vulkan-broadcom vulkan-panfrost vulkan-radeon vulkan-swrast&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
10. To ensure the GPU stays on, we need to use Maximilian's [https://github.com/m-weigand/mw_pinenote_misc/blob/main/systemd/mweigand_eglinfo.service mweigand_eglinfo.service]. The ''Readme.md'' in that same directory has instructions for how to install this, but basically we need to copy it to '''/etc/systemd/system/''', run &amp;lt;code&amp;gt;sudo systemctl daemon-reload&amp;lt;/code&amp;gt; to make sure systemd knows it exists, then execute &amp;lt;code&amp;gt;sudo systemctl enable mweigand_eglinfo.service&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Next steps =&lt;br /&gt;
== Configuring the driver ==&lt;br /&gt;
The driver has several options that can improve performance. These can be read about [https://github.com/m-weigand/mw_pinenote_misc/tree/main/rockchip_ebc/patches#new-features-as-of-2022august08 here].  &amp;lt;code&amp;gt;rockchip_ebc.bw_mode=1 rockchip_ebc.default_waveform=1 rockchip_ebc.refresh_threshold=30 rockchip_ebc.auto_refresh=1&amp;lt;/code&amp;gt; may be used to make the image lower quality, but much faster to update. The auto_refresh setting is also essential to clear ghosting which will otherwise accrue on screen. The ''APPEND'' line in the '''extlinux.conf''' might be added to make sure they are applied on boot.&lt;br /&gt;
&lt;br /&gt;
== Fixing suspend ==&lt;br /&gt;
If you're using a logind system, edit your '''/etc/systemd/logind.conf''' config. More information on what to do [https://wiki.archlinux.org/title/Power_management#ACPI_event in Arch's documentation].&lt;br /&gt;
&lt;br /&gt;
== Configuring your apps ==&lt;br /&gt;
See [https://wiki.pine64.org/wiki/PineNote_Development/Apps this page].&lt;br /&gt;
&lt;br /&gt;
== Booting Linux instead of Android ==&lt;br /&gt;
[[PineNote Development/Booting Linux]]&lt;br /&gt;
&lt;br /&gt;
== Fixing Bluetooth ==&lt;br /&gt;
See [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development/Building_Kernel&amp;diff=16155</id>
		<title>PineNote Development/Building Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development/Building_Kernel&amp;diff=16155"/>
		<updated>2023-02-04T12:31:44Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: Add link to the PN main page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains information on how to build a linux kernel for the [https://wiki.pine64.org/wiki/PineNote PineNote].&lt;br /&gt;
&lt;br /&gt;
= Building the kernel =&lt;br /&gt;
&lt;br /&gt;
After following [https://github.com/DorianRudolph/pinenotes#starter-guide Dorian's directions] to get Arch installed you've seen someone [https://github.com/m-weigand/mw_pinenote_misc/blob/main/videos/20220808_bw_dither_mode_picture_doom_video_small.mp4 playing DOOM]  and you want to learn how to get the features that enable that kind of performance. To get your PN running this smoothly, we'll need to build our own kernel. There are two kernel efforts underway right now:&lt;br /&gt;
&lt;br /&gt;
# pgwipeout: https://gitlab.com/pgwipeout/linux-next&lt;br /&gt;
# smaeul: https://github.com/smaeul/linux/tree/rk35/pinenote-next&lt;br /&gt;
&lt;br /&gt;
We'll be using smaeul's kernel + some additional patches provided by DorianRudolph, pgwipeout, Maximilian Weigand, occam_razor, and hrdl. Thanks so much to them, and all the other users who have worked on piecing together drivers, twiddling configs, answering questions, and sharing their work in other ways. Brava!&lt;br /&gt;
&lt;br /&gt;
Perhaps the main component of the kernel is the DRM driver. You can read more about the driver by reading [https://lore.kernel.org/linux-rockchip/20220413221916.50995-1-samuel@sholland.org/T/ Smaeul's RFC].&lt;br /&gt;
&lt;br /&gt;
=== A small warning ===&lt;br /&gt;
&lt;br /&gt;
This guide is completely based off of the scripts provided by Maximilian. We'll be cloning and running them, but he owns them and he -- or others -- might change them. It's smart to have a look at what's going on, check when this page was last updated vs when his scripts were last updated, etc. Be nimble!&lt;br /&gt;
&lt;br /&gt;
Additionally, as Maximilian warns [https://github.com/m-weigand/mw_pinenote_misc/tree/main/rockchip_ebc/patches here], these changes are all experimental and may damage your panel. &lt;br /&gt;
&lt;br /&gt;
{{info|If anyone reading this has recommended reading for how we can understand what may damage our panels (IE is the risk in fast updates? The types of updates? something more complicated?), please add it here!}}&lt;br /&gt;
&lt;br /&gt;
== What you should have already done ==&lt;br /&gt;
&lt;br /&gt;
It is assumed you've already got an operating system installed on your Pinenote other than the stock Android. Doing this isn't trivial, but it is well understood - you will be following the footsteps of many others. Dorian Rudolph made a guide for doing this, available [https://github.com/DorianRudolph/pinenotes#starter-guide here].&lt;br /&gt;
&lt;br /&gt;
== What do you need to know? ==&lt;br /&gt;
&lt;br /&gt;
If you followed Dorian's guide to get here and felt semi-comfortable, you'll be fine. This is no more complicated than that. If you are intimidated, that's okay! I'll still encourage you to try :) you will learn a lot, just be patient and don't put any data on your PineNote that you wouldn't be okay losing. If you run into trouble, ask for help in the [https://discord.com/invite/pine64 Discord]/[https://matrix.to/#/#pinenote:matrix.org Matrix]. Please try to solve problems on your own first, and then ask for help -- if nobody replies, please be patient and ask again soon.&lt;br /&gt;
&lt;br /&gt;
== Steps to build ==&lt;br /&gt;
&lt;br /&gt;
1. Clone Maximilian's scripts:&lt;br /&gt;
&lt;br /&gt;
 $ git clone https://github.com/m-weigand/mw_pinenote_misc.git&lt;br /&gt;
&lt;br /&gt;
2. Make a separate directory for patching the kernel. Then run Maximilian's ''clone_and_prepare_git.sh''. This will clone smaeul's kernel and a number of patches. Read the script to see which patches it is using. Feel free to open the patches too -- it's helpful to get a slim idea of what's going on, if only looking at the commit messages in them:&lt;br /&gt;
&lt;br /&gt;
 $ cd ../&lt;br /&gt;
 $ sh mw_pinenote_misc/custom_kernel/clone_and_prepare_git.sh&lt;br /&gt;
&lt;br /&gt;
3. Compile the kernel:&lt;br /&gt;
&lt;br /&gt;
 $ sh ./mw_pinenote_misc/custom_kernel/compile.sh&lt;br /&gt;
&lt;br /&gt;
4. Next we want to perform the work captured in '''install_to_pn.sh''', but the work may vary slightly from person to person. As long as you put them somewhere and configure your '''extlinux.conf''' to point at it, things will be okay. Looking at '''install_to_pn.sh''', we can see that there are three pieces to installing the kernel: the kernel image (called ''Image''), the device tree (''rk3566-pinenote-v1.2.dtb''), and the modules. All of these files have been compiled and placed into the '''linux/pack''' folder. The easiest way to send these over is by using ''scp'' or ''rsync'' - read the script and decide how you would like to get your files in the correct location. You may need to install ''rsync'' on your PineNote if it doesn't already have it.&lt;br /&gt;
&lt;br /&gt;
5. DTB was installed like this: &amp;lt;code&amp;gt;$ scp rk3566-pinenote-v1.2.dtb root@pinenote:/boot/dtbs/rockchip/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. After installing the DTB as above, the file '''/boot/extlinux/extlinux.conf''' may be updated to point to this new file&lt;br /&gt;
&lt;br /&gt;
7. (Perhaps not necessary?) The last step is to generate a new initrd image (see [https://en.wikipedia.org/wiki/Initial_ramdisk Wikipedia] for an explanation about initial ramdisk). This is done on the PineNote itself. Send Maximilian's installation script over and run it. Then place the generated image (from the last step of the shell script) into your boot partition and update '''extlinux.conf''' if needed to point at this new file.  &lt;br /&gt;
&lt;br /&gt;
 $ scp initrd/gen_uboot_image.sh root@pinenote:/root # Do this part on local to put script on PN&lt;br /&gt;
 $ ssh root@pinenote # Or use UART, the dongle + picocom, and change to root&lt;br /&gt;
 $ cd /root&lt;br /&gt;
 $ ./gen_uboot_image.sh&lt;br /&gt;
 $ mv initrd.img /boot/initrd.img&lt;br /&gt;
 $ vim /boot/extlinux/extlinux.conf # Update this to reference this new initrd image&lt;br /&gt;
&lt;br /&gt;
8. At this point your kernel is in place! However, there are a few more steps you may need to complete to ensure the display and networking continue to work:&lt;br /&gt;
* For display, you may need to change '''/lib/firmware/waveform.bin''' to '''/lib/firmware/rockchip/ebc.wbf''' (TODO: is this a difference between PG and smaeul's kernel or a patch?)&lt;br /&gt;
* For networking, you may need to change '''/lib/firmware/pinenote.bin''' to '''/lib/firmware/pinenote-v1.2.bin'''&lt;br /&gt;
&lt;br /&gt;
9. This part technically isn't kernel specific, but we need to install a patched version of Mesa. If you are running an Arch based system, you're in luck! occam_razor provides prebuilt patched packages (say that 5 times fast) [https://github.com/0cc4m/pinenote-misc/releases here]. Simply extract these files, send them to PN, and install them using the package manager. You can also patch it yourself by looking at Maximilian's [https://github.com/m-weigand/mw_pinenote_misc/blob/main/compile_mesa.sh compile_mesa.sh]. &lt;br /&gt;
&lt;br /&gt;
{{Info|If you frequently update your system with ''pacman -Syu'', you will end up updating these packages and losing the patches. Add this line to your &amp;lt;code&amp;gt;/etc/pacman.conf&amp;lt;/code&amp;gt; to prevent them from being updated: &amp;lt;pre&amp;gt;IgnorePkg = libva-mesa-driver mesa mesa-debug mesa-vdpau opencl-mesa vulkan-mesa-layers vulkan-broadcom vulkan-panfrost vulkan-radeon vulkan-swrast&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
10. To ensure the GPU stays on, we need to use Maximilian's [https://github.com/m-weigand/mw_pinenote_misc/blob/main/systemd/mweigand_eglinfo.service mweigand_eglinfo.service]. The ''Readme.md'' in that same directory has instructions for how to install this, but basically we need to copy it to '''/etc/systemd/system/''', run &amp;lt;code&amp;gt;sudo systemctl daemon-reload&amp;lt;/code&amp;gt; to make sure systemd knows it exists, then execute &amp;lt;code&amp;gt;sudo systemctl enable mweigand_eglinfo.service&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Next steps =&lt;br /&gt;
== Configuring the driver ==&lt;br /&gt;
The driver has several options that can improve performance. These can be read about [https://github.com/m-weigand/mw_pinenote_misc/tree/main/rockchip_ebc/patches#new-features-as-of-2022august08 here].  &amp;lt;code&amp;gt;rockchip_ebc.bw_mode=1 rockchip_ebc.default_waveform=1 rockchip_ebc.refresh_threshold=30 rockchip_ebc.auto_refresh=1&amp;lt;/code&amp;gt; may be used to make the image lower quality, but much faster to update. The auto_refresh setting is also essential to clear ghosting which will otherwise accrue on screen. The ''APPEND'' line in the '''extlinux.conf''' might be added to make sure they are applied on boot.&lt;br /&gt;
&lt;br /&gt;
== Fixing suspend ==&lt;br /&gt;
If you're using a logind system, edit your '''/etc/systemd/logind.conf''' config. More information on what to do [https://wiki.archlinux.org/title/Power_management#ACPI_event in Arch's documentation].&lt;br /&gt;
&lt;br /&gt;
== Configuring your apps ==&lt;br /&gt;
See [https://wiki.pine64.org/wiki/PineNote_Development/Apps this page].&lt;br /&gt;
&lt;br /&gt;
== Booting Linux instead of Android ==&lt;br /&gt;
[[PineNote Development/Booting Linux]]&lt;br /&gt;
&lt;br /&gt;
== Fixing Bluetooth ==&lt;br /&gt;
See [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development/Apps&amp;diff=16154</id>
		<title>PineNote Development/Apps</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development/Apps&amp;diff=16154"/>
		<updated>2023-02-04T12:29:22Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists applications and tweaks for the [https://wiki.pine64.org/wiki/PineNote PineNote].&lt;br /&gt;
&lt;br /&gt;
= Development = &lt;br /&gt;
&lt;br /&gt;
Here are some resources you may find helpful in learning to develop on embedded Linux devices:&lt;br /&gt;
* Great YouTube series introducing you to the kernel and lower-level components of Linux: https://www.youtube.com/watch?v=WiZ05pnHZqM&lt;br /&gt;
* https://embetronicx.com/&lt;br /&gt;
* https://bootlin.com/training/&lt;br /&gt;
* https://www.nand2tetris.org&lt;br /&gt;
&lt;br /&gt;
Emulator recommendation for developing and testing PineNote apps: https://github.com/michaelshiel/picom-epaper&lt;br /&gt;
&lt;br /&gt;
The PineNote is a specialized device, mainly due to the eink display having unique display and refresh characteristics.&lt;br /&gt;
Finding and configuring apps that work well sometimes requires a lot of tweaking and a lot exploring, especially for&lt;br /&gt;
applications containing fast screen updates and animations, as well as depend on a lot of colors.&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=ZCLyJfbzbrU Here is a video] showing the performance of a few applications.&lt;br /&gt;
&lt;br /&gt;
= Desktop Environments =&lt;br /&gt;
&lt;br /&gt;
=== Sway ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/hmpthcs/WinkShell WinkShell] &amp;quot;Collected applications, configurations and scripts for using a wlroots-based compositor with an EPD (aka e-ink display). Currently supports Sway only.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/0cc4m/pinenote-misc/blob/main/sway/config/sway/config 0cc4m's config]&lt;br /&gt;
&lt;br /&gt;
==== Getting touch + pen working on sway ====&lt;br /&gt;
&lt;br /&gt;
If you notice that touching the screen works, but when you use the pen the mouse coordinates are inverted, don't worry! We can fix it! Set &amp;lt;code&amp;gt;rockchip_ebc.panel_reflection=0&amp;lt;/code&amp;gt; on boot (see [https://wiki.pine64.org/wiki/PineNote_Development/Building_Kernel#Configuring_the_driver this page] for more info). Add the following line to your sway config:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This line rotates the mouse input by 180 degrees. See https://wayland.freedesktop.org/libinput/doc/1.11.3/absolute_axes.html&lt;br /&gt;
input &amp;quot;type:table_tool&amp;quot; calibration_matrix -1 0 1 0 -1 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gnome ===&lt;br /&gt;
&lt;br /&gt;
Gnome on wayland runs nicely on the PineNote. However, a slightly patched version of mutter is required at the moment.&lt;br /&gt;
&lt;br /&gt;
* See this repository for .deb packages and patch/compile files: [https://github.com/m-weigand/pinenote_debian_mutter Patched Debian Mutter for Bookworm]&lt;br /&gt;
* The ready-to-use [https://github.com/m-weigand/pinenote-debian-recipes/releases Debian image] provides a pre-configured GNOME environment], with specific GNOME configurations found [https://github.com/m-weigand/pinenote-debian-recipes/blob/main/overlays/gnome_config/01-pinenote-settings here]&lt;br /&gt;
* A GNOME extension is being [https://github.com/m-weigand/mw_pinenote_misc/tree/main/gnome_extension developed] that provides access to some of the ebc-specific driver options.&lt;br /&gt;
* [https://github.com/MichiMolle/PNEink PNEink] is a GNOME Theme for use with the PineNote&lt;br /&gt;
&lt;br /&gt;
==== GTK3 ====&lt;br /&gt;
High contrast style for eink-devices can be found [https://github.com/MichiMolle/gtk3-eink here].&lt;br /&gt;
&lt;br /&gt;
==== GTK4 ====&lt;br /&gt;
High contrast style for eink-devices can be found [https://github.com/MichiMolle/gtk4-eink here].&lt;br /&gt;
&lt;br /&gt;
= Application support on the PineNote =&lt;br /&gt;
&lt;br /&gt;
== System-Control ==&lt;br /&gt;
&lt;br /&gt;
* A rust-based dbus service is being [https://github.com/m-weigand/pinenote_dbus_service developed] to enable easy, system-wide control over some of the PineNote-specific settings by users and programs (e.g., triggering global screen refreshes, changing waveforms, enabling/disabling dithering). Requires [https://github.com/m-weigand/linux/releases this kernel].&lt;br /&gt;
&lt;br /&gt;
== Notetaking ==&lt;br /&gt;
&lt;br /&gt;
=== Xournal++ ===&lt;br /&gt;
Works well, writing is pretty quick. The development version supports PDF highlighting, links, and  offers repainting-related optimisations (https://github.com/xournalpp/xournalpp/commit/c0a91f02afbfb67a60f7088b4c579a796693e05d and https://github.com/xournalpp/xournalpp/commit/ce1c66cb6d78f3332714ca21d279cf20548d7c06). To improve the performance even further apply https://github.com/xournalpp/xournalpp/pull/4158 and https://github.com/xournalpp/xournalpp/pull/4611 while on master.&lt;br /&gt;
&lt;br /&gt;
Xournal++ uses anti-aliasing and interpolation, which do not work well for the A1 waveform. Mitigations include using either dithering or black-white mode in the ebc driver, or compiling Xournal++ with https://gitlab.com/hrdl/pinenote-shared/-/blob/main/patches/xournalpp/0001-Disable-anti-aliasing-and-use-NEAREST-interpolation-.patch.&lt;br /&gt;
&lt;br /&gt;
Pre-compiled Debian packages with some of the PineNote-related modifications and support for triggering global refreshes after scrolling using the dbus service (see above) can be found [https://github.com/m-weigand/xournalpp_pn/releases here]&lt;br /&gt;
&lt;br /&gt;
=== Obsidian ===&lt;br /&gt;
Works well, EInk-Theme can be found [https://github.com/MichiMolle/obsidian-eink here].&lt;br /&gt;
&lt;br /&gt;
== Web Browsing ==&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
Pretty good experience! Enabling GPU acceleration is helpful.&lt;br /&gt;
&lt;br /&gt;
==== GPU Acceleration in Firefox ====&lt;br /&gt;
See [https://github.com/0cc4m/pinenote-misc#firefox-hardware-acceleration 0ccam's notes here].&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Cloud&amp;quot; ==&lt;br /&gt;
=== syncthing ===&lt;br /&gt;
High contrast theme can be found [https://github.com/MichiMolle/syncthing-eink here].&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development/Apps&amp;diff=16153</id>
		<title>PineNote Development/Apps</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development/Apps&amp;diff=16153"/>
		<updated>2023-02-04T12:26:43Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: /* Xournal++ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Development = &lt;br /&gt;
&lt;br /&gt;
Here are some resources you may find helpful in learning to develop on embedded Linux devices:&lt;br /&gt;
* Great YouTube series introducing you to the kernel and lower-level components of Linux: https://www.youtube.com/watch?v=WiZ05pnHZqM&lt;br /&gt;
* https://embetronicx.com/&lt;br /&gt;
* https://bootlin.com/training/&lt;br /&gt;
* https://www.nand2tetris.org&lt;br /&gt;
&lt;br /&gt;
Emulator recommendation for developing and testing PineNote apps: https://github.com/michaelshiel/picom-epaper&lt;br /&gt;
&lt;br /&gt;
The PineNote is a specialized device, mainly due to the eink display having unique display and refresh characteristics.&lt;br /&gt;
Finding and configuring apps that work well sometimes requires a lot of tweaking and a lot exploring, especially for&lt;br /&gt;
applications containing fast screen updates and animations, as well as depend on a lot of colors.&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=ZCLyJfbzbrU Here is a video] showing the performance of a few applications.&lt;br /&gt;
&lt;br /&gt;
= Desktop Environments =&lt;br /&gt;
&lt;br /&gt;
=== Sway ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/hmpthcs/WinkShell WinkShell] &amp;quot;Collected applications, configurations and scripts for using a wlroots-based compositor with an EPD (aka e-ink display). Currently supports Sway only.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/0cc4m/pinenote-misc/blob/main/sway/config/sway/config 0cc4m's config]&lt;br /&gt;
&lt;br /&gt;
==== Getting touch + pen working on sway ====&lt;br /&gt;
&lt;br /&gt;
If you notice that touching the screen works, but when you use the pen the mouse coordinates are inverted, don't worry! We can fix it! Set &amp;lt;code&amp;gt;rockchip_ebc.panel_reflection=0&amp;lt;/code&amp;gt; on boot (see [https://wiki.pine64.org/wiki/PineNote_Development/Building_Kernel#Configuring_the_driver this page] for more info). Add the following line to your sway config:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This line rotates the mouse input by 180 degrees. See https://wayland.freedesktop.org/libinput/doc/1.11.3/absolute_axes.html&lt;br /&gt;
input &amp;quot;type:table_tool&amp;quot; calibration_matrix -1 0 1 0 -1 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gnome ===&lt;br /&gt;
&lt;br /&gt;
Gnome on wayland runs nicely on the PineNote. However, a slightly patched version of mutter is required at the moment.&lt;br /&gt;
&lt;br /&gt;
* See this repository for .deb packages and patch/compile files: [https://github.com/m-weigand/pinenote_debian_mutter Patched Debian Mutter for Bookworm]&lt;br /&gt;
* The ready-to-use [https://github.com/m-weigand/pinenote-debian-recipes/releases Debian image] provides a pre-configured GNOME environment], with specific GNOME configurations found [https://github.com/m-weigand/pinenote-debian-recipes/blob/main/overlays/gnome_config/01-pinenote-settings here]&lt;br /&gt;
* A GNOME extension is being [https://github.com/m-weigand/mw_pinenote_misc/tree/main/gnome_extension developed] that provides access to some of the ebc-specific driver options.&lt;br /&gt;
* [https://github.com/MichiMolle/PNEink PNEink] is a GNOME Theme for use with the PineNote&lt;br /&gt;
&lt;br /&gt;
==== GTK3 ====&lt;br /&gt;
High contrast style for eink-devices can be found [https://github.com/MichiMolle/gtk3-eink here].&lt;br /&gt;
&lt;br /&gt;
==== GTK4 ====&lt;br /&gt;
High contrast style for eink-devices can be found [https://github.com/MichiMolle/gtk4-eink here].&lt;br /&gt;
&lt;br /&gt;
= Application support on the PineNote =&lt;br /&gt;
&lt;br /&gt;
== System-Control ==&lt;br /&gt;
&lt;br /&gt;
* A rust-based dbus service is being [https://github.com/m-weigand/pinenote_dbus_service developed] to enable easy, system-wide control over some of the PineNote-specific settings by users and programs (e.g., triggering global screen refreshes, changing waveforms, enabling/disabling dithering). Requires [https://github.com/m-weigand/linux/releases this kernel].&lt;br /&gt;
&lt;br /&gt;
== Notetaking ==&lt;br /&gt;
&lt;br /&gt;
=== Xournal++ ===&lt;br /&gt;
Works well, writing is pretty quick. The development version supports PDF highlighting, links, and  offers repainting-related optimisations (https://github.com/xournalpp/xournalpp/commit/c0a91f02afbfb67a60f7088b4c579a796693e05d and https://github.com/xournalpp/xournalpp/commit/ce1c66cb6d78f3332714ca21d279cf20548d7c06). To improve the performance even further apply https://github.com/xournalpp/xournalpp/pull/4158 and https://github.com/xournalpp/xournalpp/pull/4611 while on master.&lt;br /&gt;
&lt;br /&gt;
Xournal++ uses anti-aliasing and interpolation, which do not work well for the A1 waveform. Mitigations include using either dithering or black-white mode in the ebc driver, or compiling Xournal++ with https://gitlab.com/hrdl/pinenote-shared/-/blob/main/patches/xournalpp/0001-Disable-anti-aliasing-and-use-NEAREST-interpolation-.patch.&lt;br /&gt;
&lt;br /&gt;
Pre-compiled Debian packages with some of the PineNote-related modifications and support for triggering global refreshes after scrolling using the dbus service (see above) can be found [https://github.com/m-weigand/xournalpp_pn/releases here]&lt;br /&gt;
&lt;br /&gt;
=== Obsidian ===&lt;br /&gt;
Works well, EInk-Theme can be found [https://github.com/MichiMolle/obsidian-eink here].&lt;br /&gt;
&lt;br /&gt;
== Web Browsing ==&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
Pretty good experience! Enabling GPU acceleration is helpful.&lt;br /&gt;
&lt;br /&gt;
==== GPU Acceleration in Firefox ====&lt;br /&gt;
See [https://github.com/0cc4m/pinenote-misc#firefox-hardware-acceleration 0ccam's notes here].&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Cloud&amp;quot; ==&lt;br /&gt;
=== syncthing ===&lt;br /&gt;
High contrast theme can be found [https://github.com/MichiMolle/syncthing-eink here].&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development/Apps&amp;diff=16152</id>
		<title>PineNote Development/Apps</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development/Apps&amp;diff=16152"/>
		<updated>2023-02-04T12:22:17Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: Add dbus service program to the application list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Development = &lt;br /&gt;
&lt;br /&gt;
Here are some resources you may find helpful in learning to develop on embedded Linux devices:&lt;br /&gt;
* Great YouTube series introducing you to the kernel and lower-level components of Linux: https://www.youtube.com/watch?v=WiZ05pnHZqM&lt;br /&gt;
* https://embetronicx.com/&lt;br /&gt;
* https://bootlin.com/training/&lt;br /&gt;
* https://www.nand2tetris.org&lt;br /&gt;
&lt;br /&gt;
Emulator recommendation for developing and testing PineNote apps: https://github.com/michaelshiel/picom-epaper&lt;br /&gt;
&lt;br /&gt;
The PineNote is a specialized device, mainly due to the eink display having unique display and refresh characteristics.&lt;br /&gt;
Finding and configuring apps that work well sometimes requires a lot of tweaking and a lot exploring, especially for&lt;br /&gt;
applications containing fast screen updates and animations, as well as depend on a lot of colors.&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=ZCLyJfbzbrU Here is a video] showing the performance of a few applications.&lt;br /&gt;
&lt;br /&gt;
= Desktop Environments =&lt;br /&gt;
&lt;br /&gt;
=== Sway ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/hmpthcs/WinkShell WinkShell] &amp;quot;Collected applications, configurations and scripts for using a wlroots-based compositor with an EPD (aka e-ink display). Currently supports Sway only.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/0cc4m/pinenote-misc/blob/main/sway/config/sway/config 0cc4m's config]&lt;br /&gt;
&lt;br /&gt;
==== Getting touch + pen working on sway ====&lt;br /&gt;
&lt;br /&gt;
If you notice that touching the screen works, but when you use the pen the mouse coordinates are inverted, don't worry! We can fix it! Set &amp;lt;code&amp;gt;rockchip_ebc.panel_reflection=0&amp;lt;/code&amp;gt; on boot (see [https://wiki.pine64.org/wiki/PineNote_Development/Building_Kernel#Configuring_the_driver this page] for more info). Add the following line to your sway config:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This line rotates the mouse input by 180 degrees. See https://wayland.freedesktop.org/libinput/doc/1.11.3/absolute_axes.html&lt;br /&gt;
input &amp;quot;type:table_tool&amp;quot; calibration_matrix -1 0 1 0 -1 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gnome ===&lt;br /&gt;
&lt;br /&gt;
Gnome on wayland runs nicely on the PineNote. However, a slightly patched version of mutter is required at the moment.&lt;br /&gt;
&lt;br /&gt;
* See this repository for .deb packages and patch/compile files: [https://github.com/m-weigand/pinenote_debian_mutter Patched Debian Mutter for Bookworm]&lt;br /&gt;
* The ready-to-use [https://github.com/m-weigand/pinenote-debian-recipes/releases Debian image] provides a pre-configured GNOME environment], with specific GNOME configurations found [https://github.com/m-weigand/pinenote-debian-recipes/blob/main/overlays/gnome_config/01-pinenote-settings here]&lt;br /&gt;
* A GNOME extension is being [https://github.com/m-weigand/mw_pinenote_misc/tree/main/gnome_extension developed] that provides access to some of the ebc-specific driver options.&lt;br /&gt;
* [https://github.com/MichiMolle/PNEink PNEink] is a GNOME Theme for use with the PineNote&lt;br /&gt;
&lt;br /&gt;
==== GTK3 ====&lt;br /&gt;
High contrast style for eink-devices can be found [https://github.com/MichiMolle/gtk3-eink here].&lt;br /&gt;
&lt;br /&gt;
==== GTK4 ====&lt;br /&gt;
High contrast style for eink-devices can be found [https://github.com/MichiMolle/gtk4-eink here].&lt;br /&gt;
&lt;br /&gt;
= Application support on the PineNote =&lt;br /&gt;
&lt;br /&gt;
== System-Control ==&lt;br /&gt;
&lt;br /&gt;
* A rust-based dbus service is being [https://github.com/m-weigand/pinenote_dbus_service developed] to enable easy, system-wide control over some of the PineNote-specific settings by users and programs (e.g., triggering global screen refreshes, changing waveforms, enabling/disabling dithering). Requires [https://github.com/m-weigand/linux/releases this kernel].&lt;br /&gt;
&lt;br /&gt;
== Notetaking ==&lt;br /&gt;
&lt;br /&gt;
=== Xournal++ ===&lt;br /&gt;
Works well, writing is pretty quick. The development version supports PDF highlighting, links, and  offers repainting-related optimisations (https://github.com/xournalpp/xournalpp/commit/c0a91f02afbfb67a60f7088b4c579a796693e05d and https://github.com/xournalpp/xournalpp/commit/ce1c66cb6d78f3332714ca21d279cf20548d7c06). To improve the performance even further apply https://github.com/xournalpp/xournalpp/pull/4158 and https://github.com/xournalpp/xournalpp/pull/4611 while on master.&lt;br /&gt;
&lt;br /&gt;
Xournal++ uses anti-aliasing and interpolation, which do not work well for the A1 waveform. Mitigations include using either dithering or black-white mode in the ebc driver, or compiling Xournal++ with https://gitlab.com/hrdl/pinenote-shared/-/blob/main/patches/xournalpp/0001-Disable-anti-aliasing-and-use-NEAREST-interpolation-.patch.&lt;br /&gt;
&lt;br /&gt;
=== Obsidian ===&lt;br /&gt;
Works well, EInk-Theme can be found [https://github.com/MichiMolle/obsidian-eink here].&lt;br /&gt;
&lt;br /&gt;
== Web Browsing ==&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
Pretty good experience! Enabling GPU acceleration is helpful.&lt;br /&gt;
&lt;br /&gt;
==== GPU Acceleration in Firefox ====&lt;br /&gt;
See [https://github.com/0cc4m/pinenote-misc#firefox-hardware-acceleration 0ccam's notes here].&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Cloud&amp;quot; ==&lt;br /&gt;
=== syncthing ===&lt;br /&gt;
High contrast theme can be found [https://github.com/MichiMolle/syncthing-eink here].&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development/Apps&amp;diff=16151</id>
		<title>PineNote Development/Apps</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development/Apps&amp;diff=16151"/>
		<updated>2023-02-04T12:18:40Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: /* Gnome */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Development = &lt;br /&gt;
&lt;br /&gt;
Here are some resources you may find helpful in learning to develop on embedded Linux devices:&lt;br /&gt;
* Great YouTube series introducing you to the kernel and lower-level components of Linux: https://www.youtube.com/watch?v=WiZ05pnHZqM&lt;br /&gt;
* https://embetronicx.com/&lt;br /&gt;
* https://bootlin.com/training/&lt;br /&gt;
* https://www.nand2tetris.org&lt;br /&gt;
&lt;br /&gt;
Emulator recommendation for developing and testing PineNote apps: https://github.com/michaelshiel/picom-epaper&lt;br /&gt;
&lt;br /&gt;
The PineNote is a specialized device, mainly due to the eink display having unique display and refresh characteristics.&lt;br /&gt;
Finding and configuring apps that work well sometimes requires a lot of tweaking and a lot exploring, especially for&lt;br /&gt;
applications containing fast screen updates and animations, as well as depend on a lot of colors.&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=ZCLyJfbzbrU Here is a video] showing the performance of a few applications.&lt;br /&gt;
&lt;br /&gt;
= Desktop Environments =&lt;br /&gt;
&lt;br /&gt;
=== Sway ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/hmpthcs/WinkShell WinkShell] &amp;quot;Collected applications, configurations and scripts for using a wlroots-based compositor with an EPD (aka e-ink display). Currently supports Sway only.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/0cc4m/pinenote-misc/blob/main/sway/config/sway/config 0cc4m's config]&lt;br /&gt;
&lt;br /&gt;
==== Getting touch + pen working on sway ====&lt;br /&gt;
&lt;br /&gt;
If you notice that touching the screen works, but when you use the pen the mouse coordinates are inverted, don't worry! We can fix it! Set &amp;lt;code&amp;gt;rockchip_ebc.panel_reflection=0&amp;lt;/code&amp;gt; on boot (see [https://wiki.pine64.org/wiki/PineNote_Development/Building_Kernel#Configuring_the_driver this page] for more info). Add the following line to your sway config:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This line rotates the mouse input by 180 degrees. See https://wayland.freedesktop.org/libinput/doc/1.11.3/absolute_axes.html&lt;br /&gt;
input &amp;quot;type:table_tool&amp;quot; calibration_matrix -1 0 1 0 -1 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gnome ===&lt;br /&gt;
&lt;br /&gt;
Gnome on wayland runs nicely on the PineNote. However, a slightly patched version of mutter is required at the moment.&lt;br /&gt;
&lt;br /&gt;
* See this repository for .deb packages and patch/compile files: [https://github.com/m-weigand/pinenote_debian_mutter Patched Debian Mutter for Bookworm]&lt;br /&gt;
* The ready-to-use [https://github.com/m-weigand/pinenote-debian-recipes/releases Debian image] provides a pre-configured GNOME environment], with specific GNOME configurations found [https://github.com/m-weigand/pinenote-debian-recipes/blob/main/overlays/gnome_config/01-pinenote-settings here]&lt;br /&gt;
* A GNOME extension is being [https://github.com/m-weigand/mw_pinenote_misc/tree/main/gnome_extension developed] that provides access to some of the ebc-specific driver options.&lt;br /&gt;
* [https://github.com/MichiMolle/PNEink PNEink] is a GNOME Theme for use with the PineNote&lt;br /&gt;
&lt;br /&gt;
==== GTK3 ====&lt;br /&gt;
High contrast style for eink-devices can be found [https://github.com/MichiMolle/gtk3-eink here].&lt;br /&gt;
&lt;br /&gt;
==== GTK4 ====&lt;br /&gt;
High contrast style for eink-devices can be found [https://github.com/MichiMolle/gtk4-eink here].&lt;br /&gt;
&lt;br /&gt;
= Application support on the PineNote =&lt;br /&gt;
== Notetaking ==&lt;br /&gt;
&lt;br /&gt;
=== Xournal++ ===&lt;br /&gt;
Works well, writing is pretty quick. The development version supports PDF highlighting, links, and  offers repainting-related optimisations (https://github.com/xournalpp/xournalpp/commit/c0a91f02afbfb67a60f7088b4c579a796693e05d and https://github.com/xournalpp/xournalpp/commit/ce1c66cb6d78f3332714ca21d279cf20548d7c06). To improve the performance even further apply https://github.com/xournalpp/xournalpp/pull/4158 and https://github.com/xournalpp/xournalpp/pull/4611 while on master.&lt;br /&gt;
&lt;br /&gt;
Xournal++ uses anti-aliasing and interpolation, which do not work well for the A1 waveform. Mitigations include using either dithering or black-white mode in the ebc driver, or compiling Xournal++ with https://gitlab.com/hrdl/pinenote-shared/-/blob/main/patches/xournalpp/0001-Disable-anti-aliasing-and-use-NEAREST-interpolation-.patch.&lt;br /&gt;
&lt;br /&gt;
=== Obsidian ===&lt;br /&gt;
Works well, EInk-Theme can be found [https://github.com/MichiMolle/obsidian-eink here].&lt;br /&gt;
&lt;br /&gt;
== Web Browsing ==&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
Pretty good experience! Enabling GPU acceleration is helpful.&lt;br /&gt;
&lt;br /&gt;
==== GPU Acceleration in Firefox ====&lt;br /&gt;
See [https://github.com/0cc4m/pinenote-misc#firefox-hardware-acceleration 0ccam's notes here].&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Cloud&amp;quot; ==&lt;br /&gt;
=== syncthing ===&lt;br /&gt;
High contrast theme can be found [https://github.com/MichiMolle/syncthing-eink here].&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development/Apps&amp;diff=16150</id>
		<title>PineNote Development/Apps</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development/Apps&amp;diff=16150"/>
		<updated>2023-02-04T12:17:14Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: Add information to the GNOME section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Development = &lt;br /&gt;
&lt;br /&gt;
Here are some resources you may find helpful in learning to develop on embedded Linux devices:&lt;br /&gt;
* Great YouTube series introducing you to the kernel and lower-level components of Linux: https://www.youtube.com/watch?v=WiZ05pnHZqM&lt;br /&gt;
* https://embetronicx.com/&lt;br /&gt;
* https://bootlin.com/training/&lt;br /&gt;
* https://www.nand2tetris.org&lt;br /&gt;
&lt;br /&gt;
Emulator recommendation for developing and testing PineNote apps: https://github.com/michaelshiel/picom-epaper&lt;br /&gt;
&lt;br /&gt;
The PineNote is a specialized device, mainly due to the eink display having unique display and refresh characteristics.&lt;br /&gt;
Finding and configuring apps that work well sometimes requires a lot of tweaking and a lot exploring, especially for&lt;br /&gt;
applications containing fast screen updates and animations, as well as depend on a lot of colors.&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=ZCLyJfbzbrU Here is a video] showing the performance of a few applications.&lt;br /&gt;
&lt;br /&gt;
= Desktop Environments =&lt;br /&gt;
&lt;br /&gt;
=== Sway ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/hmpthcs/WinkShell WinkShell] &amp;quot;Collected applications, configurations and scripts for using a wlroots-based compositor with an EPD (aka e-ink display). Currently supports Sway only.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/0cc4m/pinenote-misc/blob/main/sway/config/sway/config 0cc4m's config]&lt;br /&gt;
&lt;br /&gt;
==== Getting touch + pen working on sway ====&lt;br /&gt;
&lt;br /&gt;
If you notice that touching the screen works, but when you use the pen the mouse coordinates are inverted, don't worry! We can fix it! Set &amp;lt;code&amp;gt;rockchip_ebc.panel_reflection=0&amp;lt;/code&amp;gt; on boot (see [https://wiki.pine64.org/wiki/PineNote_Development/Building_Kernel#Configuring_the_driver this page] for more info). Add the following line to your sway config:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This line rotates the mouse input by 180 degrees. See https://wayland.freedesktop.org/libinput/doc/1.11.3/absolute_axes.html&lt;br /&gt;
input &amp;quot;type:table_tool&amp;quot; calibration_matrix -1 0 1 0 -1 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gnome ===&lt;br /&gt;
&lt;br /&gt;
Gnome on wayland runs nicely on the PineNote. However, a slightly patched version of mutter is required at the moment.&lt;br /&gt;
&lt;br /&gt;
* See this repository for .deb packages and patch/compile files: [https://github.com/m-weigand/pinenote_debian_mutter Patched Debian Mutter for Bookworm]&lt;br /&gt;
* The ready-to-use [https://github.com/m-weigand/pinenote-debian-recipes/releases Debian image] provides a pre-configured GNOME environment], with specific GNOME configurations found [https://github.com/m-weigand/pinenote-debian-recipes/blob/main/overlays/gnome_config/01-pinenote-settings here]&lt;br /&gt;
* A GNOME extension is being [https://github.com/m-weigand/mw_pinenote_misc/tree/main/gnome_extension developed] that provides access to some of the ebc-specific driver options.&lt;br /&gt;
&lt;br /&gt;
==== GTK3 ====&lt;br /&gt;
High contrast style for eink-devices can be found [https://github.com/MichiMolle/gtk3-eink here].&lt;br /&gt;
&lt;br /&gt;
==== GTK4 ====&lt;br /&gt;
High contrast style for eink-devices can be found [https://github.com/MichiMolle/gtk4-eink here].&lt;br /&gt;
&lt;br /&gt;
= Application support on the PineNote =&lt;br /&gt;
== Notetaking ==&lt;br /&gt;
&lt;br /&gt;
=== Xournal++ ===&lt;br /&gt;
Works well, writing is pretty quick. The development version supports PDF highlighting, links, and  offers repainting-related optimisations (https://github.com/xournalpp/xournalpp/commit/c0a91f02afbfb67a60f7088b4c579a796693e05d and https://github.com/xournalpp/xournalpp/commit/ce1c66cb6d78f3332714ca21d279cf20548d7c06). To improve the performance even further apply https://github.com/xournalpp/xournalpp/pull/4158 and https://github.com/xournalpp/xournalpp/pull/4611 while on master.&lt;br /&gt;
&lt;br /&gt;
Xournal++ uses anti-aliasing and interpolation, which do not work well for the A1 waveform. Mitigations include using either dithering or black-white mode in the ebc driver, or compiling Xournal++ with https://gitlab.com/hrdl/pinenote-shared/-/blob/main/patches/xournalpp/0001-Disable-anti-aliasing-and-use-NEAREST-interpolation-.patch.&lt;br /&gt;
&lt;br /&gt;
=== Obsidian ===&lt;br /&gt;
Works well, EInk-Theme can be found [https://github.com/MichiMolle/obsidian-eink here].&lt;br /&gt;
&lt;br /&gt;
== Web Browsing ==&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
Pretty good experience! Enabling GPU acceleration is helpful.&lt;br /&gt;
&lt;br /&gt;
==== GPU Acceleration in Firefox ====&lt;br /&gt;
See [https://github.com/0cc4m/pinenote-misc#firefox-hardware-acceleration 0ccam's notes here].&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Cloud&amp;quot; ==&lt;br /&gt;
=== syncthing ===&lt;br /&gt;
High contrast theme can be found [https://github.com/MichiMolle/syncthing-eink here].&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=16149</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=16149"/>
		<updated>2023-02-04T12:09:46Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: /* PineNote Developer kit version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 model A SBC and powered by a Rockchip RK3566 quad-core ARM Cortex A55 64-bit processor with a MALI G-52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the in 2021 released Rockchip RK3566 SoC. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer using the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific for the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
An early version of a GNOME-based Debian image is available for [[PineNote_Software_Releases|testing]], but should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://www.pine64.org/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
While there are no robust and tested operating system releases for the PineNote available at this time, various linux distributions can be installed on the PineNote, with various degrees of working functionality.&lt;br /&gt;
Operating system software releases, or efforts to create them, can be found in the [[PineNote Software Releases]] section. Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Flashing]] for general flashing instructions of data to the PineNote&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
==== Linux Kernel ====&lt;br /&gt;
&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
* BSP Linux SDK version 4.19 for the PineNote and [[Quartz64|Quartz64 Model A]]:&lt;br /&gt;
** [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct download] from ''pine64.org'' (32.67GB, MD5 of the TAR-GZip file ''24554419aec29700add97167a3a4c9ed'')&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz Mirror by mwfc]&lt;br /&gt;
** An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
==== User Space ====&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
==== Android ====&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for the PineNote and [[Quartz64|Quartz64 Model A]. This is the Android SDK build for 10.3&amp;quot; eink panels on Quartz64 Model A. &lt;br /&gt;
&lt;br /&gt;
Download:&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct download] from ''pine64.org'' (72.88GB, MD5 of the TAR-GZip file ''293a550584298de4fb95ceae18103672'')&lt;br /&gt;
* [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz Mirror by mwfc]&lt;br /&gt;
* An unofficial torrent download provided by a community member of the BSP Linux and Android SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
* Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
==== Related ====&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
The USB UART dongle delivered with the PineNote allows you to have access to a serial port via USB-C Debug Accessory Mode (''DAM'') without having to open up the device. &lt;br /&gt;
The factory firmware runs at a baud rate of 1500000bps, 8 data bits 1 stop bit, no parity and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
In case you loose your dongle, you can rebuild one using a USB-C Breakout board.&lt;br /&gt;
&lt;br /&gt;
It is also relatively easy to build your own UART interface with a USB-C breakout board (for example https://www.ebay.com/itm/275407037613), two resistors and a 3.3V USB serial adapter. It is basically just two 1K pull up resistors (R3, R4), the data sheet values of 10K isn't whats on the real hardware, see the [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf schematic]. The pull ups enable the serial output on SBU1 and SBU2 you can use with any 3.3V USB serial adapter.&lt;br /&gt;
&lt;br /&gt;
The UART dongle is not necessary to flash the PineNote, but is essential if something goes wrong to fix it without having to open the case.&lt;br /&gt;
&lt;br /&gt;
You can flash premade images with the following links:&lt;br /&gt;
* https://github.com/m-weigand/pinenote_uboot_patching_dorians_backup (Note: this creates a U-Boot image to flash, do not worry about idblock.bin on the instructions for the next link)&lt;br /&gt;
* https://github.com/m-weigand/pinenote-debian-recipes/releases/&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* System memory: 4GB LPDDR4&lt;br /&gt;
* Flash: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch)&lt;br /&gt;
* Optional Cover (included in the first production batch)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory : 4GB LPDDR4.&lt;br /&gt;
* Flash Memory: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
== PineNote Information, Schematics, and Certifications ==&lt;br /&gt;
&lt;br /&gt;
=== PineNote Developer kit version ===&lt;br /&gt;
* Version v1.2 is the PineNote production version that was sold through the Pines64 store&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file] Note: When building USB-C console breakout board, please be aware 10k CC pin pull-up is too weak to pull CC to logically high level. Replacing it to lower resistance, such as 1k is recommended.&lt;br /&gt;
&lt;br /&gt;
* The v1.1 is early release schematic just for reference only and used by developers who received the prototype. &lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
* Certifications:&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
* Rockchip RK3566 SoC information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]&lt;br /&gt;
* Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet]&lt;br /&gt;
* LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
** ---&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
* E-ink Panel information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
* Touch Screen information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
** Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
* WiFi/BT module info:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
* G Sensor info:&lt;br /&gt;
** [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
* Audio Amplifier information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=15813</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=15813"/>
		<updated>2023-01-27T13:52:19Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: sort SDK/BSP downloads into the software section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 model A SBC and powered by a Rockchip RK3566 quad-core ARM Cortex A55 64-bit processor with a MALI G-52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the in 2021 released Rockchip RK3566 SoC. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer using the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific for the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
An early version of a GNOME-based Debian image is available for [[PineNote_Software_Releases|testing]], but should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://www.pine64.org/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
While there are no robust and tested operating system releases for the PineNote available at this time, various linux distributions can be installed on the PineNote, with various degrees of working functionality.&lt;br /&gt;
Operating system software releases, or efforts to create them, can be found in the [[PineNote Software Releases]] section. Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Flashing]] for general flashing instructions of data to the PineNote&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
==== Linux Kernel ====&lt;br /&gt;
&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
* BSP Linux SDK version 4.19 for PineNote and Quart64 model A SBC&lt;br /&gt;
** [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz mirror by mwfc]&lt;br /&gt;
** MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed&lt;br /&gt;
** File Size: 32.67GB&lt;br /&gt;
** An unofficial torrent download provided by a community member of both SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== User Space ====&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
==== Android ====&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for PineNote and Quart64 model A SBC&lt;br /&gt;
* This is the Android SDK build for 10.3&amp;quot; eink panel on Quartz64 model A SBC. &lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz mirror by mwfc]&lt;br /&gt;
** MD5 (TAR-GZip file): 293a550584298de4fb95ceae18103672&lt;br /&gt;
** File Size: 72.88GB&lt;br /&gt;
** Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
** An unofficial torrent download provided by a community member of both SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
==== Related ====&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
The USB UART dongle delivered with the PineNote allows you to have access to a serial port via USB-C Debug Accesory Mode (DAM) without having to open up the device. The factory firmware runs at a baud rate of 1500000bps, 8 data bits 1 stop bit, no parity and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* System memory: 4GB LPDDR4&lt;br /&gt;
* Flash: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch)&lt;br /&gt;
* Optional Cover (included in the first production batch)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory : 4GB LPDDR4.&lt;br /&gt;
* Flash Memory: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
== PineNote Information, Schematics, and Certifications ==&lt;br /&gt;
&lt;br /&gt;
=== PineNote Developer kit version ===&lt;br /&gt;
* Version v1.2 is the PineNote production version that was sold through the Pines64 store&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file]&lt;br /&gt;
When building USB-C console breakout board, please be aware 10k CC pin pull-up is too weak to pull CC to logically high level. Replacing it to lower resistance, such as 1k is recommended.&lt;br /&gt;
&lt;br /&gt;
* The v1.1 is early release schematic just for reference only and used by developers who received the prototype. &lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
* Certifications:&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
* Rockchip RK3566 SoC information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]&lt;br /&gt;
* Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet]&lt;br /&gt;
* LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
** ---&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
* E-ink Panel information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
* Touch Screen information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
** Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
* WiFi/BT module info:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
* G Sensor info:&lt;br /&gt;
** [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
* Audio Amplifier information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=15812</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=15812"/>
		<updated>2023-01-27T13:49:16Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: Try to restructure the PineNote Software section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 model A SBC and powered by a Rockchip RK3566 quad-core ARM Cortex A55 64-bit processor with a MALI G-52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the in 2021 released Rockchip RK3566 SoC. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer using the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific for the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
An early version of a GNOME-based Debian image is available for [[PineNote_Software_Releases|testing]], but should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://www.pine64.org/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
While there are no robust and tested operating system releases for the PineNote available at this time, various linux distributions can be installed on the PineNote, with various degrees of working functionality.&lt;br /&gt;
Operating system software releases, or efforts to create them, can be found in the [[PineNote Software Releases]] section. Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Flashing]] for general flashing instructions of data to the PineNote&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
==== Linux Kernel ====&lt;br /&gt;
&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
&lt;br /&gt;
==== User Space ====&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
==== Android ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Related ====&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
The USB UART dongle delivered with the PineNote allows you to have access to a serial port via USB-C Debug Accesory Mode (DAM) without having to open up the device. The factory firmware runs at a baud rate of 1500000bps, 8 data bits 1 stop bit, no parity and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* System memory: 4GB LPDDR4&lt;br /&gt;
* Flash: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch)&lt;br /&gt;
* Optional Cover (included in the first production batch)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory : 4GB LPDDR4.&lt;br /&gt;
* Flash Memory: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
== PineNote Information, Schematics, and Certifications ==&lt;br /&gt;
&lt;br /&gt;
=== PineNote Developer kit version ===&lt;br /&gt;
* Version v1.2 is the PineNote production version that was sold through the Pines64 store&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file]&lt;br /&gt;
When building USB-C console breakout board, please be aware 10k CC pin pull-up is too weak to pull CC to logically high level. Replacing it to lower resistance, such as 1k is recommended.&lt;br /&gt;
&lt;br /&gt;
* The v1.1 is early release schematic just for reference only and used by developers who received the prototype. &lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
* Certifications:&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
* Rockchip RK3566 SoC information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]&lt;br /&gt;
* Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet]&lt;br /&gt;
* LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
** ---&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
* E-ink Panel information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
* Touch Screen information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
** Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
* WiFi/BT module info:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
* G Sensor info:&lt;br /&gt;
** [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
* Audio Amplifier information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
== BSP Linux SDK ==&lt;br /&gt;
&lt;br /&gt;
BSP Linux SDK version 4.19 for PineNote and Quart64 model A SBC&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz mirror by mwfc]&lt;br /&gt;
** MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed&lt;br /&gt;
** File Size: 32.67GB&lt;br /&gt;
&lt;br /&gt;
An unofficial torrent download provided by a community member of both SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
== Android SDK ==&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for PineNote and Quart64 model A SBC&lt;br /&gt;
* This is the Android SDK build for 10.3&amp;quot; eink panel on Quartz64 model A SBC. &lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz mirror by mwfc]&lt;br /&gt;
** MD5 (TAR-GZip file): 293a550584298de4fb95ceae18103672&lt;br /&gt;
** File Size: 72.88GB&lt;br /&gt;
** Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
An unofficial torrent download provided by a community member of both SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=15811</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=15811"/>
		<updated>2023-01-27T13:18:22Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: delete duplicate information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 model A SBC and powered by a Rockchip RK3566 quad-core ARM Cortex A55 64-bit processor with a MALI G-52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the in 2021 released Rockchip RK3566 SoC. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer using the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific for the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
An early version of a GNOME-based Debian image is available for [[PineNote_Software_Releases|testing]], but should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://www.pine64.org/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
While there are no robust and tested operating system releases for the PineNote available at this time, various linux distributions can be installed on the PineNote, with various degrees of working functionality.&lt;br /&gt;
Operating system software releases, or efforts to create them, can be found in the [[PineNote Software Releases]] section. Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
Flashing, compiling and similar:&lt;br /&gt;
* [[PineNote Development/Flashing]]&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
Related:&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
The USB UART dongle delivered with the PineNote allows you to have access to a serial port via USB-C Debug Accesory Mode (DAM) without having to open up the device. The factory firmware runs at a baud rate of 1500000bps, 8 data bits 1 stop bit, no parity and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* System memory: 4GB LPDDR4&lt;br /&gt;
* Flash: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch)&lt;br /&gt;
* Optional Cover (included in the first production batch)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory : 4GB LPDDR4.&lt;br /&gt;
* Flash Memory: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
== PineNote Information, Schematics, and Certifications ==&lt;br /&gt;
&lt;br /&gt;
=== PineNote Developer kit version ===&lt;br /&gt;
* Version v1.2 is the PineNote production version that was sold through the Pines64 store&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file]&lt;br /&gt;
When building USB-C console breakout board, please be aware 10k CC pin pull-up is too weak to pull CC to logically high level. Replacing it to lower resistance, such as 1k is recommended.&lt;br /&gt;
&lt;br /&gt;
* The v1.1 is early release schematic just for reference only and used by developers who received the prototype. &lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
* Certifications:&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
* Rockchip RK3566 SoC information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]&lt;br /&gt;
* Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet]&lt;br /&gt;
* LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
** ---&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
* E-ink Panel information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
* Touch Screen information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
** Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
* WiFi/BT module info:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
* G Sensor info:&lt;br /&gt;
** [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
* Audio Amplifier information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
== BSP Linux SDK ==&lt;br /&gt;
&lt;br /&gt;
BSP Linux SDK version 4.19 for PineNote and Quart64 model A SBC&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz mirror by mwfc]&lt;br /&gt;
** MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed&lt;br /&gt;
** File Size: 32.67GB&lt;br /&gt;
&lt;br /&gt;
An unofficial torrent download provided by a community member of both SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
== Android SDK ==&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for PineNote and Quart64 model A SBC&lt;br /&gt;
* This is the Android SDK build for 10.3&amp;quot; eink panel on Quartz64 model A SBC. &lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz mirror by mwfc]&lt;br /&gt;
** MD5 (TAR-GZip file): 293a550584298de4fb95ceae18103672&lt;br /&gt;
** File Size: 72.88GB&lt;br /&gt;
** Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
An unofficial torrent download provided by a community member of both SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development/Flashing&amp;diff=15810</id>
		<title>PineNote Development/Flashing</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development/Flashing&amp;diff=15810"/>
		<updated>2023-01-27T13:17:31Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: reformulate entry text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under construction}}&lt;br /&gt;
&lt;br /&gt;
{{Info|These instructions are directed towards experienced developers only!}}&lt;br /&gt;
&lt;br /&gt;
Currently, software can be flashed using rkdeveloptool or from the factory Android installation (UART shell, adb, or fastboot).&lt;br /&gt;
&lt;br /&gt;
== Backup ==&lt;br /&gt;
&lt;br /&gt;
{{Info|A backup of the content of the internal eMMC before anything gets messed is '''mandatory'''.}}&lt;br /&gt;
&lt;br /&gt;
Especially the ''waveform'' partition contains data '''unique''' to your PineNote and is a prime candidate for backup.&lt;br /&gt;
&lt;br /&gt;
But other partitions like U-Boot (need for any operation of the device) or the un-partitioned space at the beginning containing the GPT partition table (and presumably the VCOM setting for the e-ink display and maybe device mac addresses) contains data you may wish to backup.&lt;br /&gt;
&lt;br /&gt;
Depending of your personal level of data hoarder you may want to backup more than this or even just everything (the large ''userdata'' partition is supposed to be able to be repopulated as empty space by Android)&lt;br /&gt;
&lt;br /&gt;
In any case it is easier to restore/extract data from a backup than not having one if you need one.&lt;br /&gt;
&lt;br /&gt;
=== Manually using rkdeveloptool ===&lt;br /&gt;
Dorian has some nice [https://github.com/DorianRudolph/pinenotes notes regarding the PineNote]&lt;br /&gt;
&lt;br /&gt;
Don't forget to install a patched U-Boo for reading beyond 32MB and to respect the 2GB limit/bug of the current rkdeveloptool as per his notes&lt;br /&gt;
&lt;br /&gt;
Build rkdeveloptool:&lt;br /&gt;
&lt;br /&gt;
 git clone https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool.git&lt;br /&gt;
 cd rkdeveloptool&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake ..&lt;br /&gt;
&lt;br /&gt;
Download mode&lt;br /&gt;
Enter the download mode by placing the pen as pictured below. A magnet placed where the pen's cap is should also work (haven't tried). I guess the dot on the case also indicates the position of the sensor.&lt;br /&gt;
&lt;br /&gt;
placing pen on the back&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;lsusb&amp;lt;/code&amp;gt; should now recognize the PineNote as:&lt;br /&gt;
&lt;br /&gt;
 2207:350a Fuzhou Rockchip Electronics Company USB download gadget&lt;br /&gt;
&lt;br /&gt;
List partitions:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; rkdeveloptool list-partitions                      &lt;br /&gt;
 #   LBA start (sectors)  LBA end (sectors)  Size (bytes)       Name                &lt;br /&gt;
 00                16384              24575       4194304       uboot&lt;br /&gt;
 01                24576              32767       4194304       trust&lt;br /&gt;
 02                32768              36863       2097152       waveform&lt;br /&gt;
 03                36864              45055       4194304       misc&lt;br /&gt;
 04                45056              53247       4194304       dtbo&lt;br /&gt;
 05                53248              55295       1048576       vbmeta&lt;br /&gt;
 06                55296             137215      41943040       boot&lt;br /&gt;
 07               137216             145407       4194304       security&lt;br /&gt;
 08               145408             407551     134217728       recovery&lt;br /&gt;
 09               407552            1193983     402653184       backup&lt;br /&gt;
 10              1193984            3291135    1073741824       cache&lt;br /&gt;
 11              3291136            3323903      16777216       metadata&lt;br /&gt;
 12              3323904            9697279    3263168512       super&lt;br /&gt;
 13              9697280            9730047      16777216       logo&lt;br /&gt;
 14              9730048            9861119      67108864       device&lt;br /&gt;
 15              9861120          241827775  118766927872       userdata&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Warning|this process is very new! Proceed at your own risk.}}&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/m-weigand/pinenote-debian-recipes/releases/tag/v0.1 instructions on this artifact]. It will instruct you on extracting the rootfs into an empty ext4 partition. This can be done from Linux or Android. Further instructions on building your own rootfs [https://github.com/m-weigand/pinenote-debian-recipes can be found here].&lt;br /&gt;
&lt;br /&gt;
=== Automated backup using a script and rkdeveloptool ===&lt;br /&gt;
[https://github.com/talpadk/pinenote-backup pinenote-backup] is a python script for detecting the partitions and automating the backup of partitions or the whole disk.&lt;br /&gt;
&lt;br /&gt;
It also requires a patched u-boot but automatically handles the 2GB limit by splitting up larger reads into smaller ones&lt;br /&gt;
&lt;br /&gt;
=== Using the factory Android installation ===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Using a user installed Linux ===&lt;br /&gt;
A Linux installed to the cache partition should be able to easily backup everything over WiFi or to a USB stick/disk using ''dd''.&lt;br /&gt;
&lt;br /&gt;
However the user would need to backup the cache partition themself (if they want that).&lt;br /&gt;
&lt;br /&gt;
And more importantly they would only be getting the backup ''after'' they started playing with the content of the eMMC.&lt;br /&gt;
&lt;br /&gt;
== Side-by-side setup ==&lt;br /&gt;
&lt;br /&gt;
It is possible to set up a partition for mainline development without disturbing the factory Android installation. This allows updating a mainline kernel, DTB, and initramfs over Wi-Fi until WiFi or USB OTG is working in mainline Linux.&lt;br /&gt;
&lt;br /&gt;
=== Without Repartitioning ===&lt;br /&gt;
&lt;br /&gt;
The recommended partition for this is &amp;lt;tt&amp;gt;mmcblk0p11&amp;lt;/tt&amp;gt; aka &amp;lt;tt&amp;gt;/cache&amp;lt;/tt&amp;gt;. It is large and already formatted as &amp;lt;tt&amp;gt;ext4&amp;lt;/tt&amp;gt;, so it is readable from U-Boot. Here are some general steps:&lt;br /&gt;
&lt;br /&gt;
# From the UART or adb shell, set up your chroot in &amp;lt;tt&amp;gt;/cache&amp;lt;/tt&amp;gt;. I used the Alpine Linux rootfs tarball.&lt;br /&gt;
# Copy in your kernel and DTB, using for example &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;wget&amp;lt;/tt&amp;gt; inside the chroot.&lt;br /&gt;
# Finally, create and boot an &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; as described below.&lt;br /&gt;
&lt;br /&gt;
=== With Repartitioning ===&lt;br /&gt;
&lt;br /&gt;
It is possible to shrink the &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt; partition, and create a new partition at the end for use with mainline Linux. This provides much more space than &amp;lt;tt&amp;gt;cache&amp;lt;/tt&amp;gt;. However, because &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt; is formatted with &amp;lt;tt&amp;gt;f2fs&amp;lt;/tt&amp;gt;, and that filesystem cannot be shrunk, resizing the partition requires wiping &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# Back up any necessary files from userdata&lt;br /&gt;
# Boot to a mainline kernel from &amp;lt;tt&amp;gt;mmcblk0p11&amp;lt;/tt&amp;gt;, either using that partition as rootfs (see above), or using an initramfs with repartitioning tools&lt;br /&gt;
# Modify the partition table with your favorite tool, e.g. &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gdisk&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;parted&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Reboot into &amp;lt;tt&amp;gt;fastboot&amp;lt;/tt&amp;gt; and wipe &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Reboot into Android, where you can now chroot in and install your favorite distribution to the new partition.&lt;br /&gt;
&lt;br /&gt;
== Using rkdeveloptool ==&lt;br /&gt;
&lt;br /&gt;
rkdeveloptool is a command line utility built on libusb.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and Building rkdeveloptool ===&lt;br /&gt;
&lt;br /&gt;
PINE64 develops [https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool its own updated fork of rkdeveloptool on GitLab].&lt;br /&gt;
&lt;br /&gt;
You will need to have libusb 1.0, its development headers and scdoc installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool.git&lt;br /&gt;
cd rkdeveloptool&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sets up all the build files. You can then compile with &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; inside the build directory.&lt;br /&gt;
&lt;br /&gt;
After you're done, you'll likely also need to install the udev rules, or else your user won't have permission to access the USB devices:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp 99-rk-rockusb.rules /etc/udev/rules.d/&lt;br /&gt;
sudo udevadm control --reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copying the udev rules is also performed automatically when you &amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Building Downstream U-Boot ===&lt;br /&gt;
&lt;br /&gt;
While in maskrom mode, we need to have a u-boot to download onto the device for any of the other commands to work. To build you'll also need to install device-tree-compiler.&lt;br /&gt;
&lt;br /&gt;
You also need to install Python and pyelftools.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Note that rkbin is a &amp;amp;gt;5GB download!&amp;lt;/b&amp;gt; This will take some time to clone and process the deltas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b quartz64 https://gitlab.com/pgwipeout/u-boot-rockchip.git&lt;br /&gt;
git clone -b rkbin https://github.com/JeffyCN/rockchip_mirrors.git rkbin&lt;br /&gt;
cd u-boot-rockchip&lt;br /&gt;
# If using Arch Linux, export CROSS_COMPILE=aarch64-linux-gnu-&lt;br /&gt;
export CROSS_COMPILE=aarch64-none-linux-gnu-&lt;br /&gt;
make rk3566-quartz64_defconfig&lt;br /&gt;
./make.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
In the current version (current as of 2022-01-02), there might have to be made a change to one line to get a clean compilation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/lib/avb/libavb/avb_slot_verify.c b/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
index 123701fc3b..64a1ce6450 100644&lt;br /&gt;
--- a/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
+++ b/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
@@ -296,7 +296,7 @@ static AvbSlotVerifyResult load_and_verify_hash_partition(&lt;br /&gt;
   bool image_preloaded = false;&lt;br /&gt;
   uint8_t* digest;&lt;br /&gt;
   size_t digest_len;&lt;br /&gt;
-  const char* found;&lt;br /&gt;
+  const char* found = NULL;&lt;br /&gt;
   uint64_t image_size;&lt;br /&gt;
   size_t expected_digest_len = 0;&lt;br /&gt;
   uint8_t expected_digest_buf[AVB_SHA512_DIGEST_SIZE];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For systems where the global python executable points to python2, compilation fails with an error related to pyelftools not being installed (even if it is). To fix this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/make.sh b/make.sh&lt;br /&gt;
index 2bba05b4e4..cfe5b0afd5 100755&lt;br /&gt;
--- a/make.sh&lt;br /&gt;
+++ b/make.sh&lt;br /&gt;
@@ -758,7 +758,7 @@ function pack_fit_image()&lt;br /&gt;
        fi&lt;br /&gt;
 &lt;br /&gt;
        if [ &amp;quot;${ARM64_TRUSTZONE}&amp;quot; == &amp;quot;y&amp;quot; ]; then&lt;br /&gt;
-               if ! python -c &amp;quot;import elftools&amp;quot; ; then&lt;br /&gt;
+               if ! python3 -c &amp;quot;import elftools&amp;quot; ; then&lt;br /&gt;
                        echo &amp;quot;ERROR: No python 'pyelftools', please: pip install pyelftools&amp;quot;&lt;br /&gt;
                        exit 1&lt;br /&gt;
                fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entering Maskrom/Rockusb Mode ===&lt;br /&gt;
&lt;br /&gt;
There are three ways to get into Maskrom/Rockusb mode:&lt;br /&gt;
&lt;br /&gt;
====  The easy way ====&lt;br /&gt;
&lt;br /&gt;
# Flip the device around so that the display faces down&lt;br /&gt;
# Lay the pen on the right side, with its tip pointing towards the speaker grill, and its magnet pointing towards the upper right corner of the label on the back (or place the magnetic cap from the pen on the spot marked on the back).&lt;br /&gt;
# Turn the device on and wait for it to show up in &amp;lt;code&amp;gt;lsusb&amp;lt;/code&amp;gt;. It should now be in Loader mode, according to &amp;lt;code&amp;gt;rkdeveloptool list-devices&amp;lt;/code&amp;gt; (note that ''Loader'' here indicates U-Boot's Rockusb; separately, booting with an erased eMMC displays ''Maskrom'' (not ''Loader'') from the RK3566).&lt;br /&gt;
# Unplug the device and plug it back in. It should now be in Rockusb mode.&lt;br /&gt;
&lt;br /&gt;
This can be a bit fiddly to get right and may need a few tries.&lt;br /&gt;
&lt;br /&gt;
==== The u-boot way ====&lt;br /&gt;
# Interrupt the u-boot startup using ''ctrl-c'' (while attached using an UART dongle)&lt;br /&gt;
# While in u-boot use the command &amp;lt;code&amp;gt;rockusb 0 mmc 0&amp;lt;/code&amp;gt; to start Rockusb mode.&lt;br /&gt;
&lt;br /&gt;
One benefit from this is, that if you have an UART dongle that allows to simultaneous having an UART and USB connection, there is no need to plug and unplug cables and flipping the PineNote around and placing magnets.  &lt;br /&gt;
&lt;br /&gt;
This is especially helpful when changing back and forth between U-Boot and Rockusb, for instance when trying to develop u-boot.&lt;br /&gt;
&lt;br /&gt;
==== Shorting test points ====&lt;br /&gt;
&lt;br /&gt;
If the bootloader is broken/corrupted, you cannot get to Maskrom without opening up the device (it can be opened using spudger and a bit of patience).&lt;br /&gt;
&lt;br /&gt;
Once inside, short TP1301 (GND) and TP1302 (eMMC_D0/FLASH_D0) with a small tweezers, this is how it looks on board view (credit to Caleb):&lt;br /&gt;
&lt;br /&gt;
[[File:PineNote_Maskrom_TP.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Then plug the device to the computer and if you see the device with VID=2207/PID=350a then it should be in Maskrom mode, you can verify by typing &amp;lt;code&amp;gt;rkdeveloptool list-devices&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Jan 07 15:04:13 melttower kernel: usb 1-14: New USB device found, idVendor=2207, idProduct=350a, bcdDevice= 1.00&lt;br /&gt;
Jan 07 15:04:13 melttower kernel: usb 1-14: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
&lt;br /&gt;
$ rkdeveloptool list-devices&lt;br /&gt;
DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=10e    Maskrom&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If nothing shows up, you can try to hold down the power button for 5 seconds and then try again.&lt;br /&gt;
&lt;br /&gt;
=== Running rkdeveloptool ===&lt;br /&gt;
&lt;br /&gt;
First, you'll want to make sure the device you've connected is in maskrom mode:&lt;br /&gt;
&lt;br /&gt;
 ./rkdeveloptool list&lt;br /&gt;
&lt;br /&gt;
It should output something like &amp;quot;''DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=202 Maskrom''&amp;quot;. If it doesn't, see [[PineNote Development#Entering Maskrom Mode]].&lt;br /&gt;
&lt;br /&gt;
You can now download u-boot onto it:&lt;br /&gt;
&lt;br /&gt;
 ./rkdeveloptool boot ../u-boot-rockchip/rk356x_spl_loader_v1.08.111.bin&lt;br /&gt;
&lt;br /&gt;
This should output &amp;quot;''Downloading bootloader succeeded''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
We can now verify that this worked using e.g. the &amp;quot;read flash info&amp;quot; command:&lt;br /&gt;
&lt;br /&gt;
 ./rkdeveloptool read-flash-info&lt;br /&gt;
&lt;br /&gt;
{{Note|'''TODO:''' Section needs to be finished}}&lt;br /&gt;
&lt;br /&gt;
=== Creating a mainline boot image ===&lt;br /&gt;
&lt;br /&gt;
You can create a filesystem image that replaces the Android boot or recovery partition by doing roughly the following:&lt;br /&gt;
&lt;br /&gt;
# Erase boot and dtbo with rkdeveloptool or fastboot (back them up first!!!)&lt;br /&gt;
# Create an ext2 partition image and mount it (fallocate, mkfs.ext2)&lt;br /&gt;
# Build your mainline kernel&lt;br /&gt;
# Copy the kernel, dtb and an initramfs to the root of the mounted image (use any old postmarketOS initramfs)&lt;br /&gt;
# Create a file in the root of the mounted image called &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; as described below&lt;br /&gt;
# Unmount the image and then use rkdeveloptool to flash it to the &amp;quot;recovery&amp;quot; partition on the pinenote (it's about the right size until we get around to replacing the partition layout).&lt;br /&gt;
&lt;br /&gt;
== Using fastboot ==&lt;br /&gt;
&lt;br /&gt;
Follow the steps for [[PineNote Development/Flashing#Creating a mainline boot image|Creating a mainline boot image]], but instead of flashing it with ''rkdeveloptool'', use ''fastboot''. You can enter fastboot in either of two ways:&lt;br /&gt;
&lt;br /&gt;
* Use &amp;quot;reboot bootloader&amp;quot; from adb or a UART console or&lt;br /&gt;
* get a U-Boot prompt and run &amp;lt;code&amp;gt;fastboot usb 0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=15809</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=15809"/>
		<updated>2023-01-27T13:11:31Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: Minor reformulation of */ Software releases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 model A SBC and powered by a Rockchip RK3566 quad-core ARM Cortex A55 64-bit processor with a MALI G-52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the in 2021 released Rockchip RK3566 SoC. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer using the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific for the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
An early version of a GNOME-based Debian image is available for [[PineNote_Software_Releases|testing]], but should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://www.pine64.org/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
While there are no robust and tested operating system releases for the PineNote available at this time, various linux distributions can be installed on the PineNote, with various degrees of working functionality.&lt;br /&gt;
Operating system software releases, or efforts to create them, can be found in the [[PineNote Software Releases]] section. Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
== Installation instructions ==&lt;br /&gt;
&lt;br /&gt;
The device can be flashed using the following instructions: [[PineNote Development/Flashing]]&lt;br /&gt;
&lt;br /&gt;
{{Info|These instructions are directed towards experienced developers only!}}&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
Flashing, compiling and similar:&lt;br /&gt;
* [[PineNote Development/Flashing]]&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
Related:&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
The USB UART dongle delivered with the PineNote allows you to have access to a serial port via USB-C Debug Accesory Mode (DAM) without having to open up the device. The factory firmware runs at a baud rate of 1500000bps, 8 data bits 1 stop bit, no parity and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* System memory: 4GB LPDDR4&lt;br /&gt;
* Flash: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch)&lt;br /&gt;
* Optional Cover (included in the first production batch)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory : 4GB LPDDR4.&lt;br /&gt;
* Flash Memory: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
== PineNote Information, Schematics, and Certifications ==&lt;br /&gt;
&lt;br /&gt;
=== PineNote Developer kit version ===&lt;br /&gt;
* Version v1.2 is the PineNote production version that was sold through the Pines64 store&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file]&lt;br /&gt;
When building USB-C console breakout board, please be aware 10k CC pin pull-up is too weak to pull CC to logically high level. Replacing it to lower resistance, such as 1k is recommended.&lt;br /&gt;
&lt;br /&gt;
* The v1.1 is early release schematic just for reference only and used by developers who received the prototype. &lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
* Certifications:&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
* Rockchip RK3566 SoC information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]&lt;br /&gt;
* Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet]&lt;br /&gt;
* LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
** ---&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
* E-ink Panel information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
* Touch Screen information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
** Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
* WiFi/BT module info:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
* G Sensor info:&lt;br /&gt;
** [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
* Audio Amplifier information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
== BSP Linux SDK ==&lt;br /&gt;
&lt;br /&gt;
BSP Linux SDK version 4.19 for PineNote and Quart64 model A SBC&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz mirror by mwfc]&lt;br /&gt;
** MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed&lt;br /&gt;
** File Size: 32.67GB&lt;br /&gt;
&lt;br /&gt;
An unofficial torrent download provided by a community member of both SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
== Android SDK ==&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for PineNote and Quart64 model A SBC&lt;br /&gt;
* This is the Android SDK build for 10.3&amp;quot; eink panel on Quartz64 model A SBC. &lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz mirror by mwfc]&lt;br /&gt;
** MD5 (TAR-GZip file): 293a550584298de4fb95ceae18103672&lt;br /&gt;
** File Size: 72.88GB&lt;br /&gt;
** Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
An unofficial torrent download provided by a community member of both SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=15808</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=15808"/>
		<updated>2023-01-27T13:04:20Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: /* PineNote Information, Schematics, and Certifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 model A SBC and powered by a Rockchip RK3566 quad-core ARM Cortex A55 64-bit processor with a MALI G-52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the in 2021 released Rockchip RK3566 SoC. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer using the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific for the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
An early version of a GNOME-based Debian image is available for [[PineNote_Software_Releases|testing]], but should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://www.pine64.org/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
There are no releases available at the current time.&lt;br /&gt;
&lt;br /&gt;
Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
The software releases can be found here in the future: [[PineNote Software Releases]]&lt;br /&gt;
&lt;br /&gt;
== Installation instructions ==&lt;br /&gt;
&lt;br /&gt;
The device can be flashed using the following instructions: [[PineNote Development/Flashing]]&lt;br /&gt;
&lt;br /&gt;
{{Info|These instructions are directed towards experienced developers only!}}&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
Flashing, compiling and similar:&lt;br /&gt;
* [[PineNote Development/Flashing]]&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
Related:&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
The USB UART dongle delivered with the PineNote allows you to have access to a serial port via USB-C Debug Accesory Mode (DAM) without having to open up the device. The factory firmware runs at a baud rate of 1500000bps, 8 data bits 1 stop bit, no parity and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* System memory: 4GB LPDDR4&lt;br /&gt;
* Flash: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch)&lt;br /&gt;
* Optional Cover (included in the first production batch)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory : 4GB LPDDR4.&lt;br /&gt;
* Flash Memory: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
== PineNote Information, Schematics, and Certifications ==&lt;br /&gt;
&lt;br /&gt;
=== PineNote Developer kit version ===&lt;br /&gt;
* Version v1.2 is the PineNote production version that was sold through the Pines64 store&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file]&lt;br /&gt;
When building USB-C console breakout board, please be aware 10k CC pin pull-up is too weak to pull CC to logically high level. Replacing it to lower resistance, such as 1k is recommended.&lt;br /&gt;
&lt;br /&gt;
* The v1.1 is early release schematic just for reference only and used by developers who received the prototype. &lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
* Certifications:&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
* Rockchip RK3566 SoC information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]&lt;br /&gt;
* Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet]&lt;br /&gt;
* LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
** ---&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
* E-ink Panel information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
* Touch Screen information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
** Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
* WiFi/BT module info:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
* G Sensor info:&lt;br /&gt;
** [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
* Audio Amplifier information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
== BSP Linux SDK ==&lt;br /&gt;
&lt;br /&gt;
BSP Linux SDK version 4.19 for PineNote and Quart64 model A SBC&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz mirror by mwfc]&lt;br /&gt;
** MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed&lt;br /&gt;
** File Size: 32.67GB&lt;br /&gt;
&lt;br /&gt;
An unofficial torrent download provided by a community member of both SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
== Android SDK ==&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for PineNote and Quart64 model A SBC&lt;br /&gt;
* This is the Android SDK build for 10.3&amp;quot; eink panel on Quartz64 model A SBC. &lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz mirror by mwfc]&lt;br /&gt;
** MD5 (TAR-GZip file): 293a550584298de4fb95ceae18103672&lt;br /&gt;
** File Size: 72.88GB&lt;br /&gt;
** Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
An unofficial torrent download provided by a community member of both SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Software_Releases&amp;diff=15615</id>
		<title>PineNote Software Releases</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Software_Releases&amp;diff=15615"/>
		<updated>2023-01-17T08:50:46Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: Update Debian section of the software release section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains a list of all available operating systems for the [[PineNote]] in alphabetical order.&lt;br /&gt;
&lt;br /&gt;
== Alpine ==&lt;br /&gt;
&lt;br /&gt;
See https://github.com/DorianRudolph/pinenotes#alpine&lt;br /&gt;
&lt;br /&gt;
== Arch Linux ==&lt;br /&gt;
&lt;br /&gt;
See https://github.com/DorianRudolph/pinenotes#arch-linux&lt;br /&gt;
&lt;br /&gt;
== Debian ==&lt;br /&gt;
&lt;br /&gt;
* A full GNOME-enabled rootfs/disc image is provided under [https://github.com/m-weigand/pinenote-debian-recipes/releases m-weigand/pinenote-debian-recipes/releases]. This image can be flashed using rkdeveloptool.&lt;br /&gt;
{{Info|Check the [https://github.com/m-weigand/pinenote-debian-recipes/tree/dev dev] branch and github actions artifacts (possibly requires github login) for builds newer than the latest release.}}&lt;br /&gt;
* A Debian-based minimalistic rootfs/disc image can be built using &amp;lt;code&amp;gt;debos&amp;lt;/code&amp;gt; using the work from  [https://salsa.debian.org/eugenrh Eugen Răhăian]. The GNOME image above is building on this work.&lt;br /&gt;
&lt;br /&gt;
== postmarketOS ==&lt;br /&gt;
&lt;br /&gt;
See https://wiki.postmarketos.org/wiki/PINE64_PineNote_(pine64-pinenote)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=15614</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=15614"/>
		<updated>2023-01-17T08:47:54Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: fix link to software releases&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The '''PineNote''' is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 model A SBC and powered by a Rockchip RK3566 quad-core ARM Cortex A55 64-bit processor with a MALI G-52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the in 2021 released Rockchip RK3566 SoC. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer using the same SoC. In the [[PineNote_Development#Kernel_modules_/_mainlining_status|PineNote development]] wiki page you'll find the items specific for the PineNote.&lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
An early version of a GNOME-based Debian image is available for [[PineNote_Software_Releases|testing]], but should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://www.pine64.org/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
There are no releases available at the current time.&lt;br /&gt;
&lt;br /&gt;
Please join the development effort and help creating one.&lt;br /&gt;
&lt;br /&gt;
The software releases can be found here in the future: [[PineNote Software Releases]]&lt;br /&gt;
&lt;br /&gt;
== Installation instructions ==&lt;br /&gt;
&lt;br /&gt;
The device can be flashed using the following instructions: [[PineNote Development/Flashing]]&lt;br /&gt;
&lt;br /&gt;
{{Info|These instructions are directed towards experienced developers only!}}&lt;br /&gt;
&lt;br /&gt;
== Development efforts ==&lt;br /&gt;
&lt;br /&gt;
The following page discusses the development efforts for the PineNote:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
Flashing, compiling and similar:&lt;br /&gt;
* [[PineNote Development/Flashing]]&lt;br /&gt;
* [[PineNote Development/Booting Linux]]&lt;br /&gt;
* [[PineNote Development/Building Kernel]]&lt;br /&gt;
* [[PineNote Development/TODOs]]&lt;br /&gt;
&lt;br /&gt;
For tweaks and tricks see:&lt;br /&gt;
* [[PineNote Development/Software Tweaks]]&lt;br /&gt;
&lt;br /&gt;
For app development see:&lt;br /&gt;
* [[PineNote Development/Apps]]&lt;br /&gt;
&lt;br /&gt;
Related:&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes and debugging of the PineNote.&lt;br /&gt;
&lt;br /&gt;
==== Resolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware Changes/Closed Case UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
&lt;br /&gt;
==== Unresolved issues ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== UART Dongle ====&lt;br /&gt;
The USB UART dongle delivered with the PineNote allows you to have access to a serial port via USB-C Debug Accesory Mode (DAM) without having to open up the device. The factory firmware runs at a baud rate of 1500000bps, 8 data bits 1 stop bit, no parity and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* System memory: 4GB LPDDR4&lt;br /&gt;
* Flash: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch)&lt;br /&gt;
* Optional Cover (included in the first production batch)&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory : 4GB LPDDR4.&lt;br /&gt;
* Flash Memory: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
== PineNote Information, Schematics, and Certifications ==&lt;br /&gt;
* PineNote Developer kit version&lt;br /&gt;
* The v1.2 is the PineNote production schematic. &lt;br /&gt;
* When building USB-C console breakout board, please be aware 10k CC pin pull-up is too weak to pull CC to logically high level. Replacing it to lower resistance, such as 1k is recommended.&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file]&lt;br /&gt;
* The v1.1 is early release schematic just for reference only and used by developers who received the prototype. &lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
* Certifications:&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
* Rockchip RK3566 SoC information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]&lt;br /&gt;
* Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet]&lt;br /&gt;
* LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
** ---&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
* E-ink Panel information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
* Touch Screen information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
** Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
* WiFi/BT module info:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
* G Sensor info:&lt;br /&gt;
** [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
* Audio Amplifier information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
== BSP Linux SDK ==&lt;br /&gt;
&lt;br /&gt;
BSP Linux SDK version 4.19 for PineNote and Quart64 model A SBC&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz mirror by mwfc]&lt;br /&gt;
** MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed&lt;br /&gt;
** File Size: 32.67GB&lt;br /&gt;
&lt;br /&gt;
An unofficial torrent download provided by a community member of both SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
== Android SDK ==&lt;br /&gt;
&lt;br /&gt;
Android 11 e-ink SDK for PineNote and Quart64 model A SBC&lt;br /&gt;
* This is the Android SDK build for 10.3&amp;quot; eink panel on Quartz64 model A SBC. &lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz mirror by mwfc]&lt;br /&gt;
** MD5 (TAR-GZip file): 293a550584298de4fb95ceae18103672&lt;br /&gt;
** File Size: 72.88GB&lt;br /&gt;
** Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
An unofficial torrent download provided by a community member of both SDKs can be found [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent here] (100GB).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development/Apps&amp;diff=15613</id>
		<title>PineNote Development/Apps</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development/Apps&amp;diff=15613"/>
		<updated>2023-01-17T08:39:06Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: Slight restructuring of the Apps page; add WinkShell link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Development = &lt;br /&gt;
&lt;br /&gt;
Here are some resources I have found helpful in learning to develop on embedded Linux devices:&lt;br /&gt;
* Great YouTube series introducing you to the kernel and lower-level components of Linux: https://www.youtube.com/watch?v=WiZ05pnHZqM&lt;br /&gt;
* https://embetronicx.com/&lt;br /&gt;
* https://bootlin.com/training/&lt;br /&gt;
* https://www.nand2tetris.org&lt;br /&gt;
&lt;br /&gt;
Emulator recommendation for developing and testing PineNote apps: https://github.com/michaelshiel/picom-epaper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The PineNote is a specialized device, mainly due to the eink display having unique display and refresh characteristics.&lt;br /&gt;
Finding and configuring apps that work well sometimes requires a lot of tweaking and a lot exploring, especially for&lt;br /&gt;
applications containing fast screen updates and animations, as well as depend on a lot of colours.&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=ZCLyJfbzbrU Here is a video] showing the performance of a few applications.&lt;br /&gt;
&lt;br /&gt;
= Desktop Environments =&lt;br /&gt;
&lt;br /&gt;
=== Sway ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/hmpthcs/WinkShell WinkShell] &amp;quot;Collected applications, configurations and scripts for using a wlroots-based compositor with an EPD (aka e-ink display). Currently supports Sway only.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/0cc4m/pinenote-misc/blob/main/sway/config/sway/config 0cc4m's config]&lt;br /&gt;
&lt;br /&gt;
==== Getting touch + pen working on sway ====&lt;br /&gt;
&lt;br /&gt;
If you notice that touching the screen works, but when you use the pen the mouse coordinates are inverted, don't worry! We can fix it! Set &amp;lt;code&amp;gt;rockchip_ebc.panel_reflection=0&amp;lt;/code&amp;gt; on boot (see [https://wiki.pine64.org/wiki/PineNote_Development/Building_Kernel#Configuring_the_driver this page] for more info). Add the following line to your sway config:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This line rotates the mouse input by 180 degrees. See https://wayland.freedesktop.org/libinput/doc/1.11.3/absolute_axes.html&lt;br /&gt;
input &amp;quot;type:table_tool&amp;quot; calibration_matrix -1 0 1 0 -1 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gnome ===&lt;br /&gt;
[https://github.com/m-weigand/mw_pinenote_misc/tree/main/gnome Maximilian's Config]&lt;br /&gt;
&lt;br /&gt;
{{info|You may need to compile a [https://github.com/m-weigand/mw_pinenote_misc/blob/main/compile_mutter.sh modified mutter] as well.}}&lt;br /&gt;
&lt;br /&gt;
= Application support on the PineNote =&lt;br /&gt;
&lt;br /&gt;
== Notetaking ==&lt;br /&gt;
&lt;br /&gt;
=== xournal++ ===&lt;br /&gt;
Works well, writing is pretty quick.&lt;br /&gt;
&lt;br /&gt;
=== Obsidian ===&lt;br /&gt;
Works well, EInk-Theme can be found [https://github.com/MichiMolle/obsidian-eink here].&lt;br /&gt;
&lt;br /&gt;
== Web Browsing ==&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
Pretty good experience! Enabling GPU acceleration is helpful.&lt;br /&gt;
&lt;br /&gt;
==== GPU Acceleration in Firefox ====&lt;br /&gt;
See [https://github.com/0cc4m/pinenote-misc#firefox-hardware-acceleration 0ccam's notes here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development&amp;diff=15311</id>
		<title>PineNote Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development&amp;diff=15311"/>
		<updated>2023-01-12T08:57:24Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: add rockchip_sip to required kernel modules&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article seeks to provide general development information for the [[PineNote]]. If you are new and down to try a new installation process, the easiest way to get linux is likely to [https://wiki.pine64.org/wiki/PineNote_Development/Installing_Debian install Debian] -- NOTE THAT THIS INSTALLATION PROCESS IS VERY NEW. While many people have been using the kernel that will be installed safely at this point, the instructions for installing Debian via rootfs are very new. Take backups!&lt;br /&gt;
&lt;br /&gt;
The more stable recommended approach is described below:&lt;br /&gt;
&lt;br /&gt;
Start with [https://github.com/DorianRudolph/pinenotes Dorian's guide] which will guide you through getting Arch installed. For instructions on building the latest kernel, see [[PineNote Development/Building Kernel]]. For helpful configurations, see [[PineNote Development/Apps]]. For ways to pitch in, see [[PineNote Development/TODOs]]. To boot Linux by default instead of Android, see [[PineNote Development/Booting Linux]]. [https://www.youtube.com/watch?v=ZCLyJfbzbrU Here is a video] of a user running Manjaro and some apps on their PineNote on 9/10/2022.&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
== Kernel modules / mainlining status ==&lt;br /&gt;
&lt;br /&gt;
WORK IN PROGRESS !&lt;br /&gt;
&lt;br /&gt;
The following table aims to provide a list of kernel modules required for running the PineNote.&lt;br /&gt;
It also aims at listing repositories of work in progress.&lt;br /&gt;
While some overlap with the Quartz64 module list ([[Quartz64_Development#Upstreaming_Status]]) &lt;br /&gt;
is expected, only modules relevant to the PineNote hardware should be listed here.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Function&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;2&amp;quot; | Status&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Component&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
| Suspend mode driver&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
|&amp;lt;code&amp;gt;rockchip-sip&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;cyttsp5&amp;lt;/code&amp;gt;&lt;br /&gt;
| As of 6.2-rc1&amp;lt;sup&amp;gt;[https://git.kernel.org/linus/5b0c03e24a061f9c9e8b28fa157b80990c559a37]&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Digitizer&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;i2c_hid_of&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pen BLE Buttons&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;ws8100-pen&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| EBC Display controller&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;rockchip_ebc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| EBC PMic&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;tps65185&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LED backlight driver&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;lm3630a&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;st-accel-i2c&amp;lt;/code&amp;gt; (silan,sc7a20)&lt;br /&gt;
| As of 5.18-rc1&amp;lt;sup&amp;gt;[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cc6ce5ac2c998d7e869d7289736e0097ce7d2ad1]&lt;br /&gt;
|-&lt;br /&gt;
| Rastergraphics unit RGA2e&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;rga&amp;lt;/code&amp;gt; (v4l2 mem2mem driver)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Mali GPU&lt;br /&gt;
| style=&amp;quot;background:LightYellow; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Upstream Mesa&lt;br /&gt;
| &amp;lt;code&amp;gt;panfrost&amp;lt;/code&amp;gt;&lt;br /&gt;
| As of 5.18 &amp;lt;sup&amp;gt;[https://git.kernel.org/linus/810028668c6d9da25664195d6b906c98a8169f72]&amp;lt;/sup&amp;gt; this got added to the &amp;lt;code&amp;gt;.dtsi&amp;lt;/code&amp;gt; file, but it's status is disabled.&lt;br /&gt;
I haven't seen the &amp;lt;code&amp;gt;gpu&amp;lt;/code&amp;gt; node getting enabled in the &amp;lt;code&amp;gt;.dts&amp;lt;/code&amp;gt; for PineNote (yet)?&lt;br /&gt;
|-&lt;br /&gt;
| Wifi/BT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;brcmfmac&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Development work ====&lt;br /&gt;
&lt;br /&gt;
* tps65185: driver developed here: &amp;lt;sup&amp;gt;[https://github.com/smaeul/linux/tree/rk35/tps65185]&amp;lt;/sup&amp;gt;, small tweaks to resume behaviour added on top here: &amp;lt;sup&amp;gt;[https://github.com/m-weigand/linux/commits/mw/rk35/tps65185] &lt;br /&gt;
* RGA: WIP patches for activation on the Pinenote/dithering/Y4-conversion can be found here: &amp;lt;sup&amp;gt;[https://github.com/m-weigand/linux/commits/mw/rk35/rk356x-rga]&amp;lt;/sup&amp;gt;. Note that the rga2e in the rk3566 only works for RAM &amp;lt;= 4 G!). Simple demo program found here: &amp;lt;sup&amp;gt;[https://github.com/m-weigand/rga-v4l2-demo]&amp;lt;/sup&amp;gt;&lt;br /&gt;
* The rockchip-sip driver required for suspend/resume is currently only hacked-in &amp;lt;sup&amp;gt;[https://github.com/smaeul/linux/commit/72127ca2806623a9de52cc1de39b06a38a22fe48]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= More Information = &lt;br /&gt;
== High-level developer new to embedded linux? ==&lt;br /&gt;
Here are some resources I have found helpful in learning to develop on embedded linux devices:&lt;br /&gt;
* Great youtube series introducing you to the kernel and lower-level components of Linux: https://www.youtube.com/watch?v=WiZ05pnHZqM&lt;br /&gt;
* https://embetronicx.com/&lt;br /&gt;
* https://bootlin.com/training/&lt;br /&gt;
* https://www.nand2tetris.org&lt;br /&gt;
&lt;br /&gt;
== Notes Written by Some Developers ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/m-weigand/mw_pinenote_misc (Not super legible &amp;quot;notes&amp;quot;, but very helpful repo with patches, videos, etc)&lt;br /&gt;
** specifically see this section for helpful install/configure scripts: https://github.com/m-weigand/mw_pinenote_misc/tree/main/rockchip_ebc/patches#compiling. &lt;br /&gt;
* https://github.com/0cc4m/pinenote-misc&lt;br /&gt;
** patch for enabling gpu: https://github.com/0cc4m/pinenote-misc/blob/main/mesa-archlinux-arm/mesa/rockchip_ebc.patch&lt;br /&gt;
** prebuilt pkg's: https://github.com/0cc4m/pinenote-misc/releases&lt;br /&gt;
* https://pwarren.id.au/pinenote/build_notes.txt&lt;br /&gt;
* https://github.com/DorianRudolph/pinenotes&lt;br /&gt;
* https://github.com/tpwrules/nixos-pinenote&lt;br /&gt;
&lt;br /&gt;
== Alternative to patching of mesa ==&lt;br /&gt;
Mesa needs to be patched to add the driver entry point. The alternative to this, is the renaming of the ebc driver to an existing mesa driver entry point. A good existing name can be &amp;quot;repaper&amp;quot;. To change the driver name, edit in the kernel tree the following files:&amp;lt;br&amp;gt;&lt;br /&gt;
- replace &amp;quot;rockchip-ebc&amp;quot; with &amp;quot;repaper&amp;quot; in the two places in the file: drivers/gpu/drm/rockchip/rockchip_ebc.c &amp;lt;br&amp;gt;&lt;br /&gt;
- preventive, replace &amp;quot;repaper&amp;quot; with &amp;quot;repaper-disabled&amp;quot; in the two places in the file: drivers/gpu/drm/tiny/repaper.c &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building the most recent kernel ==&lt;br /&gt;
See [https://wiki.pine64.org/wiki/PineNote_Development/Building_Kernel here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video of Factory Android OS ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=DWuTGgQHw98 PineNote Developer Edition w/Tech Demo Android OS (Video Only)]&lt;br /&gt;
&lt;br /&gt;
Informal walkthrough of the factory Android installation on the PineNote Developer Edition, recorded by a community member (Apr 2022). This is useful to look back at the original OS after erasing it from your device, or to get some additional detail before your device arrives.&lt;br /&gt;
&lt;br /&gt;
The video also includes a chapter at the end showing [https://www.youtube.com/watch?v=DWuTGgQHw98&amp;amp;t=802s how to enable Android Debug Bridge (`adb`) over USB]. Once enabled, keep the device powered and connect a USB cable directly to the PineNote (i.e. no UART breakout) to a computer running `adb`.&lt;br /&gt;
&lt;br /&gt;
== Emulator for Developing/Testing Pinenote Apps ==&lt;br /&gt;
https://github.com/michaelshiel/picom-epaper&lt;br /&gt;
&lt;br /&gt;
= Flashing Software =&lt;br /&gt;
Currently, the only ways to flash software are from the factory Android installation (UART shell, adb, or fastboot) or by using rkdeveloptool.&lt;br /&gt;
&lt;br /&gt;
== Backup of the content of the internal MMC before you mess anything up ==&lt;br /&gt;
Especially the '''waveform''' partition contains data '''unique''' to your PineNote and is a prime candidate for backup.&lt;br /&gt;
&lt;br /&gt;
But other partitions like uboot (need for any operation of the device) or the un-partitioned space at the beginning containing the GPT partition table (and presumably the VCOM setting for the e-ink display and maybe device mac addresses) contains data you may wish to backup.&lt;br /&gt;
&lt;br /&gt;
Depending of your personal level of data hoarder you may want to backup more than this or even just everything (the large userdata partition is supposed to be able to be repopulated as empty space by Android)&lt;br /&gt;
&lt;br /&gt;
In any case it is easier to restore/extract data from a backup than not having one if you need one.&lt;br /&gt;
&lt;br /&gt;
=== Manually using rkdeveloptool ===&lt;br /&gt;
Dorian has some nice [https://github.com/DorianRudolph/pinenotes notes regarding the PineNote]&lt;br /&gt;
&lt;br /&gt;
Don't forget to install a patched uboot for reading beyond 32MB and to respect the 2GB limit/bug of the current rkdeveloptool as per his notes&lt;br /&gt;
&lt;br /&gt;
=== Automated backup using a script and rkdeveloptool ===&lt;br /&gt;
[https://github.com/talpadk/pinenote-backup pinenote-backup] is a python script for detecting the partitions and automating the backup of partitions or the whole disk&lt;br /&gt;
&lt;br /&gt;
I also requires a patched u-boot but automatically handles the 2GB limit by splitting up larger reads into smaller ones&lt;br /&gt;
&lt;br /&gt;
=== Using the factory Android installation ===&lt;br /&gt;
For any one knowing how and with which caveats: Write ME&lt;br /&gt;
&lt;br /&gt;
=== Using a user installed Linux ===&lt;br /&gt;
A Linux installed to the cache partition should be able to easily backup everything over WiFi or to a USB stick/disk using dd&lt;br /&gt;
&lt;br /&gt;
However the user would need to backup the cache partition themself (if they want that).&lt;br /&gt;
&lt;br /&gt;
And more importantly they would only be getting the backup ''after'' they started playing with the content of the MMC.&lt;br /&gt;
&lt;br /&gt;
== Side-by-side setup ==&lt;br /&gt;
&lt;br /&gt;
It is possible to set up a partition for mainline development without disturbing the factory Android installation. This allows updating a mainline kernel, DTB, and initramfs over Wi-Fi until WiFi or USB OTG is working in mainline Linux.&lt;br /&gt;
&lt;br /&gt;
=== Without Repartitioning ===&lt;br /&gt;
&lt;br /&gt;
The recommended partition for this is &amp;lt;tt&amp;gt;mmcblk0p11&amp;lt;/tt&amp;gt; aka &amp;lt;tt&amp;gt;/cache&amp;lt;/tt&amp;gt;. It is large and already formatted as &amp;lt;tt&amp;gt;ext4&amp;lt;/tt&amp;gt;, so it is readable from U-Boot. Here are some general steps:&lt;br /&gt;
&lt;br /&gt;
# From the UART or adb shell, set up your chroot in &amp;lt;tt&amp;gt;/cache&amp;lt;/tt&amp;gt;. I used the Alpine Linux rootfs tarball.&lt;br /&gt;
# Copy in your kernel and DTB, using for example &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;wget&amp;lt;/tt&amp;gt; inside the chroot.&lt;br /&gt;
# Finally, create and boot an &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; as described below.&lt;br /&gt;
&lt;br /&gt;
=== With Repartitioning ===&lt;br /&gt;
&lt;br /&gt;
It is possible to shrink the &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt; partition, and create a new partition at the end for use with mainline Linux. This provides much more space than &amp;lt;tt&amp;gt;cache&amp;lt;/tt&amp;gt;. However, because &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt; is formatted with &amp;lt;tt&amp;gt;f2fs&amp;lt;/tt&amp;gt;, and that filesystem cannot be shrunk, resizing the partition requires wiping &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# Back up any necessary files from userdata&lt;br /&gt;
# Boot to a mainline kernel from &amp;lt;tt&amp;gt;mmcblk0p11&amp;lt;/tt&amp;gt;, either using that partition as rootfs (see above), or using an initramfs with repartitioning tools&lt;br /&gt;
# Modify the partition table with your favorite tool, e.g. &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gdisk&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;parted&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Reboot into &amp;lt;tt&amp;gt;fastboot&amp;lt;/tt&amp;gt; and wipe &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Reboot into Android, where you can now chroot in and install your favorite distribution to the new partition.&lt;br /&gt;
&lt;br /&gt;
== Using rkdeveloptool ==&lt;br /&gt;
&lt;br /&gt;
rkdeveloptool is a command line utility built on libusb.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and Building rkdeveloptool ===&lt;br /&gt;
&lt;br /&gt;
PINE64 develops [https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool its own updated fork of rkdeveloptool on GitLab].&lt;br /&gt;
&lt;br /&gt;
You will need to have libusb 1.0, its development headers and scdoc installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool.git&lt;br /&gt;
cd rkdeveloptool&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sets up all the build files. You can then compile with &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; inside the build directory.&lt;br /&gt;
&lt;br /&gt;
After you're done, you'll likely also need to install the udev rules, or else your user won't have permission to access the USB devices:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp 99-rk-rockusb.rules /etc/udev/rules.d/&lt;br /&gt;
sudo udevadm control --reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copying the udev rules is also performed automatically when you &amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Building Downstream U-Boot ===&lt;br /&gt;
&lt;br /&gt;
While in maskrom mode, we need to have a u-boot to download onto the device for any of the other commands to work. To build you'll also need to install device-tree-compiler.&lt;br /&gt;
&lt;br /&gt;
You also need to install Python and pyelftools.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Note that rkbin is a &amp;amp;gt;5GB download!&amp;lt;/b&amp;gt; This will take some time to clone and process the deltas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b quartz64 https://gitlab.com/pgwipeout/u-boot-rockchip.git&lt;br /&gt;
git clone -b rkbin https://github.com/JeffyCN/rockchip_mirrors.git rkbin&lt;br /&gt;
cd u-boot-rockchip&lt;br /&gt;
# If using Arch Linux, export CROSS_COMPILE=aarch64-linux-gnu-&lt;br /&gt;
export CROSS_COMPILE=aarch64-none-linux-gnu-&lt;br /&gt;
make rk3566-quartz64_defconfig&lt;br /&gt;
./make.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
In the version I cloned (current as of 2022-01-02), I had to make a change to one line to get a clean compilation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/lib/avb/libavb/avb_slot_verify.c b/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
index 123701fc3b..64a1ce6450 100644&lt;br /&gt;
--- a/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
+++ b/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
@@ -296,7 +296,7 @@ static AvbSlotVerifyResult load_and_verify_hash_partition(&lt;br /&gt;
   bool image_preloaded = false;&lt;br /&gt;
   uint8_t* digest;&lt;br /&gt;
   size_t digest_len;&lt;br /&gt;
-  const char* found;&lt;br /&gt;
+  const char* found = NULL;&lt;br /&gt;
   uint64_t image_size;&lt;br /&gt;
   size_t expected_digest_len = 0;&lt;br /&gt;
   uint8_t expected_digest_buf[AVB_SHA512_DIGEST_SIZE];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For systems where the global python executable points to python2, compilation fails with an error related to pyelftools not being installed (even if it is). To fix this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/make.sh b/make.sh&lt;br /&gt;
index 2bba05b4e4..cfe5b0afd5 100755&lt;br /&gt;
--- a/make.sh&lt;br /&gt;
+++ b/make.sh&lt;br /&gt;
@@ -758,7 +758,7 @@ function pack_fit_image()&lt;br /&gt;
        fi&lt;br /&gt;
 &lt;br /&gt;
        if [ &amp;quot;${ARM64_TRUSTZONE}&amp;quot; == &amp;quot;y&amp;quot; ]; then&lt;br /&gt;
-               if ! python -c &amp;quot;import elftools&amp;quot; ; then&lt;br /&gt;
+               if ! python3 -c &amp;quot;import elftools&amp;quot; ; then&lt;br /&gt;
                        echo &amp;quot;ERROR: No python 'pyelftools', please: pip install pyelftools&amp;quot;&lt;br /&gt;
                        exit 1&lt;br /&gt;
                fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entering Maskrom/Rockusb Mode ===&lt;br /&gt;
&lt;br /&gt;
There are three ways to get into Maskrom/Rockusb mode:&lt;br /&gt;
&lt;br /&gt;
====  The easy way ====&lt;br /&gt;
&lt;br /&gt;
# Flip the device around so that the display faces down&lt;br /&gt;
# Lay the pen on the right side, with its tip pointing towards the speaker grill, and its magnet pointing towards the upper right corner of the label on the back (or place the magnetic cap from the pen on the spot marked on the back).&lt;br /&gt;
# Turn the device on and wait for it to show up in &amp;lt;code&amp;gt;lsusb&amp;lt;/code&amp;gt;. It should now be in Loader mode, according to &amp;lt;code&amp;gt;rkdeveloptool list-devices&amp;lt;/code&amp;gt; (note that &amp;quot;Loader&amp;quot; here indicates U-Boot's Rockusb; separately, booting with an erased eMMC displays &amp;quot;Maskrom&amp;quot; [not &amp;quot;Loader&amp;quot;] from the RK3566).&lt;br /&gt;
# Unplug the device and plug it back in. It should now be in Rockusb mode.&lt;br /&gt;
&lt;br /&gt;
This can be a bit fiddly to get right, and may need a few tries.&lt;br /&gt;
&lt;br /&gt;
==== The u-boot way ====&lt;br /&gt;
# Interrupt the u-boot startup using ctrl-c (while attached using an UART dongle)&lt;br /&gt;
# While in u-boot use the command &amp;quot;rockusb 0 mmc 0&amp;quot; to start rockusb mode.&lt;br /&gt;
&lt;br /&gt;
One benefit from this is, that if you have an UART dongle that allows to simultaneous having an UART and USB connection, there is no need to plug and unplug cables and flipping the PineNote around and placing magnets.  &lt;br /&gt;
&lt;br /&gt;
This is especially helpful when changing back and forth between u-boot and rockusb, for instance when trying to develop u-boot.&lt;br /&gt;
&lt;br /&gt;
==== Shorting test points ====&lt;br /&gt;
&lt;br /&gt;
If the bootloader is broken/corrupted, you cannot get to Maskrom without opening up the device (it can be opened using spudger and a bit of patience).&lt;br /&gt;
&lt;br /&gt;
Once inside, short TP1301 (GND) and TP1302 (eMMC_D0/FLASH_D0) with a small tweezers, this is how it looks on board view (credit to Caleb):&lt;br /&gt;
&lt;br /&gt;
[[File:PineNote_Maskrom_TP.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Then plug the device to the computer and if you see the device with VID=2207/PID=350a then it should be in Maskrom mode, you can verify by typing &amp;lt;code&amp;gt;rkdeveloptool list-devices&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Jan 07 15:04:13 melttower kernel: usb 1-14: New USB device found, idVendor=2207, idProduct=350a, bcdDevice= 1.00&lt;br /&gt;
Jan 07 15:04:13 melttower kernel: usb 1-14: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
&lt;br /&gt;
$ rkdeveloptool list-devices&lt;br /&gt;
DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=10e    Maskrom&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If nothing shows up, you can try to hold down the power button for 5 seconds and then try again.&lt;br /&gt;
&lt;br /&gt;
=== Running rkdeveloptool ===&lt;br /&gt;
&lt;br /&gt;
First, you'll want to make sure the device you've connected is in maskrom mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./rkdeveloptool list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should output something like &amp;lt;code&amp;gt;DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=202    Maskrom&amp;lt;/code&amp;gt;. If it doesn't, see [[PineNote Development#Entering Maskrom Mode]].&lt;br /&gt;
&lt;br /&gt;
You can now download u-boot onto it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./rkdeveloptool boot ../u-boot-rockchip/rk356x_spl_loader_v1.08.111.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should output &amp;lt;code&amp;gt;Downloading bootloader succeeded.&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
We can now verify that this worked using e.g. the &amp;quot;read flash info&amp;quot; command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./rkdeveloptool read-flash-info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''TODO:''' finish this section&lt;br /&gt;
&lt;br /&gt;
=== Creating a mainline boot image ===&lt;br /&gt;
&lt;br /&gt;
You can create a filesystem image that replaces the Android boot or recovery partition by doing roughly the following:&lt;br /&gt;
&lt;br /&gt;
# Erase boot and dtbo with rkdeveloptool or fastboot (back them up first!!!)&lt;br /&gt;
# Create an ext2 partition image and mount it (fallocate, mkfs.ext2)&lt;br /&gt;
# Build your mainline kernel&lt;br /&gt;
# Copy the kernel, dtb and an initramfs to the root of the mounted image (use any old postmarketOS initramfs)&lt;br /&gt;
# Create a file in the root of the mounted image called &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; as described below&lt;br /&gt;
# Unmount the image and then use rkdeveloptool to flash it to the &amp;quot;recovery&amp;quot; partition on the pinenote (it's about the right size until we get around to replacing the partition layout).&lt;br /&gt;
&lt;br /&gt;
== Using fastboot ==&lt;br /&gt;
&lt;br /&gt;
Follow the steps for &amp;quot;Creating a mainline boot.img&amp;quot;, but instead of flashing it with rkdeveloptool, use fastboot. You can enter fastboot in either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Use &amp;quot;reboot bootloader&amp;quot; from adb or a UART console.&lt;br /&gt;
# Get a U-Boot prompt and run &amp;lt;code&amp;gt;fastboot usb 0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Mainline development =&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Some work happening here: https://gitlab.com/calebccff/linux, the idea is to import the parts of the eink/ebc drivers which are open source and use the downstream u-boot framebuffer driver as a reference to create a basic framebuffer driver.&lt;br /&gt;
&lt;br /&gt;
Currently mainline struggles to boot due to weird issues while probing fixed regulators (?). It also fails to detect eMMC.&lt;br /&gt;
&lt;br /&gt;
Further work is being done here: https://github.com/smaeul/linux/commits/rk356x-ebc-dev. This has a complete device tree, with working eMMC. Pen input also works out of the box. Wi-Fi and BT work with firmware copied from the factory Android image.&lt;br /&gt;
&lt;br /&gt;
== How to boot mainline ==&lt;br /&gt;
&lt;br /&gt;
UART is currently REQUIRED for this to work! We depend on u-boot falling back to console. Once we have a prebuilt u-boot which will use extlinux by default, UART won't be needed anymore.&lt;br /&gt;
&lt;br /&gt;
You can compile a u-boot that uses extlinux by default by following the instructions [https://github.com/JoshuaMulliken/pinenote_uboot/blob/aa9ecbd3d3e716f163f5a900824630f24e9f04ba/README.md#changing-default-boot-order here].&lt;br /&gt;
&lt;br /&gt;
=== Getting to a U-Boot prompt ===&lt;br /&gt;
&lt;br /&gt;
You can get to a U-Boot prompt by:&lt;br /&gt;
&lt;br /&gt;
# Holding Ctrl-C while the display panel initializes.&lt;br /&gt;
# Wiping the &amp;quot;boot&amp;quot; partition.&lt;br /&gt;
&lt;br /&gt;
=== Using sysboot ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; should have the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
timeout 10&lt;br /&gt;
default MAINLINE&lt;br /&gt;
menu title boot prev kernel&lt;br /&gt;
&lt;br /&gt;
label MAINLINE&lt;br /&gt;
  kernel /vmlinuz&lt;br /&gt;
  fdt /rk3566-pinenote.dtb&lt;br /&gt;
  initrd /initramfs&lt;br /&gt;
  append earlycon console=tty0 console=ttyS2,1500000n8 fw_devlink=off PMOS_NO_OUTPUT_REDIRECT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the u-boot console, run the following command to boot your mainline kernel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysboot ${devtype} ${devnum}:9 any ${scriptaddr} extlinux.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Booting with individual commands ===&lt;br /&gt;
&lt;br /&gt;
Booting with individual commands can be useful when you need to temporarily add some kernel command line arguments. Use these or similar commands at the U-Boot shell:&lt;br /&gt;
&lt;br /&gt;
 load mmc 0:b ${kernel_addr_r} boot/Image&lt;br /&gt;
 load mmc 0:b ${fdt_addr_r} boot/rk3566-pinenote.dtb&lt;br /&gt;
 setenv bootargs ignore_loglevel root=/dev/mmcblk0p11 rootwait init=/bin/bash&lt;br /&gt;
 booti ${kernel_addr_r} - ${fdt_addr_r}&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware for WiFi &amp;amp; Bluetooth and Waveform data ===&lt;br /&gt;
&lt;br /&gt;
==== Using Maximilian's Debian image  ====&lt;br /&gt;
If the Android partition (super) and waveform partition (waveform) is left intact the image extracts the WiFi, BT driver and waveform from the partitions on first run.&lt;br /&gt;
&lt;br /&gt;
For instance if you repartitions the userdata partition and installs the image there.&lt;br /&gt;
&lt;br /&gt;
==== Getting it from the Android install manually ====&lt;br /&gt;
Copy WiFi/BT firmware from Android:&lt;br /&gt;
 mkdir -p /cache/lib/firmware/brcm&lt;br /&gt;
 cp /vendor/etc/firmware/fw_bcm43455c0_ag_cy.bin /cache/lib/firmware/brcm/brcmfmac43455-sdio.bin&lt;br /&gt;
 cp /vendor/etc/firmware/nvram_ap6255_cy.txt /cache/lib/firmware/brcm/brcmfmac43455-sdio.txt&lt;br /&gt;
 cp /cache/lib/firmware/BCM4345C0.hcd /cache/lib/firmware/brcm/BCM4345C0.hcd&lt;br /&gt;
&lt;br /&gt;
Copy waveform partition (via previously dumped file):&lt;br /&gt;
 adb root&lt;br /&gt;
 adb push waveform.img /cache/lib/firmware/waveform.bin&lt;br /&gt;
&lt;br /&gt;
Or via dd within Linux:&lt;br /&gt;
 dd if=/dev/mmcblk0p3 of=/lib/firmware/waveform.bin bs=1k count=2048&lt;br /&gt;
&lt;br /&gt;
==== Getting the Wifi and Bluetooth driver blobs from &amp;quot;other&amp;quot; sources ====&lt;br /&gt;
===== WiFi =====&lt;br /&gt;
The WiFi firmware .bin blob can be obtained by installing the Debian package firmware-brcm80211 (in the non-free section)&lt;br /&gt;
&lt;br /&gt;
The WiFi brcmfmac43455-sdio.txt file can according to Eugen be sourced from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/brcm/brcmfmac43455-sdio.AW-CM256SM.txt needs a renaming when copying it to /lib/firmware/brcm/brcmfmac43455-sdio.txt)&lt;br /&gt;
&lt;br /&gt;
''The content of the upstream .txt is different than the Android configuration, but is supposed to work.''&lt;br /&gt;
&lt;br /&gt;
As you don't have WiFi yet you need to get the firmware-brcm80211*.deb and brcmfmac43455-sdio.txt file on the PineNote by other means, for instance using an USB stick&lt;br /&gt;
&lt;br /&gt;
===== Bluetooth =====&lt;br /&gt;
&lt;br /&gt;
Once you have WiFi working you can get BCM4345C0.hcd by installing the bluez-firmware &lt;br /&gt;
  sudo apt install bluez-firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuring the E-ink refresh mode ===&lt;br /&gt;
https://github.com/m-weigand/mw_pinenote_misc/tree/main/rockchip_ebc/patches contains information on how/where to write in /sys to alter the refresh mode&lt;br /&gt;
&lt;br /&gt;
https://github.com/m-weigand/mw_pinenote_misc/tree/main/gnome_extension contains the gnome extension used in Maximilian image &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Touchscreen and Pen In X.org ===&lt;br /&gt;
&lt;br /&gt;
By default the pen config is flipped 180° (which makes it unusable) and the touchscreen doesn't work. Placing the following config in &amp;lt;code&amp;gt;/etc/X11/xorg.conf.d/50-touchscreen.conf&amp;lt;/code&amp;gt; will fix both problems:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;evdev touchscreen&amp;quot;&lt;br /&gt;
    MatchProduct &amp;quot;tt21000&amp;quot;&lt;br /&gt;
    MatchIsTouchscreen &amp;quot;on&amp;quot;&lt;br /&gt;
    Driver        &amp;quot;evdev&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
    Identifier    &amp;quot;RotateTouch&amp;quot;&lt;br /&gt;
    MatchProduct    &amp;quot;w9013&amp;quot;&lt;br /&gt;
    Option    &amp;quot;TransformationMatrix&amp;quot; &amp;quot;-1 0 1 0 -1 1 0 0 1&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development&amp;diff=15306</id>
		<title>PineNote Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development&amp;diff=15306"/>
		<updated>2023-01-11T09:31:28Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: Add links to work in progress development of kernel modules&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article seeks to provide general development information for the [[PineNote]]. If you are new and down to try a new installation process, the easiest way to get linux is likely to [https://wiki.pine64.org/wiki/PineNote_Development/Installing_Debian install Debian] -- NOTE THAT THIS INSTALLATION PROCESS IS VERY NEW. While many people have been using the kernel that will be installed safely at this point, the instructions for installing Debian via rootfs are very new. Take backups!&lt;br /&gt;
&lt;br /&gt;
The more stable recommended approach is described below:&lt;br /&gt;
&lt;br /&gt;
Start with [https://github.com/DorianRudolph/pinenotes Dorian's guide] which will guide you through getting Arch installed. For instructions on building the latest kernel, see [[PineNote Development/Building Kernel]]. For helpful configurations, see [[PineNote Development/Apps]]. For ways to pitch in, see [[PineNote Development/TODOs]]. To boot Linux by default instead of Android, see [[PineNote Development/Booting Linux]]. [https://www.youtube.com/watch?v=ZCLyJfbzbrU Here is a video] of a user running Manjaro and some apps on their PineNote on 9/10/2022.&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
== Kernel modules / mainlining status ==&lt;br /&gt;
&lt;br /&gt;
WORK IN PROGRESS !&lt;br /&gt;
&lt;br /&gt;
The following table aims to provide a list of kernel modules required for running the PineNote.&lt;br /&gt;
It also aims at listing repositories of work in progress.&lt;br /&gt;
While some overlap with the Quartz64 module list ([[Quartz64_Development#Upstreaming_Status]]) &lt;br /&gt;
is expected, only modules relevant to the PineNote hardware should be listed here.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Function&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;2&amp;quot; | Status&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Component&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;cyttsp5&amp;lt;/code&amp;gt;&lt;br /&gt;
| As of 6.2-rc1&amp;lt;sup&amp;gt;[https://git.kernel.org/linus/5b0c03e24a061f9c9e8b28fa157b80990c559a37]&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Digitizer&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;i2c_hid_of&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pen BLE Buttons&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;ws8100-pen&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| EBC Display controller&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;rockchip_ebc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| EBC PMic&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;tps65185&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LED backlight driver&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;lm3630a&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;st-accel-i2c&amp;lt;/code&amp;gt; (silan,sc7a20)&lt;br /&gt;
| As of 5.18-rc1&amp;lt;sup&amp;gt;[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cc6ce5ac2c998d7e869d7289736e0097ce7d2ad1]&lt;br /&gt;
|-&lt;br /&gt;
| Rastergraphics unit RGA2e&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;rga&amp;lt;/code&amp;gt; (v4l2 mem2mem driver)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Mali GPU&lt;br /&gt;
| style=&amp;quot;background:LightYellow; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Upstream Mesa&lt;br /&gt;
| &amp;lt;code&amp;gt;panfrost&amp;lt;/code&amp;gt;&lt;br /&gt;
| As of 5.18 &amp;lt;sup&amp;gt;[https://git.kernel.org/linus/810028668c6d9da25664195d6b906c98a8169f72]&amp;lt;/sup&amp;gt; this got added to the &amp;lt;code&amp;gt;.dtsi&amp;lt;/code&amp;gt; file, but it's status is disabled.&lt;br /&gt;
I haven't seen the &amp;lt;code&amp;gt;gpu&amp;lt;/code&amp;gt; node getting enabled in the &amp;lt;code&amp;gt;.dts&amp;lt;/code&amp;gt; for PineNote (yet)?&lt;br /&gt;
|-&lt;br /&gt;
| Wifi/BT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;brcmfmac&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Development work ====&lt;br /&gt;
&lt;br /&gt;
* tps65185: driver developed here: &amp;lt;sup&amp;gt;[https://github.com/smaeul/linux/tree/rk35/tps65185]&amp;lt;/sup&amp;gt;, small tweaks to resume behaviour added on top here: &amp;lt;sup&amp;gt;[https://github.com/m-weigand/linux/commits/mw/rk35/tps65185] &lt;br /&gt;
* RGA: WIP patches for activation on the Pinenote/dithering/Y4-conversion can be found here: &amp;lt;sup&amp;gt;[https://github.com/m-weigand/linux/commits/mw/rk35/rk356x-rga]&amp;lt;/sup&amp;gt;. Note that the rga2e in the rk3566 only works for RAM &amp;lt;= 4 G!). Simple demo program found here: &amp;lt;sup&amp;gt;[https://github.com/m-weigand/rga-v4l2-demo]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= More Information = &lt;br /&gt;
== High-level developer new to embedded linux? ==&lt;br /&gt;
Here are some resources I have found helpful in learning to develop on embedded linux devices:&lt;br /&gt;
* Great youtube series introducing you to the kernel and lower-level components of Linux: https://www.youtube.com/watch?v=WiZ05pnHZqM&lt;br /&gt;
* https://embetronicx.com/&lt;br /&gt;
* https://bootlin.com/training/&lt;br /&gt;
* https://www.nand2tetris.org&lt;br /&gt;
&lt;br /&gt;
== Notes Written by Some Developers ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/m-weigand/mw_pinenote_misc (Not super legible &amp;quot;notes&amp;quot;, but very helpful repo with patches, videos, etc)&lt;br /&gt;
** specifically see this section for helpful install/configure scripts: https://github.com/m-weigand/mw_pinenote_misc/tree/main/rockchip_ebc/patches#compiling. &lt;br /&gt;
* https://github.com/0cc4m/pinenote-misc&lt;br /&gt;
** patch for enabling gpu: https://github.com/0cc4m/pinenote-misc/blob/main/mesa-archlinux-arm/mesa/rockchip_ebc.patch&lt;br /&gt;
** prebuilt pkg's: https://github.com/0cc4m/pinenote-misc/releases&lt;br /&gt;
* https://pwarren.id.au/pinenote/build_notes.txt&lt;br /&gt;
* https://github.com/DorianRudolph/pinenotes&lt;br /&gt;
* https://github.com/tpwrules/nixos-pinenote&lt;br /&gt;
&lt;br /&gt;
== Alternative to patching of mesa ==&lt;br /&gt;
Mesa needs to be patched to add the driver entry point. The alternative to this, is the renaming of the ebc driver to an existing mesa driver entry point. A good existing name can be &amp;quot;repaper&amp;quot;. To change the driver name, edit in the kernel tree the following files:&amp;lt;br&amp;gt;&lt;br /&gt;
- replace &amp;quot;rockchip-ebc&amp;quot; with &amp;quot;repaper&amp;quot; in the two places in the file: drivers/gpu/drm/rockchip/rockchip_ebc.c &amp;lt;br&amp;gt;&lt;br /&gt;
- preventive, replace &amp;quot;repaper&amp;quot; with &amp;quot;repaper-disabled&amp;quot; in the two places in the file: drivers/gpu/drm/tiny/repaper.c &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building the most recent kernel ==&lt;br /&gt;
See [https://wiki.pine64.org/wiki/PineNote_Development/Building_Kernel here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video of Factory Android OS ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=DWuTGgQHw98 PineNote Developer Edition w/Tech Demo Android OS (Video Only)]&lt;br /&gt;
&lt;br /&gt;
Informal walkthrough of the factory Android installation on the PineNote Developer Edition, recorded by a community member (Apr 2022). This is useful to look back at the original OS after erasing it from your device, or to get some additional detail before your device arrives.&lt;br /&gt;
&lt;br /&gt;
The video also includes a chapter at the end showing [https://www.youtube.com/watch?v=DWuTGgQHw98&amp;amp;t=802s how to enable Android Debug Bridge (`adb`) over USB]. Once enabled, keep the device powered and connect a USB cable directly to the PineNote (i.e. no UART breakout) to a computer running `adb`.&lt;br /&gt;
&lt;br /&gt;
== Emulator for Developing/Testing Pinenote Apps ==&lt;br /&gt;
https://github.com/michaelshiel/picom-epaper&lt;br /&gt;
&lt;br /&gt;
= Flashing Software =&lt;br /&gt;
Currently, the only ways to flash software are from the factory Android installation (UART shell, adb, or fastboot) or by using rkdeveloptool.&lt;br /&gt;
&lt;br /&gt;
== Backup of the content of the internal MMC before you mess anything up ==&lt;br /&gt;
Especially the '''waveform''' partition contains data '''unique''' to your PineNote and is a prime candidate for backup.&lt;br /&gt;
&lt;br /&gt;
But other partitions like uboot (need for any operation of the device) or the un-partitioned space at the beginning containing the GPT partition table (and presumably the VCOM setting for the e-ink display and maybe device mac addresses) contains data you may wish to backup.&lt;br /&gt;
&lt;br /&gt;
Depending of your personal level of data hoarder you may want to backup more than this or even just everything (the large userdata partition is supposed to be able to be repopulated as empty space by Android)&lt;br /&gt;
&lt;br /&gt;
In any case it is easier to restore/extract data from a backup than not having one if you need one.&lt;br /&gt;
&lt;br /&gt;
=== Manually using rkdeveloptool ===&lt;br /&gt;
Dorian has some nice [https://github.com/DorianRudolph/pinenotes notes regarding the PineNote]&lt;br /&gt;
&lt;br /&gt;
Don't forget to install a patched uboot for reading beyond 32MB and to respect the 2GB limit/bug of the current rkdeveloptool as per his notes&lt;br /&gt;
&lt;br /&gt;
=== Automated backup using a script and rkdeveloptool ===&lt;br /&gt;
[https://github.com/talpadk/pinenote-backup pinenote-backup] is a python script for detecting the partitions and automating the backup of partitions or the whole disk&lt;br /&gt;
&lt;br /&gt;
I also requires a patched u-boot but automatically handles the 2GB limit by splitting up larger reads into smaller ones&lt;br /&gt;
&lt;br /&gt;
=== Using the factory Android installation ===&lt;br /&gt;
For any one knowing how and with which caveats: Write ME&lt;br /&gt;
&lt;br /&gt;
=== Using a user installed Linux ===&lt;br /&gt;
A Linux installed to the cache partition should be able to easily backup everything over WiFi or to a USB stick/disk using dd&lt;br /&gt;
&lt;br /&gt;
However the user would need to backup the cache partition themself (if they want that).&lt;br /&gt;
&lt;br /&gt;
And more importantly they would only be getting the backup ''after'' they started playing with the content of the MMC.&lt;br /&gt;
&lt;br /&gt;
== Side-by-side setup ==&lt;br /&gt;
&lt;br /&gt;
It is possible to set up a partition for mainline development without disturbing the factory Android installation. This allows updating a mainline kernel, DTB, and initramfs over Wi-Fi until WiFi or USB OTG is working in mainline Linux.&lt;br /&gt;
&lt;br /&gt;
=== Without Repartitioning ===&lt;br /&gt;
&lt;br /&gt;
The recommended partition for this is &amp;lt;tt&amp;gt;mmcblk0p11&amp;lt;/tt&amp;gt; aka &amp;lt;tt&amp;gt;/cache&amp;lt;/tt&amp;gt;. It is large and already formatted as &amp;lt;tt&amp;gt;ext4&amp;lt;/tt&amp;gt;, so it is readable from U-Boot. Here are some general steps:&lt;br /&gt;
&lt;br /&gt;
# From the UART or adb shell, set up your chroot in &amp;lt;tt&amp;gt;/cache&amp;lt;/tt&amp;gt;. I used the Alpine Linux rootfs tarball.&lt;br /&gt;
# Copy in your kernel and DTB, using for example &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;wget&amp;lt;/tt&amp;gt; inside the chroot.&lt;br /&gt;
# Finally, create and boot an &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; as described below.&lt;br /&gt;
&lt;br /&gt;
=== With Repartitioning ===&lt;br /&gt;
&lt;br /&gt;
It is possible to shrink the &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt; partition, and create a new partition at the end for use with mainline Linux. This provides much more space than &amp;lt;tt&amp;gt;cache&amp;lt;/tt&amp;gt;. However, because &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt; is formatted with &amp;lt;tt&amp;gt;f2fs&amp;lt;/tt&amp;gt;, and that filesystem cannot be shrunk, resizing the partition requires wiping &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# Back up any necessary files from userdata&lt;br /&gt;
# Boot to a mainline kernel from &amp;lt;tt&amp;gt;mmcblk0p11&amp;lt;/tt&amp;gt;, either using that partition as rootfs (see above), or using an initramfs with repartitioning tools&lt;br /&gt;
# Modify the partition table with your favorite tool, e.g. &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gdisk&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;parted&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Reboot into &amp;lt;tt&amp;gt;fastboot&amp;lt;/tt&amp;gt; and wipe &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Reboot into Android, where you can now chroot in and install your favorite distribution to the new partition.&lt;br /&gt;
&lt;br /&gt;
== Using rkdeveloptool ==&lt;br /&gt;
&lt;br /&gt;
rkdeveloptool is a command line utility built on libusb.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and Building rkdeveloptool ===&lt;br /&gt;
&lt;br /&gt;
PINE64 develops [https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool its own updated fork of rkdeveloptool on GitLab].&lt;br /&gt;
&lt;br /&gt;
You will need to have libusb 1.0, its development headers and scdoc installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool.git&lt;br /&gt;
cd rkdeveloptool&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sets up all the build files. You can then compile with &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; inside the build directory.&lt;br /&gt;
&lt;br /&gt;
After you're done, you'll likely also need to install the udev rules, or else your user won't have permission to access the USB devices:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp 99-rk-rockusb.rules /etc/udev/rules.d/&lt;br /&gt;
sudo udevadm control --reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copying the udev rules is also performed automatically when you &amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Building Downstream U-Boot ===&lt;br /&gt;
&lt;br /&gt;
While in maskrom mode, we need to have a u-boot to download onto the device for any of the other commands to work. To build you'll also need to install device-tree-compiler.&lt;br /&gt;
&lt;br /&gt;
You also need to install Python and pyelftools.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Note that rkbin is a &amp;amp;gt;5GB download!&amp;lt;/b&amp;gt; This will take some time to clone and process the deltas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b quartz64 https://gitlab.com/pgwipeout/u-boot-rockchip.git&lt;br /&gt;
git clone -b rkbin https://github.com/JeffyCN/rockchip_mirrors.git rkbin&lt;br /&gt;
cd u-boot-rockchip&lt;br /&gt;
# If using Arch Linux, export CROSS_COMPILE=aarch64-linux-gnu-&lt;br /&gt;
export CROSS_COMPILE=aarch64-none-linux-gnu-&lt;br /&gt;
make rk3566-quartz64_defconfig&lt;br /&gt;
./make.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
In the version I cloned (current as of 2022-01-02), I had to make a change to one line to get a clean compilation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/lib/avb/libavb/avb_slot_verify.c b/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
index 123701fc3b..64a1ce6450 100644&lt;br /&gt;
--- a/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
+++ b/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
@@ -296,7 +296,7 @@ static AvbSlotVerifyResult load_and_verify_hash_partition(&lt;br /&gt;
   bool image_preloaded = false;&lt;br /&gt;
   uint8_t* digest;&lt;br /&gt;
   size_t digest_len;&lt;br /&gt;
-  const char* found;&lt;br /&gt;
+  const char* found = NULL;&lt;br /&gt;
   uint64_t image_size;&lt;br /&gt;
   size_t expected_digest_len = 0;&lt;br /&gt;
   uint8_t expected_digest_buf[AVB_SHA512_DIGEST_SIZE];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For systems where the global python executable points to python2, compilation fails with an error related to pyelftools not being installed (even if it is). To fix this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/make.sh b/make.sh&lt;br /&gt;
index 2bba05b4e4..cfe5b0afd5 100755&lt;br /&gt;
--- a/make.sh&lt;br /&gt;
+++ b/make.sh&lt;br /&gt;
@@ -758,7 +758,7 @@ function pack_fit_image()&lt;br /&gt;
        fi&lt;br /&gt;
 &lt;br /&gt;
        if [ &amp;quot;${ARM64_TRUSTZONE}&amp;quot; == &amp;quot;y&amp;quot; ]; then&lt;br /&gt;
-               if ! python -c &amp;quot;import elftools&amp;quot; ; then&lt;br /&gt;
+               if ! python3 -c &amp;quot;import elftools&amp;quot; ; then&lt;br /&gt;
                        echo &amp;quot;ERROR: No python 'pyelftools', please: pip install pyelftools&amp;quot;&lt;br /&gt;
                        exit 1&lt;br /&gt;
                fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entering Maskrom/Rockusb Mode ===&lt;br /&gt;
&lt;br /&gt;
There are three ways to get into Maskrom/Rockusb mode:&lt;br /&gt;
&lt;br /&gt;
====  The easy way ====&lt;br /&gt;
&lt;br /&gt;
# Flip the device around so that the display faces down&lt;br /&gt;
# Lay the pen on the right side, with its tip pointing towards the speaker grill, and its magnet pointing towards the upper right corner of the label on the back (or place the magnetic cap from the pen on the spot marked on the back).&lt;br /&gt;
# Turn the device on and wait for it to show up in &amp;lt;code&amp;gt;lsusb&amp;lt;/code&amp;gt;. It should now be in Loader mode, according to &amp;lt;code&amp;gt;rkdeveloptool list-devices&amp;lt;/code&amp;gt; (note that &amp;quot;Loader&amp;quot; here indicates U-Boot's Rockusb; separately, booting with an erased eMMC displays &amp;quot;Maskrom&amp;quot; [not &amp;quot;Loader&amp;quot;] from the RK3566).&lt;br /&gt;
# Unplug the device and plug it back in. It should now be in Rockusb mode.&lt;br /&gt;
&lt;br /&gt;
This can be a bit fiddly to get right, and may need a few tries.&lt;br /&gt;
&lt;br /&gt;
==== The u-boot way ====&lt;br /&gt;
# Interrupt the u-boot startup using ctrl-c (while attached using an UART dongle)&lt;br /&gt;
# While in u-boot use the command &amp;quot;rockusb 0 mmc 0&amp;quot; to start rockusb mode.&lt;br /&gt;
&lt;br /&gt;
One benefit from this is, that if you have an UART dongle that allows to simultaneous having an UART and USB connection, there is no need to plug and unplug cables and flipping the PineNote around and placing magnets.  &lt;br /&gt;
&lt;br /&gt;
This is especially helpful when changing back and forth between u-boot and rockusb, for instance when trying to develop u-boot.&lt;br /&gt;
&lt;br /&gt;
==== Shorting test points ====&lt;br /&gt;
&lt;br /&gt;
If the bootloader is broken/corrupted, you cannot get to Maskrom without opening up the device (it can be opened using spudger and a bit of patience).&lt;br /&gt;
&lt;br /&gt;
Once inside, short TP1301 (GND) and TP1302 (eMMC_D0/FLASH_D0) with a small tweezers, this is how it looks on board view (credit to Caleb):&lt;br /&gt;
&lt;br /&gt;
[[File:PineNote_Maskrom_TP.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Then plug the device to the computer and if you see the device with VID=2207/PID=350a then it should be in Maskrom mode, you can verify by typing &amp;lt;code&amp;gt;rkdeveloptool list-devices&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Jan 07 15:04:13 melttower kernel: usb 1-14: New USB device found, idVendor=2207, idProduct=350a, bcdDevice= 1.00&lt;br /&gt;
Jan 07 15:04:13 melttower kernel: usb 1-14: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
&lt;br /&gt;
$ rkdeveloptool list-devices&lt;br /&gt;
DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=10e    Maskrom&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If nothing shows up, you can try to hold down the power button for 5 seconds and then try again.&lt;br /&gt;
&lt;br /&gt;
=== Running rkdeveloptool ===&lt;br /&gt;
&lt;br /&gt;
First, you'll want to make sure the device you've connected is in maskrom mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./rkdeveloptool list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should output something like &amp;lt;code&amp;gt;DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=202    Maskrom&amp;lt;/code&amp;gt;. If it doesn't, see [[PineNote Development#Entering Maskrom Mode]].&lt;br /&gt;
&lt;br /&gt;
You can now download u-boot onto it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./rkdeveloptool boot ../u-boot-rockchip/rk356x_spl_loader_v1.08.111.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should output &amp;lt;code&amp;gt;Downloading bootloader succeeded.&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
We can now verify that this worked using e.g. the &amp;quot;read flash info&amp;quot; command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./rkdeveloptool read-flash-info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''TODO:''' finish this section&lt;br /&gt;
&lt;br /&gt;
=== Creating a mainline boot image ===&lt;br /&gt;
&lt;br /&gt;
You can create a filesystem image that replaces the Android boot or recovery partition by doing roughly the following:&lt;br /&gt;
&lt;br /&gt;
# Erase boot and dtbo with rkdeveloptool or fastboot (back them up first!!!)&lt;br /&gt;
# Create an ext2 partition image and mount it (fallocate, mkfs.ext2)&lt;br /&gt;
# Build your mainline kernel&lt;br /&gt;
# Copy the kernel, dtb and an initramfs to the root of the mounted image (use any old postmarketOS initramfs)&lt;br /&gt;
# Create a file in the root of the mounted image called &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; as described below&lt;br /&gt;
# Unmount the image and then use rkdeveloptool to flash it to the &amp;quot;recovery&amp;quot; partition on the pinenote (it's about the right size until we get around to replacing the partition layout).&lt;br /&gt;
&lt;br /&gt;
== Using fastboot ==&lt;br /&gt;
&lt;br /&gt;
Follow the steps for &amp;quot;Creating a mainline boot.img&amp;quot;, but instead of flashing it with rkdeveloptool, use fastboot. You can enter fastboot in either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Use &amp;quot;reboot bootloader&amp;quot; from adb or a UART console.&lt;br /&gt;
# Get a U-Boot prompt and run &amp;lt;code&amp;gt;fastboot usb 0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Mainline development =&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Some work happening here: https://gitlab.com/calebccff/linux, the idea is to import the parts of the eink/ebc drivers which are open source and use the downstream u-boot framebuffer driver as a reference to create a basic framebuffer driver.&lt;br /&gt;
&lt;br /&gt;
Currently mainline struggles to boot due to weird issues while probing fixed regulators (?). It also fails to detect eMMC.&lt;br /&gt;
&lt;br /&gt;
Further work is being done here: https://github.com/smaeul/linux/commits/rk356x-ebc-dev. This has a complete device tree, with working eMMC. Pen input also works out of the box. Wi-Fi and BT work with firmware copied from the factory Android image.&lt;br /&gt;
&lt;br /&gt;
== How to boot mainline ==&lt;br /&gt;
&lt;br /&gt;
UART is currently REQUIRED for this to work! We depend on u-boot falling back to console. Once we have a prebuilt u-boot which will use extlinux by default, UART won't be needed anymore.&lt;br /&gt;
&lt;br /&gt;
You can compile a u-boot that uses extlinux by default by following the instructions [https://github.com/JoshuaMulliken/pinenote_uboot/blob/aa9ecbd3d3e716f163f5a900824630f24e9f04ba/README.md#changing-default-boot-order here].&lt;br /&gt;
&lt;br /&gt;
=== Getting to a U-Boot prompt ===&lt;br /&gt;
&lt;br /&gt;
You can get to a U-Boot prompt by:&lt;br /&gt;
&lt;br /&gt;
# Holding Ctrl-C while the display panel initializes.&lt;br /&gt;
# Wiping the &amp;quot;boot&amp;quot; partition.&lt;br /&gt;
&lt;br /&gt;
=== Using sysboot ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; should have the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
timeout 10&lt;br /&gt;
default MAINLINE&lt;br /&gt;
menu title boot prev kernel&lt;br /&gt;
&lt;br /&gt;
label MAINLINE&lt;br /&gt;
  kernel /vmlinuz&lt;br /&gt;
  fdt /rk3566-pinenote.dtb&lt;br /&gt;
  initrd /initramfs&lt;br /&gt;
  append earlycon console=tty0 console=ttyS2,1500000n8 fw_devlink=off PMOS_NO_OUTPUT_REDIRECT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the u-boot console, run the following command to boot your mainline kernel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysboot ${devtype} ${devnum}:9 any ${scriptaddr} extlinux.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Booting with individual commands ===&lt;br /&gt;
&lt;br /&gt;
Booting with individual commands can be useful when you need to temporarily add some kernel command line arguments. Use these or similar commands at the U-Boot shell:&lt;br /&gt;
&lt;br /&gt;
 load mmc 0:b ${kernel_addr_r} boot/Image&lt;br /&gt;
 load mmc 0:b ${fdt_addr_r} boot/rk3566-pinenote.dtb&lt;br /&gt;
 setenv bootargs ignore_loglevel root=/dev/mmcblk0p11 rootwait init=/bin/bash&lt;br /&gt;
 booti ${kernel_addr_r} - ${fdt_addr_r}&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware for WiFi &amp;amp; Bluetooth and Waveform data ===&lt;br /&gt;
&lt;br /&gt;
==== Using Maximilian's Debian image  ====&lt;br /&gt;
If the Android partition (super) and waveform partition (waveform) is left intact the image extracts the WiFi, BT driver and waveform from the partitions on first run.&lt;br /&gt;
&lt;br /&gt;
For instance if you repartitions the userdata partition and installs the image there.&lt;br /&gt;
&lt;br /&gt;
==== Getting it from the Android install manually ====&lt;br /&gt;
Copy WiFi/BT firmware from Android:&lt;br /&gt;
 mkdir -p /cache/lib/firmware/brcm&lt;br /&gt;
 cp /vendor/etc/firmware/fw_bcm43455c0_ag_cy.bin /cache/lib/firmware/brcm/brcmfmac43455-sdio.bin&lt;br /&gt;
 cp /vendor/etc/firmware/nvram_ap6255_cy.txt /cache/lib/firmware/brcm/brcmfmac43455-sdio.txt&lt;br /&gt;
 cp /cache/lib/firmware/BCM4345C0.hcd /cache/lib/firmware/brcm/BCM4345C0.hcd&lt;br /&gt;
&lt;br /&gt;
Copy waveform partition (via previously dumped file):&lt;br /&gt;
 adb root&lt;br /&gt;
 adb push waveform.img /cache/lib/firmware/waveform.bin&lt;br /&gt;
&lt;br /&gt;
Or via dd within Linux:&lt;br /&gt;
 dd if=/dev/mmcblk0p3 of=/lib/firmware/waveform.bin bs=1k count=2048&lt;br /&gt;
&lt;br /&gt;
==== Getting the Wifi and Bluetooth driver blobs from &amp;quot;other&amp;quot; sources ====&lt;br /&gt;
===== WiFi =====&lt;br /&gt;
The WiFi firmware .bin blob can be obtained by installing the Debian package firmware-brcm80211 (in the non-free section)&lt;br /&gt;
&lt;br /&gt;
The WiFi brcmfmac43455-sdio.txt file can according to Eugen be sourced from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/brcm/brcmfmac43455-sdio.AW-CM256SM.txt needs a renaming when copying it to /lib/firmware/brcm/brcmfmac43455-sdio.txt)&lt;br /&gt;
&lt;br /&gt;
''The content of the upstream .txt is different than the Android configuration, but is supposed to work.''&lt;br /&gt;
&lt;br /&gt;
As you don't have WiFi yet you need to get the firmware-brcm80211*.deb and brcmfmac43455-sdio.txt file on the PineNote by other means, for instance using an USB stick&lt;br /&gt;
&lt;br /&gt;
===== Bluetooth =====&lt;br /&gt;
&lt;br /&gt;
Once you have WiFi working you can get BCM4345C0.hcd by installing the bluez-firmware &lt;br /&gt;
  sudo apt install bluez-firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuring the E-ink refresh mode ===&lt;br /&gt;
https://github.com/m-weigand/mw_pinenote_misc/tree/main/rockchip_ebc/patches contains information on how/where to write in /sys to alter the refresh mode&lt;br /&gt;
&lt;br /&gt;
https://github.com/m-weigand/mw_pinenote_misc/tree/main/gnome_extension contains the gnome extension used in Maximilian image &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Touchscreen and Pen In X.org ===&lt;br /&gt;
&lt;br /&gt;
By default the pen config is flipped 180° (which makes it unusable) and the touchscreen doesn't work. Placing the following config in &amp;lt;code&amp;gt;/etc/X11/xorg.conf.d/50-touchscreen.conf&amp;lt;/code&amp;gt; will fix both problems:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;evdev touchscreen&amp;quot;&lt;br /&gt;
    MatchProduct &amp;quot;tt21000&amp;quot;&lt;br /&gt;
    MatchIsTouchscreen &amp;quot;on&amp;quot;&lt;br /&gt;
    Driver        &amp;quot;evdev&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
    Identifier    &amp;quot;RotateTouch&amp;quot;&lt;br /&gt;
    MatchProduct    &amp;quot;w9013&amp;quot;&lt;br /&gt;
    Option    &amp;quot;TransformationMatrix&amp;quot; &amp;quot;-1 0 1 0 -1 1 0 0 1&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development&amp;diff=15305</id>
		<title>PineNote Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development&amp;diff=15305"/>
		<updated>2023-01-11T09:19:15Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: Update mainline status of backlight driver&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article seeks to provide general development information for the [[PineNote]]. If you are new and down to try a new installation process, the easiest way to get linux is likely to [https://wiki.pine64.org/wiki/PineNote_Development/Installing_Debian install Debian] -- NOTE THAT THIS INSTALLATION PROCESS IS VERY NEW. While many people have been using the kernel that will be installed safely at this point, the instructions for installing Debian via rootfs are very new. Take backups!&lt;br /&gt;
&lt;br /&gt;
The more stable recommended approach is described below:&lt;br /&gt;
&lt;br /&gt;
Start with [https://github.com/DorianRudolph/pinenotes Dorian's guide] which will guide you through getting Arch installed. For instructions on building the latest kernel, see [[PineNote Development/Building Kernel]]. For helpful configurations, see [[PineNote Development/Apps]]. For ways to pitch in, see [[PineNote Development/TODOs]]. To boot Linux by default instead of Android, see [[PineNote Development/Booting Linux]]. [https://www.youtube.com/watch?v=ZCLyJfbzbrU Here is a video] of a user running Manjaro and some apps on their PineNote on 9/10/2022.&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
== Kernel modules / mainlining status ==&lt;br /&gt;
&lt;br /&gt;
WORK IN PROGRESS !&lt;br /&gt;
&lt;br /&gt;
The following table aims to provide a list of kernel modules required for running the PineNote.&lt;br /&gt;
It also aims at listing repositories of work in progress.&lt;br /&gt;
While some overlap with the Quartz64 module list ([[Quartz64_Development#Upstreaming_Status]]) &lt;br /&gt;
is expected, only modules relevant to the PineNote hardware should be listed here.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Function&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;2&amp;quot; | Status&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Component&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;cyttsp5&amp;lt;/code&amp;gt;&lt;br /&gt;
| As of 6.2-rc1&amp;lt;sup&amp;gt;[https://git.kernel.org/linus/5b0c03e24a061f9c9e8b28fa157b80990c559a37]&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Digitizer&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;i2c_hid_of&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pen BLE Buttons&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;ws8100-pen&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| EBC Display controller&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;rockchip_ebc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| EBC PMic&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;tps65185&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LED backlight driver&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;lm3630a&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;st-accel-i2c&amp;lt;/code&amp;gt; (silan,sc7a20)&lt;br /&gt;
| As of 5.18-rc1&amp;lt;sup&amp;gt;[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cc6ce5ac2c998d7e869d7289736e0097ce7d2ad1]&lt;br /&gt;
|-&lt;br /&gt;
| Rastergraphics unit RGA2e&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;rga&amp;lt;/code&amp;gt; (v4l2 mem2mem driver)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Mali GPU&lt;br /&gt;
| style=&amp;quot;background:LightYellow; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Upstream Mesa&lt;br /&gt;
| &amp;lt;code&amp;gt;panfrost&amp;lt;/code&amp;gt;&lt;br /&gt;
| As of 5.18 &amp;lt;sup&amp;gt;[https://git.kernel.org/linus/810028668c6d9da25664195d6b906c98a8169f72]&amp;lt;/sup&amp;gt; this got added to the &amp;lt;code&amp;gt;.dtsi&amp;lt;/code&amp;gt; file, but it's status is disabled.&lt;br /&gt;
I haven't seen the &amp;lt;code&amp;gt;gpu&amp;lt;/code&amp;gt; node getting enabled in the &amp;lt;code&amp;gt;.dts&amp;lt;/code&amp;gt; for PineNote (yet)?&lt;br /&gt;
|-&lt;br /&gt;
| Wifi/BT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;brcmfmac&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= More Information = &lt;br /&gt;
== High-level developer new to embedded linux? ==&lt;br /&gt;
Here are some resources I have found helpful in learning to develop on embedded linux devices:&lt;br /&gt;
* Great youtube series introducing you to the kernel and lower-level components of Linux: https://www.youtube.com/watch?v=WiZ05pnHZqM&lt;br /&gt;
* https://embetronicx.com/&lt;br /&gt;
* https://bootlin.com/training/&lt;br /&gt;
* https://www.nand2tetris.org&lt;br /&gt;
&lt;br /&gt;
== Notes Written by Some Developers ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/m-weigand/mw_pinenote_misc (Not super legible &amp;quot;notes&amp;quot;, but very helpful repo with patches, videos, etc)&lt;br /&gt;
** specifically see this section for helpful install/configure scripts: https://github.com/m-weigand/mw_pinenote_misc/tree/main/rockchip_ebc/patches#compiling. &lt;br /&gt;
* https://github.com/0cc4m/pinenote-misc&lt;br /&gt;
** patch for enabling gpu: https://github.com/0cc4m/pinenote-misc/blob/main/mesa-archlinux-arm/mesa/rockchip_ebc.patch&lt;br /&gt;
** prebuilt pkg's: https://github.com/0cc4m/pinenote-misc/releases&lt;br /&gt;
* https://pwarren.id.au/pinenote/build_notes.txt&lt;br /&gt;
* https://github.com/DorianRudolph/pinenotes&lt;br /&gt;
* https://github.com/tpwrules/nixos-pinenote&lt;br /&gt;
&lt;br /&gt;
== Alternative to patching of mesa ==&lt;br /&gt;
Mesa needs to be patched to add the driver entry point. The alternative to this, is the renaming of the ebc driver to an existing mesa driver entry point. A good existing name can be &amp;quot;repaper&amp;quot;. To change the driver name, edit in the kernel tree the following files:&amp;lt;br&amp;gt;&lt;br /&gt;
- replace &amp;quot;rockchip-ebc&amp;quot; with &amp;quot;repaper&amp;quot; in the two places in the file: drivers/gpu/drm/rockchip/rockchip_ebc.c &amp;lt;br&amp;gt;&lt;br /&gt;
- preventive, replace &amp;quot;repaper&amp;quot; with &amp;quot;repaper-disabled&amp;quot; in the two places in the file: drivers/gpu/drm/tiny/repaper.c &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building the most recent kernel ==&lt;br /&gt;
See [https://wiki.pine64.org/wiki/PineNote_Development/Building_Kernel here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video of Factory Android OS ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=DWuTGgQHw98 PineNote Developer Edition w/Tech Demo Android OS (Video Only)]&lt;br /&gt;
&lt;br /&gt;
Informal walkthrough of the factory Android installation on the PineNote Developer Edition, recorded by a community member (Apr 2022). This is useful to look back at the original OS after erasing it from your device, or to get some additional detail before your device arrives.&lt;br /&gt;
&lt;br /&gt;
The video also includes a chapter at the end showing [https://www.youtube.com/watch?v=DWuTGgQHw98&amp;amp;t=802s how to enable Android Debug Bridge (`adb`) over USB]. Once enabled, keep the device powered and connect a USB cable directly to the PineNote (i.e. no UART breakout) to a computer running `adb`.&lt;br /&gt;
&lt;br /&gt;
== Emulator for Developing/Testing Pinenote Apps ==&lt;br /&gt;
https://github.com/michaelshiel/picom-epaper&lt;br /&gt;
&lt;br /&gt;
= Flashing Software =&lt;br /&gt;
Currently, the only ways to flash software are from the factory Android installation (UART shell, adb, or fastboot) or by using rkdeveloptool.&lt;br /&gt;
&lt;br /&gt;
== Backup of the content of the internal MMC before you mess anything up ==&lt;br /&gt;
Especially the '''waveform''' partition contains data '''unique''' to your PineNote and is a prime candidate for backup.&lt;br /&gt;
&lt;br /&gt;
But other partitions like uboot (need for any operation of the device) or the un-partitioned space at the beginning containing the GPT partition table (and presumably the VCOM setting for the e-ink display and maybe device mac addresses) contains data you may wish to backup.&lt;br /&gt;
&lt;br /&gt;
Depending of your personal level of data hoarder you may want to backup more than this or even just everything (the large userdata partition is supposed to be able to be repopulated as empty space by Android)&lt;br /&gt;
&lt;br /&gt;
In any case it is easier to restore/extract data from a backup than not having one if you need one.&lt;br /&gt;
&lt;br /&gt;
=== Manually using rkdeveloptool ===&lt;br /&gt;
Dorian has some nice [https://github.com/DorianRudolph/pinenotes notes regarding the PineNote]&lt;br /&gt;
&lt;br /&gt;
Don't forget to install a patched uboot for reading beyond 32MB and to respect the 2GB limit/bug of the current rkdeveloptool as per his notes&lt;br /&gt;
&lt;br /&gt;
=== Automated backup using a script and rkdeveloptool ===&lt;br /&gt;
[https://github.com/talpadk/pinenote-backup pinenote-backup] is a python script for detecting the partitions and automating the backup of partitions or the whole disk&lt;br /&gt;
&lt;br /&gt;
I also requires a patched u-boot but automatically handles the 2GB limit by splitting up larger reads into smaller ones&lt;br /&gt;
&lt;br /&gt;
=== Using the factory Android installation ===&lt;br /&gt;
For any one knowing how and with which caveats: Write ME&lt;br /&gt;
&lt;br /&gt;
=== Using a user installed Linux ===&lt;br /&gt;
A Linux installed to the cache partition should be able to easily backup everything over WiFi or to a USB stick/disk using dd&lt;br /&gt;
&lt;br /&gt;
However the user would need to backup the cache partition themself (if they want that).&lt;br /&gt;
&lt;br /&gt;
And more importantly they would only be getting the backup ''after'' they started playing with the content of the MMC.&lt;br /&gt;
&lt;br /&gt;
== Side-by-side setup ==&lt;br /&gt;
&lt;br /&gt;
It is possible to set up a partition for mainline development without disturbing the factory Android installation. This allows updating a mainline kernel, DTB, and initramfs over Wi-Fi until WiFi or USB OTG is working in mainline Linux.&lt;br /&gt;
&lt;br /&gt;
=== Without Repartitioning ===&lt;br /&gt;
&lt;br /&gt;
The recommended partition for this is &amp;lt;tt&amp;gt;mmcblk0p11&amp;lt;/tt&amp;gt; aka &amp;lt;tt&amp;gt;/cache&amp;lt;/tt&amp;gt;. It is large and already formatted as &amp;lt;tt&amp;gt;ext4&amp;lt;/tt&amp;gt;, so it is readable from U-Boot. Here are some general steps:&lt;br /&gt;
&lt;br /&gt;
# From the UART or adb shell, set up your chroot in &amp;lt;tt&amp;gt;/cache&amp;lt;/tt&amp;gt;. I used the Alpine Linux rootfs tarball.&lt;br /&gt;
# Copy in your kernel and DTB, using for example &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;wget&amp;lt;/tt&amp;gt; inside the chroot.&lt;br /&gt;
# Finally, create and boot an &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; as described below.&lt;br /&gt;
&lt;br /&gt;
=== With Repartitioning ===&lt;br /&gt;
&lt;br /&gt;
It is possible to shrink the &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt; partition, and create a new partition at the end for use with mainline Linux. This provides much more space than &amp;lt;tt&amp;gt;cache&amp;lt;/tt&amp;gt;. However, because &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt; is formatted with &amp;lt;tt&amp;gt;f2fs&amp;lt;/tt&amp;gt;, and that filesystem cannot be shrunk, resizing the partition requires wiping &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# Back up any necessary files from userdata&lt;br /&gt;
# Boot to a mainline kernel from &amp;lt;tt&amp;gt;mmcblk0p11&amp;lt;/tt&amp;gt;, either using that partition as rootfs (see above), or using an initramfs with repartitioning tools&lt;br /&gt;
# Modify the partition table with your favorite tool, e.g. &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gdisk&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;parted&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Reboot into &amp;lt;tt&amp;gt;fastboot&amp;lt;/tt&amp;gt; and wipe &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Reboot into Android, where you can now chroot in and install your favorite distribution to the new partition.&lt;br /&gt;
&lt;br /&gt;
== Using rkdeveloptool ==&lt;br /&gt;
&lt;br /&gt;
rkdeveloptool is a command line utility built on libusb.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and Building rkdeveloptool ===&lt;br /&gt;
&lt;br /&gt;
PINE64 develops [https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool its own updated fork of rkdeveloptool on GitLab].&lt;br /&gt;
&lt;br /&gt;
You will need to have libusb 1.0, its development headers and scdoc installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool.git&lt;br /&gt;
cd rkdeveloptool&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sets up all the build files. You can then compile with &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; inside the build directory.&lt;br /&gt;
&lt;br /&gt;
After you're done, you'll likely also need to install the udev rules, or else your user won't have permission to access the USB devices:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp 99-rk-rockusb.rules /etc/udev/rules.d/&lt;br /&gt;
sudo udevadm control --reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copying the udev rules is also performed automatically when you &amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Building Downstream U-Boot ===&lt;br /&gt;
&lt;br /&gt;
While in maskrom mode, we need to have a u-boot to download onto the device for any of the other commands to work. To build you'll also need to install device-tree-compiler.&lt;br /&gt;
&lt;br /&gt;
You also need to install Python and pyelftools.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Note that rkbin is a &amp;amp;gt;5GB download!&amp;lt;/b&amp;gt; This will take some time to clone and process the deltas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b quartz64 https://gitlab.com/pgwipeout/u-boot-rockchip.git&lt;br /&gt;
git clone -b rkbin https://github.com/JeffyCN/rockchip_mirrors.git rkbin&lt;br /&gt;
cd u-boot-rockchip&lt;br /&gt;
# If using Arch Linux, export CROSS_COMPILE=aarch64-linux-gnu-&lt;br /&gt;
export CROSS_COMPILE=aarch64-none-linux-gnu-&lt;br /&gt;
make rk3566-quartz64_defconfig&lt;br /&gt;
./make.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
In the version I cloned (current as of 2022-01-02), I had to make a change to one line to get a clean compilation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/lib/avb/libavb/avb_slot_verify.c b/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
index 123701fc3b..64a1ce6450 100644&lt;br /&gt;
--- a/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
+++ b/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
@@ -296,7 +296,7 @@ static AvbSlotVerifyResult load_and_verify_hash_partition(&lt;br /&gt;
   bool image_preloaded = false;&lt;br /&gt;
   uint8_t* digest;&lt;br /&gt;
   size_t digest_len;&lt;br /&gt;
-  const char* found;&lt;br /&gt;
+  const char* found = NULL;&lt;br /&gt;
   uint64_t image_size;&lt;br /&gt;
   size_t expected_digest_len = 0;&lt;br /&gt;
   uint8_t expected_digest_buf[AVB_SHA512_DIGEST_SIZE];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For systems where the global python executable points to python2, compilation fails with an error related to pyelftools not being installed (even if it is). To fix this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/make.sh b/make.sh&lt;br /&gt;
index 2bba05b4e4..cfe5b0afd5 100755&lt;br /&gt;
--- a/make.sh&lt;br /&gt;
+++ b/make.sh&lt;br /&gt;
@@ -758,7 +758,7 @@ function pack_fit_image()&lt;br /&gt;
        fi&lt;br /&gt;
 &lt;br /&gt;
        if [ &amp;quot;${ARM64_TRUSTZONE}&amp;quot; == &amp;quot;y&amp;quot; ]; then&lt;br /&gt;
-               if ! python -c &amp;quot;import elftools&amp;quot; ; then&lt;br /&gt;
+               if ! python3 -c &amp;quot;import elftools&amp;quot; ; then&lt;br /&gt;
                        echo &amp;quot;ERROR: No python 'pyelftools', please: pip install pyelftools&amp;quot;&lt;br /&gt;
                        exit 1&lt;br /&gt;
                fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entering Maskrom/Rockusb Mode ===&lt;br /&gt;
&lt;br /&gt;
There are three ways to get into Maskrom/Rockusb mode:&lt;br /&gt;
&lt;br /&gt;
====  The easy way ====&lt;br /&gt;
&lt;br /&gt;
# Flip the device around so that the display faces down&lt;br /&gt;
# Lay the pen on the right side, with its tip pointing towards the speaker grill, and its magnet pointing towards the upper right corner of the label on the back (or place the magnetic cap from the pen on the spot marked on the back).&lt;br /&gt;
# Turn the device on and wait for it to show up in &amp;lt;code&amp;gt;lsusb&amp;lt;/code&amp;gt;. It should now be in Loader mode, according to &amp;lt;code&amp;gt;rkdeveloptool list-devices&amp;lt;/code&amp;gt; (note that &amp;quot;Loader&amp;quot; here indicates U-Boot's Rockusb; separately, booting with an erased eMMC displays &amp;quot;Maskrom&amp;quot; [not &amp;quot;Loader&amp;quot;] from the RK3566).&lt;br /&gt;
# Unplug the device and plug it back in. It should now be in Rockusb mode.&lt;br /&gt;
&lt;br /&gt;
This can be a bit fiddly to get right, and may need a few tries.&lt;br /&gt;
&lt;br /&gt;
==== The u-boot way ====&lt;br /&gt;
# Interrupt the u-boot startup using ctrl-c (while attached using an UART dongle)&lt;br /&gt;
# While in u-boot use the command &amp;quot;rockusb 0 mmc 0&amp;quot; to start rockusb mode.&lt;br /&gt;
&lt;br /&gt;
One benefit from this is, that if you have an UART dongle that allows to simultaneous having an UART and USB connection, there is no need to plug and unplug cables and flipping the PineNote around and placing magnets.  &lt;br /&gt;
&lt;br /&gt;
This is especially helpful when changing back and forth between u-boot and rockusb, for instance when trying to develop u-boot.&lt;br /&gt;
&lt;br /&gt;
==== Shorting test points ====&lt;br /&gt;
&lt;br /&gt;
If the bootloader is broken/corrupted, you cannot get to Maskrom without opening up the device (it can be opened using spudger and a bit of patience).&lt;br /&gt;
&lt;br /&gt;
Once inside, short TP1301 (GND) and TP1302 (eMMC_D0/FLASH_D0) with a small tweezers, this is how it looks on board view (credit to Caleb):&lt;br /&gt;
&lt;br /&gt;
[[File:PineNote_Maskrom_TP.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Then plug the device to the computer and if you see the device with VID=2207/PID=350a then it should be in Maskrom mode, you can verify by typing &amp;lt;code&amp;gt;rkdeveloptool list-devices&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Jan 07 15:04:13 melttower kernel: usb 1-14: New USB device found, idVendor=2207, idProduct=350a, bcdDevice= 1.00&lt;br /&gt;
Jan 07 15:04:13 melttower kernel: usb 1-14: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
&lt;br /&gt;
$ rkdeveloptool list-devices&lt;br /&gt;
DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=10e    Maskrom&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If nothing shows up, you can try to hold down the power button for 5 seconds and then try again.&lt;br /&gt;
&lt;br /&gt;
=== Running rkdeveloptool ===&lt;br /&gt;
&lt;br /&gt;
First, you'll want to make sure the device you've connected is in maskrom mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./rkdeveloptool list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should output something like &amp;lt;code&amp;gt;DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=202    Maskrom&amp;lt;/code&amp;gt;. If it doesn't, see [[PineNote Development#Entering Maskrom Mode]].&lt;br /&gt;
&lt;br /&gt;
You can now download u-boot onto it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./rkdeveloptool boot ../u-boot-rockchip/rk356x_spl_loader_v1.08.111.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should output &amp;lt;code&amp;gt;Downloading bootloader succeeded.&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
We can now verify that this worked using e.g. the &amp;quot;read flash info&amp;quot; command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./rkdeveloptool read-flash-info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''TODO:''' finish this section&lt;br /&gt;
&lt;br /&gt;
=== Creating a mainline boot image ===&lt;br /&gt;
&lt;br /&gt;
You can create a filesystem image that replaces the Android boot or recovery partition by doing roughly the following:&lt;br /&gt;
&lt;br /&gt;
# Erase boot and dtbo with rkdeveloptool or fastboot (back them up first!!!)&lt;br /&gt;
# Create an ext2 partition image and mount it (fallocate, mkfs.ext2)&lt;br /&gt;
# Build your mainline kernel&lt;br /&gt;
# Copy the kernel, dtb and an initramfs to the root of the mounted image (use any old postmarketOS initramfs)&lt;br /&gt;
# Create a file in the root of the mounted image called &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; as described below&lt;br /&gt;
# Unmount the image and then use rkdeveloptool to flash it to the &amp;quot;recovery&amp;quot; partition on the pinenote (it's about the right size until we get around to replacing the partition layout).&lt;br /&gt;
&lt;br /&gt;
== Using fastboot ==&lt;br /&gt;
&lt;br /&gt;
Follow the steps for &amp;quot;Creating a mainline boot.img&amp;quot;, but instead of flashing it with rkdeveloptool, use fastboot. You can enter fastboot in either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Use &amp;quot;reboot bootloader&amp;quot; from adb or a UART console.&lt;br /&gt;
# Get a U-Boot prompt and run &amp;lt;code&amp;gt;fastboot usb 0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Mainline development =&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Some work happening here: https://gitlab.com/calebccff/linux, the idea is to import the parts of the eink/ebc drivers which are open source and use the downstream u-boot framebuffer driver as a reference to create a basic framebuffer driver.&lt;br /&gt;
&lt;br /&gt;
Currently mainline struggles to boot due to weird issues while probing fixed regulators (?). It also fails to detect eMMC.&lt;br /&gt;
&lt;br /&gt;
Further work is being done here: https://github.com/smaeul/linux/commits/rk356x-ebc-dev. This has a complete device tree, with working eMMC. Pen input also works out of the box. Wi-Fi and BT work with firmware copied from the factory Android image.&lt;br /&gt;
&lt;br /&gt;
== How to boot mainline ==&lt;br /&gt;
&lt;br /&gt;
UART is currently REQUIRED for this to work! We depend on u-boot falling back to console. Once we have a prebuilt u-boot which will use extlinux by default, UART won't be needed anymore.&lt;br /&gt;
&lt;br /&gt;
You can compile a u-boot that uses extlinux by default by following the instructions [https://github.com/JoshuaMulliken/pinenote_uboot/blob/aa9ecbd3d3e716f163f5a900824630f24e9f04ba/README.md#changing-default-boot-order here].&lt;br /&gt;
&lt;br /&gt;
=== Getting to a U-Boot prompt ===&lt;br /&gt;
&lt;br /&gt;
You can get to a U-Boot prompt by:&lt;br /&gt;
&lt;br /&gt;
# Holding Ctrl-C while the display panel initializes.&lt;br /&gt;
# Wiping the &amp;quot;boot&amp;quot; partition.&lt;br /&gt;
&lt;br /&gt;
=== Using sysboot ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; should have the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
timeout 10&lt;br /&gt;
default MAINLINE&lt;br /&gt;
menu title boot prev kernel&lt;br /&gt;
&lt;br /&gt;
label MAINLINE&lt;br /&gt;
  kernel /vmlinuz&lt;br /&gt;
  fdt /rk3566-pinenote.dtb&lt;br /&gt;
  initrd /initramfs&lt;br /&gt;
  append earlycon console=tty0 console=ttyS2,1500000n8 fw_devlink=off PMOS_NO_OUTPUT_REDIRECT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the u-boot console, run the following command to boot your mainline kernel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysboot ${devtype} ${devnum}:9 any ${scriptaddr} extlinux.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Booting with individual commands ===&lt;br /&gt;
&lt;br /&gt;
Booting with individual commands can be useful when you need to temporarily add some kernel command line arguments. Use these or similar commands at the U-Boot shell:&lt;br /&gt;
&lt;br /&gt;
 load mmc 0:b ${kernel_addr_r} boot/Image&lt;br /&gt;
 load mmc 0:b ${fdt_addr_r} boot/rk3566-pinenote.dtb&lt;br /&gt;
 setenv bootargs ignore_loglevel root=/dev/mmcblk0p11 rootwait init=/bin/bash&lt;br /&gt;
 booti ${kernel_addr_r} - ${fdt_addr_r}&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware for WiFi &amp;amp; Bluetooth and Waveform data ===&lt;br /&gt;
&lt;br /&gt;
==== Using Maximilian's Debian image  ====&lt;br /&gt;
If the Android partition (super) and waveform partition (waveform) is left intact the image extracts the WiFi, BT driver and waveform from the partitions on first run.&lt;br /&gt;
&lt;br /&gt;
For instance if you repartitions the userdata partition and installs the image there.&lt;br /&gt;
&lt;br /&gt;
==== Getting it from the Android install manually ====&lt;br /&gt;
Copy WiFi/BT firmware from Android:&lt;br /&gt;
 mkdir -p /cache/lib/firmware/brcm&lt;br /&gt;
 cp /vendor/etc/firmware/fw_bcm43455c0_ag_cy.bin /cache/lib/firmware/brcm/brcmfmac43455-sdio.bin&lt;br /&gt;
 cp /vendor/etc/firmware/nvram_ap6255_cy.txt /cache/lib/firmware/brcm/brcmfmac43455-sdio.txt&lt;br /&gt;
 cp /cache/lib/firmware/BCM4345C0.hcd /cache/lib/firmware/brcm/BCM4345C0.hcd&lt;br /&gt;
&lt;br /&gt;
Copy waveform partition (via previously dumped file):&lt;br /&gt;
 adb root&lt;br /&gt;
 adb push waveform.img /cache/lib/firmware/waveform.bin&lt;br /&gt;
&lt;br /&gt;
Or via dd within Linux:&lt;br /&gt;
 dd if=/dev/mmcblk0p3 of=/lib/firmware/waveform.bin bs=1k count=2048&lt;br /&gt;
&lt;br /&gt;
==== Getting the Wifi and Bluetooth driver blobs from &amp;quot;other&amp;quot; sources ====&lt;br /&gt;
===== WiFi =====&lt;br /&gt;
The WiFi firmware .bin blob can be obtained by installing the Debian package firmware-brcm80211 (in the non-free section)&lt;br /&gt;
&lt;br /&gt;
The WiFi brcmfmac43455-sdio.txt file can according to Eugen be sourced from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/brcm/brcmfmac43455-sdio.AW-CM256SM.txt needs a renaming when copying it to /lib/firmware/brcm/brcmfmac43455-sdio.txt)&lt;br /&gt;
&lt;br /&gt;
''The content of the upstream .txt is different than the Android configuration, but is supposed to work.''&lt;br /&gt;
&lt;br /&gt;
As you don't have WiFi yet you need to get the firmware-brcm80211*.deb and brcmfmac43455-sdio.txt file on the PineNote by other means, for instance using an USB stick&lt;br /&gt;
&lt;br /&gt;
===== Bluetooth =====&lt;br /&gt;
&lt;br /&gt;
Once you have WiFi working you can get BCM4345C0.hcd by installing the bluez-firmware &lt;br /&gt;
  sudo apt install bluez-firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuring the E-ink refresh mode ===&lt;br /&gt;
https://github.com/m-weigand/mw_pinenote_misc/tree/main/rockchip_ebc/patches contains information on how/where to write in /sys to alter the refresh mode&lt;br /&gt;
&lt;br /&gt;
https://github.com/m-weigand/mw_pinenote_misc/tree/main/gnome_extension contains the gnome extension used in Maximilian image &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Touchscreen and Pen In X.org ===&lt;br /&gt;
&lt;br /&gt;
By default the pen config is flipped 180° (which makes it unusable) and the touchscreen doesn't work. Placing the following config in &amp;lt;code&amp;gt;/etc/X11/xorg.conf.d/50-touchscreen.conf&amp;lt;/code&amp;gt; will fix both problems:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;evdev touchscreen&amp;quot;&lt;br /&gt;
    MatchProduct &amp;quot;tt21000&amp;quot;&lt;br /&gt;
    MatchIsTouchscreen &amp;quot;on&amp;quot;&lt;br /&gt;
    Driver        &amp;quot;evdev&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
    Identifier    &amp;quot;RotateTouch&amp;quot;&lt;br /&gt;
    MatchProduct    &amp;quot;w9013&amp;quot;&lt;br /&gt;
    Option    &amp;quot;TransformationMatrix&amp;quot; &amp;quot;-1 0 1 0 -1 1 0 0 1&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development&amp;diff=15304</id>
		<title>PineNote Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development&amp;diff=15304"/>
		<updated>2023-01-11T09:16:14Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: Update mainline status of accelerometer st-accel-i2c (silan,sc7a20)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article seeks to provide general development information for the [[PineNote]]. If you are new and down to try a new installation process, the easiest way to get linux is likely to [https://wiki.pine64.org/wiki/PineNote_Development/Installing_Debian install Debian] -- NOTE THAT THIS INSTALLATION PROCESS IS VERY NEW. While many people have been using the kernel that will be installed safely at this point, the instructions for installing Debian via rootfs are very new. Take backups!&lt;br /&gt;
&lt;br /&gt;
The more stable recommended approach is described below:&lt;br /&gt;
&lt;br /&gt;
Start with [https://github.com/DorianRudolph/pinenotes Dorian's guide] which will guide you through getting Arch installed. For instructions on building the latest kernel, see [[PineNote Development/Building Kernel]]. For helpful configurations, see [[PineNote Development/Apps]]. For ways to pitch in, see [[PineNote Development/TODOs]]. To boot Linux by default instead of Android, see [[PineNote Development/Booting Linux]]. [https://www.youtube.com/watch?v=ZCLyJfbzbrU Here is a video] of a user running Manjaro and some apps on their PineNote on 9/10/2022.&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
== Kernel modules / mainlining status ==&lt;br /&gt;
&lt;br /&gt;
WORK IN PROGRESS !&lt;br /&gt;
&lt;br /&gt;
The following table aims to provide a list of kernel modules required for running the PineNote.&lt;br /&gt;
It also aims at listing repositories of work in progress.&lt;br /&gt;
While some overlap with the Quartz64 module list ([[Quartz64_Development#Upstreaming_Status]]) &lt;br /&gt;
is expected, only modules relevant to the PineNote hardware should be listed here.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Function&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;2&amp;quot; | Status&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Component&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;cyttsp5&amp;lt;/code&amp;gt;&lt;br /&gt;
| As of 6.2-rc1&amp;lt;sup&amp;gt;[https://git.kernel.org/linus/5b0c03e24a061f9c9e8b28fa157b80990c559a37]&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Digitizer&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;i2c_hid_of&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pen BLE Buttons&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;ws8100-pen&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| EBC Display controller&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;rockchip_ebc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| EBC PMic&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;tps65185&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LED backlight driver&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;lm3630a&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;st-accel-i2c&amp;lt;/code&amp;gt; (silan,sc7a20)&lt;br /&gt;
| As of 5.18-rc1&amp;lt;sup&amp;gt;[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cc6ce5ac2c998d7e869d7289736e0097ce7d2ad1]&lt;br /&gt;
|-&lt;br /&gt;
| Rastergraphics unit RGA2e&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|tbd&lt;br /&gt;
| &amp;lt;code&amp;gt;rga&amp;lt;/code&amp;gt; (v4l2 mem2mem driver)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Mali GPU&lt;br /&gt;
| style=&amp;quot;background:LightYellow; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Upstream Mesa&lt;br /&gt;
| &amp;lt;code&amp;gt;panfrost&amp;lt;/code&amp;gt;&lt;br /&gt;
| As of 5.18 &amp;lt;sup&amp;gt;[https://git.kernel.org/linus/810028668c6d9da25664195d6b906c98a8169f72]&amp;lt;/sup&amp;gt; this got added to the &amp;lt;code&amp;gt;.dtsi&amp;lt;/code&amp;gt; file, but it's status is disabled.&lt;br /&gt;
I haven't seen the &amp;lt;code&amp;gt;gpu&amp;lt;/code&amp;gt; node getting enabled in the &amp;lt;code&amp;gt;.dts&amp;lt;/code&amp;gt; for PineNote (yet)?&lt;br /&gt;
|-&lt;br /&gt;
| Wifi/BT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| &amp;lt;code&amp;gt;brcmfmac&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= More Information = &lt;br /&gt;
== High-level developer new to embedded linux? ==&lt;br /&gt;
Here are some resources I have found helpful in learning to develop on embedded linux devices:&lt;br /&gt;
* Great youtube series introducing you to the kernel and lower-level components of Linux: https://www.youtube.com/watch?v=WiZ05pnHZqM&lt;br /&gt;
* https://embetronicx.com/&lt;br /&gt;
* https://bootlin.com/training/&lt;br /&gt;
* https://www.nand2tetris.org&lt;br /&gt;
&lt;br /&gt;
== Notes Written by Some Developers ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/m-weigand/mw_pinenote_misc (Not super legible &amp;quot;notes&amp;quot;, but very helpful repo with patches, videos, etc)&lt;br /&gt;
** specifically see this section for helpful install/configure scripts: https://github.com/m-weigand/mw_pinenote_misc/tree/main/rockchip_ebc/patches#compiling. &lt;br /&gt;
* https://github.com/0cc4m/pinenote-misc&lt;br /&gt;
** patch for enabling gpu: https://github.com/0cc4m/pinenote-misc/blob/main/mesa-archlinux-arm/mesa/rockchip_ebc.patch&lt;br /&gt;
** prebuilt pkg's: https://github.com/0cc4m/pinenote-misc/releases&lt;br /&gt;
* https://pwarren.id.au/pinenote/build_notes.txt&lt;br /&gt;
* https://github.com/DorianRudolph/pinenotes&lt;br /&gt;
* https://github.com/tpwrules/nixos-pinenote&lt;br /&gt;
&lt;br /&gt;
== Alternative to patching of mesa ==&lt;br /&gt;
Mesa needs to be patched to add the driver entry point. The alternative to this, is the renaming of the ebc driver to an existing mesa driver entry point. A good existing name can be &amp;quot;repaper&amp;quot;. To change the driver name, edit in the kernel tree the following files:&amp;lt;br&amp;gt;&lt;br /&gt;
- replace &amp;quot;rockchip-ebc&amp;quot; with &amp;quot;repaper&amp;quot; in the two places in the file: drivers/gpu/drm/rockchip/rockchip_ebc.c &amp;lt;br&amp;gt;&lt;br /&gt;
- preventive, replace &amp;quot;repaper&amp;quot; with &amp;quot;repaper-disabled&amp;quot; in the two places in the file: drivers/gpu/drm/tiny/repaper.c &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building the most recent kernel ==&lt;br /&gt;
See [https://wiki.pine64.org/wiki/PineNote_Development/Building_Kernel here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video of Factory Android OS ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=DWuTGgQHw98 PineNote Developer Edition w/Tech Demo Android OS (Video Only)]&lt;br /&gt;
&lt;br /&gt;
Informal walkthrough of the factory Android installation on the PineNote Developer Edition, recorded by a community member (Apr 2022). This is useful to look back at the original OS after erasing it from your device, or to get some additional detail before your device arrives.&lt;br /&gt;
&lt;br /&gt;
The video also includes a chapter at the end showing [https://www.youtube.com/watch?v=DWuTGgQHw98&amp;amp;t=802s how to enable Android Debug Bridge (`adb`) over USB]. Once enabled, keep the device powered and connect a USB cable directly to the PineNote (i.e. no UART breakout) to a computer running `adb`.&lt;br /&gt;
&lt;br /&gt;
== Emulator for Developing/Testing Pinenote Apps ==&lt;br /&gt;
https://github.com/michaelshiel/picom-epaper&lt;br /&gt;
&lt;br /&gt;
= Flashing Software =&lt;br /&gt;
Currently, the only ways to flash software are from the factory Android installation (UART shell, adb, or fastboot) or by using rkdeveloptool.&lt;br /&gt;
&lt;br /&gt;
== Backup of the content of the internal MMC before you mess anything up ==&lt;br /&gt;
Especially the '''waveform''' partition contains data '''unique''' to your PineNote and is a prime candidate for backup.&lt;br /&gt;
&lt;br /&gt;
But other partitions like uboot (need for any operation of the device) or the un-partitioned space at the beginning containing the GPT partition table (and presumably the VCOM setting for the e-ink display and maybe device mac addresses) contains data you may wish to backup.&lt;br /&gt;
&lt;br /&gt;
Depending of your personal level of data hoarder you may want to backup more than this or even just everything (the large userdata partition is supposed to be able to be repopulated as empty space by Android)&lt;br /&gt;
&lt;br /&gt;
In any case it is easier to restore/extract data from a backup than not having one if you need one.&lt;br /&gt;
&lt;br /&gt;
=== Manually using rkdeveloptool ===&lt;br /&gt;
Dorian has some nice [https://github.com/DorianRudolph/pinenotes notes regarding the PineNote]&lt;br /&gt;
&lt;br /&gt;
Don't forget to install a patched uboot for reading beyond 32MB and to respect the 2GB limit/bug of the current rkdeveloptool as per his notes&lt;br /&gt;
&lt;br /&gt;
=== Automated backup using a script and rkdeveloptool ===&lt;br /&gt;
[https://github.com/talpadk/pinenote-backup pinenote-backup] is a python script for detecting the partitions and automating the backup of partitions or the whole disk&lt;br /&gt;
&lt;br /&gt;
I also requires a patched u-boot but automatically handles the 2GB limit by splitting up larger reads into smaller ones&lt;br /&gt;
&lt;br /&gt;
=== Using the factory Android installation ===&lt;br /&gt;
For any one knowing how and with which caveats: Write ME&lt;br /&gt;
&lt;br /&gt;
=== Using a user installed Linux ===&lt;br /&gt;
A Linux installed to the cache partition should be able to easily backup everything over WiFi or to a USB stick/disk using dd&lt;br /&gt;
&lt;br /&gt;
However the user would need to backup the cache partition themself (if they want that).&lt;br /&gt;
&lt;br /&gt;
And more importantly they would only be getting the backup ''after'' they started playing with the content of the MMC.&lt;br /&gt;
&lt;br /&gt;
== Side-by-side setup ==&lt;br /&gt;
&lt;br /&gt;
It is possible to set up a partition for mainline development without disturbing the factory Android installation. This allows updating a mainline kernel, DTB, and initramfs over Wi-Fi until WiFi or USB OTG is working in mainline Linux.&lt;br /&gt;
&lt;br /&gt;
=== Without Repartitioning ===&lt;br /&gt;
&lt;br /&gt;
The recommended partition for this is &amp;lt;tt&amp;gt;mmcblk0p11&amp;lt;/tt&amp;gt; aka &amp;lt;tt&amp;gt;/cache&amp;lt;/tt&amp;gt;. It is large and already formatted as &amp;lt;tt&amp;gt;ext4&amp;lt;/tt&amp;gt;, so it is readable from U-Boot. Here are some general steps:&lt;br /&gt;
&lt;br /&gt;
# From the UART or adb shell, set up your chroot in &amp;lt;tt&amp;gt;/cache&amp;lt;/tt&amp;gt;. I used the Alpine Linux rootfs tarball.&lt;br /&gt;
# Copy in your kernel and DTB, using for example &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;wget&amp;lt;/tt&amp;gt; inside the chroot.&lt;br /&gt;
# Finally, create and boot an &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; as described below.&lt;br /&gt;
&lt;br /&gt;
=== With Repartitioning ===&lt;br /&gt;
&lt;br /&gt;
It is possible to shrink the &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt; partition, and create a new partition at the end for use with mainline Linux. This provides much more space than &amp;lt;tt&amp;gt;cache&amp;lt;/tt&amp;gt;. However, because &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt; is formatted with &amp;lt;tt&amp;gt;f2fs&amp;lt;/tt&amp;gt;, and that filesystem cannot be shrunk, resizing the partition requires wiping &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# Back up any necessary files from userdata&lt;br /&gt;
# Boot to a mainline kernel from &amp;lt;tt&amp;gt;mmcblk0p11&amp;lt;/tt&amp;gt;, either using that partition as rootfs (see above), or using an initramfs with repartitioning tools&lt;br /&gt;
# Modify the partition table with your favorite tool, e.g. &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gdisk&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;parted&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Reboot into &amp;lt;tt&amp;gt;fastboot&amp;lt;/tt&amp;gt; and wipe &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Reboot into Android, where you can now chroot in and install your favorite distribution to the new partition.&lt;br /&gt;
&lt;br /&gt;
== Using rkdeveloptool ==&lt;br /&gt;
&lt;br /&gt;
rkdeveloptool is a command line utility built on libusb.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and Building rkdeveloptool ===&lt;br /&gt;
&lt;br /&gt;
PINE64 develops [https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool its own updated fork of rkdeveloptool on GitLab].&lt;br /&gt;
&lt;br /&gt;
You will need to have libusb 1.0, its development headers and scdoc installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool.git&lt;br /&gt;
cd rkdeveloptool&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sets up all the build files. You can then compile with &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; inside the build directory.&lt;br /&gt;
&lt;br /&gt;
After you're done, you'll likely also need to install the udev rules, or else your user won't have permission to access the USB devices:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp 99-rk-rockusb.rules /etc/udev/rules.d/&lt;br /&gt;
sudo udevadm control --reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copying the udev rules is also performed automatically when you &amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Building Downstream U-Boot ===&lt;br /&gt;
&lt;br /&gt;
While in maskrom mode, we need to have a u-boot to download onto the device for any of the other commands to work. To build you'll also need to install device-tree-compiler.&lt;br /&gt;
&lt;br /&gt;
You also need to install Python and pyelftools.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Note that rkbin is a &amp;amp;gt;5GB download!&amp;lt;/b&amp;gt; This will take some time to clone and process the deltas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b quartz64 https://gitlab.com/pgwipeout/u-boot-rockchip.git&lt;br /&gt;
git clone -b rkbin https://github.com/JeffyCN/rockchip_mirrors.git rkbin&lt;br /&gt;
cd u-boot-rockchip&lt;br /&gt;
# If using Arch Linux, export CROSS_COMPILE=aarch64-linux-gnu-&lt;br /&gt;
export CROSS_COMPILE=aarch64-none-linux-gnu-&lt;br /&gt;
make rk3566-quartz64_defconfig&lt;br /&gt;
./make.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
In the version I cloned (current as of 2022-01-02), I had to make a change to one line to get a clean compilation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/lib/avb/libavb/avb_slot_verify.c b/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
index 123701fc3b..64a1ce6450 100644&lt;br /&gt;
--- a/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
+++ b/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
@@ -296,7 +296,7 @@ static AvbSlotVerifyResult load_and_verify_hash_partition(&lt;br /&gt;
   bool image_preloaded = false;&lt;br /&gt;
   uint8_t* digest;&lt;br /&gt;
   size_t digest_len;&lt;br /&gt;
-  const char* found;&lt;br /&gt;
+  const char* found = NULL;&lt;br /&gt;
   uint64_t image_size;&lt;br /&gt;
   size_t expected_digest_len = 0;&lt;br /&gt;
   uint8_t expected_digest_buf[AVB_SHA512_DIGEST_SIZE];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For systems where the global python executable points to python2, compilation fails with an error related to pyelftools not being installed (even if it is). To fix this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/make.sh b/make.sh&lt;br /&gt;
index 2bba05b4e4..cfe5b0afd5 100755&lt;br /&gt;
--- a/make.sh&lt;br /&gt;
+++ b/make.sh&lt;br /&gt;
@@ -758,7 +758,7 @@ function pack_fit_image()&lt;br /&gt;
        fi&lt;br /&gt;
 &lt;br /&gt;
        if [ &amp;quot;${ARM64_TRUSTZONE}&amp;quot; == &amp;quot;y&amp;quot; ]; then&lt;br /&gt;
-               if ! python -c &amp;quot;import elftools&amp;quot; ; then&lt;br /&gt;
+               if ! python3 -c &amp;quot;import elftools&amp;quot; ; then&lt;br /&gt;
                        echo &amp;quot;ERROR: No python 'pyelftools', please: pip install pyelftools&amp;quot;&lt;br /&gt;
                        exit 1&lt;br /&gt;
                fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entering Maskrom/Rockusb Mode ===&lt;br /&gt;
&lt;br /&gt;
There are three ways to get into Maskrom/Rockusb mode:&lt;br /&gt;
&lt;br /&gt;
====  The easy way ====&lt;br /&gt;
&lt;br /&gt;
# Flip the device around so that the display faces down&lt;br /&gt;
# Lay the pen on the right side, with its tip pointing towards the speaker grill, and its magnet pointing towards the upper right corner of the label on the back (or place the magnetic cap from the pen on the spot marked on the back).&lt;br /&gt;
# Turn the device on and wait for it to show up in &amp;lt;code&amp;gt;lsusb&amp;lt;/code&amp;gt;. It should now be in Loader mode, according to &amp;lt;code&amp;gt;rkdeveloptool list-devices&amp;lt;/code&amp;gt; (note that &amp;quot;Loader&amp;quot; here indicates U-Boot's Rockusb; separately, booting with an erased eMMC displays &amp;quot;Maskrom&amp;quot; [not &amp;quot;Loader&amp;quot;] from the RK3566).&lt;br /&gt;
# Unplug the device and plug it back in. It should now be in Rockusb mode.&lt;br /&gt;
&lt;br /&gt;
This can be a bit fiddly to get right, and may need a few tries.&lt;br /&gt;
&lt;br /&gt;
==== The u-boot way ====&lt;br /&gt;
# Interrupt the u-boot startup using ctrl-c (while attached using an UART dongle)&lt;br /&gt;
# While in u-boot use the command &amp;quot;rockusb 0 mmc 0&amp;quot; to start rockusb mode.&lt;br /&gt;
&lt;br /&gt;
One benefit from this is, that if you have an UART dongle that allows to simultaneous having an UART and USB connection, there is no need to plug and unplug cables and flipping the PineNote around and placing magnets.  &lt;br /&gt;
&lt;br /&gt;
This is especially helpful when changing back and forth between u-boot and rockusb, for instance when trying to develop u-boot.&lt;br /&gt;
&lt;br /&gt;
==== Shorting test points ====&lt;br /&gt;
&lt;br /&gt;
If the bootloader is broken/corrupted, you cannot get to Maskrom without opening up the device (it can be opened using spudger and a bit of patience).&lt;br /&gt;
&lt;br /&gt;
Once inside, short TP1301 (GND) and TP1302 (eMMC_D0/FLASH_D0) with a small tweezers, this is how it looks on board view (credit to Caleb):&lt;br /&gt;
&lt;br /&gt;
[[File:PineNote_Maskrom_TP.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Then plug the device to the computer and if you see the device with VID=2207/PID=350a then it should be in Maskrom mode, you can verify by typing &amp;lt;code&amp;gt;rkdeveloptool list-devices&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Jan 07 15:04:13 melttower kernel: usb 1-14: New USB device found, idVendor=2207, idProduct=350a, bcdDevice= 1.00&lt;br /&gt;
Jan 07 15:04:13 melttower kernel: usb 1-14: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
&lt;br /&gt;
$ rkdeveloptool list-devices&lt;br /&gt;
DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=10e    Maskrom&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If nothing shows up, you can try to hold down the power button for 5 seconds and then try again.&lt;br /&gt;
&lt;br /&gt;
=== Running rkdeveloptool ===&lt;br /&gt;
&lt;br /&gt;
First, you'll want to make sure the device you've connected is in maskrom mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./rkdeveloptool list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should output something like &amp;lt;code&amp;gt;DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=202    Maskrom&amp;lt;/code&amp;gt;. If it doesn't, see [[PineNote Development#Entering Maskrom Mode]].&lt;br /&gt;
&lt;br /&gt;
You can now download u-boot onto it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./rkdeveloptool boot ../u-boot-rockchip/rk356x_spl_loader_v1.08.111.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should output &amp;lt;code&amp;gt;Downloading bootloader succeeded.&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
We can now verify that this worked using e.g. the &amp;quot;read flash info&amp;quot; command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./rkdeveloptool read-flash-info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''TODO:''' finish this section&lt;br /&gt;
&lt;br /&gt;
=== Creating a mainline boot image ===&lt;br /&gt;
&lt;br /&gt;
You can create a filesystem image that replaces the Android boot or recovery partition by doing roughly the following:&lt;br /&gt;
&lt;br /&gt;
# Erase boot and dtbo with rkdeveloptool or fastboot (back them up first!!!)&lt;br /&gt;
# Create an ext2 partition image and mount it (fallocate, mkfs.ext2)&lt;br /&gt;
# Build your mainline kernel&lt;br /&gt;
# Copy the kernel, dtb and an initramfs to the root of the mounted image (use any old postmarketOS initramfs)&lt;br /&gt;
# Create a file in the root of the mounted image called &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; as described below&lt;br /&gt;
# Unmount the image and then use rkdeveloptool to flash it to the &amp;quot;recovery&amp;quot; partition on the pinenote (it's about the right size until we get around to replacing the partition layout).&lt;br /&gt;
&lt;br /&gt;
== Using fastboot ==&lt;br /&gt;
&lt;br /&gt;
Follow the steps for &amp;quot;Creating a mainline boot.img&amp;quot;, but instead of flashing it with rkdeveloptool, use fastboot. You can enter fastboot in either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Use &amp;quot;reboot bootloader&amp;quot; from adb or a UART console.&lt;br /&gt;
# Get a U-Boot prompt and run &amp;lt;code&amp;gt;fastboot usb 0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Mainline development =&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Some work happening here: https://gitlab.com/calebccff/linux, the idea is to import the parts of the eink/ebc drivers which are open source and use the downstream u-boot framebuffer driver as a reference to create a basic framebuffer driver.&lt;br /&gt;
&lt;br /&gt;
Currently mainline struggles to boot due to weird issues while probing fixed regulators (?). It also fails to detect eMMC.&lt;br /&gt;
&lt;br /&gt;
Further work is being done here: https://github.com/smaeul/linux/commits/rk356x-ebc-dev. This has a complete device tree, with working eMMC. Pen input also works out of the box. Wi-Fi and BT work with firmware copied from the factory Android image.&lt;br /&gt;
&lt;br /&gt;
== How to boot mainline ==&lt;br /&gt;
&lt;br /&gt;
UART is currently REQUIRED for this to work! We depend on u-boot falling back to console. Once we have a prebuilt u-boot which will use extlinux by default, UART won't be needed anymore.&lt;br /&gt;
&lt;br /&gt;
You can compile a u-boot that uses extlinux by default by following the instructions [https://github.com/JoshuaMulliken/pinenote_uboot/blob/aa9ecbd3d3e716f163f5a900824630f24e9f04ba/README.md#changing-default-boot-order here].&lt;br /&gt;
&lt;br /&gt;
=== Getting to a U-Boot prompt ===&lt;br /&gt;
&lt;br /&gt;
You can get to a U-Boot prompt by:&lt;br /&gt;
&lt;br /&gt;
# Holding Ctrl-C while the display panel initializes.&lt;br /&gt;
# Wiping the &amp;quot;boot&amp;quot; partition.&lt;br /&gt;
&lt;br /&gt;
=== Using sysboot ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; should have the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
timeout 10&lt;br /&gt;
default MAINLINE&lt;br /&gt;
menu title boot prev kernel&lt;br /&gt;
&lt;br /&gt;
label MAINLINE&lt;br /&gt;
  kernel /vmlinuz&lt;br /&gt;
  fdt /rk3566-pinenote.dtb&lt;br /&gt;
  initrd /initramfs&lt;br /&gt;
  append earlycon console=tty0 console=ttyS2,1500000n8 fw_devlink=off PMOS_NO_OUTPUT_REDIRECT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the u-boot console, run the following command to boot your mainline kernel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysboot ${devtype} ${devnum}:9 any ${scriptaddr} extlinux.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Booting with individual commands ===&lt;br /&gt;
&lt;br /&gt;
Booting with individual commands can be useful when you need to temporarily add some kernel command line arguments. Use these or similar commands at the U-Boot shell:&lt;br /&gt;
&lt;br /&gt;
 load mmc 0:b ${kernel_addr_r} boot/Image&lt;br /&gt;
 load mmc 0:b ${fdt_addr_r} boot/rk3566-pinenote.dtb&lt;br /&gt;
 setenv bootargs ignore_loglevel root=/dev/mmcblk0p11 rootwait init=/bin/bash&lt;br /&gt;
 booti ${kernel_addr_r} - ${fdt_addr_r}&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware for WiFi &amp;amp; Bluetooth and Waveform data ===&lt;br /&gt;
&lt;br /&gt;
==== Using Maximilian's Debian image  ====&lt;br /&gt;
If the Android partition (super) and waveform partition (waveform) is left intact the image extracts the WiFi, BT driver and waveform from the partitions on first run.&lt;br /&gt;
&lt;br /&gt;
For instance if you repartitions the userdata partition and installs the image there.&lt;br /&gt;
&lt;br /&gt;
==== Getting it from the Android install manually ====&lt;br /&gt;
Copy WiFi/BT firmware from Android:&lt;br /&gt;
 mkdir -p /cache/lib/firmware/brcm&lt;br /&gt;
 cp /vendor/etc/firmware/fw_bcm43455c0_ag_cy.bin /cache/lib/firmware/brcm/brcmfmac43455-sdio.bin&lt;br /&gt;
 cp /vendor/etc/firmware/nvram_ap6255_cy.txt /cache/lib/firmware/brcm/brcmfmac43455-sdio.txt&lt;br /&gt;
 cp /cache/lib/firmware/BCM4345C0.hcd /cache/lib/firmware/brcm/BCM4345C0.hcd&lt;br /&gt;
&lt;br /&gt;
Copy waveform partition (via previously dumped file):&lt;br /&gt;
 adb root&lt;br /&gt;
 adb push waveform.img /cache/lib/firmware/waveform.bin&lt;br /&gt;
&lt;br /&gt;
Or via dd within Linux:&lt;br /&gt;
 dd if=/dev/mmcblk0p3 of=/lib/firmware/waveform.bin bs=1k count=2048&lt;br /&gt;
&lt;br /&gt;
==== Getting the Wifi and Bluetooth driver blobs from &amp;quot;other&amp;quot; sources ====&lt;br /&gt;
===== WiFi =====&lt;br /&gt;
The WiFi firmware .bin blob can be obtained by installing the Debian package firmware-brcm80211 (in the non-free section)&lt;br /&gt;
&lt;br /&gt;
The WiFi brcmfmac43455-sdio.txt file can according to Eugen be sourced from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/brcm/brcmfmac43455-sdio.AW-CM256SM.txt needs a renaming when copying it to /lib/firmware/brcm/brcmfmac43455-sdio.txt)&lt;br /&gt;
&lt;br /&gt;
''The content of the upstream .txt is different than the Android configuration, but is supposed to work.''&lt;br /&gt;
&lt;br /&gt;
As you don't have WiFi yet you need to get the firmware-brcm80211*.deb and brcmfmac43455-sdio.txt file on the PineNote by other means, for instance using an USB stick&lt;br /&gt;
&lt;br /&gt;
===== Bluetooth =====&lt;br /&gt;
&lt;br /&gt;
Once you have WiFi working you can get BCM4345C0.hcd by installing the bluez-firmware &lt;br /&gt;
  sudo apt install bluez-firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuring the E-ink refresh mode ===&lt;br /&gt;
https://github.com/m-weigand/mw_pinenote_misc/tree/main/rockchip_ebc/patches contains information on how/where to write in /sys to alter the refresh mode&lt;br /&gt;
&lt;br /&gt;
https://github.com/m-weigand/mw_pinenote_misc/tree/main/gnome_extension contains the gnome extension used in Maximilian image &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Touchscreen and Pen In X.org ===&lt;br /&gt;
&lt;br /&gt;
By default the pen config is flipped 180° (which makes it unusable) and the touchscreen doesn't work. Placing the following config in &amp;lt;code&amp;gt;/etc/X11/xorg.conf.d/50-touchscreen.conf&amp;lt;/code&amp;gt; will fix both problems:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;evdev touchscreen&amp;quot;&lt;br /&gt;
    MatchProduct &amp;quot;tt21000&amp;quot;&lt;br /&gt;
    MatchIsTouchscreen &amp;quot;on&amp;quot;&lt;br /&gt;
    Driver        &amp;quot;evdev&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
    Identifier    &amp;quot;RotateTouch&amp;quot;&lt;br /&gt;
    MatchProduct    &amp;quot;w9013&amp;quot;&lt;br /&gt;
    Option    &amp;quot;TransformationMatrix&amp;quot; &amp;quot;-1 0 1 0 -1 1 0 0 1&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote&amp;diff=15292</id>
		<title>PineNote</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote&amp;diff=15292"/>
		<updated>2023-01-10T09:04:19Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: Mention the Debian rootfs/disc in State of the software&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PineNote-1.jpg|400px|thumb|right|The PineNote]]&lt;br /&gt;
&lt;br /&gt;
The PineNote is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 model A SBC and powered by a Rockchip RK3566 quad-core ARM Cortex A55 64-bit processor with a MALI G-52 GPU.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
&lt;br /&gt;
The PineNote is based on the in 2021 released Rockchip RK3566 SoC. The upstreaming status of the SoC functionality can be found on the [[Quartz64 Development#Upstreaming Status|Quartz64 development]] wiki page of the Quartz64 single-board computer using the same SoC. &lt;br /&gt;
&lt;br /&gt;
The early adopter's batch of the PineNote is aimed solely at early adopters - more specifically, the units are solely intended to find their way into the hands of users with extensive Linux experience. If you’re looking to buy a PineNote in the first batch, you must expect to write software for it, not to write notes on it. The software shipping from the factory for the first batch will not be suitable for taking notes, reading e-books, or writing your dissertation. It may not even boot to a graphical environment.&lt;br /&gt;
&lt;br /&gt;
An early version of a GNOME-based Debian image is available for [[PineNote_Development/Installing_Debian|testing]], but should not be expected to meet general-user readiness.&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]]. &lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://www.pine64.org/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
[[File:PineNote_Pen_function.jpg|300px|right]]&lt;br /&gt;
[[File:PineNote_Cover-1.jpg|300px|right]]&lt;br /&gt;
&lt;br /&gt;
=== General Information  ===&lt;br /&gt;
* Dimensions: 191.1x232.5x7.4mm&lt;br /&gt;
* Weight: 438g&lt;br /&gt;
&lt;br /&gt;
=== Core  ===&lt;br /&gt;
* CPU: RK3566 1.8GHz 64-bit quad-core A55&lt;br /&gt;
* GPU: MALI G52 2EE&lt;br /&gt;
* System memory: 4GB LPDDR4&lt;br /&gt;
* Flash: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
=== E-ink Display ===&lt;br /&gt;
* Size: 10.3&amp;quot;&lt;br /&gt;
* Resolution: 1404x1872&lt;br /&gt;
* DPI: 227&lt;br /&gt;
* Grayscale: 16&lt;br /&gt;
* Front Light: 36 level cold and warm &lt;br /&gt;
* Capacitive multi-touch panel&lt;br /&gt;
* EMR pen digitizer&lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac&lt;br /&gt;
* Bluetooth: 5.0&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
* Built in stereo speakers&lt;br /&gt;
* 4 x DMIC microphone&lt;br /&gt;
&lt;br /&gt;
=== Sensor ===&lt;br /&gt;
* G-Sensor for portrait and landscape sensing&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
* 4000mAH LiPo battery&lt;br /&gt;
* DC 5V @ 3A USB-C connector&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Optional EMR pen with magnetic attachment (included in the first production batch)&lt;br /&gt;
* Optional Cover (included in the first production batch)&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
* Not yet available&lt;br /&gt;
&lt;br /&gt;
== SoC and Memory Specifications ==&lt;br /&gt;
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]&lt;br /&gt;
[[File:RK3566_icon.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== CPU Architecture ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]&lt;br /&gt;
* AArch32 for full backwards compatibility with ARMv7&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* Includes VFP hardware to support single and double-precision operations&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core&lt;br /&gt;
* 512KB unified system L3 cache&lt;br /&gt;
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support&lt;br /&gt;
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]&lt;br /&gt;
&lt;br /&gt;
=== GPU (Graphics Processing Unit) Capabilities ===&lt;br /&gt;
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]&lt;br /&gt;
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop &lt;br /&gt;
* 128KB L2 Cache configurations&lt;br /&gt;
* Supports OpenGL ES 1.1, 2.0, and 3.2&lt;br /&gt;
* Supports Vulkan 1.0 and 1.1&lt;br /&gt;
* Supports OpenCL 2.0 Full Profile&lt;br /&gt;
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency&lt;br /&gt;
* Supports 38.4 GLOP/s when at 800MHz clock frequency   &lt;br /&gt;
&lt;br /&gt;
=== NPU (Neural Processing Unit) Capabilities ===&lt;br /&gt;
* Neural network acceleration engine with processing performance of up to 0.8 TOPS&lt;br /&gt;
* Supports integer 8 and integer 16 convolution operations&lt;br /&gt;
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet&lt;br /&gt;
&lt;br /&gt;
=== System Memory ===&lt;br /&gt;
* RAM Memory : 4GB LPDDR4.&lt;br /&gt;
* Flash Memory: 128GB eMMC&lt;br /&gt;
&lt;br /&gt;
== PineNote Information, Schematics, and Certifications ==&lt;br /&gt;
* PineNote Developer kit version&lt;br /&gt;
* The v1.2 is the PineNote production schematic. &lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R2%20-%20Schematic-20210824.pdf PineNote Mainboard Schematic ver 1.2 20210824 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_USB-C-Board-V1.0-sch.pdf PineNote USB-C Daughter Board Schematic ver 1.0 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PineNote_USB-C_Console_UART_breakout_board_schematic_v1.0_20210903.pdf PineNote USB-C Console UART Breakout Board Schematic ver 1.0 PDF file]&lt;br /&gt;
* The v1.1 is early release schematic just for reference only and used by developers who received the prototype. &lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]&lt;br /&gt;
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]&lt;br /&gt;
&lt;br /&gt;
* Certifications:&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15C%20Certificate%20DTS-TC561262.pdf PineNote FCC-15C Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20FCC15E%20Certificate%20NII-TC973072.pdf PineNote FCC-15E Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20CE%20RED%20Certicate%20ET-21090682EC.pdf PineNote CE RED Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PineNote%20RoHS%20Certificate%20ET-210900082C.pdf PineNote ROHS Certificate]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
* Rockchip RK3566 SoC information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]&lt;br /&gt;
* Rockchip RK817 PMU (Power Management Unit) Information:&lt;br /&gt;
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet]&lt;br /&gt;
* LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
** ---&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G]  &lt;br /&gt;
* E-ink Panel information:&lt;br /&gt;
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3&amp;quot; 1872x1404 ED103TC2 Glass Panel Specification]&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]&lt;br /&gt;
* Touch Screen information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]&lt;br /&gt;
** Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3&amp;quot; Display Module&lt;br /&gt;
* WiFi/BT module info:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]&lt;br /&gt;
* G Sensor info:&lt;br /&gt;
** [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]&lt;br /&gt;
* Audio Amplifier information:&lt;br /&gt;
** [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Development Efforts ==&lt;br /&gt;
&lt;br /&gt;
* [[PineNote Development]] for general information regarding how to flash the device and other development information.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC.&lt;br /&gt;
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
This section includes discussions and their results regarding hardware changes to the PineNote.&lt;br /&gt;
&lt;br /&gt;
The following topics have resolved:&lt;br /&gt;
&lt;br /&gt;
* [[PineNote/Hardware_Changes/Closed_Case_UART]]&lt;br /&gt;
* '''Could the USB-C port support USB 3.1 5Gbps?''' Yes and no. The RK3566 only has a host-mode 5Gbps controller, meaning it can only negotiate such a high data rate with a device such as a flash drive. When the RK3566 is acting as a device, it only supports 480Mbps transfer rates. The hardware required to switch between these modes would raise the PineNote's price unreasonably. Therefore, the USB-C port will remain at USB 2.0 speeds for Host and Device mode.&lt;br /&gt;
* '''Could the USB-C port output DisplayPort?''' Yes and no. The hardware required to support such a feature would raise the PineNote's price unreasonably. Therefore, DisplayPort output will not be possible through the USB-C port.&lt;br /&gt;
* '''Where is the microSD card slot?''' The case design of the PineNote is fixed, making physical changes like adding a microSD card slot would raise the cost unreasonably.&lt;br /&gt;
* '''How will I install software to the PineNote?''' This is a hardware and software question. If the software on your PineNote is completely broken and cannot boot to a recoverable state, a Hall (magnet) sensor was fitted to the PineTab motherboard as U9009. This sensor is attached to SARADC_VIN0_KEY/RECOVERY on the RK3566. With the device powered off, and screen face down, holding a magnet over U9009 and plugging in a USB-C cable causes the device to boot into [http://opensource.rock-chips.com/wiki_Rockusb &amp;quot;rockusb&amp;quot;] flash mode. With proper flashing software and drivers, it should be possible to load a new operating system using rockusb if the system is soft-bricked. Of course, software vendors will need to be more careful with flashing firmware and providing useful &amp;quot;recovery&amp;quot; options on this device due to this process's relative difficulty to other PINE64 devices.&lt;br /&gt;
&lt;br /&gt;
==== Unresolved ====&lt;br /&gt;
&lt;br /&gt;
The following concerns have been brought up as open, unanswered topics:&lt;br /&gt;
&lt;br /&gt;
* Does [https://en.wikipedia.org/wiki/USB-C#Audio_Adapter_Accessory_Mode_2|USB-C Audio Adapter Accessory Mode] work? It appears that the Headphone output of the audio codec was routed to the USB-C audio+USB switch, but it's unclear whether CC lines are hooked up correctly for detection of such a device. The PineNote hardware team will be testing this functionality soon (as of August 19, 2021). Note that Audio Accessory mode is detectable by reading the I2C registers of the WUSB3801Q. So connecting ASEL to a GPIO would be enough to get this working if it is not working already.&lt;br /&gt;
* Why is the Headphone output of the audio codec routed to the speakers? HPL_OUT is routed from the RK817 PMIC and audio codec to U9010 (the USB-C switch) and U6 (the audio amplifier). SPK_OUT is unused. It seems like SPK_OUT should be routed to U6 and HPL_OUT to U9010.&lt;br /&gt;
* Nitpick: The cold white charging LED bleeds through the gap between the rear case and the device's face. It does not bleed onto the screen, but it is jarring in low-light conditions or when the screen is amber. Could be resolved in software by turning off the charge LED when the screen is on.&lt;br /&gt;
* Is there any way to indicate when the device is in rockusb mode, such as connecting a certain magic pin to the power LED?&lt;br /&gt;
* The modem/4G connector (J6010) has its I2C and UART pins unconnected. Could those be connected to the SoC?&lt;br /&gt;
&lt;br /&gt;
==== USB-C Debug Accesory Mode (DAM)/UART Dongle====&lt;br /&gt;
The USB UART dongle delivered with the PineNote allows you to have access to a serial port without having to open up the device. The factory firmware runs at a baud rate of 1500000bps, 8 data bits 1 stop bit, no parity and no flow control. The USB-C male end should go into the PineNote and the female end can be connected with a standard USB-C cable to your computer.&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
PineNote development documentation is a little lacking. Unless you are relatively plugged in with the chat, it's difficult to know what is going on. There is an effort to amend that that lives here: [[PineNote Documentation]].&lt;br /&gt;
&lt;br /&gt;
== BSP Linux SDK ==&lt;br /&gt;
&lt;br /&gt;
=== BSP Linux SDK ver 4.19 for PineNote and Quart64 model A SBC  ===&lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_BSP%20Linux.tar.gz mirror by mwfc]&lt;br /&gt;
** MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed&lt;br /&gt;
** File Size: 32.67.00GB&lt;br /&gt;
&lt;br /&gt;
== Android SDK ==&lt;br /&gt;
&lt;br /&gt;
=== Android 11 eink SDK for PineNote and Quart64 model A SBC  ===&lt;br /&gt;
* This is the Android SDK build for 10.3&amp;quot; eink panel on Quartz64 model A SBC. &lt;br /&gt;
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct Download from pine64.org]&lt;br /&gt;
** [https://tmp.mwfc.info/pinenote/QUARTZ64-model-A_eink.android11_SDK.tar.gz mirror by mwfc]&lt;br /&gt;
** MD5 (TAR-GZip file): 293a550584298de4fb95ceae18103672&lt;br /&gt;
** File Size: 72.88GB&lt;br /&gt;
** Just the boot blobs (&amp;lt;1MB): [[File:Rk35-blobs.tar.gz]]&lt;br /&gt;
* View [[Android SDK for RK3566]] for more information how to compile an image for the PineNote using this SDK&lt;br /&gt;
&lt;br /&gt;
== Torrent ==&lt;br /&gt;
There is a [https://cdn.discordapp.com/attachments/870707390998282292/907726420204208148/pinenote.torrent torrent] with the files (100GB)&lt;br /&gt;
&lt;br /&gt;
== Hardware troubleshooting guide ==&lt;br /&gt;
At present, nothing is available.&lt;br /&gt;
&lt;br /&gt;
[[Category:PineNote]] [[Category:Rockchip RK3566]]&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development&amp;diff=15290</id>
		<title>PineNote Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development&amp;diff=15290"/>
		<updated>2023-01-10T08:51:54Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: Start working on a table with mainlinging information for kernel modules required by the PineNote (work in progress)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article seeks to provide general development information for the [[PineNote]]. If you are new and down to try a new installation process, the easiest way to get linux is likely to [https://wiki.pine64.org/wiki/PineNote_Development/Installing_Debian install Debian] -- NOTE THAT THIS INSTALLATION PROCESS IS VERY NEW. While many people have been using the kernel that will be installed safely at this point, the instructions for installing Debian via rootfs are very new. Take backups!&lt;br /&gt;
&lt;br /&gt;
The more stable recommended approach is described below:&lt;br /&gt;
&lt;br /&gt;
Start with [https://github.com/DorianRudolph/pinenotes Dorian's guide] which will guide you through getting Arch installed. For instructions on building the latest kernel, see [[PineNote Development/Building Kernel]]. For helpful configurations, see [[PineNote Development/Apps]]. For ways to pitch in, see [[PineNote Development/TODOs]]. To boot Linux by default instead of Android, see [[PineNote Development/Booting Linux]]. [https://www.youtube.com/watch?v=ZCLyJfbzbrU Here is a video] of a user running Manjaro and some apps on their PineNote on 9/10/2022.&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
== Kernel modules / mainlining status ==&lt;br /&gt;
&lt;br /&gt;
WORK IN PROGRESS !&lt;br /&gt;
&lt;br /&gt;
The following table aims to provide a list of kernel modules required for running the PineNote.&lt;br /&gt;
It also aims at listing repositories of work in progress.&lt;br /&gt;
While some overlap with the Quartz64 module list ([[Quartz64_Development#Upstreaming_Status]]) &lt;br /&gt;
is expected, only modules relevant to the PineNote hardware should be listed here.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Function&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;2&amp;quot; | Status&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Component&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:PaleGreen; text-align:center;&amp;quot;|Linux Mainline&lt;br /&gt;
| | &amp;lt;code&amp;gt;cyttsp5&amp;lt;/code&amp;gt;&lt;br /&gt;
| kernel 6.2 merge window ?&lt;br /&gt;
|-&lt;br /&gt;
| Digitizer&lt;br /&gt;
| &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Pen BLE Buttons&lt;br /&gt;
| &amp;lt;code&amp;gt;ws8100-pen&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| EBC Display controller&lt;br /&gt;
| &amp;lt;code&amp;gt;rockchip_ebc&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| EBC PMic&lt;br /&gt;
|&amp;lt;code&amp;gt;tps65185&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LED backlight driver&lt;br /&gt;
| lm3630a&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer&lt;br /&gt;
| &amp;lt;code&amp;gt;st-accel-i2c&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rastergraphics unit RGA2e&lt;br /&gt;
| &amp;lt;code&amp;gt;rga&amp;lt;/code&amp;gt; (v4l2 mem2mem driver)&lt;br /&gt;
|-&lt;br /&gt;
| Mali GPU&lt;br /&gt;
| &amp;lt;code&amp;gt;panfrost&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Wifi/BT&lt;br /&gt;
| ???&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= More Information = &lt;br /&gt;
== High-level developer new to embedded linux? ==&lt;br /&gt;
Here are some resources I have found helpful in learning to develop on embedded linux devices:&lt;br /&gt;
* Great youtube series introducing you to the kernel and lower-level components of Linux: https://www.youtube.com/watch?v=WiZ05pnHZqM&lt;br /&gt;
* https://embetronicx.com/&lt;br /&gt;
* https://bootlin.com/training/&lt;br /&gt;
* https://www.nand2tetris.org&lt;br /&gt;
&lt;br /&gt;
== Notes Written by Some Developers ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/m-weigand/mw_pinenote_misc (Not super legible &amp;quot;notes&amp;quot;, but very helpful repo with patches, videos, etc)&lt;br /&gt;
** specifically see this section for helpful install/configure scripts: https://github.com/m-weigand/mw_pinenote_misc/tree/main/rockchip_ebc/patches#compiling. &lt;br /&gt;
* https://github.com/0cc4m/pinenote-misc&lt;br /&gt;
** patch for enabling gpu: https://github.com/0cc4m/pinenote-misc/blob/main/mesa-archlinux-arm/mesa/rockchip_ebc.patch&lt;br /&gt;
** prebuilt pkg's: https://github.com/0cc4m/pinenote-misc/releases&lt;br /&gt;
* https://pwarren.id.au/pinenote/build_notes.txt&lt;br /&gt;
* https://github.com/DorianRudolph/pinenotes&lt;br /&gt;
* https://github.com/tpwrules/nixos-pinenote&lt;br /&gt;
&lt;br /&gt;
== Alternative to patching of mesa ==&lt;br /&gt;
Mesa needs to be patched to add the driver entry point. The alternative to this, is the renaming of the ebc driver to an existing mesa driver entry point. A good existing name can be &amp;quot;repaper&amp;quot;. To change the driver name, edit in the kernel tree the following files:&amp;lt;br&amp;gt;&lt;br /&gt;
- replace &amp;quot;rockchip-ebc&amp;quot; with &amp;quot;repaper&amp;quot; in the two places in the file: drivers/gpu/drm/rockchip/rockchip_ebc.c &amp;lt;br&amp;gt;&lt;br /&gt;
- preventive, replace &amp;quot;repaper&amp;quot; with &amp;quot;repaper-disabled&amp;quot; in the two places in the file: drivers/gpu/drm/tiny/repaper.c &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building the most recent kernel ==&lt;br /&gt;
See [https://wiki.pine64.org/wiki/PineNote_Development/Building_Kernel here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video of Factory Android OS ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=DWuTGgQHw98 PineNote Developer Edition w/Tech Demo Android OS (Video Only)]&lt;br /&gt;
&lt;br /&gt;
Informal walkthrough of the factory Android installation on the PineNote Developer Edition, recorded by a community member (Apr 2022). This is useful to look back at the original OS after erasing it from your device, or to get some additional detail before your device arrives.&lt;br /&gt;
&lt;br /&gt;
The video also includes a chapter at the end showing [https://www.youtube.com/watch?v=DWuTGgQHw98&amp;amp;t=802s how to enable Android Debug Bridge (`adb`) over USB]. Once enabled, keep the device powered and connect a USB cable directly to the PineNote (i.e. no UART breakout) to a computer running `adb`.&lt;br /&gt;
&lt;br /&gt;
== Emulator for Developing/Testing Pinenote Apps ==&lt;br /&gt;
https://github.com/michaelshiel/picom-epaper&lt;br /&gt;
&lt;br /&gt;
= Flashing Software =&lt;br /&gt;
Currently, the only ways to flash software are from the factory Android installation (UART shell, adb, or fastboot) or by using rkdeveloptool.&lt;br /&gt;
&lt;br /&gt;
== Backup of the content of the internal MMC before you mess anything up ==&lt;br /&gt;
Especially the '''waveform''' partition contains data '''unique''' to your PineNote and is a prime candidate for backup.&lt;br /&gt;
&lt;br /&gt;
But other partitions like uboot (need for any operation of the device) or the un-partitioned space at the beginning containing the GPT partition table (and presumably the VCOM setting for the e-ink display and maybe device mac addresses) contains data you may wish to backup.&lt;br /&gt;
&lt;br /&gt;
Depending of your personal level of data hoarder you may want to backup more than this or even just everything (the large userdata partition is supposed to be able to be repopulated as empty space by Android)&lt;br /&gt;
&lt;br /&gt;
In any case it is easier to restore/extract data from a backup than not having one if you need one.&lt;br /&gt;
&lt;br /&gt;
=== Manually using rkdeveloptool ===&lt;br /&gt;
Dorian has some nice [https://github.com/DorianRudolph/pinenotes notes regarding the PineNote]&lt;br /&gt;
&lt;br /&gt;
Don't forget to install a patched uboot for reading beyond 32MB and to respect the 2GB limit/bug of the current rkdeveloptool as per his notes&lt;br /&gt;
&lt;br /&gt;
=== Automated backup using a script and rkdeveloptool ===&lt;br /&gt;
[https://github.com/talpadk/pinenote-backup pinenote-backup] is a python script for detecting the partitions and automating the backup of partitions or the whole disk&lt;br /&gt;
&lt;br /&gt;
I also requires a patched u-boot but automatically handles the 2GB limit by splitting up larger reads into smaller ones&lt;br /&gt;
&lt;br /&gt;
=== Using the factory Android installation ===&lt;br /&gt;
For any one knowing how and with which caveats: Write ME&lt;br /&gt;
&lt;br /&gt;
=== Using a user installed Linux ===&lt;br /&gt;
A Linux installed to the cache partition should be able to easily backup everything over WiFi or to a USB stick/disk using dd&lt;br /&gt;
&lt;br /&gt;
However the user would need to backup the cache partition themself (if they want that).&lt;br /&gt;
&lt;br /&gt;
And more importantly they would only be getting the backup ''after'' they started playing with the content of the MMC.&lt;br /&gt;
&lt;br /&gt;
== Side-by-side setup ==&lt;br /&gt;
&lt;br /&gt;
It is possible to set up a partition for mainline development without disturbing the factory Android installation. This allows updating a mainline kernel, DTB, and initramfs over Wi-Fi until WiFi or USB OTG is working in mainline Linux.&lt;br /&gt;
&lt;br /&gt;
=== Without Repartitioning ===&lt;br /&gt;
&lt;br /&gt;
The recommended partition for this is &amp;lt;tt&amp;gt;mmcblk0p11&amp;lt;/tt&amp;gt; aka &amp;lt;tt&amp;gt;/cache&amp;lt;/tt&amp;gt;. It is large and already formatted as &amp;lt;tt&amp;gt;ext4&amp;lt;/tt&amp;gt;, so it is readable from U-Boot. Here are some general steps:&lt;br /&gt;
&lt;br /&gt;
# From the UART or adb shell, set up your chroot in &amp;lt;tt&amp;gt;/cache&amp;lt;/tt&amp;gt;. I used the Alpine Linux rootfs tarball.&lt;br /&gt;
# Copy in your kernel and DTB, using for example &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;wget&amp;lt;/tt&amp;gt; inside the chroot.&lt;br /&gt;
# Finally, create and boot an &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; as described below.&lt;br /&gt;
&lt;br /&gt;
=== With Repartitioning ===&lt;br /&gt;
&lt;br /&gt;
It is possible to shrink the &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt; partition, and create a new partition at the end for use with mainline Linux. This provides much more space than &amp;lt;tt&amp;gt;cache&amp;lt;/tt&amp;gt;. However, because &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt; is formatted with &amp;lt;tt&amp;gt;f2fs&amp;lt;/tt&amp;gt;, and that filesystem cannot be shrunk, resizing the partition requires wiping &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# Back up any necessary files from userdata&lt;br /&gt;
# Boot to a mainline kernel from &amp;lt;tt&amp;gt;mmcblk0p11&amp;lt;/tt&amp;gt;, either using that partition as rootfs (see above), or using an initramfs with repartitioning tools&lt;br /&gt;
# Modify the partition table with your favorite tool, e.g. &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gdisk&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;parted&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Reboot into &amp;lt;tt&amp;gt;fastboot&amp;lt;/tt&amp;gt; and wipe &amp;lt;tt&amp;gt;userdata&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Reboot into Android, where you can now chroot in and install your favorite distribution to the new partition.&lt;br /&gt;
&lt;br /&gt;
== Using rkdeveloptool ==&lt;br /&gt;
&lt;br /&gt;
rkdeveloptool is a command line utility built on libusb.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and Building rkdeveloptool ===&lt;br /&gt;
&lt;br /&gt;
PINE64 develops [https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool its own updated fork of rkdeveloptool on GitLab].&lt;br /&gt;
&lt;br /&gt;
You will need to have libusb 1.0, its development headers and scdoc installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool.git&lt;br /&gt;
cd rkdeveloptool&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sets up all the build files. You can then compile with &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; inside the build directory.&lt;br /&gt;
&lt;br /&gt;
After you're done, you'll likely also need to install the udev rules, or else your user won't have permission to access the USB devices:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp 99-rk-rockusb.rules /etc/udev/rules.d/&lt;br /&gt;
sudo udevadm control --reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copying the udev rules is also performed automatically when you &amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Building Downstream U-Boot ===&lt;br /&gt;
&lt;br /&gt;
While in maskrom mode, we need to have a u-boot to download onto the device for any of the other commands to work. To build you'll also need to install device-tree-compiler.&lt;br /&gt;
&lt;br /&gt;
You also need to install Python and pyelftools.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Note that rkbin is a &amp;amp;gt;5GB download!&amp;lt;/b&amp;gt; This will take some time to clone and process the deltas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b quartz64 https://gitlab.com/pgwipeout/u-boot-rockchip.git&lt;br /&gt;
git clone -b rkbin https://github.com/JeffyCN/rockchip_mirrors.git rkbin&lt;br /&gt;
cd u-boot-rockchip&lt;br /&gt;
# If using Arch Linux, export CROSS_COMPILE=aarch64-linux-gnu-&lt;br /&gt;
export CROSS_COMPILE=aarch64-none-linux-gnu-&lt;br /&gt;
make rk3566-quartz64_defconfig&lt;br /&gt;
./make.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
In the version I cloned (current as of 2022-01-02), I had to make a change to one line to get a clean compilation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/lib/avb/libavb/avb_slot_verify.c b/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
index 123701fc3b..64a1ce6450 100644&lt;br /&gt;
--- a/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
+++ b/lib/avb/libavb/avb_slot_verify.c&lt;br /&gt;
@@ -296,7 +296,7 @@ static AvbSlotVerifyResult load_and_verify_hash_partition(&lt;br /&gt;
   bool image_preloaded = false;&lt;br /&gt;
   uint8_t* digest;&lt;br /&gt;
   size_t digest_len;&lt;br /&gt;
-  const char* found;&lt;br /&gt;
+  const char* found = NULL;&lt;br /&gt;
   uint64_t image_size;&lt;br /&gt;
   size_t expected_digest_len = 0;&lt;br /&gt;
   uint8_t expected_digest_buf[AVB_SHA512_DIGEST_SIZE];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For systems where the global python executable points to python2, compilation fails with an error related to pyelftools not being installed (even if it is). To fix this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/make.sh b/make.sh&lt;br /&gt;
index 2bba05b4e4..cfe5b0afd5 100755&lt;br /&gt;
--- a/make.sh&lt;br /&gt;
+++ b/make.sh&lt;br /&gt;
@@ -758,7 +758,7 @@ function pack_fit_image()&lt;br /&gt;
        fi&lt;br /&gt;
 &lt;br /&gt;
        if [ &amp;quot;${ARM64_TRUSTZONE}&amp;quot; == &amp;quot;y&amp;quot; ]; then&lt;br /&gt;
-               if ! python -c &amp;quot;import elftools&amp;quot; ; then&lt;br /&gt;
+               if ! python3 -c &amp;quot;import elftools&amp;quot; ; then&lt;br /&gt;
                        echo &amp;quot;ERROR: No python 'pyelftools', please: pip install pyelftools&amp;quot;&lt;br /&gt;
                        exit 1&lt;br /&gt;
                fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entering Maskrom/Rockusb Mode ===&lt;br /&gt;
&lt;br /&gt;
There are three ways to get into Maskrom/Rockusb mode:&lt;br /&gt;
&lt;br /&gt;
====  The easy way ====&lt;br /&gt;
&lt;br /&gt;
# Flip the device around so that the display faces down&lt;br /&gt;
# Lay the pen on the right side, with its tip pointing towards the speaker grill, and its magnet pointing towards the upper right corner of the label on the back (or place the magnetic cap from the pen on the spot marked on the back).&lt;br /&gt;
# Turn the device on and wait for it to show up in &amp;lt;code&amp;gt;lsusb&amp;lt;/code&amp;gt;. It should now be in Loader mode, according to &amp;lt;code&amp;gt;rkdeveloptool list-devices&amp;lt;/code&amp;gt; (note that &amp;quot;Loader&amp;quot; here indicates U-Boot's Rockusb; separately, booting with an erased eMMC displays &amp;quot;Maskrom&amp;quot; [not &amp;quot;Loader&amp;quot;] from the RK3566).&lt;br /&gt;
# Unplug the device and plug it back in. It should now be in Rockusb mode.&lt;br /&gt;
&lt;br /&gt;
This can be a bit fiddly to get right, and may need a few tries.&lt;br /&gt;
&lt;br /&gt;
==== The u-boot way ====&lt;br /&gt;
# Interrupt the u-boot startup using ctrl-c (while attached using an UART dongle)&lt;br /&gt;
# While in u-boot use the command &amp;quot;rockusb 0 mmc 0&amp;quot; to start rockusb mode.&lt;br /&gt;
&lt;br /&gt;
One benefit from this is, that if you have an UART dongle that allows to simultaneous having an UART and USB connection, there is no need to plug and unplug cables and flipping the PineNote around and placing magnets.  &lt;br /&gt;
&lt;br /&gt;
This is especially helpful when changing back and forth between u-boot and rockusb, for instance when trying to develop u-boot.&lt;br /&gt;
&lt;br /&gt;
==== Shorting test points ====&lt;br /&gt;
&lt;br /&gt;
If the bootloader is broken/corrupted, you cannot get to Maskrom without opening up the device (it can be opened using spudger and a bit of patience).&lt;br /&gt;
&lt;br /&gt;
Once inside, short TP1301 (GND) and TP1302 (eMMC_D0/FLASH_D0) with a small tweezers, this is how it looks on board view (credit to Caleb):&lt;br /&gt;
&lt;br /&gt;
[[File:PineNote_Maskrom_TP.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Then plug the device to the computer and if you see the device with VID=2207/PID=350a then it should be in Maskrom mode, you can verify by typing &amp;lt;code&amp;gt;rkdeveloptool list-devices&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Jan 07 15:04:13 melttower kernel: usb 1-14: New USB device found, idVendor=2207, idProduct=350a, bcdDevice= 1.00&lt;br /&gt;
Jan 07 15:04:13 melttower kernel: usb 1-14: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
&lt;br /&gt;
$ rkdeveloptool list-devices&lt;br /&gt;
DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=10e    Maskrom&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If nothing shows up, you can try to hold down the power button for 5 seconds and then try again.&lt;br /&gt;
&lt;br /&gt;
=== Running rkdeveloptool ===&lt;br /&gt;
&lt;br /&gt;
First, you'll want to make sure the device you've connected is in maskrom mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./rkdeveloptool list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should output something like &amp;lt;code&amp;gt;DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=202    Maskrom&amp;lt;/code&amp;gt;. If it doesn't, see [[PineNote Development#Entering Maskrom Mode]].&lt;br /&gt;
&lt;br /&gt;
You can now download u-boot onto it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./rkdeveloptool boot ../u-boot-rockchip/rk356x_spl_loader_v1.08.111.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should output &amp;lt;code&amp;gt;Downloading bootloader succeeded.&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
We can now verify that this worked using e.g. the &amp;quot;read flash info&amp;quot; command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./rkdeveloptool read-flash-info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''TODO:''' finish this section&lt;br /&gt;
&lt;br /&gt;
=== Creating a mainline boot image ===&lt;br /&gt;
&lt;br /&gt;
You can create a filesystem image that replaces the Android boot or recovery partition by doing roughly the following:&lt;br /&gt;
&lt;br /&gt;
# Erase boot and dtbo with rkdeveloptool or fastboot (back them up first!!!)&lt;br /&gt;
# Create an ext2 partition image and mount it (fallocate, mkfs.ext2)&lt;br /&gt;
# Build your mainline kernel&lt;br /&gt;
# Copy the kernel, dtb and an initramfs to the root of the mounted image (use any old postmarketOS initramfs)&lt;br /&gt;
# Create a file in the root of the mounted image called &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; as described below&lt;br /&gt;
# Unmount the image and then use rkdeveloptool to flash it to the &amp;quot;recovery&amp;quot; partition on the pinenote (it's about the right size until we get around to replacing the partition layout).&lt;br /&gt;
&lt;br /&gt;
== Using fastboot ==&lt;br /&gt;
&lt;br /&gt;
Follow the steps for &amp;quot;Creating a mainline boot.img&amp;quot;, but instead of flashing it with rkdeveloptool, use fastboot. You can enter fastboot in either of two ways:&lt;br /&gt;
&lt;br /&gt;
# Use &amp;quot;reboot bootloader&amp;quot; from adb or a UART console.&lt;br /&gt;
# Get a U-Boot prompt and run &amp;lt;code&amp;gt;fastboot usb 0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Mainline development =&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Some work happening here: https://gitlab.com/calebccff/linux, the idea is to import the parts of the eink/ebc drivers which are open source and use the downstream u-boot framebuffer driver as a reference to create a basic framebuffer driver.&lt;br /&gt;
&lt;br /&gt;
Currently mainline struggles to boot due to weird issues while probing fixed regulators (?). It also fails to detect eMMC.&lt;br /&gt;
&lt;br /&gt;
Further work is being done here: https://github.com/smaeul/linux/commits/rk356x-ebc-dev. This has a complete device tree, with working eMMC. Pen input also works out of the box. Wi-Fi and BT work with firmware copied from the factory Android image.&lt;br /&gt;
&lt;br /&gt;
== How to boot mainline ==&lt;br /&gt;
&lt;br /&gt;
UART is currently REQUIRED for this to work! We depend on u-boot falling back to console. Once we have a prebuilt u-boot which will use extlinux by default, UART won't be needed anymore.&lt;br /&gt;
&lt;br /&gt;
You can compile a u-boot that uses extlinux by default by following the instructions [https://github.com/JoshuaMulliken/pinenote_uboot/blob/aa9ecbd3d3e716f163f5a900824630f24e9f04ba/README.md#changing-default-boot-order here].&lt;br /&gt;
&lt;br /&gt;
=== Getting to a U-Boot prompt ===&lt;br /&gt;
&lt;br /&gt;
You can get to a U-Boot prompt by:&lt;br /&gt;
&lt;br /&gt;
# Holding Ctrl-C while the display panel initializes.&lt;br /&gt;
# Wiping the &amp;quot;boot&amp;quot; partition.&lt;br /&gt;
&lt;br /&gt;
=== Using sysboot ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; should have the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
timeout 10&lt;br /&gt;
default MAINLINE&lt;br /&gt;
menu title boot prev kernel&lt;br /&gt;
&lt;br /&gt;
label MAINLINE&lt;br /&gt;
  kernel /vmlinuz&lt;br /&gt;
  fdt /rk3566-pinenote.dtb&lt;br /&gt;
  initrd /initramfs&lt;br /&gt;
  append earlycon console=tty0 console=ttyS2,1500000n8 fw_devlink=off PMOS_NO_OUTPUT_REDIRECT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the u-boot console, run the following command to boot your mainline kernel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysboot ${devtype} ${devnum}:9 any ${scriptaddr} extlinux.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Booting with individual commands ===&lt;br /&gt;
&lt;br /&gt;
Booting with individual commands can be useful when you need to temporarily add some kernel command line arguments. Use these or similar commands at the U-Boot shell:&lt;br /&gt;
&lt;br /&gt;
 load mmc 0:b ${kernel_addr_r} boot/Image&lt;br /&gt;
 load mmc 0:b ${fdt_addr_r} boot/rk3566-pinenote.dtb&lt;br /&gt;
 setenv bootargs ignore_loglevel root=/dev/mmcblk0p11 rootwait init=/bin/bash&lt;br /&gt;
 booti ${kernel_addr_r} - ${fdt_addr_r}&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware for WiFi &amp;amp; Bluetooth and Waveform data ===&lt;br /&gt;
&lt;br /&gt;
==== Using Maximilian's Debian image  ====&lt;br /&gt;
If the Android partition (super) and waveform partition (waveform) is left intact the image extracts the WiFi, BT driver and waveform from the partitions on first run.&lt;br /&gt;
&lt;br /&gt;
For instance if you repartitions the userdata partition and installs the image there.&lt;br /&gt;
&lt;br /&gt;
==== Getting it from the Android install manually ====&lt;br /&gt;
Copy WiFi/BT firmware from Android:&lt;br /&gt;
 mkdir -p /cache/lib/firmware/brcm&lt;br /&gt;
 cp /vendor/etc/firmware/fw_bcm43455c0_ag_cy.bin /cache/lib/firmware/brcm/brcmfmac43455-sdio.bin&lt;br /&gt;
 cp /vendor/etc/firmware/nvram_ap6255_cy.txt /cache/lib/firmware/brcm/brcmfmac43455-sdio.txt&lt;br /&gt;
 cp /cache/lib/firmware/BCM4345C0.hcd /cache/lib/firmware/brcm/BCM4345C0.hcd&lt;br /&gt;
&lt;br /&gt;
Copy waveform partition (via previously dumped file):&lt;br /&gt;
 adb root&lt;br /&gt;
 adb push waveform.img /cache/lib/firmware/waveform.bin&lt;br /&gt;
&lt;br /&gt;
Or via dd within Linux:&lt;br /&gt;
 dd if=/dev/mmcblk0p3 of=/lib/firmware/waveform.bin bs=1k count=2048&lt;br /&gt;
&lt;br /&gt;
==== Getting the Wifi and Bluetooth driver blobs from &amp;quot;other&amp;quot; sources ====&lt;br /&gt;
===== WiFi =====&lt;br /&gt;
The WiFi firmware .bin blob can be obtained by installing the Debian package firmware-brcm80211 (in the non-free section)&lt;br /&gt;
&lt;br /&gt;
The WiFi brcmfmac43455-sdio.txt file can according to Eugen be sourced from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/brcm/brcmfmac43455-sdio.AW-CM256SM.txt needs a renaming when copying it to /lib/firmware/brcm/brcmfmac43455-sdio.txt)&lt;br /&gt;
&lt;br /&gt;
''The content of the upstream .txt is different than the Android configuration, but is supposed to work.''&lt;br /&gt;
&lt;br /&gt;
As you don't have WiFi yet you need to get the firmware-brcm80211*.deb and brcmfmac43455-sdio.txt file on the PineNote by other means, for instance using an USB stick&lt;br /&gt;
&lt;br /&gt;
===== Bluetooth =====&lt;br /&gt;
&lt;br /&gt;
Once you have WiFi working you can get BCM4345C0.hcd by installing the bluez-firmware &lt;br /&gt;
  sudo apt install bluez-firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuring the E-ink refresh mode ===&lt;br /&gt;
https://github.com/m-weigand/mw_pinenote_misc/tree/main/rockchip_ebc/patches contains information on how/where to write in /sys to alter the refresh mode&lt;br /&gt;
&lt;br /&gt;
https://github.com/m-weigand/mw_pinenote_misc/tree/main/gnome_extension contains the gnome extension used in Maximilian image &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Touchscreen and Pen In X.org ===&lt;br /&gt;
&lt;br /&gt;
By default the pen config is flipped 180° (which makes it unusable) and the touchscreen doesn't work. Placing the following config in &amp;lt;code&amp;gt;/etc/X11/xorg.conf.d/50-touchscreen.conf&amp;lt;/code&amp;gt; will fix both problems:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;evdev touchscreen&amp;quot;&lt;br /&gt;
    MatchProduct &amp;quot;tt21000&amp;quot;&lt;br /&gt;
    MatchIsTouchscreen &amp;quot;on&amp;quot;&lt;br /&gt;
    Driver        &amp;quot;evdev&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
    Identifier    &amp;quot;RotateTouch&amp;quot;&lt;br /&gt;
    MatchProduct    &amp;quot;w9013&amp;quot;&lt;br /&gt;
    Option    &amp;quot;TransformationMatrix&amp;quot; &amp;quot;-1 0 1 0 -1 1 0 0 1&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineNote_Development/TODOs&amp;diff=14587</id>
		<title>PineNote Development/TODOs</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineNote_Development/TODOs&amp;diff=14587"/>
		<updated>2022-10-31T07:07:41Z</updated>

		<summary type="html">&lt;p&gt;Mweigand: add link back to main pinenote page and add empty &amp;quot;kernel todo&amp;quot; section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Under construction}}&lt;br /&gt;
&lt;br /&gt;
[[PineNote|Back to PineNote main page]]&lt;br /&gt;
&lt;br /&gt;
TODOs to get the pinenote to a user ready state. If you know the answer to one of these or want something to do, please make a page with this info and link it here :)&lt;br /&gt;
&lt;br /&gt;
= Kernel/driver TODOs=&lt;br /&gt;
&lt;br /&gt;
= Userspace TODOs=&lt;br /&gt;
== Themes ==&lt;br /&gt;
A lot of getting the PineNote to work nicely will be theming things appropriately. Please list themes for various components here:&lt;br /&gt;
=== GNOME ===&lt;br /&gt;
Untested as far as I know: https://github.com/fujimo-t/gnome-shell-theme-e-ink&lt;br /&gt;
=== GTK ===&lt;br /&gt;
Todo&lt;br /&gt;
&lt;br /&gt;
== GNOME Configurations ==&lt;br /&gt;
See [https://wiki.pine64.org/wiki/PineNote_Development/Apps#Gnome here].&lt;br /&gt;
== Sway Configurations ==&lt;br /&gt;
See [https://wiki.pine64.org/wiki/PineNote_Development/Apps#Sway here].&lt;br /&gt;
&lt;br /&gt;
== Open questions that would be helpful during development ==&lt;br /&gt;
# How do we pin packages so Mesa isn't updated when we update using our package manger?&lt;br /&gt;
&lt;br /&gt;
= Documentation TODOs =&lt;br /&gt;
{{info|These are things we know how to do, but they just haven't been documented in the wiki yet. If you know how to do one of these things, please make a page for it. If you aren't sure where to put it or just don't feel like doing it, please just message @aarondabomb on matrix and I'll be happy to document it.}}&lt;br /&gt;
&lt;br /&gt;
=== Pin Mesa Packages so they don't update when we upgrade other packages === &lt;br /&gt;
Should be super simple, I just don't know how. If you know, it would be helpful for you to add that information near step 5 [https://wiki.pine64.org/wiki/PineNote_Development/Building_Kernel#Steps_to_build here].&lt;br /&gt;
=== Control the backlight? ===&lt;br /&gt;
=== Building alacritty correctly ===&lt;br /&gt;
=== Force a screen refresh? === &lt;br /&gt;
Maximilian mentioned how to do this, but I don't know enough to know what it means XD see conversation here: https://matrix.to/#/!QtTzSRYMuozjbOQkzJ:matrix.org/$tfumBpnP2UPouNpaeFrggR40ZkrD_pHAtJdQmQvzL-o?via=matrix.org&amp;amp;via=kde.org&amp;amp;via=tchncs.de&lt;/div&gt;</summary>
		<author><name>Mweigand</name></author>
	</entry>
</feed>