ReLow60 ファームウェア v1.9 & ReConf v1.2.0:底打ち時の入力抜けを防ぐボトムアウトデッドゾーン

概要

ReLow60 L-HE のファームウェアを v1.9 に、コンフィギュレータ ReConfv1.2.0 に更新しました。今回の更新は1つの機能 ―― ボトムアウトデッドゾーンの追加です。キーを底まで強く押し込んだときや軸を大きく動かしたときに起こり得る入力抜けを解消し、その効きをユーザー自身で調整できるようにしました。この改善は、製品テストにご協力いただいた方からのご指摘を受けて行ったものです。

背景:なぜ底打ちで入力が抜けるのか

磁気スイッチは、キーの沈み込みをホールセンサーの ADC 値(アナログ値)で読み取り、0〜255 の距離に変換しています。ストロークの最も深い部分(底)付近ではセンサーの出力が飽和し、値の変化がほとんどなくなります。

製品テストにご協力いただいた方から、「キーを底まで強く押し込んだり、押し込んだまま軸を大きくぐりぐりと動かしたりすると、底打ち時に入力が一瞬抜けることがある」とご指摘をいただきました。底付近ではセンサー出力が飽和しているため、こうした激しい操作で軸ブレ(ステムのガタつき)が起きると、フィルタ後の値が小刻みに揺れます。ラピッドトリガーは「最も深く押し込んだ点(ピーク)」からの戻りを検出して離す仕組みのため、底付近でこの揺れがピークをわずかに下回ると「離した」と誤判定し、入力が抜けてしまうことがあるのが原因です。

このご指摘をもとに、激しい使い方でも底打ちが安定するよう改善したのが今回のボトムアウトデッドゾーンです。なお前バージョン v1.8 ではスイッチごとの底値の見積もりを引き上げており、距離が完全押下(255)に届きにくくなっていたことも、底付近での揺れの影響を受けやすくする一因でした。

解決:末端を「完全押下」とみなすデッドゾーン

v1.9 では、ストロークの末端の一定範囲を「完全に押し込んだ状態」として扱う仕組み(ボトムアウトデッドゾーン)を追加しました。距離が「255 − デッドゾーン」以上に達したら、距離を 255 に固定します。

  • デッドゾーン内では軸ブレで値が揺れてもボトムアウト状態を維持するため、誤った離し判定(入力抜け)が起きません
  • 影響するのはストロークの末端だけで、アクチュエーションポイントや中間域のラピッドトリガーの感触は一切変わりません
  • 値を 0 にすれば無効化できます

実機テストでは、ごく小さなデッドゾーン(距離換算で 5〜10、約 0.03〜0.06mm 相当)で底打ちの入力抜けが安定して解消することを確認しています。

ReConf から調整できます(v1.2.0)

デッドゾーンの効き具合は好みやスイッチによって最適値が変わるため、ReConf のキャリブレーション画面にスライダーを追加しました。

  • 既定値は 10(多くの環境でそのまま使いやすい控えめな値)
  • 底打ちで入力抜けが残る場合は値を大きく、底でもラピッドトリガーを深くまで効かせたい場合は小さく(または 0)
  • この設定はすべてのプロファイルに共通で適用されます
ReConf のキャリブレーション画面に追加されたボトムアウトデッドゾーンのスライダー
ReConf のキャリブレーション画面に追加されたボトムアウトデッドゾーンのスライダー

設定は更新時に引き継がれます。ファームウェアを v1.9 に書き込んでも、キーマップやアクチュエーション、ラピッドトリガーなどの既存設定はそのまま保持されます。

アップデート方法

書き込みは、ReConf のファームウェアアップデート機能(Web DFU)からブラウザだけで行えます。手順は別記事にまとめています。

ソースコード(GPL-3.0)

ReLow60 のファームウェアは libhmk(GPL-3.0)をベースにしており、対応ソースを公開しています。