11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【電子工作 / PCB】1キーのみのシンプルな自作キーボード『Tappy』をQMKファームウェアに対応させました!

以前書いたこちらの記事の追記となります。

【電子工作/ PCB】1キーのみの可愛い自作キーボード(1Key Keyboard)の製作!

以前製作した1キーのみのシンプルな自作キーボード『Tappy(という名前にしました)』なんですが、QMKファームウェアに対応させREMAPを使いブラウザ上でキーマップの変更が出来るようにしてみました。

製作した当時、Instagramで海外の方を含めPCBを発注して作ってみたよというご報告を何件か頂いていたので、今回作成したQMKファームウェアの方もダウンロード出来るようにしておきます。

1キーキーボード『Tappy』用QMKファームウェアの作成

もともとArduinoのコード(スケッチ)を書き込んで動かすことを想定して製作した1キーのみのシンプルなキーボードTappyくんなんですが、製作後こちらのブログ記事に基板データやコード等を公開したところ作ってみたよというご報告やQMKファームウェアへの対応は出来る?といったDMやコメントを頂いていました。

最近になり自作キーボードの世界にも興味を持ち自分で設計したキーボードやキーパッドをいくつか製作しQMKファームウェアのことも少し理解出来てきたので、この1キーキーボードのQMKファームウェアを作成しREMAPでキーマップの変更も出来るようにしてみました。

USB機能が付いたATmega32U4を使いスイッチの検知を行う自作キーボードではお馴染みのハードウェア構成で設計していたので、QMKに対応させるのはファームウェアを書き換えるだけと簡単に出来ます。

QMKファームウェア書き込みの手順

1キーのみのシンプルなキーボードですが、MCU(マイコンチップ)にはATmega32U4を使っているためハードウェアの改造等は必要なく、QMKファームウェアへの対応は簡単に出来ました。

ただArduinoコードで動かすことを想定して設計しており、そしてご覧の通り基板サイズが非常に小さく物理的なリセットスイッチを実装していないため、QMKファームウェアを書き込む初回のみICSP端子を使いリセットをかけて書き込む必要があります。

またtone関数を使って音を鳴らすことも出来るように設計していますが、QMKファームウェアではこれに対応していないのでスピーカーは機能しなくなるのでご了承下さい。

以前製作して頂いた方でQMK化に興味ある方は下記リンクからTappy用QMKファームウェアをダウンロードして試してみて下さい!

ダウンロードしたファイルを解凍すると、ファームウェア本体(tappy_via.hex)とjsonファイル(Tappy.json)が入っています。

ファームウェアの書き込みはいくつか方法がありますが、こちらではQMK Tookboxを使って書き込んでいきます。
QMK Tookboxはこちらからダウンロード&インストールして下さい。

参考 QMK Toolbox ダウンロード&インストールQMK Tookbox

それではファームウェアの書き込みを行っていきます。
PCに接続後QMK Tookboxを起動して上記ダウンロードしたTappy用QMKファームウェア(tappy_via.hex)を選択、MCUに[ATmega32U4]を選択します。

基板にリセットスイッチがないので、ICSP端子の[RESET]ピンと[GND]ピンをジャンパーワイヤー等で短絡させリセットをかけます。

リセットがかかるとファームウェアを書き込むための[Flash]スイッチがアクティブになるので、これをクリックしてファームウェアを書き込みます。(数秒でリセットは解除されるので手短に!)

ファームウェアの書き込みが成功すれば、Flash competeと表示されます。
これでキーマップやLED点灯パターンの変更をREMAPを使い簡単に行うことが出来ます。

REMAPを使いキーマップやLED点灯パターンの変更を行う

最後にREMAPを使いキーマップの変更を行ってみます。
PCに接続後、ブラウザでREMAPを開き[CUSTOMIZE YOUR KEYBOARD]をクリックします。

[+KEYBOARD]から[Tappy]を選択し[接続]をクリックします。

jsonファイルを求められるので、上記ダウンロードしたファイル(Tappy.json)をドラッグ&ドロップすればキーボードとして認識されます。

これでREMAP上でキーマップの変更やLEDの点灯パターンなどの変更ができます。
お疲れ様でした!

1キーのみのキーボードなのでArduinoスケッチをコンパイルして書き込む場合とあまり手間は変わりませんが、QMKだとブラウザが使える環境であればどこでもキーマップ等の変更が可能なので便利になりますね!(REMAPにキーボード登録していないためjsonファイルも必要となりますが!)

再度Arduinoスケッチに戻したい場合

上記書き込んだQMKファームウェアは「Bootmagic」機能を有効にしています。
キーを押した状態でPCに接続(通電)するとリセットがかかりブートローダーモードに入ることが出来ます。

再度QMKファームウェアを書き込む場合や自作されたファームウェアを書き込む際にリセットをかけることが出来るので、ICSP端子の[RESET][GND]を短絡させるという操作が必要ないので便利です。

そして前回の記事で公開していたArduinoコードに戻したい場合も同様に、キーを押した状態でPCに接続するとArduino IDEのシリアルポートが出現するのでこれを選択して書き込んで下さい。

MEMO
Arduino IDEから書き込む場合、コンパイル→書き込みという流れで進みますが、リセットは数秒で解除されるのでタイミングを合わすのが少し難しいようです。
上手くいかない場合はICSP端子の[RESET][GND]を物理的に短絡させてリセットをかけて書き込みを行って下さい!

最後に!

作って頂いたというご報告やQMKへの対応など以前SNSを通じていくつかお問い合わせがあったのでQMKに対応したファームウェアも作ってみました。

1キーのみのシンプルなキーボードなので一度設定したキーマップを変更することはあまりないと思うのでどちらで動かしてもいいのですが、Arduinoコードで動かす場合はサウンド機能も簡単に使えて面白いし、QMKファームウェアだとブラウザ上でキーマップの変更ができLEDの点灯パターンも豊富だし・・・

動かすソフトウェアの違いなので、電子工作的には両方イジって遊んでみるのは面白いと思います。

コメントを残す