[TRACKING] Updating keyboard and numpad using uf2 file manually

I wanted to update the keyboard and numpad firmware, but there were no updates available using fwupdmgr. In the framework guide here there are a few steps to manually update it using the uf2 file, but this step is confusing:
*
The keyboard is now in bootloader mode, use the touchpad to drag the .uf2 file onto the RPI-2 drive*

What is RPI-2 supposed to be? I googled it but didn’t find any answer.

2 Likes

The RPI-2 drive appears in file manager after pressing the left and right alt keys.

The instructions initially confused me as well especially the one to drag the touchpad down - once I realised they were referring to the physical component it all went smoothly.

A short video to accompany the BIOS update instructions would have helped.

And… fwupd needs to be at a recent version for fwupdmgr to work - in my case running Linux Mint it didn’t work coz fwupd is a few versions behind.

3 Likes

Thank you so much.

Yes, the guide should have a line which states that a new removable drive appears in file manager.

2 Likes

just some days ago I had the same situation wondering about the details of “uf2” concept of flasing or updating stuff, and with the help of various internet sources

https://microsoft.github.io/uf2/

i kind of pictured that the keyboard device and the numpad device of framework contained a special mode where it presented itself as a “mass storage class” usb device itself towards the attached system (the rest of the framework laptop, the framework mainboard itself as the main component) and theats where you put the exactly specified “uf2” file type for each device (keyboard/input, numpad) and then bring the device itself back into its normal mode (where it doesnt present itself as mass storage class any more) and it will the handle the uploaded file that you put into place right before, and then flash itself, update itself and return to normal function again. kind of hybrid concept hybrid device. something like that. never did this procedure myself before but I guess thats possibly how this works and how this was designed by the USB and microcontroller masterminds. my two cents.

cheers

After messing around with the Linux instructions I eventually gave up and booted into a live Windows copy and did everything from there. At least that has a simple method.

Why can’t a similar thing be done in Linux?

1 Like

What linux instructions specifically?

I find it really easy with .uf2 files. Though I see FW suggests fwupd first on their github. I guess fwupd might be easy / easier, if it works. But .uf2 files work on any distro, any OS, and can be easy, if FW had explained things a little better.

How do you verify the update?

Welcome @Marc_Matloff … good question, I couldn’t find a way to show keyboard firmware version. Maybe someone here smarter than us can tell us how?

Welcome to the forum.

On what OS?

The qmk_hid tool will show the keyboard’s firmware version on both windows & linux.
github.com/FrameworkComputer/qmk_hid

On linux, the firmware version might just simply be contained in the verbose output of lsusb -vd 32ac:

1 Like

Thanks @MJ1

On Debian I had to set fwupdmgr enable-remote lvfs-testing for the updates to show up, as they are all marked as “not be suitable for production systems” up until today…

1 Like

On Linux, fwupdmgr get-devices shows anything in that direction you may want to know. For the keyboard I see

├─Laptop 16 Keyboard Module - ISO:
│     Device ID:          18426a82fcc375c006966c67b4bb55f88f6a89c1
│     Current version:    0.31
│     Vendor:             Framework (HIDRAW:0x32AC)
│     GUID:               a1295418-923e-54d4-b4a4-29b8b7076067 ← HIDRAW\VEN_32AC&DEV_0018
│     Device Flags:       • Internal device
│                         • Updatable
│                         • Unsigned Payload
│                         • Can tag for emulation
1 Like

If you see the post by @Rob-i-di-bob , it is actually pretty simple in Linux too. When you follow the instructions in the guide and press the required keys when moving the trackpad back in its place, the input module (keyboard, numpad etc) gets detected as a Flash storage device, which you can then mount and copy the uf2 file into. The firmware is then automatically installed quite quickly (there is no notification)

Thanks @MJ1

lsusb -vd 32ac: worked like a dream - it shows me: bcdDevice 0.31

1 Like

Thanks @Richard
I ran fwupdmgr get-devices and for the life of me it showed all other hardware on my FW16 but not the keyboard module. Perhaps because I have a Logitech Bolt Receiver connected for wireless keyboard and mouse - or coz im running an older version of fwupd - who knows? I didn’t bother pursuing this further - as in-built keyboard and touchpad are working fine (as well as the Logitechs).

Take care.

Same for me. fwupd 2.0.16. Ended up updating it with uf2 workaround.

1 Like

While I am on v2.0.17, those should have been showing up even before that. If not, something’s seriously wrong on your side. Or maybe your kernel is whack? I’m on Debian, but have used Fedora kernels for a while to track down a fix for seemingly quite the rare issue. With a Fedora kernel loaded, various things would just not work, like WiFi scanning from terminal, e.g. with wavemon.

The uf2 instructions. Scrolling down the touchpad while holding the alt keys didn’t work, despite trying several times.

Use the programs provided for Windows and the whole process was done in a fraction of the time I spent messing around trying the uf2 process. I just cannot understand what the problem is with providing similar programs for Linux.

1 Like

Not scrolling down the the touchpad. You should be sliding down the touchpad module. Not you fingers on the touchpad, but the actual hardware must be installed in slot while you holding down the keys.

And if you have a numpad or a macropad do not update them at the same time with the keyboard, you may load the wrong firmware and brick the device. For the same reasons double check what you are downloading and loading to the device.

2 Likes

Billion distros. Linux is already fine with LVFS/fwupd + GNOME Firmware. Actually more than fine, this is the best solution, far more superior than Windows will probably ever have (yes, I am aware of firmware in Windows Update Center and I hate it). The problems is that fwupdmgr does not recognize these devices as it should with version 2.0.16+

1 Like