😽

Corne Cherryビルドログ

2021/01/15に公開

この記事は自作分割キーボード「Corne Cherry」の作成記録(ビルドログ)です。
Corne Cherryを使用して書かれています。

私について

プログラマーです。
Corne Cherryをビルドする前は、FilcoのMinilaを愛用していました。

https://twitter.com/Booink4/status/1338643652604661763?s=20

既に生産終了しているモデルですが、キー配列が理想的でどうしても手に入れたかったのでヤフオクで落札したものを使用しています。
https://www.diatec.co.jp/products/det.php?prod_c=1319

なぜキーボードを自作しようと思ったのか

理由としては以下が主な要因です。

  • Tab,左Shiftキーを多用するが、意図しないCapsLockが頻繁にオンになるのが辛い
  • Esc,Enterキーや矢印キーを打鍵する際にホームポジションから指が離れてしまい、復帰後のタイプミスが多い(個人の感想です)
  • 夕方になると頭痛がするほど肩が凝るので、解消方法として分割キーボードがいいという記事を見た
  • ステイホームでできる新しい趣味を探していた

前々から自作キーボード沼についての記事や情報が出回っているのを認識はしていましたが、
私はそこまで興味を持って調べたことはありませんでした。

実際にCorne Cherryを購入する直前まで、Ultimate Hacking Keyboardというなかなか中二感のあるネーミングのキーボードを購入する一歩手前までいきました。

https://twitter.com/Booink4/status/1345779914696400896?s=20

年末年始に決済しようとしたためか、サイトの決済が単純に死んでいたためかカードの種類が悪かったのか、原因は定かではありませんが購入には至らず、でもここまでモチベーションが上がってしまうと分割キーボードが欲しくてしょうがなくなっていました。

購入したものたち

https://twitter.com/Booink4/status/1347013532294864897?s=20

年末年始はずっと分割キーボードについて調べまくり、理想の配列をひたすら妄想した結果、Corne Cherryが最も理想に近かったため、思い立ったが吉日amazonで即ポチりました。

キット

https://www.amazon.co.jp/gp/product/B08CMS41Z2

購入したキットはハンダ付けは不要なものの、キーキャップ、キースイッチは付属していないため別途購入する必要があります。

キーキャップ

Filcoの無刻印にしました。
https://www.amazon.co.jp/gp/product/B00R1BZ60K
Filco好きなんです。
実際Filcoくらいしか無刻印が見つからなかった(そのときはAliExpressの存在を知らなかった)だけなんですが。
corne cherryは42キーしかなく、今までのキーボードの感覚では配列は組めないため、印字されている情報と実際に反映されるキーが違うと混乱しそうな予感がしたので、最初から印字されていないほうがいいだろう、ダメならキートップシールもあるみたいだしなんとかなるでしょ、くらいの勢いです。

キースイッチ

Cherry MXの銀軸です。
https://www.amazon.co.jp/gp/product/B07ZK7PTP6
今までは赤軸・茶軸は使っていて銀軸は初めてでしたが、あまり打鍵音がうるさくない軸を使ってみたくて銀軸にしてみました。

キートップシール

https://www.amazon.co.jp/gp/product/B07QHB5BZT
キーキャップが無刻印なうえ、今までのキーボードと大幅に配列が変わるので、念の為視認するために購入。
これは買っておいて正解だった。
シールの質も良かった。
キートップシールを貼った後

amazonのレビューでは結構散々な書かれ方をしていて全然期待をしていませんでしたが、貼ってみるとすごく貼りやすいし、見た目も好き。
今回 @ マークと {} ブラケットマークの貼り方をミスったのでまた購入予定。
他の色も試してみたい。

構築

キースイッチをプレートの四隅に固定している

キースイッチを装着後、載せるキーキャップを選んでいる

キーキャップ取り付け完了

ハンダ付け不要、とはいっても自作キーボードは初心者なので構えて取り掛かったが、本当にあっという間に完成しました。
キースイッチの挿入もキーキャップの取り付けも、想像していたより簡単です。
ミニ四駆に近い感覚です。

キートップシールをそれっぽくつけてみた

キー配列の設定

https://twitter.com/Booink4/status/1347935090035228672?s=20

QMK firmwareであれこれ設定しようと試みましたがなかなか思ったようなキー設定にならなかったので、
VIAを使ってしっくりくる配列を組み上げてから、エクスポートしたjsonファイルを元に QMK firmwareのkeymap.cに設定を落とし込んでいきました。
https://github.com/booink/qmk_firmware/commit/b7a2d21e7311a9b5193918c5341bf04973d2a70d

firmwareへの書き込み

私のOS環境はLinuxなのでCLIからProMicroに転送していきます。

QMK firmwareリポジトリをフォークする

他の方のビルドログに倣って QMK firmware リポジトリを自分のアカウント管理下にフォークしておきます。

適当な場所にフォーク済みのQMK firmwareリポジトリを clone する

mkdir -p ~/src
cd ~/src
git clone https://github.com/booink/qmk_firmware.git
cd qmk_firmware

一応ブランチを切っておく

本体にPRを送る予定はありませんが、master(main)ブランチで作業するのは気が進まないので、ブランチを切っておきます。

git checkout -b add_keymap

Corne Cherry用のデフォルト設定をディレクトリごとコピーする

Corne Cherryは crkbd という名称で QMK firmware 内にキーマップが登録されているので、一旦デフォルト設定を自分用のディレクトリ名でコピーします。
私は keyboards/crkbd/rev1/common/keymaps/via/ 内の3ファイルをコピーしました。

cp -r keyboards/crkbd/rev1/common/keymaps/via/ keyboards/crkbd/keymaps/booink

keymapを編集

コピーしたファイルのうち、 keymap.c を編集します。
上の方に構造化されたキーマップっぽい設定が記述されているので、自分の好きなように設定します。
設定方法は他の方のビルドログにも掲載されているので、ここでは割愛します。

キーマップの設定が済んだらProMicroに書き込む

以下のコマンドを実行することで USBで接続済みのCorne CherryのProMicroにキーの設定を書き込みます。
ModemManager.serviceを stop / startしていますが、私のLinux (ZorinOS 15.3)では ModemManagerが動いていると make 時にエラーになるので止めてから実行しています。
ModemManagerが何者かはよくわかっていません。

./util/qmk_install.sh
make git-submodule

sudo systemctl stop ModemManager.service
sudo make crkbd:booink:avrdude
sudo systemctl start ModemManager.service

ここまでの作業でやっとオリジナルのキーボードが構築できた感がでてきます。

キー配列について

キー配列の画像

以下に私が設定した配列を記載します。
全部のキーについて説明はせず、大まかな概要とデフォルトとは違う設定にしているキーについてのみ言及していきます。

デフォルトレイヤー

 [0] = LAYOUT_split_3x6_3(
  //,-----------------------------------------------------.                    ,-----------------------------------------------------.
       KC_ESC,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                         KC_Y,    KC_U,    KC_I,    KC_O,   KC_P,  KC_MINS,
  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
       KC_TAB,    KC_A,    KC_S,    KC_D,    KC_F,    KC_G,                         KC_H,    KC_J,    KC_K,    KC_L, KC_SCLN, KC_QUOT,
  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
      KC_LSFT,    KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,                         KC_N,    KC_M, KC_COMM,  KC_DOT, KC_SLSH, KC_BSLS,
  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
                                          KC_LCTL, LT(1,KC_MHEN), ALT_T(KC_SPC), KC_ENT, LT(2,KC_KANA), KC_BSPC
                                      //`--------------------------'  `--------------------------'

親指キーの文字数が多いのでレイアウトが若干崩れているのはご容赦ください。
設定の要点は

  • QWERTY配列ベース
  • 左小指周辺と両親指に修飾キーを集めて、右小指周辺は記号に統一
    • 私の今までのタイピングで右小指周辺の修飾キーは使ったことがないので、配置可能な限りの印字キーを設定しています。
  • 3つの親指キーの真ん中、長押し時はレイヤー切り替えのLOWER, RAISEキー、タップでマック方式の英数・かな切り替え
    • この設定ではMacでは英数・かなの切り替えはできません。
    • LANG1 LANG2 を追加で設定する必要があるようですが、後々試してみようと思います。
  • BackSpaceは右親指の一番内陸
  • Spaceキーを長押しすると Alt キーになるようにしました。
    • ウィンドウの移動で Alt + Tab を押すことくらいにしかAltキーを使うことがないです。

LOWERレイヤー (1)

[1] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------.                    ,-----------------------------------------------------.
     KC_GRV,    KC_1,    KC_2,    KC_3,    KC_4,    KC_5,                         KC_6,    KC_7,    KC_8,    KC_9,    KC_0, KC_MINS,
//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
     KC_TAB, KC_EXLM,   KC_AT, KC_HASH,  KC_DLR, KC_PERC,                      KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,  KC_EQL,
//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
    KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                      XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR,
//|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
                                        KC_LCTL, _______, ALT_T(KC_SPC), KC_ENT, MO(3), KC_BSPC
                                    //`--------------------------'  `--------------------------'
),
  • 数字・記号をこのレイヤーに集めています。
    • 数字も記号も Shift キー無しで打てるようにしました。
    • 間違えて Shift キーを押しても記号は必ず出力されるので便利。
  • 並び順はANSI (US・英語キーボード)に近づけています。
  • デフォルトレイヤーのEscの位置に KC_GRV (バッククオート、波線・チルダ)を設定しています。
    • MacBookのUSキーボードとかでは数字の横に同キーがあるので、問題ないはず。という私はUS配列のMacBookは使ったことがないのです。

RAISEレイヤー (2)

[2] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------.                    ,-----------------------------------------------------.
      KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,                        KC_F7,   KC_F8,   KC_F9,  KC_F10,  KC_F11,  KC_F12,
//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, KC_PSCR,                      KC_LEFT, KC_DOWN,   KC_UP, KC_RIGHT, XXXXXX,  XXXXXX,
//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
                                        KC_LCTL,   MO(3), ALT_T(KC_SPC), KC_ENT, _______, KC_BSPC
                                    //`--------------------------'  `--------------------------'
),
  • ファンクションキーと矢印キーとスクリーンショットとOSキーを押すためのレイヤーにしました。
  • RAISEキーをタップでかな入力に切り替えるキーにしているため、間違ってタップすると意図しない日本語入力になってしまうのを防ぐ目的で、使用頻度が低いキーを割り当てています。
  • 矢印キーは vim と同じキーに割り当てたかったのと、長押しのキーの近くにあることで矢印を操作するぞ感が意識できるので、押し間違えが発生しづらいです。

ADJUSTレイヤー

LOWERキーとRAISEキーを同時長押しで切り替わるレイヤーです。

[3] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------.                    ,-----------------------------------------------------.
    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
    XXXXXXX, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, KC_MS_BTN1,        KC_MS_BTN2, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, XXXXXXX,
//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
                                        XXXXXXX, _______, XXXXXXX,    XXXXXXX, _______, XXXXXXX
                                    //`--------------------------'  `--------------------------'
)
  • あまり使わないと思ったので、思い切ってマウス操作のみをするレイヤーにしてみました。
  • 両手親指で長押ししているとマウスモードになるのは、割と楽しいです。
  • とは言っても、本物のマウスやMagic Trackpadに操作性は遠く及ばないので、お遊び程度に。
  • でも、マウスクリックは簡単にできるので、クリック連打するようなシーンでは割と使う機会は多いです。

ANSIキー配列

今までキーボードやノートパソコンを選ぶときはJISキーボード一択でした。
クソデカEnterを「ッターン!!」するのが手癖のようになっていたので、エンターキーにはこだわりがありました。
しかし今回キーボードを自作するにあたって、キーキャップやQMK firmwareの基本設定などをいろいろ見ていく中で気づいたのは、当たり前ですがJISキーボードは世界規模でみた時にはマイノリティです。

さらに、Corne Cherryは今まで使ってきたキーボードの概念が全く通用しないので、配列を変えざるを得ません。
となったら、わざわざJIS配列に合わせる必要もあまり感じなかったので、迷いなく ANSI 配列にするべく設定を見直しました。

OS上の設定

Linuxの設定画面のスクリーンショットを貼ろうと思ったら、なぜか設定アプリが立ち上がらない謎現象が発生しているため、後ほど追記して公開します。

リハビリ

キーボードのビルドがサクッとできて意気揚々とキーを打ってみると、わかってはいたもののびっくりするくらい文章が打てない。
本当にパソコン初心者並のおぼつかなさである。

どなたかの記事に書いてあったタイピングサービス https://www.typingclub.com/ が本当にすごく良くできていて、無心でクエストをクリアしていくうちにあっという間にタイピングに慣れた気がしました。

使ってみた感想

この記事の締めくくりとして、Corne Cherryを5日間使ってみた感想を以下に挙げます。

肩の凝り 👍

まず、肩が全く凝らなくなった。
今まで痛かったのを忘れてしまうくらい、無。
スゴすぎ。

タイプミス 👍

まだ結構ある。
特に記号と数字の入力はまだまだ拙い。
親指でBackSpaceもまだたまに忘れる。
でもホームポジションがズレないので他の入力ミスが劇的に減った。
矢印キーも今までは割と右手を移動してつかっていたのが、vimと同じ位置で操作できるようになったことで全くズレなくなった。

👍新しい趣味として

完全に入沼。
楽しい。
現在進行でパームレストの自作、今後はキーキャップの自作を検討中。
既に運指の違和感がなくもないので、次の狙いを定めた。
https://booth.pm/ja/items/2530075
仕事の休憩中に見るECサービスがAmazonからAliExpressに変わった。

👉銀軸

よい。たまに「a」キーが長押しになってしまう状態になっていたが、実践に投入し始めたからはあまり発生しなくなった。
ただ、思ったより打鍵音があるので赤軸静音が良かった気がする。
いろんな軸を使ってみたい欲求は高まった。

Discussion