07-28-2021, 09:08 AM
(This post was last modified: 07-28-2021, 06:44 PM by dsimic.
Edit Reason: Clarified a bit; Formatting improvements; Added Manjaro package version
)
Hello,
I'm feeling happy, excited, and a bit privileged to announce the availability of the new vendor-provided touchpad firmware that fixes the issues we've all been experiencing with the Pinebook Pro touchpad. One of the biggest issues was the initial lag upon finger movement, about which you can read more in this forum thread; it has been confirmed multiple times to be a touchpad issue and not a Linux issue.
Based on the testing already performed by a few community members, myself included, this firmware update makes the touchpad very responsive and there are no traces of the dreaded initial delay. I've also performed tests using the evtest utility, to eliminate any subjectivity, and the measured latency stays around or below 10 ms... The numbers don't lie. You can read more about the evtest results with the old firmware in the above-linked forum thread.
I've prepared an updated version of the keyboard and touchpad firmware update utility, which is available on GitHub. Beside the updated touchpad firmware, my fork of the firmware updater brings other improvements, including improved feedback/status messages, improved handling of command-line arguments, added ability to cancel each update step, and improved documentation.
To update the firmware, just follow the instructions that are available on the GitHub page. If you're a Manjaro ARM user, an updated package containing the new firmware updater utility will be available shortly (package pinebook-pro-keyboard-updater, version 0.0.3-1). However, please note that updating the firmware carries a small risk of permanently disabling the trackpad and keyboard, effectively bricking them. Proceed at your own risk.
We already know that some Pinebook Pros came with the "lite" version of the keyboard controller IC, SH61F83, which is limited to a total of eight writes, according to the datasheet. However, Pine64 has already contacted the keyboard manufacturer and they've assured Pine64 that SH61F83 is actually the same IC as the "full-fat" version, SH68F83, and that it supports many write cycles. However, if your Pinebook Pro came with a SH61F83, I'd recommed that you wait until I verify those claims; my first-batch ISO Pinebook Pro came with the "lite" IC and I'll test it out by performing about 50 to 100 write cycles.
In addition to the updated firmware updater utility, I'm working on getting the firmware update available through fwupd, which is the industry standard for distributing firmware updates in Linux. In the end, updating the keyboard and touchpad firmware through fwupd will be as easy as running a few commands, as described here, all that with no shutting down and powering up of your Pinebook Pro! The fwupd process will leverage the ability to restart the keyboard controller IC by suspending the Pinebook Pro into the s2idle state and resuming it automatically a few seconds later. Unfortunately, s2idle suspend currently doesn't work on the Pinebook Pro, at least not if an NVMe SSD is installed, so the suspend issue needs to be resolved first.
If you decide not to wait for fwupd to become available and instead you take the "old" way to update the touchpad firmware, please cast your vote in the posted poll, so we end up with some kind of a summary feedback. Also, please feel free to ask questions or provide your detailed feedback. Of course, I'll provide further updates as replies to this thread.
I'm feeling happy, excited, and a bit privileged to announce the availability of the new vendor-provided touchpad firmware that fixes the issues we've all been experiencing with the Pinebook Pro touchpad. One of the biggest issues was the initial lag upon finger movement, about which you can read more in this forum thread; it has been confirmed multiple times to be a touchpad issue and not a Linux issue.
Based on the testing already performed by a few community members, myself included, this firmware update makes the touchpad very responsive and there are no traces of the dreaded initial delay. I've also performed tests using the evtest utility, to eliminate any subjectivity, and the measured latency stays around or below 10 ms... The numbers don't lie. You can read more about the evtest results with the old firmware in the above-linked forum thread.
I've prepared an updated version of the keyboard and touchpad firmware update utility, which is available on GitHub. Beside the updated touchpad firmware, my fork of the firmware updater brings other improvements, including improved feedback/status messages, improved handling of command-line arguments, added ability to cancel each update step, and improved documentation.
To update the firmware, just follow the instructions that are available on the GitHub page. If you're a Manjaro ARM user, an updated package containing the new firmware updater utility will be available shortly (package pinebook-pro-keyboard-updater, version 0.0.3-1). However, please note that updating the firmware carries a small risk of permanently disabling the trackpad and keyboard, effectively bricking them. Proceed at your own risk.
We already know that some Pinebook Pros came with the "lite" version of the keyboard controller IC, SH61F83, which is limited to a total of eight writes, according to the datasheet. However, Pine64 has already contacted the keyboard manufacturer and they've assured Pine64 that SH61F83 is actually the same IC as the "full-fat" version, SH68F83, and that it supports many write cycles. However, if your Pinebook Pro came with a SH61F83, I'd recommed that you wait until I verify those claims; my first-batch ISO Pinebook Pro came with the "lite" IC and I'll test it out by performing about 50 to 100 write cycles.
In addition to the updated firmware updater utility, I'm working on getting the firmware update available through fwupd, which is the industry standard for distributing firmware updates in Linux. In the end, updating the keyboard and touchpad firmware through fwupd will be as easy as running a few commands, as described here, all that with no shutting down and powering up of your Pinebook Pro! The fwupd process will leverage the ability to restart the keyboard controller IC by suspending the Pinebook Pro into the s2idle state and resuming it automatically a few seconds later. Unfortunately, s2idle suspend currently doesn't work on the Pinebook Pro, at least not if an NVMe SSD is installed, so the suspend issue needs to be resolved first.
If you decide not to wait for fwupd to become available and instead you take the "old" way to update the touchpad firmware, please cast your vote in the posted poll, so we end up with some kind of a summary feedback. Also, please feel free to ask questions or provide your detailed feedback. Of course, I'll provide further updates as replies to this thread.