2022-12-10

Lilithキーボード用の3Dプリントのソリッドなケースを試作、これがなかなか良い [自キ沼 #20]

先月にTwitterではお話していましたが、セルフメイドLilithキーボードでは、ケースをFR-4積層と、もうひとつ別の方式として、3Dプリントで試作しています。
右手側片手分だけなのですが、これを装着して使い始めてたところ、我ながらなかなか良さそうです。

下の写真が実際の見た目です(下に仮置きで敷いているのはフェルトのハギレですが、これもなかなかよいです)。
真ん中の図がケース部品の3Dモデルを上と下から見たところです。

構造的には上の図のように、PCBを3Dプリントのトップケースとボトムケースで完全に隙間なく挟み込む形にしています。
自作キーボードでよく採用されているサンドイッチマウントや、ケースとスイッチプレートが一体構造で作成されるインテグレーテッドマウント、高級キーボードのガスケットマウントケースでさえ、プレート・PCB・ボトムの間に空間があって(PORONやシリコンをゆるく挟んでいる場合もありますが)、浮かんだ形なので、振動がどうしても抑えられず、音も外に漏れ放題になってしまうのではと考えました。
そこで、この空間を隙間なく埋めてしまい、なおかつ、しっかり挟んでで押さえ込んでしまって、打鍵ショックをキーボードの筐体体積全体で受け止めてやれば良さそうと考えました。
名前を付けるとすれば、ソリッドケースあるいはソリッドマウント方式になるのかなと思います。

chocスイッチは通常パシャパシャという感じの高音の打鍵音なのですが、ソリッドケースにすることでコトコトまでは行きませんがカタカタくらいの落ち着いた打鍵音に変化したように思います(打鍵音ビデオは可能なら頑張って撮って(録って)みます)。

ソリッドケースの3D設計は一からやろうとすると頭の中に立体物を明確に思い浮かべる(彫刻作成のように?)のが難しそうで、どこから手をつければよいかすらお手上げと感じていたのですが、発想を変えて、先に作っていた積層ケースを組み立てるように、それぞれ形の違う薄い層を積み上げていく設計方法をとることで、なんとか実現できました。
積層ケースでの経験が見事に生きました。
ボトムケースの方は、ダイオードやスイッチソケット、それにジョイスティックのケーブルやソケットの部分は隙間を開けています。
もちろんPro Micro本体や、その足、リセットスイッチやTRRSコネクタ用の空間も開けています。
ネジ止めのためのナットとネジ頭は上下のケースに埋め込まれるようにしました。
ボトムケースは薄さを最優先して、穴あき状態のままで蓋をしない構造にしています。

JLCPCBのブラックレジンの3Dプリント結果は、一つの面はとても綺麗に滑らかに出力されますが、その反対側の面は表面が少し肌荒れ状態になってしまうようです(写真の親指ブロックの手前部分など)。
ヤスリ掛けでどこまで綺麗になるか(もしかして余計に表面が荒れてしまうのか)は、今後試さないといけません。

3Dプリントの費用は片手分で、トップケースが1,500円、ボトムケースが900円、送料が300円でした。
PCBと違って一品から注文できるので、ものすごくリーゾナブルだと思います。

下の写真でも少し分かるのですが、3DプリントケースとPCBを比べると、PCBの方が0.2mmくらい周りが小さくなっています。
図面上は全く同じサイズにしたはずなのですが、PCBの方は基板の端をVカットする時に寸法よりももしかして少し小さくなってしまうのかなと想像しています。
次回は合わせ込むか、ワンポイントとして活用するかは思案中です。

それと、ケース組み立ては、FR-4の積層の時は100x100mmに収めるために分割したのもありますが30パーツくらいあった(贅沢にFR-4を発注したとしても7層7パーツが最小)ので1時間くらいかかる大変さでしたが、PCB基板含めて3パーツなので、とてもシンプルになって5分かからずに組み立てられるくらいになりました(寸法誤差のためかネジが多少入りにくいところはありますが問題なし)。

今回の対象がロープロファイルスイッチだったのでやりやすかった面はあるかもしれません。
MXスイッチの高さを全部埋めるとどうなるのかは、ちょっとやってみないと未知の世界かな、と思いました。

これまでの自作キーボード活動で、必要な駒が揃いました(ジョイスティックに関してはまた改めて投稿しますが、補助的な入力装置としては使えそうな状態です)。
自分の用の完成形にもう一段近づいたLilithキーボードの設計・作成に取り掛かっていこうと思います。

この投稿はセルフメイドのLilithキーボードで書きました。

 

[2023-03-09] 「PCBをトップケースとボトムケースでほぼ隙間なく挟み込む」と書いていた部分を、「完全に隙間なく」の表現に変えました。
ダイオードやソケット部分は避けて多少の隙間や穴を作るので、PCBの上下の面全体が完全に密着するわけではないことから、ほぼ隙間なくと書いていたのですが、面の大部分を完全に密着させるので、完全に隙間なくと言った方が状態をよく表していると思ったからです。

2022-12-09

マイナーなGateron Lowprofileスイッチソケットが到着、フットプリントをごにょごにょ [自キ沼 #19]

ロープロファイルの中では、おそらく上質で個人的に気に入ってしまったけれど、メジャーじゃない、Gateron Lowprofileスイッチ専用のソケットが到着しました(先日の投稿「ロープロファイルはchoc v1だけじゃない」)。
性懲りも無く、中国から10日かかっての到着です。
その間に、別のスイッチも気になり始めましたが、まずはこちらに取り組んで、そちら(先日の投稿「自作オプティカルキーボードの夢を見た」)はその後、満足できなかったりさらなる探究心が残っていたらにしようと考えています。

上のソケットの写真は、左から、Cherry MX用、Kailh choc v1/v2用、そして一番右がGateron Lowprofile用です。
Cherry MX用に近いようですが角度が逆で、はまりません(じつは先入観でGateron Lowprofileスイッチ用にとCherry MX用ソケットを買ってしまいました、MXスイッチはひとつも持っていないのに、そういう意味ではハマりました)。

早速フットプリントを作図してみました。
下の図の左側のように、同じ向き(南北同方向)のリバーシブルも大丈夫そうです。
下の図の右側は、choc v1/v2と差し替え選択式の試行ですが、ソケット足と電極のハンダパッドがちょうど重なってしまうので、潔く諦めてGateron Lowprofile専用基板にしようと思います(自分用なのでそれで良い)。
Cherry MXとの選択式も同様に無理です(出来たとしてもスイッチの高さの違いのためにケースが共通化できない問題もあります)。
2種類のソケットの向きを上下逆にすれば、なんとかなりはしますが、さらにこれをリバーシブルにしたいのと、またさらに分割キーボードの左右で0.25uとか0.5uずらしたりしたいので、詰め込みすぎなほうが良いでしょう。

この投稿はセルフメイドのLilithキーボードで書きました。

 

[2023-01-07] GLP (Gateron Low Profile) の左右リバーシブルは、(南北)上下同じ方向で良さそうかと思っていましたが、わたしのLilithキーボードでは左右で0.25uズラしたリバーシブルにするので、最終的には上下逆方向のリバーシブルにすることにしました。
バックライトをつけるつもりは今のところ全くないのでこれで良しとします。
Chocに比べるとピン足の間隔が広いのと、中心線上に来るピン足穴がなくて裏表共通にならないので、基板が穴ぼこだらけになりそうです。

[2023-01-10] そうそう、GLPのソケットの調達先にはAliExpressとMechKeysがあります(金額は同じくらい)。

[2023-01-16] Gateronの直販サイトでもソケットの扱いが始まりました。

2022-12-06

自作のオプティカルキーボードの夢を見た [自キ沼 #18]

無接点キーボードとしてあまりにも有名なHHKBは、静電容量方式です。
回路としては電気的なON/OFFスイッチではなくて、キーの軸の上下の動きに伴って静電容量がアナログ的に変化するのを読み取って判断する必要があるため、基板もファームウェアも専用になってしまいます。
メカニカルスイッチでは板バネ状の接点をカチカチやるのですが、その必要がなく、原理的に考えても動作が圧倒的にスムーズになると言われています。

静電容量キーボードと並んで、もうひとつの無接点方式として、オプティカルキーボードがあります。
オプティカルスイッチ(光学スイッチ)は、キーの軸と連動させた光を遮る小さな部品を上下させるだけの構造です。

オプティカルキーボードでは、赤外線LEDとその光を受信するフォトトランジスタが、スイッチを実装するのと同じPCB表面に実装されます。
PCBとスイッチの間の電気的な接続は不要です。
なので、スイッチのPCBへのハンダ付けやホットスワップのためのソケットも不要で、スイッチはプレートやPCBに爪で固定します。
実際のキーボード製品のイメージの例を右に載せます。

オプティカルスイッチのサイズとしては通常のCherry MXサイズと、わたしの好きなロープロファイルの両方が用意されていて、キーキャップ軸の形状はどちらも一般的な十字型なので、キーボード設計の自由度が高いです。
スイッチ部品は例えばAmazonでも買えて、それぞれ、Gateron Opticalスイッチ(10個、単価83円から)と、Keychron Lowprofile Opticalスイッチ(87個、単価67円から)で、構造が簡単なためか色々な軸が出ています。

あとはPCB設計と、部品選定と、ファームウェアがそろえば自作キーボードとして作成できそうですよね。
ちょうどいい感じの情報がgithubに公開されているのを見つけました。

回路は、マトリックスの(例えば)行に接続した赤外線LEDを順に光らせながら(電流調整のために抵抗がはさまっている)、列に接続したフォトトランジスタでキーの状態を読み取る(キーが押されていたら光が遮られている)という方式のようで、通常の電気的スイッチのキーボードにあるダイオードは不要です。
上記girishjiさんの設計PCBの標準MXサイズ版とロープロファイル版、それとJLCPCBから赤外線LEDと、フォトトランジスタの部品情報の画面キャプチャを載せておきます。
ファームウェアは、同じくgirishjiさんのソースコードがQMKのプルリクエストとして公開 https://github.com/qmk/qmk_firmware/pull/17852 されています。

赤外線LEDとフォトトランジスタは、スイッチのハウジングに開いている穴のスーペースに干渉せずに入る大きさじゃないといけないため、表面実装の細かい部品で足が出ていないタイプですが、最初からPCBA発注してしまうつもりであれば苦にならないかなと思いました。

最後にオプティカルスイッチの軸一覧を載せておきます。
上からの見た目は通常のキースイッチとさほど変わりません。
光をON/OFFする意味ではスイッチなのでしょうが、いわゆる電気的なスイッチではないので、キースイッチと呼んでいいのかどうかがちょっと悩ましいですね。
キーボード一台用の個数のまとめ売りの他に、今は在庫切れのようですがお試し詰め合わせもあるようです。

巷では、Cherry Ultra Lowprofileが販売開始されたようですが(ほぼ週刊キーボードニュースで紹介されていました)、端子が外側に出ない表面実装なので苦労しそうで、これもいっそのことオプティカルになっていればもっと使いやすいのでは、と思ったりもしました。

オプティカルキーボードは、自作キーボードの次のステップとして是非ともチャレンジしてみたいところです。

この投稿はセルフメイドのLilithキーボードで書きました。

 

[2023-01-03] MX標準サイズのオプティカルスイッチは、Keychron.jp のサイトに通常版V2 Optical 7種(単価33円〜48円)と、
さらに改良されてPandaスイッチに寄せたLava Optical Switch 5種類(2番目の表、単価41円)が出ています。

Low Profileのオプティカルスイッチ(光学スイッチ)はKeychronから3番目の表の8種類出ていて、Super Kopekが一番安そうです(87キーセット3,960円、単価45.5円、送料500円、5,000円以上日本国内無料)。

[2023-08-20] そういえば3ヶ月くらい前にKeychronのロープロファイルのオプティカル入り スイッチテスターの在庫が復活していたので手に入れて試していました。
ロープロファイルオプティカルスイッチの第一印象は、光学式なのにバネの音がともかく少し気になりました。
光学式とは言え、物理的にキーを上げ下げするためにはバネが必要なので当たり前ではあるのですが、大きく違う感触を期待していたのに、通常の機械式スイッチとの違いがなさすぎると思ってしまいました。
電気的な接点方式と、無接点方式の仕組みは違うので、チャタリングが起きにくいなどの利点はあると思うのですが、メカニカルキーボードでチャタリングが起きた経験が皆無(昔の安物のメンブレン等ではチャタリングや無反応がままあった)なので、オプティカルにするメリットがよく分からなくなってしまいました。
Keychronロープロファイルオプティカルスイッチは軸の種類が少し豊富(バナナやミント軸)なのと、プリトラベルが短めに設定されている(標準プロファイルでもシルバー軸あり)違いくらいかな、と思います。
もちろん、ソケット無しでホットスワップできる(というかハンダ付け固定する足がない)メリットもあります(その分、PCBの丸足穴とプレートを緻密に作ってスイッチをしっかり支えてあげないといけない)。

[2023-12-28] ロープロファイルのオプティカルスイッチに実際に触れるまでに持っていたイメージは、スムーズで、静かで、なにか特別な高級感がある、という期待も含んだものでした。
実際に触れてみると、Gateron low profile (GLP)メカニカルスイッチに比べて作りが華奢な感じで、ちょうどKailh choc v1スイッチに近いイメージでした。
バネも細いものだったのでGLPのバネに交換すれば良くなるのかもしれませんが、そこまで手をかけて飛びつくほどのメリットは感じられませんでした。
メカニカルのGLPが十分に良いせいもあると思います。
これはあくまでロープロファイルでの話で、標準MXプロファイルのオプティカルスイッチだとまた事情が異なるのかもしれません。

2022-12-02

ロープロファイルはchoc v1だけじゃない、実際にいろいろ触れて試してみた [自キ沼 #17]

左からchoc v1、choc v2、Gateron Low Profile
choc v1/v2の導通ピンは同じ、v2は追加の固定用ピン、
Gateron LPの導通ピンは配置角度がMXと逆で独自
中央丸足はchoc v1だけ極端に細い
ロープロファイルの自作キーボードを作ろうと思ったら、Kailh choc v1が定番中の定番で、代表的な3色以外の軸のバリエーションもずいぶん増えてきていますよね。

わたしもロープロファイルにこだわったキーボードを作っていく中で、最新のSunsetタクタイルに大きく期待し、グループバイ (GB) までして手に入れたのですが、残念なことに、いまひとつ好きになれていません。

  • choc v1 Sunsetタクタイル:しっかりしたタクタイル。押す時の重さは少し軽い(Red Proと同じバネが使用されているらしい)。1.5uのキーキャップをつけたTab/CapsLock/Shiftキー(リバーシブルにするためにスイッチの向きも通常とは逆)が押し込んだ時になぜか引っかかり感あり。頑張ってタクタイルを強調しているためか音も少しうるさい感じ

ほかにわたしが持っているスイッチは次の通り。

  • choc v1 Brownタクタイル:これで自作キーボードに入門。平凡な印象。悪く言えばおもしろみがない
  • choc v1 Pinkリニア:つぎは攻めて最軽20gに。新型らしく、スムーズさは抜群だけど、軽さがピーキーすぎる
  • Pink軸にBrownのバネを入れ替え:スムーズさと重さがちょうど良い感じ。でも毎回改造するのは…
  • choc v1 Red Proリニア:では定番はどんなものかと購入。少し軽めなのは良いとして、どうしてもハウジングの赤色が目に触る。もしも落ち着いた色味だったらコスパも悪くない(単価66円)のでここで終着していたかも

キーキャップに関しては、

PBT素材しかないと思いMBK(レジェンド付きはあまりにも高価なのでブランクのみ、1.5uのカラバリが簡単に手に入らないのが残念)、
レジン3DプリントのLDSA(立体的なキーキャップを試したくて製造発注、17mmピッチ用の設計だったのでキートップが狭めでしっくりこず)と 、
lpCherry(シリンドリカルステップスカルプチャーと自作レジェンドのテスト)

と試してきました。

キーボード本体との組み合わせにもよるのでしょうが、なかなかこれといった収まりどころが見つからず、つぎはchoc v1詰め合わせで総当たりで試してみるしかないか、と考えはじめていました。

もともと、わたしのメカニカルキーボードに対する印象は、キー入力すること自体に対するスイッチの安心感はあるのだろうけれど、ガチャガチャうるさくて、デカくて、そのうえパームレスまで余分に必要だなんて、というものでした。
なので、自分のセルフメイド(ハンドメイド?)の自作キーボードでは、Cherry MX互換の通常キースイッチは、のっけから候補から外していましたし、今もまだそうしています(とは言うものの、遊舎工房さんで色々触ってみた中で静音軸は気になってはいます)。

そんな中、市販のメカニカルキーボード製品のNuPhyやKeychronに、薄型でホットスワップのものがあること、交換用のスイッチやキーキャップが容易に手に入ることに気が付きました。
安価(たとえばNuPhyのGateron Low Profileスイッチは単価45円、キーキャップは75%セットが3,500円しかしない)なことと、いま持っているSparrow62がchoc v1/v2とMXの3種対応(ただし、後述)なこともあり、早速手に入れてみました。

まず選んだキースイッチはGateron Low Profile赤軸です。
現物が到着し、Sparrow62 にはめようとしてもどうしてもはまらないことで、やっと気付いたのですが、このスイッチって、PCBフットプリントがchocともMXとも違う、独自のものだったのです。
キーボード本体に実装しないとスイッチの押し心地は全然わからないので、いったん導通足を 2本とも折り曲げて差し込んでみました。
いきなり専用フットプリントを強いられるのはさすがに辛いので、追加のお試しとしてKailh choc v2も手に入れて(単価77円)比較することにしました。

Gateron Low Profileとchoc v2は共に高さ含めてサイズはchoc v1とほぼ同じです。
NuPhyがnSAプロファイルと呼ぶ薄型キーキャップを付けると、うまい具合にchoc v1+MBKキーキャップとほぼ同じ高さに収まります。

押し心地は、choc v1がどれも全体的にカチャカチャした高い音程なのに比べて、低めの音程のコトコトに近い音で、軸の滑らかさがあります。

小型向け設計のchoc v1は軸やハウジングがどうしても薄手になってしまっているのに比べて、軸も太く、通常サイズのスイッチの質感を残したずっしりした作りになっているからだと思います。

  • Gateron Low Profile Redリニア:choc v1とは明らかにレベルの違う安定感と音質。ただしPCBフットプリントが独自
  • choc v2 Redリニア:Gateron LPに比べるとchoc v1に少し近い感じ。軸の物体としての体積がv1よりは大きいけれどGateron LPよりは小さいためか。PCBフットプリントはchoc v1とほぼ同じで、丸足が太くなっただけ(4本目の追加足は切り取ってしまっても良いはず)
  • choc v2 Brownタクタイル:choc v1 Brownのように相変わらずタクタイルが弱く、Redの単に少し重たい版といった感じ
  • Gateron Low Profile Brownタクタイル:思い切って追加で発注。choc v2 Brownよりも明らかにしっかりしたタクタイル。choc v1 Sunsetよりは弱い。フル実装してみないとわからないですが、Redとの音の差はあまりなさそう

なおこの2種類ほかにも、Outemu Low Profileと、Cherry MX  Low Profileがありますが、前者は高さがそれほど低くなく、後者は入手が難しそうなのと丸足が独自の形なので、わたしの候補からは除外しました。

フットプリントは定番のchoc v1とそれぞれ違うとはいうものの質感がとても良くて、ロープロファイルの選択肢の幅が大きく広がりました。
MX互換のキーキャップが使えるのも大きなメリットです。

つぎの試作では、choc v1/v2とGateron Low Profile、それに可能ならCherry MXの4種対応のPCB設計にチャレンジしてみたいと思います。
自作キーボードはもともと、一品モノで、どのみちPCB設計もその都度なので、フットプリントの違いくらいは大したことない、と考えることにしました。

スイッチの、とくにロープロファイルの比較情報があまり出ていないようなので、思い込みや偏見も多分に入っているとは思いながらも書いてみました。

この投稿は、iPadのソフトウェアキーボードで入力した後、セルフメイドLilithキーボード+choc v1 Sunsetで編集しました。

 

[2023-01-03] さらに光学式のロープロファイルのスイッチ Keychron Low Profile Optical も手に入るようで、次の投稿に机上の考察のレポートを書きました。

メカニカルなGeteron Low Profileのフットプリントについて、実際にソケットを入手して試してみての投稿はこちら

それと、セルフメイドのLilithキーボードは、左右リバーシブルを優先してGateron Low Profileスイッチ専用にしました(chocは切り捨て)。

[2023-11-05] Gateron Low Profileキースイッチについてのまとめ記事はこちら

[2023-11-05] 巷で「ロープロファイルキーボードの歴史を変えた」と話題のLofree FlowのスイッチはハウジングまでPOM素材になっていて、これが打鍵感に大きく貢献しているようです。フットプリントはchoc v2互換ということが分かりました(@foostanさんの検証)。
このスイッチ、リニアのGhost、タクタイルのPhantom、クリッキーのWizardの3種類あります。
その中で、タクタイルだけ技術的制約のためなのか、プリトラベル(動作点)が1.6mmと、他の2つの1.2mmより深く設定されています、不思議です。
Lofree Flow本体を買わずに(あるいは本体への追加を後で)スイッチ単体でも買えるようになっています

2022-11-24

choc v1用Cherryプロファイル的3Dプリントキーキャップの出来栄え [自キ沼#16]

先日、満を持してKailh choc v1ロープロファイルスイッチ用にキーキャップをお試しで3Dプリント発注しました。
PBT素材でしっとりしたMBKキーキャップは、質感はとても気に入っているのですが、縦方向に指を滑らせるときにどうしても大きく引っ掛かりを感じてしまっていたからです。
Cherry MXスイッチのCherryプロファイルキーキャップに似せたのでlpCherryと名付けました。
実際にLilithに装着して数日使ってみた感想です。

  • 一言で言うと、全体的に手作り感満載です
  • お試しに20個発注、半分はBlackレジン、もう半分は比較用に(じつは間違えて)6000番白レジンにしました。白レジンは最初に雑に扱っていたら、いちばん安い素材のためか足が1本折れてしまいました
  • 3Dプリントの出力は、多少の欠けはありますが、Fusion 360のCAD図面どおりの形状。前回のLDSAキーキャップでは表面の縞や荒れが気になりました(ヤスリがけはまだ試せておらず)が、今回はそれほどでもありません。単純な平面と緩やかな一方向の曲面なので製造しやすかったと思います、あるいは短期の間に技術進歩?
  • 刻印も適当に入れてみました。PowerPointでフォントをアウトライン化したSVGをFusion 360に読み込むとサイズがデタラメになってしまったので、文字サイズが目分量で狙っていたよりも大きくなってしまいました。線の幅はあとで計測したら0.8mmになりました。いちばん細い白色マジックでかろうじて塗れる幅なので、これ以上小さくすると無理っぽいです(より細い、黒の極細マジックは準備していませんでした)。写真のDの位置のキーは前回発注のLDSAキーキャップに手書きで書いたガタガタなものですが、結局どちらも微妙な感じです。刻印のデコボコの指触りが心配でしたが気になりませんでした(シールでは指先に触る感覚がずっとあった)。刻印はレーザーとかじゃないと綺麗に仕上がらないのかもしれません。着色とかもできるといいので、下地処理も必要なのかも
  • MXのCherryプロファイルに比べて、高さをchoc v1に合うように最小化しました。さらに行の間の段差をなくしました。キートップの面の傾斜はMXのキーボードが6度くらい最初からチルトしているのを差し引きしてAの行がほぼ0度になるようにしました
  • キートップの指を受ける面が大きいので、指を置いていて落ち着く感じが気持ちいです
  • シリンドリカル(円筒状)は、指の縦方向の移動を邪魔しないのがやはり良いです
  • ステップスカルプチャーも、数字行が近くに感じられていい感じです。持ち運ぶ場合には出っぱるので注意が必要かも
  • 面取り(フィレット)は今回0.3mmだけにしたのですが、もう少し大きくした方が良さそうです。いまは角がちょっと痛いです
  • 裾(スカート)はもっと長くしても大丈夫そうです。デザイン的にも打鍵音の面でもその方が良さそうです。肉厚も今回は1.25mmですが、もっとギリギリまで厚くした方が同じ理由で良さそうです
  • 今回のキーキャップに入れ替えてみると、不思議とMBKキーキャップでは軽すぎて使い物にならなかったchoc v1 Pink軸の20gバネでも不都合なく使えてしまいます。これは良い傾向です。指先の収まりが良いので変な力が入らないからなのかもしれません

前回の投稿Twitterでつぶやいているように、NuPhy薄型キーボードのパーツもお試し発注してしまいました。
製品のクオリティと見比べてた後だと書けなくなると思い、こちらを急ぎ投稿しました。

この投稿は、セルフメイドのLilithキーボード+lpCherryキーキャップ(左手の一部)を使って書きました。

2022-11-21

自作キーボードのデザイン性はワクワクにつながる、無性に欲しくなった存在しないNuPhy Air75改のNuPhy Alice [自キ沼 #15]

ロープロファイルのメカニカルキーボード製品として最近話題になっているNuPhy Air75。
Gateron low profileスイッチ採用、素直なキー配列、機能的なカバーも含めたシステム構成、そして何よりの特長は、カワイイ配色ですね。
無骨な単色だとどのメーカーを選んでも同じと思ってしまいがちになりますが、特徴的な配色が気になりだすともう忘れられません(エモーショナルですね)。
選べるカラバリはオプションも含めて、白基調、グレー基調、黒(文字部分がバックライト透過、黒は正面の写真が無かったので図はグレー画像から合成)の3つ。

どれもに共通の、グリーン、オレンジ、イエローの3色の印象的な差し色(アクセントカラー)が入ります。
1色だけの差し色は他社でも使われていることがありますが、ここまできれいに3色を使っているのは見たことがありません。

すでにセルフメイドの自作キーボードを知ってしまったわたしは、もう標準配列の一体型にはどうしても戻れません
それで、想像してみたのが、4つめの図です。
元の製品と同じサイズのケース(Fn行ありの75%)に、Alice配列(Fn行を削除して60%)がきれいに収まりました(左右の小指ブロックは調整しないままです)。
左右に分割もできたら完璧です。
残念ながら、スペースキーやEnterキーは図の中で長さを変形している(CapsやShiftも変形が必要)ので、NuPhyのキーキャップを手に入れて自作しようとしてもこの配色でこの配列は実現できません(このデザインが手に入るのなら、わたしのchoc v1縛りは解いてよいと思ったほどなのに)。

NuPhyさん、これを見て製品化してくれないかな。
あるいは自作するとして、不足分のキー用にレジンで3Dプリントしたキーキャップに、こんなにきれいに色を付けられるのかな。

2022-11-11

キーボードのキー配列と打ちやすさについて思いを巡らせてみました [自キ沼 #14]

コンピュータの標準キーボードは、タイプライターの時代の名残から、各行のキーがズレて配置されています。

(前置きが長くなりすぎてしまったので、お急ぎの方は中盤の一覧のところまで読み飛ばしてくださって結構です。)

標準的なずれ量は、数字行から右下方向へ、0.5u 0.25u 0.5u となっています。
この角度を計算してみるとおおよそ13度になります。
市販のマイクロソフトやLogicoolやLenovo Goなどのエルゴノミックキーボードは、この角度でハの字型の傾斜がつけられています。
(2行目と3行目の間の勾配が0.25なので、atan(0.25) でこの行の間の傾斜は14度です。
しかしながら、市販エルゴノミックキーボードではそこまで傾斜していなくてすべからく13度のようでした。
なので、ここでは市販品の実測値を優先しています。
図中のカラムスタッガードのAtreusも10度と、ほぼこの角度でした。)

自然に腕を机の上にのばしたときの手の角度も、おおよそこの角度であると仮定します。

標準キーボードでのブラインドタイピング(タッチタイプ)では、なぜか左手右手とも各指が右下に傾斜したキーを担当する、というのはどう考えても手の造りに合っていません。
自作キーボードは、この違和感から(さらにこのために腱鞘炎や肩こりを誘発しているとの思いから)、生まれてきたのではないでしょうか。

このキーの傾斜と手の角度の関係(いかに角度がズレているか)を、いろいろなキー配列で図に表してみました。
オレンジ色の実線が左右の手の向き、水色の実線がキー配置の行の間の傾き、円弧の矢印が手とキーの向きの違いを表しています。
左右分割キーボードは自由な角度に置いて使用できますが、いったん単純化して考えています。

以下、それぞれの配列でズレ角を見ていきます。

  • 標準キーボードでは、指とキーのズレ角は、右手26度・左手0度です。
    あまり打ちやすくないかもしれませんが、これが業界標準で、体もある程度これに慣れています。図を見ると、左手側は手の向きに対して角度が逆方向についていて、右手と左手のバランスが悪いと言えます。

  • カラムスタッガードでは、これがカラムスタッガードの定義であり目的なのですが、指とキーのズレ角は左手右手とも0度です。標準キーボードに対する左右のズレ角調整の合計は26度で、今回比較した中で最大です。
    一見、理屈ではベストのように思えます。しかしながら、わたしが実際使用してみた実感としては、左手側が標準キーボードとの違いが大きすぎて、なかなかミスタイプを減らせませんでした(このブログでも何度も言っていますが、Cのキーを人差し指で押したいのにスタッガード量0だと押せない)。標準キーボードでの慣れにどうしても引っ張られてしまう印象です。もちろんカラムスタッガードでも全然問題ない人、標準キーボードの呪縛から逃れられた人にはベストだと思います。

  • 自作キーボードで次に多く使われているオーソリニアでは、右手13度・左手-13度と、左右対称です。
    数値上は、これもなかなか良さそうです。しかしながら、左手はズレ角を緩和していますが、右手が左手とは逆方向の角度になる点には注意が必要です。左右のズレ角調整の合計は差し引き0です。

  • つぎのAlice配列は(親指ブロックはLilithの図の流用で一般的ではない見た目ですがご容赦ください)、標準キーボードを左右分割して、手の向きに合った角度にいわば矯正して再度くっつけたものです(小指ブロックはさらに工夫がありますが、今回は小指に関しては触れません)。指とキーのズレ角は、左手13度・右手13度です。
    左右で均等、標準キーボードに対して手首を無理やり曲げて合わせた状態と同じになります。ズレ角調整の合計は差し引き0です。
    じつは世の中のAlice配列キーボードは、この図の半分くらいの矯正具合のものが多いです。実地的には指とキーの角度のズレ角は左手19.5度・右手6.5度(この場合も合計0)といった感じでしょうか。傾斜が弱いと左手側の矯正度合いが物足りない感じがします。

  • わたしのセルフメイドのLilithキーボードはAlice配列を左右分割したものです。さらに、右手側の各行の傾斜を半分(0.25u 0u 0.25u)に減らしています(右手側を矢印キーやテンキーとして使う時に行の傾斜が無いほうが良いと考えました)。指とキーのズレ角は左手13度・右手6.5度です。
    左手は半分矯正、右手は標準配列の傾斜の半分の量となり、標準配列に寄り添いつつも両手ともにズレ角を緩和していると言えます。ズレ角調整の合計は6.5度です。自画自賛・我田引水的になってしまっていますが、自分としては、これがなかなか良いのではと考えています。
    (最初からこういうことを考えていたわけではなくて、キー配列はもっぱら感覚的(Cのキーを人差し指で押す癖のせいでカラムスタッガードでは入力しずらい、ロースタッガードの単純な左右分割傾斜では小指の疲れが取れない)に作っていました。今回のズレ量比較は、数日前にふと思い付いた発想です。算数的に1つの数値比較だけで済めば単純でよいのですが、そんなに単純でもないようです。)

    (じつは、さらに突き詰めて右手だけオーソリニアにすればズレ角調整合計を13度にまで減らせる、と今回の中でちょっと考えました。でもそうしてしまうと、右手側の小指ブロックの配置がきれいにできないし、見た目も標準から離れすぎかなと思い、ボツになっています。)

このあたり、今回のように数値化したり、いろいろな発想を意識することで、自作キーボードでまた新たなアイデア、ベターななにか、が出てくるかもしれないなあ、と思い書いてみました。

なお図の、手の甲のイメージはUnicodeの絵文字領域のraised back of handがちょうど良い感じの形だったので、拡大して使ってみました。
キー配列のメージはKeyboard Layout Editorのプリセットを使いました(もちろんAliceとLilithは自作)。

この投稿はセルフメイドのLilithキーボードを使って書きました。

2022-10-30

実家のウォシュレットをSC TCF6210からSB TCF6223へ自力で交換、完了

以前、といってももう10年前になりますが、自宅のウォシュレットを交換した話を投稿しました。
今度は実家のウォシュレットが、電源ランプはいつも通り着いているのに水が出ない、という故障で、また交換することにしました。
一度経験済みなのでもう何も迷うことはありません。

型番に関しては当然ながら既に当時のものは製造完了しているので、TOTOのCOM-ET https://www.com-et.com/jp/ のサイトで検索して、[取替品] ボタンを押すことで現行機種の型番がわかります。

TOTOウォシュレットには、一般向けにカタログに載っている機種と、施工業者や量販店向けの機種があり、後者は価格が1/2くらいです(5万円前後と2万円前後)。
仕様の違いはほとんどないのですが、今回は実家へAmazon(購入リンク)で送付して確実に取り替えられる安全性をとって、一般向け機種を選びました。
元の機種が一般向けだと、TOTOのサイトで取替品として表示されるのも一般向けしか出てきません。

さて、今回の交換時間は約30分でした。
道具は、しっかりした(細めじゃない)プラスドライバとマイナスドライバ、それにモンキーレンチだけです。
取り替えた部品は、ウォシュレット本体、T字分岐菅、それと便座に本体をパチンとはめ込むためのプレートの3つです。
新機種は前に少し長い作りになっていますが、使用上は問題ありませんでした。

滅多に交換するものではないですが、慣れていれば、それほ難しい作業ではないと思います。

2022-10-29

QMKのkeymap.cを変更をしてファームウェアを書き込んでも、キーマップに反映されない現象は、VIAの影響だった [自キ沼#13]

セルフメイドの分離型Alice配列ポインティングデバイス搭載のLilithキーボードの作成を続けています。

その中で、QMKのkeymap.cを書き換えて、キーマップをいじって、ファームウェアをビルドする作業を何度もしています。
出来上がった .hex のファームウェアをQMK Toolboxでキーボードに書き込むのですが、いじったキーマップが反映されない現象が出なかったり、出たり、出始めるとずっと出てどうしようもなくなる、という現象でここ数日悩んでいました。

わたしの自作キーボード遍歴は、最初、Sparrow62 v2でして、これはQMKではなくてRaspberry PI PcoのKMKなので、QMKの経験は今回のLilithキーボードで初めての状態です。

色々と調べてもそのものズバリの解決策が見つからず、試行錯誤を繰り返していたところ、VIAの影響では、と思い当たりました。

ファームウェアは現在SU120のものをもとにして書いているのですが、rules.mkでVIA_ENABLE=yesの設定になっていました。
これをコメントアウトしたところ、すんなりとキーマップの変更が反映される
ようになりました。

VIAのキーマップはおそらくファームウェアとは別の場所で管理されていて、何らかのタイミングではファームウェアのキーマップが反映されるのですが、別管理なので当然VIA側へ常に反映されるわけではない、というのが理由のようです。
VIAを有効にしたときに即座にキーマップを反映させる方法は、まだわかりませんが、自作キーボードの初期開発段階の設定としてはVIAをOFFにするのが良いようです。

なお、QMK Toolkitのバージョンは少し古い 0.12.16 での話です。

この投稿は、セルフメイドの自作キーボードLilithを使って書きました。
(ジョイスティックの動作はいまだチューニング途上です。)

 

[2023-01-27] 少し遠慮して、タイトルの「変換しない問題」を「変化しない現象」に変更しました。
さらに「反映されない現象」へ変更。

[2023-08-21] 多少慣れてきたので、改めて QMK Firmwareのソースコードを少し覗いてみました。
やはり、次のような動きになっているようです。

  1. QMK FirmwareでVIA_ENABLEをしていると、
  2. キーボードの電源投入時やリセット時に、既にEEPROM上のVIAデータが初期化されているかどうかをチェックし、
  3. 初期化されていなければ、keymap.cのキーマップをVIAデータに書き込む
  4. 初期化されていれば、前回のVIAデータをそのまま使用する、つまり keymap.c で設定したキーマップは使用しない

該当箇所は quantum/via.c の中の via_init() 関数です。
EEPROMの初期化処理の本体は eeconfig_init_via() 関数と、 quantum/dynamic_keymap.c の dynamic_keymap_reset() 関数です。
必ずここを通るかどうかの確認まではしていませんが、おそらくキーボードの起動時にこの処理が毎回行われます。
これで、keymap.c のキーマップを変更してファームを書き換えても、実際のキーマップが書き換わらない謎がようやく解けました(単純なキーマップ書き換え以上の keymap.c の変更をしてファームウェアのサイズが変わる場合には、おそらくEEPROMのレイアウトが変わることで(運が悪くなければきれいに)VIAデータが無効化されます)。

なので、keymap.c の中でキーマップや追加処理などいろいろな変更を試行錯誤している最中には、次のいずれかの対応が必要ということです。

  • 根本的に VIA_ENALBE を無効化する
  • keymap.c で QK_CLEAR_EEPROM(短縮名 EE_CLR、古いQMKでは EEPROM_RESET)をキーにマップしておいて、キー操作でVIAをクリアする
  • VIAで QK_CLEAR_EEPROM をキーにマップする場合は、Special にある「Anyキー」で16進数の 0x7C03 を指定すれば定義可能(これは最新のQMKでの値、quantumキーコードに属するので古いQMKでは構成によって値が変わるのかも?)、
    VIAなら設定したらすぐに効く(設定を残したいならJSONでSave)
  • QMK Toolbox で Clear EEPROM する(私の環境ではなぜか Clear EEPROM ボタンが有効になりません)
  • Remap に対応しているキーボードなら、[・・・] メニューの Reset Keymap でクリアする

自作キーボードの先輩方には常識なのかもしれませんが、根本原因が分かってスッキリした気分です(これもオープンソースのおかげ)。

2022-10-25

やっと組み上がったLilithキーボードの秘密をあれこれお教えします [自キ沼#12]

ここ2週間ほどは本業で多忙が続いて、自作キーボード活動に時間を使えなかったのですが、やっとこの週末にハンドメイド(セルフメイド、オリジナル設計)のLilithキーボードを組み立てられました。

キーマップやジョイスティックのファームのチューニングはまだですが、現物を実際に見て触れるとまた新たな欲が出てきたり。。。

いったんここで、わたしがLilithキーボードに詰め込んだ内容をお披露目しておきたいと思います。

  • まず、キー配列に関して、カラムスタッガードではどうしてもCのキーが人差し指で押しにくく、かと言って単純なロースタッガードだと小指の運指が忙しすぎ、かつ小指の可動域を超えているのではと考えました。そこで、短い小指担当のキーを手前に寄せて置けるAlice配列を試してみようと決めました。さらにトラックパッドなどを中央に置きたかったのでAliceでも分割キーボードにしました。(蛇足:標準キーボードでは、上段から下段に向かって行の配置が一様に右にズレていますが、それを使う手の方の構えは、右手は右ズレで合っているのに、左手は左ズレなので、わたしはCのキーは右手中指よりも人差し指でどうしても押したいのです。ブラインドタッチの教科書では右手も左手も各指が右ズレでキーを担当する、となっていますが、改めて考えるとおかしいと気付きました。)
  • はじめて全体を組み上げてみると、8層のFR-4の積層ボディーはずっしり重く、変な振動も抑えられているように思います。プレートの上もケースで囲んでいるのも効果ありのようです。もちろん机に当たる面はデスクマットやゴムシートで和らげてやる必要はあります。
  • 回路基板はリバーシブル使用しています。カラムスタッガードで左右対称の場合にはリバーシブル基板は一般的ですが、行方向にズレているAlice配列では珍しいと思います。このためにひとひねりしていて、ジョイスティックがあって配線が多い右手側を基本にして、左手側は2行目と3行目の間でカットして、裏返しして0.25uずらして配線接続することにしました。小指ブロック以外ができるだけ通常のロースタッガード配置に近くなるようにしました。右手側はI-JKLを逆Tカーソルで使いたいので、この間の行のズレはあえて0にしました。切り取ってズラすことで、うまい具合にリバーシブル化でき、基板発注の無駄も減らせたと思っていますす。
  • 右手側のいわゆるBの位置にアナログジョイスティックを埋め込んでいます。パーツは非常に多く出回っているNintendo Switchの保守パーツです。基板を切り抜き式にして、このパーツが基板に沈み込むようにすることで、ジョイスティックがchocのキーの高さにほぼ合うようにしました。(この部分、Cherry MXスイッチ前提だと、逆に高さの嵩増しが必要で、プレートの上にジョイスティックパーツを載せることになりそうです。)
  • アナログジョイスティックの動きはPro Microのアナログ入力で読み取るのですが、パーツを接続していないオープンな状態では信号が安定しなくて、ポインタが勝手に少しずつ動く現象が出ていて最初とても心配しました。実際にパーツを接続すると信号が安定して大丈夫になりました。パーツなしでも安定するように大きめの抵抗を入れ、未接続でも電圧をかけるようにしたほうが何かのトラブルの時のことも考えると良いかもしれません。
  • スイッチプレートの厚みを1.2mm、ミドルプレートを1.0mmにして、chocスイッチのツメがきっちり引っかかるよう、かつプレートと基板の隙間をなくすようにしました。ただし、スイッチソケットの足が1.2mmあることを考慮せず基板を1.0mmにしてしまったので厳密には0.2mmの隙間が残っているはずです。次回は基板を1.2mmにします。
  • スイッチプレートとボトムパーツを共有しています。プレートに開いているスイッチの14mmの角穴が、ボトム側でちょうどソケットの出っ張りを逃がすのに都合よい大きさだからです。ソケットはスイッチの中央にあるわけではないので、ボトム側で重ね合わせる位置は0.25uくらいずらします(写真でボトムが前面にはみ出しているのはそのせいです)。ソケットの高さは2mmくらいあるので、プレートとミドル(これも上面と共有パーツ)を基板の下に置いてちょうど良い高さになります。実際に組み立ててみたところ、ソケットのパッド部分が思ったよりも長くて収まらなかったので、少しやすりで削ってはめ込みました。
  • 全体として、下から1.2mmのボトム、1.0mmのミドル、1.0mmの基板、1.0mmのミドル、1.2mmのプレートと来て、プレートの上に1.6mmのフレームケースを3枚の、合わせて8枚10.4mmのFR-4積層になります。これ全体をM2ネジで固定しています。がっちりソリッドな構造に、プレートも基板も含めて全体が一体化しています。これって何マウントと呼べばよいのでしょうか、よくわかりません。
  • このケースで、あとは、キーキャップが約4mm上に出るので、キーボード全体で約15mmの高さ(低さ)です。Sparrow62キーボードの74thさんの目指した低さと同じ水準になります(74thさんの記事「自作キーボードでキーボードの低さを目指した話」)。
  • 使用した黒色のM2低頭ネジは長さが10mmまでしかなかったので、最上層とその下をハンダで固定し、最上層に六角の穴を開けてナットを埋め込むようにしました。こうすることで、ネジの先やナットが上に出なくなります。これはSU120の作者のe3w2qさんの「霞襲(かすみがさね)」マイクロキーパッドのアイデアを真似させていただきました(e3w2qさんの記事「着せ替えできるキーパッド、霞襲を作りました」ビルドガイド)。
  • ケースを構成するフレームパーツとミドルパーツはコスト安の100mm x 100mmに収まるように分割したものを組み合わせることにしました。なので、切り離し、ヤスリがけ、組み立てと、とにかく手間がかかりましたが、コストは最小限に抑えられたはずです。
  • アナログジョイスティックはファームを調整中です。画面上のGUIボタンにスッと移動して押せるくらいの自然な動きが目標です。さらに画面上に丸を描けるくらいに滑らかだと究極ですね。実はそもそもジョイスティックは斜め移動が苦手のようで、さらにこのパーツでは斜めにスティックを倒した時に出力される信号が水平垂直に比べてなぜか弱めにしか出ません。

(写真を交えて説明すればいいのは分かっていますが、まずは手間をかけずに思いを吐き出してしまいたく、よろければこのブログのコメント欄またはTwitter @taka8aruにメッセージをいただければ補足説明いたしますし、大きな励みにもなります。)

この投稿は、Sparrow62 v2+片側だけLDSAロープロファイルキーキャップ、を使って書きました。

2022-10-03

iPhone 14 ProのDynamic Islandはノッチよりもすこし下にはみ出でているけれど、アプリの表示エリアが狭くなる心配はない

iPhone 14 Proでハードウェアとソフトウェアを融合した新しいユーザインターフェースの「Dynamic Island」が追加されました。
このためだけにiPhone 14 Proを買ってみたくなるような機能です。

iPhone X~iPhone 14のノッチと比べて、よくよく見てみると、Dynamic Islandの方が文字半分くらい下に下がってはみ出していることに気付きました。

もしかして、このせいでアプリの表示エリア(セーフエリア)が狭くなるのではと、はげしく心配になりました。
細かく調べてみると、下記のように、よく練られていて、大丈夫なことが分かりました。

  • iPhone 14 ProはiPhone 14に比べてボディーサイズがほんの少し長くなっています(0.8mm)。
  • さらに、ガラス面のベゼル幅はおそらく同じですが、ボディー側面パーツの厚みが写真でもわかるくらい、約0.5mm薄くなっています(ボディー側面の材質はProがステンレス、無印がアルミ)。
  • この合計1.3mmだけ、Proの方がディスプレイの縦方向が長くなっています。
  • これは、ちょうどDynamic Islandとノッチの高さの差を吸収する、うまい具合のサイズになっています。

こんなところにまでこだわって、パンチホールに変更による影響を払拭し、さらにDynamic Islandという新しい機能で、必要悪で邪魔者にされてきたフロントカメラを意味のある楽しいもの(さらに欲しくなるもの)にしてしまえるなんて、久々にAppleマジックを見たような気がします。
これもハードウェアとソフトウェアの両方を開発しているからこそできることですね。

ところで、私の記憶が確かなら、iPhone Xでは、ノッチをいじって表示を変化させたり、ノッチを隠すようにステータスバーだけを黒くしたりなど、ノッチをいじくる、厳禁だと言われていたと思います。
いま考えると、中途半端に、ノッチを邪魔なものとしてネガティブに扱うのを避けるポリシーだったのではと思います。
Dynamic Islandによって、フロントカメラ回りを、ポジティブに活用できるようになって初めて、これが解禁されたのだと思います。

来年のiPhone 15ではノッチにもDynamic Islandのような動きが与えられるかもしれません(あるいは一気に全機種がDynamic Islandになってしまうのでしょうか)。
iPad Proの方はと言えば、ベゼルにカメラがうまく収められていますし、カジュアルな使い方のiPhoneよりも落ち着いて使う使い方が主体ですし、さらにマルチウィンドウもできるようになるので(Stage Managerがある)、Dynamic Islandのような派手な通知機能は採用されないだろうと思います。
さらに、M2/M3世代のMacBookではどうなるのでしょう(センターに通知が表示されても画面が広いので視認性が良くないですね)。

[2022-10-06] Dynamic Islandを備えたiPhone 14 Proは、第二世代のiPhone Xと言えますね。

2022-09-28

ちっちゃいパーツが届いた [自キ沼#11]

FR-4で発注した、オリジナル設計のLilithキーボードの「フレームケース」のパーツが届きました。
いっぱい詰め込んだのでプラモデルのような感じです。
お得感Maxな100x100mmは本体の200x120mmに比べると二回りほどちっちゃくてかわいく感じます(前の投稿に書いたように面付け追加料金には注意)。
このパーツを片手あたりトップカバーでのべ2.5枚分、ミドルプレートで2枚、両手合わせてのべ10枚を使って組み上げます。

今回はJLCPCBの新規顧客向け輸送クーポンを使ってFedExにしてみました。
配送は4日間と、OSCよりやはり早いです。
配送料定価は2倍ちょいですね。

ちなみに今週週末から10月頭の来週前半はJLCPCBは休業とのこと。

[2022-09-30] PCBを、キーボード一台あたり、今回の積層フレームケース用10枚とボトム&トッププレート用4枚、回路基板2枚の、のべ16枚も使うのって、頭を冷やして考えると、異様に大量ですね(完成すると8層積層構造)。
切り離す手間も半端じゃないです(より切り離し易い構造を思案中)。

2022-09-23

発注したFR-4積層フレームケースが製造中、追加料金なしで面付けするコツを少しつかめたかも [自キ沼#10]

自作自称Lilithキーボードの設計・製作を進めています。
スイッチプレート(トッププレート)、回路基板と進んで、次はキーボード全体のケースです。

サンドイッチマウント構造にしてケース用の追加パーツをスキップするのも一つの手ですが、今回は、ソリッドな構造にしたいと思いました。
自作キーボードのケース素材はアクリルが多いと思いますが、身近な素材の割には、材料と加工に費用がかさみそうな印象です。
スイッチプレートでもやったのですが、PCB基板材料のFR-4をケースというかフレーム(またはベゼル)にも使いたいと考えました。
全体的に薄型キーボードを狙っているのでFR-4は厚みと色の選択肢の広さでも有利です。

さらに、JLCPCBでは、基板外形サイズが100x100mm(厳密には102x102mm)以下だと特価になります。
Lilithキーボードは片手でも100x100mmを超えるので、この周りを囲むフレームケースは一体モノではなくて4〜6つに切り刻んで分割し、あとで組み合わせて全体の形ができあがるようにしました。

上の画像の左側が、今回最初にJLCPCBにアップロードしたデータです。
フレームパーツを分割して、1つのデータの中に収まるように配置しています。
配置したパーツの間はSU120のように(配線もできるような太めの)切り取り方式で接続しています(念のためパーツの一体感を主張するために簡単な配線を配置しましたが、ほぼ意味がなかったかも)。
このデータ、最初のころは次の様なレビュー指摘を受けてリジェクトされました。

  • 基板形状として細すぎる部分があるので製造中に壊れる可能性がある
  • 複数基板の間の切り取り部分の幅が細すぎる部分があるので4mm以上にせよ
  • 切り込みを入れている部分で、切り込み幅が複雑で狭すぎるので2mm以上?にせよ

微調整を繰り返して、最終的になんとか受け付けてもらえる状態にはできたのですが、5,000円くらいの高額な追加料金がついてしまいました。
アップロード済みのデータの詳細情報を見てみると、9つの基板の面付けと識別されていていました。
JLCPCBの説明を見ると、複数基板を1つのデータに同居させるstencil panelization(面付け)は1面あたり$4.2の追加料金なので、なるほどそうなってしまいます。

上の画像の右側が、工夫のうえで最終的に発注したデータです。
遠目に見て、凸凹が少なめの、おおよそ四角形に近い形になるようにまとめています。

上の方にあった入江のような深い切り込み部分には、外周部分に追加の島を置いて、後で切り取るようにしました(じつは最初から下の方2箇所でも同じことをしています)。
尖った外形、深い切り込みは破損しやすくて製造が難しいけれど、1枚の四角い基板の中に穴をあける(画像では黒い部分)のは構造上の強度が保たれて通常範囲で製造可能なのだと思います。
この工夫によって、全体として1枚の基板として識別してもらえる様になりました。

右の画像が、最終的な発注データです。
積層フレーム3層分と、プレートと基板の間のミドルパーツで、計4つの100x100mmデータにしました。
料金は100x100mmのデータの1つめは特価の基本料金の$2、2つめ以降は通常基本料金の$4、それと輸送料金を合わせて3,700円で済みました(後日のため、現在の為替レートは143円/ドル)。

100x100mm以下であれば基板材料代金が0円ですが、それを超えると100x100mmの面積当たりの従量でおおよそ$4が加算がされ始められます(たとえば100x105mmだと$4、100x200mmだと$8)。
かりに、今回の2つめ〜4つめのデータを100x300mmの1つに合体させたとすると、1つめが$2+0、合体させた方が$4+$12で計$18になります。
全体を100x400mmの1データに合体させたとすると$4+$16の$18です(100x100mm以下かつ1件めの基本料金特価$2も適用されない)。
なので、今回のように100x100mmの複数データに分けるのが一番安価になるようです。
表面実装部品の組み立てサービスを一緒にオーダーしない場合は、これが価格的な最適解だと思います(組み立てサービス付きにする場合は、基板毎にそちらの基本料金もかかるのでこの限りではありません)。
基板設計に無理が出ない範囲で、この方式を活用していきたいと思っています。

この投稿は、Sparrow62 v2+片側だけLDSAロープロファイルキーキャップを使って書きました。

[追記] それとフレームケースは外から見えるモノなので、今回、ロゴもシルク印刷指定してみました。
Lilithキーボードの自作ロゴのドラフト1号です。

2022-09-19

PCB Assemblyした基板が届きました [自キ沼#9]

自作自称Lilithキーボードですが、ドキドキワクワクの基板組立サービスが完了して、JLCPCBの青い箱が届きました。
Lilithの自キ沼活動の中で、わたしは、はじめて基板業者いうものを知り、実際にCADデータを作って発注を体験した初心者です。
初回の発注は、公開されているLDSAプロファイルのキーキャップデータを使った3Dプリント、2回目はスイッチプレート、そして今回がいよいよメインイベントの回路基板と基板組立サービスです。
ちなみに、CADデータをアップロードしてから受け取るまでの納期は、安い配送方式を選ぶと10日前後と、もちろんAmazon Primeには及びませんが、製造工程と海外発送であることを考えると結構早いと思いました。

自称Lilithキーボードは、どうせ自分で設計して作るなら、ポインティングデバイスと一体になったものをと思い、パーツの入手性が抜群のジョイスティック(Nintendo Switchの交換部品)を組み込むことにしました。
キー配置は、どうしても人差し指で押したいCキーの問題(癖が染み付いている)と、小指の運指にいつも無理をかけている感覚(短い小指担当のキーの位置)の問題、そもそも小指が(ReturnやBackspaceやDeleteで)忙しすぎる問題、そしてもちろん肩を開いて(その時々の気分でポジションを変えて)入力したい問題を解決するために、分離型のAlice的配列としました。
ジョイスティックもキー配置もSU120で納得いくまでテストを行いました。
最低発注数の5枚をなんとかうまく活用して余りを最小にしたくて、リバーシブルや、トップとボトムの兼用など、おそらくやり過ぎの工夫をしてしまっているかもしれません。

さて、今回届いた基板ですが、現物を見てみると、0.5mmピッチのジョイスティックのFPCリボン(極薄ケーブル)コネクタは、やはり手でハンダ付けをする限界を大きく超えていました。
コネクタの足とハンダ付けパッドの太さが、シャープペンシルの芯の半分しかないのですから。
それと、背の低めの表面実装ダイオードも同様に基板組立サービスに出してよかったと思いました。

今回の初号基板の設計で、既に見つかった課題を、備忘録として暴露しておきます。

  • キースイッチのソケットとダイオードが接近し過ぎて、ソケットが最後まで基盤に密着できない
  • ジョイスティックのPFCソケットの位置がY方向に微妙に遠くてリボンケーブルに少し無理な力がかかってしまう。ソケットの配置を0.5mmほど近づける必要あり

配線に関してはざっとテストした範囲では大丈夫そうです。

実際にキーソケットをハンダ付けしてキーボードの形に組み立てるのが楽しみです。
回路基板を待っている間に、これも凝り過ぎの、積層ケースのCADもやっと出来て発注したので、最終形が待ち遠しいです。

この投稿は、Sparrow62 v2+片側だけLDSAロープロファイルキーキャップを使って書きました。 

[2022-09-20] 写真の鉛筆の先の所、変な枠が掘ってありますが、実はここは、

  • 左手側ではBのキー
  • 右手側ではジョイスティックを埋め込む穴のための切り取り線

になっています。
お分かりになりましたか?

[2022-09-25] 写真の下真ん中の、0.5mmピッチFPCリボンケーブルコネクタのロックドア(黒い部分)を何度もいじっていたら、もげちゃいました、キーソケットをハンダ付けした後なので、しょんぼり(さらに、もう1台からロックを移植できないかと無理に引っ張ったら片足が折れちゃって、さらに、ピンセットの先で弾けてどこかに飛んで行っちゃいいました)。
でも予備の基板があるので壊滅的ではないです。
じつはジョイスティックのFPCリボンの方も、リボンと接続部分の段差の所で、パリッとやっちゃっています、こちらも2台も。
繊細な極小部品は優しく扱わないといけないですね。

2022-09-08

基板組み立てサービス (PCB Assembly、SMT: Surface Mount Technology) 付きでLilithの自作キーボード基板を発注 [自キ沼#8]

今回Lilithは、初めての自作キーボード設計なのに、いろいろ欲張ばりすぎて、いきなり詰め込みすぎんじゃないかな、と我ながら思います。
トッププレートの次に行った、基板の設計は、着手してから3週間近くもかってしまいました。

  • 基板はリバーシブルで、最低発注数5枚がキーボード2.5台分として活用できるよう、最大限の節約策を考えました。

  • まず、Pro Microの配置は、裏向きでコンスルーで上から挿して、そのピン配置を基板の裏側に描くので、ものすごく頭がこんがらがりました。
    その上、基板全体がリバーシブルです。初期段階から最終段階まで、Pro Microの方向の間違いに何度も気付いて修正し続けることになりました。それでもSU120を参考にして、マトリックスのX1~X8、Y1~Y5を一旦は共通端子に取り出して、そこから配線する形にしたので、向きを都度集修正した影響はPro Microの場所に局所化できたと思います。
  • Lilithはカラムスタッガードやオーソリニアのような左右対称ではないので、リバーシブル化のための作戦が必要です。
    今回、ジョイスティックがある左手側を基本にして配線し、右手側は2行めと3行めの間でカットし、さらにズラして接続する方式を考えました。
    これもSU120が参考になっていて、SU120では1キー毎に切り離し式で切り離さなければ配線されていますが切り離せばレイアウトが自由、Lilithではこれにならったもっと大きいブロックの切り離し式と言っていいんじゃないかなと思います。切り離しする左手側はX1~X8、Y3~Y5の11本をエナメル線で配線する予定です。この先もしこの基板を配布することになった場合には、このままで行くか、コネクタにするか、台数がさばける前提でリバーシブルをやめるか、をまた考えなおします。
  • 回路配線は、パズル感覚で楽しみながら手作業で配置しました。
    縦軸Yの配線は裏面で、横軸Xは表面でと、規則性を決めて行いました。時間はかかりましたが、自分で見て判りやすい配線配置になったと思います。これは、後で接続を追う時のためにも大事なような気がしています。
  • DRCチェックを通すと、回路図を元に配線忘れを指摘してくれるので、安心です。

  • 今回、はじめてなのに、大それた基板組み立てサービスを利用したかった最大の理由は、ジョイスティックのリボンケーブルのFPCコネクタが0.5mmピッチと、手でハンダ付けするのは限界と思ったからです。
    Amazonで見つけた0.5mmと1mmコネクタの両面ブレークアウト基板の、1mm側のコネクタのハンダを外すのでさえ、やってみてとても大変というのを経験していたからです。将来的にUSBCコネクタを付るような場合にも手ハンダは無理だと思っています(少なくともわたしには)。
  • このFPCコネクタと表面実装ダイオードの部品は、高さがちょうど1mmのものをJLCPCBのパーツ品揃えの中で見つけることができました。
    基板がリバーシブルなので左手側は表面実装部品が基盤の上面に来ることになります。上下のミドルプレートを1mmにして、ちょうどこの高さに収めることができそうです。スイッチのソケットは2mmくらいの厚みがあるので右手側・左手側とも裏面に手でハンダ付けします。
  • 部品実装のためのPositionファイルを作成するのには苦労しました。
    キースイッチの面から見て裏面に部品を実装する指示をしたかったのですが、ダイオードは向きが逆になったり、小指ブロックの13°の傾き部分の傾きが逆になったりと、KiCADの生成したPositionファイルのままではどうしてもうまく行きません。FPCコネクタは自分で描いたフットプリントを回転したりして合うようにしましたが、ダイオードに関しては、位置はKiCADの言う通り、向きは仕方ないので手でテキスト編集しました。それでも、JLCPCBの発注後のFDM Analysisでは、基板はX軸の正の側、部品はX軸の負の側に配置されている、と表示されてしまっていますが、これはJLCPCB側で修正してくれるようです。KiCADで元から基板を裏返して、表面に実装指定する形にすればもっと楽だったのかもしれません。

  • 先日作成したプレートのGNDベタ塗りは、配線が何もなかったのでワンプッシュで何も考えなくてよかったのですが、今回の基板では、配線があるせいで基板の真ん中あたりにベタ塗り領域が全然行き渡りません
    配線の間隔を広げてやったり、このためだけにビアで反対側に配線を逃がしたりして、ベタ塗り領域が出来る限り連続するようにしました。この作業だけでもパズルのように半日くらい楽しめました。
  • シルクスクリーンの文字も、表と裏で意図しない側に描いてしまったり、抜けていたりする箇所が意外と多くありました。
    KiCADの基板エディタではなかなか気付きにくくて、最終段階でJLCPCBの3Dプレビューを見て気付いて修正しました。

  • JLCPCBの価格は総額¥4,000になりました(キーボード2.5台分)。
    基板の方は追加料金なし(基本料$4+基板料¥1,300)。
    組み立てサービスの方は、基本料¥1,000+表面実装に使うステンシルマスク¥200+部品代はキーボード2.5台分で¥300(誤差くらい安いですね)+FPCコネクタがExtended Componentなのでパーツの入替作業のための追加¥400(ダイオードはBasic Componentから選んだので追加料金なし)+組み立て費¥100です。
    部品代金と、手ハンダの手間の2.5台分と考えるとお安いと思いました。輸送費は追加で¥1,600、クーポン割引 -¥1,400 ($10) を合わせたのが請求額になります。
  • 一点注意点は、基板組み立てサービスは前払い対応のみなことです。単なる基板作成や3Dプリントではレビューが通った後に決済に進むオプションがあるのとは違っています。発注後に基板や部品の間違いに気付いてもキャンセルができません(Chatでお願いすれば修正版での差し替えくらいはおそらく出来るとは思います)。

順調に製造が進んでいるようでほっとしています。
あとは受け取って、意図したとおりに動作するかどうかのお楽しみです。

この投稿は、Sparrow62 v2+片側だけLDSAロープロファイルキーキャップ を使って書きました。

2022-09-06

9月のApple Eventでの発表はiPhoneだけ?

9月のApple Eventまであと一日になりました。

今回の発表も例年にならって、iPhoneとApple One関連だけなのでしょうか。
iPhoneにしても、あっと驚くような進化の持ち駒はまだあるのでしょうか。

Mac Proはやはり来月までお預け?
全く新しい、VRデバイスや、Car関連は?
なにで、なにを、「超えよう」と言っているのでしょうか?
iPhone 14でiPhone 13を超えるだけ、ってことは流石にないですよね?

春のWWDCで発表されたiOS 16はまだリリースされていませんし、
そんなに急いで詰め込むメリットは特にないので、それでいいんですが、
Apple Siliconへの完全移行を出来るだけ早く見てみたいのもファンの心理なんですよね。

2022-08-30

自作自称Lilithキーボードの現在状態、プレートが来ました、基板設計中 [自キ沼#7]

8月が終わる前に、試作キーボードの現在の状態です。

FR-4のトッププレート(キープレート)が来たので、試作Lilithをバラして、スイッチをはめ込みました(はじめてのPCB発注の経緯は以前の書き込み、Lilithの構想はそれ以前の書き込み)。

  • キースイッチの穴は少し緩めですが、chocスイッチの爪がきちんと引っかかって安定しました。プレートの効果大です。FR-4の厚みはchocスイッチの寸法通り1.2mmを選びました。次回はきっちりした穴のサイズにしたいと思います。
  • ジョイスティックの穴は少し狭かったのでやすりで削りました。金具が付いている部分がネットで見つけた図面よりも少しずつはみ出しているためです。これも要改善。
  • SU-120の試作基板の時からキー配置を変えたので、SU-120で作成していた物理構造を一部バラしてプレートにはめ込みました。プレートがあるので、SU-120自体は固定していなくても構造が安定しています。ソケットでキースイッチをホットスワップにする場合は、プレートは大事ですね。
  • 実はSU-120はケアレスミスで白を選んでしまったのですが、今となっては、試作中はかえって映えて良かったかも、と思っています。
  • 配線についても届かなくなった部分はバラしました。再度の配線はまだしていないので、いまは動作しない状態です。
  • キー配置を変えたのは、右手Backspace/Delの部分を削減して双方8x4にすることで左右の全体サイズを揃えたかったのと、基板をリバーシブルにして節約したかったためです。
  • オーソリニアや純粋なカラムスタッガードは左右対称ですが、Lilithは行方向にズレているAlice配置です。どうやってリバーシブル基板にするかと言うと、こうです。
  • 数字行と0.5uズレのQ行はリバーシブルで左右共通、A行とZ行それと親指キーを合わせたブロックは前者とは別のリバーシブルの左右共通と考えました。ジョイスティックがあって配線が複雑な右手側は一体の基板にし、左手側は上2行のブロックと、下2行と親指キーを合わせたブロックを分割し、ズラして配置することで左手側の基板になるように考えました。左手側は基盤をカットしてしまうので、上と下のブロックの間は配線あるいはコネクタ接続になります。何日もキー配置を眺めているうちにこのアイデアが浮かんできました。大きくカスタマイズしたSU-120といった感じですね。
  • 上と下のブロックの間(Q行とA行の間の)ズレ量は、左手側は0.25u、右手側は右手ホームポジションで逆T矢印と数字が押しやすいように0uとします。なお、下ブロック内のA行とZ行のズレは標準キーボードでは0.5uですが、わたしの場合は、Cキーを人差し指でもっと押しやすくするように0.75uとします。右手側はオーソリニアに少し近い形になります。
  • ジョイスティックは右手のいわゆるBキーの位置に変更した(試作の実機での気付き)ので、ホームポジションからアクセスしやすいです。
  • このジョイスティックは、左手のBキーと共通の位置です。右手側は基板を切り取ってジョイスティックを埋め込めるようにします。高さもchocスイッチといい感じで釣り合います。
  • ジョイスティックの見えている部分は1uに綺麗に収まるのですが、ネジ止めのベロが少し外にはみ出している(隣のキーの隙間に収まる範囲なので配置的にはセーフ)のと、接続ケーブルがあるので、どうしても1uに収まるユニットにならないのが残念です。独立ユニット基板として、1.5uサイズくらいにならできる可能性があるかもしれません。Cherry MX用として考えると、高さ方向に基板を積み上げても良いかもしれません。
  • ミドルプレートと、簡易的なケースとしてのフレーム枠も、FR-4で作成するつもりです。キーボード全体ですき間のないソリッドにします(わたしは未体験のサンドイッチマウントとは対極だと思います)。なお、今回のキープレートはボトムプレートとしても共通化できるように考えて作ったつもりです。
  • 基板は、ジョイスティックの0.5mmピッチのFPCコネクタと、高さを稼ぐための1mmの表面実装ダイオードをはんだ付けする自信が到底ないので、JLCPCBのPCB Assembly発注に挑戦したいと考えています。

現在、KiCADで基板と格闘しています。
キーキャップについては、またまた欲が出てきたので、改めて投稿したいと思います。

この投稿は、Sparrow62 v2+片側だけLDSAロープロファイルキーキャップ を使って書きました。

2022-08-18

一年の時を経て、ペンタゴナワールドの物語が再開 「重戦機エルガイム」のYouTube配信が2022年8月25日から

去年、13話まで公開された「重戦機エルガイム」(去年のわたしの投稿です)の続きが、YouTubeのサンライズチャンネルで来週からプレミア公開されるそうです(まんたんウェブの記事にて)。
今年はエルガイムは木曜日20時なので8月25日からですね(予告の詳細に告知あり)。

エルガイムは今の時代では考えられない1年物の全54話なので、たぶん今回の公開も1クール分になるのかと想像しています。
MkIIの登場まで見れるかどうかですね(Wikipedia各話リスト)。

いずれにしてもシー・ユー・アゲインが叶いました。

2022-08-15

JLCPCBへPCB作成とキーキャップの3Dプリントを発注してみた [自キ沼#6]

(8月18日、末尾に追記しました)

SU120での試作キーボード作成は、完璧に動作させることまでが可能ですが、キースイッチを固定するトッププレート(または単にプレート)がないために、どうしてもフニャフニャしてしまい本格利用には無理があります。
プレートの素材としてアクリルは適度な柔軟性があって良いようですが、最低の厚みが2mmまでしかなくて、Kailh chocのプレート仕様の1.2mmに合いません。
PCB基板の素材であるFR-4であれば、厚みの選択肢が多く、複雑な形状の加工も作成発注できます。

PCBの作成サービスは有名どころが何社かありますが、その中で比較的低価格を売りにしているJLCPCBについて調べ始めました。
PCB素材もFR-4以外にアルミも選べて、さらに表面実装部品の工場組み立てサービスもあるようです。
ちっちゃいダイオードやアナログジョイスティックの0.5mmピッチコネクタのハンダ付けは、自分では成功する気がしていなかったのでこれはぜひ試してみたいです。
(さらにPro MicroのArduinoチップ(いまは高価)やRaspberry PI PicoのRP2040チップも選べるようです;コントローラ部分の厚みは確実に稼げますが、キースイッチの位置にはおそらく配置できないので底面積はほとんど稼げず、メリットがあるかどうかは今後の検証が必要です。)

さらに3Dプリントサービスもあり、手作業の手作りではどうにもならない、キーキャップやケースの作成も依頼できることに気づきました。
チャット問い合わせもできて対応が早いのですが、唯一かつ最大の難点が英語のみという点でしょうか。

前回の投稿でも書いたように、ちょうどKailh choc用の独自LDSAプロファイルのキーキャップの3Dデータが公開されているのを見つけました。

  • 公開されているデータはcorne用(corneの派生corne-ish ZEN用)なので、1u通常キー、1uホーミング、それとMBKにはない1u親指(手前の高さが下がっているコンベックス)と、縦長の1.5u親指キーの構成です。
  • どうしても欲しかった、横長の1.5u親指キーは、1u親指キーを切り貼りして作成しました。3D CADなので、切り貼りは切り取り線じゃなくて切り取り面を指定して元データを分割、キートップ部分を横に伸ばして元の配置で合体させました。Autodesk Fusion360の基本操作はしばらく触っているうちに分かりました(FreeCADも触ってみましたがわたしにとってはとっつきが悪く勉強が必要そうでした。なおパソコンはM1 MacBook Airを使っています。KiCADも含めてRosetta 2で問題なく動いています)。
  • 3Dプリントに限らずJLCPCBでの発注は一品ごとに最低料金と場合によっては技術料がかかるので、キー10個で一つのデータにして品数を減らすようにしました(小部品の連結の上限10個はデータルールにあり)。プラモデルのランナー(枝)のように、外から見える表面に切り取り箇所が露出しないように、太さ1.5mm長さ5mmのコの字型の円筒をキーキャップの下面に連結しました。1u通常キーx10のパーツは1品で最低料金の$1に収まったようです。
  • これでSTLファイルを作ってJLCPCBにアップロードし、黒色レジンを指定して発注したのが日曜日。データのレビューはなぜか一発で通って火曜日に製造完了しました。今は香港の近くの深センに物があって海外便の輸送を待つのみ。クーポンを使って金額は70キーで¥1,300。まだ手元になくて、どんな出来栄えになっているのか楽しみです。

次に発注したプレートの方はいろいろ欲張って盛りすぎたためか、配線がない単純な板なのに、キーキャップよりも苦労しました。

  • Keyboard Layout EditorでわたしのLilithのキー配置を入力し、DXFファイルを生成。これをKiCADのPCBエディタに読み込んで、グリッド原点を合わせながら、キースイッチ穴のフットプリントを配置しました。小指キーの斜めになっているところは、フットプリントに13°の角度だけを数値指定して拡大しながら目分量で配置しました(一度配置した場所は基準と決めて後工程ではもう動かさない)。さらにキーボードの外形をEdge.Cutsレイヤにお絵描きして、基本形は完成。
  • デザイン性も考え、左右ブロックの外形面積を同じにしたくて、右手端で出っ張っているバックスラッシュキーだけは別の場所へ移動することにしました。これで右手側は6〜0と- = Backspaceの8列。左手側は、Escとバッククォートと1〜5、さらに中央にDelなどの追加キー列1列も設けて、左右ともに8x4に共通化できました。
  • わたしのLilithはキー配置が左右非対称なのでプレートはリバーシブルにできません。せめて、キースイッチをはめるプレートとボトムプレートをなんとか共有して、PCB費用を節約できればと考えました。そのためにコントローラやTRRSジャック部分を選択切り取り式にしました。
  • 初心者のわたしが苦労したのがこの切り取り線です。1回目は2mm幅のスロットを40mm程の長さでくり抜いて(始点終点は四角ではなくて半円)、1mmの間隔を開けて配置したのですが、残す部分が小さ過ぎて製造過程で折れてしまうとの指摘でリジェクト。2回目は同じスロットで、間隔を2mmに、間に2mmの丸穴を配置して一点鎖線にして多少補強してみましたが同じくリジェクト。2mmの丸穴部分は最初はEdge.Cutsに単純に円形を描いていたのですがこの切り取り工程に無理があると思い、直径2mmドリル穴に変更し製造しやすくしてやることで、ようやくレビューが通りました。
  • ドリル穴の作成は、例えばキースイッチの足部分のフットプリントではパッドの属性でNPTH(non-plated through hole; 電気的に導通させないスルーホール穴)を指定したものが使用されていますが、PCBエディタの中ではなぜかパッドを作れません。代わりにピア(via; 多層基板のレイヤ間を接続するメッキ穴)で穴の径を指定してドリル穴を作成しました。
  • さらに、右手用と左手用の斜め部分をうまく組み合わせて(片方を反転)、全体の材料面積を少しでも節約してみました。
  • このプレートの方は、5回のレビューに4日かかり、今日月曜日の時点でやっと製造ラインへの投入待ちです。クーポンを使って金額は最少5枚で¥4,800になりました。100mm x 100mmを超えると材料代金が掛かるのと、追加技術料¥1,000(日曜だったのでチャット窓口が開いておらず後日問い合わせます)、送料も最安¥600のOCS NEPが選べない上に重量料金になります。材料のボードサイズは360mm x 120mmでした。

キーキャップ、プレートとも、実際どんな物が来るのか、到着が待ち遠しすぎます。

この投稿はLilithプロトを使って書きました。


[2022-08-17] PCB製造の追加料金の¥1,000は、切り抜き・くり抜き(Routing)が多いためと回答がありました。
確かにキースイッチの部分含めて90箇所くらい穴を開けている(ドリル穴は除く)ので、多いんでしょうね。
右手と左手を一緒にして節約と考えたのですが、かえって高くなってしまった可能性があります。
キー数が多い(ゆずれない要件ではありますが)のも、こういう面でコストに影響ありますね。

プレートでしっかりスイッチを保持できるようなら、基板回路は100mm x 100mm以下にバラバラにしてしてしまってもいいのかも、と真剣に考え始めています。
SU120を超カスタム化する感覚です。

PCBの進捗経過は、月曜日にレビュー通過&正式発注、火曜日に製造完了&出荷待ち、です。
キーキャップの3Dプリントの進捗経過は、先週月曜日にレビュー通過&正式発注、火曜日に製造完了、(少し手違いで遅延があって)金曜日出荷、翌水曜日の今日 関空到着です。

[2022-08-18] 翌木曜日午前、キーキャップ到着しました。
第一印象悪くないです。
気のせいかもしれませんが、肌触りが粉っぽいというか、指に何かが付着する印象なので、いちど極薄の洗剤で洗ってみます。

2022-08-05

Kailh choc用のキーキャップの新しい選択肢LDSA [自キ沼#5]

自作キーボードのキースイッチはロープロファイルのKailh chocがお気に入り、と言うか自分の中ではロープロファイル縛りを設けています。
キーキャップの方は、素材としては、ABSプラスチックは昔から肌触りが好きじゃない印象があって初めからスキップ、PBTのMBKが結構良い感じだと思っています(游舎工房ではカラフルな品揃え)。
Cherry MXの世界では、キーキャップだけも数多あって一つの大きな沼になっているようです。
キーキャップによって、打鍵音や、入力のし易さも変わるそうです。

Kailh choc用にMBK以外の選択肢がないもだろうか、といろいろ漁っていて見つけたのが、写真のLDSA profile keycapです(Low profile DSAだそうです)。
通常のキーはくぼみが大きいグラマラスな形、親指キー用に角が取れた形(コンベックス)と、ホームポジション用(ホーミング)もあります。
是非とも触ってみたいのですが、今のタイミングでは販売されていません。
仮に発注できるタイミングに出会えていたとしても海外発送なので送料がバカバカしいことになっていた恐れがあります。

このLDSAですが、うれしいことにCreative Commons, non-commercial licenseで3Dデータが公開されていて(自作キーボード界の良いところですよね)、自分で印刷することもできそうです。
でもどれくらいの費用が掛かるのか見当もつきません。
ある程度の経済性(カスタムキーボードのように高すぎない)も自分の中での必須条件のひとつです。
3D CADもちょっと勉強して、自分の中の3Dプリントの最初の課題として、このキーキャップにも取り組み始めたいと思います。

[2022-08-07] なんと、KiCADよりも先にFusion 360をいじくり始めています。
プラモデルの元を作る要領でしょうか。
レジンのキーキャップはどんな感触なのかも未知数ですね。

2022-07-30

自作キーボード沼へ、その4:6x3コンパクトキーボードのキー配置をOLEDで動的に表示できたら

自作キーボードの設計で、あれもこれもと欲張ってキー数を増やしてしまうと、手間も時間も、何よりパーツの費用が余分に必要になります。
無理にキー数を減らしてかえって使いにくくなったら本末転倒なのは当然ですが、かっこよさからもやはり少ないキー数は一つの目指すところだと思います。
カラムスタッガードやオーソリニアで左右の配列を対称にしておけば、基板をリバーシブルにしてさら節約できます(PCBの発注は最低5枚から)。
6x3配列は、ホームポジションを完璧にすっと守って入力できるメリットもあります。
そんな中にあって、foostanさんの6x3+親指3キーのcorne (crkbd) は世界中で使われているもっとも有名な自作キーボードと言って間違いないでしょう。

以下、わたしがcrkbd等の6x3キーボードに踏み切れていない理由です。

  • 標準キーボードでも英字キーはブラインドタッチできますが、記号はどうしてもキー刻印頼ってしまいます(Shift+6 が ^ は記憶があやしい)。標準配列じゃないとなおさら大変そうです。
  • crkbdのようにキー数が少ないと、足りない記号キーは、レイヤを複数使ってキーマップに押し込んでやる必要があります。
  • キートップにシールなどで刻印して、目で見てすぐに探せるようにするのが記憶の負担を下げるのに一番効果的だと考えています。標準キーボードであっても刻印がある方がとっさの時に安心で結局は早く入力できます(意外とキー刻印に頼っていると思います)。
  • しかしながら、自作キーボードではキーマップを日々カスタマイズするのが常です。シールを頻繁に張り替えることもできません。また、既成のキーキャップだと記号などが自分のキーマップに合いません。結局、無刻印キーキャプで記憶に頼って使っているのが現状だと思います。

これはもうなんともならず、自分にはcrkbdにご縁が無いと諦めかけていたのですが、今週、パッとアイデアがひらめきました。
それは何かと言うと、crkbdにも付いているOLED(有機ELディスプレイ)の活用です。
スマホのソフトウェアキーボードは、フリップ入力のテンキースタイルであれ、フルキースタイルであれ、キー数は少ないです。
動的にキー表示を行うことで、ユーザの文字入力を助けくれていて、実際、日常利用に耐えられる形になっています。
これに似たようなことが6x3のような自作キーボードでもできれば、と考えました

  • まず、crkbdのOLEDは縦長なのでキーマップの表示のためには使いにくいのですが、そこは自作キーボードの利点を生かし、PCBまでカスタマイズしてしまえばよくて、OLEDを横長(ランドスケープ)に配置してやることもできるはずです。
  • 6x3のキーマップを、レイヤ毎に切替えて動的に表示してやれば、物理キーボードのキートップに文字を刻印や、ソフトウェアキーボードに、近いメリット、すなわち目で見てどこにどの文字があるかが分かり、たまにしか入力しないうろ覚えの文字でも入力できるようになります。
  • OLEDのピクセル数は32x128です。6x3配列の3行の文字を表示してやろうとすると文字の高さは10pixelになり、これは試してみないと良いか悪いか分かりません。

そこで、10pixelの文字がどんな感じになるか、視認性はどうか、を検証してみたくて、ビットマップ職人の真似事をしてみました。
32x128 pixelのエリアに6x3で文字を配置したのが今回の図です。
行間が1pixelしか取れなくてそのままだと縦方向がゴチャッとしてしまうので、少しずらしてロースタッガードの表示しています。
もしかすると、文字の高さは11 pixelにしたほうが良かったかもしれません。

わたしの手元にOLEDの現物がないので、このアイデアをすぐに実機に表示してみることができなくて残念なのですが、それほど悪くないのではないでしょうか。

今後のチャレンジは、次のような順になると思っています。

  • OLEDの実機で表示具合を試してみる。まずはSU120でやってみる。
  • 定義したキーマップを動的に反映してOLEDに表示する仕組みを考える。VIAの定義を取得したり、ビットマップフォントをOLEDに配置したり、の処理になると思っています。
    これはできなくても、キーマップ定義を変えたらOLEDの表示用ビットマップをお絵描きツールで書き換えればいいんですがね。
  • crkbdのPCBをカスタマイズして、OLEDを横配置にする。

いかがでしょう、crkbdのコンパクトさを活かしつつ、使い勝手をかなり高めるのではと思っています。

この投稿はSparrow62 v2+[Kailh choc Pink+Brown spring] を使って書きました。

 

[2022-08-01] 過去にも(当然ながら) 同じような事を考えて実行している方がいらっしゃいました。
retkekさんが一体型のAtreusキーボードに64x128のOLEDを付けてキーマップを表示しています(ブログ記事 https://www.kmr.me/posts/atreus_oled/、ちなみにこの方はAtreusキーボードを最初に2018年2月に組み立てて、2020年9月にOLEDを取り付けたようです、相当使い込まれていらっしゃいますね)。
(Atreus自体も、すごく歴史がありますね、2020年にKeyboardioが製品化、そこの2014年のブログにはTechnomancyのオリジナルがもう登場しています。
游舎工房と、数字行と小指列を追加して6x4にしたAtreus64がTALP Keyboardで販売されていますね。)

実際に公開されている表示画像を32x128に合うように再編集したのが右の画像です。
OLEDは両手側に付けてそれぞれで表示しないと入りきらないだろうと思っていたのですが、crkbdくらいのキー数であれば、OLED 1枚だけで全キーを一括で表示できそうですね。
これ、良いんじゃないでしょうか。

それと、表示フォントに関して、QMK Firmware内蔵のものでも良いのですが、Arduino向けのライブラリの中でいろいろ提供されています(実際の画像付き一覧 https://github.com/olikraus/u8g2/wiki/fntgrp)。
10pixelとか11pixelのフォントはなかなかないのですが、ざっと見てみたところ UW-ttyp0 の中の、ボールドの t0_11b_tf かレギュラーの t0_11_tf が見やすそうです。

2022-07-19

自作キーボード沼へ、その3:Kailh chocスイッチのスプリング交換

自作キーボード沼の一つ、キースイッチ選び、更にはスイッチカスタマイズに足を踏み入れてしまいました。

わたしの最初の自作メカニカルキーボードSparrow62 v2では、タクタイルが良いと思いKailh choc Brown(茶軸)を選びました。
2番目のプロトタイプキーボードでは、もっと軽く、いっそ3倍軽いものと思い、Pink(ピンク軸)を選びました。

  • 茶軸:タクタイル、押下圧45gf、タクタイル動作圧60gf
  • ピンク軸:リニア、押下圧20gf

茶軸はちょうど良くて満足と思っていましたが、1ヶ月間使っていくうちに、決定的に悪いわけではないけれども、なんとなく重く、指が疲れているのではと思うようになってきました。

そこで新しいキーボードでは別のスイッチをと思い、選んだのが一番軽いピンク軸です。
手に入れて、スイッチ単体では茶軸とそれほど違いがないかもとも思いましたが、実際にキーボードに付けてみると、力を入れずに指を少し下げただけで動作してしまうほどの軽さです。
乗用も不可能ではないですが、押そうと思っていないキーに触れただけで入力されてしまうことがあり、それがゆえに不用意にキーを押し下げないように意識して疲れるような感じが、3日間使ったピンク軸の感覚です。
3倍軽いのは(赤い色ではないですが)やはりやり過ぎで、とてもピーキーな感じです。

どうにかならないかと、一度両方のキースイッチを分解押して内部を見てみることにしました。
Kailh chocのケースの上下を止めている爪はそれほど固くはなく、ピンセットで少し押し広げてやるとすぐに外れました(スプリングがどこかに飛んで行かないように注意は必要)。
発売時期がピンク軸の方が新しいので、茶軸にはあるスタビライザ無しで軸を安定させるガイドの突起があるなど、形状が微妙に違います。
どちらも、軸と接点操作パーツのすれあう溝にはグリスがしてありました(ファクトリ・ルブと言うのでしょうか)。
その中で、スプリングは、明らかに素材の太さが違いますが、サイズ(太さと長さ)は同じように見えました。
これは入れ替えられるんじゃない、と思い、テスト的に1つやってみたところ動作には問題なさそうです。
軽すぎるピンク軸のバネに、茶軸のタクタイルの抵抗感が合わさってちょうど良い塩梅になりそうな予感がしました。

これはやってみるしかないと、手持ちそれぞれ70個のスイッチのスプリングの入れ替えを敢行しました。
入れ替え作業にはおおよそ3時間を費やしました。

改造ピンク軸の方はスムーズな入力感覚でいい感じですが、茶軸の方は改善はされましたがまだ少し軽すぎる感じが残っています。

  • 茶軸+ピンク軸スプリング:タクタイル、押下圧20gf、タクタイル動作圧は感覚的に25gfくらい、ピンク軸スプリングのピーキーさのある程度の軽減に成功しました
  • ピンク軸+茶軸スプリング:リニア、押下圧45gf、おそらく人気のRed Pro軸(35gf)やCrystal Silver軸(40gf)相当でしょうか、しっとりしたいい感じです

茶軸は元々タクタイル感が少なすぎると言われているので、今回のような小手先のやり方ではこれが限界なのかも知れません。
折良く、遊舎工房で新型Kailh choc Sunset Tactileのグループバイをやってます。
この際なので応募してみようかなと思います。

とは言え、しばらくは今回の改造茶軸を使ってみようと思います。
わたしは今のところロープロファイル縛りを設けているので選択肢はこれくらいなのですが、MXスイッチにも手を出してしまうとスイッチとキーキャップが無数にあって恐ろしいですね。

この投稿はLilith proto+「choc茶軸+ピンク軸スプリング」を使って書きました。

2022-07-17

自作キーボードの沼へ、その2:自作第一号Lilith proto - Alice配列、左右分割、薄型、ジョイスティック

下がジョイスティック付き自作プロト1号

作りました、本当の意味での自作(本人が作った)キーボードの第一号です。
前回の投稿の、カラムスタッガードと十分な追加キーを備えた74thさんのSparrow62 v2(ご本人の紹介記事)で、すっかりメカニカル自作キーボードの魅力の虜になりました。
既存のキーボードで満足できればよかったのですが、個々人のクセや好みを満たせない面がどうしても出てきてしfまいます。

そこで、わたしとしてやりたいことを整理して進めることにしました。

Sparrow62から取り入れたい利点:

  • フルキーボードの、矢印キーとFnキーを除くすべての文字をレイヤ切り替えなしで入力できるだけの十分なキー数
    (6x3をSparrow62上でシミュレーションしてみましたが、どうにも頭と指がついていけませんでした)
  • ロープロファイル
  • 左右分割で、気分に合わせたタイピング

追加したかった機能、特性:

  • カラムスタッガードだと、人差し指でCを押す癖にどうしても対応できず(Fのすぐ下をCを置いてしのいでいるほど)、Aの段とZの段が横に0.5uズレた標準キーボードに近い配列を兼ね備えたモノを実現したい
  • 小指が短い方なので、左右端の小指担当キーはカラムスタッガードでももっと下にズラして届きやすくしたい(たとえばRemapの共同作者YoichiroさんのLunakeyのように)
  • この2つをちょうど併せ持つAlice配列が良さそう
  • 左右分割キーボードはMagic Trackpadを中央に置けますが、大きいので、キーボード自体にポインティングデバイスが一体化されているのが理想かも
    ゲーム機(Nintendo Switchなど)のアナログジョイパッドの部品が潤沢に手に入るので繋いで試してみたい

第一号なので、配線やレイアウトが、簡単にカット&トライができるのが重要と考えました。
これにうってつけのキットがe3w2qさんのSU120です。
事前にPowerPointなどでレイアウトを練り、アナログジョイスティック部品(例えばAmazonのこれ)も取り寄せてテストした上で、実際の組み立てに取り掛かりました。
このレベルのものは、いわゆる動作検証用のプロトタイプですね。

組み立ては1日2〜3時間のペースで進めて、3週間ほどかけて、一通り組み上がって使える状態になりました。
写真が現在の姿です。

  • キー数は、左側25+親指5+追加3と、右側30+親指5+マウスボタン2の、合計70キーです。自作キーボードとしては少し多めになってしまいました(たぶんキー数は少なくするのがコツなのかもしれません、部品も手間もかかりました)
  • アナログジョイスティックがいい感じの薄型で、サイズがほぼピッタリ1uなので、収まりが非常に良いです。ブランク基盤の1コマに結束用の針金で縛っているだけですが、意外とグラつきません。0.5㎜ピッチのFPCリボンケーブルから標準ピッチへの変換ボードもテープで張り付けています
  • 左右クリックや、クリック・ホールドしてドラッグ、縦横スクロールにも対応していますが、遠くへ素早く移動したい時のために加速度をつけるチューニングが必要と思っています
自分の取り組みのご紹介としてまずは投稿しました(工夫した点やファームウェアに関しても整理したいと思います)。

この記事はLilith proto(仮称)を使って書きました。

2022-06-26

自作キーボード沼へ、その1: 薄さと絶妙なキー数が使いやすい Sparrow62 (+1) v2

わたしのSparrow62 (+1) v2、
矢印キーは試行錯誤中の状態

先月の書き込みでは、Kinesis Freestyle2というメーカー製の分離型エルゴノミクスキーボードを購入した顛末をご紹介しました。
Freestyle2を使って次のことを学びました。

  • 高さがあってタイプ音がうるさい印象のメカニカルキーボードスイッチを避けることができる
  • やはり分離型キーボードはより体に自然にフィットして、肩や腕に優しい、トラックパッドは真ん中置きが絶対的に良い
  • 厚めのキーボードは後方をチルトしないと奥の方のキーに指が届かない。手首を机に付けるタイピングスタイルでは指に負担がかかって疲れやすくなる
  • WindowsとmacOSのキーカスタマイズツールを使って、ある程度の入力キーの置き換えを行なってみたものの、どうしても限界があり、結局はフルカスタマイズできないと飽き足らなくなる

そして、より良いキーボードを求めてさらに色々と物色し始めました。
自作キーボードであれば、キーのカスタマイズはほぼ無限に自由にできます。

  • 多くのものは通常サイズの背の高いキースイッチ(Cherry MX互換)だけれど,少数だが背の低いLow Profileのキースイッチ(Kailh  choc)を採用あるいは両対応のものあり
  • 分離型のキーボードが自作キーボードの中では多数を占めていて、いい感じ
  • キーボードのキーの数も様々で、数字キーを含んだ6x4と、アルファベットのみの6x3に二分されています。6x3はホームポジションを一切崩さないメリット(ホームポジションの範囲にしかキーがないので崩れようがない)はありますが、Modifierをそれも複数を駆使しないと必要な文字が入力できません。わたしはコンパクトさよりも標準キーボードのようにすぐに全ての文字を入力できる方が好きだと思いました
  • キーの配列は、標準キーボードのように上下に隣り合ったのキーが横にズレているもの(ロースタッガード)と、指を斜めに動かさず前後に曲げ伸ばししてキーを押せるようにしたもの(格子状配列のオーソリニアと、中指・小指等の長さに合わせて縦に多少のずれがあるカラムスタッガード)があります

数ある自作キーボードキットの中で、作者さんが薄さにこだわって、かつ、キー数も過不足ない数を載っけた作品がありました。
それが、74thさん作のSparrow62 (+1) v2です(キーボードのビルドガイドBoothでの販売ページ遊舎工房での販売ページ)。
自作キーボードキットではありますが、初めてでも安心な組み立て済みのものも提供されている点もポイントが高いと感じました。

わたしの自作キーボード第一号(とはいっても作成はしていませんが)としてSparrow62 (+1) v2を約1ヶ月使っての感想、気付きです。

  • 足りないキーがないことは絶対的な正義だと思いました。単純な6x4だと、Escや右端の[や]やBackspaceやDelが収まらないのですが、Sparrow62 (+1) v2は左側にEsc用の追加1個、左右の中央にそれぞれ3個の追加キーが置かれていて、十分な余裕を持たせています
  • とは言っても、カーソルキーとF1〜F12のキーはありません。F1〜F12キーはMod+数字と-=で良いとして、カーソルキーをどこに置くかは迷いました。逆T配列を右下の端に置いたりと色々試してみましたが、右手のホームポジションであるJKLとIに置くのが今は一番しっくりきています(贅沢に右手側SDF Eにも同時に置いたりも便利です)。数字キーも左右に分断されていてとても押しにくいと感じるので、これもホームポジションのUIO JKL M,.を中心に配置する方式で検討中です
  • 親指キーの活用として、右手親指にSpaceキーとEnterキー、左手親指にBakspaceキーを置いています。わたしはSpaceは圧倒的に右手のみで入力していたのと、前方に進むSpaceとEnterを同じ右側に、前に戻るBackspaceを反対側と、右左に分けて置きました。Backspaceは通常のキーと同じくらい入力頻度が高いのも親指ブロックに置いた大きな理由です
  • ファームウェアがKMK Firmwareなので、キーマップはPythonインタープリタのソースコードになっています。これをテキストエディタで書き換えるだけでカスタマイズすることができて、いつでもどこからでもすぐに変更できる気楽さがうれしいです(これに対して多くの自作キーボードが採用しているQMK Firmwareはなにがしかの専用のツールがないとキーマップを変更できません)
  • わたしの場合、Cのキーをどうしても人差し指で押してしまう癖がついていることに気付きました。中指への矯正をやってみようとはしましたが、できそうにありません。ここは入力の気持ち良さを優先して、左手最下段は一文字右にずらして配置しています。押し出されてしまうBのキーは中央の追加キーのおかげで居場所が確保できました。左端、Aの下はShiftキーを置けたのでこの配置は一石二鳥です
  • こだわりのロープロファイルなので、ベタ置きでも、ダイソーのゴム製ノートPCスタンドを少し削って傾斜させても、どちらでも快適です

まだまだ、わたしのキーボード探求は続きそうです。
なお、本記事はSparrow62 (+1) v2を使って作成しました。

2022-06-16

Apple Silicon Mac上でIntel x86 Windowsのアプリを最も高速に実行する方法は、現時点はWine

Hypervisor Framework(これに対してVirtualization FrameworkはHypervizor Frameworkにひと皮被せてLinux OSを実行しやすくしたもの)を使ってArm版WindowsをApple Silicon macOS上で実行できることは既に知られていることです。
更にその中で、Microsoftのエミュレータ機能を使って、Intel x86用のWindowsアプリを実行することもできます。

Appleは独自技術を使ってIntel x86アプリを実行するRosetta 2を提供していますが、Arm Windowsの中ではRosetta 2を使用することができなくて、Intel x86 Windowsアプリの実行速度はそれほど高速ではありません(おおよそ半分の速度くらいでしょうか)。

従来から有名なWineを使用すれば、Windowsアプリの実行をWindows OSをインストールすることなしに行うことができます。
このWineが昨年からApple Silicon Macに対応しています。
WineはmacOS上で直接実行されるもの(仮想化は使用しない)なので、Rosetta 2が活用できます。
少し試してみたところRosetta 2らしい高速性が発揮できていることが確認できました(わたしが軽いベンチマークでよく使う7zipのbオプションで、Apple Siliconネイティブのバイナリに比べてIntel x86 Windowsバイナリは2割程度の速度減に収まりました)。
(QEMUやUTMでIntel Windowsを丸ごと実行した場合は3~4倍遅いのに比べると雲泥の差です。)

ただしWineは、Windowsアプリの実行のためのOS環境を互換ランタイムライブラリで代替する方式のため、たとえば.NETなど複雑なランタイムを使用したアプリは互換性が取れなくて実行できません。
わたしが一番使いたかったWindowsアプリであるPaint.NETも実行できませんでした。

しかしながら、Wineで実行できるWindowsアプリでさえあれば、現時点でApple Silicon Mac上で最も高速に実行する方法であることは間違いないと言えます。
ゲームアプリなどでWineが対応しているものもあるようです。

ちなみに、Intel WindowsアプリではなくてIntel Linuxアプリの場合は、前の書き込みの方法の、macOS 13 VenturaのVirtualization Frameworkの新機能を使って、Arm Linux VMの中でRosetta 2を使う方法が最速です。