QMK Toolboxを使えばビルドなどの手順を踏まずにキーボードとしての動作を確認出来ます。
- atmega32u4 になってるか確認します
- Helixの構成に合わせて下記のいずれかのHexファイルをダウンロードし、Openボタンでそのファイルを選択してください。
- オプション無し: helix_rev2_default.hex
- 5行版 OLED & バックライト: helix_rev2_default_oled_backlight.hex
- 5行版 OLED & Underglow: helix_rev2_default_oled_underglow.hex
- 4行版 OLED & バックライト: helix_rev2_default_4rows_oled_backlight.hex
- 4行版 OLED & Underglow: helix_rev2_default_4rows_oled_underglow.hex
- Helixのリセットボタンを押し、Connected とメッセージが出るのを確認します
- すぐにFlashボタンを押します
このようなメッセージが出れば書き込み終了です
Helixで文字が打てるようになったでしょうか?
配列を変えたいときは次から説明するファームウェアのビルドに挑戦してみましょう。
QMKの公式ガイドに従いビルド環境を作ります。
https://docs.qmk.fm/#/ja/newbs_getting_started
QMKファームウェアの第一階層で以下のようにします。
make helix:default
キーボードへの書き込みまで同時に行うには下記のように:avrdude
を付けます。
make helix:default:avrdude
GUIでの書き込みには冒頭で説明したQMK Toolboxが使えます。
左右のキーボードとも同様に書き込みが必要です。
/keyboards/helix/rev2/keymaps/ にある default フォルダを複製して好きな名前にします。 以後、それを修正します。
その時のビルドコマンドは以下のようになります。
make helix:<あなたのkeymap名>
デフォルトのキーマップは下記のようになっています。これは keymap.c を修正することで自由に変更することが出来ます。
キーコードはリファレンスなどを参照してください。
キーマップ内の rules.mk にある HELIX_ROWS を 5 から 4 に変更します。
HELIX_ROWS = 4
キーマップ内の rules.mk にある LED_BACK_ENABLE を no から yes に変更します。
LED_BACK_ENABLE = yes
キーマップ内の rules.mk にある LED_UNDERGLOW_ENABLE を no から yes に変更します。
LED_UNDERGLOW_ENABLE = yes
キーマップ内の rules.mk にある OLED_ENABLE を no から yes に変更します。
OLED_ENABLE = yes
フォントデータは helix/common/glcdfont.c です。 こちらを下記のいずれかの方法で編集することでOLED表示のカスタマイズが出来ます。
@teri_yakichan さんが作成した、ブラウザでglcdfont.cを編集するツールが便利です。
画像エディタを使いたいときは、下記の手順で一旦画像化してから編集し再度テキスト化します。
- glcdfont.c からデータ部分のみを抜き出してテキストファイルを作る
0x00, 0x00 ... 0x00 - スクリプトで画像に変換する
- 画像を修正する
- スクリプトでテキストに戻す
- glcdfont.c に反映させる
編集画像のイメージ
スクリプトはこちらを使用します。 https://github.com/MakotoKurauchi/helix/tree/master/FontConverter
テキストから画像への変換
$ python3 hex2img.py inHex.txt outImage
画像からテキストへの変換
$ python3 img2hex.py inImage.bmp > outHex.txt
helix/common/glcdfont.c を修正してしまうと全てのキーマップに影響が出ます。キーマップ独自のフォントファイルを用意したい時は、まず下記のようにキーマップ内の rules.mk にある LOCAL_GLCDFONT を no から yes に変更します。
LOCAL_GLCDFONT = yes
次に glcdfont.c を helixfont.h とリネームして keymap.c と同じ階層に複製します。
QMKは沢山の機能があります。リファレンスや他の人のカスタマイズを参考にして自分だけの最高のHelixを作って下さいね!