見出し画像

自作キーボードをPCBから作るとなった時に私のやったことメモ(設計編)

みなさま、こんにちは。

この記事に興味を持っていただいた方はおそらくキーボードを作っている or 自作キーボードに興味がある、という方でしょうか。自作キーボード界隈は

  • お気に入りのキーボードやかわいいキーキャップを集める

  • 販売されている自作キーボードキットやパーツを購入して作る

  • PCBやケースをイチから設計して販売する

など、楽しみ方が多彩です。
自作キーボードに興味を持ってIrisを組んだのが3年前の2018年、そして本格的に自作キーボードを作り始めたのは2020年10月あたりからなのでこれを書いている時点では7ヶ月くらいです。

そんな私ですが、キーボードのPCBをイチから作ってみるぞ!と思い立ったものの「これ合ってるのかなぁ」「他の人は困ってないのかなぁ」と疑問になることがたくさんありました。自分がこうなったということはきっと他の人達も少なからずそうなっているのかもしれないと思い、「私はこうやってみました」というのを書いて公開することにしてみました。

Who?

簡単に自己紹介というかバックグラウンドを書いておきます。

  • Web界隈で情シスやサーバーサイドの仕事をしています

  • 電子工作をちゃんと学んだ経験はないです

  • オフィスにレーザーカッターがあるのでアクリル加工は得意です

そんなに特徴のないごくごく普通のエンジニアです。

PCBを作ることになったきっかけ

PCBを作ることになった前段の話を少し。
自作キーボードにはずっと興味があったものの回路図への苦手意識が強く、Irisを組んだ後はなかなか手が出せないまま時が経っていました。

本格的に自作キーボードを作り始めたのは2020年10月あたり

このきっかけはSU120という自由にレイアウトを組むことができるプロトタイプ向けのPCBに出会ったことでした。SU120をみた瞬間に「これを使えばPCBを発注しなくても自分の考えた配列のキーボード作れる!」と興奮したのを今でも覚えています。配列に合わせてケースを設計してアクリルで作りました。

画像1

ほどなくして、同僚もSU120でキーボードを作ることに興味を持ち、「一緒にキーボード作りましょうよー」と誘われ、腹をくくってPCBを作ってみることに。ここから話が始まります。

キーボード設計でやったこと

この記事ではキーボード設計でやったことを書いていきます。なお、現時点はPCBを発注したところなので完成はしていません。
やったことを列挙すると

  1. キーボードをどうやって作るかを知る

  2. キー配列を考える

  3. 回路図を作成する(Kicad)

  4. ケースを設計する(Fusion360)

ざっくりこんなところです。項目だけだと少ないようにみえるんですが、ひとつずつやっていくと覚えること、知っておくべきことがたくさんあって「自キ界隈の人たちはこれをやってのけているのか…すげぇ…」というのを肌で感じました。
あと、全体通しての感想としては勝手がわかっていないと2〜4を行ったり来たりすることになるので、自分なりのやり方やノウハウを貯めていくのがいいのかもしれません。

キーボードをどうやって作るかを知る

最初のとっかかりが何もわからん…状態って新しく始めることではよくあります。しかしながら自キ界隈にはバイブルがいくつかあるので入門の敷居がかなり低くなっていると思います(アーリーアダプターに感謝)。
私は自作キーボード設計入門というPCB作ろうと思った人はほぼ読んだであろう書籍を片手にPCBの作り方や流れを学びました。
あと、体系的にまとまった記事としてはCookpadさんのノベルティ作成の記事も参考になると思います。

また、社内にたまたまPulsarの作者がいたので困った時にいろいろ教えてもらいながらすすめることができたのはすごく助かりました。近くに有識者がいるのは心強いです。

キー配列を考える

キー配列は手元にあるホワイトボードを使ってあーでもないこーでもないと言いながらコンセプトを固めていきました。ある程度コンセプトが出てきたらキー配列といえばこれというサイトできれいに配列しました。
こんな感じ。

画像2
http://www.keyboard-layout-editor.com/#/ で作成

PCBを始めて発注するということもあって左手用の作業用パッドを作ることにしました。このサイトで配列を作っただけでキーボードが出来上がったかのような嬉しさがあってテンションあがりますよね。

回路図を作成する

回路図を作ってみるまで「回路図ってどうやって作るんだろう…難しそう…」という印象でした。使うソフトウェアは回路CADというジャンルで、バイブルでも紹介されていたKicadを使用したのですが、人間のケアすべきところが思っていた500倍は少なく「回路CADってよくできているなぁ」というのが感想でした。回路図アレルギーがある人も一度触ってみてほしいレベルでよくできていると思っています。
Kicadを使って回路図を作成するのはバイブルで丁寧に書かれているので何度か写経しました。何度か写経した理由は

  • 自分は要領を得ないタイプなので何回か繰り返しやって体で覚える

  • 回路CADは賢いので自分でやらなくていいことを理解する

  • 回路図を書くことで電子機械を知る

というのがありました。PCBの作り方がわかればいくつか作ることになると思ったのでここは本をなぞってエイヤでやるということをせずじっくりやりました。
回路図設計が一通り終わったらぜひ3DビューワーでPCBをみてください、テンションめちゃくちゃ上がります。

Kicadの使い方自体がよくわからない、バイブルの説明だけだと理解が追いつかないなどツール自体のひっかかりは山程ありました。これに関してはツールを理解するしかないというところなのでこれからチャレンジする方はKicadの使い方を覚えるしかないんだなということを踏まえながら焦らずやると気が楽になると思います。

回路図設計で困ったこと

回路図設計というよりかは回路図とケースで一致させなければいけないアウトラインについてです。PCBのアウトラインはKicadで書くことになり、今回のケース設計はFusion360で行います。つまりは

  • PCBのアウトラインをどこで決めるか

  • 決めたアウトラインをどうやり取りするか

は採用するツールや設計手法で人によって変わりそうな気がしています。アクリルでケースを作るならベクターツールでも設計はできます(SU120で組んだ時はそうしていました)し、キー配列はCAD用エクスポートしてくれるツールを使うことも出来ます。

実はここで各ツールを行ったり来たりしてすごく悩んだところではありました。たいしたプロセスはなく、ひたすらツールを行ったり来たりして自分なりのベストプラクティスを模索した感じでした。

  1. キー配列はKicadで決める

  2. Kicadでstepファイルを書き出し、Fusion360で取り込む

  3. 取り込んだPCBの3Dモデルを使ってケースの各プレートを設計

  4. PCBにネジ穴が必要になったり基板の形状を調整する時はKicad側で都度やる

  5. 修正したstepファイルを取り込んでケース設計に反映

この工程をやっているときに「PCBのアウトライン変更やネジ穴追加がケースに自動反映されたらどんなに楽か…」というのが2万回ほど頭をよぎりました。もしかするとEAGLEを使うとこれらが解消されるのかもしれないですが庶民には手が出せない価格なので、手の届くツールでベストプラクティスをこれからも模索してみます。

ケースを設計する

今まではベクターツールを使ってカットラインを書く、という愚直な設計手法だったのですがこの手法の難点が出来上がりの立体を頭で考えることになるということです。「TRRSやProMicroがプレートに干渉する」「出来上がりがアクリルを切るまでわからん」など、ベクターツールという2Dを操作する容易さのメリットを上回るデメリットがあります。すでに配布されているカットラインだったり簡単なアウトラインならいいんですが、アクリルを何層も重ねる場合やPCBのアウトラインやキー位置を正確にトレースするにはしんどいところが多いのも事実です。

ということもあり、せっかくなので3DCADで積層アクリルケースを設計することにしました。3DCADに関してもとにかく難しそうという先入観があって手が出せなかったのですが、根気よくチュートリアル読んだり写経を何回か繰り返すとポイントがみえてきました。

  • 3Dって言ってるけど基本はCAD

  • 板状のものは扱いやすい(2Dでラインを書いてそれを押し出して立体にするだけ)

  • 「拘束」という概念で正確にアウトラインを作ることが可能

スクリーンショット 2021-05-08 0.45.27
アクリルとPCBを重ねて横から見た図

設計が進むと積層具合がわかりやすくなってケース設計に集中することができるのは体験としてかなりよかったです。Fusion360自体がまだまだわかってないので一段落したら体系的に勉強したいところではあります。

最後に

いかがでしたでしょうか。
あくまでも今回の記事はいち初学者が模索した設計手法の一例という位置づけで書いたので暖かくみていただけると幸いです。
全体通して拙い部分もあったかと思いますが、初学者がひっかかりそうなところを取り上げてみたつもりなので何かの参考になればうれしいです。

記事のボリュームの関係で端折ったところもあるので反響ありましたら続きを書いてみたいと思います。

というところで今回はここまで。

この記事が気に入ったらサポートをしてみませんか?