Vialに対応したcocot46plusのファームウェアを作る
以下の公式ドキュメントに沿って進める.
まず,物理レイアウトをVialに伝える部分を作る.
cocot46plusは作者がVia用のJSONを公開してくださっているので,これをベースに要らない項目を落としてvial.json
を作る.
一旦できたものがこちら.
概ねいい感じっぽいが気になるポイントがいくつかあるので,調査・修正する.
- KLEと違ってラベルが表示されないのはそれで意図通りなのか
- 1.25uのキーをそのサイズで表示させたい
- トラックボール下のキーが重なっているのでそれを防ぎたい
1点目は他のvial.json
を試すかぎりラベルは見えなくてOKでキー位置とマトリクスの対応がちゃんと対応できていれば良いっぽい.残り2点は一旦放置して動作するところまで持っていってから改良する.
次は本格的にファームウェアを書いていく.
ガイドに従ってqmk doctor
を実行するとavr-gcc
が新しすぎると言われた.
$ qmk doctor
[snip]
Ψ Found avr-gcc version 9.4.0
⚠ We do not recommend avr-gcc newer than 8. Downgrading to 8.x is recommended.
[snip]
9.xだと何か非互換なのかなと思いきやDrashna曰く,生成されるバイナリサイズの話らしい.マイコンを変えて容量も16MBと十分なので今回は無視する.
vial-qmk
にはcocot46plusのコードが含まれていないので本家QMKから持ってきてデフォルトキーマップでビルドすると,前回と同じエラーが出た.これまた前回と同じ修正でお茶を濁す.
$ cp -r ../qmk_firmware/keyboards/aki27/cocot46plus/ ./keyboards/aki27/
$ make aki27/cocot46plus:default
Making aki27/cocot46plus with keymap default
Generating: .build/obj_aki27_cocot46plus_default/src/info_deps.d [OK]
arm-none-eabi-gcc (Arm GNU Toolchain 13.3.Rel1 (Build arm-13.24)) 13.3.1 20240614
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[snip]
Compiling: platforms/chibios/drivers/i2c_master.c In file included from ./lib/chibios/os/hal/include/hal_pal.h:174,
from ./lib/chibios/os/hal/include/hal.h:306,
from platforms/chibios/gpio.h:18,
from platforms/gpio.h:21,
from platforms/chibios/drivers/i2c_master.c:30:
platforms/chibios/drivers/i2c_master.c: In function 'i2c_init':
././platforms/chibios/boards/QMK_PM2040/configs/config.h:17:26: error: 'D0' undeclared (first use in this function)
17 | # define I2C1_SCL_PIN D0
|
[snip]
[ERRORS]
|
|
|
make[1]: *** [.build/obj_aki27_cocot46plus_default/i2c_master.o] Error 1
make: *** [aki27/cocot46plus:default] Error 1
Make finished with errors
Build support 2の最後までやってmake aki27/cocot46plus:vial
が通るところまで行った.
ロータリーエンコーダーのサポートはあんまりやることなくて,rules.mk
への追記とvial.json
にエンコーダーを追加するくらい.
ライティングはあまり興味ないので,一旦飛ばしてカスタムキーコードの設定に行く.
ちなみにエンコーダー追加したら物理レイアウトもいい感じになった.
カスタムキーコードの追加完了.今はkeymap.c
内のenumではなくてkeyboard.json
内でカスタムキーコードが設定されており,Vialの対応状況は分からないが一旦進める.
だいたい完成したと思うが実際にフラッシュする前にやっておきたいのが以下の2つ.
- ファーム書き込み時のPCBからのリセット・ブート方法の確認
- オートマウスレイヤー機能
コンスルーを基板に挿してしまうとProMicroのブートボタンが押せなくなり何回も抜き挿しするのは避けたいので,特に一点目はチェックしておきたい.
リセットボタンダブルタップでブートローダーに入るのがPro Micro RP2040のデフォルトっぽいので,そのまま進める.
昨日時点でVial化は成功
ただ,いくつか出来ていない部分があるので引き続き進める.ここから先はVialをQMKのexternal userspaceで使用できるかの確認も兼ねて進める.
- auto mouse layerが効かない
- レイヤーごとにライティングを変えたい
- OLEDに情報を反映
- FWを更新したときにキーマップなどは保存されるのか