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
  Brand new Pinebook Pro doesn't boot after Manjaro update johnboiles 8 1,998 12-15-2023, 02:11 PM
Last Post: wdt
  After update, multiple problems, pinebook pro. jd50i 1 968 09-16-2023, 09:41 AM
Last Post: jd50i
  Metis package can't update Mangustis 1 982 02-22-2023, 03:23 PM
Last Post: robocone
  Suggestion / Warning about closed source wifi and keyboard / touch pad firmware omarcomputing 3 1,829 10-08-2022, 06:22 PM
Last Post: KC9UDX
  Keyboard/Touchpad update SH61F83 IC zaphod80013 4 3,142 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,366 08-14-2022, 09:01 PM
Last Post: Zoroaster-Z
  Ring around screen following update tylerjohnson3208 2 2,005 05-10-2022, 01:52 AM
Last Post: diyagabriel
  Wont charge when powered off, and update question pineymousepad 7 5,723 12-11-2021, 09:50 PM
Last Post: pineymousepad
  Issues with External Display After Recent Update reundo 0 1,336 11-18-2021, 06:37 PM
Last Post: reundo
Bug Wrong FN keys after keyboard FW update j4n3z 2 2,507 10-19-2021, 01:57 AM
Last Post: j4n3z

Forum Jump:


Users browsing this thread: 2 Guest(s)