
このページではKeyballのファームウェアの書き換え方法を説明します。タイトル通りで、今回は、トラックボールにマウス機能を追加して見ました。
はじめに
note 2024/05/04時点でのファームウェアの書き換え方法です。
前回に続き、ファームウェアをいじります。今回はトラックボールを動かすと自動でlayerが切り替わりトラックボールが動いている間、そのlayerを維持。トラックボールを動かさなければ元のlayerに戻るという便利な機能を追加します。layerが切り替わっている間は設定してあるマウスボタンキーが有効になりマウスのように使えるという奴です。
2つ試したのですが、期待通りに動いて頂けのはこちらです。縦横スクロールに対応しており、片手でのマウス操作に優れてると感じました。但し、私の環境ではコンパイル時にサイズオーバーで失敗してしまい、少しファイルの編集をしました。
こちらも試したのですが、私の環境だとコンパイルに失敗しました。QMKのバージョン違いが原因なのか、マップされてるキーコードが存在しないようです。数カ所修正すればコンパイルはできましたが、何故かトラックボールが無い方をPCと繋げて動かすと動作が安定しなかったので諦めました。
最初は必要ないかなと思っていたのですが、片手でスクロールまで出来るのは本当に便利ですね。 keyballの使い勝手がガツンとUpするので導入お勧めです。
ファイルを準備する
まずはフォルダを作成して必要なファイルを準備しましょう。前回使用したこの場所に適当な名前でフォルダを作成し、その中にファイルを配置します。
%USERPROFILE%\qmk\keyboards\keyball\keyball61\keymaps
今回は私はauto_scrollにしました。あとはこの中に以下の3ファイルをダウンロードして配置してください。今回はkeymap.hは編集しないです。
Keymapを編集する
まずはファイルサイズを削るためにconfig.hから修正します。Pro Microって容量が非常に小さく28Kしかないようで、すぐに容量が逼迫します。こちらのページを参考にさせて頂き、容量を削減してみました。

- config.h
/*
This is the c configuration file for the keymap
Copyright 2022 @Yowkees
Copyright 2022 MURAOKA Taro (aka KoRoN, @kaoriya)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
//#ifdef RGBLIGHT_ENABLE <- comment out
//# define RGBLIGHT_EFFECT_BREATHING <- comment out
//# define RGBLIGHT_EFFECT_RAINBOW_MOOD <- comment out
//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
//# define RGBLIGHT_EFFECT_SNAKE
//# define RGBLIGHT_EFFECT_KNIGHT
//# define RGBLIGHT_EFFECT_CHRISTMAS
//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
//# define RGBLIGHT_EFFECT_RGB_TEST
//# define RGBLIGHT_EFFECT_ALTERNATING
//# define RGBLIGHT_EFFECT_TWINKLE
// #endif <- comment out
#define TAP_CODE_DELAY 5
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
元のコードから4行コメントアウトしました。LEDの設定をゴッソリと削りました。次に rules.mkの修正です。
- rules.mk
RGBLIGHT_ENABLE = yes
OLED_ENABLE = yes
VIA_ENABLE = yes
GRAVE_ESC_ENABLE = no
EXTRAKEY_ENABLE = yes // この一行を追加する
こちらは無くても動きます。前回の音量調整を有効にしているだけです。 EXTRAKEY_ENABLEを有効にするとサイズが大きくなるので使わない人は追加しない方が良いですね。
コンパイルする
前回同様、QMK-MSYSからコンパイルを行います。まず、qmkフォルダに移動し、下記のコマンドを実行します。私の場合は、 keyball61で、auto_scroll というkeymapを元にビルドしているので、下記の内容に変更しています。
$ make SKIP_GIT=yes keyball/keyball61:auto_scroll
少し待つとqmkフォルダ直下にkeyball_keyball61_ auto_scroll .hex という名前のファイルができあがっていれば成功です。
ファームウェアを書き込む
Pro Micro Web Updater を開いてください。使い方は、下記を参考にTSSRケーブルを抜いた状態で片方ずつ書き込みを行ってください。
QMKファームウェアの書き込み(Pro Micro Web Updater利用)
さいごに
ここから更なる学びを共有。常識かもしれませんが、自作初心者には発見が多い。
- ファームウェアを書き換えた場合は、remap上で一回、Reset Keymapしましよう。
- これをやらないと私の場合、新しいキーマップが反映されませんでした。

- 縦横スクロールの方向の逆転を直しましょう。
- 私は直しました。User6とUser7のキーを配置してください。押下する度に縦横の方向が逆転してくれます。
