工作好きな情報系の雑記

[qmk_firmware]どのキーを押しても、よく分からない値がキーコードとして送信されるようになり、文字が入力できなくなった

Lily58のファームウェアを更新してる時の話。
Windowsで使う時とMacで使う時でキー配列を変えられるようにしたくて、bootmagicという機能を使おうと思ったときに陥った不具合。

bootmagicについては結局うまくいかなかったので割愛するとして、その後他の機能を実装していたら、突然キーボードがうまく動かなくなった。
アルファベットが全く入力できない。
LCDを見た感じ、よく分からないキーコードが送信されているようだった。
例えば、"a"なら4が、"c"なら6が表示されるはずが、5桁くらいの整数(正の数だったり負の数だったり)が表示されるようになっていた。

実装したコードが悪いのか?
というそういうわけではなさそう。
デフォルトのプログラムさえ動かなくなっていたのだ。

じゃあ基板が壊れたのか?
というとそうでもなさそう。
試しにArduinoの簡単なプログラムを書き込んでみたところ、普通に動いた。

じゃあなんだったのかと言うと、EEPROMの中身が変になっていたせいだった。
bootmagicはキーボードの設定を保存しておくためにEEPROMを使うっぽい。
この設定が残ってしまっていたために、誤作動を引き起こしたみたい。

Arduinoのスケッチ例にある「eeprom_clear」というスケッチを書き込んでEEPROMをまっさらにして、改めてキーボードのプログラムを書き込んだところ、正常にアルファベットを入力できるようになった。

Open-source electronic prototyping platform enabling users to create interactive electronic objects.
Arduino - EEPROMClear  - 
モバイルバージョンを終了