otsunekoの日常

分離型キーボード『Corne Chocolate』を自作した話

Corne Chocolate

目次

はじまり

自キ依存

そんなわけで、85%キーボードのJISplit89、60%キーボードの7sKBに引き続き以前から気になっていた40%キーボードのCorne Chocolateを作り始めたのでした。

パーツ購入

今回は全て遊舎工房さんで調達しました。

TRRSケーブルとUSBケーブル(USB A-MicroB)は既に持っているものを流用しました。

総額は2万ちょっとです。安いですね(洗脳済)。

組み立て

foostanさんのビルドガイドを参考に作業を進めました。

様々な方が組み立て手順の記事を公開してくださってるのでビルドガイドと併せて参考にすれば、何をすればいいか分からないということはほぼ起きないんじゃないかと思います。僕は以下のYoutube動画を参考にさせて頂きました。

本記事では組み立ての全行程を紹介することはせず、Corne Chocolate組み立てにおいて最難関と呼ばれるLED取り付けに絞って試行錯誤の記録をまとめたいと思います。

Underglow(ビルドガイドの1~6番LED)取り付け

難しかったです。これまでのはんだ付け経験で一番難しかったと思います。なんとか全部光らせることができましたが、苦難の連続でした。

自分ははんだシュッ太郎をケチってはんだ吸い取り線で戦い続けましたが、正解は分かりません。

Underglow LEDの取り付け手順としては、以下の流れを繰り返しました。

  1. マスキングテープを使って、浮かないよう注意しつつLEDを2個固定する(以下画像参照)
    ※2個のLEDを交互にはんだ付けしていくことで冷却時間を設けるため
  2. LEDの端子を適当に1個選んで(自分は右上)、はんだ付けする
    ※はんだをPCBのパッドとLED底部の隙間に流し込むイメージ
  3. マスキングテープを下側からそっと剥がしていき、LEDがマスキングテープにくっついて浮くようならテープを剥がすのを止めはんだを再度溶かしつつLEDを上からそっと押さえてうまく固定されるよう祈る。LEDが浮かなければはんだで固定できてるのでマスキングテープを剥がす
  4. 2個のLEDを交互に行き来しながら、そのLEDで直前にはんだ付けした端子と反対側の端子を選んではんだ付け、を繰り返す

Underglow

2個のLEDをはんだ付けし終わるたび、Pro MicroにUSBケーブルを繋いで全部赤色に光るかテストします。全てのLEDが赤色に光らない場合、中でも一色だけ光っている色が違う場合はそのLED或いは前後のLEDが怪しいのではんだを盛り直したり、LEDの浮きをチェックします。

LEDが片側浮いていると光ったり光らなかったり不安定になりがちな気がするので、冷静かつ情熱的にはんだを溶かしつつLEDをPCBに押さえつけます。はんだを盛りすぎてブリッジしたりするかもしれませんが、焦らずいきます。

仮にはんだが滅茶苦茶汚くなったりLEDが熱で壊れたっぽい時も、無理にLEDを剥がそうとしてはいけません。最悪PCBのパターンを破壊してしまい、取り返しがつかなくなる恐れがあるためです。

自分はそんな時、LEDをラジオペンチで挟み込んでそっと粉砕しました。するとLEDの上部は取り外せてはんだ付けされているLED底部だけがPCB上に残るので、それを慎重に4つの端子ごとにバラした後はんだを熱して取り外すという手順で復旧できました(計2回)。

試行錯誤の果て、全てのUnderglow LEDが赤色に点灯した時は本当に安堵しました。画像の左上に散らばるはんだ吸い取り線や粉砕されたLEDが戦いの激しさを物語っていますね。

Underglow完了

ちなみに自分はこの手順に従いQMK Toolboxでcrkbd_rev1_common_via.hexのファームウェアを書き込んでいたのですが、最初の2個のUnderglow LEDをはんだ付けした後LEDが全然点灯しなくて、他のCorne組み立てブログで見かけたrules.mkでRGBLIGHT_ENABLE = noの設定だとLEDがそもそも点灯しないというトラップを一瞬疑ったりしました。

普通にはんだ付けのミスでした。疑ってすみませんでした。

Backlight(ビルドガイドの7~27番LED)取り付け

Underglowを付け終えた後では、もはや児戯に等しいです。

一点だけ注意することがあるとすれば、LEDを穴にはめる際水平にジャストフィットせずちょっと斜めに傾く恐れがあるぐらいですね。自分はある程度は気にしたものの、微妙に斜めになるぐらいはしゃーない、という心持ちでいきました。

取り付け手順としては、Underglowほど失敗のリスクが無さそうだったので最終的に6個1セットではんだ付け&点灯テストしていきました。Underglowの時同様、1端子ずつはんだ付けするのを6個分繰り返していくことで、LEDを冷却する時間を設けるというものです。

Backlight

Backlight側のはんだ付け自体はトラブル無く進んだのですが、途中何故かUnderglow側から点灯しなくなるという事象が何度か発生し、その度Underglow側のLEDをはんだ付けして何とか全LEDを赤色に点灯させることができました。

Backlight完了

LED取り付け作業を完走しての感想ですが、「このLED(SK6812MINI)って言うほど熱に弱いかな?」という疑問が残ります。

LED取り付け中トラブルは多々ありましたが、光らないLEDに対してはんだ盛り直し&吸い取りを散々繰り返した後に1個前のLEDにはんだを少々盛り直したら全部光ったという経験や、「もうこのLED熱で死んだやろな…」と思い交換のために320℃のはんだごてでガシガシはんだを吸い取ってたら急に光り出した、という経験をしたため、「実は割と熱耐性あるのでは?」と訝しむ程でした。LED取替自体は2回行いましたが、LEDが本当におしゃかになってたのかはんだ付けが良くなかったのかは結局判然としておりません。

ビルドガイドでは220℃~270℃でのはんだ付けが推奨されていますが、220℃だとはんだが溶け始めるまでに時間がかかるためにもどかしさから焦りが生じることの方がむしろ自分にとって問題でした。なので僕は最終的に270~300℃ぐらいではんだ付けしちゃいました(良くないかもですが)。

悪夢

LEDの取り付けさえ終えれば後ははんだ付けも余裕と、ルンルン気分で製作を進めついにCorne Chocolateが組み上がりました。キースイッチはRed Proと、以前7sKBを作った時の余りの茶軸を組み合わせました。

キースイッチ

キーキャップ

そしてTRRSケーブルとUSBケーブルを繋いだ時に事件は起きました。

「LEDが点灯しない…だと…?」

恐らく力を込めてキースイッチをはめ込んだ時にはんだ付けが甘かったUnderglowが外れたのでしょう、左手のLEDは全滅、右手のLEDは3個だけ飛び飛びで点灯という有様でした。

さっきまで点灯していたものが点灯しなくなったショックの余り「これだけ慎重な扱いが必要ならLED無しでもいいのでは…?」という思いが頭をよぎりましたが、どうにか気を取り直して点灯しないLEDとその前後を確認の原則に従い無事LEDを復活させました。

ほっとしたのも束の間、勝利の余韻に浸りながらネットの記事を漁っていると更なる事件が起きました。

Kailh Choc v1スイッチソケットの実装方向に関する注意

スイッチソケットに「kailh」のロゴが入っているのは気づいてたのですが、疲れからか不幸にも黒塗りのkailhソケットの向きなんてすっかり忘れて、「余裕!」とか思いながらはんだ付けしていたのでした。

「なんかやたら茶軸のキースイッチだけはめ込む時に力要るな~?」とか呑気してましたが、原因これちゃうんかと。何なら↑のLEDが点灯しなくなった件もこれが遠因ちゃうんかと。悲しいなぁ…

キーマップ

現在試行錯誤中です。7sKBのキーマップ調整記録のようなものを後で書くかもしれません。

OLED表示の変更

Corneシリーズは左右に分かれたキーボードがそれぞれOLEDディスプレイを持っており、デフォルトだと片方にレイヤ情報と最後に入力されたキー情報、もう片方にCorneのロゴが表示されています(画像は遊舎工房さんのページより引用)。

Corne Chocolate(遊舎工房HP)

調べてみると、このOLED表示は好きなドット絵に変更できるそうなので少し試してみました。

ちなみにchokudaiさんというのは競技プログラミングのコンテストサイトAtCoderを運営するAtCoder社の社長さんです。競プロ面白いよ、みんなもやろう(唐突な勧誘)。

そんなわけで、ここからは備忘録も兼ねてOLED表示変更の手順をまとめます。

ファームウェアのビルド環境構築

上述のとおり、最初自分はQMK Toolboxを使ってダウンロードしてきたcrkbd_rev1_common_via.hexのファームウェアをPro Microに焼いていたのですが、OLEDの表示をいじるとなると自分でファームウェアをビルドしてPro Microに焼く必要が生じてきます。なのでまずはその準備をします。

具体的にはこちらのリンクに書いてる通りです。Setting Up Your QMK Environmentの手順に従ってファームウェアのビルド環境を構築します(英語サイト)。日本語だと以下の記事がとても分かりやすくて良きです(キーボードもcrkbdなので丁度いいですね)。

QMK-MSYSを使ってWindows上に最速でqmk環境を構築する

この時点ではまだ記事中の「3 ファームウェアを作成してみる」までやる必要はありません。大事なのは、「qmk setup」コマンドでqmk_firmwareのgithubリポジトリをローカルにcloneして、様々なキーボードのビルド用ファイル(Corne Chocolateだとこれ)とビルド環境をローカルに構築することです。

glcdfont.cの編集

構築したローカルビルド環境のqmk_firmware\keyboards\crkbd\libの中にglcdfont.cが存在するので、このファイルを編集してOLEDに表示させたいドット絵を保存します(ちなみにglcdfont.cが何者かについてはこちらのQiita記事に説明があります。自分はまだちゃんとは読めてませんが…)。

glcdfont.cの編集も有志の方がHelix OLED Dot Makerという便利なサービスを公開してくださっているので、ありがたく使っていきます(Qiita記事)。

使い方はとてもシンプルです。以下です。

  1. 上記フォルダ内のglcdfont.cをアップロードする
  2. OLED表示させたい画像をアップロードする
  3. 矩形領域をトリミングする
  4. 白黒に2値化する際の閾値をいい感じにいじる
  5. 送信ボタンを押すと出力イメージが表示されるので、3と4の手順を繰り返して調整する
  6. 満足いく調整ができたら、ダウンロードボタンを押して新glcdfont.cを保存する

Helix OLED Dot Maker

競プロ面白いよ、みんなもやろう。

ちなみに、glcdfont.cを編集する他の方法として、こちらのリンクにあるように、Helix Font Editorというサービスを使う方法もあるようです。こちらは直接glcdfont.cにドットが打ち込めるようになっているようですね(左クリックが黒ペン、右クリックが消しゴム)。Helix OLED Dot Makerを使った後の最終調整に良いかもしれません。

Helix Font Editor

ファームウェアのビルド&書き込み

ローカルのqmk_firmware\keyboards\crkbd\libの中に新glcdfont.cをコピペしたら、いよいよファームウェアをビルドしてPro Microに焼いていきます。

注意点として、もしキーマップ変更をREMAPでやる予定なら、VIA用のファームウェアを焼く必要があります(詳しくはこちらの記事参照)。と言っても、ファームウェアのビルド及びPro Microへの書き込み時に以下コマンドを指定するだけです。

build
make crkbd/rev1/common:via
write
make crkbd/rev1/common:via:avrdude

つまりこちらのリンクに書いてることをやればOKです。

※自分は最初VIA用のファームウェアを作るのに、こちらの記事を参考にしてrules.mkファイルにVIA_ENABLE = yesを追記したところ、「The firmware is too large!」と怒られて「???」となってました(一敗)。

うまくいけばOLEDの表示が切り替わるはずです。もしうまく切り替わらない場合はケーブルを抜き差ししたり、「make clean」コマンドを実行してから再ビルドするとうまくいくかもしれません。

余談ですが、こちらの記事にあるようにcrkbd.cを直接編集することでもOLEDの表示を切り替えられるようです。いろいろありますね。

まとめ

衝動的に作ったCorne Chocolateでしたが、なかなかの難産でした。

作り上げてからも初めてのカラムスタッガード&親指の役割多めでミスタイプが滅茶苦茶多かったり、Red Proスイッチが自分には軽すぎて違和感がすごかったりと一筋縄ではいかなさそうです。

今後やりたいこととして、まずは押下圧高めのキースイッチに交換(Burnt Orangeが気になってたり…)した上で使い心地を検証したいです。また、こちらの記事を参考に、Pro MicroをUSB Type-C対応のElite-Cに交換したいと思っています。

現状は7sKBのサブ機になりそうですが、今後手が馴染んできた時に下剋上となるのか…!?

以上です。

※この記事はCorne Chocolateで書く予定でした(ミスタイプ多すぎで断念)。