C-13X。(オープンハードウェアをカスタム)

履歴

2022/2/26 初版公開
2022/4/17 割と参考いただいてる旨の記載と内容の補記

URL

flurples/C-13X: alice qaz-ish board designed by flurples (github.com)

経緯

自分は主に30%-40%程度のキーボードを好むのですが、
GBで購入しようにも数が少ないのです。

そこで色々調べていたところ、オープンソースのキーボードがあったので、
これはと思って作ってみることにしました。

なお、今回の記載内容は独自の手順になっているため、公式ページの内容に準拠しているわけではないことにご注意ください。

他の方のビルドログ

参考にしていただいてるのもあり、ここでもリンク貼ってみます。

kuriharaさんのログ。

手配線handwiredの自作キーボード C-13X を組立てました。 – kuriharaのブログ (hatenadiary.jp)

たっぴぃさんのログ。

C-13Xビルドログ 20220408 – Qiita

RP2040をメインに利用したログが多いですね。

2022年現在ProMicroが入手しづらいのとAVRの価格が上がってる事から、現状安価なRP2040搭載ボードに手を出すのはひとつの選択肢として存在するかと思います。
またRP2040に対応しているキーボードのファームウェアがいくつか出ているので、ProMicro以外の選択肢としても選ぶのは有用と考えます。(KMK firmware、PRK firmware等)
RP2040のファームはファイルシステムが有効になっているので、Web等なくても内蔵のテキストファイルを更新すればマッピングが反映されるのは手軽です。

自分が当時所持していたのは値段お高めのボードだったので、今だったらRP2040zeroを利用するかと考えます。

完成品

基本は30%ですが、スペースキー等は実装可能。
これを利用してレイヤーを色々と仕込めそうです。

作成手順(ログ)

(1)部品の用意

1.ケース・プレートを用意する

以下の部品はJLCPCBに生成依頼を出しました。

  • トップケース
  • ボトムケース
  • プレート

元々3Dプリンタで生成することが前提となっているため、
STLファイルも用意されてます。

トップケースとプレートはレジン、ボトムケースはナイロン素材にしてみました。

強度が求められるものはナイロン素材でもいいかと思いますが、価格が跳ね上がります。

もしくは最近はJLCPCBでアルミニウム基板を作成できるので、それをプレートに使っても良いかもしれません。
実際発注出して触ってますが、割と悪くない感触です。
ただ自作する場合自分で設計し直す必要があるので注意。(上記のとおり用意されてるファイルはSTLしかない)

2.マイコン用意

元々Elite-Cを使う想定のようですが、ラズパイに使われるMCUの動作確認も兼ねるため、
マイコンはボトムケースにハマりそうなもの、かつRP2040が使われてるものを選定しました。

https://www.switch-science.com/catalog/7441/

ちなみにelite-CはもともとUSB type-Cとスイッチを付けたProMicro代替として開発されたみたいですね。
現行のバージョンだとかなり薄めに配置することができそうです。

Elite-C V4 – USB-C Pro Micro Replacement ATmega32u4 – Keebio

3.ハンドワイヤード部品準備→SU120を利用して構成

元々ハンドワイヤード(スイッチに直で銅線等を半田付けする手法)での構築を想定しているらしく、
PCBなんてものがありません。

ですが、できるなら慣れてる環境で構築するのが早いですし、
せっかく自由な使い方ができる道具があることですし、色んな所で使いたいです。

ということで、今回はSU120で疑似ハンドワイヤードな構築を実施しました。

e3w2q/su120-keyboard: Expandable keyboard with up to 120 keys (github.com)

慣れてる人は自分で基板を発注するのもひとつですが、
日本国内での対応であれば、TALPさんとこでSU120基板を販売してますのでこちらご利用だと安心感あります。

SU120 自作キーボード用基板(分割キーボードセット) | TALPKEYBOARD – …

ちなみにTALPさん版だとビスケット部分が補強されており、ニッパーで切るときにビスケットを破損しづらくなっております。

4.その他の用意

  • 半田ごて
  • 半田
  • ダイオード35本
  • キースイッチ35個
  • キーキャップ35個
  • PCBソケット35個
  • 1mm程度のゴム板(というか貼り付けるやつ)
  • カプトンテープ
  • M2、長さ6mmのネジ8本

(2)構築

1.プレートにキーを差し込んでみる

まずプレートにキースイッチを差し込みます。

穴の精度の関係やキースイッチ自体の状態(ピンが曲がってる等)もあるため、この時点でちょっと作ってみるのは一つかと。

ついでに組み立てるときに困らないように全体を組み立ててみるのも一つです。

トップケースを裏返してプレートを格納、ボトムケースも差し込んで元の方向に戻すと作りやすいです。

あとついでに、ガスケットマウントされる部分(上下に切り欠きがあるあたり)のプレート側にゴムを貼り付けてみても面白いかもしれません。
これがあるだけで打鍵感が変わる気がします。

2.SU120基板上の半田付け+仮設置

SU120の基板を使えるように、ダイオードとPCBソケットを半田付けします。

半田付けが終わったらプレートに設置してあるキースイッチに対して装着してみます。
PCBソケットとキースイッチのピンがハマるように設置してみてください。

下記は色々配線されてますが、まぁこういうイメージです。

ちなみにSU120にホットスワップする形なので、下手するとスイッチから基板がスッポ抜けます。
その場合はボンドつける等で固定でもいいかと。(代わりにホットスワップできなくなりますが)

3.配線

配線です。
キーマトリクスを作成する作業です。

今回、自分は4*10の配列を構築することにしてみました。

(2)2.で貼り付けた写真は当該プロセスでできたものです。
(もう一枚似たような状況の写真を貼っておきます)

配線はダイオードをハンダ付けしたときに切断した足とポリウレタン銅線を併用してます。

まず足同士は完全に穴を通さず、表面上にハンダを盛って、そこに配線を通す形で実装してます。

あまりよろしくはないのですが、現状スイッチと基板が接続されてこのまま足を通す場合、
配線がわりのダイオードの足がプレートやケースに突き刺さったりする可能性がある事、およびスイッチを設置している状態で配線を穴にくぐらせる事が難しいため、上記の方法を採用してます。

中央近くの配線やキーが直列に並んでない部分については、ポリウレタン銅線で配線を行います。
また、ビスケットと干渉する部分等でダイオード足で配線しづらい場合もポリウレタン銅線で配線してます。

注意点はひとつ。上記写真の左上(実際に使うときは右上あたりのキーに該当します)について、
銅線がクロスする箇所が存在します。

完全にポリウレタン銅線とかで空中配線にするのもいいのですが、カプトンテープで絶縁した上でクロスさせるのが安全です。
(左上の黄色い部分がカプトンテープ貼り付けた箇所)

4.マイコンに接続

さて、マトリクスを読み込ませてキーボードにするには、
マイコン側でマトリクスの情報を読み取れるようにする必要があります。

ということで、マイコンに配線を行います。

縦軸・横軸の情報を読み込ませるように配線してみてください。

私は下記のような形で構築してみました。割と雑。

ちなみにコードを長くしすぎるとボトムケースから配線がはみ出ますが、なんとかしまってくださいw
(自分はビニールタイが手元にあったのでそれである程度まとめて縛ってます。おかげではみ出す量が減った)

半田付けが終わったらボトムケースにマイコンボードを設置可能です。

・・・が、前述の通りボードが想定しているものじゃないため、枠とUSB穴がミスマッチしてます。

自分の場合、以下の対応してます。

  • マイコン止め枠が合わないので、接着剤で枠を狭くして対応
  • USB穴がズレてるので、ボトムケースを削って対応(穴を広げた)

5.ケース組み立て+ネジ止め

ケース組み立ててください。
組み立てが終わったら、ケースの下から8箇所のネジ止めすると抜けなくなります。

※事前にデバッグでもいいけど、後で分解してデバッグもできるので、まず組み立て手順確認しといたほうがいいかと思います。

6.ソフト周り

PRK firmwareをインストールして使ってみてください。

picoruby/prk_firmware: A keyboard firmware platform in PicoRuby (github.com)

ちなみにこれ使うのにややこしい部分は、利用するピンの番号のうち、何を指定すればいいかという部分です。

たっぴぃさんのログがわかりやすいですが、ファームウェア上のピン番号は「マイコンボード上に割り当てられているGPIOの番号を記載する」必要があります。
よってマイコンボード上どのピンにどのGPIO番号が割り当てられているかを把握する必要があるので、
データシートを用意しておくのが早いです。

なお、30%のキーボードなのでレイヤーをフル活用して利用することになると思います。
これはPRK firmwareのお試しにもってこいな構成ですのでRP2040で自作チャレンジされる方の入門にピッタリです。
(実際自分はこのキーボード作成を通してPRK firmwareで利用するキーマップのテンプレートを作成してます)

終わりに

今回初めて3Dプリンタでケース等一式を出力して作ってみましたが、
ガスケットマウント+ゴム板のおかげか、割と快適に打ち込むことができます。

気になる人はプレートをアルミに変更する・おもりを追加する等できることはあるかと。

カスタムするにしても夢が広がりますね。

実際これをアルミニウム製ケースで作ろうとしてる人もいるみたいです。

逐渐知道了自己喜欢什么:手工、绘画与音乐 总之,喜欢折腾,喜欢创造。 只不过全是业余的hhh 滚去写论文了 – zFrontier 装备前线

追記:リセット方法

リセットは以下の手順。

  • ケース底面のネジを全部とる
  • トップとボトムを分離する
  • 内部のマイコンのスイッチを押しつつUSB抜き差し(ここはボードに依存)

もちろんリセットボタンつけるのも手ですけど、まずは最低限必要な手順があったほうが手っ取り早いですね。