Skip to content

Releases: INTI-CMNB/KiBot

v1.8.1

25 Sep 12:13
Compare
Choose a tag to compare

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

v1.8.0

17 Sep 13:43
Compare
Choose a tag to compare

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)

v1.7.0

23 Apr 16:21
Compare
Choose a tag to compare

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.

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

v1.6.5

31 Mar 15:05
Compare
Choose a tag to compare

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-boardview#14)

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/PcbDraw#159)
  • Navigate results: A header and navigation bar (#582)
  • BoM: support for SVG format in the logos (#383)

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:
  • 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)

v1.6.4

02 Feb 16:38
Compare
Choose a tag to compare

Changed

  • Documentation:
    • Now you can search in the docs
    • Indexed so you can search by topic
    • With a navigation side bar
  • Variants and filters:
    • Components only in the PCB are now processed
  • QR Lib:
    • Footprints: now they are flagged with exclude from BoM and Pos, also
      with no court yard requirements for KiCad 7
    • Symbol: Excluded from simulation for KiCad 7
  • Elecrow, FusionPCB, JLCPCB, PCBWay and P-Ban templates now moves the files
    to the compressed output by default.
    • Note that JLCPCB BoM and Position files aren't included anymore, they are
      uploaded separately.
  • Quick Start:
    • Now we generate only for projects, not separated files.
      This avoids problems for sub-sheets in separated dirs.
  • Diff:
    • When check_zone_fills is enabled now we do a refill for the boards

Added

  • New outputs:
    • KiRi: interactive diff
    • KiCanvas: on-line schematic/PCB browser
  • General:
    • Operations that copies the project now also copies the PRL and the DRU
    • Files named *.kibot.yml are also detected as configuration files
    • Mechanism to specify
      • All inner layers (inners)
      • All external copper layers (outers)
  • Command line:
    • --help-list-offsets to list footprint offsets (JLCPCB)
    • --help-list-rotations to list footprint rotations (JLCPCB)
    • --stop-on-warnings (-W) to stop on warnings (#545)
    • --defs-from-env allows using environment vars for substitution (#549)
  • Global options:
    • remove_solder_mask_for_dnp similar to remove_solder_paste_for_dnp but
      applied to the solder mask apertures. (#476)
    • layer_defaults to specify the default suffix and description. (#504)
    • include_components_from_pcb to disable the new behavior that includes
      components from the PCB in the filter/variants processing
    • restore_project now also restores the PRL
  • Schematic format:
    • Support for unit names (#513)
  • Internal templates:
    • 3DRender_top, 3DRender_top_straight, 3DRender_bottom and
      3DRender_bottom_straight: to generate simple and quick 3D renders.
    • _KIBOT_POS_DNF_FILTER option to JLCPCB. It now excludes components added
      by KiKit to create panels and can be customized.
    • _KIBOT_PLOT_FOOTPRINT_REFS and _KIBOT_PLOT_FOOTPRINT_VALUES to
      manufacturer templates. (#523)
    • _KIBOT_COMPRESS_MOVE to move gerber and drill files to the compressed
      output, enabled by default. (#537)
  • Filters:
    • New _rot_footprint_jlcpcb internal filter to fix the JLCPCB bottom
      rotations.
    • New options for the rot_footprint filters: (See #510)
      • mirror_bottom: used to undo the KiCad mirroring of the bottom.
      • rot_fields: list of fields to indicate arbitrary rotations.
      • offset_fields: list of fields to indicate arbitrary offsets.
      • offsets: a list of pairs containing regex and offset ("x, y")
      • bennymeg_mode: used to provide compatibility with the
        bennymeg/JLC-Plugin-for-KiCad tool.
      • rotations_and_offsets: a more flexible mechanism to select
        rotations and offsets. So you can have two different rotations
        applied to the same footprint, i.e. different components with
        the same footprint but different orientation in the reel.
  • 3D outputs:
    • download_lcsc option to disable LCSC 3D model download (See #415)
  • Preflights:
    • Individual directory for the ERC and DRC reports (#562)
  • BoM:
    • Support for ${field} expansion. (#471)
    • LCSC links (SchrodingersGat/KiBoM#190)
    • parse_value can be used to disable the Value parser (See #494)
      Also added a warning about using extra data in the Value field.
  • iBoM:
    • forced_name option to force the name displayed at the top left corner
      (#470)
  • Blender export:
    • Support for pcb2blender v2.6/2.7 (Blender 3.5.1/3.6)
    • auto_camera_z_axis_factor: used to control the default camera distance
    • Options to create simple animations:
      • PoV steps: to create rotation angle increments
      • default_file_id: can be used to create numbered PNGs
      • fixed_auto_camera: to avoid adjusting the automatic camera on each frame
    • Camera option to set the clip start (#484)
    • Traceback dump when Blender output contains it
    • Subdirectory for each output generated (#541)
    • Option to disable the denoiser (#539)
  • KiKit
    • Expand text variables and KiBot %X markers in text objects (see #497)
  • PCB Print:
    • Support for CURRENT_DATE text variable
    • Options to mirror the text in the user layers when creating a mirrored page
      (#561)
    • Options to select which layers are used for centering purposes (#573)
  • Populate:
    • Basic support for regular list items (#480)
  • Position:
    • Experimental support for gerber position files (#500)
  • Copy Files:
    • Mode to export the whole project (SCH, PCB, symbols, footprints, 3D models
      and project files) (#491)
  • Help for the error levels
  • Warnings:
    • Explain about wrong dir/output separation (#493)
  • Diff:
    • Added option to un/fill zones before doing the comparison (See #391)
    • Added a new mode where we can control the added/removed colors (#551)

Fixed

  • Schematics:
    • Problems with deep nested and recycled sheets (#520)
    • Problems saving deep nested sheets
    • Makefile/compress targets
  • Rotated polygons and text used in the worksheet (#466)
  • The --log/-L didn't enabled full debug for all messages
  • BoM:
    • Problems when trying to aggregate the datasheet field (#472)
  • kibot-check:
    • Show 7.x as supported (#469)
  • Blender export:
    • Rotations are now applied to the current view, not just the top view
    • Board/components not visible for small boards (See #484)
    • Light type names (extra space) (#505)
    • Problems when no point of view was defined (#546)
  • update_xml with check_pcb_parity enabled:
    • Avoid errors for KiCad 6 using "Exclude from BoM" components.
      This limitation isn't found on KiCad 7. (#486)
    • exclude_from_bom mismatch on KiCad 7
    • Sheetfile mismatch on KiCad 7 when testing from different directory
    • Honor the 'Not in schematic' (board_only) flag when doing a parity check
  • Dependencies downloader:
    • Problems when connection timed-out
  • Sub PCB separation using annotation method for some edeges and KiCad
    versions (#496)
  • Problems when using NET_NAME(n) for a value (#511)
  • JLCPCB rotations for bottom components
  • Copy Files:
    • Warnings when using both, the STEP and WRL model, of the same component
    • Fail to detect 3D models subdirs when running alone
  • QR Lib:
    • When used from the preflight the name of the file changed to the name of a
      temporal, generating problems with the plot outputs, like pcb_print
    • Project options not preserved, i.e. set_text_variables failing
    • Bottom QRs should be mirrored in the Y axis
  • Diff
    • current: didn't apply global variants
    • current: didn't honor KiCad native DNP flags, they need a filter
    • Problems when trying to use an already existent worktree (#555)
    • Avoid using unexpected branches for worktrees (#556)
  • PCB Print:
    • Issues when forcing the board edge and using scaling (#532)
    • Text not searchable when using newer rsvg-convert tools (#552)
  • Quick Start:
    • Problems with KiCad 6+ files using KiCad 5 names for layers
    • Problems scanning dirs without enough privileges
  • PCB/SCH Variant
    • Makefile/compress targets (missing project)
  • 3D outputs:
    • Problems when creating a colored resistor, but we didn't have a cache yet
      (i.e. no model downloaded) #553

v1.6.3

26 Jun 13:59
Compare
Choose a tag to compare

Changed

  • Command line:
    • --list also lists groups
  • KiCad v6/7 schematic:
    • When saving an schematic the hierarchy is expanded only if needed,
      i.e. value of an instance changed
  • List actions:
    • Now you must explicitly ask to configure outputs. Otherwise isn't needed.
      As a result you no longer need to have an SCH/PCB. Use --config-outs to
      get the old behavior.
  • Git diff link file name:
    • Now we default to using worktrees instead of stash push/pop. As a side
      effect the names of the git points are chnaged. This is because main/master
      only applies to the main worktree. So the names now refer to the closest
      tag.
  • JLCPCB_stencil: Is now just like JLCPCB. The only difference is the added
    layers.

Added

  • General:
    • OS environment expansion in ${VAR}
    • Now outputs can request to be added to one or more groups (#435)
    • PCB text variables cached in the PCB are now reset when the config
      uses set_text_variables. This is a complex dilemma of KiCad 6/7
      policy implementation. See
      KiCad issue 14360.
      (#441)
    • Default values for @tags@
    • Parametrizable imports
  • Command line:
    • --list-variants List all available variants (See #434)
    • --only-names to make --list list only output names
    • --only-pre to list only the preflights
    • --only-groups to list only the groups
    • --output-name-first to list outputs by name, no description (See #436)
  • Global options:
    • use_os_env_for_expand to disable OS environment expansion
    • environment.extra_os to define environment variables
    • field_voltage Name/s of the field/s used for the voltage raiting
    • field_package Name/s of the field/s used for the package, not footprint
    • field_temp_coef Name/s of the field/s used for the temperature
      coefficient
    • field_power Name/s of the field/s used for the power raiting
    • invalidate_pcb_text_cache controls if we reset the text variables cached
      in the PCB file.
    • git_diff_strategy selects how we preserve the current repo state.
      (See #443)
  • Filters:
    • New value_split to extract information from the Value field and put it in
      separated fields. I.e. tolerance, voltage, etc.
    • New spec_to_field to extract information from the distributors specs and
      put in fields. I.e. RoHS status.
    • New generic options exclude_not_in_bom and exclude_not_on_board to
      use KiCad 6+ flags. (See #429)
  • Internal templates:
    • JLCPCB_with_THT and JLCPCB_stencil_with_THT: adding THT components.
  • New internal filters:
    • _value_split splits the Value field but the field remains and the extra
      data is not visible
    • _value_split_replace splits the Value field and replaces it
  • Internal templates:
    • CheckZoneFill: Used to check if a zone fill operation makes the PCB quite
      different (#431)
    • Versions with stencil for Elecrow, FusionPCB, P-Ban and PCBWay.
    • PanelDemo_4x4: Demo for a 4x4 panel.
  • Render_3D:
    • realistic: can be used to disable the realistic colors and get the GUI ones
    • show_board_body: can be used to make the PCB core transparent (see inner)
    • show_comments: to see the content of the User.Comments layer.
    • show_eco: to see the content of the Eco1.User/Eco2.User layers.
    • show_adhesive: to see the content of the *.Adhesive layers.
  • Navigate_Results:
    • skip_not_run: used to skip outputs not generated in default runs.
  • Compress:
    • skip_not_run: used to skip outputs not generated in default runs.
  • Position:
    • quote_all: forces quotes to all values in the CSV output. (See #456)

Fixed

  • KiCad v6/7 schematic:
    • Net Class Flags not saved in variants or annotated schematics
    • Repeated UUIDs saved in variants
    • Bitmap scale not saved in variants or annotated schematics
    • lib_name attribute not saved in variants or annotated schematics
  • Position:
    • Components marked as "Exclude from position files" not excluded when only
      SMD components are selected. (See #429)
  • Diff:
    • KIBOT_TAG with n > 0 skipped n commits, not n tags (#430)
    • Details related to the project not applied during a diff involving a
      variant (project not copied) (#438)
  • Copy files:
    • PCB not loaded if the only action was to copy the 3D models
    • Problems for STEP models when copying models
  • Gerber:
    • Problems trying to compress gerbers for a board with inner layers when
      using legacy file extensions (#446)
  • Electro-grammar:
    • Problems with floating point tolerances (i.e. 0.1%) (#447)
  • KiCad user template directory autodetection for KiCad 7+

v1.6.2

24 Apr 16:21
Compare
Choose a tag to compare

Added

  • General:
    • Support for time stamp in the date (i.e. 2023-04-02T09:22-03:00)
    • Support to pass variables to the 3D models download URL (#414)
    • Support for netclass flags (#418)
    • Export KICADn_* environment variables for the older versions
      So you can use KICAD6_* variables on KiCad 7.
  • Expansion patterns:
    • %M directory where the pcb/sch resides. Only the last component
      i.e. /a/b/c/name.kicad_pcb -> c (#421)
  • Command line:
    • --banner N Option to display a banner
    • --log FILE Option to log to a file, in addition to the stderr
  • Global options:
    • colored_tht_resistors to disable the 3D colored resistors.
    • field_tolerance field/s to look for resistor tolerance.
    • default_resistor_tolerance which tolerance to use when none found.
    • cache_3d_resistors to avoid generating them all the time.
    • resources_dir to specify fonts and colors to install (CI/CD)
  • 3D: colored 3D models for THT resistors
  • Blender export:
    • Better default light
    • More light options
  • Datasheet download: now the warnings mention which reference failed.
  • Plot related outputs and PCB_Print:
    • individual_page_scaling: to control if the center of the page is computed
      using all pages or individually.
  • Plot related outputs:
    • All outputs now support scaling.
  • BoM:
    • Support for extra information in the Value field.
      Currently just parsed, not rejected.
  • PCB/SCH parity test:
    • Check for value and fields/properties.
  • SCH print:
    • Support for title change
  • VRML:
    • Option to use the auxiliary origin as reference. (#420)

Fixed

  • Makefile: don't skip all preflights on each run, just the ones we generate
    as targets. (#405)
  • KiKit present: problems when no board was specified. (#402)
  • Datasheet download:
    • Avoid interruptions when too many redirections is detected (#408)
  • PcbDraw:
  • PCB Print:
    • Interference between the visible layers in the PRL file and the results
      when scaling. (#407)
    • Problems with images in the WKS (KiCad 5/6)
  • Diff:
    • Problems when using an output and no variant specified.
  • PCB/SCH parity test:
    • Workaround for bogus net codes generated by KiCad (#410)
  • 3D Models:
    • Problems to download KiCad 7 models (#417)
    • Added workaround for KiCad 7 failing to export VRMLs for PCBs using paths
      relative to the footprint. (See #417)
  • VRML:
    • ref_y coordinate not used. (#419)

Changed:

  • Some R, L and C values that were rejected are accepted now. You just get a
    warning about what part of the value was discarded.

KiCad 5 stable

02 Apr 18:07
Compare
Choose a tag to compare

KiCad 5 stable KiBot GitHub Action

KiCad 7 stable

02 Apr 18:14
Compare
Choose a tag to compare

KiCad 7 using KiBot stable release

KiCad 6 stable

02 Apr 18:11
Compare
Choose a tag to compare

KiCad 6 with the stable KiBot GitHub Action