通常、キーボードのテストは非常に簡単です。全てのキーをひとつずつ押して、期待するキーが送信されることを確認します。例え QMK で動作していない場合でも、QMK Configurator のテストモードを使用すると、キーボードをチェックできます。
あなたはおそらくキーボードを「文鎮化」したくないでしょう。文鎮化するとファームウェアを書き換えられないようになります。リスクがあまりに高い(そしてそうでないかもしれない)ものの一部のリストを示します。
make dfu
コマンドはブロックを削除し、サイズを検査し(おっと、間違った順序です!)、エラーを出力し、
キーボードへの書き込みに失敗し、DFU モードのままになります。
Linking: .build/planck_rev4_cbbrowne.elf [OK]
Creating load file for Flash: .build/planck_rev4_cbbrowne.hex [OK]
Size after:
text data bss dec hex filename
0 22396 0 22396 577c planck_rev4_cbbrowne.hex
最初に、Makefile 内でビルドオプション NKRO_ENABLE
を使ってファームウェアをコンパイルする必要があります。
NKRO がまだ動作しない場合は、Magic
N コマンド(デフォルトでは LShift+RShift+N
)を試してみてください。NKRO モードと 6KRO モード間を一時的に切り替えるためにこのコマンドを使うことができます。NKRO が機能しない状況、特に BIOS の場合は 6KRO モードに切り替える必要があります。
ファームウェアを BOOTMAGIC_ENABLE
でビルドした場合、ブートマジック
N コマンドで切り替える必要があります(デフォルトでは Space+N
)。この設定は EEPROM に格納され、電源を入れ直しても保持されます。
https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch
リセット回路が無いとハードウェアの不適切な初期化のために一貫性の無い結果になります。TPM754 の回路図を見てください:
列が 16 を超える場合、[matrix.h] の read_cols()
内の 1<<16
の代わりに 1UL<<16
を使ってください。
C では、AVR の場合 1
は [16 bit] である [int] 型の1を意味し、15を超えて左にシフトすることはできません。従って、1<<16
を計算すると予期せずゼロになります。これを回避するには 1UL
として [unsigned long] 型を使う必要があります。
QMK でそれらを使うには、rules.mk
内で EXTRAKEY_ENABLE
を定義する必要があります。
EXTRAKEY_ENABLE = yes # オーディオ制御とシステム制御
デバイスマネージャの電源の管理タブ内の このデバイスで、コンピュータのスタンバイ状態を解除できるようにする
設定を調べてください。また BIOS 設定も調べてください。スリープ中に任意のキーを押すとホストが起動するはずです。
Arduino のピンの命名は実際のチップと異なることに注意してください。 例えば、Arduino のピン D0
は PD0
ではありません。回路図を自身で確認してください。
Arduino の Leonardo と micro には ATMega32U4 が載っていて、TMK 用に使うことができますが、Arduino のブートローダが問題になることがあります。
デフォルトでは、キーボードが起動するとすぐに JTAG デバッグインタフェースが無効になります。JTAG 対応 MCU は JTAGEN
ヒューズが設定された状態で出荷されており、キーボードがスイッチマトリックス、LED などに使用している可能性のある MCU の特定のピンを乗っ取ります。
JTAG を有効にしたままにしたい場合は、単に以下のものを config.h
に追加します:
#define NO_JTAG_DISABLE
一部の問題は、USB 3.x ポートから USB 2.0 ポートに切り替えることで修正できます。
こちらを見てください: https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034
一部の人がキーボードが BIOS で動作しなくなった、またはリジューム(電源サイクル)の後で動作しなくなったと報告しました。
今のところ、この問題の根本は明確ではないですが、幾つかのビルドオプションが関係しているようです。Makefile で、CONSOLE_ENABLE
、NKRO_ENABLE
、SLEEP_LED_ENABLE
あるいは他のオプションを無効にしてみてください。
より詳しい情報: