自作キーボード作った
Corne Cherryを作った話。
経緯
新しいiPad Proがすごい便利で、タッチ操作とapple pencilで多くのことが出来るのだが、大量の文字を入力するときなどにキーボードが欲しい場面がちょいちょいあった。Apple公式のSmart KeyboardはCAPS LOCK/CTRLの配置が使いにくそうだったのとESCの物理キーが無いのがすごい微妙だったので、使いやすそうな代替品を探しているうちに自作キーボード界隈のサイトに辿り着いた。これはヤバイ物を知ってしまった!ぜひ作らねば…と思ったのだが、いかんせんネットで調べただけでは何を買ったらいいのかまったく判断できず、途方に暮れるしかなかった。そんなとき遊舎工房さんという自作キーボード専門店の存在を知り、店舗で色々相談させてもらったり、組立済みのキットを触らせてもらった結果Crone Cherryというある程度パーツが準備されている自作キットを購入することにした。
ビルドログとかは公式がすごい丁寧だし、多くの人が書いてるのでパスで、それ以外の事を書こうと思う。ちなみに(自作ではない)既製品ではここらへんが最終候補として残っていた。
道具とか組み立てとか
以下のサイトを参考に、はんだごてなどを購入。個人的に逆作用ピンセットは必須アイテムだった。
- https://salicylic-acid3.hatenablog.com/entry/2018/11/24/自作キーボードを作るために必要なもの
- https://hdbx.hateblo.jp/entry/2018/06/01/215401
Corne Cherryを作る前にmeishiキットを作ってはんだづけからファームウェア書き込みまでの一連の作業の練習をした。なお、LEDのはんだづけは難易度が高そうだったので今回はパスしました。
本体のキット
Crone Cherryを購入。色々理由はあるのだが、
- 左右分割型
- 持ち運びに便利そうだった
- キースイッチのソケット対応
あたりが決め手になった。最後までLily58 Proとどちらにするか悩んだが、40%キーボードにチャレンジしてみようと思いこちらに決定。ロープロファイル版のCorne Chocolateも魅力的だったが、スイッチとキーキャップの選択肢がCorne Cherryの方が多そうだったので今回は見送った。
キースイッチ
Zilent V2の62gを購入。遊舎工房さんに置いてあったサンプルの中から、なるべく今使ってるHHKB Type-Sの物と感じが似ている奴を探した。遊舎工房さんには中をグリスアップしたサンプルも置いてあり、そちらの方が好みだったので、いつかグリスアップも挑戦したい。
以下のサイトで各社のキースイッチのForce curveがまとめられているので今後キースイッチを探す際の参考になりそう。キー間の相関関係とかそのうち計算したい。
キーキャップ
遊舎工房さんで売ってたDSAプロファイルのキーキャップセット(残念ながらリンクは見つからず)と、親指用に1.5uのキーキャップを二個購入。将来的にはPBT素材でエンゲージSR-1みたいな色合いにしたいのだが、キーキャップ結構高いし、海外からの輸入になる可能性が高そうなのでしばらく運用してみて自分にどのプロファイルが合っているか吟味してからまた購入しようと思う。
キーマップ
キーマップはデフォルトから主に以下の点を変更。
- 「-」キーを右手親指側にアサイン
- LOWERレイヤーで数字をテンキーライクに配置
- HHKBでよく使ってる「Fnキーを押して上下左右移動」の操作再現のため、右手側のキーボードの右下のキーにADJUSTレイヤー切り替えをアサインしてADJUSTレイヤーに上下左右キーを登録。
記事の最後にkeymap.cの該当部分を貼っておく
OLEDの表示内容の変更
Oledにアイコン出るようになってめっちゃ嬉しい pic.twitter.com/232o0E9Ux7
— coela (@DRZ400SM) May 17, 2019
こちらのサービスを利用したら簡単にアイコン画像からOLED表示用のファイルを出力できた。個人的にめっちゃテンション上がるのでこの作業は絶対やった方がいいと思う。
まだ試してないが、こちらのサービスを使えばドットの編集もブラウザ上で簡単にできそうなので、時間を見つけていじっていきたい。
思ったこと
普段使いする道具を作れるの楽しい!!使いながら細いところを調整していく感じが専用機作ってる感あって、愛着めっちゃ沸く、かわいい。crkbdは持ち運びが楽で、鞄に簡単に入るので出先での作業がだいぶ捗るようになった。ただ、今はキットを買った時についてきた箱に突っ込んで持ち歩いてるので、キーボードを入れるためのちょうどいいケースとかポーチを探している。今回はじめて40%キーボードと左右分割型のキーボードを使ったが、今のところ違和感なく使えているし、心なしか作業時の負担が減った気もする。特に数字がテンキーライクに入力できるのは普通のキーボードと比べてもなかなかに便利なのではないかと思う。
次は昇華インクを使ったオリジナルキーキャップの作成とLEDはんだづけに挑戦したい。
この記事はCorne Cherryを使って書きました。
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_kc( \
//,-----------------------------------------. ,-----------------------------------------.
ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC,\
//|------+------+------+------+------+------| |------+------+------+------+------+------|
CTLTB, A, S, D, F, G, H, J, K, L, SCLN, QUOT,\
//|------+------+------+------+------+------| |------+------+------+------+------+------|
LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH,ADJUST,\
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
GUIEI, LOWER, SPC, ENT, RAISE, MINS \
//`--------------------' `--------------------'
),
[_LOWER] = LAYOUT_kc( \
//,-----------------------------------------. ,-----------------------------------------.
ESC, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, 7, 8, 9, MINS, BSPC,\
//|------+------+------+------+------+------| |------+------+------+------+------+------|
CTLTB, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, 4, 5, 6, PLUS, XXXXX,\
//|------+------+------+------+------+------| |------+------+------+------+------+------|
LSFT, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, COMM, 1, 2, 3, DOT, XXXXX,\
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
GUIEI, LOWER, SPC, ENT, 0, MINS \
//`--------------------' `--------------------'
),
[_RAISE] = LAYOUT_kc( \
//,-----------------------------------------. ,-----------------------------------------.
ESC, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, BSPC,\
//|------+------+------+------+------+------| |------+------+------+------+------+------|
CTLTB, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, MINS, EQL, LCBR, RCBR, PIPE, GRV,\
//|------+------+------+------+------+------| |------+------+------+------+------+------|
LSFT, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, UNDS, PLUS, LBRC, RBRC, BSLS, TILD,\
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
GUIEI, LOWER, SPC, ENT, RAISE, MINS \
//`--------------------' `--------------------'
),
[_ADJUST] = LAYOUT_kc( \
//,-----------------------------------------. ,-----------------------------------------.
RST, LRST, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, UP, XXXXX, BSPC,\
//|------+------+------+------+------+------| |------+------+------+------+------+------|
LTOG, LHUI, LSAI, LVAI, XXXXX, XXXXX, XXXXX, XXXXX, LEFT, RIGHT, XXXXX, XXXXX,\
//|------+------+------+------+------+------| |------+------+------+------+------+------|
LMOD, LHUD, LSAD, LVAD, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, DOWN, XXXXX, XXXXX,\
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
GUIEI, LOWER, SPC, ENT, RAISE, MINS \
//`--------------------' `--------------------'
)
};