第2回は、作る上で悩んだコトを中心に書いていく。
KiCadで基盤の設計を行い、QMK でファームウェアを作っていく。
key-matrixはいろいろ検討した結果2乗マトリクスを採用することにした。
2乗マトリクスについては キーボードのマトリクス方式の分類 を見るのがよさそう。
KiCadで基盤を作っていく
大まかな流れは
- 回路図
- 配置&配線
1. 回路図
今回作りたいキーボードのキー数が96なので11ピン(N=11)
で足りる。
注文して届いたPro Micro互換機を見てみると、QMKで入力したいPINの名称と異なるシルクスクリーンが記載されている。
シルクスクリーンとの対応は、だいたい忘れるので対応する図を作っておいた。
使うピンは SCL~B5、F4~B6
簡単なシミュレーションとして TinkerCADを使うと多少便利だと思う。 www.tinkercad.com
KiCadの基本的な使い方は公式ドキュメントを見てもらうとして
さっと作ったあと「回路シンボルをアノテーション」で各部品にIDを振り、「回路図シンボルにPCBフットプリントを関連付けする」で配置するフットプリントに対応させておく。
2. 配置&配線
基板の配置・配線ウィンドウで「回路図から基板を更新」で、必要なモノが用意されるので配置していく。
配置が終わったら、3Dビューアで確認することを勧める。
QMKでファームウェア作成
さっとQMKを使うならWinならQMK MSYS入れておけばいい msys.qmk.fm
qmk setup cd qmk_firmware/utils new_keyboard.sh # keyboard name : # ... cd ../keybords/pullulant
自分の場合、新規のキーボードを作成するので new_keyboard.sh
を実行する。
keyboard name(pullulant にした)を入れるとそのディレクトリが
qmk_firmware/keybords
に作られる。
2乗マトリクスの設定
とりあえず重要なとこだけ。
rules.mk
# MCU name MCU = atmega32u4 # Bootloader selection BOOTLOADER = caterina
rules.mk
は自分が購入したPro Micro互換機だと
config.h
#define MATRIX_ROW_PINS { B6, B2, B3, B1, F7, F6, F5, F4, B5, B4, E6 } #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4, B5, B4, E6 } #define UNUSED_PINS { TX0, RX0, SCL, SDA, D4, C6, D7, RAW } /* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW
MATRIX_ROW_PINS
, MATRIX_COL_PINS
は同じピンを設定しておく。
UNUSED_PINS
は使わないピンを指定しておけばいい。
残っているキーマップの設定などはQMKの公式ドキュメントを読めばなんとなくわかるだろうと思うので、今回はここまで。