カテゴリー別アーカイブ: kicad

KiCadの情報源メモ

この記事はQiitaのKiCad Advent Calendar 2015の17日目です。
←16日目(kinichiroさん)・17日目・18日目(starfort-jpさん)→

すみません、全く画像がない非常に地味な内容です。

KiCadに関する情報源は色々あると思いますが、今回は私がよく参照させてもらっているサイトを紹介します。「これを抜かしたらモグリだ」1というようなサイトがあったらぜひ教えてください。

静的な情報源は、KiCadを使う上で基礎となるサイト(と本)です。頭からお尻まで精読しないまでも、全体を流し読みしておくだけで基礎力がアップします。特にKiCad公式ドキュメントをこの夏に読む機会を得られたことは収穫でした。

動的な情報源は、回転寿司のように目の前をいろんな話題が流れてい行くので、お茶を飲みながらプラプラ見て回るだけでKiCadに詳しくなった気になれます。

マニアックな情報源は、KiCadを使う上で特に役立つということは ありません 。でも、バグらしきものに気がついてしまったり2、この夏から秋にかけての「新しいKiCadはいつ出る?」という時には欠かせません。

静的な情報源

KiCad公式ドキュメント 日本語ほか
説明するまでもありませんがKiCad 4.0のドキュメントです。オリジナルと翻訳ともGitHubで管理されているので、間違いを見つかたらPullRequestで指摘できます。
一人で始めるプリント基板作り(SP No.127) 日本語
この本(+ CERNがサポートというニュース)でKiCadを使い始めました。KiCad 4.0が公開された今となっては一部操作など異なっている部分は有りますが、Webより全体の流れをつかみやすくて今でも役に立つと思います。
KiCad.jp Wiki 日本語
一通り見ておくと、問題にぶつかった時に「そんなことが書かれていたな」となり、無駄に悩まなくてすみます。特に過去に出た質問には助けられます。
KiCad Scripting Reference Manual 英語
Pythonスクリプトのドキュメントってこれだけ?
KiCAD pcbnew scripting 英語
Pythonスクリプトを実際に書くときには、こっちのリファレンスのほうが重要そう。
Kicad/FAQ 英語
そんなのもあるってことで。

動的な情報源

kicad.jp –Twitter 日本語
KiCadに関するツイートを ボットかと思うような早さ でリツイートする(ボット?)ので、フォローしているだけでKiCadに詳しくなれます。誰かが困ってることをツイートすると、解決策を提示しているのをよく見かけます。
KiCad.info Forums 英語
KiCadの使い方・機能に関するフォーラム。他人の困りごとは蜜の味。見ているだけでそんなことができるのかと頭でっかちになれます。Twitter(@ContextualElec)をフォローしていると、新規投稿のタイトルをチェックできます。
kicad-users 英語
KiCadユーザのYahoo!グループ。私はたまに見るている程度です。
Questions for KiCad 英語
KiCadプロジェクトへの質問と問題報告。新しいメッセージは少ない。

この他に日本語でのメーリングリストがあるのですが、現在の所ネット上にアーカイブが公開されていません。

マニアックな情報源

kicad-developers team mailing list archive 英語
タイトルのようにKiCad開発のメーリングリストです。
kicad-lib-committers team mailing list archive 英語
KiCadの部品とフットプリントのコミッターを主としたメーリングリストです。
KiCad bugs 英語
KiCad本体のバグ報告です。
~kicad-product-committers/kicad/product 英語
KiCadのコミット記録です。ほとんど修正のコミットですが、KiCadがどんどん改善されているのが見えて面白いです。
  1. 「モグリ」って21世紀では死語でしょうか。

  2. バグ報告でKiCadをより良く – Qiita KiCad Advent Calendar 2015の11日目

KiCadのBOM出力プラグイン書いてみた

この記事はQiitaのKiCad Advent Calendar 2015の8日目です。

←7日目(kinichiroさん)
・8日目・9日目(starfort-jpさん)→

KiCad 4.0では、プラグインを使用してBOMを出力するようになりました。この変更によりユーザがプラグインを作成してBOMの内容を簡単に変更できるようになりました。

ネットを見回すと、BOM情報を元にDigi-KeyMOUSERなどの情報を参照してコストを計算するプラグインKiCostなどが有ります。

ここまでの高機能は必要ありませんが、部品の発注(買い物)と実装を少しだけ便利にするBOMプラグインを書いて使っています。標準のBOM出力プラグインに毛が生えた程度の簡単なものですが、自分ではとても楽をできている気がします。

ここではプラグインと言ってもただのフィルタープログラムで、「こんなだったらもっと便利なのを作れるぞ」という切っ掛けにしてもらえたらと思います。

プラグインを作成する言語

KiCadのディレクトリを見ると、CSV形式のBOMファイルを出力するためのプラグインなど何種類かのプログラムが標準で添付されています1。これらのプラグインは全てXSLTで書かれていて、私には理解不能です。

そこで基本に戻ってKiCadのドキュメントを参照すると、次のように書かれておりXMLファイルを読めればどの言語で書いても良いことがわかりました。

中間ネットリストファイルに後処理のフィルタリングをすることで、部品表 (BOM) ファイルのような他形式のファイルを生成できます。この変換はテキストからテキストへの変換なので、この後処理フィルタは、Python や XSLT など、入力として XML を扱える処理系で記述できます。

KiCadの標準的なスクリプト言語はPythonですが片言しか話せないので、今回はRubyを使用してプラグインを作成しました。

中間ネットリストファイルの構造

中間ネットリストファイルは、普通のXMLファイルです2。この大まかな構造は、次のように5つの大きなエレメントからなっています。

<?xml version="1.0" encoding="utf-8"?>
<export version="D">
  <design>
    ...
  </design>
  <components>
     <comp ref="P1">
      <value>CONN_4</value>
      <libsource lib="conn" part="CONN_4"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E2141</tstamp>
    </comp>
    ...
  </components>
  <libparts>
    ...
  </libparts>
  <libraries>
    ...
  </libraries>
  <nets>
    ...
  </nets>
</export>

BOMファイルの出力に必要な部分は、主に<components>エレメントです。この中に部品のリファレンスや値が入っています。<libparts>エレメントには部品の説明などが入っているので、詳しい説明入りのBOMファイルを作成するなどに使えそうです。

プラグインを書いてみた

今回は単純に<components>エレメントの情報を使って部品の注文(買い物)と実装を少しだけ便利にするBOMプラグインを書いてみました。

部品の注文には、部品名と個数が必要です。そこで注文用には同じ部品を数え上げて、部品ごとの個数をBOMファイルに出力するようにしました。

注文(買い物)用のBOM。部品と必要数を表にしています。
注文(買い物)用のBOM。部品と必要数を表にしています。

部品を実装する時に多くの方は同じ部品、例えば1kの抵抗を5つとかまとめて実装しているのではないでしょうか。そこでリファレンスの番号に関係なく同じ値の部品でグループを作るようにソートしてBOMファイルに出力するようにしました。

実装用のBOM。リファレンス順でなく、同じ部品がグループを作るように並べています。
実装用のBOM。リファレンス順でなく、同じ部品がグループを作るように並べています。

実装用と注文用のBOMファイルをCSV形式で個別に書き出しても良いのですが、結局表示するときにはExcelを使用するので一つのExcelファイル内で別シートとして書き出すようにしました。Excel形式での書き出しにはaxlsxライブラリを使用しました。

こうして書き上げたプラグインはGistで公開しているbom2excel.rbを参照してください。

プラグインのインストールとBOM出力

今回書いたプラグインは外部ライブラリーを使用しているので次のコマンドで必要な外部ライブラリー(axlsx)をインストールしておきます。

sudo gem install axlsx

プラグインを使用するには、KiCadにプラグインを登録します。

  1. Eeschemaを起動してBOMアイコンをクリックする。
  2. Add Pluginボタンをクリックしてプラグインを選択する。
  3. Command line欄を次のように編集する。
/???/bom2excel.rb "%I" "%O.xlsx"

???の部分はプラグインを置いてある場所に依存して変わります。

EeschemaのBOMアイコンをクリックすると表示されるダイアログ。ここでプラグインの登録とBOMの作成を行います。
EeschemaのBOMアイコンをクリックすると表示されるダイアログ。ここでプラグインの登録とBOMの作成を行います。

これでプラグインがKiCadに登録されたので、GenerateボタンをクリックするとBOMファイルがプロジェクトディレクトリ内に作成されます。

こんな簡単なプラグインですが、このBOMリストで部品の買い物と実装がだいぶ楽になりました。ただ実装するときにも必要な部品の個数が必要なのと、買い物の時にあまり馴染みのないリファレンスのプレフィックスだと「何だったかな?」となるので名前で表示するように今後のPythonの勉強を兼ねて改良したいと考えています。

最後に

このようにKiCad 4.0では、慣れた言語で自由にBOM作成プラグインを作成できるようになりました。私の作成したプラグインは非常に簡単なものですが、今後KiCostのようにより便利なプラグインがたくさん出てくることを期待しています。

脚注と参照

  1. Linux版ではプラグインが/usr/lib/kicad/pluginsに、WindowsではC:\Program Files\KiCad\bin\pluginsに有ります。

  2. 中間ネットリストファイルの構造 – Eeschema

UbuntuにKiCad 4.0をインストール

KiCad 4.0はUbuntuの標準パッケージには含まれていないのでPPAからインストールする。

KiCadは、Ubuntu 14.04と15.04の標準パッケージに登録されています。ただしこのパッケージのKiCadは、まもなく公開される予定の版に比べてかなり古い版です。そのためまもなく公開されるというKiCad 4.0で使用できる便利な機能がいろいろ使えません1

これからKiCadをUbuntuで使用するのであれば、KiCad 4.0をPPAからインストールすることをオススメします。また今月末に公開予定のUbuntu 15.10では、KiCadが標準パッケージに含まれなくなったかもしれません2。これが間違いでないとすると、Ubuntu 15.10(wily)でKiCadを使うにはPPAからインストールするしか選択肢はありません。

まだリリース前で動作が不安定かもと思われがちですが、約一年開発版を使い続けてきた感じでは確かにちょっと不安定になったことも有りますが要所要所で保存操作を忘れなければ得られるメリットのほうが大きかったです。

KiCad 4.0のインストール

KiCad 4.0のインストールには、ソースからビルドする方法とPPAからパッケージをインストールする方法の二通りが有ります。ここでは最初にPPAを使ったインストール方法を説明します。普通はこの方法で十分ですが、オプション設定を変えたい場合に必要なソースからビルドする方法も説明します。

KiCad 4.0をPPAからインストール

KiCadのPPAパッケージには、PPA for KiCad daily buildsを使用します。

インストールする方法は次のとおりです。

# 4.0のリリース版をインストールするとき。
$ sudo add-apt-repository ppa:js-reynaud/kicad-4

or

# 開発版(daily build)をインストールするとき。
$ sudo add-apt-repository ppa:js-reynaud/ppa-kicad

# 以下は4.0でも開発版でも共通
$ sudo apt-get update
# メニュー等を日本度で表示するためには、kicadだけでなくkicad-locale-jaも必要。
$ sudo apt-get install kicad kicad-locale-ja

必要な環境変数も自動で設定されるはずですが、一応確認しておきます。

$ env | grep KIGITHUB
KIGITHUB=https://github.com/KiCad

KiCad 4.0をソースからインストール

KiCad 4.0をソースからインストールすることも簡単ですが、ソースファイルのダウンロードとコンパイルに非常に時間がかかります。そのことを覚悟してとりかかる必要が有ります。

ソースからインストールすると言ってもインストール用のスクリプトが用意されているので、それを実行するだけです。

  1. インストールスクリプトをダウンロードする。
  2. (オプション)インストールスクリプトのオプション設定を変更する。
  3. インストールスクリプトを実行する3。このスクリプトを実行するだけで、ソースファイルのダウンロードからコンパイルとインストールまで自動的に実行されます。
    $ sh kicad-install.sh --install-or-update
    

    途中必要なパッケージやKiCadの各プログラムをインストールするために管理者権限が必要になるので、sudoによるパスワードの入力が求められます。

参照

  1. KiCad 4.0で加わった便利な機能を使うにはOpenGLが必須ですが、cairo表示を使うことで少しもっさりとはしますが同じ機能を使用することができます。

  2. Ubuntuパッケージの検索検索結果にUbuntu 15.10(wily)向けのkicadパッケージが見つかりません。kicad を名前に含むパッケージ

  3. バージョン管理システムからソースを持ってくるので、ソースを全く持っていない最初は特にソースのダウンロードに時間がかかります。

Githubに公開されているKiCadのフットプリントを使用する方法

フットプリントライブラリにGithubレポジトリURLを指定することで、公開フットプリントライブラリをKiCadから直接使用できる。

KiCad 4.0のフットプリントはパッケージに含めて配布するのでなく、Githubで公開されているライブラリをアクセスするようになりました。その結果パッケージのアップデートに関係なく常に最新のライブラリを使用できます1

またGithubを直接アクセスできるようになったので、公開されている自作ライブラリーもダウンロードすること無く直接使用できるようになりました。これでライブラリーを管理する手間が大幅に削減できます。

ここではGithubで公開されている自作フットプリントライブラリをKiCadで使用する方法を説明します。

公開フットプリントライブラリのURLを設定

公開フットプリントライブラリを使用するには、その場所をKiCadに教える必要があります。そのための設定方法は次のようになります。

  1. フットプリントエディタを起動する。
  2. 設定メニューの「フットプリントライブラリの管理」を選択して「PCBライブラリ一覧」ダイアログを開く。
  3. 使用したい公開フットプリントライブラリをこのプロジェクトだけで使いたいのか、他のプロジェクトでも使用したいかに応じて「プロジェクト固有のライブラリ」と「グローバルライブラリ」のタブを選択する。
  4. 「ライブラリの追加」ボタンをクリックする2
  5. 追加された欄に次の表のように指定する。
  6. 「OK」ボタンをクリックして「PCBライブラリ一覧」ダイアログを閉じる。
別名(ニックネーム) ライブラリのパス プラグインの種類 オプション 説明
識別できる好きな名前。ここの設定内容は、ライブラリーを選択するときに使用されます3 公開フットプリントライブラリのレポジトリのURL4。環境変数を参照することも可能です。 Github 空欄または別名と同様に簡単な説明。

github-lib-setup

フットプリントエディタで設定方法を説明しましたが、基板エディタ(Pcbnew)やコンポーネントとフットプリントを結びつけるCvpcbからもこれと同様に設定できます。

公開フットプリントライブラリを使用できるか確認

設定した公開フットプリントライブラリを認識できているかフットプリントビューアで確認してみます。

  1. 基板エディタ(Pcbnew)やフットプリントエディタのアイコンメニューからICに虫眼鏡の「フットプリントビューアを開く」をクリックする。footprint-viewer-icon
  2. 一番左のカラムから追加した公開フットプリントライブラリを選択する。
  3. 右隣のカラムに登録されているフットプリントの一覧が表示されたらOKです。この時にGithubにアクセスするので表示されるまで多少時間がかかることがあります。
  4. 登録されているフットプリントを選ぶと、その内容が表示されます。

footprint-viewer

Githubのフットプリントライブラリを修正可能に

KiCadはGithubレポジトリを操作できないので、Githubにあるフットプリントライブラリは読み込み専用となります。

しかし修正したフットプリントをローカルに保存するオプションを有効にすると、Githubのフットプリントを修正できるようになります。この時修正されたフットプリントはオプションで指定した手元のフォルダ(ディレクトリ)に保存され、Githubの内容より優先的に使用されます。

オプションで指定するフォルダは空でも問題ありませんが、Githubのレポジトリからクローンしてきたフォルダを指定すると、変更内容を簡単にGithubに反映できます。

たとえ自分がレポジトリに書き込み権限があっても同じです。その変わり変更内容をローカルに保存してGithubの内容より優先して使用させることができます。

Githubのフットプリントライブラリを修正可能にするには、オプションを次のように指定します。

  1. 上の「公開フットプリントライブラリをURLを設定」と同じく「PCBライブラリ一覧」ダイアログを開く。
  2. 「発見されたライブラリの一覧」から修正可能にしたいライブラリを選択する。
  3. 「オプション」ボタンをクリックする。
  4. 「追加するオプションの選択」から「allow_pretty_writing_to_this_dir」を選択して「選択したオプションの追加」ボタンをクリックする。
  5. プラグイン設定で「allow_pretty_writing_to_this_dir」の定数に修正したフットプリントを保存するフォルダ(ディレクトリ)を入力する。このフォルダの名前は、KiCadのルールに従い*.prettyにする必要があります。
  6. 「OK」をクリックして設定したオプションを保存する。

github-lib-option

参照

  1. デメリットとしては、Githubにアクセスするのでネット接続が必須になったことと、フットプリント一覧の取得に少し時間がかかることです。このデメリットを回避するためにフットプリントライブラリをダウンロードして使用することも可能です。

  2. 「ウイザードを使用して追加」でも良さそうですが、ユーザが公開しているレポジトリには使用できないようです。

  3. 表示される名前の順番はここでの位置ではなく、名前をASCIIコード順に並べたものになります。すなわち数字で始まるもの、アルファベットの大文字で始まるもの、小文字で始まるものという順番です。

  4. レポジトリの直下ではなくサブディレクトリにフットプリントが置かれていることがありますが、その場合もライブラリのパスにはレポジトリのURLを設定します。

KiCad 4.0でのBOMファイル作成方法

KiCad 4.0でBOMファイルを作成するには、XMLファイルを変換するプログラムのインストールと設定が必要です。設定が済んでしまえばBOMアイコンをクリックしてダイアログを開き、変換プログラムを選択して生成ボタンを押すだけです。

先日RCが公開されたKiCad 4.0は、これまでの安定版から色々な点で変更されています。ここで紹介するBOM(Bill of Materials、部品表)の作成方法もこれまでとは変わっています。

これまでの安定ではKiCad自身がBOMファイルを作成していましたが、4.0以降はKiCadが作成するXMLファイルを他のプログラムで変換してBOMを作成します。そのため柔軟性が増し、CSV形式の単純なファイルを作成するだけでなくDigi-Keyなどの通販サイトを参照して自動的にコストを計算する変換プログラムkicostなどが作成されています。

ここでは単純に部品をリストアップしたCSV形式のBOMファイルの作成方法について説明します。

CSV形式のBOMファイル作成

CSV形式のBOMファイルは、KiCadが作成するXMLファイルをユーザが指定したプログラムで変換して作成します。そのためBOMファイルを作成するにはXMLファイルを変換するプログラムを事前にインストールしておき、それをKiCadから呼び出せるようにする設定が必要です。

変換プログラム(プラグイン)のインストール

Windowsの場合は、XMLファイルをCSV形式のBOMファイルに変換するプログラム(bom2csv.xsl)と、このXSLプログラムを実行するエンジン(xsltproc)の両方共配布パッケージに含まれています。そのためインストール作業は特に必要ありません。

Windows版に含まれるxsltprocは、BOMファイルを作成しようとするとエラーになって作成できないことがあります。これに対するworkaroundを最後に書いておきます。現在はRC1の段階ですので、公開までには修正されると思います。

ただしUbuntuの場合はXSLプログラムのみが配布され、それを実行するエンジンはパッケージに含まれていません。そこでエンジン(xsltproc)を、次のコマンドでインストールします。

sudo apt-get install xsltproc

KiCad(Eeschema)の設定

必要なプログラムをインストールしたら、KiCadの回路設計プログラム(Eeschema)から呼び出せるように設定します。

設定の手順は、次のようになります。

  1. 回路設計プログラムのBOMアイコンをクリックしてBOMファイル作成ダイアログを表示させる。BOM_dialog
  2. 「プラグインの追加」をクリックして、XMLファイルを変換するプログラム(bom2csv.xsl)を選択する。このプログラムは、Windowsでは C:\Program Files\KiCad\lib\kicad\plugins に、Ubuntuでは /usr/lib/kicad/plugins にあります。Select_plugin
  3. プラグインを選択すると、プラグイン欄に表示す名前を聞かれるので、入力して「OK」をクリックする。プラグイン名は、後で修正することも可能です。

これで設定は終了です。

変換するコマンドは、コマンドライン欄に表示されています。必要であればこれを修正します。

xsltproc -o "%O.csv" "C:\Program Files\KiCad\lib\kicad\plugins\bom2csv.xsl" "%I"

ここで%Iは、BOMファイルの元となるKiCadが作成するXMLファイル名に置換されます。作成されるBOMは、-oで指定されたファイルに書き込まれます。%Oは、%Iから拡張子を除いた部分ですので、CSV形式のファイルだと分かるように拡張子を加えています。

”“(ダブルクォーテーション)はなくてもたいてい問題ありませんが、パスやファイル名に空白があった時でも正しく一つの引数と認識させるためにダブルクォーテーションで囲ってあります。

BOMファイルの作成

一度設定してしまえば、BOMファイルの作成は簡単です。

BOMファイルの作成に使う変換プログラムをプラグイン欄から選択して、「生成」ボタンをクリックするとBOMファイルが作成されます。%Oは、それぞれのプロジェクトフォルダのパスを含んでいるので、基本的にプロジェクトフォルダにBOMファイルが作成されます。

Windows版RC1に付属のxsltprocが使えない問題のworkaround

現在配布されているKiCad 4.0のRC1に含まれるxsltprocは、BOMファイルを作成しようとすると次のエラーがプラグイン情報欄に表示されBOMファイルを作成できないことがあります。

コマンドラインで実行:
xsltproc -o "C:/Program Files/KiCad/share/kicad/demos/pic_programmer/pic_programmer" "C:/Program Files/KiCad/lib/kicad/plugins/bom2csv.xsl" "C:/Program Files/KiCad/share/kicad/demos/pic_programmer/pic_programmer.xml"

コマンドエラー. リターンコード 11

エラーメッセージ:
I/O error : Invalid argument
I/O error : Invalid argument

回避策

この問題の回避策には、次の3つの方法があります。

  1. プロジェクトのパスと名前を変更する12
  2. xsltprocと異なる変換エンジンを使用する3
  3. xsltprocを置き換える4

プロジェクトのパスと名前を変更する

Windows版に付属のxsltprocがエラーになるのは、プロジェクトのパスと名前に空白が含まれる場合です。空白が含まれても良いようにダブルクオーテーションで%Oと%Iを囲っているのですが、上手く機能しないようです。

そこでプロジェクトのパスに空白が含まれる場合は、プロジェクトフォルダーをパスに空白が含まれない場所に移動させます。プロジェクト名に空白が有る場合は、名前から空白を取り除きます。

xsltprocと異なる変換エンジンを使用する

ダブルクオーテーションで囲まれた空白入りのパスと名前を上手く扱えないのは、Windowsの問題ではなくアプリケーションに問題が有るようです。そこで上手く扱える別のXSL変換エンジンをxsltprocに変えて使用します。

変換エンジンにはいくつかありますが、インストールが簡単なSaxonHEを使用します。

  1. ネイティブ版SaxonHEをダウンロードする。ダウンロードページに紛らわしい広告が表示されるので注意。
  2. ダウンロードした自己解凍ファイルを実行してをSaxonHEをインストールする。
  3. コマンドライン欄のxsltprocを次のように修正する。

    “C:\Program Files\Saxonica\SaxonHE9.6N\bin\Transform.exe” -t “%I” -xsl:”C:\Program Files\KiCad\lib\kicad\plugins\bom2csv.xsl” -o:”%O.csv”

BOMファイルの作成方法は、xsltprocの時と同じです。

参照