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

【新商品】Kailh Chocホットスワップソケット& 19mmトラックボールに新色「チェリーレッド」「ダークグレー」&軽量両面磁気テンティングスタンド登場

【新商品】Kailh Chocホットスワップソケット& 19mmトラックボールに新色「チェリーレッド」「ダークグレー」&軽量両面磁気テンティングスタンド登場

beekeebショップに、新しく2つのアイテムが登場しました! キーボードカスタムを楽しむ方におすすめのパーツと、人気トラックボールの新色をご紹介します。 beekeebショップに、カスタムキーボードユーザーにおすすめの新商品が登場しました。 今回ご紹介するのは以下の2アイテムです。 🪛Kailh Choc ホットスワップソケット 🔮19mmトラックボール 新色(チェリーレッド / ダークグレー) 🧲 軽量両面磁気テンティングスタンド 自作キーボードや分割キーボードを使用、制作している方は、ぜひチェックしてみてください。 🪛Kailh Choc ホットスワップソケット Kailh Choc ロープロファイルスイッチ対応のホットスワップソケットです。 ✅スイッチの打鍵感を試したい ✅スイッチを簡単に交換したい ✅メンテナンスしやすいキーボードを作りたい という方におすすめのパーツです。 特徴 ・Kailh Chocロープロファイルスイッチ対応 ・スイッチの交換が簡単 ・自作キーボード・分割キーボードに最適 ・カスタムキーボード制作に便利

By beekeeb
【25%OFF】Kailh Silent Miniスイッチ セール開催!

【25%OFF】Kailh Silent Miniスイッチ セール開催!

beekeebでは現在、Kailh Silent Miniスイッチのセールを開催しています🎉 人気の静音ロープロファイルスイッチが3月12日〜25日の期間限定で25%OFFとなっています。 静かなタイピング環境を作りたい方や、軽い打鍵感のスイッチを探している方におすすめです。 対象キースイッチ 今回のセール対象はこちらの3種類です。 🦋 Kailh Silent Purple Swallowtail Mini 軽い押下圧で、柔らかく静かな打鍵感のスイッチ。 (5個)¥600 →¥450 🐋 Kailh Deep Sea Silent Whale Mini しっかりした打鍵感がありながら、静音性の高いスイッチ。 (5個)¥500 →¥375 🏝️ Kailh Deep Sea Silent Island Pink Mini 軽いタッチでスムーズなタイピングが可能なスイッチ。 (5個)¥500 →¥375 どれも静音タイプのロープロファイルスイッチで、作業環境やオフィスでも使いやすいのが特徴です。 静音ロープロファイルスイッチの魅力 Kailh Sile

By beekeeb
2026年2月の新商品紹介|beekeeb 最新アイテムまとめ

2026年2月の新商品紹介|beekeeb 最新アイテムまとめ

2月も beekeeb に嬉しい新商品が登場しました!今回は キーボードカスタマイズの幅を広げる3アイテム をピックアップしてご紹介します ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  1. 19mm トラックボール用交換ボール(予約販売中!) (リンク:https://shop.beekeeb.jp/products/19mm-trackball) キーボードのトラックボールを “より滑らかに・快適に” 使うための交換用ボールです。 * 19mm径のトラックボール用交換ボール * 光学センサーに反応しやすい赤を採用 * 素材:樹脂 * 重さ:約18g * 【天キー】のイベントでも好評だったパーツ  トラックボールは使い込むほど汚れや摩耗が出やすいパーツ。 交換用や操作性の向上などが欲しい人におすすめです。  2. Tai-Hao MT 165 狭ピッチ対応 MX ロープロファイル キーキャップ 半透明(5個) (リンク:https://shop.beekeeb.jp/products/tai-hao-mt-165-trans

By beekeeb
【天下一キーボードわいわい会Vol.10】beekeeb出展レポート|自作キーボードの熱量を体感

【天下一キーボードわいわい会Vol.10】beekeeb出展レポート|自作キーボードの熱量を体感

2026年2月8日、 天下一キーボードわいわい会にbeekeebは企業ブースで参加してきました。 キーボードが好きな人が、こんなにも集まる空間があるなんて…! 改めて、日本の自作キーボード文化の熱量を実感した一日でした。 そんな【天キー】(略称)のbeekeebレポートをします! ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 【天キー】ってどんなイベント? 天下一キーボードわいわい 会 (略称:天キー)は キーボード好きに よる キーボードの 祭典です。 自慢の キーボードを 持ってきて 見せたり、 キーボード好き同士で 交流したり、 国内の キーボード開発者から 直接話を 聞いたりする ことも できます。 公式サイト引用:https://tenkey.tokyo/ja/ とにかく、 「自分のキーボードを持ち寄って、わいわい語り合おう!」 というイベント。 個人的に感じた最大の魅力は、 ✔ 触れる ✔ 話せる ✔ 深掘れる という点でした。 それぞれのこだわりポイントを直接聞けるのが本当に面白い。 オンラインでは得られない体

By beekeeb