ビルドが通るところまでしか確認しておらず動作未確認です。
大体の説明は以下に書いてある
https://zmk.dev/docs/config/split
具体的な変更例は以下
https://github.com/ootsumasaya/zmk-config-totem/commit/4412c93559bcc10bc0a855fab903f24c44e2d478
以下詳細情報
1. configの追加
https://zmk.dev/docs/config/split#kconfig を見ると以下を追加すれば良さそう
CONFIG_ZMK_SPLIT=y
CONFIG_ZMK_SPLIT_BLE=n
CONFIG_ZMK_SPLIT_WIRED=y
central(PCと通信する側)には以下も追加
CONFIG_ZMK_SPLIT_ROLE_CENTRAL=y
2. dsti追加
https://zmk.dev/docs/config/split#wired-split を参考に wired_split
を追加したい。
device = <&pro_micro_serial>;
はProMicro用なので、ノード設定を見るとXaioの場合は &xiao_serial
らしい
なのでdtsiに以下を追加
/ {
// ...
wired_split {
compatible = "zmk,wired-split";
device = <&xiao_serial>;
status = "okay";
};
};
3. エラーの解消
このままだとundefined reference to '__device_dts_ord_xx'
というエラーがでる
同様のエラー報告 を見るとトラブルシューティング が参考になるとのこと。
ノードが status = "okay";
になっていないことが原因かもと書いてあり、上記エラー報告に載っているPRで&uart0
に対してstatus = "okay";
を設定している。
xiao bleの場合、この&uart0
に相当するノードを探したい。
ピンの設定をまとめたPin Control Fileというものがあるがらしい。
zephyrのソースコードで探すとnrf52840.dtsiがあり、uart0
が記載されていた。
なので以下もdtsiに追加
/ {
// ...
}
&uart0 {
status = "okay";
};