KiPadCheck works with nightly, seeking feedback


Thanks to @Joan_Sparky for assistance with getting KiPadCheck working with the nightly version of KiCad! There is a different build for KiCad 4.0.6 stable.

I’m seeking testers for general testing and feedback. Let me know how it works for you, and what else you might want to see it do!


This python script provides additional basic DRC checks to KiCAD and lists
to make tweaking pads easier for drill compliance, silk compliance, and
stencil creation. It adds a menu item to "Tools" called KiPadCheck which
brings up a dialog for control.

Inner layer clearance different from outer layers
Special Strings or Text on PCB

Hi HiGreg,

it works with the nighly kicad-r8335.161045f17-x86_64 :slight_smile: Its from the 26.07 i think.

I don’t know, for what i need it, but i want to give you a feedback …



Testing with 2/8/17 Nightly, the plugin is running Silk to Pad and correctly fails a deliberate silkscreen on top of a pad, but I don’t see anywhere in the report any clue where the error is


There is some weirdness with the KiCad view showing objects created or changed programmatically.

The objects contributing to errors are “selected” in the script. You may need to switch views to default and back (F9 then F11) to see the selected pads and silk objects indicating those objects failed a check.


The plugin is writing to Eco1.User and Eco2.User?


It definitely writes to Eco1.User and Eco2.User if “Show all drawings” is selected or if “Outline Thickness” is non-zero.

There may be some leftover debug drawings made on those layers. I’ll clean them up for the next release.


In the development version, I’ve added notes to the pcbnew console window for the “selected” failed objects. I’ve also added annotation in the Dialog to the items that write to Eco2. I didn’t see any wayward writes to Eco1 or Eco2, only those that occur with Outline Thickness non-zero or Draw All Outlines set. I’ve changed the development version so that only one layer (Eco2) is modified if either of those is true.

DRC: Drill to Track clearance?
To Vias or not to Vias

Github has been updated with the modifications.


I continue to update the code on the development (unreleased) version. If anyone notices a capability the want (or asks for one), I’ll be glad to post the version that has that feature. Otherwise, I’ll post code updates less frequently. Let me know if you’re waiting on a specific feature and I’ll be sure to upload the script to GitHub after that feature is complete and ready for testing.

In the development version (unreleased), I have added silk thickness (often called ‘width’), text height, and text aspect ratio checks.


The latest update to nightly includes added Silk Thickness check.

aurabindo on GitHub reported a problem with window sizing on Linux nightly. Anyone else see the same thing? I have attempted a fix, but don’t have a Linux system to test with.


I have 4 machines with all combinations of Windows 64 and Ubuntu 16.04 and 4.0.6 and latest Nightly available. Very sad…:sunglasses:


Lots of machines to test KiPadCheck with? :slight_smile:


Yes, I keep all these dual boot combinations for testing problems on this forum Actual work I use an Ubuntu Nightly.
It would help a lot if your readme explained exactly which layers and files your plugin modifies and more details of how to use it.


I’ll add better description and use details in the next 24 hours. THANKS!

Right now in the nightly, it only modifies (or should only modify) Eco2 if the two entries labeled “debug” are either checked or non-zero.

Objects that fail a check are (generally) selected.

Other than that, a bunch of information is printed in the KiCad main console for each button. It’s mostly self documenting, but I agree more could be written in the help section.


Here’s the new readme (or at least the first part). Let me know what you think.

I’ll integrate it into GitHub in the near future.

 KiPadCheck provides additional basic DRC checks to KiCAD and proviedes lists
 to make tweaking pads easier for drill compliance, silk compliance, and
 stencil creation. It adds a menu item to "Tools" called KiPadCheck which
 brings up a dialog for control. Functions include pad list, drill list,
 drill to drill spacing check, drill to track spacing check, stencil
 aperture check vs. stencil thicknesses, stencil aperture width vs.
 paste type, silk overlap of copper, text width/height/ratio, silk width.

 In Windows, place file in 
 C:\Program Files\KiCad\share\kicad\scripting\plugins\
 In pcbnew, open scripting console (Tools > Scripting Console)
 Type "import kipadcheck".

 If installed in the scripting/plugins folder, installation should occur
 with Tools > External Plugins > Refresh Plugins.
 Otherwise, type "import kipadcheck" in the Scripting Console.
 This installs a menu item in Tools > External Plugins > KiPadCheck.


 Selecting the KiPadCheck menu item brings up the Dialog for control of the

 Fill out the dimension information supplied by your PCB manufacturer to
 check your layout against.

 The following entry items are used in the respective checks.

 Pad Info: Produces output on the KiCad console, no dialog entries used.
 Stencil Info: Produces output on the KiCad console, no dialog entries used.
 Drill Info: Produces output on the KiCad console, the following entries are used.
       Via to Via Spacing, Via to Track spacing
 Silk Info:  Produces output on the KiCad console, the following entries are used.
 Silk to Pad spacing
       Silk Slow Check:
           Enables non-zero silk-to-pad check, and text stroke check.
           If disabled, will only check silk overlap of pad against
           bounding boxes of text.
       Outline Thickness:
           Will draw outlines on Eco2 layer of pads and text that are checked.
           Notably, text strokes are only checked if the text bounding box
           is close enough to require further checking.
       Draw All Outlines:
           Will draw all outlines of pads and text strokes with the specified
           Outline Thickness.
       Silk Minimum Width:
           The minimum line thickness on the silk layer for text and
           graphical items.
       Text Minimum Height:
           The minimum height of text on the silk layer.
       Minimum Text W/H:
           The ratio of text thickness divided by text height must be
           greater than 1 divided by the value in this entry.
           A typical value entered here would be "5" which would represent
           a W/H ratio of 1/5, or 0.2.


Report using latest version on macOS & Kicad nightly.

Pad, Drill and Stencil all working and producing useful metrics in the project pane.
Silk info runs but there are no values shown nor is there any ability to adjust these parameters - see screenshot. Clicking (apart from the buttons) doesn’t allow any values to be adjusted.


Is this with the nightly branch? Linux was showing similar (see this Issue).

Unfortunately, I cannot test on MacOS.

Can anyone volunteer to investigate the KiPadCheck / wxPython issue of resizing on MacOS and Linux?


Yes, this is running on a Kicad nightly from a week or two back.
macOS 10.12


I’ve made an ugly hack, could you please try it on MacOS ?

wx Experts, please help in finding the actual problem :smirk:


I’m reworking the interface with wxformbuilder. I’m having a little difficulty because wxformbuilder doesn’t produce exactly compatible python for KiCad. Almost got it working though by modifying the form builder code.

When it’s done, I’ll put it up to test. Any advice for managing branches on GitHub? Or should I put it directly in the nightly branch?