forgot to add KiBot configuration files

This commit is contained in:
FizzyApple12
2022-07-05 04:15:16 -04:00
parent f3f7ae2e86
commit edb5fff655
9 changed files with 514 additions and 2 deletions
@@ -37,9 +37,9 @@ jobs:
image: setsoft/kicad_auto:ki6
steps:
- uses: actions/checkout@v2
- name: run kibot
- name: Run KiBot
run: |
kibot -c kibot.yml -e WaccaProtocolTranslator.kicad_sch -b WaccaProtocolTranslator.kicad_pcb -d WaccaProtocolTranslator-pcb/ -s run_erc,run_drc -v \
kibot -c kibot.yml -e WaccaProtocolTranslator-pcb/WaccaProtocolTranslator.kicad_sch -b WaccaProtocolTranslator-pcb/WaccaProtocolTranslator.kicad_pcb -d WaccaProtocolTranslator-pcb/ -s run_erc,run_drc -v \
gerbers.gbr drills.gbr drills.drl pickandplace.csv bom.csv schematic.svg schematic.pdf board_black_top.svg
- uses: actions/upload-artifact@v2
if: ${{success()}}
+118
View File
@@ -0,0 +1,118 @@
outputs:
- name: 'octopart.csv'
comment: 'https://octopart.com/'
type: 'kibom'
dir: 'docs/bom'
options:
# [string|dict] BoM configuration file, relative to PCB.
# You can also define the configuration here, will be stored in `config.kibom.ini`
conf:
# [list(dict)|list(string)] List of columns to display.
# Can be just the name of the field
columns:
# [string=''] Name of the field to use for this column
# field: ''
# [list(string)|string=''] List of fields to join to this column
# join: ''
# [string=''] Name to display in the header. The field is used when empty
# name: ''
- References
- Description
- Part
- Value
- field: Quantity Per PCB
name: Qty
# [list(list(string))] A series of values which are considered to be equivalent for the part name.
# Each entry is a list of equivalen names. Example: ['c', 'c_small', 'cap' ]
# will ensure the equivalent capacitor symbols can be grouped together.
# If empty the following aliases are used:
# - ['r', 'r_small', 'res', 'resistor']
# - ['l', 'l_small', 'inductor']
# - ['c', 'c_small', 'cap', 'capacitor']
# - ['sw', 'switch']
# - ['zener', 'zenersmall']
# - ['d', 'diode', 'd_small']
component_aliases: [['r', 'r_small', 'res', 'resistor'], ['l', 'l_small', 'inductor'], ['c', 'c_small', 'cap', 'capacitor'], ['sw', 'switch'], ['zener', 'zenersmall'], ['d', 'diode', 'd_small']]
# [string=''] Column with links to the datasheet (HTML only)
datasheet_as_link: ''
# [string|list(string)=''] Column/s containing Digi-Key part numbers, will be linked to web page (HTML only)
digikey_link: ''
# [list(dict)] A series of regular expressions used to exclude parts.
# If a component matches ANY of these, it will be excluded.
# Column names are case-insensitive.
# If empty the following list is used:
# - column: References
# regex: '^TP[0-9]*'
# - column: References
# regex: '^FID'
# - column: Part
# regex: 'mount.*hole'
# - column: Part
# regex: 'solder.*bridge'
# - column: Part
# regex: 'test.*point'
# - column: Footprint
# regex 'test.*point'
# - column: Footprint
# regex: 'mount.*hole'
# - column: Footprint
# regex: 'fiducial'
# list(dict)] A series of regular expressions used to exclude parts. If a component matches ANY of these, it will be excluded.
exclude_any:
- column: Part
regex: TestPoint
- column: Part
regex: LOGO
- column: Part
regex: Jumper
# [string='Config'] Field name used to determine if a particular part is to be fitted (also DNC and variants)
fit_field: 'Config'
# [boolean=true] Connectors with the same footprints will be grouped together, independent of the name of the connector
group_connectors: true
# [list(string)] List of fields used for sorting individual components into groups.
# Components which match (comparing *all* fields) will be grouped together.
# Field names are case-insensitive.
# If empty: ['Part', 'Part Lib', 'Value', 'Footprint', 'Footprint Lib'] is used
# group_fields: ['Part', 'Part Lib', 'Value', 'Footprint', 'Footprint Lib']
# group_fields: ['']
# [boolean=false] Hide column headers
hide_headers: false
# [boolean=false] Hide project information
hide_pcb_info: true
# [boolean=true] Generate a separated section for DNF (Do Not Fit) components (HTML only)
html_generate_dnf: true
# [boolean=true] Exclude DNF (Do Not Fit) components
ignore_dnf: true
# [list(dict)] A series of regular expressions used to select included parts.
# If there are any regex defined here, only components that match against ANY of them will be included.
# Column names are case-insensitive.
# If empty all the components are included
# include_only:
# [string=''] Name of the column to apply the regular expression
# column: ''
# `field` is an alias for `column`
# [string=''] Regular expression to match
# regex: ''
# `regexp` is an alias for `regex`
# [boolean=true] Component groups with blank fields will be merged into the most compatible group, where possible
merge_blank_fields: false
# [boolean=true] First column is the row number
number_rows: false
# [boolean=true] Each component group will be tested against a number of regular-expressions (see ``).
test_regex: true
# [boolean=false] Print grouped references in the alternate compressed style eg: R1-R7,R18
use_alt: false
# [string='HTML'] [HTML,CSV,XML,XLSX] format for the BoM
format: 'CSV'
# [number=1] Number of boards to build (components multiplier)
number: 1
# [string='%f-%i%v.%x'] filename for the output (%i=bom). Affected by global options
output: '%f-%i.%x'
# [string=','] CSV Separator
separator: ';'
# [string=''] Board variant(s), used to determine which components
# are output to the BoM. To specify multiple variants,
# with a BOM file exported for each variant, separate
# variants with the ';' (semicolon) character.
# This isn't related to the KiBot concept of variants
variant: ''
+77
View File
@@ -0,0 +1,77 @@
outputs:
# For more information: https://github.com/INTI-CMNB/KiBoM
- name: 'schematic.pdf'
comment: "generate schematic (PDF)"
type: pdf_sch_print
dir: docs
options:
output: '%f-%i.%x' #[string='%f-%i%v.%x'] filename for the output PDF (%i=schematic %x=pdf). Affected by global options.
- name: 'schematic.svg'
comment: "generate schematic (SVG)"
type: svg_sch_print
dir: img
options:
output: '%f-%i.%x' #[string='%f-%i%v.%x'] filename for the output SVG (%i=schematic %x=svg). Affected by global options.
- name: 'board_top.pdf'
comment: "generate board top (PDF)"
type: 'pdf_pcb_print'
dir: 'docs'
options:
# [string|list(string)=''] Name of the filter to mark components as not fitted.
# A short-cut to use for simple cases where a variant is an overkill
dnf_filter: ''
# [string='full'] What to use to indicate the drill places, can be none, small or full (for real scale)
drill_marks: 'none'
# [boolean=false] Print mirrored (X axis inverted). ONLY for KiCad 6
mirror: false
# [boolean=false] Print in black and white
monochrome: false
# [string='%f-%i%v.%x'] Filename for the output PDF (%i=layers, %x=pdf). Affected by global options
output: '%f-board_top.%x'
# `output_name` is an alias for `output`
# [boolean=true] Include the title-block
plot_sheet_reference: true
# [number=1.0] Scale factor (0 means autoscaling)
scaling: 0
# [boolean=false] Print layers in separated pages
separated: false
# [string=''] Board variant to apply
variant: ''
layers:
- 'F.SilkS'
- 'F.Mask'
- 'Cmts.User'
- 'Edge.Cuts'
- name: 'board_bottom.pdf'
comment: "generate board bottom (PDF)"
type: 'pdf_pcb_print'
dir: 'docs'
options:
# [string|list(string)=''] Name of the filter to mark components as not fitted.
# A short-cut to use for simple cases where a variant is an overkill
dnf_filter: ''
# [string='full'] What to use to indicate the drill places, can be none, small or full (for real scale)
drill_marks: 'none'
# [boolean=false] Print mirrored (X axis inverted). ONLY for KiCad 6
mirror: true
# [boolean=false] Print in black and white
monochrome: false
# [string='%f-%i%v.%x'] Filename for the output PDF (%i=layers, %x=pdf). Affected by global options
output: '%f-board_bottom.%x'
# `output_name` is an alias for `output`
# [boolean=true] Include the title-block
plot_sheet_reference: true
# [number=1.0] Scale factor (0 means autoscaling)
scaling: 0
# [boolean=false] Print layers in separated pages
separated: false
# [string=''] Board variant to apply
variant: ''
layers:
- 'B.SilkS'
- 'B.Mask'
- 'Dwgs.User'
- 'Edge.Cuts'
+58
View File
@@ -0,0 +1,58 @@
outputs:
# Gerber drill format:
# You can create a map file for documentation purposes.
# This output is what you get from the 'File/Fabrication output/Drill Files' menu in pcbnew.
- name: 'drills.gbr'
comment: 'https://en.wikipedia.org/wiki/Gerber_format'
type: gerb_drill
dir: gerbers
options:
# [dict|string] [hpgl,ps,gerber,dxf,svg,pdf] format for a graphical drill map.
# Not generated unless a format is specified
map:
# [string='%f-%i%v.%x'] name for the map file, KiCad defaults if empty (%i='PTH_drill_map'). Affected by global options
output: ''
# [string='pdf'] [hpgl,ps,gerber,dxf,svg,pdf] format for a graphical drill map
type: 'gerber'
# [string='%f-%i%v.%x'] name for the drill file, KiCad defaults if empty (%i='PTH_drill'). Affected by global options
output: '%f-%i.%x'
# [dict|string] name of the drill report. Not generated unless a name is specified
report:
# [string=''] name of the drill report. Not generated unless a name is specified.
# (%i='drill_report' %x='txt')
filename: '%i.%x'
# [boolean=false] use the auxiliar axis as origin for coordinates
use_aux_axis_as_origin: true
# Excellon drill format:
# You can create a map file for documentation purposes.
# This output is what you get from the 'File/Fabrication output/Drill Files' menu in pcbnew.
- name: 'drills.drl'
comment: 'https://en.wikipedia.org/wiki/Gerber_format'
type: excellon
dir: gerbers
options:
# [dict|string] [hpgl,ps,gerber,dxf,svg,pdf] format for a graphical drill map.
# Not generated unless a format is specified
map:
# [string='%f-%i%v.%x'] name for the map file, KiCad defaults if empty (%i='PTH_drill_map'). Affected by global options
output: '%f-%i.%x'
# [string='pdf'] [hpgl,ps,gerber,dxf,svg,pdf] format for a graphical drill map
type: 'gerber'
# [boolean=true] use metric units instead of inches
metric_units: true
# [boolean=false] use a minimal header in the file
minimal_header: false
# [boolean=false] invert the Y axis
mirror_y_axis: false
# [string='%f-%i%v.%x'] name for the drill file, KiCad defaults if empty (%i='PTH_drill'). Affected by global options
output: '%f-%i.%x'
# [boolean=true] generate one file for both, plated holes and non-plated holes, instead of two separated files
pth_and_npth_single_file: false
# [dict|string] name of the drill report. Not generated unless a name is specified
report:
# [string=''] name of the drill report. Not generated unless a name is specified.
# (%i='drill_report' %x='txt')
filename: '%i.%x'
# [boolean=false] use the auxiliar axis as origin for coordinates
use_aux_axis_as_origin: true
+38
View File
@@ -0,0 +1,38 @@
outputs:
- name: 'pickandplace.csv'
comment: 'position files'
type: 'position'
dir: 'gerbers'
options:
# [string|list(string)=''] Name of the filter to mark components as not fitted.
# A short-cut to use for simple cases where a variant is an overkill
dnf_filter: '_mechanical'
# [string='ASCII'] [ASCII,CSV] format for the position file
format: 'CSV'
# [boolean=true] only include the surface mount components
only_smd: true
# [string='%f-%i%v.%x'] output file name (%i='top_pos'|'bottom_pos'|'both_pos', %x='pos'|'csv'). Affected by global options
output: '%f-%i.%x'
# [boolean=true] generate two separated files, one for the top and another for the bottom
separate_files_for_front_and_back: true
# [string='millimeters'] [millimeters,inches] units used for the positions
units: 'millimeters'
# [string=''] Board variant to apply
variant: ''
# generates bom.csv in gerbers folder
- name: bom.csv
type: kibom
dir: gerbers
extends: 'octopart.csv'
# zip fabrication files
- name: 'fabrication.zip'
type: compress
dir: .
options:
format: ZIP
files:
- dest: .
source: gerbers/*
output: '%f-%r.%x'
+54
View File
@@ -0,0 +1,54 @@
outputs:
# For more information: https://github.com/INTI-CMNB/KiBoM
- name: "gerbers.gbr"
comment: "https://en.wikipedia.org/wiki/Gerber_format"
type: 'gerber'
dir: 'gerbers'
options:
# [boolean=true] creates a file with information about all the generated gerbers.
# You can use it in gerbview to load all gerbers at once
create_gerber_job_file: false
# [string|list(string)=''] Name of the filter to mark components as not fitted.
# A short-cut to use for simple cases where a variant is an overkill
dnf_filter: ''
# [boolean=true] do not include the PCB edge layer
exclude_edge_layer: true
# [boolean=false] do not plot the component pads in the silk screen
exclude_pads_from_silkscreen: false
# [boolean=false] include references and values even when they are marked as invisible
force_plot_invisible_refs_vals: false
# [string='%f-%i%v.%x'] name for the gerber job file (%i='job', %x='gbrjob'). Affected by global options
gerber_job_file: '%f-%i-%r.%x'
# [number=4.6] this the gerber coordinate format, can be 4.5 or 4.6
gerber_precision: 4.6
# [number=0.1] [0.02,2] line_width for objects without width [mm]
line_width: 0.1
# [string='%f-%i%v.%x'] output file name, the default KiCad name if empty. Affected by global options
output: '%f-%i-%r.%x'
# [boolean=true] include the footprint references
plot_footprint_refs: true
# [boolean=true] include the footprint values
plot_footprint_values: true
# [boolean=false] currently without effect
plot_sheet_reference: false
# [boolean=false] substract the solder mask from the silk screen
subtract_mask_from_silk: false
# [boolean=true] cover the vias
tent_vias: true
# [boolean=false] use the auxiliar axis as origin for coordinates
use_aux_axis_as_origin: true
# [boolean=true] include netlist metadata
use_gerber_net_attributes: true
# [boolean=true] use the extended X2 format
use_gerber_x2_attributes: true
# [boolean=false] use legacy Protel file extensions
use_protel_extensions: false
# [string=''] Board variant to apply
variant: ''
layers:
- 'Edge.Cuts'
- 'copper'
- 'F.Mask'
- 'B.Mask'
- 'F.SilkS'
- 'B.SilkS'
+80
View File
@@ -0,0 +1,80 @@
outputs:
- name: 'board_black_top.svg'
comment: 'https://github.com/yaqwsx/PcbDraw'
type: 'pcbdraw'
dir: 'img/pcb'
options:
# [boolean=false] render the bottom side of the board (default is top side)
bottom: false
# [string|list(string)=''] Name of the filter to mark components as not fitted.
# A short-cut to use for simple cases where a variant is an overkill
dnf_filter: ''
# [number=300] [10,1200] dots per inch (resolution) of the generated image
dpi: 300
# [string='svg'] [svg,png,jpg] output format. Only used if no `output` is specified
format: 'svg'
# [list(string)=[]] list of components to highlight
highlight: []
# [list(string)=[]] list of libraries
libs: []
# [boolean=false] mirror the board
mirror: false
# [boolean=false] do not make holes transparent
no_drillholes: false
# [string='%f-%i%v.%x'] name for the generated file. Affected by global options
output: '%f-%i.%x'
# [boolean=false] show placeholder for missing components
placeholder: false
# [dict|None] replacements for PCB references using components (lib:component)
remap:
# [list(string)|string=none] [none,all] list of components to draw, can be also a string for none or all.
# The default is none
show_components: none
# [string|dict] PCB style (colors). An internal name, the name of a JSON file or the style options
style: '/usr/share/pcbdraw/styles/set-black-cu.json'
# [string=''] Board variant to apply
variant: ''
# [boolean=false] render V-CUTS on the Cmts.User layer
vcuts: false
# [string='visible'] [visible,all,none] using visible only the warnings about components in the visible side are generated
warnings: 'none'
- name: 'board_black_bottom.svg'
comment: 'https://github.com/yaqwsx/PcbDraw'
type: 'pcbdraw'
dir: 'img/pcb'
options:
# [boolean=false] render the bottom side of the board (default is top side)
bottom: true
# [string|list(string)=''] Name of the filter to mark components as not fitted.
# A short-cut to use for simple cases where a variant is an overkill
dnf_filter: ''
# [number=300] [10,1200] dots per inch (resolution) of the generated image
dpi: 300
# [string='svg'] [svg,png,jpg] output format. Only used if no `output` is specified
format: 'svg'
# [list(string)=[]] list of components to highlight
highlight: []
# [list(string)=[]] list of libraries
libs: []
# [boolean=false] mirror the board
mirror: false
# [boolean=false] do not make holes transparent
no_drillholes: false
# [string='%f-%i%v.%x'] name for the generated file. Affected by global options
output: '%f-%i.%x'
# [boolean=false] show placeholder for missing components
placeholder: false
# [dict|None] replacements for PCB references using components (lib:component)
remap:
# [list(string)|string=none] [none,all] list of components to draw, can be also a string for none or all.
# The default is none
show_components: none
# [string|dict] PCB style (colors). An internal name, the name of a JSON file or the style options
style: '/usr/share/pcbdraw/styles/set-black-cu.json'
# [string=''] Board variant to apply
variant: ''
# [boolean=false] render V-CUTS on the Cmts.User layer
vcuts: false
# [string='visible'] [visible,all,none] using visible only the warnings about components in the visible side are generated
warnings: 'none'
+55
View File
@@ -0,0 +1,55 @@
outputs:
# For more information: https://github.com/INTI-CMNB/KiBoM
- name: 'kicad 3d view top'
type: 'render_3d'
dir: 'img/render'
options:
download: true
output: '%f-top.%x'
ray_tracing: true
view: top
- name: 'kicad 3d view bottom'
type: 'render_3d'
dir: 'img/render'
options:
download: true
output: '%f-bottom.%x'
ray_tracing: true
view: bottom
- name: 'kicad 3d view front'
type: 'render_3d'
dir: 'img/render'
options:
download: true
output: '%f-front.%x'
ray_tracing: true
view: front
- name: 'kicad 3d view rear'
type: 'render_3d'
dir: 'img/render'
options:
download: true
output: '%f-rear.%x'
ray_tracing: true
view: rear
- name: 'kicad 3d view right'
type: 'render_3d'
dir: 'img/render'
options:
download: true
output: '%f-right.%x'
ray_tracing: true
view: right
- name: 'kicad 3d view left'
type: 'render_3d'
dir: 'img/render'
options:
download: true
output: '%f-left.%x'
ray_tracing: true
view: left
+32
View File
@@ -0,0 +1,32 @@
kibot:
version: 1
preflight:
set_text_variables:
- name: "date"
command: git log -1 --format="%as"
- name: "version"
command: git describe --exact-match --tags 2> /dev/null || git rev-parse --short HEAD
update_xml: true
run_erc: false
run_drc: false
check_zone_fills: true
ignore_unconnected: true
# filters:
# - name: "exclude_any"
# type: "generic"
# comment: "Exclude logos, testpoints, fiducials and power"
# exclude_any:
# - column: Reference
# regex: "^(G|#|TP|F).*"
import:
# docs
- file: .kibot/docs.kibot.yml
# fabrications
- file: .kibot/bom_octopart.kibot.yml
- file: .kibot/gerbers.kibot.yml
- file: .kibot/drills.kibot.yml
- file: .kibot/fabrications.kibot.yml
# img
- file: .kibot/render.kibot.yml
- file: .kibot/plot.kibot.yml