Describe the Bug
Hello, I have a Keychron K10 HE and I've been noticing some errors when checking the switch millimeters, changing the actuation point, or using rapid triggers.
After manual calibration, key travel reports correctly from 0 mm to 4 mm.
However, after some usage and/or after reboot, the reported full travel changes (for example from 4.0 mm to 1.9 mm), suggesting calibration values are being modified dynamically.
I traced the behavior to the dynamic auto calibration logic inside:
auto_caliration_check(row, col, value);
especially:
calib_values[row][col].zero_travel = p->value.zero_travel;
calib_values[row][col].full_travel = p->value.full_travel + BOTTOM_JITTER;
followed by:
save_calibration_value(row, col);
It appears that manually calibrated values may be overwritten during normal usage and persisted to EEPROM automatically.
This is especially noticeable with Rapid Trigger / gaming usage where consistent travel distance is critical.
It may be useful to provide an option to disable dynamic auto calibration or EEPROM auto-save after manual calibration.
Thanks.
Keyboard Used
Keychron k10 he
Link to product page (if applicable)
No response
Operating System
No response
qmk doctor Output
Is AutoHotKey / Karabiner installed
Other keyboard-related software installed
No response
Additional Context
No response
Describe the Bug
Hello, I have a Keychron K10 HE and I've been noticing some errors when checking the switch millimeters, changing the actuation point, or using rapid triggers.
After manual calibration, key travel reports correctly from 0 mm to 4 mm.
However, after some usage and/or after reboot, the reported full travel changes (for example from 4.0 mm to 1.9 mm), suggesting calibration values are being modified dynamically.
I traced the behavior to the dynamic auto calibration logic inside:
auto_caliration_check(row, col, value);
especially:
calib_values[row][col].zero_travel = p->value.zero_travel;
calib_values[row][col].full_travel = p->value.full_travel + BOTTOM_JITTER;
followed by:
save_calibration_value(row, col);
It appears that manually calibrated values may be overwritten during normal usage and persisted to EEPROM automatically.
This is especially noticeable with Rapid Trigger / gaming usage where consistent travel distance is critical.
It may be useful to provide an option to disable dynamic auto calibration or EEPROM auto-save after manual calibration.
Thanks.
Keyboard Used
Keychron k10 he
Link to product page (if applicable)
No response
Operating System
No response
qmk doctor Output
Is AutoHotKey / Karabiner installed
Other keyboard-related software installed
No response
Additional Context
No response