前回は、とりあえず「ライブラリやモジュールを作成して読み込んでみました」というところまでを実施した内容。今回は、作業効率を上げるための自分用ライブラリ
とそのフットプリント
の作成・管理および関連付けの設定に関するメモを残す。
KiCadを使ってみた印象としては、
- コンポーネントとフットプリントの関連付け(CvPcb)がメンドクサイ。目的とするフットプリントを探す流れが余り洗練されてないというか使いづらい。
- コンポーネントやそのフットプリントが大量に用意されているが、使う部品は限られているので、自分用ライブラリとフットプリントを用意して、それ以外をアンロードしたほうが動作が速い。使う部品は随時登録して、自分用ライブラリを拡張していくイメージが良さそう。
上記を実現するためには、以下をちゃんと把握して操作できるようにする必要がある。
- 使えるコンポーネントは既存ライブラリからコピーして自分のものにする(以前の投稿でやり方はメモした)
- フットプリントに関しても、既存のものからコピーする(そもそもフットプリントの管理がどうなっているのか?)
- コンポーネントとフットプリントを各エディタで作成する方法を学ぶ
- コンポーネントとフットプリントの関連付けの設定を調査
KiCadのコンポーネントデータ構造と管理
コンポーネント自作に関する注意点として、
- 標準データはすべて単位は
インチ
で統一されているので、新たに作成する場合も単位はインチで作成したほうが良さそう。 - ピンの位置は
50.0mils(1.27mm)
グリッドの位置に来るようにする。
標準部品とかと並べたときに端子位置が揃っていたほうが、見た目?も良いと思うので。
部品名(定数)
は、ライブラリ内の部品名として管理されるので、ユニーク
でないと保存時にエラーになる。また、有効になっている全ライブラリ
でユニーク
になってないと、正しく選択されない。
例えば、deviceライブラリには、”R”という部品名で抵抗シンボルが登録されている。mylibライブラリ内に”R”という名称の部品を登録することは可能だが、deviceとmylibが有効になっていると、mylibの”R”を選択して回路図に作成すると、deviceの”R”が作成されるケースがあった。
優先順は不明だが、とりあえず有効にする全ライブラリでユニークにしておく必要がある。(今後このあたりに改善は入りそうではある。ちょっと不便なので)
リファレンス
は回路図内でユニークであること。
回路図エディタの回路図のアノテーション
コマンドで自動的に連番を振ることができる。重複するとnetファイル作成時などでエラーになるはず。また、リファレンスは他部品と重複してもエラーにはならいないが、上記ツールを実行すると、重複する他部品とあわせて連番になる。
コンポーネントプロパティに関して
キーワード
は、コンポーネント選択ダイアログのフィルタ
でヒットさせるための文字列。スペース区切りで複数定義可能で、ここで指定した文字列をフィルタに入力すると、リストアップされる。
a.libに”A”という部品を作成。キーワードに”A”と”xxx”を指定する。
回路図エディタで、選択ダイアログのフィルタでxxx
を指定すると、確かにリストアップされる。また、説明
に記述した内容が、ダイアログに表示される。
エイリアス
は、その部品と回路図記号が同じ派生部品?をまとめて作成できる。
このリストに名称を追加してライブラリを保存すると、定数
が追加したエイリアスに置き換わった同一記号が自動的に作成される。下図は、記号”A”のエイリアスとして”Ax”、”Ay”、”Az”を追加したもの。
回路図に配置すると、ちゃんとAx、Ay、Azになる。
フットプリントフィルター
は、Cvpcbコマンドの回路記号とフットプリントの関連付けで、キーワードでフットプリントの絞込み
オプションでフィルタするときのキーワードを指定する。
詳しくは試してないが、正規表現が使えそう。*
や?
のメタ文字が指定できる。(複数選択可能)
Rxのフィルターに”R?”を指定したときのCvpcbのフィルタ結果
RzのフィルターにResistor*RM*
を指定したときのCvpcbのフィルタ結果
また、候補が1つしかない場合、コンポーネントエディタで直接フットプリントを割り付ける
ことも可能。この場合Cvpcbを実行しなくても、フットプリントが設定された状態で基板エディタ(Pcbnew)でロードされる。下図は、抵抗Rzに”Resistors_ThroughHole:Resistor_Horizontal_RM10mm”を直接割り付けたもの。割り付けると、記号の下にフットプリント名が表示されるが、邪魔なので非表示をONにしている。
この抵抗Rzを回路図に配置して、Cvpcbをスキップして、Pcbnewでネットファイルを読み込んだ状態。
すでにコンポーネントを配置した時点で、フットプリントが設定された状態なっている為、netファイルをロードした時点でフットプリントが表示される。
KiCadのフットプリントデータ構造と管理
- フットプリントデータは
.kicad_mod
ファイルである。
昔は.modファイルだったようだが、変更されている。ファイルはASCII形式でエディタで開くと図形データの幾何情報が定義されている。
(module Res (layer F.Cu) (tedit 54C72ED1)
(fp_text reference Res (at 0 -3.81) (layer F.SilkS)
(effects (font (thickness 0.3048)))
)
(fp_text value VAL** (at 0 3.81) (layer F.SilkS)
(effects (font (thickness 0.3048)))
)
(fp_line (start -6.35 0) (end -7.62 0) (layer F.SilkS) (width 0.381))
(fp_line (start 6.35 0) (end 7.62 0) (layer F.SilkS) (width 0.381))
(fp_line (start -6.35 -2.54) (end 6.35 -2.54) (layer F.SilkS) (width 0.381))
:
- フットプリントのライブラリ管理は基板エディタ(Pcbnew)の「ライブラリリスト」で追加・削除する。
このリストでライブラリ名とそのパスを定義して追加できる。標準で用意されているライブラリを良く見ると、パスがすべてgithubで管理されているリポジトリURLになっている。このGitHubのリポジトリを参照すると、.prettyフォルダ
内に.kicad_mod
が複数管理されていた。
Resistors_ThroughHole.pretty
を選択すると、kicad_modファイルがいくつか管理されている。
つまり指定するたびに毎回URL先からkicadmodファイルをダウンロードして、ファイルからフットプリントの幾何情報をロードして、エディタに貼り付けているというわけである。
フットプリントエディタで、Save Footprint In New Library
を選択すると、ライブラリファイルが作成されるのではなく、「指定したディレクトリ+.pretty
」というディレクトリが作成されて、その中に作成したフットプリントデータが、kicad_modファイルとして保存される。
コンポーネントはlibファイル内に保存されたので、フットプリントも同じかと思っていたが、フットプリントは名前.pretty
というディレクトリで管理される。紛らわしい..
作成したライブラリディレクトリをアクティブにするためには、上記のライブラリリスト
でパスを追加する。自分用ライブラリもgithubリポジトリを作って登録すれば、標準ライブラリと同じような管理使い方ができそう。