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ロープロファイルキーキャップ を使って書きました。