チャタリングは、物理的には細かい振動によって引き起こされる。
僕は軽すぎるバネがダンパーの役を果たしていないからだ、
と仮説を立てて防いでいたが、違ったようだ。
結論から言うと、ファームウェア経由DvorakJが、
原因だった。
45gの赤軸があったので、
それに交換してもチャタリングは起こった。
(ホットスワップ対応なのでそうやって差分を見れる)
で、アクリルプレートにぱきっと嵌めてないキーがあることを、
全部のキーを触って確認。
スイッチを嵌めた時点ではなく、
キーキャップを嵌めた時点で、
まっすぐ押すだけじゃなく、
前後左右にちょっと力をかけて嵌めたほうがいいみたい。
それでもチャタリングを起こすキーがあり、
それが「っ」と「ん」に当たるキーだった。
半田付け不良でもキースイッチ不良でもないことは、
テスターの導通チェックと、ほかのスイッチと交換してみることで確認できた。
で、しばらく打っていると、
「っ」の表示が遅れて、「xtu」のローマ字が見える。
ああ、そうだった。
DvorakJでは、カナをローマ字に変換して、
IMEのローマ字へ渡しているのだった。
ローマ字でややこしいところ、「っ」「ん」が、
どうやら怪しい。
一方、連続シフトがこぼれる現象が起きていた。
シフトが外れてしまうときがある。
ひょっとすると、
ファームウェアのSandS部分と、
DvorakJのSandS部分が干渉を起こしているのでは、
と仮説を立て、
ファームウェアのスペース部分を、
単独スペースのみにしてみる。
と、とても高速にシフトで打てるようになった。
で、なぜかチャタリングも治った。
推測するに、
ファームウェアのワンショットモデファイアの処理が、
とても重いのではないか?
これによりDvorakJへ渡されるキーが重くなり、
AHKが取りこぼしたり二重入力になっていたのではないか、
という推論である。
つまり、物理機構上のチャタリングではなく、
それを処理するソフトウェア上の問題であると。
しかし、6しかない親指キーのうち2を、
スペース単独にしてしまったので、
モデファイアキーが足りなくなった。
ううむ、キーマップを一から構築せんと…
(miniAxeの親指6キーのデフォルトは、
モデファイアだけでGUI、Ctrl、Shift、Alt、
さらにLower、Raiseと、ギリギリまで煮詰められている。
このうち2つを薙刀式のためにスペース単独にすると、
うち2つを犠牲にしなければならない。
最初はGUIとAltを、
LowerレイヤーかRaiseレイヤーに逃がそうと思ったが、
これらと文字同時押しのショートカットが出来なくなると気づき、
却下。
今あるアイデアは、薙刀式でロールオーバー使用することがない、
TYキーにLowerとRaiseをバインドすること。
しかし同手がやりにくくなるので、
キーマップを相当考えないといけない課題がある)
2019年02月17日
この記事へのコメント
コメントを書く