基板とケースの確認
発注した基板とケースが届いたら、寸法などが間違っていないかを確認します。
今回は、基板にスタビライザーの穴開け加工をしなかったので、アクリル板に少し余計な穴が開いていますが、まあ良しとします。
基板は、念のためテスターで確認しておくといいと思います。
はんだ付け
キーソケットとProMicroをはんだ付けします。
画像は発注ミスした基板で練習したものです。
ProMicroは結構高いので、慎重にはんだ付けすることをオススメします。
キーマッピング
QMK Firmwareについては以下を参照しました。
▷QMK MSYSで新規のキーボードファイルを作成
qmk new-keyboard
コマンドを実行すると、以下のようにキーボードの名前やMCUの種類等色々と質問されますが、適当に進めていいです。
このようにqmk_firmware/keyboardsにフォルダが作成されます。
今回はtestフォルダ中のkeyboard.jsonと、keymap.cのソースファイルをVSCODEで編集します。
▷keyboard.jsonの編集
matrix_pinsとlayoutを編集していきます。
matrix_pinsはPt.1で作成した回路図のProMicroの端子番号を指定します。
layoutはKeyboard Layout Editorで生成されたRaw dataを以下のConvert KLE raw to QMK info.jsonでコンバートし、順にペーストしていきます。
{
"manufacturer": "",
"keyboard_name": "test",
"maintainer": "",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"],
"rows": ["D1", "D0", "D4", "C6"]
},
"processor": "atmega32u4",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0000",
"vid": "0xFEED"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "label":"1", "x":0, "y":0},
{"matrix": [0, 1], "label":"2", "x":1, "y":0, "w":1.25},
{"matrix": [0, 6], "label":"3", "x":9.75, "y":0, "w":1.25},
{"matrix": [0, 7], "label":"4", "x":11, "y":0},
{"matrix": [1, 0], "label":"7", "x":2.5, "y":0.5},
{"matrix": [1, 1], "label":"10", "x":8.5, "y":0.5},
{"matrix": [1, 2], "label":"5", "x":0, "y":1},
{"matrix": [1, 3], "label":"6", "x":1.5, "y":1},
{"matrix": [1, 4], "label":"8", "x":3.5, "y":1},
{"matrix": [1, 5], "label":"9", "x":7.5, "y":1},
{"matrix": [1, 6], "label":"11", "x":9.5, "y":1},
{"matrix": [1, 7], "label":"12", "x":11, "y":1},
{"matrix": [2, 0], "label":"13", "x":0, "y":2},
{"matrix": [2, 1], "label":"14", "x":1, "y":2},
{"matrix": [2, 2], "label":"15", "x":2, "y":2},
{"matrix": [2, 3], "label":"16", "x":4, "y":2, "w":1.5},
{"matrix": [2, 4], "label":"17", "x":6.5, "y":2, "w":1.5},
{"matrix": [2, 5], "label":"18", "x":9, "y":2},
{"matrix": [2, 6], "label":"19", "x":10, "y":2},
{"matrix": [2, 7], "label":"20", "x":11, "y":2},
{"matrix": [3, 0], "label":"21", "x":0, "y":3},
{"matrix": [3, 1], "label":"22", "x":1, "y":3},
{"matrix": [3, 2], "label":"23", "x":2, "y":3},
{"matrix": [3, 3], "label":"24", "x":3, "y":3, "w":2},
{"matrix": [3, 4], "label":"25", "x":7, "y":3, "w":2},
{"matrix": [3, 5], "label":"26", "x":9, "y":3},
{"matrix": [3, 6], "label":"27", "x":10, "y":3},
{"matrix": [3, 7], "label":"28", "x":11, "y":3}
]
}
}
}
▷keymap.cの編集
配列にキーコードを入力します。
キーコードについては以下を参照してください。
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_2, KC_DEL, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_L, KC_P, KC_COLN, KC_ENT,
KC_LSFT, KC_P2, KC_P3, KC_C, KC_COMM, KC_P4, KC_UP, KC_RSFT,
KC_1, KC_LCTL, KC_PENT, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT
)
};
▷ビルドと書き込み
QMK MSYSで以下のコマンドでまずはビルドします。
make test:default
ビルドに成功したら、書き込み先のProMicroをPCに接続して、 以下のコマンドで書き込みます。
make test:default:avrdude
リセットの指示が出たら、ProMicroの RST ピンと GND ピンをショートさせ、リセットします。
以上