KiCadデータをKiCad-Diffを使ってデータを比較してみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちはCX事業本部IoT事業部のさかじです。
PCBの比較を簡単にできないだろうかと考えてKiCad-Diffを見つけました。環境構築が簡単かなと思いチャレンジしたところ、事前準備が大変でしたのでブログにまとめました。
環境
- Windows10
- Ubuntu(WSL)
前提条件
- PowerShellでWSLのLinuxディストリビューション
> wsl --list Linux 用 Windows サブシステム ディストリビューション: Debian (既定) Ubuntu > wsl --list --verbose NAME STATE VERSION * Debian Running 2 Ubuntu Stopped 2
- Ubuntuバージョン
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.4 LTS Release: 20.04 Codename: focal
- Pythonバージョン
$ python3 --version Python 3.8.10
環境構築
Windows10とWSL上のUbuntuへツール類をインストールします。混乱しますが気をつけて実施します。
[Ubuntu] KiCadインストール
sudo add-apt-repository --yes ppa: ppa:kicad/kicad-5.1-releases sudo apt update sudo apt install --install-recommends kicad
[Ubuntu] KiCad-Diff必要ライブラリインストール
$ git clone git@github.com:Gasman2014/KiCad-Diff.git $ cd KiCad-Diff $ pip3 install -r requirements.txt
[Ubuntu] Tknterインストール
$ sudo apt install python3-tk
[Windows10] VcXsv Windows X Serverのインストールと設定
TknterはGUIプログラムを動かすライブラリです。Tknter単体では動作しませんのでGUIの動作できるように環境を整えます。
- ダウンロード
https://sourceforge.net/projects/vcxsrv/ -
インストーラー起動して必要なチェックボックスをクリックして "Next"をクリック

-
インストール先を選択して"Install"をクリック
表示されているパスはデフォルトです。

-
"close"をクリックしてインストール終了

-
スタートメニューからXLaunchを起動

-
"Multiple windows"を選択して"次へ"をクリック

-
"Start no client"を選択して"次へをクリック

-
"Additional parameters for VcXsrv"へ
-acを入力して"次へ"をクリック
-
"完了” をクリック

-
タスクバーにある数値を確認
今回は:0.0
[Ubuntu] 環境変数設定
~/.bash_profileへ環境変数追加
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0
.bash_profileを読み込み
$ source ~/.bash_profile
[Ubuntu] Tkinterの起動確認
以下のコマンドをUbuntu上で実行してダイアログが表示されることを確認
$ python3 -m tkinter

[Ubuntu] KiCad-Diffのパス登録
README.mdには $ source env.shを実行するようあったのですが、私の環境では動作しなかったため以下のようにenv.shを書き換えて実行
- 差分
$ git diff
diff --git a/env.sh b/env.sh
--- a/env.sh
+++ b/env.sh
@@ -42,7 +42,7 @@ readlink_()
esac
}
-script=$(readlink_ "$0")
+script=$(readlink_ "./kidiff")
script_path=$(dirname "$script")
export PATH="${script_path}":$PATH
$
- 実行
$ source ./env.sh
比較してみた
簡単な回路作成

アートワーク作成
- 初回
抵抗を横向きにおいてみました。
-
2回目 抵抗を縦向きに変更。

これらの変更をgitで保存しています。
KiCad-Diffの起動
Ubuntu上で回路が保存されているKiCadのプロジェクトへ移動して以下のコマンドを実行すると起動します。
$ kidiff ./kicad-diff-test.kicad_pcb
比較
今回は2つの差分しか有りませんので、この2つを履歴を選択した状態で"OK"をクリック

Webブラウザが起動してレイヤーごとに差分が表示されます。

レイヤーの違いを個別に見たい場合には対応するレイヤーをクリックします。レイヤーごとの差分、拡大縮小が可能です。

終了
Webブラウザを閉じるだけですと終了できません。UbuntuのコンソールからCtrl+Cでプログラムを終了させてください。
補足
WSLのDebianではPythonのバージョンが古く動作確認できませんでした。Ubuntuを使うことで回避しましたが、Debianを使用する場合にはPythonのバージョンアップ作業が必要になります。
参考サイト
- https://github.com/Gasman2014/KiCad-Diff
- Tknterのインストールとバージョン確認
- Qiita WSL2上のPython環境でtkinter等のGUIプログラムを動かす方法
- Install on Ubuntu
- KiCad-Pcbnewの基板レイアウト方法
最後に
今回は簡単なもので比較しましたが、少し込み入った回路ですと比較が非常に大変です。簡単に環境構築ができず少し手間取りましたが、使うと非常に強力なツールだと思います。






