[自キ]マイコン直付けのロープロ左手デバイスを作る

自作キーボード

Nitingale ver.LITという自作キーボードを作ってみました。

最近主流?のrp2040直付けキーボードです

用途としてはゲーム用左手デバイス及びマクロパッドを想定しました。

テーマとしては安価にできるだけ良いものを作る、です。

Nitingale verLITは直感的に操作でき左手でも楽しくゲームができる左手キーボードとして満足するものができました。薄型で右手との高低差もありません。

企画

[自キ]8mm厚の低背左手デバイスを手配線で作る

デザインとしてはこれの前に手配線で製作したこれがもとというかPCBバージョンです。

この記事でおよそデザイン思想は書かれていますが、ANSIではない配列でFPSゲームに適した左手デバイスを作ろうというやつです。割愛します。

「安価にできるだけ良いものを作る」というテーマに関してですが、頒布というものをしてみたいと思ったことが根底にあります。(LITさんで完成品を、舎さんでキットを頒布中です。)またFPSゲーム向けということで自キを知らない方向けに安くする必要があると感じたためです。

HEキボカスタムジャンルがゲーマー間で流行ったために価格面では実は気にする必要なく完成度を求めた方が良かったのではないか、と結果論ですが思ったりしています。

構成

ケース

完成度の凝ったもの、打鍵感がまともなもの、また薄型のもの。がいいなと思い考え始めましたが、まあ安価に済ませてそこそこにと思うとFR4積層が妥当なのかなと思いました。

サンドイッチもありましたが最薄にしたいなというところと、デバイス界隈にサンドイッチは受け入れられるのか?と思ったので却下しました。

3DPレジンケースの発注もアリでしたがデバイス界隈ではレジン=アレルギーなため気が引けました。趣味の範囲で自キや自作イヤホンだと堂々と使ってるのでどうにかならんのかとは思っていますが最近はデバオタも自作アーチザンキーキャップ買ったりしてるので寛容になったのかもしれませんね。まあアレルギーを考慮するのは素晴らしいですが

また薄型ということでロープロスイッチを採用したいわけですが、問題があります。キーキャップが制限されすぎます。ロープロ用キーキャップは基本的にステップスカルプチャーでないフラットなものです。ゲームでの使用を考えたときにそれでは嫌だなと。

なので十字ステムロープロスイッチで、かつプレートレスでなくてはなりません。キーキャップとプレートが干渉するためです。そもそもcheryプロファイルはスイッチ自体に干渉してしまうので対策できないですが。

よってPCBトッププレート+FR4を最薄積層構成になりました。スイッチはgateron lowprofile 2.- ks-33を使用します

回路

というわけでFR4に使用なのですが、最薄構成にすると手配線と同じくxiao rp2040使用しようと思うとtype-cが飛び出してしまう!(マイコンボード分直付けより厚くなります。)

じゃあ実装位置を変えたらという話ですが、プレートレスでPCBプレートにしようと思っていたため、上にずらせないのですよね。わがままを言うな。

というわけで直付けしてみようという流れに

さて、そもそもなぜ前身の手配線モデルFD05が30キーなのかというと、見た目がいいねということもありますが、xiao rp2040が11ピンのためです。素直にマトリクス組むと6 x 5 = 30keyというわけです。

なので直付けとなるとそこの自由度が上がるわけですが、、、面白いことにrp2040は30のIOピンがありdirectpinsですべて組むことができます。ダイオードレスです万歳。30key構成を引き続きです。

基板

レイアウトはcad上にあるので回路図を引いて配線するだけです。

直付けをするにあたって下記を参考にしました。というかまんまです。

RP2040で作る自作キーボードの本_電子版_v4
rp2040のハードウェア設計

schematic

キースイッチ部分。

rp2040はIOピンが30あるため、すべてdirectpinダイオードレスの設計が可能です。

ピンのHOTとGNDの位置は配線しやすいように都度変更してくるくる回してました。

制御部分。ほぼほぼコピペです。

USB, 3.3Vレギュレータ, フラッシュメモリ, 水晶振動子, rp2040を使用します

IOピンとSWの対応は基板に配置してみて配線しやすいように都度変更します。

layout

外形とキー配列はcadで作成してdxfをインポートしました。

キースイッチフットプリントの配置はこんな感じです手配線のものとほぼ同じですが若干微調整しました。

フットプリントに角度と位置をちまちま手打ちしていきます。pythonで便利に一括でできるとかできないとか。フルキーなら勉強してやったかもしれないけど30個だからいいかと手打ち。

データシートに合わせてフットプリントを作成します。プレートレスでズレやすいためスルーホールの穴をタイトに設定します。

スイッチはks-33 gateronのロープロスイッチを採用しました。理由は安くて入手性もいいからです。kailhは高いし買えない。でも最近はghostとかそっちの方が人気だよね。

まだもう少しタイトにしてもいいかもしれないなあ。

ちょうどいい位置を見繕って配置します。

IOピンとSWの対応をいい感じに回路図を変更しネットリストを読み込みます

キーが傾いているのでやりづらいですね。

こだわって配線しようかとも思いましたが見た目だけなのでこんなもんで

スイッチと部品の位置に穴の開いた積層用のミドルプレートを作成します。

ミドルプレート用に穴の開いたフットプリントを用意します。これくらいにしてみました。

プレートを作成します。

はんだ時にスイッチ固定する用の治具も基板で作りました。これないとカーブがぐちゃぐちゃになってしまう

作る

[自キ]「Nitingale ver.LIT」ビルドガイド

こんなんで組み立て

プレートありのバージョンも作りました。

FR4積層が初めてだったので感想でも

剛性感というかみっしり詰まっているので持った時の質感はいいですね。

欠点としては軽いことです。これは小型なところもありますが、軽いため端のキーを強く押し付けると浮きます。そういうものですね

単純に枚数がかさむので思ってたよりお金もかかりがちかも

qmkfirmware

rp2040でdirectpins仇毛で作るときは参考になるのかもしれない。

info.json

nitingale_lit.h

#pragma once

#include "quantum.h"

#define LAYOUT( \
  K00, K01, K02, K03, K04, K05, \
  K10,   K11, K12, K13, K14, K15, \
  K20,   K21, K22, K23, K24, K25,K26, \
  K30, 	  K31,    K33, K34, K35, K36,  \
  K40, 			    K43, K44, K45, K46 \
  ) \
  { \
    { K00,  K01,  K02,  K03,  K04,  K05,  KC_NO }, \
    { K10,  K11,  K12,  K13,  K14,  K15,  KC_NO }, \
    { K20,  K21,  K22,  K23,  K24,  K25,  K26 }, \
    { K30,  K31,KC_NO,  K33,  K34,  K35,  K36 }, \
    { K40,KC_NO,KC_NO,  K43,  K44,  K45,  K46 } \
  }

keymap.c

コマンド入力でレイヤー移動と通称着るスイッチ機能をカスタムキーコードで加えています。

キルスイッチは常に理論値を出す機能です。マクロじゃないか使用OKなのか思いますが、プロゲーマーに提供を行っているリアルフォースが公式アカウントで大丈夫と考えていると声明を発表していますのできっと大丈夫に違いない。

nitingale_lit_via.json

remap用のファイルになります。

  {
    "name": "nitingale_lit",
    "vendorId": "0x0121",
    "productId": "0x0012",
    "lighting": "none",
    "matrix": { "rows": 5, "cols": 7},
	"customKeycodes": [ 
{		"name": "WkS", "title": "press W + release S", "shortName": "WkS"},
{		"name": "AkD", "title": "press A + release D", "shortName": "AkD"},
{		"name": "SkW", "title": "press S + release W", "shortName": "SkW"},
{		"name": "DkA", "title": "press D + release A", "shortName": "DkA"}
	],
    "layouts": {
      "keymap": [
[		"0,0","0,1","0,2","0,3","0,4","0,5"	],
[		{"w":1.5},"1,0","1,1","1,2","1,3","1,4","1,5"	],
[		{"w":1.75},"2,0","2,1","2,2","2,3","2,4","2,5","2,6"	],
[		{"w":2},"3,0","3,1",{"x":0.5},"3,3","3,4","3,5","3,6"	],
[		{"w":1.25},"4,0",{"x":2.5},"4,3","4,4","4,5","4,6"	]
]
    }
    }

反省点

積層は安く済んで密度も高いですが弱点も見えてきますね

またプレートレスですのでth部品だともろ足が飛び出てしまいます今回だとUSBがそうです。

表面にviaもところどころ見えてしまっています。

gndベタはやめた方が良かったかも。放熱してしまってはんだ付けしにくい原因になっていました。

外形が配列に沿ったものになっています。のでチルトしようとするとどうしても違和感が出てしまいます。

サンドイッチのものは多いですし、サンドイッチマウントで全然いいのかもしれません。

スイッチ。接着剤はないならないほうがいいです。なくてもいいのですが強度的な不安はやや残りますし、プレートはあったほうがいいですね。しかしキーキャップがという。これはどちらかを取らなくてはなりませんが、、、

ロープロスイッチは制約が多すぎます、まずはMXスイッチでやるべきだったかもしれない。

直付けはどうか

頒布する際にファームウェアを焼いて完全に動作確認ができるのは売り手としては良さそうです。

IOピンがたくさん使えるのは素晴らしいですね。これはマイコンボードも色々ありますけど

デメリットとしてはたまに実装不良基板がありました。

価格的にはマイコンボード買うのと同じぐらいで金銭的メリットは何とも言えないと思います。

今回のようなキー数の少ないものだと恩恵を感じにくいですがキー数の大きなキーボードだと恩恵は大きそうですよね。IOピンもさることながらダイオードのはんだ付けも面倒なので結SMT頼むならマイコンも頼む方が楽です。

今回だと30keyをダイオードレスで作れるのはかなりありがたかったです。部品点数もそうですが積層なのでミドルプレートの穴あけが多少楽です。

頒布してみました

頒布してみました。人に触ってもらうのはうれしい限りですね。

人気クリエイターでない限りは副業にはなりえないでしょうな。具体的に言うと100単位で発注しては売って捌く規模感が必要なのかなと思います。

~数十個規模の頒布だと赤字で同人だなって感じです。原価回収のみで頒布作業の時給も賄えませんし、企画設計製造の時給考えたらという感じ。加えて莫大な時間も消費しています。

そこに文句を言うのではないですよ。頒布を体験してみたくてやったことですし、儲けようという考えもそもそも持ってないので。
まあ、製造データ公開してほしい人が勝手に製造して楽しむのが一番winwinかなと個人的には思います。
端的に言うと、皆さんこれ系の記事で言ってますが割に合わないです。そしてそれはそれとして手に取ってもらえるのはうれしいことです。

頒布に関する一連の中でいろいろ勉強になったのでそれはいいことだと思います。productに対する意識も少し変わった気がします。

総じて良い経験になりました。

おわり

今書いていますが基板設計したのがもう1年前の話なので何ともピントのぼけた薄いなかみになっています。

何のための記事なのかわかりませんね

時間を空けるべきではない

それでも一応残しておこうという感じです。

というわけで2023年はまるまるnitingale ver.LITに費やした一年だった気がします。

製造データは投げておきます。製造するなり利用するなりしてください。

GitHub - Tsuiha/Nitingale_verLIT: 30keys lowprofile left hand keyboard gaming device
30keys lowprofile left hand keyboard gaming device - Tsuiha/Nitingale_verLIT

コメント

タイトルとURLをコピーしました