Back Quotation

技術系のネタとかメモとかテキトーに書いていく

基盤設計から始める自作キーボード 2

第2回は、作る上で悩んだコトを中心に書いていく。

KiCadで基盤の設計を行い、QMK でファームウェアを作っていく。
key-matrixはいろいろ検討した結果2乗マトリクスを採用することにした。

2乗マトリクスについては キーボードのマトリクス方式の分類 を見るのがよさそう。

kicad.org

docs.qmk.fm

KiCadで基盤を作っていく

大まかな流れは

  1. 回路図
  2. 配置&配線

1. 回路図

 今回作りたいキーボードのキー数が96なので11ピン(N=11)で足りる。

 注文して届いたPro Micro互換機を見てみると、QMKで入力したいPINの名称と異なるシルクスクリーンが記載されている。

シルクスクリーンとの対応は、だいたい忘れるので対応する図を作っておいた。

f:id:mafumafuultu:20210418221354p:plain
Pro Micro互換機のシルクスクリーンとQMK入力PIN対応

使うピンは SCL~B5、F4~B6

簡単なシミュレーションとして TinkerCADを使うと多少便利だと思う。 www.tinkercad.com

KiCadの基本的な使い方は公式ドキュメントを見てもらうとして

f:id:mafumafuultu:20210424011213p:plain
KiCad回路図

さっと作ったあと「回路シンボルをアノテーション」で各部品にIDを振り、「回路図シンボルにPCBフットプリントを関連付けする」で配置するフットプリントに対応させておく。

2. 配置&配線

f:id:mafumafuultu:20210424005945p:plain
基板配置

基板の配置・配線ウィンドウで「回路図から基板を更新」で、必要なモノが用意されるので配置していく。

配置が終わったら、3Dビューアで確認することを勧める。

f:id:mafumafuultu:20210424010623p:plain
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の公式ドキュメントを読めばなんとなくわかるだろうと思うので、今回はここまで。