KiCAD で基板を設計して、PCBgogoに注文するまで

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58667/ed8c1373-8562-d0a9-6e03-064ff3dc11f9.jpeg" width="75%">

## はじめに

２０年以上前ですが、プロテル社のＣＡＤツールを個人で購入して、基板を作っていました。
※オートルーターも使っていました、数十万単位で投資したと思います。
その当時は、ソフト５０、ハード５０くらいでしたが、最近はソフトが９５、ハードが５くらいになり、
ワンチップマイコンを使うようになって、趣味でユニバーサル基板にちょっとしたハードを組むくらいです。

プロテルのソフトは、WindowsNT 時代のもので、Windows10 で動かすには問題があり、現在は使っていません。
※知り合いの会社では、古い Windows マシンを保持していて、現在でも古いプロテルを使って基板を作っています。

しかし時代は変わり、現在では、オープンソースのツールで何でも出来る時代で、海外の基板屋を使う事で、信じられないコストで基板を作る事が出来ます。
オートルーターも、十分な機能と品質があり、これを自由に使える事に驚愕します。

今回、KiCAD を使い、簡単な基板（両面基板）を制作、PCBgogo に発注するまでの流れと、要点をまとめてみました。

## 全体の流れ

以前にプロテルで基板を作った事があるので、作業手順は十分判っています、特に問題もなく KiCAD を使う事ができました。
ただ、「この機能は何処にあるのか」とか、「このような事をしたい場合どうするのか？」といった疑問が起こり、都度、ネットで調べて取り入れました。

KiCAD の作業フローは基本的に、一般的な基板製造ソフトの流れを継承していて、呼び方が違うとか、作業フローが異なるとかその程度です、ほとんどの機能は既にあり、現在でも機能追加と改良が行われています。
また、色々な基本動作が統合され、リアルタイムに反映するので、判りやすく、迷う事が少ないです。
当然、気に入らない部分もありますが、オープンソースでこれだけ出来れば十分です。
※気に入らない部分は、運用で何とでもなり、改善の余地があるのなら、本家に協力する事も出来ます。
WEB 版の基板フレームワークもありますが、KiCAD は機能も充実しているし、ネット接続しないと使えないアプリとは勝負にならないでしょう。

回路関係のリソースは、Github で管理して、MacBook と Windows10 のマシンで共有しましたが、何と使い心地が良い事か～

作業の流れは以下のようなものです。

- プロジェクトを始める
- 回路図入力（回路図レイアウトエディター）
- 足りない部品を作成（シンボルライブラリ）
- 部品番号割り当て（回路図をアノテーション）
- 各部品へ、footprint 紐付（実際の部品形状）
- 足りない footprint を作成
- ネットリストを生成
- 基板設計（ PCB レイアウトエディター）
- ネットリストを読み込ませ部品配置（手動）
- 重要なトラック（電源ライン）を手動で引く
- オートルーターで自動配線
- デザインルールチェック
- デザインルールチェックでエラーが出た部分などを修正
- 気に入らない部分を修正
- 「プロット」で製造ファイル（ガーバーデータ、ドリルファイル）を作成し、zip で固める
- PCBgogo に zip ファイルをアップロード
- 郵送方法を選択して、到着を待ちます

※デザインルールでエラーが出るのは、グリッドの設定が適切では無い場合等と思います。

今回、写真の基板、二種類（小さい方が１０枚、大きい方５枚）を作成しました、合計２７ドル（送料１７ドル）でした。
※出図してから６日くらいで届きました。
※送料が高いですが、国際郵便を使えば、時間はかかりますが、低く抑える事が出来ます。

最大の難関で時間のかかる作業は、部品配置でしょうか？

## 回路図レイアウトエディター

プロテル、OrCAD などと比べて、多少異なりますが、サクサク回路入力出来ます。
※マウスでの操作性は（慣れもあり）イマイチな部分もあるので、キーボードで操作する方が便利な場合もあります。
個々で工夫する必要がありますが、１時間も操作すれば大体の事は理解して使えるようになります。
※動画での操作を観れば、理解が早まります。

大きな回路の場合は、ブロック毎にモジュール化して、階層構造で管理するのが便利です。
※階層構造にする場合、操作の流れが、一般的な回路図エディターと微妙に異なり、多少違和感があります。
この機能を使う前に、簡単な実験回路などで、動作の概略を掴んでおくと良いと思います。

- 無理して１枚の図面に回路を押し込む事に時間を割く事は無益だと思います。
- モジュール化して複数の図面で管理する方が、効率が良く間違いが少ないです。
- 「グリッド」の概念について十分な理解が必要です。

部品ライブラリは、標準状態でも、かなり多くの部品があり、あまり困りませんが、シンボルが判り難かったり、
大きすぎだったり、デザインが気に入らないとか、秋月で売ってる部品が無かったりでしょうか？
最大の要因は、回路図にした場合の見た目や、部品の呼称に違和感があるなどです。

- 良く使う部品をまとめて、「俺俺ライブラリ」を作っておくと便利かもしれません。（自分はそうしてます）
- 部品を新規に作って、加えるのは、とても簡単です。
- ネットで探せば、自分の欲しい部品を github などで公開している場合もあります。
- プロジェクトのパスに、自分ライブラリのパスを加えておきます。
- 標準の部品は基本的にリードオンリーなので、改造する場合、単体でコピーして別ライブラリにします。
- footprint のリンクは、後で一括して入れる事も出来るので、この段階では、あまり考えなくても良さそうです。
- 回路図の見た目を気にしなければ、ピン番号との辻褄が合っていればいいので、箱を作り、必要なピンを植えるだけです。
- また、ピン番号は、footprint と関係しているので、多少注意する必要があります。
- FET やトランジスタ、ダイオードなど、ピンの呼称が、番号では無い場合、footprint との相性があります。
- オペアンプなど、一つのパッケージに複数のモジュールが入っている場合などの原理は、事前に十分理解しておく必要があります。
- 何か疑問が起こったら、ネットの記事を探すか、簡単なプロジェクトで実験を行うのが良さそうです。

## シンボルライブラリ

新規シンボル（部品）を作るハードルは低く、時間さえあれば、いくらでも凝った（見た目）部品を作る事が出来ます。

参考：
インサーネットのトランス入りコネクタです。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58667/d4a5de7e-6425-18ae-71b7-05428b389165.png" width="50%">

- 各ピンには、属性を付けられます。
- 適当でも構いませんが、オートルーター、シュミレーター、その他で、活用できると思うので、適切に選んで作っておくと後々良いかもしれません。
- 部品には、部品メーカーの URL を入れる事も出来るし、標準の footprint を選択する事も出来ます。
- 通常、回路図に部品を置いた後に、部品を修正したら、その修正は、回路図エディターに戻ると反映されています。
- ピンの位置が異なるような場合、配線をやり直す必要があります。
- 部品を作る際、他の人が作った部品を参考にしたり、回路を引く時に都合がいいようにピンを配置しておく事が重要です。
- 実際の部品に近いシンボルを作る事で、回路図の段階で、基板の状態をイメージしやすくする事も出来ます。

## 部品番号割り当て

通常、部品番号の割り当ては「自動」で行いますが、自動で割り付ける方法が気に入らない場合は、手動でも行え。
一部は手動で、他を自動で行う事も出来ます。
かなり柔軟に出来るので、何度か試してみると良いです。

エクセルのようなアイコンがあり、これは「シンボルフィールドを編集」機能で、抜けた footprint などを設定出来ます。
この段階で、標準とは異なる footprint がある場合、新規に作成して割り当てておく必要があります。

標準の footprint は、表面実装部品は豊富ですが、リード部品系には、足りない印象です。

## ネットリスト生成

全ての部品に footprint を設定したら、ネットリストを作成します。
※ボタンを押すだけ。

ここまでが回路図の作成段階で、以降は、基板の設計過程になります。

## ネットリストを読み込ませ部品配置（手動）

PCB を起動して、先ほど生成したネットリストを読み込ませます。
最初、部品は、自動で、配置されます。

ここで、部品を配置していきますが、これが一番難易度が高く、ノウハウのいる作業で、経験が必要です。

ノイズ、伝搬遅延、電流容量、シールド、インピーダンスなど広範囲な知識が必要です。
ブレッドボードでしか回路を組んだ事が無い程度だと、動かない（動作が不安定な）基板を作ってしまう場合もあります。
良かれと思ってやった事が、逆に「悪かった」というような場合もあり、なかなか「こうすれば良い」と言い切れません。

これは、経験して学習するしか無いのですが、基板製造にかかるコストは大した事無いので、あまり深く考える必要は無いかもしれません。

- 個々の配線が最短で繋がるように配慮する。
- 必要十分な太さの電源ラインが引けるように配置する。
- 微小な入力ラインがある場合、他の影響をより少なくするように部品を配置する。
- 電源の入り口と全体の構成
- 電源のバイパスコンデンサを適切な位置に配置（バイパスコンデンサが「効く」箇所と「効かない」場所がある。
 
※色々な、トレードオフがあり、何を優先にすべきか、複雑なので基本的な事だけ。

部品配置が決まったら、外形線を引きます。
※最初に外形線を引いて、その中に部品を配置するのでもかまいません。

部品配置後の誤配線に気が付き、回路図エディターで修正したら、ネットリストを作り直して、再度読み込ませます。
この場合、標準の設定では、手動で動かした部品の位置は保持（リセットしない）してくれます。

基板をネジ止めする穴：
どのやり方が正解なのかはわかりませんが、「ビア」を置いて穴径を設定する方法は明らかに間違いだと思います。
※ビアは、裏、表で電気を通すのが前提なので、単なる穴（キリ）とは異なります。
自分は、footprint エディターで、穴１個の部品を作成し、穴の属性として「NPTH（メッキ無し貫通穴）」を選択しています。
オートルーターとのやりとりで、リファレンスが同じ事が許されないので、基板に複数置いた場合は、個別にリファレンスを設定する必要があります。

KiCAD には３Ｄのビュー機能があり、完成図を立体的に確認出来ます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58667/09059a75-661b-ecf6-a976-c50c3edaf47c.png" width="75%">

## 重要なトラック（電源ライン）を手動で引く

オートルーターで、配線の設定を細かく行う事でも可能なのかもしれませんが、両面基板の場合は、
最初に電源ラインだけ引いておくのが良さそうです。

この時、トラックの太さを限界まで太くしておきます。

基本的な事として、表は縦、裏は横にトラックを通すなどの規則を設けると効率的です。
トラックの太さに応じて、ビアの大きさも調整します。

## オートルーターで自動配線

KiCADのオートルーターは別プログラムで、「Spectra DSN」形式でエクスポートします。

オートルーターでエクスポートしたファイルを読み込み、自動配線を行い、結果を PCB でインポートします。

配線の品質を確認して、もっと良くしたいと思ったら、段階を戻って、手動で配線しておきます。
※その為、オートルーターに渡す前の段階をセーブしておく必要があります。

オートルーターは「使えない」と言う人もいますが、十分な品質で配線してくれます、「使えない」と言ってる人は、
使い方が悪い（使い方や設定をあまり良く理解していない）のかもしれません。

## デザインルールチェック

一応デザインルールチェックを行います。
これで問題があった場所にはマークが付きますので、問題のある個所を修正します。

## 気に入らない部分を修正

気に入らない部分があれば、オートルーターの設定を見直したり、手動で配線を修正したり出来ます。
「気に入るまで」何度でも行う事が出来ます。

## 「プロット」で製造ファイル（ガーバーデータ、ドリルファイル）を作成し、zip で固める

元々、ガーバーファイルは、基板のトラックをフォトプロッタで描画する為のファイルです。
※昔は、一旦写真を作っていましたが、最近は、中間的な工程は省かれて直接基板のトラックを生成する為に使われます。

ドリルファイルは、基板に穴を空けるマシンが扱う位置情報や、ドリルの径などが書き込まれたファイルです。

これら必要なファイルをまとめて、ZIPで圧縮しておきます。

## PCBgogo に zip ファイルをアップロード

今回 PCBgogo を使いました、他の基板屋でも工程はそんなに違いがありません。
PCBgogo は海外のメーカーですが、日本語対応しており、郵送方法も色々選べ、価格が安いのが特徴です。

基板の品質も十分と思いました。

## あとは待つだけ

支払いが終われば、到着を待つだけです。

## 最後に

これだけ簡単に作れるのなら、ユニバーサル基板に試作する事もほぼ無くなるのかもしれません。