Trackpad firmware update
(01-10-2020, 12:23 PM)VultureShaun Wrote: Update, ran the procedure as root and everything went smoothly (outside of a scramble to find a working keyboard). This afternoon The Register newsroom will take it for a spin!
(01-10-2020, 01:51 PM)VultureShaun Wrote:
(01-10-2020, 12:23 PM)VultureShaun Wrote: Update, ran the procedure as root and everything went smoothly (outside of a scramble to find a working keyboard). This afternoon The Register newsroom will take it for a spin!
It will be great to see coverage in El Reg!
— Jeremiah Cornelius
"Be the first person not to do some­thing, that no one has thought of not doing before’’
— Brian Eno, "Oblique Strategies"
Just got my PineBook Pro and ran the ANSI firmware update. Things are working pretty well but the trackpad has a peculiar behavior. It's like the mouse position is a couple steps behind the buffer for the trackpad. For instance, if I move left, then stop, then move up. When i start moving up, it goes left a little bit then up. It's just a bit behind and it doesn't update until new input to the trackpad is made.

If it's not just me, maybe I can help sort it out and post a patch? Very new to Pine and the hardware. If that is the case, would you have recommendations on where to start looking into the code? Very comfortable with hardware and mircocontrollers.

Really excited about this project, thanks everyone for their help and contributions!
Hi Folks,

Just received my PBP ansi machine.   I have gone through the firmware update instructions for the ansi keyboard, as well as applied mrfixit's updates.   The machine works great, but I'm having some weird issues with the keyboard.

The key right above the enter key is supposed to produce a pipe symbol with the shift key.  Instead I get a ~ (tilde) symbol when I use that key combination.   without shift, it produces a hash instead of a backslash.

I have found a couple other keys that are not mapped correctly ( like the key that produces the ~, which produces ¬ instead.   The shift-3 produces £, shift-2 produces ".

Maybe I just need to do something to update my keymap.   Since characters are being produced, I don't think there is a keyboard issue.   However, if I plug in an external USB keyboard, the mappings seem to be correct.

I haven't noticed anyone else report this issue, and I apologize in advance if I missed that this is a common problem.
(01-10-2020, 07:16 PM)karlyn Wrote: Hi Folks,

Just received my PBP ansi machine.   I have gone through the firmware update instructions for the ansi keyboard, as well as applied mrfixit's updates.   The machine works great, but I'm having some weird issues with the keyboard.

The key right above the enter key is supposed to produce a pipe symbol with the shift key.  Instead I get a ~ (tilde) symbol when I use that key combination.   without shift, it produces a hash instead of a backslash.

I have found a couple other keys that are not mapped correctly ( like the key that produces the ~, which produces ¬ instead.   The shift-3 produces £, shift-2 produces ".

Maybe I just need to do something to update my keymap.   Since characters are being produced, I don't think there is a keyboard issue.   However, if I plug in an external USB keyboard, the mappings seem to be correct.

I haven't noticed anyone else report this issue, and I apologize in advance if I missed that this is a common problem.
Looks like your system's layout is set to ISO instead of ANSI. Look into Control Center -> Keyboard -> Layout and see if it's set to English (US). If it's set to English (UK) then it's using the ISO layout
(01-10-2020, 09:39 PM)forkbomb9 Wrote:
(01-10-2020, 07:16 PM)karlyn Wrote: Hi Folks,

Just received my PBP ansi machine.   I have gone through the firmware update instructions for the ansi keyboard, as well as applied mrfixit's updates.   The machine works great, but I'm having some weird issues with the keyboard.

The key right above the enter key is supposed to produce a pipe symbol with the shift key.  Instead I get a ~ (tilde) symbol when I use that key combination.   without shift, it produces a hash instead of a backslash.

I have found a couple other keys that are not mapped correctly ( like the key that produces the ~, which produces ¬ instead.   The shift-3 produces £, shift-2 produces ".

Maybe I just need to do something to update my keymap.   Since characters are being produced, I don't think there is a keyboard issue.   However, if I plug in an external USB keyboard, the mappings seem to be correct.

I haven't noticed anyone else report this issue, and I apologize in advance if I missed that this is a common problem.
Looks like your system's layout is set to ISO instead of ANSI. Look into Control Center -> Keyboard -> Layout and see if it's set to English (US). If it's set to English (UK) then it's using the ISO layout
Ok, that was exactly the issue.  Simple enough, thanks!
I ran the update instructions for ANSI keyboard from the forum thread and now my touchpad is not working and the keyboard is scrambled beyond use. On the full instructions, at the top (which I overlooked thinking the forum was more up to date), there is a warning that things would break.  Now that I'm in this state, what are my options to fix this? Can we flash older firmware until a patch is updated?

my output as follows:


Code:
rock@Debian-Desktop:~$ cd pinebook-pro-keyboard-updater/
rock@Debian-Desktop:~/pinebook-pro-keyboard-updater$ sudo ./updater step-1 ansi
[sudo] password for rock:
Running STEP-1...
[*] Flashing keyboard updater 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...
>>> Kernel Driver Active
[*] Sending command to switch to boot mode...
failed to send switch command
>>> release interface
[*] Opening in boot mode
>>> Trying to open VID:0603 PID:1020...
>>> Device not found
>>> Trying to open VID:0603 PID:1020...
>>> Kernel Driver Active
[*] Erasing flash
[*] Writing firmware...
>>> USB: write_block_start (length=14336)
>>> USB: write_block (offset=0, length=2048)
>>> USB: write_block (offset=2048, length=2048)
>>> USB: write_block (offset=4096, length=2048)
>>> USB: write_block (offset=6144, length=2048)
>>> USB: write_block (offset=8192, length=2048)
>>> USB: write_block (offset=10240, length=2048)
>>> USB: write_block (offset=12288, length=2048)
>>> USB: write_block_start (length=14336)
>>> USB: write_block (offset=0, length=2048)
[*] Reading back firmware...
>>> USB: read_block_start (length=14336)
>>> USB: read_block (offset=0, length=2048)
>>> USB: read_block (offset=2048, length=2048)
>>> USB: read_block (offset=4096, length=2048)
>>> USB: read_block (offset=6144, length=2048)
>>> USB: read_block (offset=8192, length=2048)
>>> USB: read_block (offset=10240, length=2048)
>>> USB: read_block (offset=12288, length=2048)
[*] Comparing firmwares...
[*] Reseting device?
[*] Finished succesfully!
>>> release interface
[*] Please reboot now, and run `step-2`.


--- reboot ---

rock@Debian-Desktop:~$ cd pinebook-pro-keyboard-updater/
rock@Debian-Desktop:~/pinebook-pro-keyboard-updater$ sudo ./updater step-2 ansi
[sudo] password for rock:
Running STEP-2...
[*] Flashing touchpad firmware...
[*] Opening in touchpad mode
>>> Trying to open VID:258a PID:001f...
>>> Kernel Driver Active
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Verify mismatch: type=f2, pass=e2, received=d2
>>> Touchpad verify (type=242, pass=226) data failed
>>> Touchpad erase failed
>>> release interface


--- reboot ---
(01-10-2020, 04:35 PM)quantumape Wrote: Just got my PineBook Pro and ran the ANSI firmware update. Things are working pretty well but the trackpad has a peculiar behavior. It's like the mouse position is a couple steps behind the buffer for the trackpad. For instance, if I move left, then stop, then move up. When i start moving up, it goes left a little bit then up. It's just a bit behind and it doesn't update until new input to the trackpad is made.

If it's not just me, maybe I can help sort it out and post a patch? Very new to Pine and the hardware. If that is the case, would you have recommendations on where to start looking into the code? Very comfortable with hardware and mircocontrollers.

Really excited about this project, thanks everyone for their help and contributions!

I'm experiencing this problem too, and it's maddening. It's the last thing that's stopping me from using my shiny new PBP as my main machine—the trackpad is unusable like this. I have to assume it's not happening to most users or it would certainly have been noticed and fixed by now.

At some point I'm going to try just re-applying the firmware update, to see if that somehow fixes it. I've been too busy with other stuff until recently.
Folks,

I don't know what I may have done wrong.  First
   $ sudo ./updater step-1 ansi
   $ sudo reboot

The first line completely re-mapped the keyboard so I couldn't do the second line.  I rebooted via menu.  Then with a re-mapped keyboard I couldn't log in again. Keyboard and trackpad are unusable.

I attached a usb keyboard and was able to log in.  However, without trackpad mouse I couldn't figure out how to open a terminal window to find out what went wrong.

I logged into it via ssh (surprised sshd was running by default) and I reran line 1 and line 2 thinking I could re-flash the firmware
   $ sudo ./updater step-1 ansi
   $ sudo reboot

No issues and no luck.  It didn't work.

Help! Any ideas?

Bill
(01-11-2020, 12:58 PM)ColoBill Wrote: Got it working.   Other's might see this so here's what I did.
   * Running step-1 made keyboard and trackpad unusable..
   * I had a bluetooth mouse attached so reboot via menu.  Keyboard power key might have worked
   * Rebooting and all of keyboard, trackpad, and mouse  wouldn't work. Used usb keyboard to log in.
   * Re-ran step-1 and reboot.  No help
   * ssh in remotely and was surprised and happy that sshd was running by default.
   * ran step-2 and reboot.
All is working.  Whew!


Possibly Related Threads…
Thread Author Replies Views Last Post
  Lifting Trackpad p3pp3r 7 2,680 03-23-2021, 05:48 PM
Last Post: Timpanogos Slim
  No keyboard & trackpad leads to no display. RMA from the US. Free parts in Seattle BitterPine 4 1,697 12-30-2020, 06:14 AM
Last Post: BetteHoward
  Safe to Update? BluBombr64 6 1,259 12-18-2020, 11:59 AM
Last Post: BluBombr64
Bug [Fixed] Issue with mesa-git (Manjaro ARM Stable Update 2020-09-22)) JasonG-FR 20 6,232 12-12-2020, 05:09 AM
Last Post: mogwai
  For sale: Pinebook Pro from the first batch, with the 128 Gb update Linux-Rob 8 3,429 10-07-2020, 12:03 PM
Last Post: Linux-Rob
  Proper way to use mrfixit update bastafari 13 3,657 09-29-2020, 09:45 PM
Last Post: wdt
  Do I need the touchpad update? Paulie420 3 1,469 09-22-2020, 06:40 PM
Last Post: Paulie420
  brick after firmware update on emms sashka_amur 4 1,456 09-22-2020, 02:24 AM
Last Post: sashka_amur
  Does this plastic trackpad cover come off? Paulie420 7 2,171 09-17-2020, 02:29 AM
Last Post: KC9UDX
  Mouse drfting when using the trackpad jcarty 1 827 09-15-2020, 03:21 PM
Last Post: ab1jx

Forum Jump:


Users browsing this thread: 3 Guest(s)