スキップしてメイン コンテンツに移動

Keychron V8 Max を QMK でファームウェア更新してみた記録

Keychronのファームウェア更新方法

Keychron V8 Max というキーボードを使っているのですが、時々チャタリングが起きて、スイッチの端子を無水アルコールで拭いたりしているのですが、すぐ再発してきりがないため、ファームウェア対策を行なってみました。
以下はその記録です。

こちらのページが大変参考になりました。

チャタリングをソフト的に解消しよう - 25KEYS
(36) How to Change the Debounce Time on QMK / Keychron Keyboards - YouTube

ビルド方法

Keychron V8 Max はワイヤレス対応しているので、wireless_playground というブランチに、必要なリソースがある。

https://github.com/Keychron/qmk_firmware/tree/wireless_playground/keyboards/keychron/v8_max

このブランチをcloneして、QMKのDockerからマウントすると、ホストマシンからソースも編集できるし、ビルド成果物も取得できる。

git clone -b wireless_playground \
    --depth 1 \
    --recurse-submodules \
    https://github.com/Keychron/qmk_firmware.git

こちらのBlogを参考にしてdocker-composeファイルを書いてみたが、結局 docker-compose exec -it でシェルで入って作業をしていたので不要かもしれない。

DockerでQMK - weblog.sy

version: '2'
services:
  compile:
    image: qmkfm/qmk_cli
    working_dir: /qmk_firmware
    volumes:
      - ./qmk_firmware:/qmk_firmware
      - ./qmk_userspace:/qmk_userspace
    command: tail -f /dev/null

qmk_userspace は結局利用しなかった。
qmk_firmware は先ほどcloneしたディレクトリをマウントして利用する。

docker-compose up してから、docker-compose exec compile /bin/bash してシェルを利用する。

ソースの修正

冒頭にあげた (36) How to Change the Debounce Time on QMK / Keychron Keyboards - YouTube で説明されている通りに、ファイルを修正する。

% git diff
diff --git a/keyboards/keychron/v8_max/config.h b/keyboards/keychron/v8_max/config.h
index 8ce123a..ebe5c31 100644
--- a/keyboards/keychron/v8_max/config.h
+++ b/keyboards/keychron/v8_max/config.h
@@ -14,6 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */

+#define DEBOUNCE 50
+
 #pragma once

 /* Encoder Configuration */
diff --git a/keyboards/keychron/v8_max/rules.mk b/keyboards/keychron/v8_max/rules.mk
index 4eaf682..52a2529 100644
--- a/keyboards/keychron/v8_max/rules.mk
+++ b/keyboards/keychron/v8_max/rules.mk
@@ -1,4 +1,6 @@
 include keyboards/keychron/common/wireless/wireless.mk
 include keyboards/keychron/common/keychron_common.mk

+DEBOUNCE_TYPE=sym_eager_pk
+
 VPATH += $(TOP_DIR)/keyboards/keychron

キーマップの作成

公式の方法は下記の通り。
Building Your First Firmware | QMK Firmware

qmk new-keymap -kb keychron/v8_max/ansi_encoder を実行すると、qmk_firmware/keyboards/keychron/v8_max/ansi_encoder/keymaps/muuuuwa フォルダが作成され、keymap.c ファイルが置かれた。

これを編集する。

ビルド

qmk compile -kb keychron/v8_max/ansi_encoder -km default がなぜか実行できなかったが、

https://github.com/Keychron/qmk_firmware/tree/wireless_playground/keyboards/keychron/v8_max のREADME に書いてあるように、make コマンドから実行するとうまくいった。

make keychron/v8_max/ansi_encoder:muuuuwa

末尾の : 以降はキーマップの名前を指定する。 

ファームウェアのFlash 方法

QMK Toolbox を起動する

https://docs.qmk.fm/newbs_flashing#flashing-your-keyboard-with-qmk-toolbox

keyboard をDFU モードで接続する

https://github.com/Keychron/qmk_firmware/tree/wireless_playground/keyboards/keychron/v8_max のREADME に書いてある通り

  1. スイッチを Cable に切り替えた状態でケーブルを抜く
  2. ESCキーを押しながらケーブルを挿す
  3. QMK Toolbox上で STM32 DFU device connected: STMicroelectronics STM32 BOOTLOADER (0483:DF11:2200) などと表示されるのを確認する
  4. ESCキーを離す

Flashする

Open ボタンから、ビルドしたbinファイルを指定し、Flash ボタンを押すと、ファームウェアが書き込まれる

コメント

このブログの人気の投稿

たべっ子動物をまじまじと食べてみたよ

たべっ子動物はギンビスの名作ですね。普段は動物の形なんてかまわずムシャムシャたべるんですけど、今日ふと見た形がなんだかよくわからん。書いてあるのも英語でわからんちんなので辞書で調べてみると、リスでした! 横からみるのか~! たべっこ動物を見ると、いつもジョジョの奇妙な冒険で敵役が食べていた事を思い出すなぁ~。そいつはラクダを最後に食べるんだ。

vim で "Shift + 3(#)" を押すと、カーソルが乗ってる単語で検索してくれる

この間、rhtml ファイルを編集していて、Ruby 部分のコードをコメントアウトしようと思い、入力モードにないまま "Shirt + 3(#)" を押すと、カーソルが乗っかっている単語がハイライトされるではありませんか! なんか検索してくれるみたいです。めっちゃ便利! vim のヘルプ |usr_03.txt| Moving around の、 ”SEARCHING FOR A WORD IN THE TEXT” に書いてありました。 SEARCHING FOR A WORD IN THE TEXT Suppose you see the word "TheLongFunctionName" in the text and you want to find the next occurrence of it. You could type "/TheLongFunctionName", but that's a lot of typing. And when you make a mistake Vim won't find it. There is an easier way: Position the cursor on the word and use the "*" command. Vim will grab the word under the cursor and use it as the search string. The "#" command does the same in the other direction. You can prepend a count: "3*" searches for the third occurrence of the word under the cursor. "*" と "#" は同じ機能で検索の方向が違うそうです。そして、 "3*" みたいな使い方も出来るとか。 奥がふかいですね~ vim って。 そしていつも分からないのが、編集画面からバッファ部分へコピペする方法です。できたら便...

三友フレッシュフーズというコーヒー屋さんのチラシ

三友フレッシュフーズ という、駒沢公園の西側にあるコーヒ屋さんでよくコーヒーを買います。スターバックスとかで買うよりも断然安いし、お店で焙煎しているようなので(カウンターの奥にごっつい釜がみえます)気持ち的に美味しいような気がしますね。 そのお店で配っている、コーヒーの美味しい入れ方、というチラシがあって、そこに出てくるキャラがかなりユルくてかわいいのです。なんかいつもそのチラシをもらってしまいます。 友達のyanchi が大学に一緒に通っていた頃によく、よくわからないネコの漫画をノートの端っこに書いていたのですが、それみたいだなぁ~。 全然関係ないですが、昨日、無くしたと思って勘違いしていたフレンチプレスできるマグカップが売っているところを探して渋谷をうろついていたら、AppleStore に人だかりができていました。近くにいってみると、見物人の一人のお姉さんが警備員のおじさんに「あれ、誰ですか」ときいていました。なんと、コーネリアスがライブをしていたのでした。東京はすごいや。