Helix 自作キーボード製作記 (その3)

Helix 自作キーボード製作記 (その3)

関連記事

この記事は長くなりそうなので、シリーズ化になります。

はじめに

自作キーボード作成記 第3回目はファームウェアの書き込み環境の構築です。

QMKとQMK toolbox

QMK Toolboxとは

QMK toolboxとはQMKファームウェアベースの自作キーボードに搭載されたPro MicroにQMK Firmwareのhexファイルを書き込むためのGUIソフトウェアです。
通常Pro Microに乗っているAVRマイコンと呼ばれるチップにhexファイルを書き込むためにはターミナルやコマンドプロンプトを開いてコードを打ち込まなければならず、初心者の人には少し難しい作業があったりします。
QMK toolboxを使えば、ボタンなどが配置されたGUI上でhexファイルの書き込みができるので、QMKファームウェアの書き込み難易度は限りなく下がります。

QMK toolboxの導入

QMK toolboxはqmkのGitHubからダウンロードできます。
GitHub : https://github.com/qmk/qmk_toolbox/releases

Releasesのページ中央にあるダウンロードリンクからファイルをダウンロードします。
QMK.Toolbox.app.zip はMac用アプリケーションファイル、QMK.Toolbox.pkgはMac用インストーラーパッケージファイル、qmk_toolbox.exeはWindows用実行ファイル、qmk_toolbox_install.exeはWindows用インストーラーファイルになっているので、Mac、Windowsに合わせて必要なものをダウンロードします。

QMK Toolboxの利用

インストーラーからインストール、あるいは実行ファイルを起動させるとこのような画面が開きます。

実際の使い方ですが、まず初めにKeyboard from qmk.fm と書かれたところから必要なキーボードのhexファイルをダウンロードします。今回はHelix/rev2なので、リストからHelix/rev2を選びLoadを押します (項目 1, 2)。インターネットに繋いだ状態でないとダウンロードできないので注意です。
ダウンロードが正常に終わったら、ダウンロードフォルダにhexファイルが追加され、自動的にファイルがロードされた状態になります (項目 3)。
USBケーブルでパソコンとPro Microをつなぎます。Microcontrollerがatmega32u4 (Pro Microの場合)になっていることを確かめ、Pro Microのリセットスイッチを押します (項目 4)。正常にリセットされればUSBを認識して接続されます。黄色い文字で接続されたことが表示されます (項目 5)。
最後にFlashボタンを押してhexファイルをPro Microに書き込めば完了です (項目 6)。

正常に書き込めていれば「avrdude done. Thank you.」と表示され書き込みが完了します。

ファームウェア未書き込みのPro Micro

QMKファームウェア未書き込みのまっさらなPro Microの初回書き込みに失敗する事例がよくあるそうです。

面白コンテンツ探求日記 : https://horimislime.hateblo.jp/entry/building-helix-keyboard
Voxel Highway : http://riv-mk.hateblo.jp/entry/pro_micro_and_qmk
Home Is Where The Heart Is : https://www.gero-emo.com/blog/自作キーボードに手を出してみた-〜ファームウェア編〜

実際のところ、QMKファームウェア未実装の時にはPro Microのソフトウェアリセットが綺麗にかからないっぽいらしいので、手動でリセットボタンをタイミングよく押さないといけないらしい。

一度QMK Firmwareを書き込んだPro Microは苦労せず書き込めるようになるので、初めから遊舎工房にあるQMK Firmware書き込み済みのPro Microを購入するというのも1つの手ですね。

QMKとAVRライター

AVRライター

QMKはPro MicroつまりAVRマイコンチップが動いているので、AVRの書き込み機能を追加してやればターミナルやコマンドプロンプトからPro Microにhexファイルを書き込むことができます。

AVRライターの導入

Homebrewの導入

Macの場合、パッケージマネージャーであるHomebrewを経由してAVRライターを導入するのが一般的になっています。

まず、Homebrewが導入されているか確認します。ターミナルを起動して以下のコマンドを入力します。ターミナルを起動すると $ まで自動で入力されるので、 $ 以降を入力します。

$ brew —-version

Homebrewがインストールされていれば、Homebrewのバージョンが表示されます。インストールされていなければ、brewというコマンドは受け付けませんと表示されてエラーを吐くのでHomebrewのインストールから始めます。

Homebrewがインストールされていない場合はHomebrewのサイトに従ってHomebrewをインストールします。Homebrewのインストールの際にXCodeもインストールする必要があるので、App StoreからXCodeをインストールするかターミナルからコマンドを入力してXCodeを導入します。

$ xcode-select --install

XCodeはXCodeの中にあるCommand Line Developer Toolsだけでいいので、xcode-selectでインストールします。

XCodeがインストール出来ればHomebrewをインストールします。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

ターミナルで上のコマンドを打つとHomebrewがインストールされます。時折確認画面が出てくるので必要に応じて入力しながら進んでください。

インストールが終わったらもう一度バージョンを確認して、キチンと入っていることを確認します。

$ brew —-version

正常にインストールされていれば、念のためにバージョンを最新まで上げておきます。

$ brew update
$ brew upgrade

これで最新バージョンのHomebrewがインストールされました。

AVRライターの導入

HelixのFirmwareビルドガイドに従ってAVRライターを導入します。

$ brew tap osx-cross/avr
$ brew tap PX4/homebrew-px4
$ brew update
$ brew install avr-gcc@7
$ brew install dfu-programmer
$ brew install gcc-arm-none-eabi
$ brew install avrdude

これで必要なものがインストールされます。ここでavr-gcc@7はバージョン7.xをインストールしているということですが、これは8.xだとエラーが出るためにダウングレードしているためで現在ではavr-gccのバージョンは9.xになっており問題なく使えるので以下のコマンドで最新バージョンを入れます。

$ brew install avr-gcc

これでAVRライターの導入が完了しました。念のためにパソコンを再起動して使える状態にしておきます。

AVRライターからの書き込み

必要に応じてQMK Firmwareのファイルをダウンロードします。
QMKのGitHubからQMK Firmwareをダウンロードします。ダウンロードしたファイルはzipファイルなので展開します。

ターミナルを開き、cdコマンドで展開したQMK_firmware-masterの最上位階層に移動します。例えばダウンロードフォルダ上に展開した場合は、

$ cd /Users/(username)/Downloads/qmk_firmware-master

で移動できます。macのターミナルはドラッグ&ドロップに対応しているので、cd (半角スペース)と打った後に、フォルダをドラッグしてやればコマンドが自動で入力されます。移動できたらqmk_firmware-master (username)$ という表示に変わります。

今回はHelix rev2なので、展開したQMK Frimwareのフォルダの中に「qmk_firmware-master/keyboards/helix/rev2/keymaps/」とフォルダ階層があることを確認します。keymapsのフォルダの中には色々とテンプレートがありますが今回はこのうち「default」を使ってみます。

$ make helix:default:avrdude

このコマンドでHelixフォルダにあるdefaultというキーマップをavrdudeを使って書き込み処理します。
Enterを押したら自動でrev2であることを読み取って処理が行われます。
処理が進むと「Dejecting USB port, reset your controller now...」という表示とともに入力受付待ちの状態になるので、このタイミングでPro MicroかHelix基板のリセットボタンを押します。また、自作キーボード内にソフトウェアリセットボタンをアサインしている場合はそのキーを押してもリセットされます。

書き込みが正常に完了すると、「avrdude done. Thank you.」という表示が出て書き込み完了を知らせます。エラーがある場合はここでエラー表示が出てきます。

まとめ

今回はQMKファームウェアを書き込むための環境構築をしました。
次回はQMKのカスタマイズ機能を使って、キーボードをカスタマイズしていきます。

電子工作カテゴリの最新記事