Trackpad firmware update
#1
[edit 03/04/2021] These instruction's do not apply to Pinebook Pros shipping in 2021. The new and improved keyboard/ trackpad firmware is already flashed on the devices. This thread is now archived and locked.


[edit 10/01/2020] FW flahing Instructions have been edited for both ISO and ANSI users now


Credit goes to @tllim , @xalius , @ayufan and @anarsoul 

N.B. This trackpad/ keyboard firmware update applies to all Pinebook Pros produced in 2019

Before you start:
Your Pinebook Pro should be either fully charged or, preferably, running of mains. This utility will be writing chips on the keyboard and trackpad, so a loss of power during any stage of the update can result in irrecoverable damage to your trackpad or keyboard.

The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies.

Please report any issues you encounter in this thread.

What you'll need:
  • Your Pinebook Pro fully charged / running of mains power
  • Connection to WiFi
  • An external USB keyboard/ access to the Pinebebook Pro via ssh 

What you need to do:

Please follow @ayufan's instructions exactly

[edit 14/01/2020] If you encounter issues please try this.
[url=https://forum.pine64.org/showthread.php?tid=8407&pid=56570#pid56570][/url]
Instruction Brief for BOTH models (read original instructions for further details):

ISO version
Code:
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater
cd pinebook-pro-keyboard-updater
sudo apt-get install build-essential libusb-1.0-0-dev xxd
make

First Step:

Code:
sudo ./updater step-1 iso
sudo reboot

Second Step:
Code:
cd pinebook-pro-keyboard-updater
sudo ./updater step-2 iso
sudo reboot
------------------------------------------------------------------------

ANSI version
Code:
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater
cd pinebook-pro-keyboard-updater
sudo apt-get install build-essential libusb-1.0-0-dev xxd
make

First Step:
Code:
sudo ./updater step-1 ansi
sudo reboot

Second Step:
Code:
cd pinebook-pro-keyboard-updater
sudo ./updater step-2 ansi
sudo reboot
You can find me on IRC, Discord and Twitter


#2
Just ran the updater. Worked well. Trackpad is MUCH better now. Is actually usable. I just followed the Ayufan's instructions exactly and had no issues.

A GREAT BIG thanks to all involved ( @tllim , @xalius , @ayufan and @anarsoul )
#3
Hi,

thanks a lot for the firmware update! Missed keyboard keystrokes and bad tracking from the touchpad where major pain points for me. 

Would it be possible to open source keyboard and touchpad firmware? I'd love to see this device become even more open  Smile
Manjaro ARM

Kernel dev
Buy me a coffee
#4
Worked great for me too.  Thank you all very much.

Matthew
#5
Photo 
Code:
Running STEP-2...
[*] Flashing touchpad firmware...
[*] Opening in touchpad mode
>>> Trying to open VID:258a PID:001f...
>>> Kernel Driver Active
>>> Writing offset:0 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:1024 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:2048 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:3072 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:4096 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:5120 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:6144 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:7168 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:8192 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:9216 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:10240 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:11264 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:12288 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:13312 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:14336 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:15360 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:16384 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:17408 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:18432 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:19456 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:20480 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:21504 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:22528 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:23552 length:1024...
>>> Verifying '1k-data'...
[*] Verifying 'end-program'...
[*] Verifying 'checksum'...
[*] Verifying 'program'...
[*] Finished succesfully!
>>> release interface
[*] Flashing keyboard firmware...
>>> Fix hex file
[*] Opening in user mode...
>>> Trying to open VID:258a PID:001e...
>>> Device not found
>>> Trying to open VID:258a PID:001f...
[*] Sending command to switch to boot mode...
[*] Command send
>>> release interface
[*] Opening in boot mode
>>> Trying to open VID:0603 PID:1020...
>>> Device not found
>>> Trying to open VID:0603 PID:1020...
>>> Device not found
>>> Trying to open VID:0603 PID:1020...
>>> Device not found
>>> Failed to open in boot mode
[*]
 
This doesn't look OK. And touchpad doesn't work.
Tried flashin second time, same result.
Anything I can  try to solve this?
#6
(11-22-2019, 12:11 PM)MatejSpindler Wrote:
Code:
Running STEP-2...
[*] Flashing touchpad firmware...
[*] Opening in touchpad mode
>>> Trying to open VID:258a PID:001f...
>>> Kernel Driver Active
>>> Writing offset:0 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:1024 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:2048 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:3072 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:4096 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:5120 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:6144 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:7168 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:8192 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:9216 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:10240 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:11264 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:12288 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:13312 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:14336 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:15360 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:16384 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:17408 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:18432 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:19456 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:20480 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:21504 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:22528 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:23552 length:1024...
>>> Verifying '1k-data'...
[*] Verifying 'end-program'...
[*] Verifying 'checksum'...
[*] Verifying 'program'...
[*] Finished succesfully!
>>> release interface
[*] Flashing keyboard firmware...
>>> Fix hex file
[*] Opening in user mode...
>>> Trying to open VID:258a PID:001e...
>>> Device not found
>>> Trying to open VID:258a PID:001f...
[*] Sending command to switch to boot mode...
[*] Command send
>>> release interface
[*] Opening in boot mode
>>> Trying to open VID:0603 PID:1020...
>>> Device not found
>>> Trying to open VID:0603 PID:1020...
>>> Device not found
>>> Trying to open VID:0603 PID:1020...
>>> Device not found
>>> Failed to open in boot mode
[*]
 
This doesn't look OK. And touchpad doesn't work.
Tried flashin second time, same result.
Anything I can  try to solve this?
[*]

Had that happen to me, too. It seems the touchpad does not enter boot mode reliably. Just rebooting and retrying fixed it for me.
Manjaro ARM

Kernel dev
Buy me a coffee
#7
(11-22-2019, 12:15 PM)tsys Wrote:
(11-22-2019, 12:11 PM)MatejSpindler Wrote:
Code:
Running STEP-2...
[*] Flashing touchpad firmware...
[*] Opening in touchpad mode
>>> Trying to open VID:258a PID:001f...
>>> Kernel Driver Active
>>> Writing offset:0 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:1024 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:2048 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:3072 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:4096 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:5120 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:6144 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:7168 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:8192 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:9216 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:10240 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:11264 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:12288 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:13312 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:14336 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:15360 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:16384 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:17408 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:18432 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:19456 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:20480 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:21504 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:22528 length:1024...
>>> Verifying '1k-data'...
>>> Writing offset:23552 length:1024...
>>> Verifying '1k-data'...
[*] Verifying 'end-program'...
[*] Verifying 'checksum'...
[*] Verifying 'program'...
[*] Finished succesfully!
>>> release interface
[*] Flashing keyboard firmware...
>>> Fix hex file
[*] Opening in user mode...
>>> Trying to open VID:258a PID:001e...
>>> Device not found
>>> Trying to open VID:258a PID:001f...
[*] Sending command to switch to boot mode...
[*] Command send
>>> release interface
[*] Opening in boot mode
>>> Trying to open VID:0603 PID:1020...
>>> Device not found
>>> Trying to open VID:0603 PID:1020...
>>> Device not found
>>> Trying to open VID:0603 PID:1020...
>>> Device not found
>>> Failed to open in boot mode
[*]
 
This doesn't look OK. And touchpad doesn't work.
Tried flashin second time, same result.
Anything I can  try to solve this?
[*]

Had that happen to me, too. It seems the touchpad does not enter boot mode reliably. Just rebooting and retrying fixed it for me.
[*]
 
Just step-2 or everything from the start ?
#8
(11-22-2019, 12:21 PM)MatejSpindler Wrote:  Just step-2 or everything from the start ?

While the manual states that you should always restart from step-1 I did only step-2 again after rebooting. It worked for me, but no gurantees. I believe the update steps are somewhat independent once step-1 has completed but that is just an intuitive assumption I got from the log output.
Manjaro ARM

Kernel dev
Buy me a coffee
#9
Updating worked like a champ. A quick sloppy typing session in leafpad and it is a vast improvement, love it! Thank you.
#10
Updated without a problem. Works much better!
However, when I am using the touchpad and I want to left click and I touch the touchpad, my mouse jumps around (also present previously). In general, much better and way more accurate. No problems with the upgrade as well.


Possibly Related Threads…
Thread Author Replies Views Last Post
  Locked out after update Shylocked 5 509 09-13-2024, 07:40 AM
Last Post: tophneal
  Brand new Pinebook Pro doesn't boot after Manjaro update johnboiles 8 3,725 12-15-2023, 02:11 PM
Last Post: wdt
  After update, multiple problems, pinebook pro. jd50i 1 1,490 09-16-2023, 09:41 AM
Last Post: jd50i
  Metis package can't update Mangustis 1 1,464 02-22-2023, 03:23 PM
Last Post: robocone
  Suggestion / Warning about closed source wifi and keyboard / touch pad firmware omarcomputing 3 2,610 10-08-2022, 06:22 PM
Last Post: KC9UDX
  Keyboard/Touchpad update SH61F83 IC zaphod80013 4 4,198 09-14-2022, 03:56 AM
Last Post: Carl
Big Grin EASY SOLUTION for Manjaro "Missing Keys" Update and Install Failure Zoroaster-Z 0 1,740 08-14-2022, 09:01 PM
Last Post: Zoroaster-Z
  Ring around screen following update tylerjohnson3208 2 2,583 05-10-2022, 01:52 AM
Last Post: diyagabriel
  Wont charge when powered off, and update question pineymousepad 7 7,326 12-11-2021, 09:50 PM
Last Post: pineymousepad
  Issues with External Display After Recent Update reundo 0 1,665 11-18-2021, 06:37 PM
Last Post: reundo

Forum Jump:


Users browsing this thread: 14 Guest(s)