Kibot

Latest version: v1.8.3

Safety actively analyzes 723217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 7

1.8.3

Added
- New outputs:
- ODB: Exports the PCB in ODB++ format (KiCad 9) (782)
- IPC2581: Exports the PCB in IPC-2581 (IPC-DPMX) format (KiCad 9)
- export_3d: Exports the 3D model of the PCB in BREP, GLB, STL, STEP and
XAO (KiCad 9) (783)
- jobset: Runs a KiCad jobset (KiCad 9)
- CLI:
- `--variant` to specify which variants will be generated (See 737)
- `--defs-from-project` allows using KiCad variables for the preprocessor
(See 643)
- Variants and filters:
- Outputs with variants can now specify an `exclude_filter` in addition to the
variant. Like it was possible for transform and dnf
- Preflights:
- `consolidate_pcbs`: Used to merge PCBs before creating 3D stacked renders
(728)
- `expand_in_command` option to `set_text_variables`, used to expand %X
patterns in the command (746)
- `check_fields` mechanism to check for extra fields (774)
- Global options:
- `work_layer`: to choose the temporal layer for internal operations (713)
- Internal templates:
- `_KIBOT_DRILL_AUX_ORIGIN` option to control drill, position and gerber origin
- Workaround for people using backslashes (i.e. Windows+WSL) (719) (607)
More general than in previous versions.
- Blender Export: option to avoid soldering heatsinks
- Boardview: OBDATA support
- BoM:
- Field aliases ${QUANTITY} and ${ITEM_NUMBER} for compatibility with
KiCad's internal BoM.
- Fields ${DNP}, ${EXCLUDE_FROM_BOARD} and ${EXCLUDE_FROM_SIM}, like
the ones used by KiCad's internal BoM.
- Using `_kicad_bom_fields` in the list of columns now you can import the
fields from the KiCad's internal BoM.
- New option `group_not_fitted` to group not fitted components with fitted
components. For compatibility with KiCad's internal BoM.
- New option `sort_ascending` to sort in reverse order
- New sort style: *kicad_bom*, uses the field an ascending used by KiCad's
BoM
- `ref_range_separator` option to configure the character used for reference
ranges
- `use_ref_ranges` alias for `use_alt`
- New *kicad* format to mimic KiCad's internal BoM.
- `right_digits` option to control the decimals for position fields (739)
- New `sort_style` named `field` and `sort_field` option to sort by one or
more arbitrary fields.
- New `csv` options: (to match KiCad internal BoM functionality)
- `string_delimiter` to configure the quote character
- `keep_line_breaks` to remove line breaks in fields
- `keep_tabs` to remove tabs in fields
- Draw Fancy Stackup:
- `border_thickness`: Thickness of the borders of stackup drawing and stackup
table (747)
- A mechanism to set the font, using a text box (748)
- Drill:
- Option to don't generate the drill files, so you can generate only the maps
(720)
- Option to generate a drill table (760)
- Include table:
- A mechanism to set the font, using a text box (748)
- `force_font_width` to force a font width (752)
- Navigate Results:
- New flavor "navigate_results_rb" with a "reactive" look (768)
- Netlist:
- OrcadPCB2, Allegro, CADSTAR, PADS, KiCad XML, Spice and Spice model formats
- PCB Print:
- A mechanism to filter components for a particular layer (706)
- Workaround for Ghostscript handling %d wrong when followed by an hex digit
(763)
- Now you can include drill maps using `drill_pairs` as `repeat_layers` (764)
- Report:
- `top_total`, `bot_total`, `total_smd`, `total_tht` and `total_all`
component counts (See 730)
- Also versions of the counters for excluded (exc), not fitted (dnp) and
not changed (dnc) (See 730)
- `total_components` template, intended to generate CSV files with component
counts (See 730)
- Now you can use expressions like ${V1+V2}
- `mm_digits`, `mils_digits` and `in_digits` to change the number of digits
for unit conversions (745)
- `display_trailing_zeros` to show trailing zeros (745)
- *_cap* sufix to capitalize strings (745)
- *h2h*, *c2h* and *c2e* Hole to Hole, Hole to Copper and Copper to Edge
info (KiCad 6+) (745)
- *pad_drill_pth*, *pad_drill_npth* (and similars) for PTH/NPTH specific
drill dimensions (745)
- `csv_remove_leading_spaces` to remove leading spaces/tabs after CSV
separator (useful to generate CSV from a .txt template where elements are
aligned for easier reading) (745)
- A mechanism to get the names of the files generated by an output.
The variables are named OUTPUT_outpath_INDEX (761)
- SCH Variant and *SCH Print:
- A mechanism to paste images from outputs (714)
- *SCH Print:
- Default font for KiCad 9 (691)

Fixed
- Definitions: avoid interpreting empty definitions as the "None" string
(See 757)
- Guess for 3rd party dir: not just for v6
- SubParts filter:
- iBoM and Schematic print didn't take it into account (716)
- Any output filtering by reference ignored them (729)
- BoM
- The field name `Reference` was accepted, but didn't work
- Missing footprint information for sub-units (741)
- XLSX logo scale (750)
- Do Not Fit footprint crosses:
- Problems with footprints where the center isn't the geometric center (725)
- DRC:
- Zone refill issues with the new DRC preflight (759)
- Draw Fancy Stackup:
- Problems drawing micro vias (749)
- Confusing drawing when symmetric vias overlap
- Drill:
- Via pairs overwritten by PTH files (758)
- Navigate Results:
- Problems when using `erc: true` or `drc: true` (742)
- PCB Print:
- Problems when using the default worksheet and the internal frame plotter
(767)
- Some layer options (use_for_center, sketch_pads_on_fab_layers and
exclude_filter) not copied on repeated layers
- `sketch_pads_on_fab_layers` not inherited from parent when using
layer names (See 777)


Changed
- Default temporal layer for internal use is now "Margin", instead of "User.9"
- Draw Fancy Stackup:
- Micro vias to look closer to real world, they only span 2 layers and they
must be stacked to span more layers.
- Renderers:
- Components marked by the exclude filter, or marked virtual, were excluded
from the 3D models and solder paste processing, but the docs says this is
just for BoM (See 772)

1.8.2

Added
- Experimental GUI
- Preflights:
- Draw Fancy Stackup: which includes the type of vias used (699)
- Include Table: used to include CSV tables generated by bom/position
outputs (702)
- Globals:
- `dnp_cross_top_layer` and `dnp_cross_bottom_layer`: to control the layer
where footprints are crossed. (700 and 622)
- SVG: `use_aux_axis_as_origin` option (681)
- Report: thickness units (685)
- PCB Print:
- Worksheet: undocumented font face and color now can be used (See 695)
- Panelize:
- `copy_vias_on_mask` option to workaround KiCad's bug 18991 (See 703 and
704)

Fixed
- BoM: Sub-PCBs not applied (697)
- Copy Files: problems when using from compress and using worksheets.
- Export Project: problems when downloading KiCad models and trying to compress
the result.
- PcbDraw: problems with 0 ohms THT resistors (689)
- PCB Print:
- Allow specifying `repeat_for_layer` with empty `repeat_layers`.
This was the old behavior (i.e. 1.7.0) (671)
- Problems with drill marks on KiCad 8.0.4+, which prints them in every
single layer (even technical ones) (696)
- When trying to force a WKS and the project didn't define a WKS.
The "gui" strategy failed to use the specified WKS
- Draw stackup:
- Segmentation Fault on KiCad 8 when creating a new group
- Units not applied when creating a new group
- Expansion of internal field names. KiCad expands "VALUE", not "Value", which
is what you see in the GUI

Changed
- Quick Start:
- Diff/KiRi: Avoid creating when we don't have at least 2 to compare
- PCB Print:
- Avoid `colored_pads` and `colored_vias` side effects (682)
- BoM:
- Avoid leaking DIGIKEY_CLIENT_ID and DIGIKEY_CLIENT_SECRET in logs

1.8.1

Fixed
- Blender Export:
- Stacked boards when using an automatically generated PCB3D.
- Point of view when using the human names instead of the axis names.
- Footprint variant (created by Var Replace filter):
- Flipped components didn't get flipped after replacement (664)
- Problems generating drill outputs (663)
- PCB print: errors when printing a fully empty layer

1.8.0

Added
- Experimental Altium PCB conversion (625)
- Most places where a field is expected now support `_field_*` to fetch the
globally defined value.
- Preflights:
- check_fields: used to ensure conditions on desired fields (643)
- e/drc: option to force english messages (needed for KiCad 8.0.4)
- Filters:
- `separate_pins`: used to create testpoint reports (638)
- `_null` can be used to skip the filters processing
- Global options:
- `use_pcb_fields`: allows using fields defined in the PCB (and not
only in the schematic), enabled by default (648 and 650)
- `field_current`: to specify the field used for current ratings
- Internal templates:
- Testpoints_by_attr, Testpoints_by_attr_CSV, Testpoints_by_attr_HTML,
Testpoints_by_value, Testpoints_by_value_CSV and Testpoints_by_value_HTML:
Used to generate testpoint reports (638)
- Command line:
- Option to also list sub-PCBs found in variants
- BoardView: support for BVR format
- BoM: logo file name can contain env vars and/or ~ (620)
- Datasheet: option to classify the datasheets by reference.
- KiCost: option to specify a configuration file (615)
- Report:
- Solder paste usage stats (616)
- Support for variants (See 616)
- Testpoints report (See 638)
- xDRC: configurable category (647)
- Schematic:
- Support for text boxes inside symbols (621)
- Worksheet:
- Support for KiCad 8 bitmaps (623)
- Position:
- Support for panels repeating the same component (See 656)

Fixed:
- iBoM: *highlight_pin1* option didn't allow the use of the new choices.
- PCB2Blender_Tools: transform filters might make it fail. (618)
- BoM:
- No color reference when using row colors but not column or kicost colors.
(619)
- "0 pico" for "0"
- Use of `lcsc_link` as boolean
- User fields for components that are only in the PCB not filled (656)
- Worksheet: Size of PNGs that specify its PPI resolution.
- Filters:
- Problems with filters that change fields for components that are
only in the PCB. (628)
- Use of '_none' filter in lists of filters and _kf()
- Variants:
- Problems when remove_solder_paste_for_dnp and remove_adhesive_for_dnp are
both disabled (remove_solder_mask_for_dnp wrongly defined) (632)
- Problems when using `set_text_variables_before_output` (649)
- Draw Stackup:
- Dimension always drawn on User.Drawings layer (629)
- Problems when the PCB wasn't loaded by another preflight
- Update XML: `check_pcb_parity` not usable for KiCad 8, must use the `drc`
preflight (633)
- PCB Print: %ln and %ll substitution when using `repeat_for_layer` option
- Render_3D: bottom side components that doesn't rotate from its center got
displaced highlight (659)
- QR Lib output and various preflights: might remove DRC exclusions. This is
a KiCad bug that we must workaround (653)
- 3D outputs: temporal .kicad_dru file not removed (655)
- Generated PCB files: problems with some big structures, like zone fills,
that could generate huge lines in the generated PCB, not supported by KiCad.
(660)

Changed:
- KiCad 8.0.2: The behavior with hidden text changed in KiCad 8.0.2, it is
computed even for operations where it isn't really visible, like plotting
a layer where we don't have the hidden text. So currently KiBot is
experimentally disabling the "hidden text layer".
This is a bug in KiCad (https://gitlab.com/kicad/code/kicad/-/issues/17958)
- Render 3D: Modern versions of Image Magick no longer needs two trim passes
for auto-crop, so now we default to one and an option enables two. (See 644)
- Preflights: The definition of preflight plug-ins changed. They are slightly
different now. Currently they are Optionable and share more in common with
outputs. If you need assistance to migrate a preflight just open a GitHub
issue.
- Outputs: Now all options must declare its default.
- Global `invalidate_pcb_text_cache`: now it changes the PCB on disk, not just
on memory. This is needed for external tools like KiKit's panelize.
- In many cases now we allow empty lists and use some sort of default.
A warning is issued, but we continue.
- Layers: now the default for missing layers is all layers.
- Copy files: Now we don't stop when nothing to copy is specified
- Layers: now the default for missing layers is all layers.
- KiKit Present: Missing description is no longer fatal
- Any PCB Print/PCB Print: Missing pages/layers is no longer fatal
- Populate: Missing input file is no longer fatal
- QR Lib: Missing QR definition is no longer fatal (%p %r used)
- Blender Options outputs: Make a render when no outputs are specified
- PCB Print: repeat_layers defaults to inners
- Spec to Field: some simple defaults for the specs (voltage, current, power
and tolerance)

1.7.0

Added
- New preflights:
- erc: a replacement for run_erc when using KiCad 8.
It can generate ERC reports not only in plain text but also HTML, JSON and
CSV.
- drc: a replacement for run_drc when using KiCad 8.
Also supporting multiple formats and with a modern separation between
unconnected and warnings.
- update_footprint: updates one or more footprints from the libs.
Useful for external QR codes, logos, etc. (492 483)
- draw_stackup: creates a nice drawing for the stackup (See 368)
- update_pcb_characteristics: updates the text you get from *Place* ->
*Add Board Characteristics*, so you don't need to remove it and place
again. (See 384 368)
- update_stackup: updates the text you get from *Place* ->
*Add Stackup Table*, so you don't need to remove it and place
again. (See 384 368)
- Global variables:
- str_yes/str_no: to finetune the *update_pcb_characteristics* preflight.
- Internal templates:
- ExportProject: creates a ZIP file containing a self-contained version of
the project. All footprint, symbols and 3D models are included.
- Filters:
- Now the *var_rename* and *var_rename_kicost* filters can be used to change
footprints using variants (See 574)
- Quick Start: D/ERC are also included for KiCad 8 (with dont_stop: true)
- Navigate Results: Includes the new D/ERC
- SCH Print:
- Option to specify a custom page layout (WKS)
- Workaround for people using backslashes (i.e. Windows+WSL) (See 607)
- PCB Print:
- Support for (undocumented) KiCad 8.0 worksheets (20231118) (See 607)
- Control over the LAYER KiCad variable used in worksheets (layer_var ops)
- Internal BoM:
- Colored rows for HTML and XLSX (See 344)
- Render 3D:
- Added options to control Eco1/Eco2/Drawings individually on KiCad 8 (614)

Fixed
- Netlist generation problems with components on the PCB but not in schematic.
I.e. logos reaching iBoM output (598)
- 3D/2D renderers: ranges regex to be more strict. Don't take things like
"r1-10"
- Sch errors are now caught during output runs. (604)
- Compress:
- Could make Python ZIP lib crash when adding a dir to the zip root.
- So it also removes subdirs created by an output when using move.
- Copy Files:
- Problems when no target dir and no WKS.
- Problems when finding the targets (Makefile, copy files, etc.) before
generating the outputs (or when moved).
- BoM:
- Expansion of variables in fields could fail if the KiCad config wasn't
initialized

Changed
- Filters: When we find a component in the PCB, that is not in the schematic,
and has a malformed reference, now we inform a warning, discard the
component and continue. (604)
- PcbDraw: Now handles panelized boards much faster. Previous code was really
slow for panels and the time increased exponentially.

1.6.5

Added
- KiCad 8 support
- Panelize: support for all new options (upto 1.5.1)
- 3D/2D renderers: support for ranges in the `show_components` and `highlight`
options. So one entry can be something like *R10-R20*. Can be disabled
using the global option `allow_component_ranges`. (See yaqwsx/PcbDraw159)
- Navigate results: A header and navigation bar (582)
- BoM: support for SVG format in the logos (383)

Changed
- CI/CD: we now filter some warnings that are always generated by docker
images when we detect a CI/CD environment. They can be enabled using the
`--warn-ci-cd` command line option. (See 564)
- KiRi: continue even on corrupted schematics (583)
- Variants: avoid W045 on nameless pads. Assuming they are on purpose and not
real pads. (See 584)
- BoardView: Skip footprints with no pads (not just REF**)
(whitequark/kicad-boardview14)

Fixed
- Netlist generation problems with components on the PCB but not in schematic.
(578)
- Filters:
- _none filter not always honored (i.e. exclude in BoM) (580)
- Rotation for bottom JLCPCB parts with offset (591)
- Rotation angle used to compute the offsets, must be the final angle
- PCB Parity: components excluded from the board reported anyways (585)
- BoardView:
- X axis mirroring issues (whitequark/kicad-boardview11)
- Alphanumeric pads sorting (whitequark/kicad-boardview17) and
(whitequark/kicad-boardview18)
- Present: problems when using gerbers already generated
- Diff: problems when using things like "origin/main" and add_link_id (589)
- Panelize: not able to use external JSON configs (592)

Page 1 of 7

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.