【小ネタ】KiCadのシンボルはどのようにできているかgitを使って確認してみた

久しぶりにKiCad使いました。以前から気になっていたシンボルのことを調査してみました。
2022.07.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちはCX事業本部Delivery部のさかじです。
今期から部が変わりました。引き続きIoT関係の業務を担当していきます。

環境

  • Windows10
  • KiCad 5.1.10

はじめに

弊社のハードウェア作成プロジェクトではKiCadのデータをGitHubで管理しています。

KiCadはテキストファイルで構成されていますので比較しやすくわかりやすいgitを使用して、シンボルの内容も簡単に確認してみたいという好奇心と少し試したいことがありましたので試してみました。

シンボルを作ってみる

空の環境をコミット

シンボルエディターを開き「新規ライブラリー」を作成します。 以下のようにファイルができました。これから一つひとつ比較していきたいので一旦コミットします。

$ git status
On branch feature/kicad_library
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        sym-lib-table
        test_Library.dcm
        test_Library.lib

nothing added to commit but untracked files present (use "git add" to track)

$ git add sym-lib-table test_Library.dcm test_Library.lib
$ git commit -m "add new symble library"

シンボルを作る

新しいシンボルを作成します。シンボルライブラリーは先程作成したライブラリーを選択します。

まずはコネクターを作ってみます。
コネクタを作る

プロパティはこのようにしました。
コネクタを作る(詳細)

部品ができました。ファイルの内容を確認したいので枠などは追記せずシンプルに作成しました。 出来たコネクタ

空の状態とシンボルを作った状態を比較

シンボルエディターを保存しまして、gitで差分を見てみます。

$ git status
On branch feature/kicad_library
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   test_Library.lib

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        test_Library.bck

no changes added to commit (use "git add" and/or "git commit -a")

$ git diff
diff --git a/kicad_library_text/lib_test/test_Library.lib b/kicad_library_text/lib_test/test_Library.lib
index a41a90e..af66b23 100644
--- a/kicad_library_text/lib_test/test_Library.lib
+++ b/kicad_library_text/lib_test/test_Library.lib
@@ -1,4 +1,16 @@
 EESchema-LIBRARY Version 2.4
 #encoding utf-8
 #
+# test-connector-1
+#
+DEF test-connector-1 J 0 40 Y Y 1 F N
+F0 "J" 0 0 50 H V C CNN
+F1 "test-connector-1" 0 100 50 H V C CNN
+F2 "" 0 0 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+DRAW
+X 1 1 -50 -150 100 R 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
 #End Library

実際のファイルを見てみます。

EESchema-LIBRARY Version 2.4
#encoding utf-8
#
# test-connector-1
#
DEF test-connector-1 J 0 40 Y Y 1 F N
F0 "J" 0 0 50 H V C CNN
F1 "test-connector-1" 0 100 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
X 1 1 -50 -150 100 R 50 50 1 1 P
ENDDRAW
ENDDEF
#
#End Library

先程作成したシンボルをコミットします。

$ git add test_Library.lib
$ git commit -m "add connector-1"

ピンを増やして比較してみる

ピン1本から2本へ増やしたコネクタを再度保存します。

ピンを増やす

差分を比較します。

$ git status
On branch feature/kicad_library
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   test_Library.lib

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        test_Library.bck

no changes added to commit (use "git add" and/or "git commit -a")
$ git diff
diff --git a/kicad_library_text/lib_test/test_Library.lib b/kicad_library_text/lib_test/test_Library.lib
index af66b23..8044aa3 100644
--- a/kicad_library_text/lib_test/test_Library.lib
+++ b/kicad_library_text/lib_test/test_Library.lib
@@ -10,6 +10,7 @@ F2 "" 0 0 50 H I C CNN
 F3 "" 0 0 50 H I C CNN
 DRAW
 X 1 1 -50 -150 100 R 50 50 1 1 P
+X 2 2 -50 -250 100 R 50 50 1 1 P
 ENDDRAW
 ENDDEF
 #

2番目のピンの追加すると、座標等とともに追加されるようです。

手でファイルを書き換えてみた

テキスト管理ですので、試しにテキストエディタで3番目のピンを増やしてみます。

X 3 3 -50 -350 100 R 50 50 1 1 P

一度シンボルエディターを閉じて、再度開きます。
ファイルを書き換えてピンを増やす

想定通りピンが増えました。
推奨される方法では無い可能性がありますので、実際回路を作成する際には気をつけてお試しください。

ピンテーブルを使ってみた

ピンを、通常より手間を減らして増やす方法があります。

"編集" - "ピンテーブル"を選択するとピンの一覧が出てきます。 ピンテーブル

適当に3, 4ピンを追加します
ピンテーブルで増やしてみた

"OK"を押すと追加したピンが追加されます。

参考サイト

最後に

ピンテーブル機能はこのブログを書くまで知らず、50ピンぐらい手動で追加したことがありました。小ネタのつもりでしたが、私にとっては非常に良い学びがありました。