├── Images
└── .gitkeep
├── Computations
└── .gitkeep
├── kibot_yaml
├── .gitignore
├── kibot_out_netlist.yaml
├── kibot_filt_exclude_testpoints.yaml
├── kibot_pre_erc_report.yaml
├── kibot_out_step.yaml
├── kibot_out_odb.yaml
├── kibot_pre_drc_report.yaml
├── kibot_filt_field_rename.yaml
├── kibot_out_html_kiri.yaml
├── kibot_out_html_kicanvas.yaml
├── kibot_out_sch_variant.yaml
├── kibot_out_md_report.yaml
├── kibot_out_csv_pos.yaml
├── kibot_out_pdf_schematic.yaml
├── kibot_out_csv_report.yaml
├── kibot_out_excellon_drill.yaml
├── kibot_out_csv_drill_table.yaml
├── kibot_filt_testpoints.yaml
├── kibot_pre_draw_stackup.yaml
├── kibot_out_gerber.yaml
├── kibot_out_txt_report.yaml
├── kibot_out_navigate_results.yaml
├── kibot_out_html_ibom.yaml
├── kibot_out_compress_fab.yaml
├── kibot_out_csv_bom.yaml
├── kibot_out_png_3d_viewer.yaml
├── kibot_out_html_bom.yaml
├── kibot_out_csv_testpoints_simple.yaml
├── kibot_out_csv_testpoints.yaml
├── kibot_globals.yaml
├── kibot_out_xlsx_bom.yaml
├── kibot_pre_include_table.yaml
├── kibot_out_blender.yaml
├── kicost_config_local_template.yaml
├── kibot_out_pdf_assembly.yaml
├── kibot_pre_set_text_variables.yaml
└── kibot_out_pdf_fabrication.yaml
├── meta
├── icon.png
└── info.html
├── Logos
└── dummy_logo.png
├── kibot_resources
├── fonts
│ ├── Arial.ttf
│ ├── Arial_Bold.ttf
│ ├── Arial_Italic.ttf
│ ├── Arial_Bold_Italic.ttf
│ ├── Times New Roman.ttf
│ ├── Times New Roman Bold.ttf
│ ├── Times New Roman Italic.ttf
│ └── Times New Roman Bold Italic.ttf
├── templates
│ ├── impedance_table.txt
│ ├── assembly_notes.txt
│ ├── fabrication_notes.txt
│ └── readme.txt
├── scripts
│ ├── docker_kibot_windows.bat
│ ├── get_changelog_version.py
│ ├── docker_kibot_linux.sh
│ ├── get_sheet_title.py
│ └── get_changelog.py
└── colors
│ └── Altium_Theme.json
├── CHANGELOG.md
├── .gitignore
├── LICENSE
├── Section A - Title A.kicad_sch
├── KDT_Hierarchical_KiBot.kicad_dru
├── Revision History.kicad_sch
├── Project Architecture.kicad_sch
├── kibot_launch.sh
├── .github
└── workflows
│ └── ci.yaml
├── Templates
├── KDT_Template.kicad_wks
├── KDT_Template_PCB_A5.kicad_wks
├── KDT_Template_PCB_A3.kicad_wks
├── KDT_Template_PCB_A4.kicad_wks
├── KDT_Template_GIT.kicad_wks
├── KDT_Template_PCB_GIT_A5.kicad_wks
├── KDT_Template_PCB_GIT_A3.kicad_wks
└── KDT_Template_PCB_GIT_A4.kicad_wks
└── Section B - TItle B.kicad_sch
/Images/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Computations/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kibot_yaml/.gitignore:
--------------------------------------------------------------------------------
1 | kicost_config_local.yaml
--------------------------------------------------------------------------------
/meta/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nguyen-v/KDT_Hierarchical_KiBot/HEAD/meta/icon.png
--------------------------------------------------------------------------------
/Logos/dummy_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nguyen-v/KDT_Hierarchical_KiBot/HEAD/Logos/dummy_logo.png
--------------------------------------------------------------------------------
/kibot_resources/fonts/Arial.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nguyen-v/KDT_Hierarchical_KiBot/HEAD/kibot_resources/fonts/Arial.ttf
--------------------------------------------------------------------------------
/kibot_resources/fonts/Arial_Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nguyen-v/KDT_Hierarchical_KiBot/HEAD/kibot_resources/fonts/Arial_Bold.ttf
--------------------------------------------------------------------------------
/kibot_resources/fonts/Arial_Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nguyen-v/KDT_Hierarchical_KiBot/HEAD/kibot_resources/fonts/Arial_Italic.ttf
--------------------------------------------------------------------------------
/kibot_resources/fonts/Arial_Bold_Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nguyen-v/KDT_Hierarchical_KiBot/HEAD/kibot_resources/fonts/Arial_Bold_Italic.ttf
--------------------------------------------------------------------------------
/kibot_resources/fonts/Times New Roman.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nguyen-v/KDT_Hierarchical_KiBot/HEAD/kibot_resources/fonts/Times New Roman.ttf
--------------------------------------------------------------------------------
/kibot_resources/fonts/Times New Roman Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nguyen-v/KDT_Hierarchical_KiBot/HEAD/kibot_resources/fonts/Times New Roman Bold.ttf
--------------------------------------------------------------------------------
/kibot_resources/fonts/Times New Roman Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nguyen-v/KDT_Hierarchical_KiBot/HEAD/kibot_resources/fonts/Times New Roman Italic.ttf
--------------------------------------------------------------------------------
/kibot_resources/fonts/Times New Roman Bold Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nguyen-v/KDT_Hierarchical_KiBot/HEAD/kibot_resources/fonts/Times New Roman Bold Italic.ttf
--------------------------------------------------------------------------------
/kibot_resources/templates/impedance_table.txt:
--------------------------------------------------------------------------------
1 | Transmission Line, Impedance [ohms], Tolerance [ohms], Layer, Trace Width [mm], Gap [mm], Ref. Layers
2 | Edge-Coupled Coated Microstrip, 100, ±10 %, L1, 0.2032, 0.28, L2
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | ## [Unreleased]
4 |
5 | ### Fixed
6 |
7 | - Fixes
8 |
9 | ### Added
10 |
11 | - Additions
12 |
13 | ### Changed
14 |
15 | - Changes
16 |
17 | ### Removed
18 |
19 | - Deletions
20 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *-backups
2 | \#auto_saved_files#
3 | _autosave-*
4 | *.lck
5 | *.bak
6 | *.ini
7 | *.kicad_sch-bak
8 | *.kicad_pro-bak
9 | *.kicad_pcb-bak
10 | *.kicad_prl-bak
11 | fp-info-cache
12 | *Zone.Identifier
13 | kibot_*.kicad_pcb
14 | kibot_*.kicad_dru
15 | kibot_*.kicad_prl
16 | kibot_*.kicad_pro
17 |
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_netlist.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for generating netlist in KiCad format
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/netlist.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: netlist
11 |
12 | ...
13 | definitions:
14 | NAME: netlist
15 | COMMENT: Schematic netlist in KiCad format
--------------------------------------------------------------------------------
/kibot_yaml/kibot_filt_exclude_testpoints.yaml:
--------------------------------------------------------------------------------
1 | # KiBot Filter for excluding testpoints
2 |
3 | kibot:
4 | version: 1
5 |
6 | filters:
7 | - name: '@NAME@'
8 | comment: '@COMMENT@'
9 | type: generic
10 | exclude_any:
11 | - column: Reference
12 | regex: "TP"
13 |
14 | ...
15 | definitions:
16 | COMMENT: Exclude only testpoints
17 | NAME: exclude_testpoints
--------------------------------------------------------------------------------
/kibot_yaml/kibot_pre_erc_report.yaml:
--------------------------------------------------------------------------------
1 | # KiBot preflight for generating ERC reports
2 | # https://kibot.readthedocs.io/en/latest/configuration/preflights/erc.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | preflight:
8 | erc:
9 | category: '@DIR@'
10 | dir: '@DIR@'
11 | format: 'HTML, RPT'
12 | output: 'report_%f-%i%I%v.%x'
13 |
14 | ...
15 | definitions:
16 | CATEGORY: Schematic
17 | DIR: Reports
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_step.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for generating PCB 3D model in STEP format
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/step.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: step
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | options:
14 | output: '%f%I%v.%x'
15 |
16 | definitions:
17 | NAME: step
18 | COMMENT: PCB 3D model in STEP format
19 | DIR: 3D
--------------------------------------------------------------------------------
/meta/info.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Vincent Nguyen - Hierarchical KiCAD Design Template for CI/CD
6 |
7 |
8 | Vincent Nguyen - Hierarchical KiCAD Design Template for CI/CD
9 | This creates a hierachical project, with CI/CD integration using KiBot.
10 |
11 |
12 |
--------------------------------------------------------------------------------
/kibot_resources/templates/assembly_notes.txt:
--------------------------------------------------------------------------------
1 | ASSEMBLY NOTES (UNLESS OTHERWISE SPECIFIED)
2 |
3 | 1) DO NOT POPULATE PARTS ARE MARKED WITH A RED CROSS.
4 |
5 | 2) DO NOT POPULATE PARTS ARE NOT PRESENT IN THE BOM.
6 |
7 | 3) IF CONFLICTING INFORMATION IS FOUND BETWEEN THE ASSEMBLY
8 | FILE AND BOM, BOM SHOULD BE USED AS THE MAIN SOURCE.
9 |
10 | 4) CONFORMAL COATING IS NOT REQUIRED.
11 |
12 | 5) DOT IDENTIFIES PIN #1 LOCATION AND DEVICE ORIENTATION
13 | WHEN VIEWED FROM THE TOP.
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_odb.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for generating ODB++ files
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/odb.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: odb
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | options:
14 | dnf_filter: _kibom_dnf_Config
15 |
16 | ...
17 | definitions:
18 | NAME: zip_odb
19 | COMMENT: ODB++ in ZIP format
20 | DIR: Manufacturing/Fabrication
--------------------------------------------------------------------------------
/kibot_yaml/kibot_pre_drc_report.yaml:
--------------------------------------------------------------------------------
1 | # KiBot preflight for generating DRC reports
2 | # https://kibot.readthedocs.io/en/latest/configuration/preflights/drc.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | preflight:
8 | check_zone_fills: @CHECK_ZONE_FILLS@
9 | drc:
10 | category: '@DIR@'
11 | dir: '@DIR@'
12 | dont_stop: true
13 | format: 'HTML, RPT'
14 | output: 'report_%f-%i%I%v.%x'
15 |
16 | ...
17 | definitions:
18 | CHECK_ZONE_FILLS: true
19 | CATEGORY: Schematic
20 | DIR: Reports
--------------------------------------------------------------------------------
/kibot_yaml/kibot_filt_field_rename.yaml:
--------------------------------------------------------------------------------
1 | # KiBot Filter for renaming Manufacturer Part Number field
2 |
3 | kibot:
4 | version: 1
5 |
6 | filters:
7 | - name: '@NAME@'
8 | comment: '@COMMENT@'
9 | type: field_rename
10 | rename:
11 | - field: '@MPN_FIELD@'
12 | name: manf#
13 | - field: '@MAN_FIELD@'
14 | name: manf
15 |
16 | ...
17 | definitions:
18 | COMMENT: Rename fields
19 | NAME: field_rename
20 | MPN_FIELD: 'Manufacturer Part Number'
21 | MAN_FIELD: 'Manufacturer'
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_html_kiri.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for diff web page between commits
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/kiri.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: kiri
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | layers: all
14 | options:
15 | keep_generated: true
16 | max_commits: 3
17 | revision: 'HEAD'
18 | zones: 'global'
19 |
20 | definitions:
21 | NAME: html_kiri
22 | COMMENT: KiRi webpage
23 | DIR: KiRI
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_html_kicanvas.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for exploring PCB/SCH files
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/kicanvas.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: kicanvas
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | options:
14 | dnf_filter: _kibom_dnf_Config
15 | overlay: true
16 | source: ["schematic", "pcb", "project"]
17 |
18 | definitions:
19 | NAME: html_kicanvas
20 | COMMENT: KiCanvas webpage
21 | DIR: KiCanvas
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_sch_variant.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for generating Alternate Schematic with split value fields
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/sch_variant.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: sch_variant
11 | dir: '@DIR@'
12 | options:
13 | pre_transform: _value_split_replace
14 | copy_project: true
15 |
16 | ...
17 | definitions:
18 | NAME: value_split
19 | COMMENT: Split component Value field of components
20 | DIR: Schematic
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_md_report.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for MD Report (e.g. README.md)
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/report.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: report
11 | category: '@CATEGORY@'
12 | dir: '@DIR@'
13 | options:
14 | output: '@OUTPUT_NAME@.md'
15 | template: @TEMPLATE@
16 |
17 | ...
18 | definitions:
19 | NAME: md_readme
20 | COMMENT: Report
21 | DIR: .
22 | CATEGORY: /
23 | OUTPUT_NAME: README
24 | TEMPLATE: kibot_ressources/template/readme.txt
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_csv_pos.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for generating Position file in CSV format
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/position.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: position
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | options:
14 | format: 'CSV'
15 | only_smd: false
16 | include_virtual: false
17 | output: '%f-CPL%I%v.%x'
18 | separate_files_for_front_and_back: false
19 |
20 | definitions:
21 | NAME: csv_position
22 | COMMENT: Position file in CSV format
23 | DIR: Manufacturing/Assembly
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_pdf_schematic.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for generating schematics in PDF format
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/pdf_sch_print.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: pdf_sch_print
11 | dir: '@DIR@'
12 | category: '@DIR@'
13 | options:
14 | background_color: false
15 | color_theme: '@COLOR_THEME@'
16 | default_font: '@DEFAULT_FONT@'
17 |
18 | definitions:
19 | NAME: pdf_schematic
20 | COMMENT: Schematic in PDF format
21 | COLOR_THEME: Altium_Theme
22 | DEFAULT_FONT: Times New Roman
23 | DIR: Schematic
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_csv_report.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for CSV Report
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/report.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: report
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | output_id: @OUTPUT_ID@
14 | options:
15 | output: '%f-%I%v.csv'
16 | template: @TEMPLATE@
17 | exclude_filter: '_mechanical'
18 | csv_remove_leading_spaces: true
19 | ...
20 | definitions:
21 | NAME: csv_report
22 | COMMENT: Report in CSV format
23 | DIR: Manufacturing
24 | OUTPUT_ID: ''
25 | TEMPLATE: total_components
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_excellon_drill.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for generating drill Gerber files
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/excellon.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: excellon
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | options:
14 | generate_drill_files: @GENERATE_DRILL@
15 | pth_and_npth_single_file: @PTH_NPTH@
16 | map: '@MAP_FORMAT@'
17 |
18 | ...
19 | definitions:
20 | NAME: drl_excellon
21 | COMMENT: Drill in Excellon format
22 | DIR: Manufacturing/Fabrication/Gerbers
23 | GENERATE_DRILL: true
24 | PTH_NPTH: false
25 | MAP_FORMAT: None
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_csv_drill_table.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for generating Drill Tables
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/excellon.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: excellon
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | options:
14 | generate_drill_files: false
15 | table:
16 | unify_pth_and_npth: '@PTH_NPTH@'
17 | group_slots_and_round_holes: @GROUP_ROUND_SLOTS@
18 |
19 | ...
20 | definitions:
21 | NAME: csv_drill_table
22 | COMMENT: Drill Table in CSV format
23 | DIR: Manufacturing/Fabrication/Tables
24 | PTH_NPTH: 'yes'
25 | GROUP_ROUND_SLOTS: true
--------------------------------------------------------------------------------
/kibot_yaml/kibot_filt_testpoints.yaml:
--------------------------------------------------------------------------------
1 | # KiBot Filter for testpoints
2 | # These filters are used for multiple outputs to highlight testpoints
3 | # or generate testpoint lists for top and bottom layers
4 |
5 | kibot:
6 | version: 1
7 |
8 | filters:
9 | - name: '@NAME@'
10 | comment: '@COMMENT@'
11 | type: generic
12 | exclude_top: @EXCLUDE_TOP@
13 | exclude_bottom: @EXCLUDE_BOTTOM@
14 | include_only:
15 | - column: Reference
16 | regex: "TP"
17 | exclude_refs: @EXCLUDE_REFS@
18 |
19 | ...
20 | definitions:
21 | COMMENT: Select only testpoints
22 | NAME: only_testpoints
23 | EXCLUDE_TOP: false
24 | EXCLUDE_BOTTOM: false
25 | EXCLUDE_REFS: '[MB*]'
--------------------------------------------------------------------------------
/kibot_yaml/kibot_pre_draw_stackup.yaml:
--------------------------------------------------------------------------------
1 | # KiBot preflight for Draw Fancy Stackup feature
2 | # https://kibot.readthedocs.io/en/latest/configuration/preflights/draw_fancy_stackup.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | preflight:
8 | update_xml: true
9 | draw_fancy_stackup:
10 | gerber: '@GERBER_OUTPUT@'
11 | gerber_extension_only: True
12 | draw_stackup: True
13 | draw_vias: True
14 | columns:
15 | - 'material'
16 | - 'layer'
17 | - 'thickness'
18 | - 'dielectric'
19 | - 'layer_type'
20 | - 'gerber'
21 | note: '@NOTE@'
22 |
23 | ...
24 | definitions:
25 | GERBER_OUTPUT: gbr_gerbers
26 | NOTE: external layer thicknesses are specified after plating
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_gerber.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for generating Gerber files
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/gerber.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: gerber
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | layers: ['copper', 'Edge.Cuts', 'F.Silkscreen', 'F.Mask', 'F.Paste', 'B.Silkscreen', 'B.Mask', 'B.Paste']
14 | options:
15 | subtract_mask_from_silk: true
16 | plot_footprint_refs: @PLOT_REFS@
17 | plot_footprint_values: false
18 | create_gerber_job_file: false
19 |
20 | ...
21 | definitions:
22 | NAME: gbr_gerbers
23 | COMMENT: Gerbers in GBR format
24 | DIR: Manufacturing/Fabrication/Gerbers
25 | PLOT_REFS: true
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_txt_report.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for TXT Report (e.g. Fabrication/Assembly notes)
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/report.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: report
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | output_id: @OUTPUT_ID@
14 | options:
15 | output: '%f-%I%v.txt'
16 | template: @TEMPLATE@
17 | exclude_filter: '_mechanical'
18 | mm_digits: 3
19 | display_trailing_zeros: True
20 | ...
21 | definitions:
22 | NAME: txt_fabrication_notes
23 | COMMENT: Report
24 | DIR: Manufacturing
25 | OUTPUT_ID: _notes
26 | TEMPLATE: kibot_ressources/template/fabrication_notes.txt
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_navigate_results.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for generating an HTML page for navigating the results
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/navigate_results_rb.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: navigate_results_rb
11 | # category: '@DIR@'
12 | dir: '@DIR@'
13 | options:
14 | link_from_root: 'index.html'
15 | logo: '@LOGO@'
16 | logo_force_height: 40
17 | logo_url: '@LOGO_URL@'
18 | nav_bar: true
19 | render_markdown: true
20 | display_category_images: false
21 | display_kibot_version: false
22 | title: '@TITLE@'
23 | title_url: '@LOGO_URL@'
24 |
25 | ...
26 | definitions:
27 | NAME: html_navigate_results
28 | COMMENT: Results webpage in HTML format
29 | DIR: HTML
30 | TITLE: ''
31 | LOGO: ''
32 | LOGO_URL: ''
--------------------------------------------------------------------------------
/kibot_resources/scripts/docker_kibot_windows.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | REM Set variables for display and user name
3 | set DISPLAY=host.docker.internal:0.0
4 | set USER_NAME=%USERNAME%
5 |
6 | REM Set default image
7 | set "IMAGE=ghcr.io/inti-cmnb/kicad8_auto_full:dev"
8 |
9 | REM Check for optional -v flag and version number
10 | if /I "%~1"=="-v" (
11 | if "%~2"=="9" (
12 | set "IMAGE=ghcr.io/inti-cmnb/kicad9_auto_full:dev"
13 | ) else (
14 | echo Unsupported version: %~2
15 | goto :eof
16 | )
17 | )
18 |
19 | REM Run the Docker container with mounted volumes
20 | docker run --rm -it ^
21 | --env NO_AT_BRIDGE=1 ^
22 | --env DISPLAY=%DISPLAY% ^
23 | --workdir="/home/%USER_NAME%" ^
24 | --volume=C:\Users\%USER_NAME%:/home/%USER_NAME%:rw ^
25 | --volume=/tmp/.X11-unix:/tmp/.X11-unix ^
26 | --entrypoint /bin/bash ^
27 | -p 8000:8000 ^
28 | %IMAGE%
29 |
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_html_ibom.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for generating Interactive HTML BoM
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/ibom.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: ibom
11 | dir: '@DIR@'
12 | category: '@DIR@'
13 | options:
14 | # extra_data_file: '%F.net'
15 | dark_mode: true
16 | show_fields: 'Value,Footprint,@MPN_FIELD@'
17 | group_fields: 'Value,@MPN_FIELD@'
18 | show_fabrication: true
19 | highlight_pin1: "selected"
20 | exclude_filter: '@EXCLUDE_FILTER@'
21 | hide_excluded: true
22 | forced_name: '@TITLE@'
23 | mark_when_checked: 'Placed'
24 |
25 | ...
26 | definitions:
27 | NAME: html_bom_interactive
28 | COMMENT: Interactive BOM in HTML format
29 | DIR: Manufacturing/Assembly
30 | EXCLUDE_FILTER: exclude_testpoints
31 | TITLE: ""
32 | MPN_FIELD: 'Manufacturer Part Number'
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_compress_fab.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for compressing Fabrication files to a ZIP archive
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/compress.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: compress
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | options:
14 | output: '%f-GERBERS%I%v.%x'
15 | move_files: false
16 | files:
17 | - from_output: @GERBER_OUTPUT@
18 | dest: '/'
19 | - from_output: @DRILL_MAP_OUTPUT@
20 | dest: '/'
21 | - from_output: @DRILL_OUTPUT@
22 | dest: '/'
23 | - from_output: @FABRICATION_OUTPUT@
24 | dest: '/'
25 |
26 | ...
27 | definitions:
28 | NAME: zip_compress_fab
29 | COMMENT: Generates a ZIP file with gerbers, drill and fabrication document
30 | DIR: Manufacturing/Fabrication
31 | GERBER_OUTPUT: gbr_gerbers
32 | DRILL_MAP_OUTPUT: pdf_drill_map
33 | DRILL_OUTPUT: drl_excellon
34 | FABRICATION_OUTPUT: pdf_fabrication
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 Nguyen Vincent
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_csv_bom.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for generating Bill of Materials in CSV format
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/bom.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: bom
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | options:
14 | format: CSV
15 | csv:
16 | hide_pcb_info: true
17 | hide_stats_info: true
18 |
19 | group_fields: ['@MPN_FIELD@', 'Value']
20 |
21 | columns:
22 | - "Row"
23 | - "Quantity Per PCB"
24 | - "References"
25 | - "Value"
26 | - "Datasheet"
27 | - "Footprint"
28 | - "Description"
29 | - "@MAN_FIELD@"
30 | - "@MPN_FIELD@"
31 | - "Supplier Part Number"
32 | # - "arrow#"
33 | # - "digikey#"
34 | # - "farnell#"
35 | # - "mouser#"
36 | # - "newark#"
37 | # - "rs#"
38 | # - "tme#"
39 |
40 | ...
41 | definitions:
42 | NAME: csv_bom
43 | COMMENT: Bill of Materials in CSV format
44 | DIR: Manufacturing/Assembly
45 | MPN_FIELD: 'Manufacturer Part Number'
46 | MAN_FIELD: 'Manufacturer'
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_png_3d_viewer.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for 3D Viewer renders in PNG format
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/render_3d.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: render_3d
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | options:
14 | output: '%f-@SUFFIX@%I%v.%x'
15 | auto_crop: true
16 | enable_crop_workaround: true
17 | rotate_x: @ROTATE_X@
18 | rotate_y: @ROTATE_Y@
19 | rotate_z: @ROTATE_Z@
20 | zoom: @ZOOM@
21 | height: @HEIGHT@
22 | width: @WIDTH@
23 | view: '@VIEW@'
24 | ray_tracing: @RAYTRACING@
25 | force_stackup_colors: true
26 | orthographic: true
27 | transparent_background: true
28 | transparent_background_color: '@KEY_COLOR@'
29 | transparent_background_fuzz: 40
30 |
31 | ...
32 | definitions:
33 | NAME: png_3d_viewer
34 | COMMENT: 3D viewer PCB render in PNG format
35 | DIR: Images
36 | SUFFIX: ""
37 | VIEW: top
38 | RAYTRACING: true
39 | ROTATE_X: 0
40 | ROTATE_Y: 0
41 | ROTATE_Z: 0
42 | ZOOM: 0
43 | HEIGHT: 2000
44 | WIDTH: 2000
45 | KEY_COLOR: '#00FF00'
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_html_bom.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for generating Interactive HTML BoM
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/ibom.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: bom
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | options:
14 | format: HTML
15 | html:
16 | title: 'Bill of Materials'
17 | datasheet_as_link: "Datasheet"
18 | lcsc_link: true
19 | logo: false
20 | style: modern-blue
21 |
22 | group_fields: ['@MPN_FIELD@', 'Value']
23 |
24 | columns:
25 | - "Row"
26 | - "Quantity Per PCB"
27 | - "References"
28 | - "Value"
29 | - "Datasheet"
30 | - "Footprint"
31 | - "Description"
32 | - "@MAN_FIELD@"
33 | - "@MPN_FIELD@"
34 | - "Supplier Part Number"
35 | # - "arrow#"
36 | # - "digikey#"
37 | # - "farnell#"
38 | # - "mouser#"
39 | # - "newark#"
40 | # - "rs#"
41 | # - "tme#"
42 |
43 | ...
44 | definitions:
45 | NAME: html_bom
46 | COMMENT: BOM in HTML format
47 | DIR: Manufacturing/Assembly
48 | MPN_FIELD: 'Manufacturer Part Number'
49 | MAN_FIELD: 'Manufacturer'
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_csv_testpoints_simple.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for generating CSV Tespoints
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/bom.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: bom
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | options:
14 | output: '%f-testpoints@SUFFIX@%I%v.%x'
15 | csv:
16 | hide_pcb_info: True
17 | hide_stats_info: True
18 | pre_transform: ['_kicost_rename']
19 | exclude_filter: '@EXCLUDE_FILTER@'
20 | dnf_filter: '_null'
21 | exclude_marked_in_sch: false
22 | group_fields: []
23 | sort_style: ref
24 | use_aux_axis_as_origin: true
25 | ignore_dnf: false
26 | format: CSV
27 | footprint_type_values: 'SMT,THRU,'
28 | right_digits: 2
29 | columns:
30 | - field: References
31 | name: Ref.
32 | - field: Net Label
33 | name: Net
34 | - field: Footprint X
35 | name: X [mm]
36 | - field: Footprint Y
37 | name: Y [mm]
38 |
39 | ...
40 | definitions:
41 | NAME: csv_testpoints
42 | COMMENT: Testpoint report in CSV format
43 | DIR: Testing/Testpoints
44 | SUFFIX: ""
45 | EXCLUDE_FILTER: only_testpoints
--------------------------------------------------------------------------------
/kibot_yaml/kibot_out_csv_testpoints.yaml:
--------------------------------------------------------------------------------
1 | # KiBot output for generating CSV Tespoints
2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/bom.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | outputs:
8 | - name: @NAME@
9 | comment: '@COMMENT@'
10 | type: bom
11 | category: '@DIR@'
12 | dir: '@DIR@'
13 | options:
14 | output: '%f-testpoints@SUFFIX@%I%v.%x'
15 | csv:
16 | hide_pcb_info: True
17 | hide_stats_info: True
18 | pre_transform: ['_kicost_rename']
19 | exclude_filter: '@EXCLUDE_FILTER@'
20 | dnf_filter: '_null'
21 | exclude_marked_in_sch: false
22 | group_fields: []
23 | sort_style: ref
24 | use_aux_axis_as_origin: true
25 | ignore_dnf: false
26 | format: CSV
27 | footprint_type_values: 'SMT,THRU,'
28 | columns:
29 | - field: References
30 | name: Testpoint Ref.
31 | - field: Net Name
32 | name: Net
33 | - field: Net Class
34 | - field: Footprint X
35 | name: X
36 | - field: Footprint Y
37 | name: Y
38 | - field: Footprint Side
39 | name: Side
40 | - field: Footprint Type
41 | name: Pad Type
42 | - field: Value
43 | - field: Footprint
44 |
45 | ...
46 | definitions:
47 | NAME: csv_testpoints
48 | COMMENT: Testpoint report in CSV format
49 | DIR: Testing/Testpoints
50 | SUFFIX: ""
51 | EXCLUDE_FILTER: only_testpoints
--------------------------------------------------------------------------------
/kibot_yaml/kibot_globals.yaml:
--------------------------------------------------------------------------------
1 | # KiBot Globals
2 | # https://kibot.readthedocs.io/en/latest/configuration/global.html
3 |
4 | kibot:
5 | version: 1
6 |
7 | global:
8 | out_dir: '@OUTPUT_DIR@'
9 | dnp_cross_top_layer: '@LAYER_DNP_TOP@'
10 | dnp_cross_bottom_layer: '@LAYER_DNP_BOTTOM@'
11 | disable_kicad_cross_on_fab: true
12 | extra_pth_drill: 0 # for annular ring computation.
13 | filters:
14 | # 'KiCad config without environment.vars section'
15 | - number: 9
16 | # 'Unable to find KiCad 3D models'
17 | - number: 10
18 | # 'Malformed value'
19 | - number: 20
20 | # 'More than one SCH file found in ...'
21 | - number: 44
22 | # Invalid column name
23 | - number: 62
24 | # 3D models downloaded or cached
25 | - number: 98
26 | # 'Avoid adding extra information in the component value, use separated fields'
27 | - number: 133
28 | # 'This output depends on KiCad version, use blender_export instead'
29 | - number: 143
30 | # 'Not including component [ in filters because it has a malformed reference'
31 | - number: 147
32 | # 'No output to handle ]