I'm experiencing latency or dropped keystrokes
Troubleshooting RGB LEDs
Having an issue with RGB? Here are the steps to fix it.
Pressing an encoder doesn't provide output
If pressing doesn't work, but turning does, you may need to adjust the height of your encoder knob.
When to use
You should use this document when you're using and/or experiencing the following.
Products
This page applies to the following products:
- Any split keyboard being sold at splitkb.com.
Situations
Use this page when:
- You're typing, but the output is showing up slower than you'd expect.
- You're typing, but keystrokes don't reliably output what you'd expect them to.
Expected outcome
After following the instructions on this page:
- Your keyboard outputs what you expect it to at a reliable speed.
Keyboard without a display
If your keyboard kit supports the use of a display and if you're using QMK or Vial firmware, the firmware will have the display enabled by default. This allows you to use a display without having to tinker with the firmware.
However, if you're not using a display, then your keyboard will be looking for it very frequently, and it will wait until it times out before moving on. This can cause lag, especially on split keyboards where both halves can get stuck waiting for a display to connect.
If this is the case for you, find your keyboard's info.json
file, and find the following:
"oled": true,
You'll want to change that true
into false
, then recompile your firmware and flash it to both
controllers. It should resolve your latency issues.
Custom code
If you've implemented custom code, try to flash the default firmware files to your keyboard to see if the issue persists. You can find the default files using our Firmware Finder.
Custom code can impact performance greatly, sometimes in unexpected ways. In particular, be mindful of the following:
- Code that is executed on every matrix scan can be executed over a thousand times per second. Even small operations that you wouldn't think much of, can add up greatly over time, so you may want to change your code to execute on a different hook instead, or have it execute only every nth loop by keeping track of a counter.
- Display animations can greatly diminish performance. Data written to the display is done synchronously, so the matrix scanning code has to wait for the data transfer to the display to finish before resuming its work. If you do use animations, try to minimize the impact by executing it at a slower refresh rate, or by limiting the effective area of the animation, where the size is determined by the product of the length and height in pixels (and not just the written pixels, but the total bounding area).
- RGB animations can impact performance as well, with some animations requiring more processing power than others. Usually, animations are not the problem, but if you've also implemented custom code then it can add up. Consider turning off your animation to see if it resolves the issue.
Wireless keyboards
If you're using your keyboard wirelessly, the prime cause of latency and dropped inputs is an unstable connection. To improve your Bluetooth connection:
- Make sure to stay close enough to your host device. If you're connected to a device that's several meters away, the connection may not be good enough.
- Make sure to keep enough distance from USB 3.0 devices, in particular external hard drives. The USB 3.0 protocol uses frequencies that interfere with Bluetooth, which can cause an unstable connection.
- Keep the antennea clear. If the antenna of either the controller or the host device is obscured, it can impact the connection. Many plastics won't pose an issue, but metals such as aluminium may impact the reliability of the connection.
If can also help to have a look at ZMK's Connection Issues page.
Troubleshooting RGB LEDs
Having an issue with RGB? Here are the steps to fix it.
Pressing an encoder doesn't provide output
If pressing doesn't work, but turning does, you may need to adjust the height of your encoder knob.