コンテンツにスキップ

ファームウェア

LisMはZMKファームウェアを使用しています。
キーマップの変更やモジュールの構成変更には、ファームウェアの書き換えが必要です。


デフォルトでは右がセントラル, 左がペリフェラルです。
build.yamlを編集してビルドすることで逆にすることも可能です。


  • キーマップやコンボ
    config/lism.keymapを編集します。
    (KeymapEditorで変更できる内容です)

  • ハードウェア構成など
    boards/snippets/内のファイルを編集します。
    (例えば、デュアルトラボで片側をスクロール固定にしたい場合など)


モジュール構成とファームウェア

Section titled “モジュール構成とファームウェア”

左右のキーボードには、それぞれ対応したファームウェアを書き込む必要があります。
ファームウェアはモジュールの組み合わせによって異なります。

左側モジュール右側モジュール左手側ファームウェア右手側ファームウェア
トラックボール非トラックボール1lism_left_[c/p]_trackball.uf2lism_right_[c/p]_non_trackball.uf2
非トラックボール1トラックボールlism_left_[c/p]_non_trackball.uf2lism_right_[c/p]_trackball.uf2
非トラックボール1非トラックボール1lism_left_[c/p]_non_trackball.uf2lism_right_[c/p]_non_trackball.uf2
トラックボールトラックボールlism_left_[c/p]_trackball.uf2lism_right_[c/p]_trackball.uf2

[c/p]はcentral または peripheral


ファームウェアの書き込み手順

Section titled “ファームウェアの書き込み手順”

ファームウェアを書き換えるには、キーボードを「ブートローダーモード」で起動し、PCに接続する必要があります。

  1. USBケーブルでPCと接続する

  2. ブートローダーモードで起動する
    以下のいずれかの方法でブートローダーモードにしてください。

    • 反対側のキーボードの外側1番下のキーを押しながら、ブートローダーモードにしたい側のキーボードの外側1番下キーを押します。
      boot1boot2
    • キーボード底面のリセットボタンをリセットボタンを素早く2回押します。
      bottom
    • XIAOのリセットボタンを素早く2回押します。
      xiao

    成功すると、PC上にUSBドライブとして認識されます。

  3. ファームウェアファイルをコピーする

    • .uf2 形式のファームウェアファイルを、表示されたUSBドライブにドラッグ&ドロップでコピーします。
    • コピーが完了すると、キーボードは自動的に再起動します。

キーマップの変更には、主に以下の3つの方法があります。ご自身の環境や好みに合わせて選択してください。

1. ローカル環境でのビルド (推奨)

Section titled “1. ローカル環境でのビルド (推奨)”

ご自身のPCにDocker 🔗VS Code 🔗を準備することで、最も手軽かつ高速にキーマップの試行錯誤ができます。GitHubアカウントは不要で、一度環境を構築すれば、約30秒でビルドが完了します。

こちらが最も推奨される手順です。

準備:

  1. Visual Studio Code 🔗 をインストールします。
  2. Docker Desktop 🔗 をインストールし、起動しておきます。
  3. VS Codeの拡張機能「Dev Containers 🔗」をインストールします。
  4. zmk-config-LisMリポジトリ 🔗 をPCにクローン(またはzipでダウンロードして展開)します。

手順:

  1. Dev Containerの起動

    1. クローンしたリポジトリのフォルダをVS Codeで開きます。
    2. 画面右下に「Reopen in Container」という通知が表示されたら、そのボタンをクリックします。(初回起動時は環境構築のため数分かかります)
  2. キーマップの編集
    コンテナ内のconfig/lism.keymapファイルがキーマップの定義です。以下のいずれかの方法で編集します。

    • Keymap Editorを利用する場合:

      1. Keymap Editor 🔗を開きます。(GitHubでのサインインは不要です)
      2. SourceからClipboardを選択します。
      3. KeyboardからNew Keyboardを選択します。
      4. KeyboardからCustomを選択し、config/lism.jsonを ドロップ(or 選択)します。
      5. Keymapの内容を削除し、config/lism.keymapをドロップ(or 内容をコピペ)します。
      6. エディタ上でキーマップを自由に作成・編集します。
      7. 編集後、Copy updated keymapボタンから.keymapファイルの内容をコピーします。
      8. VS Codeで開いているconfig/lism.keymapファイルに、コピーした内容を貼り付けて保存します。
    • ファイルを直接編集する場合: VS Codeでconfig/lism.keymapを直接開き、ZMKのキーコード 🔗を参考に編集します。

  3. ファームウェアのビルド
    VS Codeのターミナル(Terminal > New Terminal)で、以下のいずれかのコマンドを実行します。

    • make: 通常のファームウェアを全てビルドします。
    • make single: ビルドしたいファームウェアを対話形式で選択します。
    • make all: ZMK Studio対応版を含む、全てのファームウェアをビルドします。
  4. ファームウェアの書き込み
    ビルドが完了すると、firmware_buildsフォルダ内に.uf2ファイルが生成されます。
    このファイルを、キーボードをブートローダーモードで起動して表示されるUSBドライブにコピーします。

GitHubアカウントをお持ちの場合、リポジトリをフォークしてGitHub Actionsでビルドすることも可能です。
PCに開発環境を構築する必要はありませんが、ビルドに数分かかります。

参考動画 基本的な流れは以下の動画が参考になります。

YouTube Video Thumbnail

手順:

  1. zmk-config-LisM 🔗をフォークします。

  2. Actionsの有効化
    フォークしたご自身のリポジトリの「Actions」タブを開き、「I understand my workflows, go ahead and enable them」ボタンを押してワークフローを有効化します。

  3. キーマップの編集
    キーマップの編集は、Webブラウザ上で完結できます。

    • Keymap Editorを利用する場合
      Keymap Editor 🔗とご自身のGitHubアカウントを連携させることで、グラフィカルにキーマップを編集できます。
      編集後は、エディタの指示に従い変更をコミットしてください。

    • ファイルを直接編集する場合
      フォークしたリポジトリにあるconfig/lism.keymapファイルを、GitHub上で直接編集してコミットすることも可能です。

  4. ビルドの実行とダウンロード
    変更をコミットすると、自動的にGitHub Actionsでビルドが開始されます。
    ビルドが完了したら、Actionsのページから成果物(firmware.zip)をダウンロードします。

  5. ファームウェアの書き込み
    zipファイルを解凍し、中の.uf2ファイルをキーボードに書き込みます。

ZMK Studio 🔗は、キーマップをリアルタイムで変更できるWebアプリケーションです。手軽ですが、ファームウェアのメモリ使用量が増加するため、予期せぬ不具合が発生する可能性があり、この方法は推奨されません。

手順:

  1. Studio対応ファームウェアの入手
    上記「ローカル環境でのビルド」のmake allコマンドで生成される..._studio.uf2という名前のファームウェアを使用します。
  2. ファームウェアの書き込み
    入手したStudio対応.uf2ファイルをキーボードに書き込みます。
  3. ZMK Studioでの設定
    1. ZMK Studio 🔗にアクセスします。
    2. Web BluetoothまたはWeb Serialでキーボードに接続します。
    3. 画面の指示に従い、キーマップを編集します。変更は即座に反映されます。
  1. 「非トラックボール」モジュールには以下が含まれます。

    • 水平ロータリーエンコーダー
    • 垂直ロータリーエンコーダー
    • キースイッチ
    2 3 4