KiCadのファイルをgitで管理するとどのように見えるか確認してみた

KiCadを使えるようになり、ソフト開発と同様に履歴も管理したくなりましたのでgitで管理できるか確認してみました。
2021.11.10

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

こんにちはCX事業本部IoT事業部のさかじです。

組み込みソフトウェアを開発するにはハードウェアを扱いますので、回路図が読めると理解度が増します。また、手書きでも回路図を書いておくと、後日ソフトを見直すときでもどのような接続かどうかなどが回路図から読み取ることができます。

回路図CADを使えなかった私は、簡単な回路は手で書いて残していました。

時を経て回路図CADでかけるようになりましたので、ソフト開発と同様に履歴も管理したくなりましたのでgitで管理するとどのように見えるかを確認しました。

環境

  • Windows10
  • KiCad 5.1.10

リポジトリ作成

$ git init

空のプロジェクトを作成

KiCadで適当なプロジェクトを作成します。今回は led というプロジェクトを作成して何も回路を作成していない状態です。

作成されたフォルダを見てみると

$ ls -l
total 0
-rwxrwxrwx 1 sakag sakag  51 Nov  1 13:46 led.kicad_pcb
-rwxrwxrwx 1 sakag sakag 688 May  1  2021 led.pro
-rwxrwxrwx 1 sakag sakag  72 Nov  1 13:46 led.sch

これ等のファイルをコミットしていきます。

$ git add led.kicad_pcb led.pro led.sch
$ git commit -m "1st commit"
[master (root-commit) xxxxx] 1st commit
 3 files changed, 38 insertions(+)
 create mode 100644 led/led.kicad_pcb
 create mode 100644 led/led.pro
 create mode 100644 led/led.sch

簡単な回路を作成して違いを見る

簡単に回路を作成してみます。

LED点灯回路

変更点を見てみます。

$ ls -l
total 8
-rwxrwxrwx 1 sakag sakag 1590 Nov  1 15:05 led-cache.lib
-rwxrwxrwx 1 sakag sakag   51 Nov  1 13:46 led.kicad_pcb
-rwxrwxrwx 1 sakag sakag  688 May  1  2021 led.pro
-rwxrwxrwx 1 sakag sakag 1724 Nov  1 15:05 led.sch
-rwxrwxrwx 1 sakag sakag   72 Nov  1 13:46 led.sch-bak

$ git status
On branch master
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:   led.sch

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        led-cache.lib
        led.sch-bak

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

led.schファイルが変更され、led-cache.lib, led.sch-bak ができました。
led.sch-bakはバックアップファイルなので無視します。
led.schled-cache.lebを見ると各部品の座標や情報がテキストで入っていることが確認できます。

$ git diff
diff --git a/led/led.sch b/led/led.sch
index fff8c68..8edd90e 100644
--- a/led/led.sch
+++ b/led/led.sch
@@ -1,4 +1,83 @@
-EESchema Schematic File Version 2
-EELAYER 25 0
-EELAYER END
-$EndSCHEMATC
+EESchema Schematic File Version 4
+EELAYER 30 0
+EELAYER END
+$Descr A4 11693 8268
+encoding utf-8
+Sheet 1 1

以下省略

変更があったファイルと追加されたファイルをコミット

$ git add led/led.sch led/led-cache.lib
$ git commit -m "add LED"
[master c75e8fb] add LED
 2 files changed, 160 insertions(+), 4 deletions(-)
 create mode 100644 led/led-cache.lib
 rewrite led/led.sch (65%)

最後に

KiCadのファイルはテキストファイルですのでgitで管理すると変更点もわかりやすいですね。 プライベートでも業務でも簡単な回路でも回路図CADへ入力して履歴管理行くと便利そうです。

我々の開発では、回路図作成はプログラムと違って同時に操作することがほぼないので、この状態でリモートリポジトリへ保存することでチームメンバとのやり取りも楽です。