Trackpad firmware update
#1
[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


  Reply
#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 )
  Reply
#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
  Reply
#4
Worked great for me too.  Thank you all very much.

Matthew
  Reply
#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?
  Reply
#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
  Reply
#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 ?
  Reply
#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
  Reply
#9
Updating worked like a champ. A quick sloppy typing session in leafpad and it is a vast improvement, love it! Thank you.
  Reply
#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.
  Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  Last update broke netflix fpex73 2 46 3 hours ago
Last Post: fpex73
  UPDATE - NOW POWERED UP VIA MAINS! Re: PBP No Power dsk70 6 299 02-20-2020, 11:10 PM
Last Post: dsk70
  Default OS update log Luke 170 33,058 02-13-2020, 08:37 PM
Last Post: GLSRacer
  Trackpad lack of fine movement and overrun ruining experience. gillham 25 1,282 02-03-2020, 01:14 PM
Last Post: bcnaz
  Chromium update pending james64 0 72 01-29-2020, 10:13 PM
Last Post: james64
  Booting from an SD card without the boot order update jaysistar 7 296 01-27-2020, 08:30 AM
Last Post: jaysistar
  Keyboard, Trackpad, and USB unresponsive on ANSI PBP SpankyWorks 10 301 01-26-2020, 09:28 PM
Last Post: SpankyWorks
  Trackpad Switch primary/secondary buttons and paste on double-tap? lowry 0 60 01-21-2020, 07:21 AM
Last Post: lowry
  PineBook Pro Status Update Page? LittleWalter 17 1,198 01-21-2020, 01:03 AM
Last Post: LittleWalter
  disable trackpad while typing mamboman777 6 240 01-18-2020, 04:04 PM
Last Post: mamboman777

Forum Jump:


Users browsing this thread: 2 Guest(s)