ZMKキーボードにドングルとProspectorを追加する方法

ZMKキーボードにドングルとProspectorを追加する方法

この記事では、既存のZMKキーボードにドングルおよびProspectorのサポートを追加する方法を解説します。
例として HSHS52キーボード を使用しますが、他のZMK対応の一体型や分割型キーボードでも同様に適用できます。

Prospector は、carrefinho氏が開発した、ディスプレイ付きのZMKドングルです。(https://github.com/carrefinho).

参考リンク

ドングルサポートの追加

例として Prospector ドングルを使用しますが、ZMKが対応する任意のBLEボードでも構いません。

まず、 https://github.com/beekeeb/zmk-config-hshs をフォーク(コピー)し、ローカル環境にクローン(ダウンロード)します。​

Kconfig.shield の編集

config/boards/shields/hshs52/Kconfig.shieldを開き、以下を追記します。

config SHIELD_HSHS52_DONGLE
    def_bool $(shields_list_contains,hshs52_dongle)

修正後の内容例

config SHIELD_HSHS52_LEFT
    def_bool $(shields_list_contains,hshs52_left)

config SHIELD_HSHS52_RIGHT
    def_bool $(shields_list_contains,hshs52_right)

config SHIELD_HSHS52_DONGLE
    def_bool $(shields_list_contains,hshs52_dongle)

Kconfig.defconfig の編集

config/boards/shields/hshs52/Kconfig.defconfigに以下を追加します。

if SHIELD_HSHS52_DONGLE

# Max 16 characters in keyboard name
config ZMK_KEYBOARD_NAME
    default "HSHS52"

config ZMK_SPLIT_ROLE_CENTRAL
    default y

config ZMK_SPLIT
    default y

# Set this to the number of peripherals your dongle will have.
# For a unibody, this would be 1. If you have left and right halves, set it to 2, etc.
config ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS
    default 2

# Set this to ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS + your desired number of BT profiles (default is 5)
config BT_MAX_CONN
    default 7

# Set this to the same number as BT_MAX_CONN
config BT_MAX_PAIRED
    default 7

endif

if SHIELD_HSHS52_LEFT のセクションは削除して構いません。左側を中央デバイスとして使用しないためです。

hshs52_dongle.overlay の作成

次に、config/boards/shields/hshs52/hshs52_dongle.overlayを新規作成し、以下を記述します。

#include <dt-bindings/zmk/matrix_transform.h>

/ {
    chosen {
        zmk,kscan = &mock_kscan;
        zmk,matrix_transform = &default_transform;
    };

    mock_kscan: mock_kscan_0 {
        compatible = "zmk,kscan-mock";
        columns = <0>;
        rows = <0>;
        events = <0>;
    };

    default_transform: keymap_transform_0 {
        compatible = "zmk,matrix-transform";
        columns = <12>;
        rows = <5>;
// | SW1  | SW2  | SW3  | SW4  | SW5  | SW6  |                                   | SW6  | SW5  | SW4  | SW3  | SW2  | SW1  |
// | SW7  | SW8  | SW9  | SW10 | SW11 | SW12 |                                   | SW12 | SW11 | SW10 | SW9  | SW8  | SW7  |
// | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 / SW19 /                     \ SW19 \ SW18 | SW17 | SW16 | SW15 | SW14 | SW13 |
// | SW20 | SW21 | SW22    | SW23 / SW24 / SW25 / SW26 /               \ SW26 \ SW25 \ SW24 \ SW23 |    SW22 | SW21 | SW20 |
        map = <
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)                                   RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)                                   RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(4,5)                   RC(4,6) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)
RC(3,0) RC(3,1) RC(3,2)         RC(4,1) RC(4,2) RC(4,3) RC(4,4)   RC(4,7) RC(4,8) RC(4,9) RC(4,10)        RC(3,9) RC(3,10) RC(3,11)
        >;
    };
};

※公式ドキュメントでは physical_layout0 が使用されていますが、動作しなかったため、ここでは default_transform を直接使用します。

config/west.yml の編集

https://github.com/carrefinho/prospector-zmk-module に従い、以下のように追記します。

manifest:
  remotes:
    - name: zmkfirmware
      url-base: https://github.com/zmkfirmware
    - name: carrefinho                            # <--- add this
      url-base: https://github.com/carrefinho     # <--- and this
  projects:
    - name: zmk
      remote: zmkfirmware
      revision: main
      import: app/west.yml
    - name: prospector-zmk-module                 # <--- and these
      remote: carrefinho                          # <---
      revision: main                              # <---
  self:
    path: config

build.yml の更新

build.yamlを以下のように編集します。

include:
  - board: nice_nano_v2
    shield: hshs52_left nice_view_adapter nice_view
    cmake-args: -DCONFIG_ZMK_SPLIT=y -DCONFIG_ZMK_SPLIT_ROLE_CENTRAL=n
  - board: nice_nano_v2
    shield: hshs52_right nice_view_adapter nice_view
    cmake-args: -DCONFIG_ZMK_SPLIT=y -DCONFIG_ZMK_SPLIT_ROLE_CENTRAL=n
  - board: nice_nano_v2
    shield: hshs46_left nice_view_adapter nice_view
    cmake-args: -DCONFIG_ZMK_SPLIT=y -DCONFIG_ZMK_SPLIT_ROLE_CENTRAL=n
  - board: nice_nano_v2
    shield: hshs46_right nice_view_adapter nice_view
    cmake-args: -DCONFIG_ZMK_SPLIT=y -DCONFIG_ZMK_SPLIT_ROLE_CENTRAL=n
  - board: nice_nano_v2
    shield: settings_reset
  - board: seeeduino_xiao_ble
    shield: settings_reset
  - board: seeeduino_xiao_ble
    shield: hshs52_dongle prospector_adapter

⚠️ リセット用ファームウェアを書き込む際は、複数デバイスの電源を同時に入れないよう注意してください。

Prospectorの明るさ設定

Prospectorを光センサーなしで組み立てた場合は、config/hshs52.conf に以下を追記します。

CONFIG_PROSPECTOR_USE_AMBIENT_LIGHT_SENSOR=n
CONFIG_PROSPECTOR_FIXED_BRIGHTNESS=80

レイヤー名の更新

デフォルトではレイヤー名が「0, 1, 2」と表示されます。
任意の名前に変更したい場合は、config/boards/shields/hshs52/hshs52.keymap を編集します。

詳細はhttps://github.com/carrefinho/prospector-zmk-module?tab=readme-ov-file#usageを参照してください。

コンパイル

編集内容をGitHubに反映(プッシュ)したら、リポジトリの “Actions” タブでビルド処理(ワークフロー)を実行します。
完成例は以下のリポジトリにあります。

http://github.com/beekeeb/zmk-config-hshs-with-prospector

よくある問題

ディスクの不正な取り出し

→無視して構いません。

書き込んだファームウェアがUSBドライブに表示されない

→UF2書き込み用のドライブなので、書き込んだ後に中身が見えないのは正常です。

ペアリングできない場合

→ZMKデバイスの電源をすべて切り、各デバイス(ドングル・左右分割)にリセットファームウェアを再度書き込みます。
本ガイドでは Dongle に Xiao nRF52840、分割側に nice!nano v2 を使用しています。
正しいリセットファームウェアが書き込まれているか確認してください。

キー入力が反応しない場合

→Prospectorドングルで使用しているUSBケーブルが「充電専用ケーブル」ではなく「データ通信対応ケーブル」であることを確認してください。

Read more

【新登場】Gateron GT60 Pro+ 磁気式HEキーボード専用PCBの最新モデル

【新登場】Gateron GT60 Pro+ 磁気式HEキーボード専用PCBの最新モデル

beekeebに、Gateronによる最新の磁気式キーボード専用PCB GT60 Pro+ が登場しました。 従来モデル GT60 Pro のアップグレード版として、入力精度・応答速度・安定性のすべてが向上した、次世代のPCBです。 Gateron最新アーキテクチャ採用 GT60 Pro+ は、磁気式(Hall Effect)スイッチ専用に設計された PCB です。 メカニカルスイッチには非対応で、磁気式スイッチの高速性・可変アクチュエーションを最大限に引き出す構造になっています。 主な特徴 * 新アーキテクチャ採用 * 新型ホールセンサー搭載 * ENIG(無電解ニッケル浸金)基板で信号品質が向上 * 60%レイアウト * DIYキーボード向け高性能モデル PCB全体にナノコーティング採用 PCB全体にナノコーティングを採用し、水や湿気に強い設計に。 日常使用でも安心して扱えます。 ※ USB Type-Cポート自体は防水ではありません。 ソフトウェアで多彩なエフェクト 対応ソフトウェアを通じて多数のRGBエフェクトを利用できます。 * プリセ

By beekeeb
【予約受付中】Kailh PG1316S Keycaps 登場! 超薄型ULPスイッチ専用キーキャップ

【予約受付中】Kailh PG1316S Keycaps 登場! 超薄型ULPスイッチ専用キーキャップ

beekeebに、Kailh PG1316S Ultra Low Profile(ULP)スイッチに対応した1uキーキャップが新登場しました。 PG1316シリーズ専用に設計された、極薄スイッチの性能を最大限に引き出すキーキャップです。 ULPに最適化されたキーキャップ このキーキャップは、Kailhによって製造されたPG1316専用キーキャップです。 軸の形状・高さ・固定方式まで、PG1316シリーズに合わせて最適化されています。 対応スイッチ * Kailh PG1316S * Kailh PG1316M * Ultra Low Profile系(PG1316シリーズ) ※ Choc v1 / Choc v2 など他のロープロ規格とは非互換です。 汎用性の高い 1uサイズのみ を販売しており、40%〜分割キーボードに最適な構成を組むことができます。 PG1316Sと組み合わせて最薄構成に Kailh PG1316S は最薄クラスのULPスイッチ。 本キーキャップと組み合わせることで、従来Choc構成より最大約25%薄いロープロファイルキーボードを実現でき

By beekeeb
【予約受付中】Kailh PG1316S(25gf / 40gf)が登場! 超薄型・軽量で人気のULPスイッチ

【予約受付中】Kailh PG1316S(25gf / 40gf)が登場! 超薄型・軽量で人気のULPスイッチ

beekeeb.jpに、話題のロープロファイルスイッチ Kailh PG1316S Ultra Low Profile(ULP) が新登場しました。 今回の入荷は 25gf / 40gf の2種類。 どちらも薄型分割キーボードとの相性が非常に良いスイッチです。 ■ 25gf:超軽量でスムーズな押し心地 作動力は 25 ±10gf と、軽さを追求したモデル。 ほぼ“触れるだけ”で反応するスムーズな押下感が特徴で、 長時間のタイピングでも指への負担が少なく、快適に使えます。 タクタイルピークは 35 ±10gf。 軽いながらもしっかりとした山があり、押し心地のバランスが良いスイッチです。 ■ 40gf:軽さと安定性を両立したスタンダードモデル 作動力は 40gf前後、タクタイルピークは 50〜55gf前後。 25gfモデルよりやや重めで、誤タッチが起こりにくいのが特徴です。 軽すぎるスイッチが苦手な方や、 デスクワークで安定した打鍵感を求めるユーザーにおすすめです。 ■ 超薄型ULPならではの魅力 Kailh PG1316Sは、Kailhの中でも特に薄型で、 コンパク

By beekeeb

年末年始 休業期間のお知らせ

誠に勝手ながら、下記の期間は休業とさせていただきます。 ■ 休業期間 2025年12月27日(土)〜 2026年1月4日(日) ■ 年内最終発送 2025年12月26日(金)15:00 までのご注文 ■ 休業期間中のご注文について 2025年12月26日(金)15:00以降のご注文は、 2026年1月5日(月)より順次発送となります。 期間中もご注文は受け付けておりますが、 発送・お問い合わせ対応は休業明けに順次対応いたします。 ご不便をおかけいたしますが、 何卒ご理解賜りますようお願い申し上げます。

By beekeeb