去年の11月に途中まで書いて放置してたドラフトを発見したので、 手直しして公開しとく。

一回PCBを作ってみたいと思っていたけど、 なかなか機会がなかったのだけど、 今回やってみたので、ログに残す。

はじめに

自作キーボード界隈だと、PCBを使ってキーボードを作ってる人が多いんだけど、 キーボードなら手配線で十分かなと思ってしまったので、いままでPCBを使っていなかった。

今回、2つのブレークスルーがあったので、PCBをオーダーしてみる事にした。

1つ目は、FusionPCBで1ドルキャンペーンをやっていた事。 サイズ制限はあるものの、実質無料な値段で基板が発注できるのは大きい。 うまくいかなくてもいいから、えいやと発注してみる気になった。

2つ目は、Blockeyキーボードを見た事、前にキーボードのPCBを作ろうとした時は、 例え分割式のであっても、単価が安い分類の大きさに収める事ができなくなっていた。 両辺が10cm以下なら一番安くなるが、6キー横に並べると1キーあたり19mmでは114mmになってしまう。 ところが、Blockeyだとタクトスイッチを使っているので横に12キーがおさまる。 これはいける。

何を作るか

1ドルキャンペーンでは3枚の同じPCBが作られるとの事だが、 同じ物を3つ作ってもあまり嬉しくない。 そこで1つの基板で複数の物を作れるようにしたい。 また、1ドルキャンペーンの終わりが近かったので、 細かい回路を検討する暇はない。

そこで、今回は次のような物を作る事にした。

  • タクトスイッチを並べたキーボードを用意する。前回の結果を踏まえ3行12桁。
  • MCUまわりの配線は基板上でやらず、手配線にする。そのため、大きいユニバーサルエリアを用意する。 RaspberryPiを直結するとすると、最低でも1辺が20穴いる。
  • 画面がついたデバイスと、画面なしのデバイスを両方作れるようにする。そのため半分で基板を割れるようにする。

この基板で次のような物が作れる目論見だ。

  • RaspberryPiをメインにした、Angband用端末。
  • 上半分だけを使って、AVRをメインにしたArduboy互換機。
  • 下半分だけを使って、ミニキーボード

設計

例によって、KiCadを使う事にした。無料だし。

世の中的には、もうKiCad5が出ているみたいだけど、 Debianのパッケージに入っているというだけで、KiCad 4.0.7を使った。

とりあえず、タクトスイッチは並べて、ダイオードはつけて、回路を作った。 次に基板に変換。

回路図 ガーバーデータ

スイッチを傾けた方がかわいい感じになるかと思ったんだけど、 任意の角度に回転する方法がよくわからなかった。 識者によるとPythonで処理を書かないといけないらしいので、今回はパス。

自動ルーティングしたかったんだけど、freerouteの結果は思ったようにならなかったので、こちらも今回はパス。

ユニバーサルエリアのためには、穴のあいたmesurementpointを並べるのが良いと聞いたので、 並べてみる。 ただし、kicadの自動並べ機能は壊れていて、重複したIDがふられてしまうので、 この機能を使うとfreerouteが一切使えなくなる。

タクトスイッチは4本足だけど、スイッチなので2セットに分けてあって、 しかも内部で繋がっているので、ジャンパとして使えるはずなのだけど、 kicadは同じ足同士も繋がってないと回路エラーになる。 エラーを無視するのも心配だったので、 今回は無駄に配線してある。

基板を切り離したいので、切りかきをいれた。 コネクタにしてる部分を切り離し部分に配置して、 半分に割ると両方に残るようにしたんだけど、 あとで組み立てる時に、端子のパターンが取れた。 きちんと両方の基板にコネクタをつけるべきだったと思う。

まとめ

基板を発注してみました。

できてきた基板