ジョイスティックデバイスをQMK Firmwareに最適化させたStickPointを作った

tl;dr

  • スライドタイプの小型ジョイスティックデバイスを、マイコンを使って、PIMORONI Trackball互換デバイスにしたよ
  • KMK Firmwareで動かしていたけれど、QMK Firmwareで動かしたらめっちゃ移動量多くてチューニングしたよ
  • Boothにてモジュール販売中

ジョイスティックデバイスをPIMORONI Trackball互換モジュールにする

パレットシステムさんの作っているAZ1UBALLというプロダクトがあります。

booth.pm

こちらは、1Uに収まるトラックボールバイスを、マイコンを使ってPIMORONI Trackballと同じI2Cプロトコルで動作するようにしたプロダクトです。

以前、こちらを使って操作デバイスを作ってみたことを記事にしました。

74th.hateblo.jp

この「PIMORONI Trackballと同じI2Cプロトコルを採用する」というアイディアが凄く良いと思いました。QMK Firmwareや、KMK Firmwareでは既にPIMORONI Trackball用のモジュールが作られており、こちらを有効化するだけで使うことができます。さらに、操作感のチューニングをキーボードファームウェアに依存せず、デバイス側のマイコンで行うことができます。

これから、秋月で売られているジョイスティックデバイスを、マイコンを使ってPIMORONI Trackball互換モジュールにしてみたいと思いました。こちらを、実際に作り込み、天キーVol.4にて持ち込みました。

この制作については既に記事にしました。

74th.hateblo.jp

74th.hateblo.jp

マイコンにはCH32V003を利用しました。これは秋月で50円で買える格安なRISC-Vマイコンです。

QMK Firmwareへの最適化

一方、KMK Firmwareで使えることは確認したものの、最もよく使われるQMK Firmwareでどのように使えるかを確認していませんでした。これは、自分がQMK Firmwareを使わずにKMK Firmwareを中心に使っていたため、面倒がったためです。Sparrow62v2が、左右分割にIOエキスパンダーMCP23017を使っていて、QMK Firmwareへの対応が簡単ではなかったのもあります。

しかし、モジュールを販売するためにはやはりQMK Firmwareで動きを確認する必要があると思っていました。そして、副業が一つ片付いたこともあって、やっと手を付けました。

実際にQMK Firmwareで動かしてみると、凄く俊敏に動きました。QMK FirmwareのPIMORONI Trackballには移動量を調整する PIMORONI_TRACKBALL_SCALE というパラメータがあるのですが、これを最低にしても操作できないほど早く動きました。これは、KMK Firmwareよりも読み取り頻度が高く、移動量ではなく傾きを伝えるデバイスとしては大きくなりすぎたと考えました。

github.com

そこで、伝える移動量を分割するパラメータを、デバイスマイコン側に追加しました。これにより、移動量を細かく制御することができるようになり、QMK Firmwareの標準パラメータで十分利用可能なぐらいになりました。

github.com

なお、ソースコードはこちらで公開しています。

github.com

QMK FirmwareでPIMORONI Trackball互換モジュールを動かすための手順も整備しました。

github.com

Boothにてモジュール販売中

QMK Firmwareに対応し、組み込みやすくなったところで、このデバイスをStickPointVと命名し、デバイスの販売を開始しました。

74th.booth.pm

QMK Firmwareで使えるようにしたことで、I2Cが出ているOLED付きのキーボードなどで組み込みやすくなったのではないかと思います。

ぜひ組み込みをトライしてみてください。

対応キーボードと、モジュールはキーケットでも販売予定

このモジュールを作った当初から、より安定するケースつきキーボードである必要があると思い、GH60互換ケースに対応したキーボードSparrow60Cを設計しました。やはり、安定感が強いキーボードとの連携が、ポインターバイスには最適です。

こちらは、今後キーケットで展示、販売予定です。デバイスと、組み込みキーボードSparrow60Cの両方を扱う予定です。

keeb-market.jp

ぜひ、キーケットでは触って体感してみてください。

繰り返しになりますが、現在モジュール自体はBooth似て販売中です! きになりましたら、トライしてもらえると幸いです。

74th.booth.pm