0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

roBa ZMK firmwareでロータリーエンコーダにマウススクロールを割り当てる

Last updated at Posted at 2025-04-16

はじめに

自作キーボードroBaのキーマップ編集は ZMK firmware を使用して行います

キーマップ編集にはGithubのアカウントが必要であり、手順はkumaさんが以下にて公開しておりますのでそちらを参考にしてください

kumaさんが公開しているテスト用のファームウェアの場合、ロータリーエンコーダにはPAGE_UPPAGE_DOWNが割り当てられています

今回はそちらをマウススクロールに変更する手順を解説します

変更手順

githubの当該リポジトリで以下の2つのファイルを編集してください

  • zmk-config/config/roBa.keymap
  • zmk-config/config/boards/shields/Test/roBa.dtsi

roBa.keymap 追記内容

以下3か所追記します

  • スクロール量の定義の追記
  • behaviorの追記
  • 割り当てたいレイヤーに追加したbehaviorを追記
    (別のものが割り当てられている場合は修正)
roBa.keymap
// #includeのあとのあたりにスクロール量変更の定義を追記

#define ZMK_POINTING_DEFAULT_SCRL_VAL 80

// combosやmacrosと同じ階層に以下のbihaviorsを追記
// スクロール方向を逆にしたい場合は <&msc SCRL_DOWN> と <&msc SCRL_UP> を入れ替えてください

    behaviors {
        encoder_msc_down_up: encoder_msc_down_up {
            compatible = "zmk,behavior-sensor-rotate";
            label = "ENCODER_MSC_DOWN_UP";
            #sensor-binding-cells = <0>;
            bindings = <&msc SCRL_DOWN>, <&msc SCRL_UP>;
            tap-ms = <20>;
        };

// 設定したいレイヤーに sensor-bindings = <&encoder_msc_down_up>; を追記
// 以下は実際にレイヤー0に追記した例

    keymap {
        compatible = "zmk,keymap";

            L0 {
                    bindings = <
&kp Q           &kp L         &kp U         &kp COMMA  &kp EQUAL                                                     &kp F          &kp W  &kp R  &kp Y  &kp P
&kp E           &kp I         &kp A         &kp O      &kp MINUS             &kp LA(LEFT)                 &mkp MB3   &kp K          &kp T  &kp N  &kp S  &kp H
&kp J           &kp X         &kp C         &kp V      &kp PERIOD            &mkp MB1                     &mkp MB2   &kp G          &kp D  &kp M  &kp Z  &kp B
&kp LEFT_SHIFT  &kp LEFT_WIN  &kp LEFT_ALT  &mo 1      &mt LEFT_SHIFT SPACE  &mt RIGHT_CONTROL SPACE      &lt 2 TAB  &kp BACKSPACE                       &kp RS(RIGHT_CONTROL)
                    >;

                    sensor-bindings = <&encoder_msc_down_up>;
            };

        ・・・(省略)・・・
    };

roBa.dtsi 修正内容

追記はしません
当該箇所を 12 から 24 へ書き換えてください

roBa.dtsi
    left_encoder: encoder_left {
        compatible = "alps,ec11";
        a-gpios = <&xiao_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
        b-gpios = <&xiao_d 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
        
        steps = <24>;  // 値を12から24へ変更
        
        status = "disabled";
    };

上記2つのファイルを追記、書き換えすればロータリーエンコーダにマウススクロールを割り当てることができます

あとは上記の変更、保存後にビルドされたファームウェアを以下のkumaさんが公開している手順通り書き込んでください

キーマップのみの変更なのでトラックマウス側のマイコンにroBa_R-seeeduino_xiao_ble-zmk.uf2だけ書き込むのでOKです

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?