Takaoka TomohisaさんのAvocado 55という自作トラックボールを組み立てました。
55mmボール+フルキーバックライト搭載のトラックボールです。
<自作トラックボールで実現したかったこと一覧>
// 上記ノートより転載
・Magic Trackpadのジェスチャーと同じようなことを、多ボタンで実現できないか。
・スクロールはスムーズで快適に(Macでも、Windowsでも)。
・ボタンを押しながらメインのボールを動かすとスクロールになること。
・横スクロールもできること。
・ボタンでスクロールの縦方向を変更できること。
・ボタンでスクロール量を変更できること(使いながら変更したり元に戻すことができる)。
・ボタンでスクロールスピードが変更できること(ゆっくり動かすと一行ずつ、早く動かすと一気にスクロールできる)。
・機能の設定はソフトを追加しないでできること(Macでも、Windowsでも)。
・ボール回転をベアリングにすることでと滑らかにしたい。
・iPadでも使えること(他のデバイスに対応)。
ビルドガイド
方針
1. Remap用ファームを書く
2. 無限の可能性-ConTaiNeR- で実装する
3. ボールも自作する
ビルドガイドに書いていないが作成に使ったもの
royal-keyboard-works.square.siteオプションパーツはお買い得です
royal-keyboard-works.square.site
- Amazon | uxcell 押しボタンスイッチ タクトスイッチ 瞬時触覚スイッチ ピン長7.4mm 瞬間 2ピン 20個入り | 押しボタンスイッチ | 産業・研究開発用品 通販
リセットスイッチとして使いました。
真っ直ぐ押し込まないと反応しないので、リセットスイッチの代用には向いていません。 - SMD 1N4148W 高速スイッチングダイオード
1N4148(足付き)を推奨します。
研磨・塗装
- 神ヤス #120 #240 #320 #400 #600 #800 #1000
- 磨くと光沢が出るメッシュのヤツ #1000 #2000 #3000
名前忘れました。 - 光沢トップコート
- 液体コンパウンド #2300 #8000 #17000
- ボナンザ
- サーフェイサー
- ターナー色彩 アイアンペイント アイアンブラック
- 面相筆
- Mr. ネコの手ステーション
- 彫刻刀
マウスセンサーの位置調整に使いました。
作った
- 55mmボール用ホルダー
- Promicroのおうちホルダー
今回作ったstl、ファームウェア、Remap用Jsonを以下にアップロードしています。
ご自由にどうぞ。改変・二次配布もOKです。
https://drive.google.com/drive/folders/1CaFK4_mNfvZvpBzgQbyAzXN9eT15tLBR?usp=sharing
ハードウェア-準備編-
本体
stlファイルが公開されていますので、それぞれ印刷します。
自分で印刷する場合、嵌合調整を念入りにしましょう。
内側からスイッチの潰れ具合を確認すると削り調整しやすいです。
赤丸で囲んだ部分は、スイッチが潰れすぎて押せなくなっています。
ベアリング穴の調整。デザインナイフくらいしか入らないので大変。
Promicroのおうちホルダー
画像の向きで印刷するとサポート無しで印刷できます。
写真の位置にセットして使います。
EndGame? 側から押し込みます。
リセットスイッチに干渉しない様に作成しました。
stlとf3dを公開していますので、ご自由にお使いください。
二次配布もOKです。
ネジ止め、接着をしないため干渉しないかだけ確認します。
55mmボール・55mmボール用ホルダー
熱積層で印刷したため中央部分が膨らんでいます。
目視では分かりにくいのでボディに装着して少しずつ調整します。
引っかかりが無くなるまで#120のヤスリで削りました。
加工の順番は、
ヤスリ->メッシュ->トップコート2回->コンパウンド->ボナンザ2回->コンパウンドです。
55mmボール用ホルダーはトップコートとボナンザ用です。
球体なのでそのままスプレーし辛いので作成しました。
こちらもstlとf3dを公開していますので、ご自由にお使いください。
二次配布もOKです。
Avocado Keycaps
サポート無し、そのまま印刷が楽です。
スイッチ取付穴が塞がってしまう時はデザインナイフで形を整えると良いです。
ボトムプレート
めちゃくちゃ反りました。
ここまで反るとキレイに閉まりませんので、新しいプレートを印刷しましょう。
新しいプレートはPETGフィラメントで印刷しました。*1
PETGにはアイアンペイントが引っ付かないため、サーフェイサーで下地処理をしています。
無限の可能性-ConTaiNeR-
必要数を切り出します。*2
バリはAvocadoに取り付ける際に干渉する部分だけ取り除きます。
そのため、今は取り除きません。
私は LED -> スイッチソケット -> ダイオードの順番で実装しました。
実装難易度が高くなるため推奨しません。
LED
コテ温度を270度にセットします。*3
シルクの三角形にLEDの切り欠きを合わせて2個ずつセットします。
私は右利きなので右側の脚にフラックスを塗布します。
コテにはんだを送り込み、はんだでLEDを抑えながら右側の脚をはんだ付けします。
脚4つ分のはんだ付けでコテ温度が結構下がりますので、20秒くらい間を空けます。
右側が終わったら基板を回転させてはんだ面が右側に来るようにします。
残りをはんだ付けします。
予備はんだをします。
シルクの縦線にダイオードの線を合わせます。
ピンセットが入らないため2回に分けてはんだ付けをします。
予備はんだを溶かしながらピンセットでダイオードを押し込みます。
反対側もはんだ付けをします。
ハードウェア-実装編-
スイッチに無限の可能性を取り付け
バリが引っかかるところのバリを除きます。
私はデザインナイフで切り込みを入れてラジオペンチで握り潰しています。
色々試しましたが、このやり方が一番速く終わります。
スイッチと無限の可能性に距離が空いていますので動作確認を先に済ませます。
Avocado 55はコテがまっすぐ入りますので、完成してからの修正も比較的簡単です。
そのため、動作確認はきっちりやらなくても良いと思います。
配線する場所を確認
今回はPromicroのおうちをシルク面が見えるように使います。
そのため、ビルドガイドと左右が逆になりますので、配線する場所を整理しておきます。
左側シルク | 左側 | 右側シルク | 右側 |
---|---|---|---|
LED | DI | + | +・(VI = Vcc) |
DT | 配線しません | - | -・(GD = GND) |
- | -・(GD = GND) | RST | 配線しません |
- | -・(GD = GND) | + | +・(VI = Vcc) |
SDA | 配線しません | A3 | 配線しません |
SCL | Col5 | A2 | 配線しません |
4 | Col4 | A1 | 配線しません |
5 | Col3 | A0 | (SS = NCS: Chip Select) |
6 | Col2 | 15 | (SC = SCLK: Serial data clock) |
7 | Col1 | 14 | (MI = MISO: Serial data output) |
8 | Row1 | 16 | (MO = MOSI: Serial data output) |
9 | Row2 | 10 | Row3 |
()内はマウスセンサーです。
+と-はどこか一箇所に繋げばOKです。
Avocado 55 は Col (列) 5 x Row (行) 3列 で設計されています。
各Col・各Rowをそれぞれ繋ぐと動きます。*4
繋ぐ順番はどこからでも良いのですが、最短距離で繋いだ方が色々と楽です。
はんだ面
Col5 | Col4 | Col3 | Col2 | Col1 | |
---|---|---|---|---|---|
Row1 | ○ | ○ | × | ○ | ○ |
Row2 | ○ | ○ | × | ○ | ○ |
Row3 | ○ | ○ | ○ | ○ | ○ |
Col
Row
配線のはんだ付け
リセットスイッチをはんだ付けします。
pro microとPromicroのおうちをシルクが合致するように合わせます。
Hack Kbd!!面にpro microが来ていたらOKです。
おうち->ピンヘッダかコンスルー->pro microの順番に重ねてpro micro側のみはんだ付けします。
ピンヘッダを使う場合、はんだ付けが終わったらPromicroのおうち側のピンを短くしておいた方が良いです。後々のはんだ付けが楽になります。
おうち側をはんだ付けせずにpro microを取り外します。
配線をはんだ付けする時に、はんだが垂れてpro microが壊れることがあるそうです。
後はマウスセンサーの取り付けまでビルドガイド通りに作ります。
ファームウェアの書き込みは、いつ書き込んでも良いと思います。
pro microを取り付け、はんだ付けします。
マウスセンサーの動作確認
私の場合、指には反応しますがボールには反応しませんでした。
そのため、ボール-センサー間距離の調整をします。
センサー取り付け部を彫刻刀で彫ります。
動作に問題が無くなったら、マウスセンサー基板ネジ穴に合うようインサートナットを取り付けます。
ボディの内側部分ですので金属に押し付けて真っ直ぐ押し込むことができません。
難しいので要らないプラスチックで練習してから挑戦しましょう。
インサートナット側に樹脂が逆流してきますので、インサートナットに入るコテを使って樹脂を押し返すとスムーズです。
……テープか接着剤で固定した方が無難ですね。
余談ですが、Avocado 55を初めて組立てた時にインサートナットの取付を失敗しました。
結局マスキングテープで固定したのですが、動作に支障はありませんでした。
ボトムプレートを取り付けて完成です!
ソフトウェア
Remap対応ファームウェアを作成しましたので、ご自由にお使いください。
QMK 0.17.00 Windows環境にて動作確認をしています。
hex
- 上方向ホイールスクロール5倍速(デフォルト)
- 上方向ホイールスクロール等速
Remap用Json
Vendor IDが0xFEEDなのでViaには対応していません。
Custom Keycode
Custom KeycodeはFUNCTIONSタブ内のVIA USER KEYにあります。
キーコード | 内容 |
---|---|
KC_CPI_DOWN | カーソル速度Down |
KC_CPI_STD | カーソル速度を初期値に戻す |
KC_CPI_UP | カーソル速度Up |
KC_SCROLLSPEED_DOWN | スクロール速度Down |
KC_SCROLLSPEED_UP | スクロール速度Up |
KC_SCROLL_INVERSE | スクロール方向反転 |
KC_MOUSEMODE_CURSOR | ボール操作をマウス操作に変更 |
KC_MOUSEMODE_SCROLL | ボール操作をマウススクロールに変更 |
KC_MOUSEMODE_ARROW | ボール操作を矢印キーに変更 |
KC_MOUSEMODE_SCROLL_ON_PRESS | 押している間だけボール操作をマウススクロールに変更 |
KC_MOUSEMODE_ARROW_ON_PRESS | 押している間だけボール操作を矢印キーに変更 |
お疲れ様でした!
良きAvocadoライフをお過ごしください!
この記事はColosseum44 (ALPS軸)で書きました。