🎱

Keyball44 v1.3.2でレイヤー数を増やす(QMK環境不要)

2024/11/08に公開

はじめに

半年ほど前にかみだい(@d_kamiichi)さんの自動マウスレイヤー切り替えファームウェアを使いたい際に一度自力で書き込みをしたことがある。
その時は自分の環境にqmkが使えるような環境構築をしたりと結構難しかったが、keyballの製作者側で自動マウスレイヤーに対応したファームウェアがリリースされたり、有志の方々でブラウザ上で自力のファームウェア書き込みができる環境が整備されていたりととても使いやすい環境になっていた。
(qmkとか数十GBくらい食われて非常にしんどかった記憶がある)

おかげで自作キーボード初心者の自分でもレイヤーを増やすことができた。本当にありがたい。

https://sekigon-gonnoc.github.io/promicro-web-updater/index.html

やっていく

公式のfirmwareを書き込む

https://remap-keys.app/catalog/tAJ9Htme4oNabUkx4832/firmware

  1. Keyballを繋げる
  2. サイトにアクセス
  3. FLASHを押す(Bootloaderはそのままでやった)
  4. モーダルが表示されたらOLEDとオーディオ端子?の間くらいにあるちっちゃいボタンを2回連打する
  5. 選択肢が一つ増えるのでそれを選択して続行
  6. 書き換えが完了する
  7. 左右両方書き換える。片方だけやるとトラックボールが認識しないとかになる

レイヤーを修正してhexファイルを出力する

GitHubアカウントが必要

  • 本家リポジトリ(https://github.com/Yowkees/keyball) をforkする
  • forkした環境で自分好みに修正する。
    • 作業ディレクトリ: qmk_firmware/keyboards/keyball/keyball44/keymaps
    • viaディレクトリをコピーして自分用のkeymapディレクトリとファイル達を作る
      • コピー元をviaにしないとREMAPでキーマップを編集できない。(rules.mkにVIA_ENABLE = yesがあるから)
    • お世話になったサイト: https://mazcon.hatenablog.com/entry/2023/11/10/080000
    • レイヤーを増やすだけならconfig.hに#define DYNAMIC_KEYMAP_LAYER_COUNT 5(欲しいレイヤー数)を設定する
  • GitHub Action用のワークフローファイルを少し修正してキーマップも一緒にpushする
    • 20241107の時点で普通にやろうとするとappdirs 足りないよと言われたので
.github/workflows/build-firmware.yml
...
    - name: Checkout qmk_firmware
      uses: ./.github/actions/checkout-qmk_firmware

+    - name: Install Python dependencies
+      run: |
+        python3 -m pip install --upgrade pip
+        python3 -m pip install appdirs

    - name: Install a link to own source
      run: ln -s $(pwd)/qmk_firmware/keyboards/keyball
...__qmk__/keyboards/keyball
  • WorkFlowを実行する
    • GitHubのforkしたリポジトリにアクセス
    • Actionsタブを開く
    • 左メニューから Build a firmware on demand を選択
    • 右側に出るRun workflowを選択
      • Branch: ブランチ切って作業してたらそれを指定
      • Keyboard: 自分がキーマップ作ったところのkeyball
      • Keymap: 自分が作ったキーマップのディレクトリ名
    • Run workflowで実行
    • 2分くらいかかって終了する
  • 完了したWorkflowの詳細を見る
  • Artifactsに表示されているfirmwareをダウンロードする

自家製hexファイルを書き込む

  • 書き込めるサイトにアクセス: https://sekigon-gonnoc.github.io/promicro-web-updater/index.html
  • ファイルを選択で自分が作成したhexファイルを選択
  • eeprom optionは自分はnoneで実行した
  • flashを選択
  • モーダルが表示されるのでリセットボタン2回押しで反応させて選択する
  • 書き込み処理が走る
  • 左右両方やる

完成

  • REMAPにアクセス: https://remap-keys.app/configure
  • 何回か繋ぎ直したりリロードしてたらkeyballが認識された
    • viaディレクトリから作っていないときはここに表示されなかった
  • レイヤーが増えてる!

Discussion