Kagizaraya Chidori活用研究

Kagizaraya Chidori with Doys keycaps

Kagizaraya Chidori は分割型の格子配列のキーボードキットだ。 片側6×4が右手用、左手用の2つあるので、合計48キーのCherry MX互換スイッチを搭載できる。 このキーボードを組み立てて使ってみた感じを紹介する。

どのようにここまでたどり着いたか

もともとErgoDash という列スタッガードの分割キーボードをしばらく使っていて、今回そこに買い増ししているので、分割キーボードも格子系の配列もある程度慣れていた。 ErgoDash はキーの数が70 個と多く、自分の使い方でキー配列を決めていくとキーがやや余り気味になっていたほか、ホームポジションから全くてを動かさずにタイプすることを考えると、数字の行は結構遠く、これに手が届くようにすると Cあたりは中指が長いので多少無理がある感じの押し方になってしまっていた。 もちろん、キーが多いだけなので使いやすいところにマッピングしていけば良いだけで、実際そのようにしてErgoDash は満足して気に入って使っている。

別の話として、ちょっと前からDeadline StudioのDoysというキーキャップが気になっていた。 Doys はおもちゃのブロックのような見た目をしており、その独特の形状を生かすためには行・列のいずれも一直線になっているキーボードに載せるのが良いだろうと考えた。 また、上記ErgoDash をかなりながく使ったことで、自分に必要な部分と必要でない部分が分かってきた。 本当に自分が必要な所だけに絞ったキーボードを組み立てる機運が高まった。

本当に必要だったもの、または今回のコンセプト

今回使った部品紹介

というわけで、上記のようなことを考えていたところ、ちゃんといい感じのキーボードの設計をしてくれている方がいらっしゃって、自分で基板を起こさなくてよくて助かった。 Kagizarayaさんの公式通販サイト [kagizaraya.jp]でChidoriのキット (税込¥12,000)を注文した。 Chidori はすべてスルーホールの部品で作られているのも特徴で、しばしば別売りになっているマイコンボード(Pro Micro)が不要なのも良いところだ。 USB 端子はちょっと古い感じのUSB mini B端子で、micro USBと比較して壊れにくいメリットはある一方、かわいいケーブルの選択肢が少ないというデメリットはある。 これはトレードオフということになりそう。

Chidori のようなキーボードが作りたいが分割でない方が馴染みがある場合、Chidoriのインスパイア元のPlaid キーボード [github.com]というのもあるようだ。 これは国内でそこまで簡単に入手できないし、Chidori も左右隣接して並べれば事実上一体型キーボードと同じ配置にはなる。

Chidoriが使っているコントローラはAtmel Atmega328P という品番で、Arduinoでしばしば見かけるチップだが、これはUSBを内蔵していないマイコンだ。 ソフトウェアのみで動くUSBデバイス実装のV-USB というライブラリでUSB デバイスとして振る舞わせているらしい。 すごい。

キースイッチはちょっと前にいただいたCherry MX 茶軸があるので、これを活用することにした。 お店で最近よく見るものと違ってケースが黒い不透明なプラスチックなのでRGBでじゃんじゃん光らせたいような時には向いていなそうだが、Chidori はそういう機能はないので今回にぴったりだった。 ErgoDash ではCherry MX 赤軸を使っているので、気分に合わせて異なるスイッチを使えるようにする意味でも違う系統の軸で良かった。

キーキャップはDoys の透明オレンジを使った。 遊舎工房で32個税抜¥1,980 で、Chidori は48キーなので2セット購入。送料と税金が入って¥4,510. 16 個分のキーキャップが余ってもったいないが、予備としてとりあえず保管しておくことにした。

Deadline Studio, Doys, transparent orange on white steel panel
Doys 透明オレンジを白いPCケースの蓋の上に置くとこう見える

Doysの透明の質感が現物を見ていなかったので分からなくて悩んでいたのだが、結果的に非常にきれいに見えている。 あまりに透明過ぎて、下にあるプレートとキースイッチのケースの黒色が見えすぎてしまうことを主に心配していたが、実際にはある程度ざらつきがあって拡散反射の成分が多めの素材だったので、裏映りはちょうど良い程度で、ちゃんとキーキャップはオレンジに見える。

購入した部品の合計金額は送料と税金込で¥16,510. キーボードに払う金額としては安いと感じるくらいだ。 まあキースイッチがいただいたものなのでその分の金額が反映されていないというのはある。

組み立て

組み立てはビルドガイドの通りで迷うところはなかった。 迷うところはなかったのだが、うっかりコンデンサの容量と場所を間違えてしまって、最初にUSB を接続した際にデバイスとして認識されなかった。 単なるうっかりミスなので、慣れてるつもりでも、これから組み立てる人は教訓にしてください。

レイアウト

レイアウトは各人好みのものがあると思うが、ここでは4列の分割キーボードを使ったことがない方向けに私のお気に入りのレイアウトを紹介する。 ベースはQWERTY で、利用頻度が多いものを単体で押せるようにした。 Enterは親指に割り当てている。 ESCは左手小指の位置なので、ちょっとクセがあって慣れるまで少しかかったが、vim を使うときに不便しないように左手側には欲しかった。 英数への切り替えはこのレイヤーに配置している。

Layer 1 keymap
何も押さないときのキーマップ。

右側のFnでカーソルキーと数字キー、ファンクションキーが利用可能になっている。 最下行と、隣接するその一個上の行のキーの同時押しは少々無理があるので、カーソルキーは逆T型ではなくH J K L に割り当てるvimスタイル(またはその基になったADM-3A [adm42.dev]スタイルと言った方が正しいだろうか)にした。 日本語入力モードへの切り替えはこのレイヤーで、英数キーの位置で行うようにした。

Layer 3 keymap
右側のFnを押したときのキーマップで数字とファンクションキーを割り当て。

左側の左下のキーを押すと、右側にテンキーが使えるようにした。 7 8 9 が数字モードと同じ位置にくるようにしてあるのが使いやすい点。

Layer 2 keymap
左側のFnを押すとテンキーを利用可能にした。

ファームウェアはQMK にサポートが入っている [github.com]ので簡単に準備できる。 Docker (podman)が使える環境なら、

./util/docker_build.sh kagizaraya/chidori:default

とするだけですぐにイメージが作れる。 このイメージの書き込みは、キットで買ったマイコンはブートローダ書き込み済みだったので、ビルドガイドに書いてある方法でブートローダを起動した後で

avrdude -p m328p -c usbasp -U flash:w:kagizaraya_chidori_default.hex:i

とすることで簡単に書き込みできた。 キー配列が決まってしまってからは、QK_BOOTをアサインしたキーを押すことでもブートローダには入れることを確認した。

使ってみて思ったこと

完全に直行な格子配列は、実際使ってみると、自分のキーの押し方の変なクセに気づかされる。 たとえば、私の場合中指でUを押す癖があり、格子配列では指を左右に動かす必要がないので、いつもの調子でUを押したつもりがIを押していた、といった具合だ。 そういう意味では格子配列は「寛容ではない」ということになるのだが、結果として正しいキーの押し方に矯正されてタイプ速度は改善しそうだ。

数字の行が無いのは期待していた通り困っておらず、むしろキーの組み合わせで入力した方が手の動きが少なくて楽なことが確認できた。 これも敢えてキー数を少なくして強制しないとなかなか長く実践して慣れていくのが難しい部分であるとも感じている。

キーキャップDoys の見た目は大変満足していて、押し心地や音も心地よい。 ただし、最下列のFnキー押しっぱなしのような状況では少々角が指に刺さる感じはあり、この場所に多くの方が逆向きにキーキャップを嵌めている理由が理解できた。 とはいえ慣れれば問題なさそうというのと、この問題を感じる頻度が低いので当面このまま使っていけそうだ。

Flash消えてしまう問題

かなり稀な不具合だと思うが、通常通り使用していたところ、ある日突然USB デバイスとして認識しなくなり、ブートローダにも入れない状態になった。 別途持っていたArduino Uno r3 とRaspberry Pi のGPIO を接続して、ISP でファームウェアを書き込んだところ復旧できた

どうやら、電源電圧が下がるときに暴走してFlashが消えてしまう事故はAVR では起きうるようで、Brown-out Detection (BOD)を有効にしておけば防げるらしい。 このFuseは上記復旧手順のようにISP をつながないと、キーボード自体をブートローダに入れることでは書き換えられなかった。 書き換えている様子:

$ avrdude -p atmega328p -C ~/avrdude_gpio.conf -c raspberry_pi_gpio -U efuse:w:0xfc:m -D
using libgpiod for linuxgpio
avrdude: AVR device initialized and ready to accept instructions
avrdude: device signature = 0x1e950f (probably m328p)

avrdude: processing -U efuse:w:0xfc:m
avrdude: reading input file 0xfc for efuse
         with 1 byte in 1 section within [0, 0]
avrdude: writing 1 byte efuse ...
avrdude: 1 byte of efuse written
avrdude: verifying efuse memory against 0xfc
avrdude: 1 byte of efuse verified

avrdude done.  Thank you.

これで4V くらいまで電圧が下がるとリセットがかかるので安全になるらしい。 この設定をしてもキーボードとしては使えることは確認できていて、Flash が消えてしまう事態が再発しないかは様子を見ていこうと思う。