Keyboard: VIA / VIAL support?

Well, it compiled… Checking if it works…

Uhhh, actually what happens if I bork this? What is the recovery method???

Well it flashed, and I made sure to have a reset key on the default map.

I was able to confirm the keys worked, but I wasn’t able to configure it with vial.rocks more testing…

What OS and browser?
Did keyboard.frame.work previously work?
I had to click the button to the left of the url and click “request permissions” for https://vial.rocks/ to work

Yeah, it did. I was able to flash, and put a reset key on the default layer, no issues, all compiled no issues, worked thru all the errors, and merges, fixed my merge errors, etc.

I’m going to walk back thru the guide one more time, ensure I did everything correct.

It does compile, and it’s larger than the default, and it does work on VIA still, and with the vial application with the VIA sideload.

So, I didn’t ‘break it’, but vial didn’t work. (I know the make flags are working because I have some bad code if you don’t compile with the VIAL_ENABLE, so easy to break right now.

What does the Vial app say for About > About [device]?

Depends on how bad you bork it.
There is a reset function in qmk bootmagic

Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard

There are also a few other ways to get into bootloader mode, most rely on the firmware to be somewhat working.

The last resort is the RP2040 BOOTSEL pin. But you’ll need a way to connect the module while pressing or shorting BOOTSEL. Input Module Developer Program
Now, I don’t actually know if Framework broke the BOOTSEL pin out, either to a small button or a pad. I don’t have a macropad and the image on framework’s site doesn’t show. It could be hidden under the stickers. Maybe you could check and let us know?


I want to say that Framework must have broke it out to a pad at least. But if they somehow failed to do so, the real last resort is using a needle to short the BOOTSEL pin on the chip itself.

With the firmware I flashed…
keyboard.frame.work
20:59:16.104

  • Fetching v2 definition failed

  • Device: Laptop 16 RGB Macropad

  • Vid: 0x32AC

  • Pid: 0x0013

With the vial side load…
Manufacturer: Framework

Product: Laptop 16 RGB Macropad

VID: 32AC

PID: 0013

Device: b’\\?\hid#vid_32ac&pid_0013&mi_01#9&262db93d&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}’

Sideloaded JSON, Vial functionality is disabled

VIA protocol: 9

Vial protocol: -1

Vial keyboard ID: -0000001

Macro entries: 16

Macro memory: 14707 bytes

Macro delays: unsupported - sideloaded keyboard

Complex (2-byte) macro keycodes: unsupported - sideloaded keyboard

Tap Dance entries: unsupported - sideloaded keyboard

Combo entries: unsupported - sideloaded keyboard

Key Override entries: unsupported - sideloaded keyboard

QMK Settings: unsupported - sideloaded keyboard

Do you have your code on a github repository?

1 Like

Edit: I reread again and see that this hasn’t been successful yet. I am definitely following along now. Wanted to add this edit to save confusion.

As someone with no knowledge of how to mess with via/vial/etc

If someone has a github repo and or a guide that would be awesome. I am gonna try and re read this thread again to see if I can follow it :slight_smile: But if anyone puts up a guide, you will be a hero.

What are you looking to do?
For Vial there is no guide because no one has ported over Framework’s changes to make working Vial firmware. Hopefully Allen_S gets it working.

For Via/qmk, if you want something that you can’t do in the Via GUI, I did make a little guide on compiling firmware. Custom QMK firmware? - #14 by MJ1

Hey MJ1,

thanks for the reply - I actually re-read and saw that Allen is basically pathfinding this for us - I thought I read he got it working. I see he is still testing. My bad on mis-reading (why I deleted my post actually - wanted to prevent confusion).

Ill check out your guide. I would like to see some better RGB options - not sure if VIAL provides any? And also better linux support as always.

I was going to try and get it working before an upload or a fork…
I spent the last hour reading thru all custom work that framework did to the driver. (I should have written it down… to enumerate here since I just spent the time doing it.)

Some Sleep tweaks, usb driver updates to account for using the keyboard in the bios, if OS is bios, force ''normal keys" so you can’t screw up too badly, Serial Number stuff, airplane mode key, etc. Some debug…

Since I’m only messing with the macropad, not the main keyboard bios, I’m tempted to ignore 99% of the changes, and try and use the macropad vanilla with vial with the make files…

I’m going to mess with it more. If I get anywhere, I’ll upload FOR SURE, but the process I followed was pretty straight forward. (The Merges weren’t bad, and only minor changes to the framework files (RGB lowercases is all)) Then just adding the ‘standard vial’ stuff where it says to add it.

3 Likes

Sorry, I missed that you deleted it. I must have started writing my reply before that.

What kind of RGB options? We don’t have anything like per-key RGB control through a GUI yet. You have to do it directly in qmk.

Linux support, I feel like it’s the same as windows? Except for having to fix browser permissions for Via to connect in some distros. I use qmk, Vial, and Via on linux.

No one hold your breath I’m going to figure it out… I code python 99% of the time, and I’m self taught 100% But I had a few hours to burn, and I’m not scared to try things, so I started to hack on it.

Fortunately most code looks the same, so it’s not too hard to get the gist of what code does.

I should have started with just the macropad to begin with, start small, expand as needed.

1 Like

To be honest, I’d do that. If nothing else, just to see it working. And sort of as a simple starting point.

Got it… Macropad with vial…

So their serial number override had to go, but the rest stayed…

Manufacturer: Framework

Product: Laptop 16 RGB Macropad

VID: 32AC

PID: 0013

Device: b’\\?\hid#vid_32ac&pid_0013&mi_01#9&317d76af&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}’

VIA protocol: 9

Vial protocol: 6

Vial keyboard ID: 400005A587A37FD

Macro entries: 16

Macro memory: 14707 bytes

Macro delays: yes

Complex (2-byte) macro keycodes: yes

Tap Dance entries: 32

Combo entries: 32

Key Override entries: 32

QMK Settings: yes

3 Likes

https://imgur.com/a/QERPj6A
vial shot working.

4 Likes

Great to see this work being done!

I guess the next major milestone would be to successfully port onto a keyboard module, after which it should be fairly easy to account for the differences in layouts (ANSI, ISO etc)

I put a copy of the firmware I was able to use in the github repo under the release, so if anyone wants to risk it. You can see the code, nothing particularly exciting was changed, just remove the features not in the base repo, and create keyboard data for the macropad.

macropad vial firmware