エフェクター自作のKiCadの手癖

-----

:christmas_tree: [KiCad Advent Calendar 2015](http://qiita.com/advent-calendar/2015/kicad) の15日目は [masahirosuzuka](http://qiita.com/masahirosuzuka) さんでした。
この記事は16日目の投稿です。

-----

# はじめに
エフェクターのプリント基板をKiCadで作ろうと思い立ってはみたものの、CADなんて使うのは初めてで何をどうすればいいのか分からない、なんてことはないでしょうか？

操作方法はマニュアルを見ればなんとなく分かった気になるのに、いざエフェクターの回路図を手元に置いてKiCadに向かうと、どう入力すればいいのか私は途方にくれました。

今だにプリント基板CADを使う上での常識とか定石が分かっているわけではありませんが、試行錯誤の結果、KiCadの自分なりの使い方が出来てきました。

我流なので万人にお勧めできるものではないのかもしれませんが、同じように途惑っている人のヒントになればうれしいなと考えましてエフェクター自作の時の私のKiCadの手癖について書いてみました。

**[独り言]**
- この記事は KiCad 4.0.0 安定版を Windows7 で使いながら書きました。今の最新の安定版は 4.0.1 になっています。
- 私が KiCad を使い始めたのは前の安定版 bzr4022 からです。
- この文書は使い方を教えるための文書としては書かれていません。
そのあたりは、KiCad のヘルプメニューから参照できる「KiCad ことはじめ（俗称 チュートリアル、英名 Getting Started in KiCad）」とか soburi さんの[「KiCadで雑に基板を作るチュートリアル」](http://www.slideshare.net/soburi/kicad-53622272) をご参照下さい。
- 以下、KiCadの流儀に合わせて、回路図の部品はコンポーネント、プリント基板の部品はフットプリント、と記述するようにしています。

# eeschema の手癖

## エフェクターの回路図のどこを入力するの？
エフェクターの回路図を見ると、入出力の標準ジャック、電池と電池スナップとDCジャック、エフェクトON時のLED、3PDTフットスイッチで実現するトゥルーバイパスの配線まできちんと書かれてるのですが、筐体の方につける部品を回路図に描いてしまうと、pcbnewでその部品が現れてきてしまうという問題があるわけで、KiCad的にはこれは一体どうするの？と結構悩みました。

エフェクターはどれも配線図で表現すると下図のようになっています。
![wiring_diagram.png](https://qiita-image-store.s3.amazonaws.com/0/103043/fc3358ac-c485-0d1b-0244-32c00ffcbdd2.png)
プリント基板の外で結線する部品は決まっているわけで、それらはKiCadには入力しない方が上で述べたようなことで悩まなくてすむ、というのに気付きました。

例えば、入出力ジャックの所はこんな風に CONN_01X01 を置いています。
![20151211-01.PNG](https://qiita-image-store.s3.amazonaws.com/0/103043/ca88bc61-ecb4-906a-b2da-3bb139dccefc.png)

ということで、プリント基板の上に置きたい部分だけを回路図に描くというのが私の手癖です。

**[独り言]**
- トゥルーバイパスはこの方法でいいんですが、たまにあるバッファードバイパスのとかは個別に検討する必要があります。

## エフェクターの回路図で使える部品はどれ？
KiCadのライブラリにはコンポーネントが多すぎて(喜ばしいことなんでしょうが)、エフェクターを作りたいだけの私にはどれを使ってよいか分かりませんでした。
特に悩んだのが入力と出力の部分のコンポーネントで、最終的に「ピンが１つのものなら何でもいいんだ」と気付くまでえらく時間が掛かりました。
以下の表はエフェクターを作る時に私が使うコンポーネントの手癖です。

|部品名|コンポーネント|フットプリント
|:----------|:----------|:----------
|入力など|CONN_01X01|Wire_Pads:SolderWirePad_single_1mmDrill
|抵抗器|R|Discret:R3
|フィルム コンデンサ|C|Capacitors_ThroughHole:C_Rect_L7_W2_P5
|セラミック コンデンサ|C|Capacitors_ThroughHole:C_Disc_D3_P2.5
|電解コンデンサ|CP|Capacitors_ThroughHole:C_Radial_D5_L11_P2.5
|ダイオード|D|Discret:D3
|可変抵抗器|POT|Potentiometers:Potentiometer_WirePads
|半固定抵抗器|POT|Discret:RV2
|オペアンプ(dual)|TL072 等|Housings_DIP:DIP-8_W7.62mm
|オペアンプ(quad)|TL074 等|Housings_DIP:DIP-14_W7.62mm
|トランジスタ(NPN, ECB)|Q_NPN_ECB|TO_SOT_Packages_THT:TO-92_Inline_Wide
|トランジスタ(NPN, EBC)|Q_NPN_EBC|TO_SOT_Packages_THT:TO-92_Inline_Wide
|J-FET(NPT, SGD)|Q_NJFET_SGD|TO_SOT_Packages_THT:TO-92_Inline_Wide
|VCC|VCC|なし
|GND|GND|なし
|電源フラグ|PWR_FLAG|なし
|ジャンパ線|JUMPER|Wire_Connections_Bridges:WireConnection_0.80mmDrill

トランジスタはピンの出方毎にコンポーネントがあります。
NPNトランジスタでも、2SC1815ならECB、2n3904ならEBC、となります。
FETも同じように、ピンの出方毎にコンポーネントがあります。
2SK30A だとSGDなので表に書いた Q_NJFET_SGD が合います。

この表は、回路図描き終わった後、cvpcb で割り当てるフットプリントの手癖でもあります。

**[独り言]**
- MN3207とかCA3080みたいな特殊なICはコンポーネントのライブラリにないので自分で作る必要があります。

## eeschema はどんな風に操作するの？
KiCadはマウスで操作するよりも、ホットキーで操作した方が効率が良いと思います。
最初、よく分からなくてマウスばかり使ってましたが、ホットキーを覚えてから操作がスムーズになりました。
以下の10の操作は最もよく使う私の eeschema の手癖です。

1. コンポーネントを選ぼう：'**a**' でダイアログが現れます
1. コンポーネントを置こう：'**Enter**'
1. リファレンス設定しよう：コンポーネント上で '**u**'
1. 定数設定しよう：コンポーネント上で '**v**'
1. コンポーネントを回転しよう：コンポーネント上で '**r**'
1. コンポーネントを移動しよう：コンポーネント上で '**g**'
1. コンポーネントを削除しよう：コンポーネント上で '**Delete**'
1. ズームイン：中心にしたい辺りにマウスを置いて '**F1**'
1. ズームアウト：中心にしたい辺りにマウスを置いて '**F2**'
1. 全体を表示：'**Home**'

そして、普通のカーソルキーに戻るには 'Esc' キーです。
範囲選択してても、何かのモードに入っていても 'Esc' キーで普通のカーソルキーの状態に戻ります。
とりあえず何か始める時は 'Esc' キーを叩くのも手癖です。

**[独り言]**
- リファレンスがR1で値が10Kの抵抗を一つ置くなら、
   a → "R" → Enter  → カーソルキーで位置決めして → Enter 
   → u → "R1" → Enter → v → "10K" → Enter 
   のようなキー入力でできるわけですね。
- メニューの右側に書かれてるのはアクセラレータ キー、'?' で一覧が見られるのがホットキーです。ホットキーは現在カーソルがある位置で機能がいきなり有効になります。例えば配線のホットキー 'w' は叩くといきなりカーソルのある位置から配線が始まります。配線のアクセラレータ キー 'Shift + w' は配線モードになるだけで配線は始まりません。

## デュアルのオペアンプの2番目はどうすれば使えるの？
オペアンプの上で '**e**' と叩いてコンポーネントプロパティのダイアログの左上の **ユニット** をBにすると2番目のに切り替えられる、というのがなかなか分かりませんでした。
![20151214-01.png](https://qiita-image-store.s3.amazonaws.com/0/103043/167539b5-a860-fbe4-697e-db83b3088710.png)

**[独り言]**
- 同じリファレンスのデュアルのオペアンプのユニットAにVCCとGNDを配線しておけば、ユニットBのVCCとGNDは配線しなくてもよいです。後述の未接続マークもつけてはいけません。ユニットAでの配線で配線が完了していると見なされるからです。

## 接続のないピンはほっといていいの？
ERC掛けると「ピンは接続されていません」とか言われるので、**青の×の未接続マーク**をつけるよう癖をつけましょう。
![20151214-02.png](https://qiita-image-store.s3.amazonaws.com/0/103043/1c6dae8d-5273-4098-10c2-b0d063c012e2.png)

## ERC掛けて「このピンを駆動するピンがありません」と言われないようにするには？
どこか一箇所ずつ、+9V(VCC)とGNDに **PWR_FLAG** というコンポーネントを付けておく、というのを手癖にするとこのメッセージに出会わなくなります。
![20151214-03.png](https://qiita-image-store.s3.amazonaws.com/0/103043/c1c9dcc8-1d0d-9273-9f12-4a3784d59eb5.png)

## 回路図を描き終わったらどうするの？
cvpcbでコンポーネントにフットプリントを割り当てて、ネットリストを出力してeeschemaでの作業は完了です。ここには特に手癖はないです。

**[独り言]**
- フットプリントを割り当てるのを等価ファイル(.equ)で自動的にできるようになったようですが、個人的にはcvpcbを使うのが好みです。

# pcbnew の手癖

## pcbnew 使う前にどんな設定しておくの？
デフォルトのままですけど、単位は mm 、グリッドは 1.27mm(50 mils) が使い易いです。
![20151211-05.PNG](https://qiita-image-store.s3.amazonaws.com/0/103043/53490b50-0b47-fd17-9b4e-8ade5d71440e.png)

デザインルールもネットクラスエディタはデフォルトのまま使ってます。
![20151211-06.PNG](https://qiita-image-store.s3.amazonaws.com/0/103043/a9f820df-a626-134f-a6ca-17f31680abaa.png)

デザインルールのグローバルデザインルールは、カスタム配線幅で 2.0mm が使えるように追加します。
![20151211-07.PNG](https://qiita-image-store.s3.amazonaws.com/0/103043/184daf4a-a6d3-3fe7-54e6-cf4d73681232.png)

## pcbnew はどんな風に操作するの？
pcbnew もやっぱり操作はホットキーです。
以下の7の操作は最もよく使う私の pcbnew の手癖です。

1. フットプリントをリファレンス指定で取る：'**t**' の後リファレンス入力してリターン
1. フットプリントを置こう：'**Enter**'
1. フットプリントを回転しよう：フットプリント上で '**r**'
1. フットプリントを移動しよう：フットプリント上で '**g**'
1. ズームイン：中心にしたい辺りにマウスを置いて '**F1**'
1. ズームアウト：中心にしたい辺りにマウスを置いて '**F2**'
1. 全体を表示：'**Home**'

eeschema と同様、普通のカーソルキーに戻るには 'Esc' キーです。

**[独り言]**
- ホットキーはKiCadの中で割と共通になっていて、ズームイン、ズームアウト、全体を表示とかはどのプログラムでもF1とF2とHomeです。なので覚え始めると早いです。

## プリント基板はどんな風に設計するの？
これがホントに分からなくて試行錯誤しました。
私は手動で配線したいので、自動配線(オートルーター)は使いません。

### 何から始めればよい？
eeschemaで出力したネットリストを読み込む所から全ては始まります。回路図とプリント基板はKiCadの中ではネットリストで連携されているわけですね。

### フットプリントの配置はどうする？
回路図を見ながら、ピンの多いフットプリントとその周辺から配置をしていってます。
ホットキー '**t**' を使ってリファレンス指定で配置したいフットプリントを取ってくるのが手癖になってます。
![20151211-08.PNG](https://qiita-image-store.s3.amazonaws.com/0/103043/e3747f50-0189-2048-b9ff-64a10a0b79b0.png)
'**t**' と打って、IC1とか入力してリターンキー叩くと、指定したリファレンスのフットプリントが手元にパシッと飛んでくる感じがいいです。

**[独り言]**
- もちろん "フットプリントモード" にして "全てのフットプリントを展開" してから並べなおすのでもいいと思います。
  ![20151214-05.png](https://qiita-image-store.s3.amazonaws.com/0/103043/2aac2573-1b86-40a4-7911-3e0b57ec0a90.png)
- フットプリントの配置も最初は何をどう置いたらいいのやら？でしたが、オペアンプ等のICとそのピンに直結してる抵抗やコンデンサあたりから配置し始めるとまとまりやすいように思います。
- できるだけラッツネスト(繋げる所を示している白い線)が交差しないように配置を考えるようにしてます。
- 2.54mm(100mils)の碁盤の目を自分で決めて、その上にパッドが載るように配置するときれいだと思います。ユニバーサル基板に部品を載せるのと同じ感じです。

### 配線はどうする？
配置ができたら、'**PgDn**' を押してレイヤを B.Cu にして配線します。
私は太い配線が好きなので2.0mmの線幅にするのが手癖になってます。
![20151211-09.PNG](https://qiita-image-store.s3.amazonaws.com/0/103043/54edcb7a-4f4b-2e3c-c47c-19a5fc14a6d6.png)

**[独り言]**
- 私は片面だけで配線するつもりなのですが、両面に配線するのなら 表面の配線レイヤの F.Cu にも配線すればよいです。
- 配線も、配置の時に決めた 2.54mm(100mils)の碁盤の目に沿って行うようにしてます。線幅が 2.0mm なのでそのようにしかできないです。パッドの間に配線を通したりもしません。

### ジャンパ線はどうする？
配線していて、どうしても裏面だけでは配線しきれなくて、表面にジャンパ線を通したくなったらどうしましょう。
以下は私のジャンパ線の手癖です。

まず eeschema に戻って、ジャンパ線を配置したい箇所に JUMPER を配置してます。下図はGNDを繋ぐためのジャンパ線のイメージです。
![20151211-14.PNG](https://qiita-image-store.s3.amazonaws.com/0/103043/65c96df9-2e99-767e-8273-67525a1d9b77.png)

JUMPER には Wire_Connections_Bridges:WireConnection_0.80mmDrill をフットプリントとして割り当てて、保存してからネットリストを再出力します。

pcbnew に戻ってきて、"フットプリントの交換" を "変更" に設定してネットリストを再読み込みするとジャンパ線用のパッドが追加されます。
![20151211-15.PNG](https://qiita-image-store.s3.amazonaws.com/0/103043/1243e375-e162-409e-8880-59f637adaf5e.png)

この２つのパッドをジャンパ線を出したい所に **パッドを移動** を使って移動して配置し F.Cu レイヤに配線します。
![20151211-16.PNG](https://qiita-image-store.s3.amazonaws.com/0/103043/27769bfa-6d29-5058-f154-80270a8c57ff.png)

**[独り言]**
- ジャンパ線はめんどくさいので極力使わないで済むよう配線を考えます。
- 両面基板にして基板製造会社に製造を任せるなら、ジャンパ線なんか追加したりせず素直に F.Cu レイヤで配線すればよいです。

### 外形線はどう引く？
レイヤを Edge.Cuts にして図形ラインで線を引く訳ですが、一般的にはフットプリント配置したり配線したりする前に、一番最初に外形線を引いているのですかね。配置と配線が終わってから外形線引くのは私の手癖です。ひょっとすると悪い手癖なのかもしれません。

![20151215-01.png](https://qiita-image-store.s3.amazonaws.com/0/103043/f7c56acd-8019-ba42-4e45-571758845ad2.png)

**[独り言]**
- 最初の頃、配線と外形線でレイヤを分けないといけない、というのが分かってませんでした。配線のレイヤ、部品の外形を描くレイヤ、ドリル穴のレイヤ、のようにプリント基板のCADは分けるようになってるんですね。レイヤ毎に製造ファイルとして出力するからでしょうね。Edge.Cuts レイヤにしてから外形線を引くという当たり前のことに辿り着くのに時間が掛かりました。

### ベタGNDってどうするの？
右ツールバーの'**塗りつぶしゾーンを追加**'でGNDのベタを作ります。外形線と同じ形に、目一杯のベタGNDにするのが私の手癖です。

![20151215-02.png](https://qiita-image-store.s3.amazonaws.com/0/103043/b8fd2b8e-e2d4-6d37-ba8a-cd4d826c8112.png)

GNDは配線しないで、ベタでGNDを接続させるようにした方がサーマルリリーフがきれいに出るという話も聞くので、その方がよいのかもしれません。
上の図はGND配線せずにゾーン塗りつぶしでGND結線した例になってます。
例えば、左下のGNDのパッドのサーマルリリーフがきれいに出てるのが分かります。

**[独り言]**
- 最初、このゾーンの塗りつぶしという機能があるのを知らなかったので、GNDをベタにしたいところを配線で塗りつぶしてました。知らないということは恐ろしいものです。なので私は初心者の人がKiCadでどんなことをしてても笑えません。

## リファレンスや定数の位置合わせ？
R1とかC1とかのリファレンスを多少動かして見映え良くするようにしてます。基本的にはそのフットプリントの枠内にパッドに掛からないように配置するのが良いと思います。IN、OUT、+9V、GNDはパッドだけなので、パッドの近所に他のフットプリントの邪魔にならないように配置します。
定数も位置合わせして見やすくしてます。

![20151215-04.png](https://qiita-image-store.s3.amazonaws.com/0/103043/bd5ea15e-0d2c-5476-89a7-fddb338787ee.png)
左が表示で ”リファレンス” だけにした図で、右が ”値” だけにした図です。
この図では文字を見やすくするために B.Cu レイヤも非表示にしています。

**[独り言]**
- こういう図が出力できると雑誌の製作記事みたいでテンション上がります。

## プリント基板のパターンを印刷するには？
私はエフェクターのプリント基板は、紙フェノールのを買ってきてトナーをアイロン転写してエッチングして作ってます。

アイロン転写するパターンを印刷するのですが、印刷ダイアログからCubePDFとかを指定してPDFで出力しても下図のようになぜか思うように出力されません。
![20151211-12.PNG](https://qiita-image-store.s3.amazonaws.com/0/103043/bab1dfaa-0b49-f9be-fe22-6b25d679b4b2.png)

Windows限定ですが、Microsoft XPS Document Writer にすると .xps できれいに出力してくれる、というのが私の手癖です。
![20151211-13.PNG](https://qiita-image-store.s3.amazonaws.com/0/103043/0bd3756b-b47f-d644-05f5-3c7a7d105f39.png)

**[独り言]**
- PDFにしたければ .xps をPDF変換すればよいです。CubePDFとかを使うとJPGとかにも変換できます。

## 基板製造会社にオーダーするには？
私はまだやったことがないんですが、KiCadで設計していれば基板製造会社にオーダーする時に送らないといけない製造ファイル（ガーバーファイル、ドリルファイル、等）を "ファイル" -> "プロット" から簡単に出力できます。

また出力した製造ファイルを KiCad の Gerbview で表示して、正しく出力されているかをチェックすることもできます。

**[独り言]**
- いつか基板製造会社にオーダーしたいとは思ってますが、同じ基板を何枚も必要とすることがなくて、ついつい一枚だけ手作りしてしまいます。

# まとめ
エフェクターのプリント基板を作るために、KiCadを使えるようになろうと暗中模索してた時のことを思い出しながら書いてみました。
まがりなりにも使えるようになってみると、あの時は何が分からなかったのか思い出せなくなってます。

触り始めのKiCadと格闘してた頃、分からないことばかりなのになぜ投げ出さなかったのかというと、完成予想図のように基板を3D表示してくれるのが励みになってたような気がしてます。
![20151215-03.png](https://qiita-image-store.s3.amazonaws.com/0/103043/536e821c-4f91-274b-a614-ea9b8196f7d8.png)
めげそうになった人は配線の途中でも3D表示してみて、「出来上がったらこんな風になるぞ、カッコイイ！」としてみればいいと思うのです。

エフェクター自作が目的の人は、ユニバーサル基板や製作記事のプリント基板パターンで間に合わせることが多いと思いますので、まあKiCadとかに手を出すことはないと思うのですが、万が一そういう人がいたら参考になればいいなあと思って書きました。

-----

以上、[KiCad Advent Calendar 2015](http://qiita.com/advent-calendar/2015/kicad) の16日目の投稿でした。
17日目は [nosu_Z](http://qiita.com/nosu_Z) さんです。お楽しみに :laughing: 

-----