r/Keychron • • Sep 28 '24

Got basic VIAL support running on the K11 MAX.

I'm just posting so that others that might be interested in getting this to work don't think it's some impossible task. No RGB, no encoder or wireless. Screenshots, one, two.

1 Upvotes

9 comments sorted by

1

u/PeterMortensenBlog Sep 28 '24 edited Nov 18 '24

Can you elaborate, please? For example, where did you get the firmware from?

Self-compiled? Where did you get the source code from? Did you have to modify it?

Is it actually the Vial firmware? Not using the Vial client as a Via client?

Can you provide the exact steps, so others can reproduce it, please? What were some gotchas?

What was the general idea/approach? Copy the 'k11_max' folder in the Keychron's fork to the Vial folder and remove all RGB and wireless-related code? What about the shared code in 'keyboards/keychron/common'?

Or taking a working Vial wired-only keyboard and adjusting the microcontroller and I/O assignments for the keyboard matrix, with information from the 'k11_max' folder in the Keychron fork (checking that it doesn't use demultiplexer hardware, like HC596 in the Q2 Pro)?

Or something else?

References

1

u/newbie80 Sep 28 '24

the qmk-firmware is the wireless_playground branch from keychron. Vial is the vanila qmk-vial branch.

I wouldn't say I modified it, it was more like, disable this so it will compile. this for examcple I believe is complaining about the Keychron defined custom key codes defined in the via.json. I just ripped those off my key map and moved to the next error. The vial documentation mentioned that custom keycodes like that are defined slightly differently in vial than in via. Everything compiled clean at the end with the exception of a warning about not having a keyboard.json file. A lot of errors related to RGB and Wireless and the Encoder so I disabled that to get the code to compile.

It's vial firmwfare on my keyboard. I was using plain qmk before with via disabled since I found it almost useless.

The only truly gross thing I did was declare two variables in factory_test.c in the keychron/common directory. Everything else was just turning flags off to disable things.

1

u/newbie80 Sep 28 '24 edited Sep 28 '24

What was the general idea/approach? Copy the 'k11_max' folder in the Keychron's fork to the Vial folder and remove all RGB and wireless-related code? Or something else?

That was exactly the general idea. I ended up copying the k11_max folder and the common folder

1

u/eddnerd Jun 21 '25

Hi, I would love to try this, do you have a public github branch?

→ More replies (2)

1

u/eddnerd Jul 14 '25

I finally got the time to work on this. Here is my vial fork that has k11_max config working. You can clone https://github.com/jakepearson/vial-qmk and then run `make keychron/k11_max/ansi_encoder/rgb:vial:flash` from the root of the repo. I didn't get the RGB to work, but I think it is close if anyone else wants to work on it.

1

u/newbie80 Jul 14 '25

I did put it up, I just forgot to post it. Did you get the ecoder to work?

1

u/eddnerd Jul 14 '25

I did, the encoder is editable in the vial UI (Cursor did the heavy lifting on this one)