近排又砌咗隻鍵盤,順便研究埋點樣將佢嘅latency降到同其他電競鍵盤一樣。
雖然呢個group玩自組鍵盤已經係小眾,會自己flash firmware嘅只會更少,但希望呢個方法可以令人少個理由買手感相對差嘅電競鍵盤,試下自組鍵盤。
鍵盤嘅latency主要有3部分: matrix scanning, debouncing, USB polling.
Debouncing: 機械軸係用2塊銅片做觸發,但銅片喺接觸嘅瞬間會喺0同1之間彈嚟彈去,需要一個delay去無視呢啲輸入。Cherry MX及同類通常都係5ms, 新嘅1億次壽命Cherry MX Hyperglide係1ms, 光軸係0.
USB polling: 用過Gaming mouse都應該識,1000Hz = 1ms, 125Hz = 8ms.
USB polling可以用呢個program試,重可以順便試埋key order嘅問題。
你可以試下同時撳2粒制(例如A, S),係1000Hz嘅話應該會見到delay係1-7之間嘅數,而且有時係AS, 有時係SA.
遺憾嘅係好多自組鍵盤出廠都係125Hz, 所以delay好多都係10ms左右,好在有好多有線自組鍵盤都用一個強大嘅firmware叫QMK,呢個firmware最大賣點係可以設定鍵盤唔同鍵嘅功能。
如果你肯自己compile firmware嘅話,就可以改USB polling rate做1000Hz, 用其他debouncing algorithm去隱藏嗰5ms嘅delay, 甚至自己寫C code都得。
然後喺qmk_firmware/keyboards入面搵返自己隻keyboard
喺config.h度加:
#define USB_POLLING_INTERVAL_MS 1
#define FORCE_NKRO
#define DEBOUNCE 5
再喺rules.mk度加:
DEBOUNCE_TYPE = sym_eager_pk
Compile完之後用QMK toolbox flash入隻鍵盤,咁你嘅delay應該就會係2ms左右。
有錯請指正,以上資料都係用一晚Google得嚟