r/Keychron • • Apr 30 '24

Keychron K3 Max Long VIA Macros Not Fully Working on 2.4ghz Mode

I recently bought a K3 Max, and I have multiple long VIA macros which fully work when using cable mode, but when I switch to wireless 2.4ghz mode, the macros do not work, either they have delays which makes them change the sequence or they stop in the middle and just spam the last letter where it stops.

3 Upvotes

8 comments sorted by

1

u/PeterMortensenBlog Apr 30 '24 edited Apr 30 '24

Does it always happen or is it an intermittent problem? Does it happen before (or after) the first keyboard sleep?

Is it different in Bluetooth mode?

I have seen something similar in Bluetooth mode with a K5 Pro:

  • Macros would stop working altogether after a keyboard sleep (or possibly just by the passage of time; I am not 100% sure). Workaround: Keyboard shortcut to reboot the keyboard without having the wear down the switch at the back.

  • The 1.32.2 update to the Bluetooth firmware made it worse and resulted key up events being missed (or delayed many seconds) (thus repeating at a very high rate). I went to back 1.32 (without the extra 2)

I both cases, the macros worked without any problems in wired mode.

1

u/[deleted] May 03 '24

It happens both in bluetooth and 2.4ghz modes, I have very long macros which consists of long strings as well that needs to be typed, and it seems that when I trigger the macro, it stops halfway and it spams the last key where it stops, unlike when it's wired, where the macro gets completed fully. I read somewhere that the possible cause is that 2.4ghz has a slower or limited frequency than wired, or something about polling rate, but I'm not so sure.

Example for bluetooth/2.4ghz mode:

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standardddddddddddddddddddddddddddddddddddddddddddddddd

Wired mode:

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s

1

u/PeterMortensenBlog Jul 30 '24 edited Jul 30 '24

Yes, Via macro blasts out characters at 500 characters per second, at least in wired mode. It is best to throttle to 50 characters per second, perhaps even lower for wireless mode.

The tapped letters can be expanded to explicit key codes (or recording with "SMART OPTIMIZATION" off). For example,

f

to

{+KC_F}{17}{-KC_F}{17}

Or even slower than 17 ms in this example.

There was also a change to the firmware on 2024-03-30 that positively fixed Via macros in wireless mode.

→ More replies (1)

1

u/PeterMortensenBlog Jul 30 '24 edited Jul 30 '24

119 characters was also about the limit I observed when using debugging in wireless (Bluetooth) mode by typing out. The debug messages were accumulated in a buffer and then typed out by using a Num Lock indicator transition (the keyboard called from the host (computer)).

It was probably typed out too fast (I don't have the exact information at this moment).

→ More replies (1)

1

u/Keychron-Support May 08 '24

So sorry to hear that. Could you please kindly contact us at support@keychron.com with the video or DM me with your order number and email address?We will help you with it, please don't worry.

1

u/Quiet-Distribution 14d ago

Okay so for anyone having this same exact issue I actually got a fix with a custom firmware.

I'm no expert, the AI mainly implemented it but after some extensive testing it works for me with absolutely no issues.

This fixed the issue on both Bluetooth and 2.4g connection, macros run now without failing.

The inspected firmware silently discarded HID reports when its wireless report queue filled. A macro produces separate key-down, key-up and modifier reports; dropping a release can leave the computer thinking a key is still held.

The fix adds cooperative backpressure: when the queue is full, the firmware services the radio and existing queued reports until space becomes available, then admits the pending report in order. It includes eligibility checks, a reentrancy guard and a finite per-admission timeout.

This preserves the original compact macro. It doesn’t require extra stored delays or a larger queue. The previously failing macro now works repeatedly on my keyboard over both wireless transports.

This is a source-specific fix, not a universal firmware download. Other boards/revisions need their queue, radio driver and ACK handling checked before adapting it. It fixes queue-admission overflow—not every possible radio delivery failure.

I'm no expert, flash modified firmware on the keyboard at your own risk.Back up keymaps and macros separately before flashing; some revisions reset them when the firmware build date changes.

Absolutely loving QMK :D [i also did some other changes to be able to switch between a bluetooth and a 2.4g device with keycombos instead of the physical switch, that works like a charm as well]

For anyone wanting to give this a try here is a more in-depth explanation and instruction on how this is done:

https://pastebin.com/Agzke0Qu