Palette1202という左手マクロ用の自作キーボードを実戦投入したのだが、
キー連打をちょいちょい取りこぼす。
解せぬ。
MiniAxeではそんなことはない。
同一キーを秒4打以上打ったって全対応してくれる。
異なるキーのロールオーバーは秒8打くらい打っても大丈夫。
今のところ自分の速度より速い処理速度で動いている。
ところが、何が違うのか不明だが、
Palette1202は、
同一キーの連打が秒2打くらいが限界で、
秒3打以上は取りこぼすっぽいんだよね。
愛用のMiniAxeと同じ打鍵感になるように、
Config.hでは、
デフォルトの設定
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100
を、
#define TAPPING_TERM 0
#define PERMISSIVE_HOLD
#define RETRO_TAPPING
に変えている。
これが原因?と思いデフォルトに戻しても、
現象は同じで、100ミリ秒分モッサリした感覚になるだけ。
Rules.mkを読み込んでMiniAxeと比較すると、
マウスやOLEDなどがyesになっているくらいしか違いが分からない。
OLEDは付けていない。
キーマップは3レイヤーしか積んでないし、
難しいことはしていない、と思う。
ググっても似た症状は出て来ず、
https://mobile.twitter.com/htomine/status/1335919497107054593
で報告されているのに似ている。
(しかもこの症例、前の版を書き込んだら治った、
みたいな曖昧な報告)
表面実装ダイオードの半田が甘いとか、
そういうことで連打を取りこぼすってあるのかしら。
アリナシの単純なことではないのかな…
一応作者には問い合わせたが、詳しい方がいたら、
と思いここにも書いておく。
分かる方いたら対処法や原因を教えてください。
(追記)
解決しました。コメント欄参照。
OLEDがついてないのに読み込みに行って帰ってくるまでの間、
こっちから見てラグに見えているということらしい。
最新のQMKでは改善してるかも。
とりあえず、rule.mkの、
OLED_DRIVER_ENABLE = no
にしとけばOK。
(またはOLEDを半田付けしても正解か)
あくまで私の推察です。
キー連打の取りこぼし現象の原因は
キー入力のスキャン方式は違うためではないでしょうか。
Palette1202 マトリクス方式
MiniAxe キースイッチはMPUに直接接続
の違いがキー連打の差になるんじゃないかと。
名探偵の皆様ありがとうございました。
犯人はOLEDがついてないのにrules.mkでOLED_DRIVER_ENABLE = yes
のままにしたことでした。
= noに書き換えたことでど安定しました。
OLED読み込み→ついてないよう→time outで戻ってくる、
みたいなアルゴリズムで動いてるっぽいですね。
これでガンガン連打可能!
同鍵連打秒4くらいまでは体感で確認!
薙刀式の次の動画の編集が捗るゥ!
ありがとうございました。作者さんにも一報入れておきます。
この問題に関係しないようです。訂正します。
OLED_DRIVER_ENABLE = no
にすれば改善されると思います。
OLEDのコメントを読んでから検索した結果
を参考のために残しておきます。
redditにキー入力とOLED関連 2スレッド
QMK on pro micro - low matrix scan frequency (~11)
Lily58 with elite-c ghosting
原因調査するためのデバッグ情報
qmk-firmware/docs/ja/newbs_testing_debugging.md
キースキャンにかかる時間の測定
#define DEBUG_MATRIX_SCAN_RATE
ちょうど入れ違いでしたね。
OLEDが犯人とは思わず全然違うところを探してました。
スピードスイッチにしたら反応は良くなるけど連打はこぼれるとか、
表面実装の半田付けとか、物理の方ばかり調べてました…
あるものの間違いと思わせといて、ないものが犯人とは。
ミステリーのネタによくありそう。