自作キーボードを作った話(自設計キーボード編)

以前のこの話の続き。 SU120版のちょっとした不満点 アクリルのトップ・ボトム両プレートを作って使用感よくなったため、Ergo Dashを予備役にまわしてnekonos0を楽しく使っていたのだが、いくつか不満点があった。 キースイッチが外れやすい MX互換キーは1.5mm厚のプレートに対して爪がひっかかるようになっている。しかしアクリルキャスト材は2mmからなので爪がひっかからない。今まで作ったことがあるHelixやErgo Dashもアクリルプレートだが1、これらはソケットではなく基板にスイッチを半田づけする構造なので、大きな問題は生じなかった。 しかし、Kailhソケットでスイッチを固定するSU120で作られたnekonos0では、アクリルプレートにキースイッチの爪がひっかかっていないため、キーキャップを変えようとするとスイッチも必ず抜ける。これは、次の問題との組み合わせによってたいへんストレスになった。 親指まわりのキーとプレートの位置関係の問題 そもそもトッププレートはnekonos1用に設計したものを手直ししただけなので、SU120のビスケットを適当に現物合わせしたnekonos0用の親指まわりとは微妙に位置が合っていない。ビスケットを調整してなんとかスイッチが嵌るようにはしているのだが、位置合わせがシビアである。 それで何が起こるかというと、キースイッチの端子がKailhソケットを捉えそこねて曲がってしまうのである。実につらい。 前述の問題が原因でキースイッチが外れやすく、この問題が原因でキースイッチが嵌めづらい。これはキーキャップを試行錯誤する過程において非常につらい。 Pro Micro下のプレート形状がいまいち nekonos0のボトムプレートのPro Microのあるあたりが横に広くてスマートさが足りない。nekonos0のボトムプレートはnekonos1のPCBと同じ形状なので、つまりはnekonos1の基板形状が悪い。 ここは目に入りやすいところなので最初気になった。まあすぐに慣れたのでそこまで致命的ではないかも。 アンダーグローがいまいち nekonos0はボトムプレートをクリア赤アクリルにした。これはこれでわりとカッコいいのだが、せっかくアンダーグロー用のLEDテープをつけても赤にしか見えない上に暗くて映えなかった。 下を赤くしたいならば、赤のアクリルではなく、クリアアクリルに赤いアンダーグローでいいのではないか。 折角基板設計したのに作らないなんてとんでもない 最大の不満はこれで、nekonos1の基板は99%設計終わっていたし、プレートも90%設計が終わっていたのである。これを作らないなんて組み込みエンジニアとしては耐えられない。 nekonos1を作ることにした というわけでnekonos1は上記の課題を解消する目的で、実際に基板を起こすことにした。そのため、nekonos0の完成後に下記の部分に手を入れた。 Pro Microのあたりをすっきりさせる プレートをPCBプレートにしてキースイッチを抜けづらくする 2 ボトムはクリアのアクリルで作る 回路と基板設計 KiCadを利用した。ほぼ全面的にfoostan氏の自作キーボード設計入門の3章の記述通りにやった。KiCadのバージョンがたぶん違うのと、undergrow用のLEDテープのfootprintにちょっと悩んだくらいだろうか。 まずEeschemaで回路図を書く。泥くさいところは全部Pro Microに任せているおかげで、単純なキーマトリックス回路そのものであり悩むことはない。エンジニアならサルレベルでも書けるに違いない。 あとは個々の部品にフットプリントを設定して、PCBnewでフットプリントを望む形に配置した。概ね前述のfoostan氏の本の通りにやって概ね問題なかった。 キースイッチの配置はPCBnewで完結させるのは難しそうだったので下記手順で行った。 Keyboaed Layout EditorのRaw DataをPlate & Case Builderに食わせてSVGを出力する。 このSVGをInkscapeで開いて基板外形を書き込んでからSVG3とDXFにセーブする。 このDXFをKiCadのPCBnewでEdge.Cutsにimportする。原点は気合で合わせる。 キースイッチのフットプリントをimportした絵に合わせて配置する。 Edge.Cutsからキーボード穴を消す。 もっといい手があったかもしれない。 あとは気合で配置と配線をしていけばOK。Freeroutingによる自動配線はあまり美しくなかったので、Pro Microまわりの一部を残して手で配線した後にのみ利用した。ちなみにこれはこれで十分な配線スペースがないとFreeroutingがギブアップするので注意が必要だろう。 トッププレート PCBプレートなのでこれもPCBnewで作る。 先程作った基板外形+キー穴のSVGをトッププレートの形に整形する。nekonos1はPro Micro部分だけ高さが違うので切り離す必要がある。まあ、しかし、特に難しい事はない。Pro Micro分のデザインを2種類考えてたのでPro Micro部のカバーが2コあるくらいか? Pro Micro部にロゴが欲しかったので、これはAffinity DesignerでSVGを作って、InkscapeでDXFにしてフットプリントを登録してトッププレートにはりつけた。 ロゴは金にしたかったけど、それだけのために高いENIG(金メッキ)にする気はなかったので、HASL(有鉛半田レベラー)の結果として銀っぽい色になった。 このへんの処理はサリチル酸さんのブログ記事やe3w2qさんのブログ記事を少し参考にした。 ボトムプレート アクリルプレートなのでPCBnewではなくInkscapeを使う。といっても、メインPCBの時に作った基板外形+キー穴のSVGからキー穴を削ってネジ穴を追加するだけでOK。今回はついでにPro Micro部カバーのPCBの上に載せるパーツも入れた。 遊舎工房さんとか、工房Emerge+さんに依頼するなら、それぞれのルールに合わせてデータを作る必要があるが、今回は基板といっしょにElecrowに製造依頼する予定だったので、本当に線で描いただけで終わった。 Elecrowに製造依頼する メイン基板とトッププレートのデータはPCBnewでガーバーデータを生成した。これもfoostan氏の本のほぼその通りにやったはずだが、一部ググったかもしれない。 ボトムプレートはSVGデータと寸法説明用のPDFを同梱してZIPにまとめるだけでOK。あとはElecrowのアカウントを作り、さきほどの3点のZIPをそれぞれ基板製造の見積りページとアクリルカットの見積りページから入力してカートに入れて、注文しておしまい。支払いはPayPalが使える。 1日ほどでin productionにステータスが変わり、1週間後くらいに「発送した」というメールが基板とアクリルプレートの写真と共に届いた。その後2日くらいで荷物が到着した。 ...

December 28, 2020 · 1 min · 111 words · nekomimist

自作キーボードを作った話(SU120編)

以前の記事の続きである。 さて、ないなら作ればいいじゃない、ということで自分でキーボードを作ってみることにした。 いきなり基板を起こすのではなく、まずはe3w2q氏のSU120でプロトタイプを作ってみることにした。 レイアウトを作る まずKeyboard Layout Editorでレイアウトを作る。 手持ちのキーキャップのサイズを眺めつつ1試行錯誤した結果、最終案はこんなレイアウトになった。 SU120で基板を作る じゃあSU120を入手だ! ということで、SU120のドキュメントを眺める。……まあElecrowあたりで作ってもらってもいいのだが、Kailhソケットやダイオードその他も必要なので、そのあたりがセットになっているTALP KEYBOARDさんの分割キーボードセットを買った。 キースイッチはGateron Brownにした。ただソケットはKailhなのでキースイッチもKailhのほうがいいのかもしれない。PCBマウント(5本足)のKailhスイッチあまり売ってないけど……。 で、問題はM1.4のビスとナットで入手性が悪い。今回はAmazonで買った。 ビスはこれ。 ナットはこれ。 ただ、ナットは中国からの直送で時間がかかったので、最初からAliExpressで買ったほうがよかったかもしれない。後述するが、プレートをつけるためにm2のスペーサーを揃えるのにAliExpressは使ったからだ。 TALP KEYBOADDのキットのナットと上記ナットは二面幅2.5mmなので問題ないのだが、あとで楽天で買った二面幅3mmのナットはGateronスイッチと干渉してスイッチを削る羽目になったので、ナットのサイズに注意したほうがいいだろう。 SU120とビスとナットが揃ったら、あとはレイアウトに合わせて切ってビスケットで繋ぐだけ。 配線はSU120の作例120 Key Split Ortholinear Keyboardのドキュメント通りにやればそう悩まずに済むだろう。 とりあえず右手側だけ仮配置。一部ダイオードの実装面を変えないとダメそう #SU120 pic.twitter.com/3ktG4coV68 — いずみたすく (@nekomimist) October 17, 2020 Pro Microまわり以外の配線等が終わったので仮組み。手持ちのR4の1.75Uのキーが足りなかったので、一部キーの位置を修正した。こういう修正が気軽にできるのは #SU120 のいい所だろうな pic.twitter.com/ZWM9BrWEax — いずみたすく (@nekomimist) October 24, 2020 キーキャップはMT3 susuwatariを使うのだが、ここでR4の1.75Uのキーの余剰が一個もなく、当初レイアウトは実現できないに気付いてENTERに当たるキーを1.5Uに変更したが、それ以外は当初レイアウトそのままである。 左手分も仮組み。こちらは予定通りの配置。右の横長キー2つが両方1.5Uになった以上、左の横長キーも全部1.5Uのほうがよいのかも……キーキャップないけど pic.twitter.com/Vy05X2LorH — いずみたすく (@nekomimist) October 24, 2020 配線むちゃくちゃ間違えたりもしたけど、動くようにはなったのでしばらく使ってみよう #SU120 pic.twitter.com/1gwTaiT67y — いずみたすく (@nekomimist) October 26, 2020 親指まわりと左小指まわりをいろいろ試行した結果、現状の姿はこれ #自作キーボード #SU120 pic.twitter.com/jvAFrBVgiW — いずみたすく (@nekomimist) October 31, 2020 使ってみて、親指まわりの角度と左手小指まわりが微妙だったので、最終的なレイアウトはこれとした。 ファームを作る 前述の120 Key Split Ortholinear Keyboardを元にやればOKだろう。 ...

November 23, 2020 · 1 min · 128 words · nekomimist

自作キーボードを作るまでの話

ひさびさにblogを書こうとしたらblogsync-modeのblogsync-postが動かなくなっていてまずそっちを直す羽目になった。世界に俺以外のユーザーはいないと思われるので、俺がブログを書かないと問題に気付かない。 閑話休題。 そもそもいつ頃自作キーボードに興味を持ったのかは覚えていないが、2018年の頭あたりにはいつか自分も作ってみたいと思うようになっていたと記憶している。ただ、気になったキットは恒常的に販売されているものでないことが多かったので、なかなか手を出せずにいた。 しかし、遊舎工房でHelixが売られていることに何かのはずみで気付いた。ずっとOrtholinear(直交配列)が気になっていて、かつ数字列のないストイックなものではなく、数字列のあるものが欲しいと思っていたので、えいやっと通販で買ってみた。これが2018年8月。 Helix、とりあえず組み終わった。 pic.twitter.com/I516CGiU4s — いずみたすく (@nekomimist) August 7, 2018 Ortholinearは慣れると快適であることをHelixで知ったので、2018年10月には2台目のHelixを組んで、自作と会社両方でHelixを使うようになった。 Helix2台目稼動開始。キータッチ的には1台目のほうが好きかな…… pic.twitter.com/W0OhkwXzt5 — いずみたすく (@nekomimist) October 14, 2018 しばらくはHelixで満足していたのだが1、親指まわりにキーがもうちょっと多いと活用できるのではないかとはずっと思っていたので、COVID-19のせいで家に籠っていたGW中に物色して、最終的にはErgo Dashを買った。 Ergo Dashとか作ってみようかな…… — いずみたすく (@nekomimist) May 25, 2020 ErgoDashできた。キー配置はまだ試行錯誤中 pic.twitter.com/VBnZabGGE5 — いずみたすく (@nekomimist) June 5, 2020 途中でキーキャップをMDA Big Bang Custom VersionからMT3 susuwatariに変えたり、親指まわりの配置を変えたりして、これもまあ満足して使っていた。 だが、ふと気付いた。親指まわりのキーを増やすためにErgo Dashを作ったのに、親指を十分に活用できていない。俺の親指はそんなに器用ではなかったのだ。ついでにErgoDashでHelixより増えた最内列のキーも活用できていない。せっかくのErgoDashの利点を活かせていないではないか……。 そこで、自分が欲しいキーボードが何なのかを、もう一度考えてみた。 Ortholinearが◎。Column Staggeredは○、Row Staggeredは△。 片手でPINを打ちたいので数字キー列は欲しい。 独立したカーソルキーが欲しい。横1列が○。凸は○〜△。 Enterが大きめであってほしい。(HelixでもErgoDashでも上の’によく誤爆した) 変換/無変換に独立キーを与えられるといいが、なくても許す 親指キーはHelixより1コだけ多ければ十分 ところが、サリチル酸氏の自作キーボードの選び方など眺めつつ、探しても該当するキーボードは見付からなかったのだった。 (つづく) 今でも会社はHelixのままなので、Helixには今なお十分に満足している ↩︎

November 22, 2020 · 1 min · 59 words · nekomimist