自作キーボード”SPLITEN”について

0.はじめに

今回は左右分割の自作キーボード"SPLITEN(スプリテン)"を設計したことについての記事です。初めての分割キーボードということで、いろいろなチャレンジをし、失敗もあったのですが、意外にもエンドゲームを感じるキーボードになりました。

1.SPLITENとは?

”SPLITEN”(スプリテン)は左右分離型の40%キーボードです。

左右にロータリエンコーダを搭載し、LEDはバックライト(1個だけ)とアンダーグローとなっています。

ケースはクリアアクリルの積層ケース(3mm6層+プレート)で、写真ではスイッチプレートにリメイクテープを貼り付けたものとなっています。

TRRSケーブルで左右を接続し、両手の位置を好みの幅に開いて調整することができるため、肩を広げて自然な体勢で打鍵することができます。

2.レイアウト

パっと見るとオーソリニア配列のように見えますが、よく見ると少し変わった特殊な配列になっています。Keyboard Layout Editor(KLE)だと次の画像のようになります。

SPLITENのレイアウト

なぜこのような特殊な配列になっているのか?

きっかけはやはり私の大好きな”テンキー”でした。ちなみに過去に私が設計したテンキー付きのキーボードにはこんなのがあります。

cerbekos00.hatenablog.com

cerbekos00.hatenablog.com

私はBROOKTENを作成した後、分割キーボードの自作について考えるようになりました。分割キーボードでもテンキーを使いたい私は、分割キーボード×テンキーの姿について想像します。

分割キーボードを設計するにあたり、分割するメリットの一つである”リバーシブルな基板”とすることは必須要件にしました。理由としては、リバーシブルな基板を作ったことがないため挑戦したいという気持ちがあったことと、最近は円安で試作するにもコストがかかるため、リバーシブル基板を用いることでコストを抑える目論見があったためです。PCBの最低発注数量が5枚であることを考えると、1回あたりの面積が抑えられるためコストを抑えることができます。

ですがこの要件を満たそうとすると、私の大好きなAlice配列や一般的なロウスタッガード配列は使うことができません。シンメトリカルな配列ではないからです。

40%のロウスタッガード配列を分割した図

Alice配列を分割した図(Ambiさんからテンキーを除いたもの)

逆にテンキーを主体に考えた場合、配列はオーソリニアとなります。オーソリニアであれば当然ながら左右反転させても同じになりますし、レイヤを切り替えることでキーボードとしてもテンキーとしても使えることに気がつきます。

オーソリニアの便利な特性

ですが、自作キーボードをはじめたばかりの頃に、カラムスタッガードの分割キーボードを使用したときの自分に合わなかった記憶が蘇ります。このままのオーソリニアではいけない、と心の声が聞こえます。

自分キーボードをはじめたばかりの頃と違って、最近はいろいろ分かるようになってきました。その合わなかったポイントは突き詰めれば3行目だけなのです。”山田外郎”の使い心地からもそのことは裏付けされているような気がしました。

つまりオーソリニアから3行目をロウスタッガードのようにズらす。ただし、テンキーは崩さないように。

そうして生み出されたのがSPLITENのレイアウトだったのです。

ちなみにお察しの通り、名称はSPLITとTENKEYを合わせた造語です。

CVB,BNMだけズレを作る。スペースバー回りもシンメトリカルな配置に

レイヤを変えてテンキーに

3行目と4行目の間の0.25Uの間については、手をホームポジションに置いた際に親指の”先”ではなく”腹”にキーがくるようなポジションとするためのものです。また私の場合はキーボードに自然に指を置いたとき、”V”,”N”の真下の位置に親指が来るのでここにスペースバーを配置しています。

実際、打鍵感はどうなの?って思われると思いますが、これが意外にもすごく打ちやすいです。私の場合は打鍵の癖が上記の通りで、その癖通りに作っているので当然ではありますが、私のようにオーソリニアやカラムスタッガードが何となくしっくりこないという方には是非試してみてほしい配列です。

3.愛でエリア

重要な見た目のポイントとして、ProMicroやダイオードなどの電子部品を愛でるエリアを作りました。

愛でエリア

このエリアにはProMicro、ダイオード、リセットスイッチ、TRRSケーブルソケットが密集しています。

背景となる基板の色は”紫”にしてみました。理由は紫とピンクはまだ作ったことなかったから。

結果、紫の色が濃いので部品1点1点のコントラストは思ったよりも出てない印象ですが、白系にまとめたキーボードにも合っていると思いますのでキーボード全体のバランスを纏める色としては正解な気がしています。

透明アクリルのカバーでいつでも愛でることができます。素晴らしい!

4.アクリル積層ケース

”Tenalice-ambidextrous”でLEDライティングと相性の良さを痛感したアクリル積層ケース。

Tenalice-ambidextrous with z01

SPLITENの設計を進めるうち、アクリルカットについてもPCBと同様の考え方で試作が安くなるということで、Tenalice-ambidextrousに倣ってアクリル積層ケースにしたいと考えていました。さらにSPLITENでは、透明アクリルにすることでコストを抑えつつ、PCB素材にアルミを選択することで、アルミスイッチプレートをそのまま見せる設計を想定していました。しかし…

アルミのはずだったプレート

アルミというのは両面できませんでした…(そういえばBROOK40でもそういうやりとりをしたのにすっかり忘れていました…)

やっちまった、と思いつつ、すぐに次善の策が浮かびます。

それは、Twitterでもよく見かけるマスキングテープやラッピングフィルムによるカスタマイズです。

そういえばラッピングフィルムによる”ホワイトテナリス”なるものもありました。

ninthsky.hatenablog.com

私が今回使用したのはこちらのリメイクテープで、色味や柄がとてもキレイな大理石調のものです。ダイソー店頭で購入。

リメイクテープ(大理石柄、10cm×2m)jp.daisonet.com

これをスイッチプレートへ貼り付け、同じくダイソー店頭で購入したデザインナイフで加工します。

デザインナイフjp.daisonet.com

リメイクテープをプレートに貼り付けてカット(下手)

カットの断面が少し気になりますが、やすりで少し整えるだけで大丈夫。アクリルケースがカバーしてくれます。

そういえばリメイクテープを購入するとき種類が豊富でどれにしようかかなり迷いました。もし今のテープに飽きた時や別のキーキャップに付け替えるときには、リメイクテープを貼り直してもよさそうです。

アクリル積層ケースそのものはやはりアンダーグローとの相性がいいですね。

パーツは透明でよく見えないのでここでは載せないのですが、パーツは14点/片側で構成され、背面には3mm*2のチルトがついています。

5.スイッチプレート

スイッチプレートは基板と同じ素材で、LED透過用の穴と、柔らかな打鍵間とするためスリットを入れてみました。

PCBとプレートはスイッチだけで固定する方式です。

6.ロータリエンコーダ

SPLITENにはロータリエンコーダが左右にひとつずつあり、4行目の中央に位置しています。この場所は入力時に邪魔にならず、すぐにアクセス出来る場所として優秀です。

私の場合、たまにマウスを操作しながらテンキーに切り替えて打ちたいときがあるので、エンコーダを使って片手でレイヤを切り替えたりして活躍しています。

ただAltキーを押すときにはちょっと邪魔で、実際はトグルスイッチの方が使い勝手が良い説がありますが、エンコーダは見た目のアクセントと自作キーボードのロマンということで…。

7.ファームウェア

初の分割キーボードということで、ファームウェアで取り入れたことも少し。

7-1.左右の判定

PCBに少し工夫をすると同じファームウェアでも左右の判定ができるとのことで、今回はそれを使うことにしました。

”SPLIT_HAND_PIN”による左右の判定は、指定したピンを読み取ってHighであれば左側、Lowであれば右側である(入れ替えることもできる)と認識する仕組みとなっています。今回はB6ピンをSPLIT_HAND_PINに指定し、PCBにもB6ピンをPCB表裏に配置したジャンパにつないで、表面をVCC、裏面をGNDへ接続するようにしました。

回路図とPCB表面の配線

これにより、左右それぞれ表にくる面をはんだでジャンパをすれば、同じファームウェアでも自動的に左右を判断してくれます。地味に便利。

7-2.ロータリエンコーダの反転

ロータリエンコーダは回転の向きが左右で異なるため上部の入力ピンを反転させる必要があります。

裏返しても上部のピンへの入力が反転しない

これを解決する方法はいくつか考えられます。

config.hにENCODERS_PAD_A_RIGHTを指定する方法やエンコーダをVIA対応するなどでLAYOUTマクロにエンコーダのキーを定義する場合にそこで左右を入れ替えてしまう方法、エンコーダの処理を記述するところを反転する方法などです。

今回はENCODERS_PAD_A_RIGHTを指定し、入力ピンを入れ替えるようにしました。

#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { B4 }
#define ENCODERS_PAD_A_RIGHT { B4 }
#define ENCODERS_PAD_B_RIGHT { B5 }
7-3.LEDアニメーションの消灯

BROOKTENでも発生していた事象ですが、RGB_TOGによってLEDアニメーションを消灯させても、スレーブ側のLEDがインジケータを点灯したままとなり、さらにそこからは他のレイヤに変更してもLEDが変わらない状態(※)となってしまいます。

※私はLEDアニメーションをオフにしてもインジケータは点灯させたい派なので、 RGBLIGHT_LAYERS_OVERRIDE_RGB_OFFを定義しており、この事象はその環境が前提となります

この問題について、新しいキーボードをつくるたびにQMKドキュメントのRGB関係の設定を調べ、同じことを試しては無理という結論になることを繰り返してしまっていたので、今回はソフトウェア的に解決することにしました。

// RGBLighting switching
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch (keycode) {
    case KC_F24:
      if (record->event.pressed) {
        return false;
      } else {
        layer_state_set(0);
        if (rgblight_get_val() > 0) {
          // RGB OFF
          rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
          rgblight_sethsv_noeeprom(0, 0, 0);
          rgblight_blink_layer_repeat(5, 200, 2);
          return false;
        } else {
          // RGB reload from eeprom
          rgblight_reload_from_eeprom();
          rgblight_blink_layer_repeat(5, 200, 1);
          return false;
        }
      }
    default:
      return true;
    }
  };

思いついた対策は、アニメーションを単色固定にして明るさを0とする処理を自動化することです。F24の押下時に明るさが1以上であれば、EEPROMに保存せず明るさを0にします。明るさが0の状態でF24を押下した場合は、EEPROMからRGBの設定を取り出します。

8.使用感

最後に、実際に使用してみた感想を纏めてみたいと思います。

外見はイメージしていた以上に良く、シンプルで、大きさもちょうど良い感じです。またリメイクテープのカスタマイズや愛でエリアの効果か、このキーボードを見ると自然とテンションも上がります。

個人的には透明アクリル×リメイクテープ×アンダーグローという構成に”エンドゲーム”を感じました。

”打鍵のし易さ”においても、私にすっかり合っているようで、この配列には運命めいたものを感じてしまいます。残念ながら論理的な説明はできないんですけど、とにかくなんか打ち易いんですよね…SPLITENさん。

定量的な指標の一つとしてタイピング練習サイトのスコアがありますが、使い始めて2日目に最高点を更新しました。

真面目に頭の中で比較すると、Yは近くなって打ち易くなったとか、いろいろ考えるんですが、そもそも分割キーボードが打ちやすいのかな、と考えたり。そして分割キーボードだからこの変な配列が意外にマッチしているよね、と推測したりしています。

ちなみにこの推測が正しいのかについては、Amibi-Miniの次回作を作って試してみようかと考えています。(余談ですが、Miniさんは外国人の方によく声をかけられます)

ただ、欲を言えばQやPを押すときのことを考えると小指を少し下げたいな、とは思いました。ですがテンキーが最優先なので。テンキー入力にはズレが無いほうが良い。

また”zx,.”あたりがちょっとズレてて気になることもありますが、テンキーが最優先なので。

打鍵音については個人的にはまだまだ探究できる余地が多いのかなと考えています。このあたりはスイッチやプレートによる影響が大きいと思いますし、金属プレートが欲しくなってしまいますね。

打鍵の柔らかさについては他のキーボードに比べて柔らかい印象です。ですがこれはプレートのスリットの効果というよりは、アクリルプレート自体が柔らかい素材に起因するものという感じです。

9.頒布について

はじめは試作で満足し個人的に使用するだけで頒布を考えていなかったのですが、是非この配列を誰かに体験してもらって確かめてもらいたい!という想いもあり、キット化しようと考えています。

cerbekoskeyboard.booth.pm

構成としては試作品とほぼ同じですが、試作品を踏まえて変更をかけるところもあります。

  • PCB部品レイアウトの変更(リセットスイッチを少し内側に)
  • ロゴの見直し(SPLITENロゴを新規作成)
  • スイッチプレートはPCBと同じ素材の白色に変更(FR4)
  • エンコーダーは若干背が低いものへ変更(ALPS ALPINEのEC11N1524402)
  • アクリルケースの細部の大きさを調整(大きいTRRSケーブルも差込めるように)
  • アクリルケースのトッププレートのLED穴を削除
  • アクリルケースのチルトを2種類に変更(テント型チルトを追加)

懸念点として、アクリルケースの調達において、試作品のアクリルの厚みにかなり差がありました(2.7mm~3mm)。このあたりの品質がコントロールできないのであれば継続した頒布は難しいと考えています。

10.おわりに

初の分割キーボードということで、いろいろなチャレンジと発見をすることができ、エンドゲームを感じた今回も作成して大変満足しています。

このSPLITENは、小型分割キーボードでもテンキーを使いたいのだ!という奇特な方だけでなく、オーソリニアやカラムスタッガードにしっくりこないという方にも是非試してみてほしい、そんな一台になったかなと思います。

あとは、”分割キーボード×テンキーの理想像は?”といったテーマをもとに創意工夫し、この世に生み出すこと。その楽しさが自作キーボードの醍醐味だなとあらためて感じました。

それでは、良いキーボードライフを。