QMKを使っていて特に困ってはいないんだけども、前の記事でTofuケースにステンレスウェイトを導入した勢いで、VIAにも手を出してみたという話。
VIA Configuratorは対応ファームウェアを使ってキーマップやLED設定を即時変更できるソフトウェア。っていうのが一番近い説明なのかなぁ。もう少し具体的には、WebインタフェースのQMK Configuratorに近いものだけど、キーマップを変更するたびにコンパイルと書き込みという作業をまるっとなくして、PCBのEEPROM内に必要な情報をもたせておいて、VIA Configuratorアプリだけでダイナミックに変更を反映させてしまうもの。
ただ、VIA自体にはいくつか制限があって、ややこしい機能やQMKのキーコードでも一部使えないものなどがあったりはする。60%キーボードを普通に使う分には特に問題が出ることはないのだけど、QMKで満足しているなら、頻繁にキーマップをいじりたいとかがなければ特に手を出す必要はないと思う。2020年5月時点で対応しているPCBは150種類ほど。徐々に対応されていっている感じ。
なんかエンドゲームな高価なキーボードじゃないと対応してなさそうって思おってここまで避けてきていたけども、久しぶりにWebサイトを見に行ってみたら、普通にDZ60の対応ファームウェアも出ていた。
そう、VIA Configuratorを利用するには、これに対応したファームウェアが必要になるのだ。ただし、対応ファームをコンパイルするのは普通にQMKになるので、自分で対応させてしまえばいいとも言える。これも結構ハードルあって、自分でやってみたもののキーマップは問題なく動いたけど、LEDでどうしても認識してくれなかったりと自分には案外ハードル高かった。
↑まずは自分の使っているPCBのがリストされているかを確認、それをダウンロードしておく。そしてVIA ConfiguratorのアプリはWindows、Mac、Linux版があるので、それぞれ最新版をこちらからダウンロード。
手元にあるのは遊舎工房で購入したDZ60 REV 3.0。バックライトがなくてアンダーグローのRGB LEDが搭載されているやつです。なので対応ファームウェアは「dz60_via.hex」ですね。
ダウンロードしたVIAを対応のファームウェアは、実はQMKでコンパイルされているものなので、初回だけはこれをQMK環境からこれらのファームウェアをインストールしておく必要があります。QMK Toolboxを使うと早いと思う。
QMK Toolboxを起動したら、「Open」ボタンで先程ダウンロードしたファームウェアを選択する(と、ファームウェアへのパスが自動的に入る)。そして、Microcontrollerから「atmega32u4」を選択しておく。これで書き込み準備ができた。その状態がこれ↓
書き込むには、PCB上のリセットボタンを直接押すか、あるいは現在のキーマップで「RESET」に割り当ててあるキーを押すると黄色い文字でDFUモードに入った旨の表示がされるので、ここで「Flash」ボタンを押す。指定したファームウェアの書き込みが開始されて、ものの数秒で完了する。
基本はこの1回だけのファームウェアの書き込みが終われば、あとはVIAアプリだけで済むのでもうToolboxをいじることはなくなります。
↑これがVIAのスクリーン。次回からはVIAのアプリケーションを起動すれば自動認識してこのスクリーンになります。
VIAを対応のファームウェアがインストールされていない場合は、「Searching for device…」のまま先へ進まなくなります。インストールがうまくいっていないか、間違ったファームウェアを使用しているなどが原因かと思います。
- できること
- 即時反映されるダイナミックなキーマップ変更
- 再びファームウェアを書き直す必要がない
- RGB設定が直感的に行える
- キーマクロも可能
- Windows、Mac、Linux用のアプリがある
- 設定を外部ファイルとして保存・読み込みが可能
- できないこと
- 一部、使用できないキーコードがある
- 原則としてキーマップのレイヤーは4枚固定になる。
- 自分でPCBをVIAで対応させようとするとドキュメンが貧弱
キーマップ固定が困るっていう方もいるかも知れないです。このあたりは工夫が必要。そして最も問題なのが一部のキーコードが使えない部分です。何が使えないのか正確に調べられないのだけど、私が使っているときに駄目だったのがあった。
60%キーボードのため、スラッシュが右シフトと兼用の1.75uになっているわけですが、このためのコードはLSFT_T(KC_SLSH)を使っていました。長押しでシフト、タップでスラッシュですね。ところがこのLSFT-Lを「Any」を使っても認識してくれません。
で、結局こうなりました
MT(MOD_LSFT,KC_SLSH)
これをAnyで割り当ててうまくいきました。
プリセットでMO、TG、TT、OSLなどは使えますが、Anyを使えばLM、LTなども問題なく使えますが、場合によりだめだった場合には他の方法を試すという試行錯誤は少し必要になるかも知れないですね。
RGBは直感的なのでわかりやすいかと思います。
余談になりますが、VIAのドキュメント読めば自分でPCBをVIAを対応にすることはそれほど難しいことではなくて、私もBM60を対応させてみたのですが、キーの方は問題なく動いてくれたもの、どうしてもRGB部分がうまく動いてくれません。今そこで止まっています。もう少しわかりやすいドキュメンがや情報があるといいんですけどね…。まぁ将来の楽しみにということで。
コメント