Looking for a manual for Framework 16 RGB keyboard

I’m looking for the documentation for the Framework 16 RGB keyboard. I’ve been doing a lot of searching, and I haven’t been able to find any single, coherent document that explains the features of the keyboard, how to configure it, etc.

I’ve found little snippets of information here and there, spread out across the Web. Including one that was like “maybe you’d rather just install completely different firmware on your keyboard instead.” Which is nice as an advanced feature, but where’s the guide to “here’s the Framework-approved way to use your keyboard, out of the box?”

I’ve seen a lot of links mentioning guides and knowledge bases, but they just sort of lead me in circles, and not to a specific document about the keyboard.

Somewhere, I read that the way to configure the keyboard is to go to https://keyboard.frame.work/ in a Chromium-based browser. (However, I just read that in some random forum on the web; I haven’t seen any official Framework documentation mentioning that URL.)

However, when I go to keyboard.frame.work and then authorize it to connect to my keyboard, I just get errors:

Maybe I need to update the firmware in my keyboard, but I haven’t found any guide for how to update the firmware, either. And I’m annoyed it didn’t just ship with the correct firmware.

I’m using a Framework 16 with Kubuntu 26.04, and Chromium 150.0.7871.128.

I can’t even figure out how to use this forum. It says “select at least 2 tags”. So I try looking for a “keyboard” tag. There’s a tag “keyboard-touchpad” but it’s greyed out and says “Only available in the Community Support category”. But “Community Support” is the category that I have selected. So I have no idea how this tagging is supposed to work. I’m probably going to just pick two random tags, since none of the tags that I’m actually allowed to pick seem to be relevant to my post.

(UPDATE: It’s now allowing me to choose “keyboard-touchpad” as a tag, but only after I chose “amd-ai-300” as my first tag. This is very confusing and counter-intuitive. I’m really having a terrible user experience so far.)

Welcome to the forum.

Failed to open the device with invalid protocol errors on linux always seems to point to a need for udev rules. Most linux distros want you to explicitly allow the the kind of access needed for WebHID or WebUSB, which keyboard.frame.work uses.

Should be no need to update the firmware just to use keyboard.frame.work.

The link “this file” in that post points to a page that gives me a 404. So I have no idea what file I’m supposed to copy to `/etc/udev/rules.d/`.

And that kind of gets back to my larger point: all of this information seems to be spread out across random forum posts by random people, and I have no idea who is giving good advice, or what information might be out of date, etc.

github.com/qmk/qmk_firmware/blob/0.32.11/util/udev/50-qmk.rules

Completely agree. They just don’t seem to have provided a good single source yet.

Hopefully when the FW wireless keyboard gets released there won’t be a choice, for that one at least.

Hey there, first welcome to the community. Please refer to the Getting Started category which will cover how to use the forum. Framework Community Forums 101 covers the Community Support section. You have to choose a product tag and issue tag (amd-ai-300 being your product tag and keyboard-touchpad being the issue). I am looking into streamlining the forum experience so this is good feedback.

As for your experience with setting up your Framework Laptop 16 RGB keyboard I will share this with internal teams as well. You can find how to customize your keymap and RGB lighting here, scroll down to the section that says Keyboard, Numpad, and RGB Macropad. Let me know if that helps.

If it’s still not working, I recommend the following KB Articles: Framework Laptop 16 Keyboard Not Appearing in keyboard.frame.work for Linux and Keyboard Firmware Update (Framework Laptop 16)

So, since the original link in the post doesn’t work, I found an alternative link that was much further down in the post.

I then added the five lines from the original post, and copied the resulting file to /etc/udev/rules.d/, and then ran the two udevadm commands:

$ ls -lh /etc/udev/rules.d/
total 128K
-rw-r--r-- 1 root root 4.7K Aug  4 13:17 50-qmk.rules
-rw-r--r-- 1 root root 1.6K Aug  2 16:37 70-snap.cheese.rules
-rw-r--r-- 1 root root  24K Jun 30 14:33 70-snap.chromium.rules
-rw-r--r-- 1 root root  758 Jun 30 14:33 70-snap.cups.rules
-rw-r--r-- 1 root root  16K Apr 22 17:53 70-snap.firefox.rules
-rw-r--r-- 1 root root  62K Apr 22 17:53 70-snap.snapd.rules
-rw-r--r-- 1 root root 7.8K Apr 22 17:53 70-snap.thunderbird.rules
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger

I opened Chromium, and went to keyboard.frame.work

However, I still got the same two errors:

NotAllowedError: Failed to open the device.
Received invalid protocol version from device

The error messages referenced Vid: 0x32AC Pid: 0x0012, which is listed in the new 50-qmk.rules file, so I’m unclear why this isn’t working.

EDIT: I also tried fully rebooting my computer, and that didn’t help any, either.

I discovered the secret. I have to run chromium --no-sandbox. Then it works.

This should probably be documented somewhere. This was much more complicated, obscure, and confusing than it should have been.

I highly recommend following this guide: Framework Laptop 16 Keyboard Not Appearing in keyboard.frame.work for Linux as no-sandbox is not recommended security wise. If you’re using flatpak, you may need to run it as flatpak override --user --device=all org.chromium.Chromium

That guide seems to be identical to the guide I was following. Both of them are just about setting up the udev rules. Neither of them say anything about what to do when it still doesn’t work after setting up the udev rules.

No, Chromium is installed as a snap. (This was Ubuntu’s suggested way of installing it. There was no apt package available.)

Snaps can have issues with permissions.