なんか作りたい

PCとかオーディオとか

自作キーボードなるものに手を出してみた: FORTITUDE60

前々から興味があった自作キーボード、
1から作ろう!とか考えてたけど色々行き詰まったのでキットを試すことに。
ということで、ぺかそさん作FORTITUDE60で自作キーボードに入門しました。
plustk2s.com




個人的押しポイント
1. 左右分裂のナイスな配列
2. USB Type-Cを採用
3. 頑丈な設計
色々いじくりたいと思っていたのでモゲないType-Cと頑丈なのがツボりました。
コミケで実機を触った感触もGoodだったのでその場で即決b

1. 電子部品の取り付け

組み立ては公式の組み立てガイドを見ればOK

github.com

注意すべきポイントは、ICを基盤に直付けしなければならないという点。
キースイッチの半田面を覆ってしまうので間違っても先につけてはいけない。
6x3ピンでの固定なので後から外すのはおそらく無理。
厚みがシビアでICはソケット化も厳しかったので、キースイッチ側をソケット化することにした。

ソケットコネクタはDigikeyから輸入した。 www.digikey.jp ちと高いけど今の所接点不良らしきものは起きていない。
キースイッチをはめる時に少しコツが必要だった。
とにかくピンを折らないよう注意。

2. LEDテープ敷設

Underglowに対応とのことだったのでLEDテープをつけた。
LEDテープはこのショップで買ったWS2812のものを使った。
https://www.amazon.co.jp/s/ref=bl_dp_s_web_0?ie=UTF8&field-keywords=ALITOVE&index=kitchen-jp&search-type=ss
配置やLEDの個数は自由が効くので適当に。
個人的には左右で内側からシンクロして欲しかったのでLED15x2として左右に配線した。

3. ケース組み立て

ケース入れはアクリルの破損報告があったので慎重にやった。
アクリルは温度変化での膨張が大きいので涼しい部屋での作業がオススメ。
アクリルのパーツの相性でハマりにくい場合は左右で交換してみるといいかも。
風を当てて冷やしながらやったら割とすんなりと組み立てできた。
キースイッチのソケット化分(1mmほど)の厚み増は問題にならなかった。

この時点で全てのキーが動作することを確認。
なお、プリインストールのファームウェアではUnderglowは動作しない。
ファームウェアの入れ替えが必要なので、ここからはソフト側をいじった。

4. 環境作り

まずは環境づくり。
FORTITUDE60はQMKというavrマイコンを使ったキーボード用のファームウェアを使っている。 github.com このファームウェアコンパイルするために必要なソフトをインストール。

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

新しく環境を作る場合はこれでOK。
私の場合古い環境が残っていたため盛大に躓いた(後述)。

5. ファームウェアコンパイル・書き込み

QMKのgitからソースをクローンして、フォルダ内で以下を実行する。
なお、執筆時点では作者のブランチを使用する方がいい。
github.com config.hとrules.mkに以下を追記する。

vi keyboards/fortitude60/keymaps/config.h
#undef RGBLED_NUM
#define RGBLED_NUM 15

vi keyboards/fortitude60/keymaps/rules.mk
RGBLIGHT_ENABLE = yes
BACKLIGHT_ENABLE = no

キーマップ等を変更したい場合はkeymap.cを編集する。
終わったら次は以下を実行してコンパイルする。

make fortitude60/rev1:default:avrdude

コンパイル後そのままファームの書き込みもおこなわれる。
リセットボタンを押すと書き込みが開始される。
なおファームの書き込みはQMK Toolboxで書き込む方法もある。
f:id:s_sef:20180818014134p:plain コンパイル後にできる.hexファイルを読み込んでatmega32u4を指定してFlashを押せばOK。
なお、初期のfortitude60/rev1を公式からダウンロードして書き込むこともできるのでトラブった際に重宝する。


これにて完成!

使用1日目で全くキー配置が覚えられていないが打鍵感はかなり気に入っている。
しばらくはキーマップを悩むことになりそうだ。


以下トラブル覚書。

トラブルその1

avr-gcc: internal compiler error: Abort trap: 6 (program cc1)

これはmac OS特有のバグらしい。
https://github.com/qmk/qmk_firmware/issues/2580 古いものを更新してはだめで、一度削除してから入れ直す。

brew rm avr-gcc
brew rm dfu-programmer
brew rm gcc-arm-none-eabi
brew rm avrdude
brew install avr-gcc@7
brew install dfu-programmer
brew install gcc-arm-none-eabi
brew install avrdude

トラブルその2

ERROR: address 0x800203 out of range at line 1247 of .build/fortitude60_rev1_default.hex

コンパイル自体は成功するのに書き込みの段階でこける。
これの原因は古いavr-gccを残したままavr-gcc@7を入れたのが原因だった。
要件は満たしているからコンパイルは通るけど、
実際に使われたavr-gccが古いバージョンなためにエラーが出ていたらしい。
以下で古いバージョンを削除して、新しいバージョンをリンクしたところ問題は解消された。

brew rm avr-gcc
brew link avr-gcc@7