たねやつの木

Photographs, Keyboards and Programming

自作キーボード(ID75/Idobo)を作成しました。

こんにちは、たねやつです。

今年に入って初めての自作キーボード(ID75/Idobo)を作成しました!その時の流れや使い心地なんかについて書いています。

f:id:ibuquicallig:20200528145402p:plain

ID75の特徴

ざっくりとまとめるといかのような感じになります。

  • 15x5の格子配列
  • アルミ素材のケース
  • 電子部品はすべてはんだ付け済み
  • Kailhソケット装着済(キースイッチを後から付け替えることができる)
  • アンダーグローLEDとすりガラス
  • USB Type-C端子

今回はなるべく面倒なく(はんだ付けとか)ソケット対応しているキーボードがほしかったのでこれを選択しました。普通にXD75のソケット対応版を購入することもできたのですが、見た目がID75のほうがカッコよかったのでこちらを選択しました。

使えるようになるまでの流れ

発注から組み立てるまでです。

AliExpressで購入

購入先はAliExpress内のShenzhen YMD Techというところから購入しました。キーキャップも多数取り扱っていて何度かここから購入していますが特に問題が起きたことはないです。

色はブラックを選択。新型コロナウイルスのせいで到着が送れるかと思いましたが、この注文では特に影響を受けませんでした。(一緒に注文した別のベンダーの商品はいまだ届いていませんが。。。)

日付 配送履歴
2020/04/02 引受
2020/04/04 国際交換局から発送(中国)
2020/04/21 国際交換局に到着(日本)
2020/04/21 通関
2020/04/22 最寄りの郵便局に到着

組み立てる

組み立てるといってもすでに電子部品ははんだ付けされているし、キースイッチもソケットにはめ込むだけなのでめちゃくちゃ簡単です。

f:id:ibuquicallig:20200528145423p:plain

f:id:ibuquicallig:20200528145431p:plain

使用しているキースイッチはGateron Silent RedKrytox GPL205g0をルブったものです。

キーマップの作成、書き込み

以下のような感じのキーマップで運用しています。

/* Default Layer
  * .-----------------------------------------------------------------------------------------------------------------------.
  * | `     | 1     | 2     | 3     | 4     | 5     | <     | >     | 6     | 7     | 8     | 9     | 0     | -     | =     |
  * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * | TAB   | Q     | W     | E     | R     | T     | {     | }     | Y     | U     | I     | O     | P     | [     | ]     |
  * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * | Ctrl  | A     | S     | D     | F     | G     | (     | )     | H     | J     | K     | L     | ;     | '     | Enter |
  * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * | LShift| Z     | X     | C     | V     | B     | Home  | End   | N     | M     | ,     | .     | /     | RShift| Delete|
  * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * | Esc   | LGUI  | LAlt  | Menu  | Space | Bksp  | Lower | Raise | Enter | Kana  | Left  | Down  | Up    | Right | End   |
  * '-----------------------------------------------------------------------------------------------------------------------'
  */

/* Lower Layer
  * .-----------------------------------------------------------------------------------------------------------------------.
  * |       | F1    | F2    | F3    | F4    | F5    |       |       | F6    | F7    | F8    | F9    | F10   | F11   | F12   |
  * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * |       |       |       |       |       |       |       |       |       |       |       |       |       |       |       |
  * |---------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * |       | <     | >     | {     | }     |       |       |       | =     | +     | -     |       |       |       |       |
  * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * |       | (     | )     | '     | "     |       |       |       |       |       |       |       |       |       |       |
  * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * |       |       |       |       |       |       |       |       | Func  |       |       | Vol-  | Vol+  |       |       |
  * '-----------------------------------------------------------------------------------------------------------------------'
  */

/* Raise Layer
  * .-----------------------------------------------------------------------------------------------------------------------.
  * |       |       |       |       |       |       |       |       |       |       |       |       |       |       |       |
  * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * |       |       |       |       |       |       |       |       |       |       |       |       |       |       |       |
  * |---------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * |       |       |       |       |       |       |       |       | Left  | Down  | Up    | Right |       |       |       |
  * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * |       |       |       |       |       |       |       |       |       |       |       |       |       |       |       |
  * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * |       |       |       |       |       | Func  |       |       |       |       |       |       |       |       |       |
  * '-----------------------------------------------------------------------------------------------------------------------'
  */

/* Function Layer
  * .-----------------------------------------------------------------------------------------------------------------------.
  * | Reset |       |       |       |       |       |       |       |       |       |       |       |       |       |       |
  * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * |       |       |       |       |       |       |       |       |       |       |       |       |       |       |       |
  * |---------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * |       |       | RGBMOD|       | RGBTOG|       |       |       |       |       |       |       |       |       |       |
  * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * |       | INC   | DEC   | HUE I | HUE D | SAT I | SAT D |       |       |       |       |       |       |       |       |
  * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
  * |       |       |       |       |       |       |       |       |       |       |       |       |       |       |       |
  * '-----------------------------------------------------------------------------------------------------------------------'
  */

デフォルトのレイヤーでは親指周りに重要なキー(EnterSpaceBackSpaceなど)と個人的によく使うキー(Home/End)をまとめて見ました。LowerレイヤーにはFキーとカッコ、演算子、RaiseレイヤーにはVimの矢印キーをまねて設定しています。

QMKプロジェクト内にはID75というキーボードは存在していないので代わりにIdoboというディレクトリを使用することになります。default75あたりのキーマップをコピーして作成していくと楽かと思います。

KANAキーには以下のマクロを仕込んでWindowsのIMEのかな/英数をトグルできるようにしています。

/* Custom Keycodes (after programmed) */
enum custom_keycodes {
  KANA = SAFE_RANGE,
};

// ...

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch (keycode) {
    // Toggle IME input mode
    case KANA:
      if (record->event.pressed) {
        SEND_STRING(SS_LALT("`"));  // Alt + Enter
      }
      break;
  }
  return true;
};

完成!

キーマップが正しく書き込めていることが確認出来たら完成です!!

f:id:ibuquicallig:20200528145402p:plain

キー数の多さは圧巻です。。(笑)

アンダーグローLEDはこんな感じで光ります。ケースとトッププレートの間に挟まれているすりガラスによってかなりイケメンな光り方をしてくれます。

キーキャップにはグラブバッグで入手したSAプロファイルのキーとレジンで作成したキーキャップをはめています。

使ってみて

あまりID75自体の感想になっていません(笑)

久々の格子配列ということ、ghキーの間に2列あるということ(普通の配列よりも若干左右の手の感覚が空く、yキーを左手で打鍵できない)から、慣れるのに少し時間がかかってしまいましたが、3日ほどで快適に使えるようになってきました。

両手の間に置いたカッコキーとHome/Endですが、これはなかなかうまく運用できておらず、普通の打ち方で打ってしまうので強制する必要があります。。。(そうするとJIS配列とかをとっさに使わなければならないときなどに死にそう)

ルブったスイッチを初めて使用してみたのですが、確かに静かかも?ぐらいの感想です。。おそらく全体的にもうちょっとだけ多めに塗布してもよかったのかもしれないという点と、バネ自体にも105とかでルブったほうがいいのかも。