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