ぶていのログでぶログ

思い出したが吉日

自作キーボードHelixにトラックポイントを付ける その1

諸君、私はトラックポイントが好きだ!!!! 初めてThinkpadを使ってからトラックポイントにはまり、今の会社に入ってからトラックポイントキーボードを2枚買い、そして自宅にもサーバ管理用に1枚ある! で、先日作成したHelixに付けたくなりできたのが↑の写真であるw

Helixにわざわざトラックポイントを付けようという人はいないだろうけど、Twitterでそこそこ反響があったのでブログにまとめておこうと思う。 なお、長くなったので何回かに分けて書く予定。

はじめに

実は、当初はトラックポイントを付けるつもりはなかった。

しかし、HHKBにトラックポイントを追加している先人がいることを知り、トラックポイントを後付けできることを知ったのだった。 この記事がなかったら、トラックポイントを付けようと思わなかったので感謝しかない 🙇‍♂️

itjo.jp

トラックポイントが後付けできることを知ったので、Helixにも付けられるはず!となり調べたら、Helixが使っているQMKというファームウェアトラックポイントを使う方法が書いてあることを見つけたので、改造を行った次第。

PS/2 Mouse Support

また、ここで紹介している手順や方法は私が試行錯誤した結果であって、他によりよい方法があるかもしれないので参考程度に見てもらえるとありがたい。

副作用

トラックポイントは最高なのだか、Helixはトラックポイントをつける設計になっていないため、以下の副作用が発生する。

  1. キー入力の取りこぼしが発生する
  2. コンパクトさが若干失われる
  3. OLED/バックライトLEDと同時に利用できない

特にこの中で1が一番致命的である。 全く入力出来ないことはないが、かなりタイピング速度が遅くなる。 さすがに、実用にはほど遠くなるのだが最近QMKをいじることでかなり改善したので、私は気にならなくなった(これについては後ほど詳しく書く)。 なお、トラックポイントをUSB接続した場合はこの問題は起こらない。

2は、トラックポイント基板をHelix PCBと底面フレームの間に設置する関係上、4mmスペーサでは隙間がたらないため7mmスペーサに交換する必要がある。 そのため、背が高くなりコンパクトさが失われる。

3は書いた通りだが、使用しないコードやレイヤを削除してファームウェアシュリンクすれば両立することはできる。 QMKをいじる知識がないと出来ないのでハードルが高い。 なお、これもUSB接続の場合は発生しない。

以上がトラックポイントを使う上での副作用だが、ほとんど解決可能な問題であり、かつ、問題の修正や副作用を考慮してもトラックポイントは最高という結論に至った!

トラックポイント基板の入手と接続方法の検討

副作用があることを理解して早速制作を開始!の前に、Helixにはトラックポイント機能はないのでどうにかしないとならない。 そうなると、必然的にトラックポイントの基板を入手することになるが、悲しいことに基板単体を入手することは不可能である*1。 そこで、トラックポイントキーボードから基板を取り外す必要がある。 基板を外したらそのキーボードは使用できなくなるので、生け贄にしていいものを選ぶと良い。 先述したとおりトラックポイント基板とHelixの接続にはPS/2とUSB接続の2種類があり、どちらで接続するかによって利用する基板が異なるので注意が必要だ。 私は、PS/2を使って接続することにしたので、ヤフオクでThinkpadT40の交換用キーボード(FRU:13N9801)を購入した。

トラックポイントの接続方法

Helixとトラックポイント基板を接続する方法について改めて説明する。

  1. USBで接続する方法
  2. PS/2で接続する方法

1は先人たちが行っている方法で、内部的にUSB接続を行っているトラックポイント基板を使い、キーボード本体とトラックポイント基板をUSBハブでつなぐ方法である。 この方法をとる場合のメリットは、HelixのPCBに手をくわえる必要がないところにある。 先人たちはマウスボタンを使うためにキースイッチ部分のメンブレンを切り出して使用しているが、QMKにはMOUSEKEY機能があるためこれを有効化すればそのような手間はない(MOUSEKEYを有効化するとファームウェアのサイズが大きくなり、一部機能が使えなくなるデメリットもある)。 また、副作用でも書いたようなキー入力の取りこぼしもない。

2はトラックポイント基板とQMKをPS/2で接続する方法である。 USB接続の場合と違い、QMK側でコントロールできるということと、トラックポイント基板のマウスキー入力が使えるためにQMKのMOUSEKEY機能を有効化する必要がないというメリットがある。

このように書き出すとUSB接続にした方がよいように思える。 しかし、USB接続タイプのThinkapdキーボードはそこそこ高価で、生け贄にするには少し躊躇する。 また、MOUSEKEY機能が使えるとはいえ、64キーしかないHelixのうち3キーを消費するし、MOUESKEYでミドルクリックを押した状態でマウスを移動してもスクロール状態にならない*2トラックポイントでこれができないのは、個人的には大きなマイナスである。

そんなことで私は2のPS/2で接続する方法をとった*3

なお、トラックポイントの基板の製造時期によってはPS/2だったりUSBだったりするようだ。 確実にPS/2で接続したい場合は、以下のページに載っている基板を搭載した交換用キーボードを入手すると良いと思う。

トラックポイント基板を設置する

f:id:buty4649:20180326134924p:plain

基板が入手できたら次に設置位置を決める。

まずはトラックポイントの位置をきめるのだがオリジナルでは、GHBNの間にトラックポイントがある(上図の青丸あたり)のだがHelixでは、アクリル板の足があるため断念した。。 しかし、その隣のHJNMの間にちょうどよい穴が空いていた(赤丸部分)ので私はここにした*4。 この部分のアクリル板の穴はPCBの穴より小さいため、後述するトラックポイントの延伸を行うために、アクリル板の穴をPCBの穴程度に広げた。

ネジ止め

f:id:buty4649:20180327012639p:plain

トラックポイントの位置をきめたらトラックポイント基板を固定する。 私の使ったトラックポイントの基板にはちょうどよくネジ穴があったため、底面側のアクリル板に穴を開けてM2 6mmネジで固定している*5。 わかりづらいが上図の赤丸部分になる。

4mmスペーサ -> 7mmスペーサへ変更

トラックポイント基板を固定した後、Helixのスペーサを4mmから7mmに変えた。 4mmスペーサでは、HelixのPCBと底面側のアクリル板の隙間にトラックポイント基板が配置できないためである。 7mmを使ったのはHelixのキットについてきたからという単純な理由である。

トラックポイントの軸を伸ばす

トラックポイント基板を設置したら、次はトラックポイントの軸を伸ばす。 いい感じに、Helixのキートップトラックポイントの頭がツライチになるようにする。 延伸する方法は、先人が行っているように真鍮パイプを使う方法を取った(詳しい手順は先人のブログを参照)。

真鍮パイプは、ウェーブ社が販売しているNEW パイプ Cセットを使った。 大きさもちょうどよく、かつ、段々にできるように各大きさがそろっているのがよかった。

ウェーブ NEW C・パイプCセット (1.5/2.0/2.5/3.0)

ウェーブ NEW C・パイプCセット (1.5/2.0/2.5/3.0)

真鍮パイプを入手したらいい感じの長さに切断するのだが、先人も書かれているとおりパイプの切断は本当に難しかった…。 先人の失敗を読み、パイプカッターを買ったのだが、気がはやってキツキツにネジを締めカットしてしまい切断面が折れ曲がり、その結果内径が縮まり1段階細いパイプが通らなくなってしまった。。 これはもうどうしようも無いので、綺麗に切れるまで試行回数を増やしたり、縮まった切断面を鉄ヤスリで削るなどの方法で回避した。

パイプの接着にはエポキシパテを使った。

コニシ ボンド ハイスピードエポ 15gセット #15123

コニシ ボンド ハイスピードエポ 15gセット #15123

で、いい感じに延伸したものが↓これ

f:id:buty4649:20180327020457p:plain

キートップを削る

延伸しただけではキートップがはめられないので削る。 ↓が削ったものである。

f:id:buty4649:20180327020733p:plain

それっぽい感じになっているが、よくよくみると雑に削ったために対称に削れていなかったりする…。

リセット回路の作成

最後にリセット回路を作成する。これがないと正しく動作しないようだ。 リセット回路は、以下の画像を参照。 CLK/DATA/RSTというラインは、トラックポイント基板でいうところのTP_CLK/TP_DATA/RSTに該当する。

https://raw.githubusercontent.com/alonswartz/trackpoint/master/images/collage-reset.jpg

↓が実際に私が作成したリセット回路である。

f:id:buty4649:20180327021722p:plain

右側にある回路は最初に作ったものである。 参考画像のように電解コンデンサを使ったのだが、これが思った以上にでかくHelixを組み立てた時にコンデンサ部分が収まらない状態になってしまった*6。 7mmのスペーサから変更することも考えたが、これ以上背が高くなるのは避けたかったので、積層コンデンサを使った左側の回路に作り直した*7

ここまでのまとめ

ここまででトラックポイント基板を設置・延伸し、リセット回路の作成ができた。 次回は、QMKにトラックポイントを認識させる方法について書きたい。

*1:入手できる方法を知っていたら教えて欲しい

*2:macOSでMOUESKEYを設定したHelixと、普通のマウスで試したが意図した動作はしなかった

*3:本当はUSB接続タイプの基板も用意していたのだが、好奇心でトラックポイント部分の基板を分解したら帰らぬ人になってしまったのだった。てへぺろ

*4:@pluis9さんは私がトラックポイントを付けることを見抜いていた?!

*5:当初両面テープで固定しようと思ったが、何度も試行錯誤するたびに取り外していたので結果としてネジ式にしてよかった

*6:ちょうど、Helixの中央あたりが膨らんでしまったためキーを入力するとカタカタいうようになってしまった。。

*7:抵抗器も小型のものに変更している