記事一覧に戻る

ZMKファームウェア生成ツールを作り始めました

ZMK開発プロジェクト

なぜこのツールを作ろうと思ったのか

自分がZMKで挫折した経験がきっかけでした。

ファームウェアという壁

自作キーボードを作る上で、一番のハードルは「ファームウェア」だと思っています。

  • 開発環境の構築が大変
  • 設定ファイルの書き方がわからない
  • エラーが出ても原因がわからない

特に無線キーボードを作りたい場合、ZMKというファームウェアを使うことが多いのですが、これがまた難しい。

無線キーボードを作りたい人は多い

  • ケーブルがないのはスッキリ
  • デスクの自由度が上がる
  • 持ち運びが楽

でも、ZMKのハードルが高くて諦める人も多いんです。

ZMKって何?

ZMKは、無線キーボード向けのオープンソースファームウェアです。

QMKとの違い

項目QMKZMK
接続方式有線のみ無線対応
バッテリー-省電力設計
ビルド環境ローカルGitHub Actions

ZMKの特徴は:

  • Bluetooth対応 - 無線接続が標準
  • バッテリー管理 - 省電力で長持ち
  • クラウドビルド - ローカル環境不要

でも難しい

# ZMKの設定例
behaviors {
    ht: hold_tap {
        compatible = "zmk,behavior-hold-tap";
        #binding-cells = <2>;
        tapping-term-ms = <200>;
        // ...続く
    };
};

こんな設定ファイルを書く必要があります。初心者には厳しい...。

どんなツールを作るのか

コンセプト

「GUIでファームウェア生成、環境構築不要」

初心者でも30分で無線キーボードのファームウェアが作れることを目指します。

主な機能

  1. キーボード選択

    • 対応キーボードをリストから選ぶだけ
  2. キーマップ設定

    • ドラッグ&ドロップでキー配置
    • レイヤーも視覚的に設定
  3. ファームウェア生成

    • ボタン一つでビルド
    • ダウンロードしてキーボードに書き込むだけ

技術スタック

現時点での計画:

  • フロントエンド: Next.js + TypeScript
  • UI: Tailwind CSS
  • ビルド: GitHub Actions API
  • ホスティング: Vercel

現在の開発状況

完了したこと

  • 要件定義
  • 技術スタック選定
  • ワイヤーフレーム作成

これから

  • プロトタイプ作成
  • キーマップエディタ実装
  • GitHub Actions連携
  • ベータテスト

今後の予定

MVP(最小機能版)

1〜2ヶ月で最小機能版を完成させる予定です。

最初は対応キーボードを限定して、基本的なキーマップ設定とビルドができる状態を目指します。

ベータテスト

ある程度形になったら、ベータテスターを募集するかもしれません。実際に使ってもらってフィードバックをいただきたいです。

フィードバック募集

「こんな機能が欲しい」「こういう使い方がしたい」などあれば、ぜひ教えてください。TwitterのDMやGitHubのIssueで受け付けています。

さいごに

このツールで、一人でも多くの人が無線自作キーボードを作れるようになれば嬉しいです。

開発の進捗はこのブログで共有していきます。

応援していただけると励みになります!


関連リンク