前書き
久々にキーボードを買い換えました。
数年前に購入したキーボードはQMKでkeymapを変更していたのですが、数年の間に変化している部分やドキュメントが見つからずに詰まった部分があったので備忘録も兼ねて残しておきます。
ファームウェアの書き込みについて
自作キーボードのファームウェアの書き込み方法で代表的なものは以下かと思います。
Web上でできる便利なものが存在しますが、今回はマクロなども組み込みたい、かつ、過去にQMKで作成した設定もある程度流用したいので、QMKを使用します。
Corne V4 Chocolateの作成
組み立て方
ビルドガイドどおりに組み立てれば完成です。
はんだ付けも不要で迷う箇所はありませんでしたので割愛します。
デフォルトでファームウェアも書き込まれているので、そのまま使用することもできます。
QMKの初期設定
gitやqmkのコマンドはインストール済みであることを前提とします。
qmkがインストール済みにも関わらず、途中でエラーが出た場合はqmkをアップデートしてください。
python3 -m pip install -U qmk
python3 -m pip install -U -r requirements.txt
qmkのソースコードをcloneします
# clone
git clone https://github.com/qmk/qmk_firmware.git
# サブモジュールもclone
git clone --recursive qmk/qmk_firmware.git
# defaultのkeymapを複製
cp -r keyboards/crkbd/keymaps/default keyboards/crkbd/keymaps/mykeymap
keymapの変更
/qmk_firmware/keyboards/crkbd/keymaps/mykeymap/keymap.c
を自分好みに書き換えます
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, MO(1), KC_SPC, KC_ENT, MO(2), KC_RALT
//`--------------------------' `--------------------------'
),
中央のキーを使用する方法
中央のキー(T,G,Bの右側のキー、Y,H,Nの左側のキー)を使用する場合はLAYOUT_split_3x6_3
→LAYOUT_split_3x6_3_ex2
に変更します。
配列の桁数が増えるので、忘れずに書くレイヤーのキーを4つずつ増加させます。
rules.mk
rules.mkに記載が必要な場合はqmk_firmware/keyboards/crkbd/rules.mk
を作成します。
COMBO_ENABLE = yes # コンボ
DYNAMIC_MACRO_ENABLE = yes # 動的マクロ
コンパイル+書き込み
書き込みにQMK Toolboxは使用しません
コードが書けたらコンパイルして書き込みします。
# コンパイルのみ
qmk compile -kb crkbd/rev4_1/standard -km default
# コンパイル+書き込み
qmk flash -kb crkbd/rev4_1/standard -km default
↓実行ログ
hayashi@hayashi-Mac-Studio qmk_firmware % qmk flash -kb crkbd/rev4_1/standard -km mykeymap
Ψ Compiling keymap with gmake -r -R -f builddefs/build_keyboard.mk -s flash KEYBOARD=crkbd/rev4_1/standard KEYMAP=mykeymap KEYBOARD_FILESAFE=crkbd_rev4_1_standard TARGET=crkbd_rev4_1_standard_hayashi VERBOSE=false COLOR=true SILENT=false QMK_BIN="qmk"
Generating: .build/obj_crkbd_rev4_1_standard_mykeymap/src/community_modules.c [OK]
arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 8-2019-q3-update) 8.3.1 20190703 (release) [gcc-8-branch revision 273027]
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Size before:
text data bss dec hex filename
0 62960 0 62960 f5f0 crkbd_rev4_1_standard_hayashi.uf2
Generating: .build/obj_crkbd_rev4_1_standard_mykeymap/src/community_modules.h [OK]
Generating: .build/obj_crkbd_rev4_1_standard_mykeymap/src/community_modules_introspection.c [OK]
Generating: .build/obj_crkbd_rev4_1_standard_mykeymap/src/community_modules_introspection.h [OK]
Generating: .build/obj_crkbd_rev4_1_standard_mykeymap/src/led_matrix_community_modules.inc [OK]
Generating: .build/obj_crkbd_rev4_1_standard_mykeymap/src/rgb_matrix_community_modules.inc [OK]
Generating: .build/obj_crkbd_rev4_1_standard_mykeymap/src/default_keyboard.c [OK]
Compiling: quantum/keymap_introspection.c [OK]
Linking: .build/crkbd_rev4_1_standard_mykeymap.elf [OK]
Creating binary load file for flashing: .build/crkbd_rev4_1_standard_mykeymap.bin [OK]
Creating UF2 file for deployment: .build/crkbd_rev4_1_standard_mykeymap.uf2 [OK]
Copying crkbd_rev4_1_standard_mykeymap.uf2 to qmk_firmware folder [OK]
Creating load file for flashing: .build/crkbd_rev4_1_standard_mykeymap.hex [OK]
Size after:
text data bss dec hex filename
0 62960 0 62960 f5f0 crkbd_rev4_1_standard_mykeymap.uf2
Flashing for bootloader: rp2040
Waiting for drive to deploy...
Waiting for drive to deploy...
が表示されたらキーボード側で以下のいずれかの操作を実行して書き込めるようにします。
- BOOTボタンを押しながらPCに接続する
- PCに接続した状態でBOOTボタンを押しながらリセットボタンを押す
- 左親指の真ん中のキー(MO(1))→右親指の真ん中のキー(MO(3)→TABキー(QK_BOOT)の順に押す
以下が表示されれば完了です!
Flashing /Volumes/NO NAME (RPI-RP2)
Wrote 125952 bytes to /Volumes/NO NAME/NEW.UF2