keyball44の設定
環境
$ git -v
git version 2.39.3 (Apple Git-146)
$ brew -v
Homebrew 4.3.15
メルカリで、組み立て済みのkeyball44を購入。
あとで調べることリスト
- VIAってなに?
- Bootloaderってなに?
-
caterina, dfu, copuってそれぞれどういう意味?- ProMicroならCaterina、Elite-CやKeyMicroなどのProMicro互換マイコンならDFUを選択する感じらしい
- https://salicylic-acid3.hatenablog.com/entry/remap-manual
-
コード繋いだら、左右ともにキーボードのLEDが光ったから、接続はできてそう
外部キーボード使うの初めてだから、Mac側の設定がわからん
を参考に「システム環境設定>キーボード>キーボードの種類を変更」を押したら、以下が表示された
今回買った、keyball44は、キーボードに文字とか書いてないし、そもそもキーが少なくて左右に2つもShiftキー割り当てたりもしない。
公式ビルドガイドってのがあり、そこに「正規ファームウェアの書き込み」って章があった。これかな?
こんな記事も見つかった。この通りに進めるのもいいかも
Remap開いてみたけど、「対応デバイスが見つかりませんでした」ってなる
付属してたキーボード→PCのケーブルの端子がTypeAだったから、家にあったTypeA→Cに変換するコネクタ使ったけど、このコネクタがデータ転送に対応してないとかある?
可能性低そうではあるけど。
とりあえずファームウェアをダウンロードしてみる。
$ brew install qmk/qmk/qmk
$ git clone --recursive git@github.com:qmk/qmk_firmware.git
$ git clone https://github.com/Yowkees/keyball.git keyball
$ ln -s ~/keyball/qmk_firmware/keyboards/keyball ~/qmk_firmware/keyboards/keyball
$ cd qmk_firmware
$ make keyball/keyball44:via
QMK Firmware 0.25.20
⚠ keyball/keyball44: Build marker "keyboard.json" not found.
☒ keyball/keyball44: LAYOUT_right_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_left_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_dual_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_no_ball: Layout macro should not be defined within ".h" files.
Making keyball/keyball44 with keymap via
⚠ keyball/keyball44: Build marker "keyboard.json" not found.
☒ keyball/keyball44: LAYOUT_right_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_left_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_dual_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_no_ball: Layout macro should not be defined within ".h" files.
/bin/sh: avr-gcc: command not found
/bin/sh: avr-gcc: command not found
Generating: .build/obj_keyball_keyball44_via/src/info_deps.d [OK]
⚠ keyball/keyball44: Build marker "keyboard.json" not found.
☒ keyball/keyball44: LAYOUT_right_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_left_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_dual_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_no_ball: Layout macro should not be defined within ".h" files.
/bin/sh: avr-gcc: command not found
/bin/sh: avr-gcc: command not found
sh: avr-gcc: command not found
sh: avr-gcc: command not found
make[1]: *** [gccversion] Error 127
make: *** [keyball/keyball44:via] Error 1
Make finished with errors
エラー出た。"keyboard.json" not found.
って書いてあるな。
一旦公式ビルドガイドを読む
Keyball44はReMAPに対応していますのでと特別なソフトをインストールしなくてもファームウェアの書き込みとキーマップの変更が可能です。
ReMAPを使用するために下記のVIA対応ファームウェアを書き込んでください
Keyball44 VIA対応版ファームウェア REMAPカタログのKeyball44ファームウェアページを開き、Keyball44_viaのファームウェアをFLASHしてください。
FLASHボタンを押すと、書き込み方法の説明が表示されます。 USBケーブルを接続しているのにキーボードが認識されない場合は、半田付けしたRESETスイッチを素早く2回押すと認識されると思います。
※必ず左右両方のPro Microに同じhexファイルを書き込んでください。
■ご自身でファームウェアをビルドする場合
Keyball44の最新ファームウェアはGithubのリポジトリにて公開しています。このkeyballフォルダをお手持ちのQMK_Firmware/keyboardsへコピーして自由にキーマップ等を編集してmakeしてください。
なるほど?
- keyball44でReMAPを使用するためには、Keyball44_viaという、VIA対応ファームウェアを書き込む必要がある
- ↑は https://remap-keys.app/catalog/tAJ9Htme4oNabUkx4832/firmware から手に入る
ことがわかった。
FLASHしてみる
↓
↓
Writing the firmware finished successfully.
とあるけど
Caterina bootloader is not detected
Error: Reading bytes was timeout.
ともあり、失敗してそう。
Remapのサイトでキーボードを追加しようとしても「対応デバイスが見つかりません」となる。
試したいこと
- Bootloaderをcaterinaに設定してFLASHしたけど、他のやつも試す
- リセットボタンを押すと良い、みたいな記述を見かけたから試す
Bootloaderをcaterinaに設定してFLASHしたけど、他のやつも試す
dfuにしてFLASHボタン押したら、ダイアログにででくる機器が変わった。
そんで接続しようとすると以下のエラーが表示された。
Error: Unsupported device: Vendor ID: 43e Product ID: 9a39
次は、Bootloaderをcopyにして試す
FLASHをクリックしたらフォルダ選択を促されて、適当にダウンロードフォルダを選択したら、以下のエラーが発生
Bootloaderいじってダメだったから、次はリセットボタンを探す。
あーやっぱリセットボタンを押す手順が抜けてた。
リセットボタンは、Pro microにありそう。
そんで、Promicroがこのキーボードの頭脳で、ここにファームウェアを書き込むわけだから、この作業はキーボードからPromicroを取り外した状態でもできそう。
とはいえ、できればキーボードをつけた状態でやりたい。
どこにリセットボタンあるんだろ。
肝心の書き込み方法は、「リセットボタンを2回押せば8秒間は書き込みモードになる」という情報がありました。しかし、それは純正品の話で、1回でいいだの何回も連打しろだのこの辺は情報が錯綜していました
カバー外したら、リセットスイッチっぽいものを発見!
ここのダブルクリックを、いろいろタイミング変えて何度も試してるけど、promicroとかarduno microとかそういうデバイスがここにでてこない
パッと考えられる可能性としては
- 組み立て済みのやつ購入したけど、組み立てでミスってる
- PCに接続するケーブル(とコネクタ)が悪くて、電源供給はできてるけどデータ転送ができてない
ケーブルは別のやつを買ってみるとして、組み立てミスと決める前にもっと調べたり試したりして、原因を切り分けたい。
が、キーボード界の未熟者ゆえ、切り分けのために何をすれば良いかわからん。
接続するUSBケーブルを変えたら、うまくいった!
Mac側の設定は何も必要なかった。
スペシャルサンクス
買いたいもの
- TRRSケーブル
- キーボード同士を繋ぐケーブル
- 48cmは欲しい
- やっぱケーブルを巻き取るやつを買って、今あるケーブルを流用することにしたhttps://amzn.to/3M4erk4
とりあえずこの3つをポチった
明日やること
- Remapの設定
- Remapでとりあえず最低限割り当てる
- 他の人のキーマップも探して、細かい部分の割り当てをする
- クリック周りの調整
- ファームウェアとかをいじって「マウスを動かしてから数秒間はレイヤーを変える」みたいなやつがあった気がするからその設定をする
- Amazonでポチったケーブル類が届いたら、セッティングする
↑この記事にある、キースイッチとキーキャップも購入
キーマップを考える
- 1つのキーに、hold時とtap時で別のキーを割り当てることができるので、これは積極的に使っていきたい。
- holdしか使わないキー
- command
- shift
- control
- alt
- レイヤー切り替え
- tapしか使わないキー
- tab
- enter
- capslock
- esc
- 英数切り替え
- spaceは両方使う(distrokidで動的リリックを登録するときにspaceの長押しが必要)
- でもそのときくらいしか使わないから、それは別でレイヤー登録すればいいかも。他は基本タップ
- 本当に時々しか使わないキーは、そのときだけMacbookのキーボード触れば良い
- でもそのときくらいしか使わないから、それは別でレイヤー登録すればいいかも。他は基本タップ
- holdしか使わないキー
- デフォルトレイヤーの配列に関して、普段Macbookで使ってる配列からなるべく崩したくない
- 左手親指で英数、右手親指でかなに切り替える
- 左手小指でctrl
- マウス操作系の割り当て方がいまいちわからん。ここを最初に決めちゃいたい
- 右クリック、左クリック
- スクロール
- ドラッグアンドドロップ
- 進む、戻る
- 四本指の操作
- command + クリックは多用するから、これが打ちやすいように調整
- optionは、cmdとかshiftとか、矢印キーと同時押ししやすいところに配置したい
- 矢印キーとの同時押しは、個別に割り当ててもいいかも
- 右手小指付け根のキーをどう活用するか?
- Remap見てると「MouseBtn1」「MouseBtn2」とかある。これ何?
- パスワードが打ちやすいことは重要
- コピーとペーストはmacroを組もう。特にCってちょっと打ちにくいし
Remapで、今の自分の設定をチートシートとしてPDFに出力する機能もあるのか
HOLD / TAP機能便利
考えてみれば、HOLDかTAPのどっちかしか使わないボタンがほとんどだな
んで、HOLDしたときはShift、TAPしたときはmacroを実行したいんだけどなんか設定上手くいかない
Xで聞いてみた。
なんか上手くいかないなと思ったら、macbookで使ってるkarabiner elementsのキーの入れ替えが、keyball側にも反映されてた。
あと、ctrlとcapslock入れ替えてた部分だけ、最初上手くいかなかった。
左手小指の一個左のキーをctrlにしてもcapslockにしても、ctrlとして使えなかった。
「swap ctrl capslock」ってキーを使ったら上手くいった。
→一瞬できたけどまたできなくなった。なぜ
システム環境設定 > キーボード > キーボードショートカット > 修飾キー > Karabiner DriverKit VirtualHIDKeyboard 1.7.0のCapsLockをControlに変えたら上手くいった。
わりと押しやすいキーが5個空いてる。
どう活用するか?
よく使うキーを配置したい
あと、他では表現しにくいキーを配置したい
思ってるのは、
- cmd + option + 矢印
- option + shift + 矢印
- option + 矢印
- command + 矢印
とかが押しにくそう。可能なら、矢印をデフォルトのレイヤーに組み込みたい。上下だけだもいいから
こうなった。あと3つ
トラックボールだと、文字選択がちょっとやりにくそう。
なんか良い方法ないかな?
いや、これは単純に慣れの問題な気がしてきた。
「 Macのフルスクリーンアプリケーション間をスワイプ」をいい感じにしたいかも。
→ Ctrl + 左右キーでいけるのか。そしたらこうだな
あと2つ。
この記事で、「、」と「。」を捨てて、左クリックと右クリックにしてる人がいた。良さそうだから採用してみる。
さて、残る課題は
- スクロールができない
- 記号系全般
- 数字
スクロールは、layer3を押しながらトラックボールを動かすことで実現できた。
layer1完成
あとは記号と数字
そしてスクリーンショットのショートカットキーを簡単に呼び出せるようにする
数字、記号、ショートカットキーできた。
スクロールの感度も変えられた。
これから慣れは必要だけど、やりたいことはすでに結構できてる気がするな
案外早かった
ファームウェア周りもっとちゃんと理解しないとやりたい設定できないと思ってたけど、ポチポチしてたらいい感じになった
嬉しいような寂しいような
家でしか使わないから、無線化は不要
キーキャップは、最初に送られてきたやつと後から買ったやつがどっちも悪くなかった。この2種類で十分戦える
ポチったキースイッチが届いたらそれをつけてみる
しばらく使ったら、テンティングは試したい
ケースが微妙にシンデレラフィットしてないから、3Dプリンターで自作したい
キーボードの仕組みをざっと理解するのに、本を1冊ポチろう
最初はロープロファイル版のkeyballに興味あったけど、持ち運ぶ訳じゃないからピッチ狭くない方が良いし、ストロークもキーキャップとキースイッチ変えたら大分浅くできそうだから、今の基盤のままでいいかも
というわけでこれからやることは
- キーボードの仕組み的な本をポチって読む
- キースイッチ届いたら交換する
- (しばらく使ったら)テンティング試す
- (どっかのタイミングで)3Dプリンター覚えてケースとか作る
横スクロールできない問題
Shift押せば横スクロールできるぽい
Steer Mouseも気になる。
今見えてる残りの課題は
- ズームイン / アウト
- ブラウザの「進む」「戻る」をいい感じにする
ズームについて、SteerMouseをインストールして、それっぽい設定をしてみたけど上手くいかず、、
まあそんなに使用頻度高くないし、目の前に常にMacbook開いてるわけだから、ズームしたい時だけそっち触ればいいかも。keyballだけで操作できるようにしたところでズームとかの操作は結局トラックパッドの方がやりやすいわけだし
ブラウザの「戻る」「進む」は、vimiumで対応するかな
Auto Mouse Layerを使いたい。
Keyball44_via_v1.3.2
https://remap-keys.app/catalog/tAJ9Htme4oNabUkx4832/firmware から一昨日入れたから多分最新。
Kb 10
ボタンを押したら、Pro microの液晶に「AML ON」って表示される。
カーソルを動かした直後、キーを押したときの挙動が若干変わる(レイヤー0に割り当ててたmouse Button 1が反応しなくなる)ので、レイヤーが切り替わってる雰囲気ある。
ただ、やりたいことはできてない。
j
を押したら左クリック(mouse Button 1)k
を押したら右クリック(mouse Button 2)を実行したい。
調べると、Auto Mouse Layerのときは、レイヤー4に設定したキーが有効になるっぽい。
でもRemapを見るとレイヤーは3までしかない。
レイヤー1にmouse Btn1を設定したらいけた!!!
keyballコミュニティの人たちやさしい!!
新たな問題が発生。
Auto Mouse Layerの時間中、スクロールができなくなってしまった。
スクロールするには、カーソルが止まってから一定時間(0.8秒?)待ってからやらないといけない。
これは普通に使いにくい。困った🙃
Auto Mouse Layerの終了条件は
- カーソルが止まってから一定時間が経過する
- 関係ないキーが入力される
のどっちかが成立したときだった気がする。
関係ないキーってのが何かって話。
エディタとかでもスクロールはするから、文字入力されるようなキーは不用意に押せない。
あとなぜか、リンクをクリックすると全部別タブで開くようになっちゃった。
どういうこと?
いや違う。新規ウィンドウだ。これは困る。。
shiftを押しながらクリックすると別ウィンドウで開くのか。
そういやさっきRemapで設定してたとき、謎にShiftが入力されることがちょこちょこあったなあ
設定が変になってた。別ウィンドウ問題は解決。
layer0とlayer1、両方のholdに「layer3」をセットしたら、スクロール上手くいった
layer1にl
とかt
とか r
とかctrlとかないと、ブラウジングの時とかちょっと不便だな
Auto Mouse Layerを使うなら、layer1はあんまりいじれないものと考えた方が良さそう。
それを加味してもAuto Mouse Layerは便利なので、設定を調整していく。
今の設定だと、謎にいきなりApple Musicが起動したりする w
なんのショートカットキーが反応してんだろ
→F8の再生ボタンだった
Kb15で、スクロールを縦横無尽に動かせるようになるのね
読んだ。
キーボードとは、内蔵されたマイコンが押されたキーを検知し、該当するキーコードを PC に送るハードウェアです。
って説明がすごい簡潔でわかりやすかった。
読んだ。サクサク読めて面白かったし、勉強になった。
後半の電子回路のところは、今のおれにはむずかしかった。
おすすめ。
キースイッチを変えた。
ストロークが浅くなって、だいぶ打ちやすくなった。
キー入力にトラックボールが干渉しやすくなったけど、Mouse Layerにはほぼキーを割り当てず、Layer0のキーがそのまま使えるようになってるから、問題なさそう。
ここまで、トラックボールの干渉によるストレスはほぼ0。
キースイッチ変えたら、手の位置の違いからか、トラックボードの感度も変わった感じする。
元の設定だとカーソルの動きが速すぎた。
今はcpi1000がちょうど良い。
そしてcpiがPro Microに表示されていることに今気がついた
今いるLayerも表示されてる。
GitHub上でビルドしてhexファイルをダウンロード
↓
https://sekigon-gonnoc.github.io/promicro-web-updater/index.html にhexファイルをアップロードして、キーボードに書き込み
ってことができるみたい。
コードの編集もGitHubのエディタでできるから、環境構築なしでファームウェアの編集ができる。
ビルドはここでできる
↑の手順で過去込んだら、既存のキーマップ全部消えそうだな。
Remapで既存のキーマップを保存
↓
hexファイルを使ってファームウェアを書き換え
↓
Remapでキーマップを復元
って流れになるのかな
書き込んだら、Remap上でキーボードを認識できなくなっちゃったな
ボタン押してる感じ、キーマップも変わった。
カーソル移動の感度とかも全部変わった。
Bootloaderモードに入るのもボタンでできたけど、できなくなったから、またリセットボタン押さなきゃ
リセットボタン押すために、ネジ外したりが必要なんだよな
改めて
カーソル移動の感度とかも元のまま。
別のファームウェアに変えても、元の設定が消えるわけではないっぽい。
自分でファイルをいじってファームウェアを書き換える場合、Remapは使えなくなる
って理解で合ってるかな?
それか、hexファイルの書き出し方とか、flashのやり方に問題があったか
キーボード、テンティングするか迷う。
前にちょっとやった時は、接続の安定性が下がった気がしてやめた。でもそれは角度をつけたことが原因じゃなくて、ちゃんと固定できてなくて揺れが発生してたからかもしれない。
しっかりホールドできる装備を用意して、もう一回試すのはありかもしれない。
接続の安定性以外の部分で言うと、重力がかかる分、親指側への移動がやりにくくなって、小指側への移動がやりやすくなった
これはどちらかというとメリットかな。Aの一個外側にCtrlキーをセットしてて、それめっちゃ使うし
あとは角度問題。どの角度が1番やりやすいかは、色々試して探っていく必要がある
角度を高くすると、手の高さが上がるから、場合によってはアームレストがないときつい可能性ある。これ以上デスクにものを増やしたくない
今の平置きの状態で、何も困ってはいない。ただそれを言ったら分割キーボードを使う前も何も困ってはいなかったから、色々探るのは良いこと
自分に合った角度を探るために、とりあえずこれ買ってみるか。安いし。
届いたからテンティングしてみた
キーボードのテンティングの角度を急にすればするほど、トラックボールの感度が敏感に感じるんだな