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

Share
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

【6月の新商品】メモリ液晶・Cherry MX ULP・トラックパッドモジュールが新登場!

【6月の新商品】メモリ液晶・Cherry MX ULP・トラックパッドモジュールが新登場!

beekeebショップに、2026年6月の新商品が続々登場しました🎉 今回は、Cherry MX ULPスイッチ、自作キーボードへ組み込めるZMK対応の超低消費電力ディスプレイや、トラックパッドをモジュールなどをご紹介します! 今回登場した新商品はこちら👇 🖥️ 低消費電力メモリ液晶ディスプレイ モジュール(1.26" / 1.08") ⌨️ Cherry MX ULP タクタイル MX6C-T3NB(5個) 🔳Azoteq TPS43 トラックパッド モジュール 自作キーボードを自分好みにカスタマイズしたい方は、ぜひチェックしてみてください🔍 🖥️ 低消費電力メモリ液晶ディスプレイ モジュール(1.26" / 1.08") ZMK対応の低消費電力メモリ液晶ディスプレイモジュールです。 特徴 * 超低消費電力メモリ液晶 * 1.26インチ・1.08インチの2サイズ * ZMK対応 * ブレイクアウトボード実装済み * 高い視認性 E-Inkみたいな見た目ですが、

By beekeeb
【5月の新商品】ロータリーエンコーダ・ケーブル類・猫キーキャップなど新アイテムが登場!

【5月の新商品】ロータリーエンコーダ・ケーブル類・猫キーキャップなど新アイテムが登場!

beekeebショップに、2026年5月の新商品が続々登場しました🎉 今回は、自作キーボード製作に便利なパーツから、ケーブル、キーキャップなどのアイテムをご紹介します! 今回登場した新商品はこちら👇 🔄 ALPS EC12 ロープロ ロータリーエンコーダ 🔄 ALPS EC11 ロータリーエンコーダ ⚡️ 1N4148 ダイオード - SMDタイプ 🔌 USB-C/USB-A - USB-C 2-way データケーブル 🔗 TRRS メタルケーブル 🌀 L字TRRS 3.5mm 4極 コイルケーブル ⌨️ XVX Lumicat MAO Profile キーキャップセット 自作キーボードの製作やカスタマイズを楽しみたい方は、ぜひチェックしてみてください! 🔄 ALPS EC12 ロープロ ロータリーエンコーダ (1個) 高さを抑えたロープロファイルタイプのロータリーエンコーダです。 音量調整やスクロール、レイヤー切り替えなど、キーボードの操作性をさらに高めることができます。 特徴

By beekeeb
beekeeb、天下一キーボードわいわい会 Vol.11に参加します!

beekeeb、天下一キーボードわいわい会 Vol.11に参加します!

2026年6月6日に開催される天下一キーボードわいわい会 Vol.11(以下:天キーVol.11)にbeekeebもスポンサーとして参加いたします。 当日はbeekeebブースにて、開発中の新作キーボードや人気商品、各種カスタムパーツを展示予定です。実際に触って試せるアイテムも多数ご用意しておりますので、ぜひお気軽にお立ち寄りください。 beekeebのブースでは様々な商品を展示いたします! ⌨️キーボード展示 ◾️minim beekeeb.jpのXで情報を公開中の超ロープロファイルキーボード 「minim(ミニム)」 を展示いたします。 写真だけでは伝わらない薄さや打鍵感、サイズ感を実際に体験していただけます。 開発中のキーボードを直接お試しいただける貴重な機会ですので、ぜひお手に取ってご覧ください。 minim特設ページ▶︎ https://beekeeb-jp.kit.com/minim 🎶 NEW keyboard name 🎶 ………………………………………………… 本日、新キーボードの名前を公開🎉 その名も 「minim(ミニム)」 🐝✨

By beekeeb
【4月の新商品】テンティング・トラックボール・キーキャップなど新アイテムが続々登場!

【4月の新商品】テンティング・トラックボール・キーキャップなど新アイテムが続々登場!

beekeebショップに、2026年4月の新商品が続々登場しました🎉 今回は、分割キーボードや自作キーボードをもっと快適&楽しくするアイテムをまとめてご紹介します! 今回登場した新商品はこちら👇 * 🧲 キーボードケース用 両面テープ付き金属リング * ✋ リストレスト(2個) * ⚪️ 🟣19mmトラックボール(超軽量) * ⌨️ MBK Legend ‡ 60s Red on Black * 🦶 サイズアップ・黒スタンド脚 * ✨ リストレスト クリアタイプ(2個) 分割キーボードやトラックボールキーボードを使用している方は、ぜひチェックしてみてください! 🧲 キーボードケース用 両面テープ付き金属リング テンティングスタンドや磁気アクセサリーを取り付けるための金属リングです。 両面テープ付きなので、キーボードケースに貼り付けるだけで簡単に使用できます! 特徴 * 強力な両面テープ付き * 磁気テンティングスタンドに対応 * キーボードケースへ簡単取り付け * 分割キーボードのテンティング化に便利 Toucanキーボードの

By beekeeb