2019年02月17日

【自キ】チャタリングの原因解明

チャタリングは、物理的には細かい振動によって引き起こされる。
僕は軽すぎるバネがダンパーの役を果たしていないからだ、
と仮説を立てて防いでいたが、違ったようだ。

結論から言うと、ファームウェア経由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をバインドすること。
しかし同手がやりにくくなるので、
キーマップを相当考えないといけない課題がある)
posted by おおおかとしひこ at 18:07| Comment(0) | カタナ式 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。