Debug

動作確認・トラブルシュート

内部に組み込む前に、小さく確認します。配線、はんだ、ダイオード、QMK設定を一度に疑わないのがコツです。

Temporary Wiring

仮配線で入力確認

最初から全キーを組み上げず、XIAO RP2040、MCP23017、1キー、ダイオードだけの最小構成で確認します。1キーが読める状態を作ると、I2C、アドレス、DIODE_DIRECTION、行列変換の確認がしやすくなります。

仮配線の状態でマイコンとMCP23017を接続してキー入力を確認している様子

One Key

1キーだけ接続して確認する

  • MCP23017のVCC/GND/SDA/SCL/RESETを確認する。
  • 1つのスイッチと1つのダイオードだけをつなぐ。
  • matrix.cでその1点だけを読み、keymap.cで分かりやすいキーを割り当てる。
  • キーが出なければ、配線、ダイオード、I2C、QMK設定の順に戻る。

Key Tester

Key Testerで確認

QMK公式の手配線ガイドでも、Keyboard Testerなどで各キーを試す流れが紹介されています。完成後だけでなく、片側だけ、数キーだけの段階でも確認します。

QMK Console

QMK Consoleで確認

QMKのデバッグFAQでは、rules.mkでCONSOLE_ENABLE = yesを有効にすると、QMK ToolboxやQMK CLI consoleでデバッグメッセージを読める説明があります。matrix.cに最小限のログを入れると、MCP23017が読めているか、どの行列が反応したかを確認できます。

CONSOLE_ENABLE = yes

qmk console

MCP23017

MCP23017認識確認

  • VCCとGNDが共通になっているか。
  • SDA/SCLが逆になっていないか。
  • I2CアドレスがA0/A1/A2の接続状態と合っているか。
  • RESETが意図せずLowになっていないか。
  • GPA/GPBの入力・出力方向設定が想定通りか。

Troubles

よくある不具合

  • ダイオード向き違い: 特定のキー、行、列が反応しない。
  • 行列設定違い: 違うキーとして認識される。
  • SDA/SCL逆: MCP23017が読めない。
  • GND未接続: 動いたり動かなかったりする。
  • I2Cアドレス違い: 初期化はしているつもりでも入力が取れない。
  • ソケット接触不良: スイッチを押す角度で反応が変わる。
  • はんだ不良: 導通したり切れたりする。

内部配線は、組み上げ後の修正が大変です。必ず途中段階で、少ないキー数から確認します。