ライブラリ、モジュールの作成2

前回は、とりあえず「ライブラリやモジュールを作成して読み込んでみました」というところまでを実施した内容。今回は、作業効率を上げるための自分用ライブラリとそのフットプリントの作成・管理および関連付けの設定に関するメモを残す。

KiCadを使ってみた印象としては、

  1. コンポーネントとフットプリントの関連付け(CvPcb)がメンドクサイ。目的とするフットプリントを探す流れが余り洗練されてないというか使いづらい。
  2. コンポーネントやそのフットプリントが大量に用意されているが、使う部品は限られているので、自分用ライブラリとフットプリントを用意して、それ以外をアンロードしたほうが動作が速い。使う部品は随時登録して、自分用ライブラリを拡張していくイメージが良さそう。

上記を実現するためには、以下をちゃんと把握して操作できるようにする必要がある。

  • 使えるコンポーネントは既存ライブラリからコピーして自分のものにする(以前の投稿でやり方はメモした)
  • フットプリントに関しても、既存のものからコピーする(そもそもフットプリントの管理がどうなっているのか?)
  • コンポーネントとフットプリントを各エディタで作成する方法を学ぶ
  • コンポーネントとフットプリントの関連付けの設定を調査

KiCadのコンポーネントデータ構造と管理

コンポーネント自作に関する注意点として、

  • 標準データはすべて単位はインチで統一されているので、新たに作成する場合も単位はインチで作成したほうが良さそう。
  • ピンの位置は50.0mils(1.27mm)グリッドの位置に来るようにする。
    標準部品とかと並べたときに端子位置が揃っていたほうが、見た目?も良いと思うので。
  • 定数が部品名、リファレンスがその部品のインスタンスを表す。
    reference and const

部品名(定数)は、ライブラリ内の部品名として管理されるので、ユニークでないと保存時にエラーになる。また、有効になっている全ライブラリユニークになってないと、正しく選択されない。

例えば、deviceライブラリには、”R”という部品名で抵抗シンボルが登録されている。mylibライブラリ内に”R”という名称の部品を登録することは可能だが、deviceとmylibが有効になっていると、mylibの”R”を選択して回路図に作成すると、deviceの”R”が作成されるケースがあった。

優先順は不明だが、とりあえず有効にする全ライブラリでユニークにしておく必要がある。(今後このあたりに改善は入りそうではある。ちょっと不便なので)

  • リファレンスは回路図内でユニークであること。

回路図エディタの回路図のアノテーションコマンドで自動的に連番を振ることができる。重複するとnetファイル作成時などでエラーになるはず。また、リファレンスは他部品と重複してもエラーにはならいないが、上記ツールを実行すると、重複する他部品とあわせて連番になる。

annotation

コンポーネントプロパティに関して

  • キーワードは、コンポーネント選択ダイアログのフィルタでヒットさせるための文字列。スペース区切りで複数定義可能で、ここで指定した文字列をフィルタに入力すると、リストアップされる。

comp_prop1

a.libに”A”という部品を作成。キーワードに”A”と”xxx”を指定する。

comp_sel

回路図エディタで、選択ダイアログのフィルタでxxxを指定すると、確かにリストアップされる。また、説明に記述した内容が、ダイアログに表示される。

  • エイリアスは、その部品と回路図記号が同じ派生部品?をまとめて作成できる。

alias

このリストに名称を追加してライブラリを保存すると、定数が追加したエイリアスに置き換わった同一記号が自動的に作成される。下図は、記号”A”のエイリアスとして”Ax”、”Ay”、”Az”を追加したもの。
alias_browser

回路図に配置すると、ちゃんとAx、Ay、Azになる。

a_alias

  • フットプリントフィルターは、Cvpcbコマンドの回路記号とフットプリントの関連付けで、キーワードでフットプリントの絞込みオプションでフィルタするときのキーワードを指定する。

foot_keyword

詳しくは試してないが、正規表現が使えそう。*?のメタ文字が指定できる。(複数選択可能)
Rxのフィルターに”R?”を指定したときのCvpcbのフィルタ結果

rx_filter

RzのフィルターにResistor*RM*を指定したときのCvpcbのフィルタ結果

rz_filter

また、候補が1つしかない場合、コンポーネントエディタで直接フットプリントを割り付けることも可能。この場合Cvpcbを実行しなくても、フットプリントが設定された状態で基板エディタ(Pcbnew)でロードされる。下図は、抵抗Rzに”Resistors_ThroughHole:Resistor_Horizontal_RM10mm”を直接割り付けたもの。割り付けると、記号の下にフットプリント名が表示されるが、邪魔なので非表示をONにしている。

footprint_setting

symbol_footprint

この抵抗Rzを回路図に配置して、Cvpcbをスキップして、Pcbnewでネットファイルを読み込んだ状態。

pcbnew_foot

すでにコンポーネントを配置した時点で、フットプリントが設定された状態なっている為、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)の「ライブラリリスト」で追加・削除する。

pcb_library

このリストでライブラリ名とそのパスを定義して追加できる。標準で用意されているライブラリを良く見ると、パスがすべてgithubで管理されているリポジトリURLになっている。このGitHubのリポジトリを参照すると、.prettyフォルダ内に.kicad_modが複数管理されていた。

github

Resistors_ThroughHole.prettyを選択すると、kicad_modファイルがいくつか管理されている。

resistor_github

つまり指定するたびに毎回URL先からkicadmodファイルをダウンロードして、ファイルからフットプリントの幾何情報をロードして、エディタに貼り付けているというわけである。

フットプリントエディタで、Save Footprint In New Libraryを選択すると、ライブラリファイルが作成されるのではなく、「指定したディレクトリ+.pretty」というディレクトリが作成されて、その中に作成したフットプリントデータが、kicad_modファイルとして保存される。

footprint_new

pretty

sample_mod

コンポーネントはlibファイル内に保存されたので、フットプリントも同じかと思っていたが、フットプリントは名前.prettyというディレクトリで管理される。紛らわしい..

作成したライブラリディレクトリをアクティブにするためには、上記のライブラリリストでパスを追加する。自分用ライブラリもgithubリポジトリを作って登録すれば、標準ライブラリと同じような管理使い方ができそう。