• Stars
    star
    479
  • Rank 91,752 (Top 2 %)
  • Language
    Shell
  • License
    MIT License
  • Created over 3 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Kiri is a visual tool designed for reviewing schematics and layouts of KiCad projects that are version-controlled with Git.

Kicad Revision Inspector (KiRI)

KiRI started as a script to experiment having a visual diff tool for Kicad projects. After some time, it became an interesting and it is still being updated.

Currently projects made with Kicad 5, 6 and 7 are supported.

KiRi uses internally existing tools to export schematics and layout to SVG images that can be later compared.

So, when exporting schematics pages to SVG images:

  • if Kicad 7 is installed, the new kicad-cli is used for both projects made with Kicad 6 and 7
  • if Kicad 6 is installed, schematics are exported using xdotool on Linux/Windows and cliclick on macOS, using the GUI.
  • if Kicad 5 is installed, Plotgitsch and plotgitsch are used to export the schematics

When exporting the layout layers in SVG images:

  • Kicad-Diff is used for all supported Kicad versions using pcbnew library available in python. kicad-cli is not used on Kicad 6 and 7 projects because it is slower than the python script since each layer has to be exported individually and this tool cannot do that at once.

KiRI Installation

Check the Installation instructions, here.

Using KiRI

KiRI can be launched with the following command, anywhere, inside or outside of the repository of the project.

kiri [OPTIONS] [KICAD_PROJECT_FILE]

KICAD_PROJECT_FILE can be passed, but it can also be omitted. If running from inside the repo, it will use the .pro or .kicad_pro available. If both are present (which is not good), it will ask your choice. The same happens is running outside of the repository without passing the KICAD_PROJECT_FILE.

Command line options (aka Help)

Command line flags can be seen using the -h flag

kiri -h

Archiving generated files

There is a possibility to archive generated files (check the help above).

To visualize generated files it is not necessary to have kiri installed. You just have to unpack the generated package and then execute the webserver script (./kiri-server) inside of the folder, as shown below:

tar -xvzf kiri-2021.11.18-16h39.tgz
cd kiri
./kiri-server .

Kicad Integration

It is possible to integrate KiRI with PCBNew by adding a button to its toolbar with the following command:

# Create folder if it does not exist
mkdir -p "~/.kicad/scripting/plugins"

# Copy the plugin there
cd ./kiri
cp -r "./kicad/plugin/kiri_v6/" "~/.kicad/scripting/plugins/kiri"

KiRI Screenshots

Browsing the schematic view walking through and comparing each page of the schematics, individually.

Schematic View

Browsing the layout view walking through and comparing each layer of the layout, individually.

Layout View

Here is the comparison of the schematics when the project is updated from using Kicad 5 (.sch) to Kicad 6 (.kicad_sch).

Layout View

Shortcuts are a really good way of walking through the commits, pages and layers quickly. Check the available shortcuts by hitting the shortcut i.

Layout View

A quick and old demo on the Youtube.

Kicad Revision Inspector Demo


Are you enjoying using this tool, feel free to pay me a beer :). Cheers!

More Repositories

1

sublime-spice

SPICE for Sublime Text
SourcePawn
18
star
2

developower-v2.0

Developower-v2.0 Board
8
star
3

kiri-docker

Kiri Docker project to run Kiri Revision Inspector inside a Docker container
Shell
6
star
4

sublime-3d-tool

Asynchronous Burst-Mode 3D Tool for Sublime Text
5
star
5

robot

Simple Robot built with a Beaglebone Black and an Arduino Nano.
Arduino
5
star
6

asciidump2svg

Tool to convert a ascii-dump layout from Cadence Virtuoso 5.1 to a svg
Python
5
star
7

mangoh-red

MangOH Red Hardware ported to Kicad
Python
4
star
8

sublime-synopsys-constraints

Sublime Text Synopsys Constraints Syntax (.sdc)
4
star
9

ubuntu-config

Scripts to configure Ubuntu hosts
Shell
3
star
10

peepcam

Simple Peephole Camera to use from inside the house
Python
3
star
11

assoc-board

Evaluation board for the ASSoC IC
HTML
3
star
12

linux_patch_for_ble_stack_sdk

Enable run TI BLE SDK on linux without modifying Code Composer Studio projects.
Shell
3
star
13

kicad-automation

Automation tools for Kicad
Python
2
star
14

gaph-kicad-library

Kicad Library with custom ICs and devices made and used by GAPH/GSE
Python
2
star
15

ffcamera-server

ffmpeg server systemd files
Makefile
2
star
16

os-setup

Some scripts to assist OS setup
Shell
1
star
17

beryl-breakout

[WIP] Simple breakout board for GAPH's Beryl MBLite IC
1
star
18

shellhub

My simple shellshub client
1
star
19

multisheet-kicad-5

Kicad 5 project for testing purposes.
1
star
20

test-serial

Rust
1
star
21

KiCad-Design-Examples

1
star
22

octoprint-systemd

octoprint systemd
Makefile
1
star
23

SublimeOCamlFormat

Format OCaml files on save
Python
1
star
24

cncjs-service

Configure cncjs as a service for Raspbian
Makefile
1
star
25

parallel-kicad-5.1

Parallel Kicad 5.1.12 installation
Shell
1
star
26

mjpg-streamer-service

mjpg-streamer-service
Shell
1
star
27

git-secret-test

git-secret-test
Shell
1
star
28

ci-rpi

Tests on a CI for build RPi (armv7)
1
star
29

kicad-blind-burried-vias

Kicad 6 test project with blind-burried-vias
1
star
30

freecad_project_test

1
star
31

numix-calibre

Effort to make numix-icons for Calibre
Shell
1
star
32

multisheet-kicad-6

Kicad 6 project for testing purposes.
1
star
33

hass-service

Home Assistant Service
Makefile
1
star
34

html

Some HTMLs...
HTML
1
star
35

gaph-modulefiles

Environment modulefiles for the GAPH infrastructure
Roff
1
star