├── 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 ' 33 | - number: 168 34 | # 'Please only use simple data types for definitions' 35 | - number: 172 36 | # Can't enable without a key 37 | - number: 1008 38 | 39 | ... 40 | definitions: 41 | OUTPUT_DIR: ./ 42 | LAYER_DNP_TOP: F.DNP 43 | LAYER_DNP_BOTTOM: B.DNP -------------------------------------------------------------------------------- /kibot_resources/scripts/get_changelog_version.py: -------------------------------------------------------------------------------- 1 | import re 2 | import sys 3 | import argparse 4 | 5 | def get_last_version(file_path): 6 | try: 7 | with open(file_path, 'r') as file: 8 | content = file.read() 9 | 10 | # Regex to match version entries 11 | version_pattern = r"## \[(.*?)\]" 12 | versions = re.findall(version_pattern, content) 13 | 14 | if not versions: 15 | return "N/A" 16 | 17 | # Check the last entry 18 | last_version = versions[0] # First match is the most recent 19 | 20 | if last_version.lower() == "unreleased": 21 | if len(versions) > 1: 22 | second_last_version = versions[1] 23 | return f"{second_last_version}+ (Unreleased)" 24 | else: 25 | return "(Unreleased)" 26 | else: 27 | return last_version 28 | 29 | except FileNotFoundError: 30 | return f"File '{file_path}' not found." 31 | except Exception as e: 32 | return f"An error occurred: {e}" 33 | 34 | if __name__ == "__main__": 35 | parser = argparse.ArgumentParser(description="Get the latest version from a changelog file.") 36 | parser.add_argument("-f", "--file", required=True, help="Path to the changelog file.") 37 | args = parser.parse_args() 38 | 39 | version = get_last_version(args.file) 40 | if version: 41 | print(version) -------------------------------------------------------------------------------- /kibot_yaml/kibot_out_xlsx_bom.yaml: -------------------------------------------------------------------------------- 1 | # KiBot output for generating Bill of Materials in XLSX 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: XLSX 15 | pre_transform: 16 | - _value_split 17 | - @FILT_PRE_TRANSFORM@ 18 | count_smd_tht: true 19 | distributors: 20 | - Mouser 21 | - Digi-Key 22 | - TME 23 | # - Arrow 24 | # - Farnell 25 | xlsx: 26 | title: 'Bill of Materials' 27 | datasheet_as_link: 'Datasheet' 28 | logo: false 29 | style: modern-blue 30 | kicost: true 31 | kicost_config: '@KICOST_CONFIG@' 32 | specs: true 33 | 34 | columns: 35 | - "Row" 36 | - "Quantity Per PCB" 37 | - "References" 38 | - "Value" 39 | - "Datasheet" 40 | - "Footprint" 41 | - "Description" 42 | - "manf" 43 | - "manf#" 44 | - "Supplier Part Number" 45 | # - "arrow#" 46 | # - "digikey#" 47 | # - "farnell#" 48 | # - "mouser#" 49 | # - "newark#" 50 | # - "rs#" 51 | # - "tme#" 52 | ... 53 | definitions: 54 | NAME: xlsx_costs_bom 55 | COMMENT: Costs Bill of Materials in XLSX format 56 | DIR: Manufacturing/Assembly 57 | KICOST_CONFIG: '' 58 | FILT_PRE_TRANSFORM: field_rename -------------------------------------------------------------------------------- /kibot_resources/scripts/docker_kibot_linux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Default image version 4 | IMAGE="ghcr.io/inti-cmnb/kicad8_auto_full:dev" 5 | 6 | # Parse the optional -v flag 7 | while getopts "v:" opt; do 8 | case "$opt" in 9 | v) 10 | if [ "$OPTARG" = "9" ]; then 11 | IMAGE="ghcr.io/inti-cmnb/kicad9_auto_full:dev" 12 | else 13 | echo "Unsupported version: $OPTARG" >&2 14 | exit 1 15 | fi 16 | ;; 17 | *) 18 | echo "Usage: $0 [-v 9]" >&2 19 | exit 1 20 | ;; 21 | esac 22 | done 23 | 24 | export USER_ID=$(id -u) 25 | export GROUP_ID=$(id -g) 26 | export USER_NAME=$(whoami) 27 | 28 | docker run --rm -it \ 29 | --user "$USER_ID:$GROUP_ID" \ 30 | --env NO_AT_BRIDGE=1 \ 31 | --env DISPLAY="$DISPLAY" \ 32 | --workdir="/home/$USER_NAME" \ 33 | --volume=/tmp/.X11-unix:/tmp/.X11-unix \ 34 | --volume="/etc/group:/etc/group:ro" \ 35 | --volume="/etc/passwd:/etc/passwd:ro" \ 36 | --volume="/etc/shadow:/etc/shadow:ro" \ 37 | --volume="/home/$USER_NAME:/home/$USER_NAME:rw" \ 38 | -p 8000:8000 \ 39 | --entrypoint /bin/bash \ 40 | "$IMAGE" -c " 41 | if ! id $USER_NAME &>/dev/null; then 42 | echo \"Creating user $USER_NAME ($USER_ID:$GROUP_ID)...\" 43 | useradd -u $USER_ID -g $GROUP_ID -d /home/$USER_NAME -m $USER_NAME 44 | chown -R $USER_ID:$GROUP_ID /home/$USER_NAME 45 | fi 46 | exec su - $USER_NAME" 47 | -------------------------------------------------------------------------------- /kibot_resources/templates/fabrication_notes.txt: -------------------------------------------------------------------------------- 1 | FABRICATION NOTES (UNLESS OTHERWISE SPECIFIED) 2 | 3 | 1) FABRICATE PER IPC-6012A CLASS 2. 4 | 5 | 2) OUTLINE DEFINED IN SEPARATE GERBER FILE WITH 6 | "Edge_Cuts.GBR" SUFFIX. 7 | 8 | DIMENSIONS OF CIRCUMSIZED RECTANGLE SHOWN ON THIS 9 | DRAWING FOR REFERENCE ONLY. 10 | 11 | 3) SEE SEPARATE DRILL FILES WITH ".DRL" SUFFIX 12 | FOR HOLE LOCATIONS. 13 | 14 | SELECTED HOLE LOCATIONS SHOWN ON THIS DRAWING 15 | FOR REFERENCE ONLY. 16 | 17 | 4) SURFACE FINISH: ${pcb_finish_cap} 18 | 19 | 5) SOLDERMASK ON BOTH SIDES OF THE BOARD SHALL 20 | BE LPI, COLOR ${solder_mask_color_text_cap}. 21 | 22 | 6) SILK SCREEN LEGEND TO BE APPLIED PER LAYER 23 | STACKUP USING ${silk_screen_color_text_cap} NON-CONDUCTIVE EPOXY INK. 24 | 25 | 7) ALL VIAS ARE TENTED ON BOTH SIDES UNLESS 26 | SOLDERMASK OPENED IN GERBER. 27 | 28 | 8) VENDOR SHOULD FOLLOW ROHS COMPLIANT PROCESS 29 | AND Pb FREE FOR MANUFACTURING 30 | 31 | 9) PCB MATERIAL REQUIREMENTS: 32 | 33 | A. FLAMMABILITY RATING MUST MEET OR EXCEED 34 | UL94V-0 REQUIREMENTS. 35 | B. Tg 170 C OR EQUIVALENT. 36 | C. EQUIVALENT MATERIAL SHALL BE RoHS COMPLIANT, 37 | HALOGEN FREE AND APPROVED BY ${COMPANY_cap}. 38 | 39 | 10) DESIGN GEOMETRY MINIMUM FEATURE SIZES: 40 | 41 | BOARD SIZE ${bb_w_mm} × ${bb_h_mm} mm 42 | BOARD THICKNESS ${thickness_mm} mm 43 | TRACE WIDTH ${track_mm} mm 44 | TRACE TO TRACE ${clearance_mm} mm 45 | MIN. HOLE (PTH) ${drill_pth_real_mm} mm 46 | MIN. HOLE (NPTH) ${drill_npth_real_mm} mm 47 | ANNULAR RING ${oar_mm} mm 48 | COPPER TO HOLE ${c2h_mm} mm 49 | COPPER TO EDGE ${c2e_mm} mm 50 | HOLE TO HOLE ${h2h_mm} mm 51 | #?stackup and impedance_controlled 52 | 53 | #?stackup and impedance_controlled 54 | 11) REFER TO IMPEDANCE TABLE FOR IMPEDANCE CONTROL REQUIREMENTS. 55 | #?stackup and impedance_controlled 56 | 57 | #?stackup and impedance_controlled 58 | 12) CONFIRM SPACE WIDTHS AND SPACINGS. -------------------------------------------------------------------------------- /kibot_yaml/kibot_pre_include_table.yaml: -------------------------------------------------------------------------------- 1 | # KiBot preflight for Include Table feature 2 | # https://kibot.readthedocs.io/en/latest/configuration/preflights/include_table.html 3 | 4 | kibot: 5 | version: 1 6 | 7 | preflight: 8 | include_table: 9 | outputs: 10 | - name: '@NAME_TP_TOP@' 11 | text_alignment: 'left' 12 | invert_columns_order: false 13 | border_width: 0.2 14 | header_rule_width: 0.2 15 | horizontal_rule_width: 0 16 | vertical_rule_width: 0 17 | top_rule_width: 0 18 | bottom_rule_width: 0 19 | column_spacing: 1 20 | # force_font_width: 1.27 # mm 21 | - name: '@NAME_TP_BOTTOM@' 22 | text_alignment: 'right' 23 | invert_columns_order: true 24 | border_width: 0.2 25 | header_rule_width: 0.2 26 | horizontal_rule_width: 0 27 | vertical_rule_width: 0 28 | top_rule_width: 0 29 | bottom_rule_width: 0 30 | column_spacing: 1 31 | # force_font_width: 1.27 # mm 32 | - name: '@NAME_COMP_COUNT@' 33 | text_alignment: 'left' 34 | invert_columns_order: false 35 | border_width: 0.2 36 | header_rule_width: 0.2 37 | horizontal_rule_width: 0 38 | vertical_rule_width: 0 39 | top_rule_width: 0 40 | bottom_rule_width: 0 41 | row_spacing: 3 42 | column_spacing: 1 43 | - name: '@NAME_IMPEDANCE_TABLE@' 44 | text_alignment: 'left' 45 | invert_columns_order: false 46 | border_width: 0.2 47 | header_rule_width: 0.2 48 | vertical_rule_width: 0 49 | top_rule_width: 0 50 | bottom_rule_width: 0 51 | row_spacing: 3 52 | column_spacing: 1 53 | 54 | ... 55 | definitions: 56 | NAME_TP_TOP: csv_testpoints_top 57 | NAME_TP_BOTTOM: csv_testpoints_bottom 58 | NAME_COMP_COUNT: csv_comp_count 59 | NAME_IMPEDANCE_TABLE: csv_impedance_table -------------------------------------------------------------------------------- /kibot_resources/scripts/get_sheet_title.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import xml.etree.ElementTree as ET 3 | import sys 4 | 5 | def get_sheet_title(file_path, page_number, dots_number): 6 | try: 7 | tree = ET.parse(file_path) 8 | root = tree.getroot() 9 | 10 | page_number = str(page_number) 11 | titles = [] 12 | 13 | for sheet in root.findall(".//sheet"): 14 | number = sheet.get("number") 15 | if number == page_number: 16 | # Get the last part of the 'name' attribute after '/' 17 | name = sheet.get("name") 18 | title_block = sheet.find("title_block") 19 | title = title_block.find("title").text if title_block is not None else None 20 | if name: 21 | titles.append(name.split("/")[-2 if name.endswith("/") else -1]) 22 | 23 | if not titles: 24 | print('.'*dots_number) 25 | 26 | elif len(set(titles)) > 1: 27 | print("Conflicting page numbers") 28 | else: 29 | print(titles[0]) 30 | except ET.ParseError: 31 | print("Error: Invalid XML format") 32 | except FileNotFoundError: 33 | print("Error: XML File not found") 34 | except Exception as e: 35 | print(f"Error: {e}") 36 | 37 | 38 | def main(): 39 | parser = argparse.ArgumentParser(description="Get the sheet title based on page number from a KiCad XML file") 40 | parser.add_argument("-p", "--page-number", type=int, required=True, help="Page number to search") 41 | parser.add_argument("-f", "--file", type=str, required=True, help="Path to the schematic XML file") 42 | parser.add_argument("-d", "--dots-number", type=int, required=True, help="Number of dots for empty lines") 43 | 44 | args = parser.parse_args() 45 | get_sheet_title(args.file, args.page_number, args.dots_number) 46 | 47 | 48 | if __name__ == "__main__": 49 | main() 50 | -------------------------------------------------------------------------------- /kibot_resources/scripts/get_changelog.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import re 3 | import sys 4 | 5 | def parse_changelog(file_path, version, title_only, extra_spaces, separators): 6 | try: 7 | with open(file_path, 'r') as f: 8 | changelog = f.read() 9 | except FileNotFoundError: 10 | print(f"Error: File '{file_path}' not found.") 11 | sys.exit(1) 12 | 13 | # Regex to match the version block and stop at the next version or any line with square brackets 14 | version_pattern = re.compile(rf"## \[{version}\] - (\d{{4}}-\d{{2}}-\d{{2}})\n(.*?)(?=## \[|\[Unreleased\]:|\[\d+\.\d+\.\d+\]:|$)", re.DOTALL) 15 | match = version_pattern.search(changelog) 16 | 17 | if not match: 18 | print(f"Version {version} not found.") 19 | return 20 | 21 | date, content = match.groups() 22 | 23 | if title_only: 24 | print(f"Version {version} - {date}") 25 | else: 26 | 27 | if separators is not None: 28 | content = re.sub(r'^(###.*?)$', '_' * separators + r'\n\1', content, flags=re.MULTILINE) 29 | 30 | cleaned_content = re.sub(r'### ', '', content) # Remove ### 31 | 32 | if extra_spaces: 33 | cleaned_content = re.sub(r'(? 2 | Logo 3 |

4 | 5 |

${BOARD_NAME}

6 | 7 |

8 | 9 | CI Badge 10 | 11 |

12 | 13 |

14 | 15 |

16 | 17 | *** 18 | 19 |

20 | 3D Top Angled 21 |         22 | 3D Bottom Angled 23 |

24 | 25 | *** 26 | 27 | ## SPECIFICATIONS 28 | 29 | | Parameter | Value | 30 | | --- | --- | 31 | | Dimensions | ${bb_w_mm} × ${bb_h_mm} mm | 32 | 33 | *** 34 | 35 | ## DIRECTORY STRUCTURE 36 | 37 | . 38 | ├─ Computations # Misc calculations 39 | ├─ HTML # HTML files for generated webpage 40 | ├─ Images # Pictures and renders 41 | │ 42 | ├─ kibot_resources # External resources for KiBot 43 | │ ├─ colors # Color theme for KiCad 44 | │ ├─ fonts # Fonts used in the project 45 | │ ├─ scripts # External scripts used with KiBot 46 | │ └─ templates # Templates for KiBot generated reports 47 | │ 48 | ├─ kibot_yaml # KiBot YAML config files 49 | ├─ KiRI # KiRI (PCB diff viewer) files 50 | │ 51 | ├─ lib # KiCad footprint and symbol libraries 52 | │ ├─ 3d_models # Component 3D models 53 | │ ├─ lib_fp # Footprint libraries 54 | │ └─ lib_sym # Symbol libraries 55 | │ 56 | ├─ Logos # Logos 57 | │ 58 | ├─ Manufacturing # Assembly and fabrication documents 59 | │ ├─ Assembly # Assembly documents (BoM, pos, notes) 60 | │ │ 61 | │ └─ Fabrication # Fabrication documents (ZIP, notes) 62 | │ ├─ Drill Tables # CSV drill tables 63 | │ └─ Gerbers # Gerbers 64 | │ 65 | ├─ Report # Reports for ERC/DRC 66 | ├─ Schematic # PDF of schematic 67 | ├─ Templates # Title block templates 68 | ├─ Testing 69 | │ └─ Testpoints # Testpoints tables 70 | │ 71 | └─ Variants # Outputs for assembly variants 72 | -------------------------------------------------------------------------------- /kibot_yaml/kibot_out_blender.yaml: -------------------------------------------------------------------------------- 1 | # KiBot output for generating PCB 3D model PCB3D Blender format 2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/PCB2Blender_ToolsOptions.html 3 | 4 | kibot: 5 | version: 1 6 | 7 | outputs: 8 | - name: @NAME@ 9 | comment: '@COMMENT@' 10 | type: blender_export 11 | category: '@DIR@' 12 | dir: '@DIR@' 13 | options: 14 | light: 15 | - name: "light1" 16 | energy: 2 17 | pos_x: -size*3.33 18 | pos_y: size*3.33 19 | pos_z: size*5 20 | type: "AREA" 21 | 22 | - name: "light2" 23 | energy: 1 24 | pos_x: 0 25 | pos_y: size*3.33 26 | pos_z: size*7 27 | type: "AREA" 28 | 29 | - name: "light3" 30 | energy: 1 31 | pos_x: 0 32 | pos_y: 0 33 | pos_z: size*12 34 | type: "AREA" 35 | 36 | - name: "light4" 37 | energy: 1 38 | pos_x: -size*3.33 39 | pos_y: size*3.33 40 | pos_z: size*10.0 41 | type: "AREA" 42 | 43 | - name: "light5" 44 | energy: 2 45 | pos_x: 0.0 46 | pos_y: size/2 47 | pos_z: size*20.0 48 | type: "SUN" 49 | 50 | - name: "light6" 51 | energy: 1 52 | pos_x: -size*3.33 53 | pos_y: size*3.33 54 | pos_z: size*10.0 55 | type: "SPOT" 56 | 57 | - name: "light7" 58 | energy: 1 59 | pos_x: -size*3.33 60 | pos_y: size*3.33 61 | pos_z: 0.0 62 | type: "AREA" 63 | 64 | - name: "light8" 65 | energy: 0.2 66 | pos_x: size 67 | pos_y: -size 68 | pos_z: size 69 | type: "AREA" 70 | 71 | - name: "light9" 72 | energy: 0.2 73 | pos_x: -size 74 | pos_y: size/2 75 | pos_z: size 76 | type: "AREA" 77 | 78 | - name: "light10" 79 | energy: 0.2 80 | pos_x: -size 81 | pos_y: size 82 | pos_z: size 83 | type: "AREA" 84 | pcb3d: 85 | download: false 86 | download_lcsc: false 87 | render_options: 88 | auto_crop: true 89 | transparent_background: true 90 | samples: 75 91 | resolution_x: 1500 92 | resolution_y: 1500 93 | auto_camera_z_axis_factor: 1 94 | point_of_view: 95 | rotate_x: 15 96 | rotate_y: 25 97 | rotate_z: 0 98 | view: top 99 | outputs: 100 | - type: render 101 | 102 | definitions: 103 | NAME: blender 104 | COMMENT: PCB 3D model in PCB3D Blender format 105 | DIR: 3D -------------------------------------------------------------------------------- /kibot_yaml/kicost_config_local_template.yaml: -------------------------------------------------------------------------------- 1 | # KiCost configuration file 2 | # Create a copy of this file locally, called kibost_config_local.yaml 3 | # kibost_config_local.yaml should NOT be shared as it contains API keys 4 | # By default, kicost_config_local.yaml is in the .gitignore 5 | # To run KiCost, you can run the following: 6 | # ./kibot_launch.sh -v --costs 7 | kicost: 8 | version: 1 9 | # Prices are valid for a day 10 | cache_ttl: 1 11 | # # We will store the cache here: 12 | cache_path: ~/kicost_cache 13 | 14 | # Add any API option here 15 | # Avoid secrets 16 | APIs: 17 | Digi-Key: 18 | # Digi-Key Client ID for a registered APP 19 | client_id: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 20 | # Digi-Key Client Secret for a registered APP 21 | client_secret: xxxxxxxxxxxxxxxx 22 | 23 | # Use the sandbox server, doesn't count the usage, but returns old data 24 | # sandbox: false 25 | # Only enabled if the client_id and client_secret are defined 26 | enable: true 27 | # Directory for the APIs caches 28 | cache_path: ~/.cache/kicost/Digi-Key 29 | Mouser: 30 | # Mouser Part API key 31 | key: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 32 | # Only enabled if the key is defined 33 | enable: true 34 | # Directory for the APIs caches 35 | cache_path: ~/.cache/kicost/Mouser 36 | # Element14: 37 | # Element14 includes: Farnell, Newark and CPC 38 | # Element14 Product Search API key 39 | # key: XXXXXXXXXXXXXXXXXXXXXXXX 40 | # Only enabled if the key is defined 41 | # enable: false 42 | # Country used for Farnell queries. 43 | # Supported countries: BG,CZ,DK,AT,CH,DE,IE,IL,UK,ES,EE,FI,FR,HU,IT,LT, 44 | # LV,BE,NL,NO,PL,PT,RO,RU,SK,SI,SE,TR,CN,AU,NZ,HK,SG,MY,PH,TH,IN,KR,VN 45 | # farnell_country: UK 46 | # Country used for Newark queries. 47 | # Supported countries: US,CA,MX 48 | # newark_country: US 49 | # Country used for CPC queries. 50 | # Supported countries: UK,IE 51 | # cpc_country: UK 52 | # Directory for the APIs caches 53 | # cache_path: ~/.cache/kicost/Element14 54 | # Nexar: 55 | # Nexar client ID 56 | # client_id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 57 | # Nexar client secret 58 | # client_secret: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 59 | # Only enabled if the client_id and client_secret are defined 60 | # enable: false 61 | # Country where we are buying 62 | # country: US 63 | # Directory for the APIs caches 64 | # cache_path: ./nexar 65 | TME: 66 | # TME token (anonymous or private) 67 | token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 68 | # TME application secret 69 | app_secret: xxxxxxxxxxxxxxxxxxxx 70 | # Only enabled if the token and app_secret are defined 71 | enable: true 72 | # Country where we are buying 73 | # country: US 74 | # Language for the texts 75 | # language: EN 76 | # Directory for the APIs caches 77 | cache_path: ~/.cache/kicost/TME 78 | -------------------------------------------------------------------------------- /kibot_yaml/kibot_out_pdf_assembly.yaml: -------------------------------------------------------------------------------- 1 | # KiBot output for generating Assembly Document in PDF format 2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/pcb_print.html 3 | 4 | kibot: 5 | version: 1 6 | 7 | outputs: 8 | - name: @NAME@ 9 | comment: '@COMMENT@' 10 | type: pcb_print 11 | category: '@DIR@' 12 | dir: '@DIR@' 13 | options: 14 | colored_vias: false 15 | colored_pads: false 16 | color_theme: '@COLOR_THEME@' 17 | output: '%f-assembly%I%v.%x' 18 | format: 'PDF' 19 | title: '@DOC_TITLE@ Document' 20 | realistic_solder_mask: false 21 | dpi: 1200 22 | dnf_filter: _kibom_dnf_Config 23 | # dnf_filter: '_null' 24 | sheet_reference_layout: '@SHEET_WKS@' 25 | include_table: 26 | outputs: 27 | - name: '@NAME_COMP_COUNT@' 28 | text_alignment: 'left' 29 | invert_columns_order: false 30 | border_width: 0.4 31 | header_rule_width: 0.2 32 | horizontal_rule_width: 0 33 | vertical_rule_width: 0 34 | top_rule_width: 0 35 | bottom_rule_width: 0 36 | row_spacing: 3 37 | column_spacing: 2 38 | pages: 39 | - scaling: @SCALING@ 40 | layer_var: '' 41 | title: '@DOC_TITLE@' 42 | sheet: Top/Bottom View 43 | sheet_reference_color: '#000000' 44 | layers: 45 | - layer: '@LAYER_TITLE_PAGE@' 46 | color: '#000000' 47 | 48 | - scaling: @SCALING@ 49 | layer_var: "Top Assembly (Scale @SCALING@:1)" 50 | title: '@DOC_TITLE@' 51 | sheet: Top Assembly (Scale @SCALING@:1) 52 | sheet_reference_color: '#000000' 53 | colored_holes: true 54 | holes_color: "#FFFFFF" 55 | layers: 56 | - layer: Edge.Cuts 57 | color: '#000000' 58 | - layer: F.Cu 59 | color: '#EEDAB5' 60 | - layer: F.Mask 61 | color: '#B9B9B9' 62 | - layer: F.Paste 63 | color: '#E1A98E' 64 | - layer: F.Silkscreen 65 | color: '#DB9DE1' 66 | - layer: F.Fab 67 | exclude_filter: '@FAB_EXCLUDE_FILTER@' 68 | color: '#744679' 69 | - layer: '@LAYER_ASSEMBLY_TEXT_TOP@' 70 | color: '#000000' 71 | - layer: '@LAYER_DNP_CROSS_TOP@' 72 | color: '#D63034' 73 | 74 | - scaling: @SCALING@ 75 | layer_var: "Bottom Assembly (Scale @SCALING@:1)" 76 | mirror: true 77 | mirror_pcb_text: false 78 | title: '@DOC_TITLE@' 79 | sheet: Bottom Assembly (Scale @SCALING@:1) 80 | sheet_reference_color: '#000000' 81 | colored_holes: true 82 | holes_color: "#FFFFFF" 83 | layers: 84 | - layer: Edge.Cuts 85 | color: '#000000' 86 | - layer: B.Cu 87 | color: '#D5DBF4' 88 | - layer: B.Mask 89 | color: '#B9B9B9' 90 | - layer: B.Paste 91 | color: '#BCB9DD' 92 | - layer: B.Silkscreen 93 | color: '#DB9DE1' 94 | - layer: B.Fab 95 | exclude_filter: '@FAB_EXCLUDE_FILTER@' 96 | color: '#400080' 97 | - layer: '@LAYER_ASSEMBLY_TEXT_BOTTOM@' 98 | color: '#000000' 99 | - layer: '@LAYER_DNP_CROSS_BOTTOM@' 100 | color: '#D63034' 101 | 102 | ... 103 | definitions: 104 | NAME: pdf_assembly 105 | COMMENT: Assembly document in PDF format 106 | DIR: Manufacturing/Assembly 107 | DOC_TITLE: Assembly 108 | COLOR_THEME: Altium_Theme 109 | SHEET_WKS: ${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks 110 | SCALING: 1.0 111 | FAB_EXCLUDE_FILTER: exclude_testpoints 112 | LAYER_TITLE_PAGE: TitlePage 113 | LAYER_ASSEMBLY_TEXT_TOP: F.AssemblyText 114 | LAYER_ASSEMBLY_TEXT_BOTTOM: B.AssemblyText 115 | LAYER_DNP_CROSS_TOP: F.DNP 116 | LAYER_DNP_CROSS_BOTTOM: B.DNP 117 | NAME_COMP_COUNT: csv_comp_count -------------------------------------------------------------------------------- /Section A - Title A.kicad_sch: -------------------------------------------------------------------------------- 1 | (kicad_sch 2 | (version 20231120) 3 | (generator "eeschema") 4 | (generator_version "8.0") 5 | (uuid "ea8c4f5e-7a49-4faf-a994-dbc85ed86b0a") 6 | (paper "A4") 7 | (title_block 8 | (title "Sheet Title A") 9 | (date "2025-01-12") 10 | (rev "${REVISION}") 11 | (company "${COMPANY}") 12 | ) 13 | (lib_symbols) 14 | (polyline 15 | (pts 16 | (xy 129.54 120.65) (xy 116.84 124.46) 17 | ) 18 | (stroke 19 | (width 0) 20 | (type dot) 21 | (color 255 0 0 1) 22 | ) 23 | (uuid "dbc0dbb3-ec35-483a-84d2-c330277e1998") 24 | ) 25 | (rectangle 26 | (start 129.54 110.49) 27 | (end 137.16 125.73) 28 | (stroke 29 | (width 0) 30 | (type dot) 31 | (color 255 0 0 1) 32 | ) 33 | (fill 34 | (type none) 35 | ) 36 | (uuid 1d95e40b-2bfb-46ac-aef7-d61406185c71) 37 | ) 38 | (rectangle 39 | (start 55.88 30.48) 40 | (end 248.92 149.86) 41 | (stroke 42 | (width 1) 43 | (type default) 44 | (color 200 200 200 1) 45 | ) 46 | (fill 47 | (type none) 48 | ) 49 | (uuid bb86d4de-8a6c-49fd-bb3c-0c8f9cc72e55) 50 | ) 51 | (text_box "LAYOUT NOTE:\nblablabla" 52 | (exclude_from_sim no) 53 | (at 66.04 97.79 0) 54 | (size 26.67 11.43) 55 | (stroke 56 | (width 1) 57 | (type solid) 58 | (color 0 0 255 1) 59 | ) 60 | (fill 61 | (type none) 62 | ) 63 | (effects 64 | (font 65 | (face "Arial") 66 | (size 1.27 1.27) 67 | (thickness 0.4) 68 | (bold yes) 69 | (color 0 0 255 1) 70 | ) 71 | (justify left top) 72 | ) 73 | (uuid "59800026-abce-490f-af73-e553b627145c") 74 | ) 75 | (text_box "[${#}] ${TITLE}" 76 | (exclude_from_sim no) 77 | (at 115.57 15.24 0) 78 | (size 72.39 12.7) 79 | (stroke 80 | (width -0.0001) 81 | (type default) 82 | ) 83 | (fill 84 | (type none) 85 | ) 86 | (effects 87 | (font 88 | (face "Times New Roman") 89 | (size 6 6) 90 | (thickness 1.2) 91 | (bold yes) 92 | (color 162 22 34 1) 93 | ) 94 | ) 95 | (uuid "b2c13488-4f2f-433b-bdc6-d210d1646aca") 96 | ) 97 | (text_box "Block Description" 98 | (exclude_from_sim no) 99 | (at 57.15 139.7 0) 100 | (size 190.5 7.62) 101 | (stroke 102 | (width -0.0001) 103 | (type default) 104 | ) 105 | (fill 106 | (type none) 107 | ) 108 | (effects 109 | (font 110 | (face "Times New Roman") 111 | (size 2.54 2.54) 112 | (thickness 0.508) 113 | (bold yes) 114 | (color 162 22 34 1) 115 | ) 116 | (justify bottom) 117 | ) 118 | (uuid "b610ad11-6470-4e17-bb6a-df05c5ad2515") 119 | ) 120 | (text_box "DESIGN NOTE:\nblablabla" 121 | (exclude_from_sim no) 122 | (at 95.25 124.46 0) 123 | (size 21.59 11.43) 124 | (stroke 125 | (width 0.8) 126 | (type solid) 127 | (color 250 236 0 1) 128 | ) 129 | (fill 130 | (type none) 131 | ) 132 | (effects 133 | (font 134 | (face "Arial") 135 | (size 1.27 1.27) 136 | (color 0 0 0 1) 137 | ) 138 | (justify left top) 139 | ) 140 | (uuid "e0003229-9448-4893-9fb1-bea9e839bb75") 141 | ) 142 | (text "J. Pieper ADC investigation" 143 | (exclude_from_sim no) 144 | (at 142.24 170.18 0) 145 | (effects 146 | (font 147 | (face "Arial") 148 | (size 1.27 1.27) 149 | (color 0 0 0 1) 150 | ) 151 | (justify left bottom) 152 | (href "https://jpieper.com/2023/07/24/stm32g4-adc-performance-part-2/") 153 | ) 154 | (uuid "9b3ecc35-3df2-428b-a29e-c6c2c744422e") 155 | ) 156 | (text "STM32G474 Datasheet p.81" 157 | (exclude_from_sim no) 158 | (at 142.24 166.37 0) 159 | (effects 160 | (font 161 | (face "Arial") 162 | (size 1.27 1.27) 163 | (color 0 0 0 1) 164 | ) 165 | (justify left bottom) 166 | (href "https://www.st.com/resource/en/datasheet/stm32g474cb.pdf") 167 | ) 168 | (uuid "e6fea1fe-2cf8-4a39-929e-14f4aedafb02") 169 | ) 170 | (text "AN5346" 171 | (exclude_from_sim no) 172 | (at 142.24 162.56 0) 173 | (effects 174 | (font 175 | (face "Arial") 176 | (size 1.27 1.27) 177 | (color 0 0 0 1) 178 | ) 179 | (justify left bottom) 180 | (href "https://www.st.com/resource/en/application_note/an5346-stm32g4-adc-use-tips-and-recommendations-stmicroelectronics.pdf") 181 | ) 182 | (uuid "f25578fd-4ab6-4599-95bc-eaa8a509f479") 183 | ) 184 | ) 185 | -------------------------------------------------------------------------------- /KDT_Hierarchical_KiBot.kicad_dru: -------------------------------------------------------------------------------- 1 | (version 1) 2 | #PCBWay Custom DRC for Kicad 8 3 | 4 | # 6 layers, 2 oz outer and 1 oz inner. Optimized for lowest cost. 5 | 6 | # ----------------------------------- Minimum trace width and spacing -------------------- 7 | 8 | # 2oz copper 9 | (rule "Minimum Trace Width and Spacing (outer layer)" 10 | (constraint track_width (min 0.2mm)) 11 | (constraint clearance (min 0.2mm)) 12 | (layer outer) 13 | (condition "A.Type == 'track'")) 14 | 15 | (rule "Minimum Trace Width and Spacing (innner layer)" 16 | (constraint track_width (min 0.2mm)) 17 | (constraint clearance (min 0.2mm)) 18 | (layer inner) 19 | (condition "A.Type == 'track'")) 20 | 21 | # ------------------------------------------------------------------------------------------------------ 22 | 23 | # Drill/hole size - listed here to maintain order of rule application. Must not override rule set in Via hole/diameter size below. 24 | (rule "drill hole size (mechanical)" 25 | (constraint hole_size (min 0.15mm) (max 6.3mm))) 26 | 27 | # ----------------------------------- Via hole/diameter size ------------------------------------------- 28 | 29 | (rule "Minimum Via Diameter and Hole Size" 30 | (constraint hole_size (min 0.25mm)) 31 | (constraint via_diameter (min 0.55mm)) 32 | (condition "A.Type == 'via'")) 33 | 34 | 35 | # ----------------------------------- Drill/hole size -------------------------------------------------- 36 | 37 | (rule "PTH Hole Size" 38 | (constraint hole_size (min 0.25mm) (max 6.35mm)) 39 | (condition "A.Type != 'Via' && A.isPlated()")) 40 | 41 | (rule "Minimum Non-plated Hole Size" 42 | (constraint hole_size (min 0.5mm)) 43 | (condition "A.Type == 'pad' && !A.isPlated()")) 44 | 45 | (rule "Pad Size" 46 | (constraint hole_size (min 0.25mm)) 47 | (constraint annular_width (min 0.15mm)) 48 | (condition "A.Type == 'Pad' && A.isPlated()")) 49 | 50 | (rule "Minimum Castellated Hole Size" 51 | (constraint hole_size (min 0.6mm)) 52 | (condition "A.Type == 'pad' && A.Fabrication_Property == 'Castellated pad'")) 53 | 54 | (rule "Min. Plated Slot Width" 55 | (constraint hole_size (min 0.5mm)) 56 | (condition "(A.Hole_Size_X != A.Hole_Size_Y) && A.isPlated()")) 57 | 58 | (rule "Min. Non-Plated Slot Width" 59 | (constraint hole_size (min 0.8mm)) 60 | (condition "(A.Hole_Size_X != A.Hole_Size_Y) && !A.isPlated()")) 61 | 62 | 63 | # ----------------------------------- Minimum clearance ------------------------------------------------ 64 | 65 | (rule "hole to hole clearance (different nets)" 66 | (constraint hole_to_hole (min 0.5mm)) 67 | (condition "A.Net != B.Net")) 68 | 69 | (rule "via to track clearance" 70 | (constraint hole_clearance (min 0.254mm)) 71 | (condition "A.Type == 'via' && B.Type == 'track'")) 72 | 73 | (rule "via to via clearance (same nets)" 74 | (constraint hole_to_hole (min 0.254mm)) 75 | (condition "A.Type == 'via' && B.Type == A.Type && A.Net == B.Net")) 76 | 77 | (rule "pad to pad clearance (with hole, different nets)" 78 | (constraint hole_to_hole (min 0.5mm)) 79 | (condition "A.Type == 'pad' && B.Type == A.Type && A.Net != B.Net")) 80 | 81 | (rule "pad to pad clearance (without hole, different nets)" 82 | (constraint clearance (min 0.2mm)) 83 | (condition "A.Type == 'Pad' && B.Type == 'Pad'")) 84 | 85 | (rule "NPTH to Track clearance" 86 | (constraint hole_clearance (min 0.254mm)) 87 | (condition "A.Pad_Type == 'NPTH, mechanical' && B.Type == 'track'")) 88 | 89 | (rule "NPTH with copper around" 90 | (constraint hole_clearance (min 0.20mm)) 91 | (condition "A.Pad_Type == 'NPTH, mechanical' && B.Type != 'track'")) 92 | 93 | (rule "PTH to Track clearance" 94 | (constraint hole_clearance (min 0.33mm)) 95 | (condition "A.isPlated() && A.Type != 'Via' && B.Type == 'track'")) 96 | 97 | (rule "Pad to Track clearance" 98 | (constraint clearance (min 0.2mm)) 99 | (condition "A.isPlated() && A.Type != 'Via' && B.Type == 'track'")) 100 | 101 | # ----------------------------------- Board Outlines (PICK ONE) ------------------------------------- 102 | #Default Routed Edge Clearance 103 | (rule "Trace to Outline" 104 | (constraint edge_clearance (min 0.3mm)) 105 | (condition "A.Type == 'track'")) 106 | 107 | # ----------------------------------- Silkscreen ---------------------------------------------------- 108 | (rule "Minimum Text" 109 | (constraint text_thickness (min 0.15mm)) 110 | (constraint text_height (min 0.8mm)) 111 | (layer "?.Silkscreen")) 112 | 113 | (rule "Pad to Silkscreen" 114 | (constraint silk_clearance (min 0.15mm)) 115 | (layer outer) 116 | (condition "A.Type == 'pad' && (B.Type == 'text' || B.Type == 'graphic')")) 117 | 118 | # ----------------------------------- Test Points Courtyard ----------------------------------------- 119 | (rule "Test Point Courtyard Exclusion" 120 | (constraint courtyard_clearance (min -1mm)) 121 | (condition "A.Reference =='TP*'")) 122 | 123 | # ----------------------------------- Fiducials Courtyard ------------------------------------------- 124 | (rule "Test Point Courtyard Exclusion" 125 | (constraint courtyard_clearance (min -1mm)) 126 | (condition "A.Reference =='FM*'")) 127 | -------------------------------------------------------------------------------- /Revision History.kicad_sch: -------------------------------------------------------------------------------- 1 | (kicad_sch 2 | (version 20231120) 3 | (generator "eeschema") 4 | (generator_version "8.0") 5 | (uuid "ea8c4f5e-7a49-4faf-a994-dbc85ed86b0a") 6 | (paper "A4") 7 | (title_block 8 | (title "Revision History") 9 | (date "2025-01-12") 10 | (rev "${REVISION}") 11 | (company "${COMPANY}") 12 | ) 13 | (lib_symbols) 14 | (polyline 15 | (pts 16 | (xy 85.09 31.75) (xy 85.09 149.86) 17 | ) 18 | (stroke 19 | (width 0.635) 20 | (type default) 21 | (color 0 0 0 1) 22 | ) 23 | (uuid "5f29c90a-4bd5-401c-a0f6-a99df09914f4") 24 | ) 25 | (polyline 26 | (pts 27 | (xy 151.13 31.75) (xy 151.13 149.86) 28 | ) 29 | (stroke 30 | (width 0.635) 31 | (type default) 32 | (color 0 0 0 1) 33 | ) 34 | (uuid "a6b610d4-f09b-4d6e-ac67-0bb3d0e09fbe") 35 | ) 36 | (polyline 37 | (pts 38 | (xy 19.05 31.75) (xy 19.05 190.5) 39 | ) 40 | (stroke 41 | (width 0.635) 42 | (type default) 43 | (color 0 0 0 1) 44 | ) 45 | (uuid "d98bd22a-837a-4b14-b8b1-ecc667696c58") 46 | ) 47 | (polyline 48 | (pts 49 | (xy 217.17 31.75) (xy 217.17 149.86) 50 | ) 51 | (stroke 52 | (width 0.635) 53 | (type default) 54 | (color 0 0 0 1) 55 | ) 56 | (uuid "fe21cbb6-f53c-41a1-bc1c-520e82f71f78") 57 | ) 58 | (text_box "${RELEASE_BODY_1.1.0}" 59 | (exclude_from_sim no) 60 | (at 220.98 35.56 0) 61 | (size 58.42 111.76) 62 | (stroke 63 | (width -0.0001) 64 | (type default) 65 | ) 66 | (fill 67 | (type none) 68 | ) 69 | (effects 70 | (font 71 | (face "Arial") 72 | (size 1.905 1.905) 73 | (color 0 0 0 1) 74 | ) 75 | (justify left top) 76 | ) 77 | (uuid "0c062e2b-2be1-4307-b752-045c211787f4") 78 | ) 79 | (text_box "[${#}] ${TITLE}" 80 | (exclude_from_sim no) 81 | (at 80.01 16.51 0) 82 | (size 137.16 12.7) 83 | (stroke 84 | (width -0.0001) 85 | (type default) 86 | ) 87 | (fill 88 | (type none) 89 | ) 90 | (effects 91 | (font 92 | (face "Times New Roman") 93 | (size 6 6) 94 | (thickness 1.2) 95 | (bold yes) 96 | (color 162 22 34 1) 97 | ) 98 | ) 99 | (uuid "20a0a094-ac98-46df-bdac-21d5721f7697") 100 | ) 101 | (text_box "${RELEASE_BODY_1.0.0}" 102 | (exclude_from_sim no) 103 | (at 22.86 35.56 0) 104 | (size 58.42 146.05) 105 | (stroke 106 | (width -0.0001) 107 | (type default) 108 | ) 109 | (fill 110 | (type none) 111 | ) 112 | (effects 113 | (font 114 | (face "Arial") 115 | (size 1.905 1.905) 116 | (color 0 0 0 1) 117 | ) 118 | (justify left top) 119 | ) 120 | (uuid "212b625e-4169-46f2-a2fc-afc6cbef07cd") 121 | ) 122 | (text_box "${RELEASE_TITLE_1.0.2}" 123 | (exclude_from_sim no) 124 | (at 152.4 31.75 0) 125 | (size 57.15 7.62) 126 | (stroke 127 | (width -0.0001) 128 | (type default) 129 | ) 130 | (fill 131 | (type none) 132 | ) 133 | (effects 134 | (font 135 | (face "Arial") 136 | (size 1.905 1.905) 137 | (thickness 0.254) 138 | (bold yes) 139 | ) 140 | (justify left top) 141 | ) 142 | (uuid "61447e65-3862-4ca7-a61e-5d8506cb38bb") 143 | ) 144 | (text_box "${RELEASE_BODY_1.0.2}" 145 | (exclude_from_sim no) 146 | (at 154.94 35.56 0) 147 | (size 58.42 111.76) 148 | (stroke 149 | (width -0.0001) 150 | (type default) 151 | ) 152 | (fill 153 | (type none) 154 | ) 155 | (effects 156 | (font 157 | (face "Arial") 158 | (size 1.905 1.905) 159 | (color 0 0 0 1) 160 | ) 161 | (justify left top) 162 | ) 163 | (uuid "8ad0acb7-8a2e-40a2-87c7-888a93359ccd") 164 | ) 165 | (text_box "${RELEASE_BODY_1.0.1}" 166 | (exclude_from_sim no) 167 | (at 88.9 35.56 0) 168 | (size 57.15 105.41) 169 | (stroke 170 | (width -0.0001) 171 | (type default) 172 | ) 173 | (fill 174 | (type none) 175 | ) 176 | (effects 177 | (font 178 | (face "Arial") 179 | (size 1.905 1.905) 180 | (color 0 0 0 1) 181 | ) 182 | (justify left top) 183 | ) 184 | (uuid "9af8400a-3034-4071-a364-608020db49d5") 185 | ) 186 | (text_box "${RELEASE_TITLE_1.0.0}" 187 | (exclude_from_sim no) 188 | (at 20.32 31.75 0) 189 | (size 57.15 7.62) 190 | (stroke 191 | (width -0.0001) 192 | (type default) 193 | ) 194 | (fill 195 | (type none) 196 | ) 197 | (effects 198 | (font 199 | (face "Arial") 200 | (size 1.905 1.905) 201 | (thickness 0.254) 202 | (bold yes) 203 | ) 204 | (justify left top) 205 | ) 206 | (uuid "d183a6b7-e8a2-46ec-8c3c-ec3041423bc1") 207 | ) 208 | (text_box "${RELEASE_TITLE_1.0.1}" 209 | (exclude_from_sim no) 210 | (at 86.36 31.75 0) 211 | (size 57.15 7.62) 212 | (stroke 213 | (width -0.0001) 214 | (type default) 215 | ) 216 | (fill 217 | (type none) 218 | ) 219 | (effects 220 | (font 221 | (face "Arial") 222 | (size 1.905 1.905) 223 | (thickness 0.254) 224 | (bold yes) 225 | ) 226 | (justify left top) 227 | ) 228 | (uuid "ed7f1ff6-56f6-4427-ab7f-2ffe27717c3d") 229 | ) 230 | (text_box "${RELEASE_TITLE_1.1.0}" 231 | (exclude_from_sim no) 232 | (at 218.44 31.75 0) 233 | (size 57.15 7.62) 234 | (stroke 235 | (width -0.0001) 236 | (type default) 237 | ) 238 | (fill 239 | (type none) 240 | ) 241 | (effects 242 | (font 243 | (face "Arial") 244 | (size 1.905 1.905) 245 | (thickness 0.254) 246 | (bold yes) 247 | ) 248 | (justify left top) 249 | ) 250 | (uuid "f47af890-f55a-44bf-b54f-b7df3adde008") 251 | ) 252 | ) 253 | -------------------------------------------------------------------------------- /kibot_yaml/kibot_pre_set_text_variables.yaml: -------------------------------------------------------------------------------- 1 | # KiBot preflight for setting Text Variables 2 | # https://kibot.readthedocs.io/en/latest/configuration/preflights/set_text_variables.html 3 | 4 | kibot: 5 | version: 1 6 | 7 | preflight: 8 | update_xml: true 9 | set_text_variables: 10 | 11 | # Git related information 12 | - variable: 'REVISION' 13 | # command: 'git describe --tags --abbrev=0 || echo ""' 14 | text: '@REVISION@' 15 | - variable: 'RELEASE_DATE' 16 | command: 'git log -1 --format="%ad" --date="format:%d-%b-%Y"' 17 | - variable: 'RELEASE_DATE_NUM' 18 | command: 'git log -1 --format="%ad" --date=short' 19 | - variable: 'GIT_HASH_SCH' 20 | command: 'git log -1 --format="%h" $KIBOT_SCH_NAME' 21 | - variable: 'GIT_HASH_PCB' 22 | command: 'git log -1 --format="%h" $KIBOT_PCB_NAME' 23 | - variable: 'GIT_URL' 24 | text: '@GIT_URL@' 25 | 26 | # Metadata 27 | - variable: 'PROJECT_NAME' 28 | text: '@PROJECT_NAME@' 29 | - variable: 'BOARD_NAME' 30 | text: '@BOARD_NAME@' 31 | - variable: 'COMPANY' 32 | text: '@COMPANY@' 33 | - variable: 'DESIGNER' 34 | text: '@DESIGNER@' 35 | - variable: 'VARIANT' 36 | text: '%V' 37 | 38 | # Changelog 39 | # - variable: '@RELEASE_TITLE_VAR@1.0.0' 40 | # command: '@GET_TITLE_CMD@ 1.0.0' 41 | # - variable: '@RELEASE_BODY_VAR@1.0.0' 42 | # command: '@GET_BODY_CMD@ 1.0.0' 43 | 44 | # - variable: '@RELEASE_TITLE_VAR@1.0.1' 45 | # command: '@GET_TITLE_CMD@ 1.0.1' 46 | # - variable: '@RELEASE_BODY_VAR@1.0.1' 47 | # command: '@GET_BODY_CMD@ 1.0.1' 48 | 49 | # - variable: '@RELEASE_TITLE_VAR@1.0.2' 50 | # command: '@GET_TITLE_CMD@ 1.0.2' 51 | # - variable: '@RELEASE_BODY_VAR@1.0.2' 52 | # command: '@GET_BODY_CMD@ 1.0.2' 53 | 54 | # - variable: '@RELEASE_TITLE_VAR@1.1.0' 55 | # command: '@GET_TITLE_CMD@ 1.1.0' 56 | # - variable: '@RELEASE_BODY_VAR@1.1.0' 57 | # command: '@GET_BODY_CMD@ 1.1.0' 58 | 59 | # - variable: '@RELEASE_TITLE_VAR@1.1.1' 60 | # command: '@GET_TITLE_CMD@ 1.1.1' 61 | # - variable: '@RELEASE_BODY_VAR@1.1.1' 62 | # command: '@GET_BODY_CMD@ 1.1.1' 63 | 64 | - variable: '@RELEASE_TITLE_VAR@UNRELEASED' 65 | command: '@GET_TITLE_CMD@ Unreleased' 66 | - variable: '@RELEASE_BODY_VAR@UNRELEASED' 67 | command: '@GET_BODY_CMD@ Unreleased' 68 | 69 | # Fabrication notes 70 | - variable: 'FABRICATION_NOTES' 71 | expand_in_command: true 72 | command: '[ -f "@FABRICATION_DIR@/%f-fabrication_notes%v.txt" ] && cat "@FABRICATION_DIR@/%f-fabrication_notes%v.txt" || echo ""' 73 | 74 | 75 | # Fabrication notes 76 | - variable: 'ASSEMBLY_NOTES' 77 | expand_in_command: true 78 | command: '[ -f "@ASSEMBLY_DIR@/%f-assembly_notes%v.txt" ] && cat "@ASSEMBLY_DIR@/%f-assembly_notes%v.txt" || echo ""' 79 | 80 | # Page titles for automatic ToC 81 | - variable: '@SHEET_NAME_VAR@1' 82 | text: 'Cover Page' 83 | - variable: '@SHEET_NAME_VAR@2' 84 | command: '@GET_SHEET_CMD@ 2' 85 | - variable: '@SHEET_NAME_VAR@3' 86 | command: '@GET_SHEET_CMD@ 3' 87 | - variable: '@SHEET_NAME_VAR@4' 88 | command: '@GET_SHEET_CMD@ 4' 89 | - variable: '@SHEET_NAME_VAR@5' 90 | command: '@GET_SHEET_CMD@ 5' 91 | - variable: '@SHEET_NAME_VAR@6' 92 | command: '@GET_SHEET_CMD@ 6' 93 | - variable: '@SHEET_NAME_VAR@7' 94 | command: '@GET_SHEET_CMD@ 7' 95 | - variable: '@SHEET_NAME_VAR@8' 96 | command: '@GET_SHEET_CMD@ 8' 97 | - variable: '@SHEET_NAME_VAR@9' 98 | command: '@GET_SHEET_CMD@ 9' 99 | - variable: '@SHEET_NAME_VAR@10' 100 | command: '@GET_SHEET_CMD@ 10' 101 | - variable: '@SHEET_NAME_VAR@11' 102 | command: '@GET_SHEET_CMD@ 11' 103 | - variable: '@SHEET_NAME_VAR@12' 104 | command: '@GET_SHEET_CMD@ 12' 105 | - variable: '@SHEET_NAME_VAR@13' 106 | command: '@GET_SHEET_CMD@ 13' 107 | - variable: '@SHEET_NAME_VAR@14' 108 | command: '@GET_SHEET_CMD@ 14' 109 | - variable: '@SHEET_NAME_VAR@15' 110 | command: '@GET_SHEET_CMD@ 15' 111 | - variable: '@SHEET_NAME_VAR@16' 112 | command: '@GET_SHEET_CMD@ 16' 113 | - variable: '@SHEET_NAME_VAR@17' 114 | command: '@GET_SHEET_CMD@ 17' 115 | - variable: '@SHEET_NAME_VAR@18' 116 | command: '@GET_SHEET_CMD@ 18' 117 | - variable: '@SHEET_NAME_VAR@19' 118 | command: '@GET_SHEET_CMD@ 19' 119 | - variable: '@SHEET_NAME_VAR@20' 120 | command: '@GET_SHEET_CMD@ 20' 121 | - variable: '@SHEET_NAME_VAR@21' 122 | command: '@GET_SHEET_CMD@ 21' 123 | - variable: '@SHEET_NAME_VAR@22' 124 | command: '@GET_SHEET_CMD@ 22' 125 | - variable: '@SHEET_NAME_VAR@23' 126 | command: '@GET_SHEET_CMD@ 23' 127 | - variable: '@SHEET_NAME_VAR@24' 128 | command: '@GET_SHEET_CMD@ 24' 129 | - variable: '@SHEET_NAME_VAR@25' 130 | command: '@GET_SHEET_CMD@ 25' 131 | - variable: '@SHEET_NAME_VAR@26' 132 | command: '@GET_SHEET_CMD@ 26' 133 | - variable: '@SHEET_NAME_VAR@27' 134 | command: '@GET_SHEET_CMD@ 27' 135 | - variable: '@SHEET_NAME_VAR@28' 136 | command: '@GET_SHEET_CMD@ 28' 137 | - variable: '@SHEET_NAME_VAR@29' 138 | command: '@GET_SHEET_CMD@ 29' 139 | - variable: '@SHEET_NAME_VAR@30' 140 | command: '@GET_SHEET_CMD@ 30' 141 | - variable: '@SHEET_NAME_VAR@31' 142 | command: '@GET_SHEET_CMD@ 31' 143 | - variable: '@SHEET_NAME_VAR@32' 144 | command: '@GET_SHEET_CMD@ 32' 145 | - variable: '@SHEET_NAME_VAR@33' 146 | command: '@GET_SHEET_CMD@ 33' 147 | - variable: '@SHEET_NAME_VAR@34' 148 | command: '@GET_SHEET_CMD@ 34' 149 | - variable: '@SHEET_NAME_VAR@35' 150 | command: '@GET_SHEET_CMD@ 35' 151 | - variable: '@SHEET_NAME_VAR@36' 152 | command: '@GET_SHEET_CMD@ 36' 153 | - variable: '@SHEET_NAME_VAR@37' 154 | command: '@GET_SHEET_CMD@ 37' 155 | - variable: '@SHEET_NAME_VAR@38' 156 | command: '@GET_SHEET_CMD@ 38' 157 | - variable: '@SHEET_NAME_VAR@39' 158 | command: '@GET_SHEET_CMD@ 39' 159 | - variable: '@SHEET_NAME_VAR@40' 160 | command: '@GET_SHEET_CMD@ 40' 161 | 162 | ... 163 | definitions: 164 | PROJECT_NAME: "" 165 | BOARD_NAME: "" 166 | COMPANY: "" 167 | DESIGNER: "" 168 | REVISION: "" 169 | RELEASE_DATE: "" 170 | RELEASE_DATE_NUM: "" 171 | GIT_URL: "" 172 | SHEET_NAME_VAR: SHEET_NAME_ 173 | RELEASE_TITLE_VAR: RELEASE_TITLE_ 174 | RELEASE_BODY_VAR: RELEASE_BODY_ 175 | SCRIPTS_DIR: kibot_resources/scripts 176 | GET_SHEET_CMD: python3 @SCRIPTS_DIR@/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 177 | GET_TITLE_CMD: python3 @SCRIPTS_DIR@/get_changelog.py -f CHANGELOG.md --title-only --version 178 | GET_BODY_CMD: python3 @SCRIPTS_DIR@/get_changelog.py -f CHANGELOG.md --extra-spaces --separators 35 --version 179 | FABRICATION_DIR: Manufacturing/Fabrication 180 | ASSEMBLY_DIR: Manufacturing/Assembly -------------------------------------------------------------------------------- /Project Architecture.kicad_sch: -------------------------------------------------------------------------------- 1 | (kicad_sch 2 | (version 20231120) 3 | (generator "eeschema") 4 | (generator_version "8.0") 5 | (uuid "07236397-3ba4-47af-9809-3faac3a2aa49") 6 | (paper "A3") 7 | (title_block 8 | (title "Project Architecture") 9 | (date "2025-01-12") 10 | (rev "${REVISION}") 11 | (company "${COMPANY}") 12 | ) 13 | (lib_symbols) 14 | (polyline 15 | (pts 16 | (xy 185.42 87.63) (xy 185.42 99.06) 17 | ) 18 | (stroke 19 | (width 0) 20 | (type default) 21 | ) 22 | (uuid "8b678fb1-fee7-4461-95f7-7f383f478fdc") 23 | ) 24 | (polyline 25 | (pts 26 | (xy 233.68 125.73) (xy 233.68 134.62) 27 | ) 28 | (stroke 29 | (width 0) 30 | (type default) 31 | ) 32 | (uuid "8c7de816-3d34-497f-b0c8-22f80559d2d8") 33 | ) 34 | (polyline 35 | (pts 36 | (xy 185.42 85.09) (xy 185.42 73.66) 37 | ) 38 | (stroke 39 | (width 0) 40 | (type default) 41 | ) 42 | (uuid "903e49b2-1b5d-4317-a33b-adfda1594a88") 43 | ) 44 | (polyline 45 | (pts 46 | (xy 233.68 114.3) (xy 233.68 123.19) 47 | ) 48 | (stroke 49 | (width 0) 50 | (type default) 51 | ) 52 | (uuid "9543d363-0f36-4c41-97bc-b97723f48818") 53 | ) 54 | (arc 55 | (start 185.42 85.09) 56 | (mid 185.0451 85.9851) 57 | (end 184.15 86.36) 58 | (stroke 59 | (width 0) 60 | (type default) 61 | ) 62 | (fill 63 | (type none) 64 | ) 65 | (uuid 13e3bc56-4a98-40ef-8c39-3b21620a792f) 66 | ) 67 | (arc 68 | (start 234.97 124.44) 69 | (mid 234.0749 124.0651) 70 | (end 233.7 123.17) 71 | (stroke 72 | (width 0) 73 | (type default) 74 | ) 75 | (fill 76 | (type none) 77 | ) 78 | (uuid 19c30b2f-1391-4be0-8a5f-17a3226c0876) 79 | ) 80 | (arc 81 | (start 233.7 125.71) 82 | (mid 234.0749 124.8149) 83 | (end 234.97 124.44) 84 | (stroke 85 | (width 0) 86 | (type default) 87 | ) 88 | (fill 89 | (type none) 90 | ) 91 | (uuid 5b059745-d833-4f9d-9745-ec7a90904541) 92 | ) 93 | (arc 94 | (start 233.7 134.6) 95 | (mid 232.9561 136.3961) 96 | (end 231.16 137.14) 97 | (stroke 98 | (width 0) 99 | (type default) 100 | ) 101 | (fill 102 | (type none) 103 | ) 104 | (uuid 62bb3cd5-23b6-4c8e-a8f2-a293aca5d83b) 105 | ) 106 | (arc 107 | (start 184.15 86.36) 108 | (mid 185.0451 86.7349) 109 | (end 185.42 87.63) 110 | (stroke 111 | (width 0) 112 | (type default) 113 | ) 114 | (fill 115 | (type none) 116 | ) 117 | (uuid 787eda22-1bf9-4d1b-96b2-11995bb2af0f) 118 | ) 119 | (arc 120 | (start 187.96 101.6) 121 | (mid 186.1698 100.8502) 122 | (end 185.42 99.06) 123 | (stroke 124 | (width 0) 125 | (type default) 126 | ) 127 | (fill 128 | (type none) 129 | ) 130 | (uuid 7c454724-851d-42c5-8823-df570c1fc5eb) 131 | ) 132 | (arc 133 | (start 231.16 111.74) 134 | (mid 232.9502 112.4898) 135 | (end 233.7 114.28) 136 | (stroke 137 | (width 0) 138 | (type default) 139 | ) 140 | (fill 141 | (type none) 142 | ) 143 | (uuid 94ad6bc3-4505-4c4a-89fc-83d0c51dd562) 144 | ) 145 | (arc 146 | (start 185.42 73.66) 147 | (mid 186.1639 71.8639) 148 | (end 187.96 71.12) 149 | (stroke 150 | (width 0) 151 | (type default) 152 | ) 153 | (fill 154 | (type none) 155 | ) 156 | (uuid fda911f3-adb3-4abb-981f-a877a93c831b) 157 | ) 158 | (text_box "Description" 159 | (exclude_from_sim no) 160 | (at 166.37 83.82 0) 161 | (size 17.145 5.08) 162 | (stroke 163 | (width -0.0001) 164 | (type default) 165 | ) 166 | (fill 167 | (type none) 168 | ) 169 | (effects 170 | (font 171 | (size 1.905 1.905) 172 | (thickness 0.381) 173 | (bold yes) 174 | (color 0 0 0 1) 175 | ) 176 | (justify right top) 177 | ) 178 | (uuid "971f0c48-6726-412d-badf-cee82cbffedd") 179 | ) 180 | (text_box "Description" 181 | (exclude_from_sim no) 182 | (at 234.95 121.92 0) 183 | (size 26.015 5.1) 184 | (stroke 185 | (width -0.0001) 186 | (type default) 187 | ) 188 | (fill 189 | (type none) 190 | ) 191 | (effects 192 | (font 193 | (size 1.905 1.905) 194 | (thickness 0.381) 195 | (bold yes) 196 | (color 0 0 0 1) 197 | ) 198 | (justify left top) 199 | ) 200 | (uuid "97bb5e92-ab26-4907-9b80-08d49465fc86") 201 | ) 202 | (text_box "[${#}] ${TITLE}" 203 | (exclude_from_sim no) 204 | (at 144.78 21.59 0) 205 | (size 130.81 12.7) 206 | (stroke 207 | (width -0.0001) 208 | (type default) 209 | ) 210 | (fill 211 | (type none) 212 | ) 213 | (effects 214 | (font 215 | (face "Times New Roman") 216 | (size 8 8) 217 | (thickness 1.2) 218 | (bold yes) 219 | (color 162 22 34 1) 220 | ) 221 | ) 222 | (uuid "f4789478-c68e-4cee-9edd-5d11b744f94d") 223 | ) 224 | (text "Page 5" 225 | (exclude_from_sim no) 226 | (at 226.06 133.35 0) 227 | (effects 228 | (font 229 | (size 2.54 2.54) 230 | (bold yes) 231 | (color 100 70 50 1) 232 | ) 233 | (justify right bottom) 234 | (href "#5") 235 | ) 236 | (uuid "b60ecde0-2a85-4071-a728-47148cd80779") 237 | ) 238 | (text "Page 4" 239 | (exclude_from_sim no) 240 | (at 226.06 95.25 0) 241 | (effects 242 | (font 243 | (size 2.54 2.54) 244 | (bold yes) 245 | (color 20 60 40 1) 246 | ) 247 | (justify right bottom) 248 | (href "#4") 249 | ) 250 | (uuid "f04f874a-d252-4474-87f2-c34bbb094a4c") 251 | ) 252 | (sheet 253 | (at 190.5 114.3) 254 | (size 36.83 20.32) 255 | (fields_autoplaced yes) 256 | (stroke 257 | (width 0.1524) 258 | (type solid) 259 | ) 260 | (fill 261 | (color 255 200 0 0.5020) 262 | ) 263 | (uuid "e744f3ce-03a6-44a6-8792-1447ef232b9a") 264 | (property "Sheetname" "Section B - Title B" 265 | (at 190.5 113.2709 0) 266 | (effects 267 | (font 268 | (size 1.905 1.905) 269 | (bold yes) 270 | ) 271 | (justify left bottom) 272 | ) 273 | ) 274 | (property "Sheetfile" "Section B - TItle B.kicad_sch" 275 | (at 190.5 135.2046 0) 276 | (effects 277 | (font 278 | (face "Arial") 279 | (size 1.27 1.27) 280 | ) 281 | (justify left top) 282 | ) 283 | ) 284 | (instances 285 | (project "KDT_Hierarchical_KiBot" 286 | (path "/f9e05184-c88b-4a88-ae9c-ab2bdb32be7c/c5103ceb-5325-4a84-a025-9638a412984e" 287 | (page "5") 288 | ) 289 | ) 290 | ) 291 | ) 292 | (sheet 293 | (at 190.5 76.2) 294 | (size 36.83 20.32) 295 | (fields_autoplaced yes) 296 | (stroke 297 | (width 0.1524) 298 | (type solid) 299 | ) 300 | (fill 301 | (color 128 255 128 0.5000) 302 | ) 303 | (uuid "f06537ee-772d-44d3-8c50-e0ba41038c9c") 304 | (property "Sheetname" "Section A - Title A" 305 | (at 190.5 75.1709 0) 306 | (effects 307 | (font 308 | (size 1.905 1.905) 309 | (bold yes) 310 | ) 311 | (justify left bottom) 312 | ) 313 | ) 314 | (property "Sheetfile" "Section A - Title A.kicad_sch" 315 | (at 190.5 97.1046 0) 316 | (effects 317 | (font 318 | (face "Arial") 319 | (size 1.27 1.27) 320 | ) 321 | (justify left top) 322 | ) 323 | ) 324 | (instances 325 | (project "KDT_Hierarchical_KiBot" 326 | (path "/f9e05184-c88b-4a88-ae9c-ab2bdb32be7c/c5103ceb-5325-4a84-a025-9638a412984e" 327 | (page "4") 328 | ) 329 | ) 330 | ) 331 | ) 332 | ) 333 | -------------------------------------------------------------------------------- /kibot_yaml/kibot_out_pdf_fabrication.yaml: -------------------------------------------------------------------------------- 1 | # KiBot output for generating Fabrication Document in PDF format 2 | # https://kibot.readthedocs.io/en/latest/configuration/outputs/pcb_print.html 3 | 4 | kibot: 5 | version: 1 6 | 7 | outputs: 8 | - name: @NAME@ 9 | comment: '@COMMENT@' 10 | type: pcb_print 11 | category: '@DIR@' 12 | dir: '@DIR@' 13 | options: 14 | colored_pads: false 15 | colored_vias: false 16 | color_theme: '@COLOR_THEME@' 17 | output: '%f-fabrication%I%v.%x' 18 | format: 'PDF' 19 | title: '@DOC_TITLE@ Document' 20 | realistic_solder_mask: false 21 | dpi: 1200 22 | dnf_filter: _kibom_dnf_Config 23 | frame_plot_mechanism: 'internal' 24 | sheet_reference_layout: '@SHEET_WKS@' 25 | drill: 26 | unify_pth_and_npth: '@PTH_NPTH@' 27 | group_slots_and_round_holes: @GROUP_ROUND_SLOTS@ 28 | include_table: 29 | outputs: 30 | - name: '@NAME_TP_TOP@' 31 | text_alignment: 'left' 32 | invert_columns_order: false 33 | border_width: 0.4 34 | header_rule_width: 0.2 35 | horizontal_rule_width: 0 36 | vertical_rule_width: 0.2 37 | top_rule_width: 0.2 38 | bottom_rule_width: 0.2 39 | column_spacing: 2 40 | force_font_width: 1.27 # mm 41 | - name: '@NAME_TP_BOTTOM@' 42 | text_alignment: 'right' 43 | invert_columns_order: true 44 | border_width: 0.4 45 | header_rule_width: 0.2 46 | horizontal_rule_width: 0 47 | vertical_rule_width: 0.2 48 | top_rule_width: 0.2 49 | bottom_rule_width: 0.2 50 | column_spacing: 2 51 | force_font_width: 1.27 # mm 52 | - name: '@NAME_IMPEDANCE_TABLE@' 53 | text_alignment: 'left' 54 | invert_columns_order: false 55 | border_width: 0.4 56 | header_rule_width: 0.2 57 | horizontal_rule_width: 0 58 | vertical_rule_width: 0.2 59 | top_rule_width: 0.2 60 | bottom_rule_width: 0.2 61 | row_spacing: 3 62 | column_spacing: 2 63 | row_spacing: 3 64 | - name: '@NAME_DRILL_TABLE@' 65 | text_alignment: 'left' 66 | invert_columns_order: false 67 | border_width: 0.4 68 | header_rule_width: 0.2 69 | horizontal_rule_width: 0 70 | vertical_rule_width: 0.2 71 | top_rule_width: 0.2 72 | bottom_rule_width: 0.2 73 | row_spacing: 3 74 | column_spacing: 2 75 | force_font_width: 1 # mm 76 | 77 | pages: 78 | - scaling: @SCALING@ 79 | title: '@DOC_TITLE@' 80 | sheet: 'Top Fabrication (Scale @SCALING@:1)' 81 | layer_var: 'Top Fabrication (Scale @SCALING@:1)' 82 | sheet_reference_color: '#000000' 83 | colored_holes: true 84 | holes_color: "#FFFFFF" 85 | layers: 86 | - layer: Edge.Cuts 87 | color: '#000000' 88 | - layer: F.Cu 89 | color: '#F2F2F2' 90 | - layer: F.Mask 91 | color: '#E2E2E2' 92 | - layer: F.Paste 93 | color: '#E2E2E2' 94 | - layer: F.Silkscreen 95 | color: '#DBDBDB' 96 | - layer: F.Fab 97 | plot_footprint_refs: false 98 | plot_footprint_values: false 99 | color: '#818181' 100 | - layer: F.Dimensions 101 | color: '#000000' 102 | 103 | - scaling: @SCALING@ 104 | mirror: true 105 | mirror_pcb_text: false 106 | title: '@DOC_TITLE@' 107 | sheet: 'Bottom Fabrication (Scale @SCALING@:1)' 108 | layer_var: 'Bottom Fabrication (Scale @SCALING@:1)' 109 | sheet_reference_color: '#000000' 110 | colored_holes: true 111 | holes_color: "#FFFFFF" 112 | layers: 113 | - layer: Edge.Cuts 114 | color: '#000000' 115 | - layer: B.Cu 116 | color: '#F2F2F2' 117 | - layer: B.Mask 118 | color: '#E2E2E2' 119 | - layer: B.Paste 120 | color: '#E2E2E2' 121 | - layer: B.Silkscreen 122 | color: '#DBDBDB' 123 | - layer: B.Fab 124 | plot_footprint_refs: false 125 | plot_footprint_values: false 126 | color: '#818181' 127 | - layer: B.Dimensions 128 | color: '#000000' 129 | 130 | - scaling: @SCALING@ 131 | title: '@DOC_TITLE@' 132 | sheet: 'Drill Drawing (%lp)' 133 | layer_var: 'Drill Drawing %lp (Scale @SCALING@:1)' 134 | sheet_reference_color: '#000000' 135 | colored_holes: true 136 | holes_color: "#FFFFFF" 137 | repeat_for_layer: '@LAYER_DRILL_MAP@' 138 | repeat_layers: 'drill_pairs' 139 | layers: 140 | - layer: '@LAYER_DRILL_MAP@' 141 | color: '#000000' 142 | - layer: 'Edge.Cuts' 143 | color: '#000000' 144 | 145 | - scaling: @SCALING@ 146 | title: '@DOC_TITLE@' 147 | sheet: 'Top Test Points (Scale @SCALING@:1)' 148 | layer_var: 'Top Test Points (Scale @SCALING@:1)' 149 | sheet_reference_color: '#000000' 150 | colored_holes: true 151 | holes_color: "#FFFFFF" 152 | layers: 153 | - layer: Edge.Cuts 154 | color: '#000000' 155 | - layer: F.Cu 156 | color: '#E5E5E5' 157 | - layer: F.Mask 158 | color: '#CECECE' 159 | - layer: F.Paste 160 | color: '#CECECE' 161 | - layer: F.Silkscreen 162 | color: '#C7C7C7' 163 | - layer: F.Fab 164 | exclude_filter: '@FAB_EXCLUDE_FILTER@' 165 | plot_footprint_values: false 166 | sketch_pads_on_fab_layers: false 167 | color: '#E10000' 168 | - layer: '@LAYER_TP_LIST_TOP@' 169 | color: '#000000' 170 | 171 | - scaling: @SCALING@ 172 | mirror : true 173 | mirror_pcb_text: true 174 | title: '@DOC_TITLE@' 175 | sheet: 'Bottom Test Points (Scale @SCALING@:1)' 176 | layer_var: 'Bottom Test Points (Scale @SCALING@:1)' 177 | sheet_reference_color: '#000000' 178 | colored_holes: true 179 | holes_color: "#FFFFFF" 180 | layers: 181 | - layer: Edge.Cuts 182 | color: '#000000' 183 | - layer: B.Cu 184 | color: '#E5E5E5' 185 | - layer: B.Mask 186 | color: '#CECECE' 187 | - layer: B.Paste 188 | color: '#CECECE' 189 | - layer: B.Silkscreen 190 | color: '#C7C7C7' 191 | - layer: B.Fab 192 | exclude_filter: '@FAB_EXCLUDE_FILTER@' 193 | plot_footprint_values: false 194 | sketch_pads_on_fab_layers: false 195 | color: '#0B00CC' 196 | - layer: '@LAYER_TP_LIST_BOTTOM@' 197 | color: '#000000' 198 | 199 | - scaling: @SCALING@ 200 | sheet: '%ln (Scale @SCALING@:1)' 201 | layer_var: '%ln (Scale @SCALING@:1)' 202 | title: '@DOC_TITLE@' 203 | sheet_reference_color: '#000000' 204 | colored_holes: true 205 | holes_color: "#FFFFFF" 206 | repeat_for_layer: 'F.Cu' 207 | repeat_layers: 'copper' 208 | layers: 209 | - layer: 'F.Cu' 210 | 211 | ... 212 | definitions: 213 | NAME: pdf_fabrication 214 | COMMENT: Fabrication document in PDF format 215 | DIR: Manufacturing/Fabrication 216 | DOC_TITLE: Fabrication 217 | COLOR_THEME: Altium_Theme 218 | SHEET_WKS: ${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks 219 | SCALING: 1.0 220 | FAB_EXCLUDE_FILTER: only_testpoints 221 | LAYER_DRILL_MAP: DrillMap 222 | LAYER_TP_LIST_TOP: F.TestPointList 223 | LAYER_TP_LIST_BOTTOM: B.TestPointList 224 | PTH_NPTH: 'yes' 225 | GROUP_ROUND_SLOTS: true 226 | NAME_TP_TOP: csv_testpoints_top 227 | NAME_TP_BOTTOM: csv_testpoints_bottom 228 | NAME_IMPEDANCE_TABLE: csv_impedance_table 229 | NAME_DRILL_TABLE: csv_drill_table -------------------------------------------------------------------------------- /kibot_launch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # ANSI color codes 4 | GREEN='\033[0;32m' 5 | YELLOW='\033[1;33m' 6 | NC='\033[0m' # No Color 7 | 8 | # Default options 9 | variant="CHECKED" 10 | output_dir="." 11 | kibot_base="kibot" 12 | kibot_config="-c 'kibot_yaml/kibot_main.yaml'" 13 | revision="" 14 | costs_flag=false 15 | server_flag=false 16 | server_port=8000 17 | pid_file="/tmp/kibot_server.pid" 18 | 19 | # Display help 20 | function display_help() { 21 | echo -e "USAGE" 22 | echo -e " ./kibot_launch.sh [OPTIONS]" 23 | echo 24 | echo -e "OPTIONS" 25 | echo -e " -v, --variant VARIANT Specify a variant name. Supported variants:" 26 | echo -e " RELEASED, DRAFT, PRELIMINARY, CHECKED, or others." 27 | echo -e " --version VERSION Specify a version to use in the command." 28 | echo -e " --costs Replace draft_group or all_group with xlsx_bom, and enforce specific skip-pre options." 29 | echo -e " --server [PORT] Start an HTTP server on the specified port (default: 8000)." 30 | echo -e " --stop-server Stop the running HTTP server." 31 | echo -e " -h, --help Display this help message." 32 | echo 33 | echo -e "EXAMPLES" 34 | echo -e " ./kibot_launch.sh Run with default options." 35 | echo -e " ./kibot_launch.sh -v RELEASED Run with RELEASED variant." 36 | echo -e " ./kibot_launch.sh --costs Compute XLSX costs spreadsheet. Results in Manufacturing/Assembly folder" 37 | echo -e " ./kibot_launch.sh -v DRAFT Run with DRAFT variant." 38 | echo -e " ./kibot_launch.sh -v PRELIMINARY Run with PRELIMINARY variant." 39 | echo -e " ./kibot_launch.sh -v CUSTOM_VARIANT Run with a custom variant, saved in the Variants folder." 40 | echo -e " ./kibot_launch.sh --server Start an HTTP server on port 8000." 41 | echo -e " ./kibot_launch.sh --server 8080 Start an HTTP server on port 8080." 42 | echo -e " ./kibot_launch.sh --stop-server Stop the running HTTP server." 43 | echo 44 | echo -e "VARIANT DESCRIPTIONS" 45 | echo -e " DRAFT: only schematic in progress, will only generate schematic PDF, netlist and BoM" 46 | echo -e " PRELIMINARY: will generate both schematic and PCB documents, but no ERC/DRC" 47 | echo -e " CHECKED: will generate both schematic and PCB documents, with ERC/DRC" 48 | echo -e " RELEASED: similar to CHECKED but should only be used for releases" 49 | echo -e " Other variants: will be saved in the Variants folder" 50 | exit 0 51 | } 52 | 53 | # Parse arguments 54 | while [[ $# -gt 0 ]]; do 55 | case $1 in 56 | --variant|-v) 57 | if [[ -n $2 && $2 != -* ]]; then 58 | variant="$2" 59 | shift 60 | else 61 | echo -e "${YELLOW}Warning: --variant|-v requires a value.${NC}" 62 | exit 1 63 | fi 64 | ;; 65 | --version) 66 | if [[ -n $2 && $2 != -* ]]; then 67 | revision="$2" 68 | shift 69 | else 70 | echo -e "${YELLOW}Warning: --version requires a value.${NC}" 71 | exit 1 72 | fi 73 | ;; 74 | --costs) 75 | costs_flag=true 76 | ;; 77 | --server) 78 | server_flag=true 79 | if [[ -n $2 && $2 != -* ]]; then 80 | server_port="$2" 81 | shift 82 | fi 83 | if [[ -f $pid_file ]]; then 84 | pid=$(cat $pid_file) 85 | if kill -0 $pid 2>/dev/null; then 86 | echo -e "${YELLOW}A server is already running on PID $pid. Please stop it first with --stop-server.${NC}" 87 | exit 1 88 | else 89 | echo -e "${YELLOW}Stale PID file detected. Removing it.${NC}" 90 | rm -f $pid_file 91 | fi 92 | fi 93 | ;; 94 | --stop-server) 95 | if [[ -f $pid_file ]]; then 96 | pid=$(cat $pid_file) 97 | if kill -0 $pid 2>/dev/null; then 98 | echo -e "${GREEN}Stopping HTTP server with PID $pid...${NC}" 99 | kill $pid 100 | rm -f $pid_file 101 | echo -e "${GREEN}Server stopped.${NC}" 102 | exit 0 103 | else 104 | echo -e "${YELLOW}No running server found. Removing stale PID file.${NC}" 105 | rm -f $pid_file 106 | exit 1 107 | fi 108 | else 109 | echo -e "${YELLOW}No server is running.${NC}" 110 | exit 1 111 | fi 112 | ;; 113 | -h|--help) 114 | display_help 115 | ;; 116 | *) 117 | echo -e "${YELLOW}Warning: Unrecognized argument: $1${NC}" 118 | display_help 119 | ;; 120 | esac 121 | shift 122 | done 123 | 124 | # Get version if not specified 125 | if [[ -z "$revision" ]]; then 126 | revision=$(python3 kibot_resources/scripts/get_changelog_version.py -f CHANGELOG.md) 127 | if [[ $? -ne 0 ]]; then 128 | echo -e "${YELLOW}Warning: Unable to determine version from CHANGELOG.md. Defaulting to empty revision.${NC}" 129 | revision="" 130 | fi 131 | fi 132 | 133 | # Check KiCad version and set group command accordingly 134 | kicad_version=$(kicad-cli --version) 135 | if [[ "$kicad_version" =~ ^9\.[0-9]+\.[0-9]+$ ]]; then 136 | all_group="all_group_k9" 137 | else 138 | all_group="all_group" 139 | fi 140 | 141 | # Handle server flag 142 | if [[ "$server_flag" == true ]]; then 143 | echo -e "${GREEN}Starting HTTP server on port $server_port...${NC}" 144 | python3 -m http.server "$server_port" & 145 | echo $! > $pid_file 146 | sleep 1 147 | echo -e "${GREEN}Server running. Navigate to: http://localhost:$server_port${NC}" 148 | exit 0 149 | fi 150 | 151 | # Determine output directory based on variant 152 | case "$variant" in 153 | DRAFT|PRELIMINARY|CHECKED|RELEASED) 154 | output_dir="." 155 | ;; 156 | *) 157 | output_dir="Variants" 158 | ;; 159 | esac 160 | 161 | # Determine command based on variant 162 | if [[ "$costs_flag" == true ]]; then 163 | kibot_command1="$kibot_base --skip-pre erc,drc,draw_fancy_stackup $kibot_config -d '$output_dir' -g variant=$variant -E REVISION='$revision' -E KICOST_CONFIG='kibot_yaml/kicost_config_local.yaml' xlsx_bom" 164 | else 165 | case "$variant" in 166 | DRAFT) 167 | kibot_command1="$kibot_base --skip-pre set_text_variables,draw_fancy_stackup,erc,drc $kibot_config -d '$output_dir' -g variant=$variant -E REVISION='$revision' md_readme" 168 | kibot_command2="$kibot_base --skip-pre draw_fancy_stackup,erc,drc $kibot_config -d '$output_dir' -g variant=$variant -E REVISION='$revision' draft_group" 169 | ;; 170 | PRELIMINARY) 171 | kibot_command1="$kibot_base --skip-pre erc,drc $kibot_config -d '$output_dir' -g variant=$variant -E REVISION='$revision' notes" 172 | kibot_command2="$kibot_base --skip-pre erc,drc $kibot_config -d '$output_dir' -g variant=$variant -E REVISION='$revision' $all_group" 173 | ;; 174 | CHECKED|RELEASED|*) 175 | kibot_command1="$kibot_base --skip-pre set_text_variables,draw_fancy_stackup,erc,drc $kibot_config -d '$output_dir' -g variant=$variant -E REVISION='$revision' notes" 176 | kibot_command2="$kibot_base $kibot_config -d '$output_dir' -g variant=$variant -E REVISION='$revision' $all_group" 177 | ;; 178 | esac 179 | fi 180 | 181 | # Execute the commands 182 | echo -e "${GREEN}Running: $kibot_command1${NC}" 183 | eval $kibot_command1 184 | if [[ "$costs_flag" == false ]]; then 185 | echo -e "${GREEN}Running: $kibot_command2${NC}" 186 | eval $kibot_command2 187 | fi 188 | -------------------------------------------------------------------------------- /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | tags: 7 | - '[0-9]+.[0-9]+.[0-9]+' # Match semantic versioning tags 8 | branches: 9 | - main 10 | - dev 11 | paths-ignore: 12 | - '*.md' 13 | 14 | env: 15 | kibot_config: kibot_yaml/kibot_main.yaml 16 | # Used variant. We assume: 17 | # DRAFT: only schematic in progress, will only generate schematic PDF, netlist and BoM 18 | # PRELIMINARY: will generate both schematic and PCB documents, but no ERC/DRC 19 | # CHECKED: will generate both schematic and PCB documents, with ERC/DRC 20 | # RELEASED: similar to CHECKED, automatically selected when pushing a tag to main 21 | kibot_variant: DRAFT 22 | 23 | # Set the KiCad version to 9 24 | kicad_version: 9 25 | 26 | kibot_log: kibot_run.log 27 | 28 | permissions: 29 | contents: write 30 | 31 | jobs: 32 | release: 33 | needs: generate_outputs 34 | runs-on: ubuntu-latest 35 | if: github.ref_type == 'tag' 36 | steps: 37 | - name: Checkout 38 | uses: actions/checkout@v4 39 | with: 40 | ref: ${{ github.ref }} 41 | 42 | - name: Pull latest changes 43 | run: | 44 | git config --global user.email "github-actions[bot]@users.noreply.github.com" 45 | git config --global user.name "GitHub Actions" 46 | git fetch 47 | git pull origin main 48 | 49 | - name: Release 50 | uses: docker://antonyurchenko/git-release:v5 51 | env: 52 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 53 | with: 54 | args: | 55 | Schematic/*.pdf 56 | Manufacturing/Assembly/* 57 | Manufacturing/Fabrication/*.pdf 58 | Manufacturing/Fabrication/*.zip 59 | Manufacturing/Fabrication/*.txt 60 | 3D/*.step 61 | Testing/Testpoints/*.csv 62 | 63 | generate_outputs: 64 | runs-on: ubuntu-latest 65 | if: "!contains(github.event.head_commit.message, 'Merge pull request') || github.ref_type == 'tag'" 66 | steps: 67 | - name: Checkout Repository 68 | uses: actions/checkout@v4 69 | with: 70 | fetch-depth: 0 71 | 72 | # Run these changelog update steps only on tag pushes 73 | - name: Pull latest changes for changelog update 74 | if: ${{ github.ref_type == 'tag' }} 75 | run: | 76 | git config --global user.email "github-actions[bot]@users.noreply.github.com" 77 | git config --global user.name "GitHub Actions" 78 | git fetch 79 | git pull origin main 80 | 81 | - name: Extract release notes 82 | if: ${{ github.ref_type == 'tag' }} 83 | uses: ffurrer2/extract-release-notes@v2 84 | id: extract-release-notes 85 | with: 86 | prerelease: true 87 | 88 | - name: Update changelog 89 | if: ${{ github.ref_type == 'tag' }} 90 | uses: thomaseizinger/keep-a-changelog-new-release@v2 91 | with: 92 | tag: ${{ github.ref_name }} 93 | 94 | - name: Commit updated CHANGELOG 95 | if: ${{ github.ref_type == 'tag' }} 96 | uses: stefanzweifel/git-auto-commit-action@v5 97 | with: 98 | branch: main 99 | commit_message: Update CHANGELOG 100 | file_pattern: CHANGELOG.md 101 | push_options: '--force' 102 | 103 | - name: Cache 3D models data 104 | id: models-cache 105 | uses: set-soft/cache@main 106 | with: 107 | path: ~/cache_3d 108 | key: cache_3d 109 | 110 | - name: Determine VERSION Argument and Override Variant if Tag 111 | id: determine-version-and-args 112 | run: | 113 | last_tag=$(git describe --tags --abbrev=0 || echo "") 114 | if [[ "${{ github.ref_type }}" == "tag" ]]; then 115 | version_arg="-E REVISION='${last_tag}'" 116 | echo "Overriding kibot_variant to 'RELEASED' for tag" 117 | echo "kibot_variant=RELEASED" >> $GITHUB_ENV 118 | else 119 | version_arg="-E REVISION='${last_tag}+ (Unreleased)'" 120 | echo "kibot_variant=${{ env.kibot_variant }}" >> $GITHUB_ENV 121 | fi 122 | 123 | # Decide which group to use depending on kicad_version 124 | if [[ "${{ env.kicad_version }}" == "9" ]]; then 125 | group_name="all_group_k9" 126 | else 127 | group_name="all_group" 128 | fi 129 | 130 | # Determine additional_args based on the variant 131 | case "$kibot_variant" in 132 | "DRAFT") 133 | additional_args="--skip-pre draw_fancy_stackup,erc,drc ${version_arg} --log ${{ env.kibot_log }} draft_group" 134 | ;; 135 | "PRELIMINARY") 136 | additional_args="--skip-pre erc,drc ${version_arg} --log ${{ env.kibot_log }} ${group_name}" 137 | ;; 138 | "CHECKED"|"RELEASED") 139 | additional_args="${version_arg} --log ${{ env.kibot_log }} ${group_name}" 140 | ;; 141 | *) 142 | echo "Unknown variant: $kibot_variant" 143 | exit 1 144 | ;; 145 | esac 146 | 147 | echo "version_arg=${version_arg}" >> $GITHUB_ENV 148 | echo "additional_args=${additional_args}" >> $GITHUB_ENV 149 | 150 | # Generate notes (skipped for DRAFT variant) 151 | - name: Generate notes (KiCad 8) 152 | if: ${{ env.kicad_version == '8' && env.kibot_variant != 'DRAFT' }} 153 | uses: INTI-CMNB/KiBot@v2_dk8 154 | with: 155 | skip: all 156 | variant: ${{ env.kibot_variant }} 157 | config: ${{ env.kibot_config }} 158 | additional_args: --log kibot_run_notes.log notes 159 | 160 | - name: Generate notes (KiCad 9) 161 | if: ${{ env.kicad_version == '9' && env.kibot_variant != 'DRAFT' }} 162 | uses: INTI-CMNB/KiBot@v2_dk9 163 | with: 164 | skip: all 165 | variant: ${{ env.kibot_variant }} 166 | config: ${{ env.kibot_config }} 167 | additional_args: --log kibot_run_notes.log notes 168 | 169 | # Generate README only (only for DRAFT variant) 170 | - name: Generate README only (KiCad 8) 171 | if: ${{ env.kicad_version == '8' && env.kibot_variant == 'DRAFT' }} 172 | uses: INTI-CMNB/KiBot@v2_dk8 173 | with: 174 | skip: draw_fancy_stackup,set_text_variables,erc,drc 175 | variant: ${{ env.kibot_variant }} 176 | config: ${{ env.kibot_config }} 177 | additional_args: --log kibot_run_readme.log md_readme 178 | 179 | - name: Generate README only (KiCad 9) 180 | if: ${{ env.kicad_version == '9' && env.kibot_variant == 'DRAFT' }} 181 | uses: INTI-CMNB/KiBot@v2_dk9 182 | with: 183 | skip: draw_fancy_stackup,set_text_variables,erc,drc 184 | variant: ${{ env.kibot_variant }} 185 | config: ${{ env.kibot_config }} 186 | additional_args: --log kibot_run_readme.log md_readme 187 | 188 | # Generate outputs 189 | - name: Generate outputs (KiCad 8) 190 | if: ${{ env.kicad_version == '8' }} 191 | uses: INTI-CMNB/KiBot@v2_dk8 192 | with: 193 | additional_args: ${{ env.additional_args }} 194 | variant: ${{ env.kibot_variant }} 195 | config: ${{ env.kibot_config }} 196 | cache3D: YES 197 | 198 | - name: Generate outputs (KiCad 9) 199 | if: ${{ env.kicad_version == '9' }} 200 | uses: INTI-CMNB/KiBot@v2_dk9 201 | with: 202 | additional_args: ${{ env.additional_args }} 203 | variant: ${{ env.kibot_variant }} 204 | config: ${{ env.kibot_config }} 205 | cache3D: YES 206 | 207 | - name: Pull latest changes 208 | run: | 209 | git config --global user.email "github-actions[bot]@users.noreply.github.com" 210 | git config --global user.name "GitHub Actions" 211 | 212 | if [[ "${{ github.ref_type }}" == "tag" ]]; then 213 | echo "Triggered by a tag, committing changes in detached HEAD state" 214 | git add -A 215 | git commit -m "Update Outputs (release)" 216 | 217 | DETACHED_COMMIT=$(git rev-parse HEAD) 218 | echo "Checking out the main branch" 219 | git fetch origin main 220 | git checkout main 221 | 222 | echo "Merging detached HEAD commit into main" 223 | git merge --no-ff $DETACHED_COMMIT -m "Merge outputs from tag-triggered workflow" -X theirs 224 | echo "Pushing to main branch" 225 | git push origin main 226 | else 227 | echo "Triggered by a branch, using the current branch" 228 | git pull origin ${{ github.ref_name }} --tags --force 229 | fi 230 | 231 | - name: Discard changes to .kicad_pcb files and remove temp files 232 | run: | 233 | git checkout HEAD -- $(git ls-files "*.kicad_pcb") 234 | git clean -f "*.kicad_pcb" 235 | git clean -f "*.kicad_pro" 236 | git clean -f "*.kicad_dru" 237 | git clean -f "*.kicad_prl" 238 | 239 | - name: Update Outputs 240 | uses: stefanzweifel/git-auto-commit-action@v5 241 | with: 242 | branch: ${{ github.ref_name }} 243 | commit_message: Update Outputs 244 | 245 | - name: Store log 246 | if: ${{ always() }} 247 | uses: actions/upload-artifact@v4 248 | with: 249 | name: log_file 250 | path: ${{ env.kibot_log }} 251 | 252 | - name: Store notes log 253 | if: ${{ always() && env.kibot_variant != 'DRAFT' }} 254 | uses: actions/upload-artifact@v4 255 | with: 256 | name: log_file_notes 257 | path: kibot_run_notes.log 258 | 259 | - name: Store README log 260 | if: ${{ always() && env.kibot_variant == 'DRAFT' }} 261 | uses: actions/upload-artifact@v4 262 | with: 263 | name: log_file_readme 264 | path: kibot_run_readme.log 265 | -------------------------------------------------------------------------------- /Templates/KDT_Template.kicad_wks: -------------------------------------------------------------------------------- 1 | (kicad_wks 2 | (version 20231118) 3 | (generator "pl_editor") 4 | (generator_version "8.0") 5 | (setup 6 | (textsize 1.5 1.5) 7 | (linewidth 0.15) 8 | (textlinewidth 0.15) 9 | (left_margin 10) 10 | (right_margin 10) 11 | (top_margin 10) 12 | (bottom_margin 10) 13 | ) 14 | (rect 15 | (name "") 16 | (start 0 0 ltcorner) 17 | (end 0 0) 18 | (repeat 2) 19 | (incrx 2) 20 | (incry 2) 21 | ) 22 | (line 23 | (name "") 24 | (start 50 2 ltcorner) 25 | (end 50 0 ltcorner) 26 | (repeat 30) 27 | (incrx 50) 28 | ) 29 | (tbtext "1" 30 | (name "") 31 | (pos 25 1 ltcorner) 32 | (font 33 | (size 1.3 1.3) 34 | ) 35 | (repeat 100) 36 | (incrx 50) 37 | ) 38 | (line 39 | (name "") 40 | (start 50 2 lbcorner) 41 | (end 50 0 lbcorner) 42 | (repeat 30) 43 | (incrx 50) 44 | ) 45 | (tbtext "1" 46 | (name "") 47 | (pos 25 1 lbcorner) 48 | (font 49 | (size 1.3 1.3) 50 | ) 51 | (repeat 100) 52 | (incrx 50) 53 | ) 54 | (line 55 | (name "") 56 | (start 0 50 ltcorner) 57 | (end 2 50 ltcorner) 58 | (repeat 30) 59 | (incry 50) 60 | ) 61 | (tbtext "A" 62 | (name "") 63 | (pos 1 25 ltcorner) 64 | (font 65 | (size 1.3 1.3) 66 | ) 67 | (justify center) 68 | (repeat 100) 69 | (incry 50) 70 | ) 71 | (line 72 | (name "") 73 | (start 0 50 rtcorner) 74 | (end 2 50 rtcorner) 75 | (repeat 30) 76 | (incry 50) 77 | ) 78 | (tbtext "A" 79 | (name "") 80 | (pos 1 25 rtcorner) 81 | (font 82 | (size 1.3 1.3) 83 | ) 84 | (justify center) 85 | (repeat 100) 86 | (incry 50) 87 | ) 88 | (tbtext "${#}" 89 | (name "") 90 | (pos 25.6 6.0002) 91 | (font 92 | (face "Times New Roman") 93 | (size 2.5 2.5) bold 94 | (color 0 0 127 1) 95 | ) 96 | (comment "Sheet id") 97 | ) 98 | (tbtext "Sheet:" 99 | (name "") 100 | (pos 25.989 10.5022) 101 | (font 102 | (face "Arial") 103 | (color 0 0 255 1) 104 | ) 105 | (comment "Sheet id") 106 | ) 107 | (tbtext "of" 108 | (name "") 109 | (pos 17.489 5.5022) 110 | (font 111 | (face "Arial") 112 | (color 0 0 255 1) 113 | ) 114 | (comment "Sheet id") 115 | ) 116 | (tbtext "${##}" 117 | (name "") 118 | (pos 14 6) 119 | (font 120 | (face "Times New Roman") 121 | (size 2.5 2.5) bold 122 | (color 0 0 127 1) 123 | ) 124 | (comment "Sheet id") 125 | ) 126 | (tbtext "Size:" 127 | (name "") 128 | (pos 41.989 10.502) 129 | (font 130 | (face "Arial") 131 | (color 0 0 255 1) 132 | ) 133 | (comment "Sheet id") 134 | ) 135 | (tbtext "${PAPER}" 136 | (name "") 137 | (pos 40.989 6.0022) 138 | (font 139 | (face "Times New Roman") 140 | (size 2.5 2.5) bold 141 | (color 0 0 127 1) 142 | ) 143 | (comment "Sheet id") 144 | ) 145 | (line 146 | (name "") 147 | (start 43.489 2.0022) 148 | (end 43.489 12.5022) 149 | ) 150 | (line 151 | (name "") 152 | (start 43.489 12.5022) 153 | (end 1.989 12.5022) 154 | ) 155 | (line 156 | (name "") 157 | (start 27.489 12.5022) 158 | (end 27.489 2.0022) 159 | ) 160 | (line 161 | (name "") 162 | (start 43.489 12.5022) 163 | (end 43.489 23.0022) 164 | ) 165 | (line 166 | (name "") 167 | (start 43.489 23.0022) 168 | (end 1.989 23.0022) 169 | ) 170 | (tbtext "Revision:" 171 | (name "") 172 | (pos 17.989 21.002) 173 | (font 174 | (face "Arial") 175 | (color 0 0 255 1) 176 | ) 177 | (comment "Sheet id") 178 | ) 179 | (tbtext "${REVISION}" 180 | (name "") 181 | (pos 17.989 16.502) 182 | (font 183 | (face "Times New Roman") 184 | (color 0 0 127 1) 185 | ) 186 | (comment "Sheet id") 187 | ) 188 | (line 189 | (name "") 190 | (start 19.489 23.0022) 191 | (end 19.489 12.5022) 192 | ) 193 | (tbtext "Date:" 194 | (name "") 195 | (pos 41.989 21.002) 196 | (font 197 | (face "Arial") 198 | (color 0 0 255 1) 199 | ) 200 | (comment "Sheet id") 201 | ) 202 | (line 203 | (name "") 204 | (start 43.489 23.0022) 205 | (end 43.489 33.5022) 206 | ) 207 | (line 208 | (name "") 209 | (start 43.489 33.5022) 210 | (end 1.989 33.5022) 211 | ) 212 | (tbtext "Project Name:" 213 | (name "") 214 | (pos 41.989 31.502) 215 | (font 216 | (face "Arial") 217 | (color 0 0 255 1) 218 | ) 219 | (comment "Sheet id") 220 | ) 221 | (tbtext "${ISSUE_DATE}" 222 | (name "") 223 | (pos 41.989 16.502) 224 | (font 225 | (face "Times New Roman") 226 | (color 0 0 127 1) 227 | ) 228 | (comment "Sheet id") 229 | ) 230 | (tbtext "Reviewer:" 231 | (name "") 232 | (pos 68.9892 10.5022) 233 | (font 234 | (face "Arial") 235 | (color 0 0 255 1) 236 | ) 237 | (comment "Sheet id") 238 | ) 239 | (tbtext "${COMMENT9}" 240 | (name "") 241 | (pos 68.9892 6.0022) 242 | (font 243 | (face "Times New Roman") 244 | (color 0 0 127 1) 245 | ) 246 | (comment "Sheet id") 247 | ) 248 | (line 249 | (name "") 250 | (start 77.989 12.5022) 251 | (end 43.489 12.5022) 252 | ) 253 | (line 254 | (name "") 255 | (start 70.4892 2.0022) 256 | (end 70.4892 12.5022) 257 | ) 258 | (tbtext "Designer:" 259 | (name "") 260 | (pos 68.9892 21.0022) 261 | (font 262 | (face "Arial") 263 | (color 0 0 255 1) 264 | ) 265 | (comment "Sheet id") 266 | ) 267 | (line 268 | (name "") 269 | (start 70.4892 12.5022) 270 | (end 70.4892 23.0022) 271 | ) 272 | (line 273 | (name "") 274 | (start 77.989 23.0022) 275 | (end 43.489 23.0022) 276 | ) 277 | (tbtext "${DESIGNER}" 278 | (name "") 279 | (pos 68.9892 16.5022) 280 | (font 281 | (face "Times New Roman") 282 | (color 0 0 127 1) 283 | ) 284 | (comment "Sheet id") 285 | ) 286 | (line 287 | (name "") 288 | (start 112.489 12.5022) 289 | (end 77.989 12.5022) 290 | ) 291 | (line 292 | (name "") 293 | (start 112.489 12.5022) 294 | (end 112.489 23.0022) 295 | ) 296 | (line 297 | (name "") 298 | (start 112.489 23.0022) 299 | (end 77.989 23.0022) 300 | ) 301 | (tbtext "${FILENAME}" 302 | (name "") 303 | (pos 110.989 16.502) 304 | (font 305 | (face "Times New Roman") 306 | (color 0 0 127 1) 307 | ) 308 | (comment "Sheet id") 309 | ) 310 | (line 311 | (name "") 312 | (start 112.489 33.5022) 313 | (end 43.489 33.5022) 314 | ) 315 | (line 316 | (name "") 317 | (start 112.489 23.0022) 318 | (end 112.489 33.5022) 319 | ) 320 | (tbtext "Board Name:" 321 | (name "") 322 | (pos 110.989 31.502) 323 | (font 324 | (face "Arial") 325 | (color 0 0 255 1) 326 | ) 327 | (comment "Sheet id") 328 | ) 329 | (tbtext "Variant:" 330 | (name "") 331 | (pos 41.989 42.0022) 332 | (font 333 | (face "Arial") 334 | (color 0 0 255 1) 335 | ) 336 | (comment "Sheet id") 337 | ) 338 | (line 339 | (name "") 340 | (start 43.489 44.0022) 341 | (end 1.989 44.0022) 342 | ) 343 | (line 344 | (name "") 345 | (start 43.489 33.5022) 346 | (end 43.489 44.0022) 347 | ) 348 | (tbtext "${VARIANT}" 349 | (name "") 350 | (pos 41.989 37.502) 351 | (font 352 | (face "Times New Roman") 353 | (color 0 0 127 1) 354 | ) 355 | (comment "Sheet id") 356 | ) 357 | (line 358 | (name "") 359 | (start 112.489 44.0022) 360 | (end 43.489 44.0022) 361 | ) 362 | (line 363 | (name "") 364 | (start 112.489 33.5022) 365 | (end 112.489 44.0022) 366 | ) 367 | (tbtext "Company:" 368 | (name "") 369 | (pos 110.989 42.002) 370 | (font 371 | (face "Arial") 372 | (color 0 0 255 1) 373 | ) 374 | (comment "Sheet id") 375 | ) 376 | (tbtext "${COMPANY}" 377 | (name "") 378 | (pos 110.989 37.502) 379 | (font 380 | (face "Times New Roman") bold 381 | (color 0 0 127 1) 382 | ) 383 | (comment "Sheet id") 384 | ) 385 | (tbtext "${PROJECT_NAME}" 386 | (name "") 387 | (pos 41.489 27.002) 388 | (font 389 | (face "Times New Roman") 390 | (size 2.5 2.5) bold 391 | (color 0 0 127 1) 392 | ) 393 | (comment "Sheet id") 394 | ) 395 | (tbtext "${BOARD_NAME}" 396 | (name "") 397 | (pos 110.489 27.002) 398 | (font 399 | (face "Times New Roman") 400 | (size 2.5 2.5) bold 401 | (color 0 0 127 1) 402 | ) 403 | (comment "Sheet id") 404 | ) 405 | (line 406 | (name "") 407 | (start 146.989 12.5022) 408 | (end 146.989 23.0022) 409 | ) 410 | (line 411 | (name "") 412 | (start 146.989 23.0022) 413 | (end 112.489 23.0022) 414 | ) 415 | (line 416 | (name "") 417 | (start 146.989 12.5022) 418 | (end 112.489 12.5022) 419 | ) 420 | (line 421 | (name "") 422 | (start 146.989 2.0022) 423 | (end 146.989 12.5022) 424 | ) 425 | (tbtext "File Name:" 426 | (name "") 427 | (pos 110.989 21.002) 428 | (font 429 | (face "Arial") 430 | (color 0 0 255 1) 431 | ) 432 | (comment "Sheet id") 433 | ) 434 | (tbtext "Sheet Title:" 435 | (name "") 436 | (pos 145.489 21.0022) 437 | (font 438 | (face "Arial") 439 | (color 0 0 255 1) 440 | ) 441 | (comment "Sheet id") 442 | ) 443 | (tbtext "${SHEETPATH}" 444 | (name "") 445 | (pos 145.489 6.002) 446 | (font 447 | (face "Times New Roman") 448 | (color 0 0 127 1) 449 | ) 450 | (comment "Sheet id") 451 | ) 452 | (tbtext "Sheet Path:" 453 | (name "") 454 | (pos 145.489 10.502) 455 | (font 456 | (face "Arial") 457 | (color 0 0 255 1) 458 | ) 459 | (comment "Sheet id") 460 | ) 461 | (tbtext "${TITLE}" 462 | (name "") 463 | (pos 145.489 16.502) 464 | (font 465 | (face "Times New Roman") 466 | (color 0 0 127 1) 467 | ) 468 | (comment "Sheet id") 469 | ) 470 | (line 471 | (name "") 472 | (start 146.989 44.0022) 473 | (end 112.489 44.0022) 474 | ) 475 | (line 476 | (name "") 477 | (start 146.989 23.0022) 478 | (end 146.989 44.0022) 479 | ) 480 | (tbtext "Comments:" 481 | (name "") 482 | (pos 145.489 42.002) 483 | (font 484 | (face "Arial") 485 | (color 0 0 255 1) 486 | ) 487 | (comment "Sheet id") 488 | ) 489 | (tbtext "${COMMENT1}" 490 | (name "") 491 | (pos 145.489 37.502) 492 | (font 493 | (face "Times New Roman") 494 | (color 0 0 127 1) 495 | ) 496 | (comment "Sheet id") 497 | ) 498 | (tbtext "${COMMENT2}" 499 | (name "") 500 | (pos 145.489 34.002) 501 | (font 502 | (face "Times New Roman") 503 | (color 0 0 127 1) 504 | ) 505 | (comment "Sheet id") 506 | ) 507 | (tbtext "${COMMENT3}" 508 | (name "") 509 | (pos 145.489 30.502) 510 | (font 511 | (face "Times New Roman") 512 | (color 0 0 127 1) 513 | ) 514 | (comment "Sheet id") 515 | ) 516 | (tbtext "${COMMENT4}" 517 | (name "") 518 | (pos 145.489 27.002) 519 | (font 520 | (face "Times New Roman") 521 | (color 0 0 127 1) 522 | ) 523 | (comment "Sheet id") 524 | ) 525 | (line 526 | (name "") 527 | (start 112.489 44.0022) 528 | (end 43.489 44.0022) 529 | ) 530 | (line 531 | (name "") 532 | (start 188.989 44.0022) 533 | (end 146.989 44.0022) 534 | ) 535 | (line 536 | (name "") 537 | (start 188.989 44.0022) 538 | (end 188.989 2.0022) 539 | ) 540 | ) 541 | -------------------------------------------------------------------------------- /Section B - TItle B.kicad_sch: -------------------------------------------------------------------------------- 1 | (kicad_sch 2 | (version 20231120) 3 | (generator "eeschema") 4 | (generator_version "8.0") 5 | (uuid "ea8c4f5e-7a49-4faf-a994-dbc85ed86b0a") 6 | (paper "A3") 7 | (title_block 8 | (title "Sheet Title B") 9 | (date "2025-01-12") 10 | (rev "${REVISION}") 11 | (company "${COMPANY}") 12 | ) 13 | (lib_symbols) 14 | (rectangle 15 | (start 139.7 125.73) 16 | (end 224.79 205.74) 17 | (stroke 18 | (width 1) 19 | (type default) 20 | (color 200 200 200 1) 21 | ) 22 | (fill 23 | (type none) 24 | ) 25 | (uuid 1d862d27-55c8-43d9-a1e0-027d1852f163) 26 | ) 27 | (rectangle 28 | (start 317.5 39.37) 29 | (end 373.38 240.03) 30 | (stroke 31 | (width 1) 32 | (type default) 33 | (color 200 200 200 1) 34 | ) 35 | (fill 36 | (type none) 37 | ) 38 | (uuid 1d9edcfe-b949-46c5-adca-40f822b4bd2a) 39 | ) 40 | (rectangle 41 | (start 45.72 172.72) 42 | (end 134.62 205.74) 43 | (stroke 44 | (width 1) 45 | (type default) 46 | (color 200 200 200 1) 47 | ) 48 | (fill 49 | (type none) 50 | ) 51 | (uuid 5d23fe69-1b57-41a7-86cd-8987bca3e109) 52 | ) 53 | (rectangle 54 | (start 45.72 210.82) 55 | (end 134.62 240.03) 56 | (stroke 57 | (width 1) 58 | (type default) 59 | (color 200 200 200 1) 60 | ) 61 | (fill 62 | (type none) 63 | ) 64 | (uuid 8b07e48f-2db7-43ad-80d6-e91fd34b7137) 65 | ) 66 | (rectangle 67 | (start 229.87 186.69) 68 | (end 312.42 205.74) 69 | (stroke 70 | (width 1) 71 | (type default) 72 | (color 200 200 200 1) 73 | ) 74 | (fill 75 | (type none) 76 | ) 77 | (uuid 8fb364d8-7e61-4713-a5cf-4e5bf9a0422c) 78 | ) 79 | (rectangle 80 | (start 229.87 125.73) 81 | (end 312.42 181.61) 82 | (stroke 83 | (width 1) 84 | (type default) 85 | (color 200 200 200 1) 86 | ) 87 | (fill 88 | (type none) 89 | ) 90 | (uuid 91e86061-3695-4d86-a73e-d25af3bfe9b8) 91 | ) 92 | (rectangle 93 | (start 139.7 210.82) 94 | (end 224.79 240.03) 95 | (stroke 96 | (width 1) 97 | (type default) 98 | (color 200 200 200 1) 99 | ) 100 | (fill 101 | (type none) 102 | ) 103 | (uuid d99cdb64-d2e4-4f1f-8584-4020073b6248) 104 | ) 105 | (rectangle 106 | (start 45.72 39.37) 107 | (end 134.62 167.64) 108 | (stroke 109 | (width 1) 110 | (type default) 111 | (color 200 200 200 1) 112 | ) 113 | (fill 114 | (type none) 115 | ) 116 | (uuid ed047b56-79da-45e9-8381-b3465e9473b3) 117 | ) 118 | (rectangle 119 | (start 139.7 39.37) 120 | (end 312.42 120.65) 121 | (stroke 122 | (width 1) 123 | (type default) 124 | (color 200 200 200 1) 125 | ) 126 | (fill 127 | (type none) 128 | ) 129 | (uuid ed78b7e7-9d87-4eba-bb13-ab88d26954ef) 130 | ) 131 | (rectangle 132 | (start 229.87 210.82) 133 | (end 312.42 240.03) 134 | (stroke 135 | (width 1) 136 | (type default) 137 | (color 200 200 200 1) 138 | ) 139 | (fill 140 | (type none) 141 | ) 142 | (uuid f026768c-915f-4378-b3f2-b0a2f2a348b8) 143 | ) 144 | (text_box "Block Description" 145 | (exclude_from_sim no) 146 | (at 46.99 194.31 0) 147 | (size 86.36 9.525) 148 | (stroke 149 | (width -0.0001) 150 | (type default) 151 | ) 152 | (fill 153 | (type none) 154 | ) 155 | (effects 156 | (font 157 | (face "Times New Roman") 158 | (size 2.54 2.54) 159 | (thickness 0.508) 160 | (bold yes) 161 | (color 162 22 34 1) 162 | ) 163 | (justify bottom) 164 | ) 165 | (uuid "22f68459-86b0-4160-81dc-9d64d58e4265") 166 | ) 167 | (text_box "Block Description" 168 | (exclude_from_sim no) 169 | (at 140.97 228.6 0) 170 | (size 82.55 9.525) 171 | (stroke 172 | (width -0.0001) 173 | (type default) 174 | ) 175 | (fill 176 | (type none) 177 | ) 178 | (effects 179 | (font 180 | (face "Times New Roman") 181 | (size 2.54 2.54) 182 | (thickness 0.508) 183 | (bold yes) 184 | (color 162 22 34 1) 185 | ) 186 | (justify bottom) 187 | ) 188 | (uuid "5050590c-bc0b-438f-ac65-a11e5219903d") 189 | ) 190 | (text_box "[${#}] ${TITLE}" 191 | (exclude_from_sim no) 192 | (at 161.29 20.32 0) 193 | (size 96.52 12.7) 194 | (stroke 195 | (width -0.0001) 196 | (type default) 197 | ) 198 | (fill 199 | (type none) 200 | ) 201 | (effects 202 | (font 203 | (face "Times New Roman") 204 | (size 8 8) 205 | (thickness 1.2) 206 | (bold yes) 207 | (color 162 22 34 1) 208 | ) 209 | ) 210 | (uuid "524c500e-48b2-4d74-9c30-5c34bf6c2558") 211 | ) 212 | (text_box "Block Description" 213 | (exclude_from_sim no) 214 | (at 46.99 228.6 0) 215 | (size 86.36 9.525) 216 | (stroke 217 | (width -0.0001) 218 | (type default) 219 | ) 220 | (fill 221 | (type none) 222 | ) 223 | (effects 224 | (font 225 | (face "Times New Roman") 226 | (size 2.54 2.54) 227 | (thickness 0.508) 228 | (bold yes) 229 | (color 162 22 34 1) 230 | ) 231 | (justify bottom) 232 | ) 233 | (uuid "67a85d80-fe45-4492-a23f-f4ed25b939a9") 234 | ) 235 | (text_box "DESIGN NOTE:\nblabla" 236 | (exclude_from_sim no) 237 | (at 77.47 143.51 0) 238 | (size 21.59 15.24) 239 | (stroke 240 | (width 0.8) 241 | (type solid) 242 | (color 255 165 0 1) 243 | ) 244 | (fill 245 | (type none) 246 | ) 247 | (effects 248 | (font 249 | (face "Arial") 250 | (size 1.27 1.27) 251 | (color 0 0 0 1) 252 | ) 253 | (justify left top) 254 | ) 255 | (uuid "7118d66d-27ed-4a42-9d0f-29873dd1133d") 256 | ) 257 | (text_box "Block Description" 258 | (exclude_from_sim no) 259 | (at 231.14 228.6 0) 260 | (size 80.01 9.525) 261 | (stroke 262 | (width -0.0001) 263 | (type default) 264 | ) 265 | (fill 266 | (type none) 267 | ) 268 | (effects 269 | (font 270 | (face "Times New Roman") 271 | (size 2.54 2.54) 272 | (thickness 0.508) 273 | (bold yes) 274 | (color 162 22 34 1) 275 | ) 276 | (justify bottom) 277 | ) 278 | (uuid "7283beb6-c696-4e44-ac80-edfae78c644b") 279 | ) 280 | (text_box "LAYOUT NOTE:\nblabla" 281 | (exclude_from_sim no) 282 | (at 101.6 143.51 0) 283 | (size 26.67 15.24) 284 | (stroke 285 | (width 1) 286 | (type solid) 287 | (color 0 0 255 1) 288 | ) 289 | (fill 290 | (type none) 291 | ) 292 | (effects 293 | (font 294 | (face "Arial") 295 | (size 1.27 1.27) 296 | (thickness 0.4) 297 | (bold yes) 298 | (color 0 0 255 1) 299 | ) 300 | (justify left top) 301 | ) 302 | (uuid "789bb8df-08ec-4683-a441-f4ff02e08c1e") 303 | ) 304 | (text_box "Block Description" 305 | (exclude_from_sim no) 306 | (at 46.99 156.21 0) 307 | (size 86.36 9.525) 308 | (stroke 309 | (width -0.0001) 310 | (type default) 311 | ) 312 | (fill 313 | (type none) 314 | ) 315 | (effects 316 | (font 317 | (face "Times New Roman") 318 | (size 2.54 2.54) 319 | (thickness 0.508) 320 | (bold yes) 321 | (color 162 22 34 1) 322 | ) 323 | (justify bottom) 324 | ) 325 | (uuid "904a8349-50c0-42c2-9fb8-b365e5e4dae5") 326 | ) 327 | (text_box "Block Description" 328 | (exclude_from_sim no) 329 | (at 142.24 109.22 0) 330 | (size 167.64 9.525) 331 | (stroke 332 | (width -0.0001) 333 | (type default) 334 | ) 335 | (fill 336 | (type none) 337 | ) 338 | (effects 339 | (font 340 | (face "Times New Roman") 341 | (size 2.54 2.54) 342 | (thickness 0.508) 343 | (bold yes) 344 | (color 162 22 34 1) 345 | ) 346 | (justify bottom) 347 | ) 348 | (uuid "96ca24d3-fb87-492b-b46b-2ff8e6f8597a") 349 | ) 350 | (text_box "Block Description" 351 | (exclude_from_sim no) 352 | (at 231.775 170.815 0) 353 | (size 78.74 9.525) 354 | (stroke 355 | (width -0.0001) 356 | (type default) 357 | ) 358 | (fill 359 | (type none) 360 | ) 361 | (effects 362 | (font 363 | (face "Times New Roman") 364 | (size 2.54 2.54) 365 | (thickness 0.508) 366 | (bold yes) 367 | (color 162 22 34 1) 368 | ) 369 | (justify bottom) 370 | ) 371 | (uuid "9cf3d12e-f9c3-4c34-8081-b16b6bc5d5dd") 372 | ) 373 | (text_box "Block Description" 374 | (exclude_from_sim no) 375 | (at 231.14 194.31 0) 376 | (size 80.01 9.525) 377 | (stroke 378 | (width -0.0001) 379 | (type default) 380 | ) 381 | (fill 382 | (type none) 383 | ) 384 | (effects 385 | (font 386 | (face "Times New Roman") 387 | (size 2.54 2.54) 388 | (thickness 0.508) 389 | (bold yes) 390 | (color 162 22 34 1) 391 | ) 392 | (justify bottom) 393 | ) 394 | (uuid "a0355043-f06f-4f70-9556-f7b249e99a87") 395 | ) 396 | (text_box "Block Description" 397 | (exclude_from_sim no) 398 | (at 318.77 228.6 0) 399 | (size 53.34 9.525) 400 | (stroke 401 | (width -0.0001) 402 | (type default) 403 | ) 404 | (fill 405 | (type none) 406 | ) 407 | (effects 408 | (font 409 | (face "Times New Roman") 410 | (size 2.54 2.54) 411 | (thickness 0.508) 412 | (bold yes) 413 | (color 162 22 34 1) 414 | ) 415 | (justify bottom) 416 | ) 417 | (uuid "ac59a6b3-731c-4363-a803-7459ac300c4a") 418 | ) 419 | (text_box "DESIGN NOTE:\nblabla" 420 | (exclude_from_sim no) 421 | (at 53.34 143.51 0) 422 | (size 21.59 15.24) 423 | (stroke 424 | (width 0.8) 425 | (type solid) 426 | (color 200 200 200 1) 427 | ) 428 | (fill 429 | (type none) 430 | ) 431 | (effects 432 | (font 433 | (face "Arial") 434 | (size 1.27 1.27) 435 | (color 0 0 0 1) 436 | ) 437 | (justify left top) 438 | ) 439 | (uuid "b30fc753-248d-41ea-b0ab-815ff2704544") 440 | ) 441 | (text_box "Block Description" 442 | (exclude_from_sim no) 443 | (at 140.97 194.31 0) 444 | (size 82.55 9.525) 445 | (stroke 446 | (width -0.0001) 447 | (type default) 448 | ) 449 | (fill 450 | (type none) 451 | ) 452 | (effects 453 | (font 454 | (face "Times New Roman") 455 | (size 2.54 2.54) 456 | (thickness 0.508) 457 | (bold yes) 458 | (color 162 22 34 1) 459 | ) 460 | (justify bottom) 461 | ) 462 | (uuid "d975f102-c262-465d-91fc-7f6c552cfb8d") 463 | ) 464 | (text "Flexible I/O worked examples" 465 | (exclude_from_sim no) 466 | (at 265.43 254 0) 467 | (effects 468 | (font 469 | (face "Arial") 470 | (size 1.27 1.27) 471 | (color 0 0 0 1) 472 | ) 473 | (justify left bottom) 474 | (href "https://jpieper.com/2022/06/30/flexible-i-o-worked-examples/") 475 | ) 476 | (uuid "16842e9f-eef2-418b-80ee-4eca09c5cd4a") 477 | ) 478 | (text "References:" 479 | (exclude_from_sim no) 480 | (at 265.43 250.19 0) 481 | (effects 482 | (font 483 | (face "Arial") 484 | (size 1.27 1.27) 485 | (thickness 0.254) 486 | (bold yes) 487 | (color 0 0 0 1) 488 | ) 489 | (justify left bottom) 490 | ) 491 | (uuid "ca73a951-c39c-4a3c-9e12-06e6bc2f3311") 492 | ) 493 | (text "Flexible I/O source configuration" 494 | (exclude_from_sim no) 495 | (at 265.43 256.54 0) 496 | (effects 497 | (font 498 | (face "Arial") 499 | (size 1.27 1.27) 500 | (color 0 0 0 1) 501 | ) 502 | (justify left bottom) 503 | (href "https://jpieper.com/2022/06/28/flexible-i-o-source-configuration/") 504 | ) 505 | (uuid "ff128f57-01dd-404e-9bb2-8208299d438c") 506 | ) 507 | ) 508 | -------------------------------------------------------------------------------- /Templates/KDT_Template_PCB_A5.kicad_wks: -------------------------------------------------------------------------------- 1 | (kicad_wks 2 | (version 20231118) 3 | (generator "pl_editor") 4 | (generator_version "8.0") 5 | (setup 6 | (textsize 1.5 1.5) 7 | (linewidth 0.15) 8 | (textlinewidth 0.15) 9 | (left_margin 10) 10 | (right_margin 10) 11 | (top_margin 10) 12 | (bottom_margin 10) 13 | ) 14 | (rect 15 | (name "") 16 | (start 0 0 ltcorner) 17 | (end 0 0) 18 | (repeat 2) 19 | (incrx 2) 20 | (incry 2) 21 | ) 22 | (line 23 | (name "") 24 | (start 50 2 ltcorner) 25 | (end 50 0 ltcorner) 26 | (repeat 30) 27 | (incrx 50) 28 | ) 29 | (tbtext "1" 30 | (name "") 31 | (pos 25 1 ltcorner) 32 | (font 33 | (size 1.3 1.3) 34 | ) 35 | (repeat 100) 36 | (incrx 50) 37 | ) 38 | (line 39 | (name "") 40 | (start 50 2 lbcorner) 41 | (end 50 0 lbcorner) 42 | (repeat 30) 43 | (incrx 50) 44 | ) 45 | (tbtext "1" 46 | (name "") 47 | (pos 25 1 lbcorner) 48 | (font 49 | (size 1.3 1.3) 50 | ) 51 | (repeat 100) 52 | (incrx 50) 53 | ) 54 | (line 55 | (name "") 56 | (start 0 50 ltcorner) 57 | (end 2 50 ltcorner) 58 | (repeat 30) 59 | (incry 50) 60 | ) 61 | (tbtext "A" 62 | (name "") 63 | (pos 1 25 ltcorner) 64 | (font 65 | (size 1.3 1.3) 66 | ) 67 | (justify center) 68 | (repeat 100) 69 | (incry 50) 70 | ) 71 | (line 72 | (name "") 73 | (start 0 50 rtcorner) 74 | (end 2 50 rtcorner) 75 | (repeat 30) 76 | (incry 50) 77 | ) 78 | (tbtext "A" 79 | (name "") 80 | (pos 1 25 rtcorner) 81 | (font 82 | (size 1.3 1.3) 83 | ) 84 | (justify center) 85 | (repeat 100) 86 | (incry 50) 87 | ) 88 | (tbtext "${#}" 89 | (name "") 90 | (pos 25.6 6.0002) 91 | (font 92 | (face "Times New Roman") 93 | (size 2.5 2.5) bold 94 | (color 0 0 127 1) 95 | ) 96 | (comment "Sheet id") 97 | ) 98 | (tbtext "Sheet:" 99 | (name "") 100 | (pos 25.989 10.5022) 101 | (font 102 | (face "Arial") 103 | (color 0 0 255 1) 104 | ) 105 | (comment "Sheet id") 106 | ) 107 | (tbtext "of" 108 | (name "") 109 | (pos 17.489 5.5022) 110 | (font 111 | (face "Arial") 112 | (color 0 0 255 1) 113 | ) 114 | (comment "Sheet id") 115 | ) 116 | (tbtext "${##}" 117 | (name "") 118 | (pos 14 6) 119 | (font 120 | (face "Times New Roman") 121 | (size 2.5 2.5) bold 122 | (color 0 0 127 1) 123 | ) 124 | (comment "Sheet id") 125 | ) 126 | (tbtext "Size:" 127 | (name "") 128 | (pos 41.989 10.502) 129 | (font 130 | (face "Arial") 131 | (color 0 0 255 1) 132 | ) 133 | (comment "Sheet id") 134 | ) 135 | (tbtext "${PAPER}" 136 | (name "") 137 | (pos 40.989 6.0022) 138 | (font 139 | (face "Times New Roman") 140 | (size 2.5 2.5) bold 141 | (color 0 0 127 1) 142 | ) 143 | (comment "Sheet id") 144 | ) 145 | (line 146 | (name "") 147 | (start 43.489 2.0022) 148 | (end 43.489 12.5022) 149 | ) 150 | (line 151 | (name "") 152 | (start 43.489 12.5022) 153 | (end 1.989 12.5022) 154 | ) 155 | (line 156 | (name "") 157 | (start 27.489 12.5022) 158 | (end 27.489 2.0022) 159 | ) 160 | (line 161 | (name "") 162 | (start 43.489 12.5022) 163 | (end 43.489 23.0022) 164 | ) 165 | (line 166 | (name "") 167 | (start 43.489 23.0022) 168 | (end 1.989 23.0022) 169 | ) 170 | (tbtext "Revision:" 171 | (name "") 172 | (pos 17.989 21.002) 173 | (font 174 | (face "Arial") 175 | (color 0 0 255 1) 176 | ) 177 | (comment "Sheet id") 178 | ) 179 | (tbtext "${REVISION}" 180 | (name "") 181 | (pos 17.989 16.502) 182 | (font 183 | (face "Times New Roman") 184 | (color 0 0 127 1) 185 | ) 186 | (comment "Sheet id") 187 | ) 188 | (line 189 | (name "") 190 | (start 19.489 23.0022) 191 | (end 19.489 12.5022) 192 | ) 193 | (tbtext "Date:" 194 | (name "") 195 | (pos 41.989 21.002) 196 | (font 197 | (face "Arial") 198 | (color 0 0 255 1) 199 | ) 200 | (comment "Sheet id") 201 | ) 202 | (line 203 | (name "") 204 | (start 43.489 23.0022) 205 | (end 43.489 33.5022) 206 | ) 207 | (line 208 | (name "") 209 | (start 43.489 33.5022) 210 | (end 1.989 33.5022) 211 | ) 212 | (tbtext "Project Name:" 213 | (name "") 214 | (pos 41.989 31.502) 215 | (font 216 | (face "Arial") 217 | (color 0 0 255 1) 218 | ) 219 | (comment "Sheet id") 220 | ) 221 | (tbtext "${ISSUE_DATE}" 222 | (name "") 223 | (pos 41.989 16.502) 224 | (font 225 | (face "Times New Roman") 226 | (color 0 0 127 1) 227 | ) 228 | (comment "Sheet id") 229 | ) 230 | (tbtext "Reviewer:" 231 | (name "") 232 | (pos 68.9892 10.5022) 233 | (font 234 | (face "Arial") 235 | (color 0 0 255 1) 236 | ) 237 | (comment "Sheet id") 238 | ) 239 | (tbtext "${COMMENT9}" 240 | (name "") 241 | (pos 68.9892 6.0022) 242 | (font 243 | (face "Times New Roman") 244 | (color 0 0 127 1) 245 | ) 246 | (comment "Sheet id") 247 | ) 248 | (line 249 | (name "") 250 | (start 77.989 12.5022) 251 | (end 43.489 12.5022) 252 | ) 253 | (line 254 | (name "") 255 | (start 70.4892 2.0022) 256 | (end 70.4892 12.5022) 257 | ) 258 | (tbtext "Designer:" 259 | (name "") 260 | (pos 68.9892 21.0022) 261 | (font 262 | (face "Arial") 263 | (color 0 0 255 1) 264 | ) 265 | (comment "Sheet id") 266 | ) 267 | (line 268 | (name "") 269 | (start 70.4892 12.5022) 270 | (end 70.4892 23.0022) 271 | ) 272 | (line 273 | (name "") 274 | (start 77.989 23.0022) 275 | (end 43.489 23.0022) 276 | ) 277 | (tbtext "${DESIGNER}" 278 | (name "") 279 | (pos 68.9892 16.5022) 280 | (font 281 | (face "Times New Roman") 282 | (color 0 0 127 1) 283 | ) 284 | (comment "Sheet id") 285 | ) 286 | (line 287 | (name "") 288 | (start 112.489 12.5022) 289 | (end 77.989 12.5022) 290 | ) 291 | (line 292 | (name "") 293 | (start 112.489 12.5022) 294 | (end 112.489 23.0022) 295 | ) 296 | (line 297 | (name "") 298 | (start 112.489 23.0022) 299 | (end 77.989 23.0022) 300 | ) 301 | (tbtext "${FILENAME}" 302 | (name "") 303 | (pos 110.989 16.502) 304 | (font 305 | (face "Times New Roman") 306 | (color 0 0 127 1) 307 | ) 308 | (comment "Sheet id") 309 | ) 310 | (line 311 | (name "") 312 | (start 112.489 33.5022) 313 | (end 43.489 33.5022) 314 | ) 315 | (line 316 | (name "") 317 | (start 112.489 23.0022) 318 | (end 112.489 33.5022) 319 | ) 320 | (tbtext "Board Name:" 321 | (name "") 322 | (pos 110.989 31.502) 323 | (font 324 | (face "Arial") 325 | (color 0 0 255 1) 326 | ) 327 | (comment "Sheet id") 328 | ) 329 | (tbtext "Variant:" 330 | (name "") 331 | (pos 41.989 42.0022) 332 | (font 333 | (face "Arial") 334 | (color 0 0 255 1) 335 | ) 336 | (comment "Sheet id") 337 | ) 338 | (line 339 | (name "") 340 | (start 43.489 44.0022) 341 | (end 1.989 44.0022) 342 | ) 343 | (line 344 | (name "") 345 | (start 43.489 33.5022) 346 | (end 43.489 44.0022) 347 | ) 348 | (tbtext "${VARIANT}" 349 | (name "") 350 | (pos 41.989 37.502) 351 | (font 352 | (face "Times New Roman") 353 | (color 0 0 127 1) 354 | ) 355 | (comment "Sheet id") 356 | ) 357 | (line 358 | (name "") 359 | (start 112.489 44.0022) 360 | (end 43.489 44.0022) 361 | ) 362 | (line 363 | (name "") 364 | (start 112.489 33.5022) 365 | (end 112.489 44.0022) 366 | ) 367 | (tbtext "Company:" 368 | (name "") 369 | (pos 110.989 42.002) 370 | (font 371 | (face "Arial") 372 | (color 0 0 255 1) 373 | ) 374 | (comment "Sheet id") 375 | ) 376 | (tbtext "${COMPANY}" 377 | (name "") 378 | (pos 110.989 37.502) 379 | (font 380 | (face "Times New Roman") bold 381 | (color 0 0 127 1) 382 | ) 383 | (comment "Sheet id") 384 | ) 385 | (tbtext "${PROJECT_NAME}" 386 | (name "") 387 | (pos 41.489 27.002) 388 | (font 389 | (face "Times New Roman") 390 | (size 2.5 2.5) bold 391 | (color 0 0 127 1) 392 | ) 393 | (comment "Sheet id") 394 | ) 395 | (tbtext "${BOARD_NAME}" 396 | (name "") 397 | (pos 110.489 27.002) 398 | (font 399 | (face "Times New Roman") 400 | (size 2.5 2.5) bold 401 | (color 0 0 127 1) 402 | ) 403 | (comment "Sheet id") 404 | ) 405 | (line 406 | (name "") 407 | (start 146.989 12.5022) 408 | (end 146.989 23.0022) 409 | ) 410 | (line 411 | (name "") 412 | (start 146.989 23.0022) 413 | (end 112.489 23.0022) 414 | ) 415 | (line 416 | (name "") 417 | (start 146.989 12.5022) 418 | (end 112.489 12.5022) 419 | ) 420 | (line 421 | (name "") 422 | (start 146.989 2.0022) 423 | (end 146.989 12.5022) 424 | ) 425 | (tbtext "File Name:" 426 | (name "") 427 | (pos 110.989 21.002) 428 | (font 429 | (face "Arial") 430 | (color 0 0 255 1) 431 | ) 432 | (comment "Sheet id") 433 | ) 434 | (tbtext "Sheet Title:" 435 | (name "") 436 | (pos 145.489 21.0022) 437 | (font 438 | (face "Arial") 439 | (color 0 0 255 1) 440 | ) 441 | (comment "Sheet id") 442 | ) 443 | (tbtext "${SHEETPATH}" 444 | (name "") 445 | (pos 145.489 6.002) 446 | (font 447 | (face "Times New Roman") 448 | (color 0 0 127 1) 449 | ) 450 | (comment "Sheet id") 451 | ) 452 | (tbtext "Sheet Path:" 453 | (name "") 454 | (pos 145.489 10.502) 455 | (font 456 | (face "Arial") 457 | (color 0 0 255 1) 458 | ) 459 | (comment "Sheet id") 460 | ) 461 | (tbtext "${SHEETNAME}" 462 | (name "") 463 | (pos 145.489 16.502) 464 | (font 465 | (face "Times New Roman") 466 | (color 0 0 127 1) 467 | ) 468 | (comment "Sheet id") 469 | ) 470 | (line 471 | (name "") 472 | (start 146.989 44.0022) 473 | (end 112.489 44.0022) 474 | ) 475 | (line 476 | (name "") 477 | (start 146.989 23.0022) 478 | (end 146.989 44.0022) 479 | ) 480 | (tbtext "Comments:" 481 | (name "") 482 | (pos 145.489 42.002) 483 | (font 484 | (face "Arial") 485 | (color 0 0 255 1) 486 | ) 487 | (comment "Sheet id") 488 | ) 489 | (tbtext "${COMMENT1}" 490 | (name "") 491 | (pos 145.489 37.502) 492 | (font 493 | (face "Times New Roman") 494 | (color 0 0 127 1) 495 | ) 496 | (comment "Sheet id") 497 | ) 498 | (tbtext "${COMMENT2}" 499 | (name "") 500 | (pos 145.489 34.002) 501 | (font 502 | (face "Times New Roman") 503 | (color 0 0 127 1) 504 | ) 505 | (comment "Sheet id") 506 | ) 507 | (tbtext "${COMMENT3}" 508 | (name "") 509 | (pos 145.489 30.502) 510 | (font 511 | (face "Times New Roman") 512 | (color 0 0 127 1) 513 | ) 514 | (comment "Sheet id") 515 | ) 516 | (tbtext "${COMMENT4}" 517 | (name "") 518 | (pos 145.489 27.002) 519 | (font 520 | (face "Times New Roman") 521 | (color 0 0 127 1) 522 | ) 523 | (comment "Sheet id") 524 | ) 525 | (line 526 | (name "") 527 | (start 112.489 44.0022) 528 | (end 43.489 44.0022) 529 | ) 530 | (line 531 | (name "") 532 | (start 188 44.002) 533 | (end 146.989 44.002) 534 | ) 535 | (line 536 | (name "") 537 | (start 188 44.002) 538 | (end 188 2.002) 539 | ) 540 | (tbtext "${BOARD_NAME} ${TITLE} Document" 541 | (name "") 542 | (pos 182.989 119.002) 543 | (font 544 | (face "Times New Roman") 545 | (size 4 4) bold) 546 | ) 547 | (tbtext "${LAYER}" 548 | (name "") 549 | (pos 7 119.002) 550 | (font 551 | (face "Times New Roman") 552 | (size 3.226 3.226) bold 553 | (color 0 0 0 1) 554 | ) 555 | (justify right) 556 | ) 557 | ) 558 | -------------------------------------------------------------------------------- /Templates/KDT_Template_PCB_A3.kicad_wks: -------------------------------------------------------------------------------- 1 | (kicad_wks 2 | (version 20231118) 3 | (generator "pl_editor") 4 | (generator_version "8.0") 5 | (setup 6 | (textsize 1.5 1.5) 7 | (linewidth 0.15) 8 | (textlinewidth 0.15) 9 | (left_margin 10) 10 | (right_margin 10) 11 | (top_margin 10) 12 | (bottom_margin 10) 13 | ) 14 | (rect 15 | (name "") 16 | (start 0 0 ltcorner) 17 | (end 0 0) 18 | (repeat 2) 19 | (incrx 2) 20 | (incry 2) 21 | ) 22 | (line 23 | (name "") 24 | (start 50 2 ltcorner) 25 | (end 50 0 ltcorner) 26 | (repeat 30) 27 | (incrx 50) 28 | ) 29 | (tbtext "1" 30 | (name "") 31 | (pos 25 1 ltcorner) 32 | (font 33 | (size 1.3 1.3) 34 | ) 35 | (repeat 100) 36 | (incrx 50) 37 | ) 38 | (line 39 | (name "") 40 | (start 50 2 lbcorner) 41 | (end 50 0 lbcorner) 42 | (repeat 30) 43 | (incrx 50) 44 | ) 45 | (tbtext "1" 46 | (name "") 47 | (pos 25 1 lbcorner) 48 | (font 49 | (size 1.3 1.3) 50 | ) 51 | (repeat 100) 52 | (incrx 50) 53 | ) 54 | (line 55 | (name "") 56 | (start 0 50 ltcorner) 57 | (end 2 50 ltcorner) 58 | (repeat 30) 59 | (incry 50) 60 | ) 61 | (tbtext "A" 62 | (name "") 63 | (pos 1 25 ltcorner) 64 | (font 65 | (size 1.3 1.3) 66 | ) 67 | (justify center) 68 | (repeat 100) 69 | (incry 50) 70 | ) 71 | (line 72 | (name "") 73 | (start 0 50 rtcorner) 74 | (end 2 50 rtcorner) 75 | (repeat 30) 76 | (incry 50) 77 | ) 78 | (tbtext "A" 79 | (name "") 80 | (pos 1 25 rtcorner) 81 | (font 82 | (size 1.3 1.3) 83 | ) 84 | (justify center) 85 | (repeat 100) 86 | (incry 50) 87 | ) 88 | (tbtext "${#}" 89 | (name "") 90 | (pos 25.6 6.0002) 91 | (font 92 | (face "Times New Roman") 93 | (size 2.5 2.5) bold 94 | (color 0 0 127 1) 95 | ) 96 | (comment "Sheet id") 97 | ) 98 | (tbtext "Sheet:" 99 | (name "") 100 | (pos 25.989 10.5022) 101 | (font 102 | (face "Arial") 103 | (color 0 0 255 1) 104 | ) 105 | (comment "Sheet id") 106 | ) 107 | (tbtext "of" 108 | (name "") 109 | (pos 17.489 5.5022) 110 | (font 111 | (face "Arial") 112 | (color 0 0 255 1) 113 | ) 114 | (comment "Sheet id") 115 | ) 116 | (tbtext "${##}" 117 | (name "") 118 | (pos 14 6) 119 | (font 120 | (face "Times New Roman") 121 | (size 2.5 2.5) bold 122 | (color 0 0 127 1) 123 | ) 124 | (comment "Sheet id") 125 | ) 126 | (tbtext "Size:" 127 | (name "") 128 | (pos 41.989 10.502) 129 | (font 130 | (face "Arial") 131 | (color 0 0 255 1) 132 | ) 133 | (comment "Sheet id") 134 | ) 135 | (tbtext "${PAPER}" 136 | (name "") 137 | (pos 40.989 6.0022) 138 | (font 139 | (face "Times New Roman") 140 | (size 2.5 2.5) bold 141 | (color 0 0 127 1) 142 | ) 143 | (comment "Sheet id") 144 | ) 145 | (line 146 | (name "") 147 | (start 43.489 2.0022) 148 | (end 43.489 12.5022) 149 | ) 150 | (line 151 | (name "") 152 | (start 43.489 12.5022) 153 | (end 1.989 12.5022) 154 | ) 155 | (line 156 | (name "") 157 | (start 27.489 12.5022) 158 | (end 27.489 2.0022) 159 | ) 160 | (line 161 | (name "") 162 | (start 43.489 12.5022) 163 | (end 43.489 23.0022) 164 | ) 165 | (line 166 | (name "") 167 | (start 43.489 23.0022) 168 | (end 1.989 23.0022) 169 | ) 170 | (tbtext "Revision:" 171 | (name "") 172 | (pos 17.989 21.002) 173 | (font 174 | (face "Arial") 175 | (color 0 0 255 1) 176 | ) 177 | (comment "Sheet id") 178 | ) 179 | (tbtext "${REVISION}" 180 | (name "") 181 | (pos 17.989 16.502) 182 | (font 183 | (face "Times New Roman") 184 | (color 0 0 127 1) 185 | ) 186 | (comment "Sheet id") 187 | ) 188 | (line 189 | (name "") 190 | (start 19.489 23.0022) 191 | (end 19.489 12.5022) 192 | ) 193 | (tbtext "Date:" 194 | (name "") 195 | (pos 41.989 21.002) 196 | (font 197 | (face "Arial") 198 | (color 0 0 255 1) 199 | ) 200 | (comment "Sheet id") 201 | ) 202 | (line 203 | (name "") 204 | (start 43.489 23.0022) 205 | (end 43.489 33.5022) 206 | ) 207 | (line 208 | (name "") 209 | (start 43.489 33.5022) 210 | (end 1.989 33.5022) 211 | ) 212 | (tbtext "Project Name:" 213 | (name "") 214 | (pos 41.989 31.502) 215 | (font 216 | (face "Arial") 217 | (color 0 0 255 1) 218 | ) 219 | (comment "Sheet id") 220 | ) 221 | (tbtext "${ISSUE_DATE}" 222 | (name "") 223 | (pos 41.989 16.502) 224 | (font 225 | (face "Times New Roman") 226 | (color 0 0 127 1) 227 | ) 228 | (comment "Sheet id") 229 | ) 230 | (tbtext "Reviewer:" 231 | (name "") 232 | (pos 68.9892 10.5022) 233 | (font 234 | (face "Arial") 235 | (color 0 0 255 1) 236 | ) 237 | (comment "Sheet id") 238 | ) 239 | (tbtext "${COMMENT9}" 240 | (name "") 241 | (pos 68.9892 6.0022) 242 | (font 243 | (face "Times New Roman") 244 | (color 0 0 127 1) 245 | ) 246 | (comment "Sheet id") 247 | ) 248 | (line 249 | (name "") 250 | (start 77.989 12.5022) 251 | (end 43.489 12.5022) 252 | ) 253 | (line 254 | (name "") 255 | (start 70.4892 2.0022) 256 | (end 70.4892 12.5022) 257 | ) 258 | (tbtext "Designer:" 259 | (name "") 260 | (pos 68.9892 21.0022) 261 | (font 262 | (face "Arial") 263 | (color 0 0 255 1) 264 | ) 265 | (comment "Sheet id") 266 | ) 267 | (line 268 | (name "") 269 | (start 70.4892 12.5022) 270 | (end 70.4892 23.0022) 271 | ) 272 | (line 273 | (name "") 274 | (start 77.989 23.0022) 275 | (end 43.489 23.0022) 276 | ) 277 | (tbtext "${DESIGNER}" 278 | (name "") 279 | (pos 68.9892 16.5022) 280 | (font 281 | (face "Times New Roman") 282 | (color 0 0 127 1) 283 | ) 284 | (comment "Sheet id") 285 | ) 286 | (line 287 | (name "") 288 | (start 112.489 12.5022) 289 | (end 77.989 12.5022) 290 | ) 291 | (line 292 | (name "") 293 | (start 112.489 12.5022) 294 | (end 112.489 23.0022) 295 | ) 296 | (line 297 | (name "") 298 | (start 112.489 23.0022) 299 | (end 77.989 23.0022) 300 | ) 301 | (tbtext "${FILENAME}" 302 | (name "") 303 | (pos 110.989 16.502) 304 | (font 305 | (face "Times New Roman") 306 | (color 0 0 127 1) 307 | ) 308 | (comment "Sheet id") 309 | ) 310 | (line 311 | (name "") 312 | (start 112.489 33.5022) 313 | (end 43.489 33.5022) 314 | ) 315 | (line 316 | (name "") 317 | (start 112.489 23.0022) 318 | (end 112.489 33.5022) 319 | ) 320 | (tbtext "Board Name:" 321 | (name "") 322 | (pos 110.989 31.502) 323 | (font 324 | (face "Arial") 325 | (color 0 0 255 1) 326 | ) 327 | (comment "Sheet id") 328 | ) 329 | (tbtext "Variant:" 330 | (name "") 331 | (pos 41.989 42.0022) 332 | (font 333 | (face "Arial") 334 | (color 0 0 255 1) 335 | ) 336 | (comment "Sheet id") 337 | ) 338 | (line 339 | (name "") 340 | (start 43.489 44.0022) 341 | (end 1.989 44.0022) 342 | ) 343 | (line 344 | (name "") 345 | (start 43.489 33.5022) 346 | (end 43.489 44.0022) 347 | ) 348 | (tbtext "${VARIANT}" 349 | (name "") 350 | (pos 41.989 37.502) 351 | (font 352 | (face "Times New Roman") 353 | (color 0 0 127 1) 354 | ) 355 | (comment "Sheet id") 356 | ) 357 | (line 358 | (name "") 359 | (start 112.489 44.0022) 360 | (end 43.489 44.0022) 361 | ) 362 | (line 363 | (name "") 364 | (start 112.489 33.5022) 365 | (end 112.489 44.0022) 366 | ) 367 | (tbtext "Company:" 368 | (name "") 369 | (pos 110.989 42.002) 370 | (font 371 | (face "Arial") 372 | (color 0 0 255 1) 373 | ) 374 | (comment "Sheet id") 375 | ) 376 | (tbtext "${COMPANY}" 377 | (name "") 378 | (pos 110.989 37.502) 379 | (font 380 | (face "Times New Roman") bold 381 | (color 0 0 127 1) 382 | ) 383 | (comment "Sheet id") 384 | ) 385 | (tbtext "${PROJECT_NAME}" 386 | (name "") 387 | (pos 41.489 27.002) 388 | (font 389 | (face "Times New Roman") 390 | (size 2.5 2.5) bold 391 | (color 0 0 127 1) 392 | ) 393 | (comment "Sheet id") 394 | ) 395 | (tbtext "${BOARD_NAME}" 396 | (name "") 397 | (pos 110.489 27.002) 398 | (font 399 | (face "Times New Roman") 400 | (size 2.5 2.5) bold 401 | (color 0 0 127 1) 402 | ) 403 | (comment "Sheet id") 404 | ) 405 | (line 406 | (name "") 407 | (start 146.989 12.5022) 408 | (end 146.989 23.0022) 409 | ) 410 | (line 411 | (name "") 412 | (start 146.989 23.0022) 413 | (end 112.489 23.0022) 414 | ) 415 | (line 416 | (name "") 417 | (start 146.989 12.5022) 418 | (end 112.489 12.5022) 419 | ) 420 | (line 421 | (name "") 422 | (start 146.989 2.0022) 423 | (end 146.989 12.5022) 424 | ) 425 | (tbtext "File Name:" 426 | (name "") 427 | (pos 110.989 21.002) 428 | (font 429 | (face "Arial") 430 | (color 0 0 255 1) 431 | ) 432 | (comment "Sheet id") 433 | ) 434 | (tbtext "Sheet Title:" 435 | (name "") 436 | (pos 145.489 21.0022) 437 | (font 438 | (face "Arial") 439 | (color 0 0 255 1) 440 | ) 441 | (comment "Sheet id") 442 | ) 443 | (tbtext "${SHEETPATH}" 444 | (name "") 445 | (pos 145.489 6.002) 446 | (font 447 | (face "Times New Roman") 448 | (color 0 0 127 1) 449 | ) 450 | (comment "Sheet id") 451 | ) 452 | (tbtext "Sheet Path:" 453 | (name "") 454 | (pos 145.489 10.502) 455 | (font 456 | (face "Arial") 457 | (color 0 0 255 1) 458 | ) 459 | (comment "Sheet id") 460 | ) 461 | (tbtext "${SHEETNAME}" 462 | (name "") 463 | (pos 145.489 16.502) 464 | (font 465 | (face "Times New Roman") 466 | (color 0 0 127 1) 467 | ) 468 | (comment "Sheet id") 469 | ) 470 | (line 471 | (name "") 472 | (start 146.989 44.0022) 473 | (end 112.489 44.0022) 474 | ) 475 | (line 476 | (name "") 477 | (start 146.989 23.0022) 478 | (end 146.989 44.0022) 479 | ) 480 | (tbtext "Comments:" 481 | (name "") 482 | (pos 145.489 42.002) 483 | (font 484 | (face "Arial") 485 | (color 0 0 255 1) 486 | ) 487 | (comment "Sheet id") 488 | ) 489 | (tbtext "${COMMENT1}" 490 | (name "") 491 | (pos 145.489 37.502) 492 | (font 493 | (face "Times New Roman") 494 | (color 0 0 127 1) 495 | ) 496 | (comment "Sheet id") 497 | ) 498 | (tbtext "${COMMENT2}" 499 | (name "") 500 | (pos 145.489 34.002) 501 | (font 502 | (face "Times New Roman") 503 | (color 0 0 127 1) 504 | ) 505 | (comment "Sheet id") 506 | ) 507 | (tbtext "${COMMENT3}" 508 | (name "") 509 | (pos 145.489 30.502) 510 | (font 511 | (face "Times New Roman") 512 | (color 0 0 127 1) 513 | ) 514 | (comment "Sheet id") 515 | ) 516 | (tbtext "${COMMENT4}" 517 | (name "") 518 | (pos 145.489 27.002) 519 | (font 520 | (face "Times New Roman") 521 | (color 0 0 127 1) 522 | ) 523 | (comment "Sheet id") 524 | ) 525 | (line 526 | (name "") 527 | (start 112.489 44.0022) 528 | (end 43.489 44.0022) 529 | ) 530 | (line 531 | (name "") 532 | (start 188.989 44.0022) 533 | (end 146.989 44.0022) 534 | ) 535 | (line 536 | (name "") 537 | (start 188.989 44.0022) 538 | (end 188.989 2.0022) 539 | ) 540 | (tbtext "${BOARD_NAME} ${TITLE} Document" 541 | (name "") 542 | (pos 392.989 267.502) 543 | (font 544 | (face "Times New Roman") 545 | (size 4 4) bold) 546 | ) 547 | (tbtext "${LAYER}" 548 | (name "") 549 | (pos 200.632 220.607) 550 | (font 551 | (face "Times New Roman") 552 | (size 3.226 3.226) bold 553 | (color 0 0 0 1) 554 | ) 555 | (justify center) 556 | ) 557 | ) 558 | -------------------------------------------------------------------------------- /Templates/KDT_Template_PCB_A4.kicad_wks: -------------------------------------------------------------------------------- 1 | (kicad_wks 2 | (version 20231118) 3 | (generator "pl_editor") 4 | (generator_version "8.0") 5 | (setup 6 | (textsize 1.5 1.5) 7 | (linewidth 0.15) 8 | (textlinewidth 0.15) 9 | (left_margin 10) 10 | (right_margin 10) 11 | (top_margin 10) 12 | (bottom_margin 10) 13 | ) 14 | (rect 15 | (name "") 16 | (start 0 0 ltcorner) 17 | (end 0 0) 18 | (repeat 2) 19 | (incrx 2) 20 | (incry 2) 21 | ) 22 | (line 23 | (name "") 24 | (start 50 2 ltcorner) 25 | (end 50 0 ltcorner) 26 | (repeat 30) 27 | (incrx 50) 28 | ) 29 | (tbtext "1" 30 | (name "") 31 | (pos 25 1 ltcorner) 32 | (font 33 | (size 1.3 1.3) 34 | ) 35 | (repeat 100) 36 | (incrx 50) 37 | ) 38 | (line 39 | (name "") 40 | (start 50 2 lbcorner) 41 | (end 50 0 lbcorner) 42 | (repeat 30) 43 | (incrx 50) 44 | ) 45 | (tbtext "1" 46 | (name "") 47 | (pos 25 1 lbcorner) 48 | (font 49 | (size 1.3 1.3) 50 | ) 51 | (repeat 100) 52 | (incrx 50) 53 | ) 54 | (line 55 | (name "") 56 | (start 0 50 ltcorner) 57 | (end 2 50 ltcorner) 58 | (repeat 30) 59 | (incry 50) 60 | ) 61 | (tbtext "A" 62 | (name "") 63 | (pos 1 25 ltcorner) 64 | (font 65 | (size 1.3 1.3) 66 | ) 67 | (justify center) 68 | (repeat 100) 69 | (incry 50) 70 | ) 71 | (line 72 | (name "") 73 | (start 0 50 rtcorner) 74 | (end 2 50 rtcorner) 75 | (repeat 30) 76 | (incry 50) 77 | ) 78 | (tbtext "A" 79 | (name "") 80 | (pos 1 25 rtcorner) 81 | (font 82 | (size 1.3 1.3) 83 | ) 84 | (justify center) 85 | (repeat 100) 86 | (incry 50) 87 | ) 88 | (tbtext "${#}" 89 | (name "") 90 | (pos 25.6 6.0002) 91 | (font 92 | (face "Times New Roman") 93 | (size 2.5 2.5) bold 94 | (color 0 0 127 1) 95 | ) 96 | (comment "Sheet id") 97 | ) 98 | (tbtext "Sheet:" 99 | (name "") 100 | (pos 25.989 10.5022) 101 | (font 102 | (face "Arial") 103 | (color 0 0 255 1) 104 | ) 105 | (comment "Sheet id") 106 | ) 107 | (tbtext "of" 108 | (name "") 109 | (pos 17.489 5.5022) 110 | (font 111 | (face "Arial") 112 | (color 0 0 255 1) 113 | ) 114 | (comment "Sheet id") 115 | ) 116 | (tbtext "${##}" 117 | (name "") 118 | (pos 14 6) 119 | (font 120 | (face "Times New Roman") 121 | (size 2.5 2.5) bold 122 | (color 0 0 127 1) 123 | ) 124 | (comment "Sheet id") 125 | ) 126 | (tbtext "Size:" 127 | (name "") 128 | (pos 41.989 10.502) 129 | (font 130 | (face "Arial") 131 | (color 0 0 255 1) 132 | ) 133 | (comment "Sheet id") 134 | ) 135 | (tbtext "${PAPER}" 136 | (name "") 137 | (pos 40.989 6.0022) 138 | (font 139 | (face "Times New Roman") 140 | (size 2.5 2.5) bold 141 | (color 0 0 127 1) 142 | ) 143 | (comment "Sheet id") 144 | ) 145 | (line 146 | (name "") 147 | (start 43.489 2.0022) 148 | (end 43.489 12.5022) 149 | ) 150 | (line 151 | (name "") 152 | (start 43.489 12.5022) 153 | (end 1.989 12.5022) 154 | ) 155 | (line 156 | (name "") 157 | (start 27.489 12.5022) 158 | (end 27.489 2.0022) 159 | ) 160 | (line 161 | (name "") 162 | (start 43.489 12.5022) 163 | (end 43.489 23.0022) 164 | ) 165 | (line 166 | (name "") 167 | (start 43.489 23.0022) 168 | (end 1.989 23.0022) 169 | ) 170 | (tbtext "Revision:" 171 | (name "") 172 | (pos 17.989 21.002) 173 | (font 174 | (face "Arial") 175 | (color 0 0 255 1) 176 | ) 177 | (comment "Sheet id") 178 | ) 179 | (tbtext "${REVISION}" 180 | (name "") 181 | (pos 17.989 16.502) 182 | (font 183 | (face "Times New Roman") 184 | (color 0 0 127 1) 185 | ) 186 | (comment "Sheet id") 187 | ) 188 | (line 189 | (name "") 190 | (start 19.489 23.0022) 191 | (end 19.489 12.5022) 192 | ) 193 | (tbtext "Date:" 194 | (name "") 195 | (pos 41.989 21.002) 196 | (font 197 | (face "Arial") 198 | (color 0 0 255 1) 199 | ) 200 | (comment "Sheet id") 201 | ) 202 | (line 203 | (name "") 204 | (start 43.489 23.0022) 205 | (end 43.489 33.5022) 206 | ) 207 | (line 208 | (name "") 209 | (start 43.489 33.5022) 210 | (end 1.989 33.5022) 211 | ) 212 | (tbtext "Project Name:" 213 | (name "") 214 | (pos 41.989 31.502) 215 | (font 216 | (face "Arial") 217 | (color 0 0 255 1) 218 | ) 219 | (comment "Sheet id") 220 | ) 221 | (tbtext "${ISSUE_DATE}" 222 | (name "") 223 | (pos 41.989 16.502) 224 | (font 225 | (face "Times New Roman") 226 | (color 0 0 127 1) 227 | ) 228 | (comment "Sheet id") 229 | ) 230 | (tbtext "Reviewer:" 231 | (name "") 232 | (pos 68.9892 10.5022) 233 | (font 234 | (face "Arial") 235 | (color 0 0 255 1) 236 | ) 237 | (comment "Sheet id") 238 | ) 239 | (tbtext "${COMMENT9}" 240 | (name "") 241 | (pos 68.9892 6.0022) 242 | (font 243 | (face "Times New Roman") 244 | (color 0 0 127 1) 245 | ) 246 | (comment "Sheet id") 247 | ) 248 | (line 249 | (name "") 250 | (start 77.989 12.5022) 251 | (end 43.489 12.5022) 252 | ) 253 | (line 254 | (name "") 255 | (start 70.4892 2.0022) 256 | (end 70.4892 12.5022) 257 | ) 258 | (tbtext "Designer:" 259 | (name "") 260 | (pos 68.9892 21.0022) 261 | (font 262 | (face "Arial") 263 | (color 0 0 255 1) 264 | ) 265 | (comment "Sheet id") 266 | ) 267 | (line 268 | (name "") 269 | (start 70.4892 12.5022) 270 | (end 70.4892 23.0022) 271 | ) 272 | (line 273 | (name "") 274 | (start 77.989 23.0022) 275 | (end 43.489 23.0022) 276 | ) 277 | (tbtext "${DESIGNER}" 278 | (name "") 279 | (pos 68.9892 16.5022) 280 | (font 281 | (face "Times New Roman") 282 | (color 0 0 127 1) 283 | ) 284 | (comment "Sheet id") 285 | ) 286 | (line 287 | (name "") 288 | (start 112.489 12.5022) 289 | (end 77.989 12.5022) 290 | ) 291 | (line 292 | (name "") 293 | (start 112.489 12.5022) 294 | (end 112.489 23.0022) 295 | ) 296 | (line 297 | (name "") 298 | (start 112.489 23.0022) 299 | (end 77.989 23.0022) 300 | ) 301 | (tbtext "${FILENAME}" 302 | (name "") 303 | (pos 110.989 16.502) 304 | (font 305 | (face "Times New Roman") 306 | (color 0 0 127 1) 307 | ) 308 | (comment "Sheet id") 309 | ) 310 | (line 311 | (name "") 312 | (start 112.489 33.5022) 313 | (end 43.489 33.5022) 314 | ) 315 | (line 316 | (name "") 317 | (start 112.489 23.0022) 318 | (end 112.489 33.5022) 319 | ) 320 | (tbtext "Board Name:" 321 | (name "") 322 | (pos 110.989 31.502) 323 | (font 324 | (face "Arial") 325 | (color 0 0 255 1) 326 | ) 327 | (comment "Sheet id") 328 | ) 329 | (tbtext "Variant:" 330 | (name "") 331 | (pos 41.989 42.0022) 332 | (font 333 | (face "Arial") 334 | (color 0 0 255 1) 335 | ) 336 | (comment "Sheet id") 337 | ) 338 | (line 339 | (name "") 340 | (start 43.489 44.0022) 341 | (end 1.989 44.0022) 342 | ) 343 | (line 344 | (name "") 345 | (start 43.489 33.5022) 346 | (end 43.489 44.0022) 347 | ) 348 | (tbtext "${VARIANT}" 349 | (name "") 350 | (pos 41.989 37.502) 351 | (font 352 | (face "Times New Roman") 353 | (color 0 0 127 1) 354 | ) 355 | (comment "Sheet id") 356 | ) 357 | (line 358 | (name "") 359 | (start 112.489 44.0022) 360 | (end 43.489 44.0022) 361 | ) 362 | (line 363 | (name "") 364 | (start 112.489 33.5022) 365 | (end 112.489 44.0022) 366 | ) 367 | (tbtext "Company:" 368 | (name "") 369 | (pos 110.989 42.002) 370 | (font 371 | (face "Arial") 372 | (color 0 0 255 1) 373 | ) 374 | (comment "Sheet id") 375 | ) 376 | (tbtext "${COMPANY}" 377 | (name "") 378 | (pos 110.989 37.502) 379 | (font 380 | (face "Times New Roman") bold 381 | (color 0 0 127 1) 382 | ) 383 | (comment "Sheet id") 384 | ) 385 | (tbtext "${PROJECT_NAME}" 386 | (name "") 387 | (pos 41.489 27.002) 388 | (font 389 | (face "Times New Roman") 390 | (size 2.5 2.5) bold 391 | (color 0 0 127 1) 392 | ) 393 | (comment "Sheet id") 394 | ) 395 | (tbtext "${BOARD_NAME}" 396 | (name "") 397 | (pos 110.489 27.002) 398 | (font 399 | (face "Times New Roman") 400 | (size 2.5 2.5) bold 401 | (color 0 0 127 1) 402 | ) 403 | (comment "Sheet id") 404 | ) 405 | (line 406 | (name "") 407 | (start 146.989 12.5022) 408 | (end 146.989 23.0022) 409 | ) 410 | (line 411 | (name "") 412 | (start 146.989 23.0022) 413 | (end 112.489 23.0022) 414 | ) 415 | (line 416 | (name "") 417 | (start 146.989 12.5022) 418 | (end 112.489 12.5022) 419 | ) 420 | (line 421 | (name "") 422 | (start 146.989 2.0022) 423 | (end 146.989 12.5022) 424 | ) 425 | (tbtext "File Name:" 426 | (name "") 427 | (pos 110.989 21.002) 428 | (font 429 | (face "Arial") 430 | (color 0 0 255 1) 431 | ) 432 | (comment "Sheet id") 433 | ) 434 | (tbtext "Sheet Title:" 435 | (name "") 436 | (pos 145.489 21.0022) 437 | (font 438 | (face "Arial") 439 | (color 0 0 255 1) 440 | ) 441 | (comment "Sheet id") 442 | ) 443 | (tbtext "${SHEETPATH}" 444 | (name "") 445 | (pos 145.489 6.002) 446 | (font 447 | (face "Times New Roman") 448 | (color 0 0 127 1) 449 | ) 450 | (comment "Sheet id") 451 | ) 452 | (tbtext "Sheet Path:" 453 | (name "") 454 | (pos 145.489 10.502) 455 | (font 456 | (face "Arial") 457 | (color 0 0 255 1) 458 | ) 459 | (comment "Sheet id") 460 | ) 461 | (tbtext "${SHEETNAME}" 462 | (name "") 463 | (pos 145.489 16.502) 464 | (font 465 | (face "Times New Roman") 466 | (color 0 0 127 1) 467 | ) 468 | (comment "Sheet id") 469 | ) 470 | (line 471 | (name "") 472 | (start 146.989 44.0022) 473 | (end 112.489 44.0022) 474 | ) 475 | (line 476 | (name "") 477 | (start 146.989 23.0022) 478 | (end 146.989 44.0022) 479 | ) 480 | (tbtext "Comments:" 481 | (name "") 482 | (pos 145.489 42.002) 483 | (font 484 | (face "Arial") 485 | (color 0 0 255 1) 486 | ) 487 | (comment "Sheet id") 488 | ) 489 | (tbtext "${COMMENT1}" 490 | (name "") 491 | (pos 145.489 37.502) 492 | (font 493 | (face "Times New Roman") 494 | (color 0 0 127 1) 495 | ) 496 | (comment "Sheet id") 497 | ) 498 | (tbtext "${COMMENT2}" 499 | (name "") 500 | (pos 145.489 34.002) 501 | (font 502 | (face "Times New Roman") 503 | (color 0 0 127 1) 504 | ) 505 | (comment "Sheet id") 506 | ) 507 | (tbtext "${COMMENT3}" 508 | (name "") 509 | (pos 145.489 30.502) 510 | (font 511 | (face "Times New Roman") 512 | (color 0 0 127 1) 513 | ) 514 | (comment "Sheet id") 515 | ) 516 | (tbtext "${COMMENT4}" 517 | (name "") 518 | (pos 145.489 27.002) 519 | (font 520 | (face "Times New Roman") 521 | (color 0 0 127 1) 522 | ) 523 | (comment "Sheet id") 524 | ) 525 | (line 526 | (name "") 527 | (start 112.489 44.0022) 528 | (end 43.489 44.0022) 529 | ) 530 | (line 531 | (name "") 532 | (start 188.989 44.0022) 533 | (end 146.989 44.0022) 534 | ) 535 | (line 536 | (name "") 537 | (start 188.989 44.0022) 538 | (end 188.989 2.0022) 539 | ) 540 | (tbtext "${BOARD_NAME} ${TITLE} Document" 541 | (name "") 542 | (pos 269.989 180.502) 543 | (font 544 | (face "Times New Roman") 545 | (size 4 4) bold) 546 | ) 547 | (tbtext "${LAYER}" 548 | (name "") 549 | (pos 138.6322 159.1072) 550 | (font 551 | (face "Times New Roman") 552 | (size 3.226 3.226) bold 553 | (color 0 0 0 1) 554 | ) 555 | (justify center) 556 | ) 557 | ) 558 | -------------------------------------------------------------------------------- /Templates/KDT_Template_GIT.kicad_wks: -------------------------------------------------------------------------------- 1 | (kicad_wks 2 | (version 20231118) 3 | (generator "pl_editor") 4 | (generator_version "8.0") 5 | (setup 6 | (textsize 1.5 1.5) 7 | (linewidth 0.15) 8 | (textlinewidth 0.15) 9 | (left_margin 10) 10 | (right_margin 10) 11 | (top_margin 10) 12 | (bottom_margin 10) 13 | ) 14 | (rect 15 | (name "") 16 | (start 0 0 ltcorner) 17 | (end 0 0) 18 | (repeat 2) 19 | (incrx 2) 20 | (incry 2) 21 | ) 22 | (line 23 | (name "") 24 | (start 50 2 ltcorner) 25 | (end 50 0 ltcorner) 26 | (repeat 30) 27 | (incrx 50) 28 | ) 29 | (tbtext "1" 30 | (name "") 31 | (pos 25 1 ltcorner) 32 | (font 33 | (size 1.3 1.3) 34 | ) 35 | (repeat 100) 36 | (incrx 50) 37 | ) 38 | (line 39 | (name "") 40 | (start 50 2 lbcorner) 41 | (end 50 0 lbcorner) 42 | (repeat 30) 43 | (incrx 50) 44 | ) 45 | (tbtext "1" 46 | (name "") 47 | (pos 25 1 lbcorner) 48 | (font 49 | (size 1.3 1.3) 50 | ) 51 | (repeat 100) 52 | (incrx 50) 53 | ) 54 | (line 55 | (name "") 56 | (start 0 50 ltcorner) 57 | (end 2 50 ltcorner) 58 | (repeat 30) 59 | (incry 50) 60 | ) 61 | (tbtext "A" 62 | (name "") 63 | (pos 1 25 ltcorner) 64 | (font 65 | (size 1.3 1.3) 66 | ) 67 | (justify center) 68 | (repeat 100) 69 | (incry 50) 70 | ) 71 | (line 72 | (name "") 73 | (start 0 50 rtcorner) 74 | (end 2 50 rtcorner) 75 | (repeat 30) 76 | (incry 50) 77 | ) 78 | (tbtext "A" 79 | (name "") 80 | (pos 1 25 rtcorner) 81 | (font 82 | (size 1.3 1.3) 83 | ) 84 | (justify center) 85 | (repeat 100) 86 | (incry 50) 87 | ) 88 | (tbtext "${#}" 89 | (name "") 90 | (pos 25.6 6.0002) 91 | (font 92 | (face "Times New Roman") 93 | (size 2.5 2.5) bold 94 | (color 0 0 127 1) 95 | ) 96 | (comment "Sheet id") 97 | ) 98 | (tbtext "Sheet:" 99 | (name "") 100 | (pos 25.989 10.5022) 101 | (font 102 | (face "Arial") 103 | (color 0 0 255 1) 104 | ) 105 | (comment "Sheet id") 106 | ) 107 | (tbtext "of" 108 | (name "") 109 | (pos 17.489 5.5022) 110 | (font 111 | (face "Arial") 112 | (color 0 0 255 1) 113 | ) 114 | (comment "Sheet id") 115 | ) 116 | (tbtext "${##}" 117 | (name "") 118 | (pos 14 6) 119 | (font 120 | (face "Times New Roman") 121 | (size 2.5 2.5) bold 122 | (color 0 0 127 1) 123 | ) 124 | (comment "Sheet id") 125 | ) 126 | (tbtext "Size:" 127 | (name "") 128 | (pos 41.989 10.502) 129 | (font 130 | (face "Arial") 131 | (color 0 0 255 1) 132 | ) 133 | (comment "Sheet id") 134 | ) 135 | (tbtext "${PAPER}" 136 | (name "") 137 | (pos 40.989 6.0022) 138 | (font 139 | (face "Times New Roman") 140 | (size 2.5 2.5) bold 141 | (color 0 0 127 1) 142 | ) 143 | (comment "Sheet id") 144 | ) 145 | (line 146 | (name "") 147 | (start 43.489 2.0022) 148 | (end 43.489 12.5022) 149 | ) 150 | (line 151 | (name "") 152 | (start 43.489 12.5022) 153 | (end 1.989 12.5022) 154 | ) 155 | (line 156 | (name "") 157 | (start 27.489 12.5022) 158 | (end 27.489 2.0022) 159 | ) 160 | (line 161 | (name "") 162 | (start 43.489 12.5022) 163 | (end 43.489 23.0022) 164 | ) 165 | (line 166 | (name "") 167 | (start 43.489 23.0022) 168 | (end 1.989 23.0022) 169 | ) 170 | (tbtext "Revision:" 171 | (name "") 172 | (pos 25.989 21.002) 173 | (font 174 | (face "Arial") 175 | (color 0 0 255 1) 176 | ) 177 | (comment "Sheet id") 178 | ) 179 | (tbtext "${REVISION}" 180 | (name "") 181 | (pos 25.989 16.502) 182 | (font 183 | (face "Times New Roman") 184 | (color 0 0 127 1) 185 | ) 186 | (comment "Sheet id") 187 | ) 188 | (line 189 | (name "") 190 | (start 27.489 23.002) 191 | (end 27.489 12.502) 192 | ) 193 | (tbtext "Date:" 194 | (name "") 195 | (pos 41.989 21.002) 196 | (font 197 | (face "Arial") 198 | (color 0 0 255 1) 199 | ) 200 | (comment "Sheet id") 201 | ) 202 | (line 203 | (name "") 204 | (start 43.489 23.0022) 205 | (end 43.489 33.5022) 206 | ) 207 | (line 208 | (name "") 209 | (start 43.489 33.5022) 210 | (end 1.989 33.5022) 211 | ) 212 | (tbtext "Project Name:" 213 | (name "") 214 | (pos 41.989 31.502) 215 | (font 216 | (face "Arial") 217 | (color 0 0 255 1) 218 | ) 219 | (comment "Sheet id") 220 | ) 221 | (tbtext "${ISSUE_DATE}" 222 | (name "") 223 | (pos 41.989 16.502) 224 | (font 225 | (face "Times New Roman") 226 | (color 0 0 127 1) 227 | ) 228 | (comment "Sheet id") 229 | ) 230 | (tbtext "Reviewer:" 231 | (name "") 232 | (pos 68.9892 10.5022) 233 | (font 234 | (face "Arial") 235 | (color 0 0 255 1) 236 | ) 237 | (comment "Sheet id") 238 | ) 239 | (tbtext "${COMMENT9}" 240 | (name "") 241 | (pos 68.9892 6.0022) 242 | (font 243 | (face "Times New Roman") 244 | (color 0 0 127 1) 245 | ) 246 | (comment "Sheet id") 247 | ) 248 | (line 249 | (name "") 250 | (start 77.989 12.5022) 251 | (end 43.489 12.5022) 252 | ) 253 | (line 254 | (name "") 255 | (start 70.4892 2.0022) 256 | (end 70.4892 12.5022) 257 | ) 258 | (tbtext "Designer:" 259 | (name "") 260 | (pos 68.9892 21.0022) 261 | (font 262 | (face "Arial") 263 | (color 0 0 255 1) 264 | ) 265 | (comment "Sheet id") 266 | ) 267 | (line 268 | (name "") 269 | (start 70.4892 12.5022) 270 | (end 70.4892 23.0022) 271 | ) 272 | (line 273 | (name "") 274 | (start 77.989 23.0022) 275 | (end 43.489 23.0022) 276 | ) 277 | (tbtext "${DESIGNER}" 278 | (name "") 279 | (pos 68.9892 16.5022) 280 | (font 281 | (face "Times New Roman") 282 | (color 0 0 127 1) 283 | ) 284 | (comment "Sheet id") 285 | ) 286 | (line 287 | (name "") 288 | (start 112.489 12.5022) 289 | (end 77.989 12.5022) 290 | ) 291 | (line 292 | (name "") 293 | (start 112.489 12.5022) 294 | (end 112.489 23.0022) 295 | ) 296 | (line 297 | (name "") 298 | (start 112.489 23.0022) 299 | (end 77.989 23.0022) 300 | ) 301 | (tbtext "${FILENAME}" 302 | (name "") 303 | (pos 110.989 16.502) 304 | (font 305 | (face "Times New Roman") 306 | (color 0 0 127 1) 307 | ) 308 | (comment "Sheet id") 309 | ) 310 | (line 311 | (name "") 312 | (start 112.489 33.5022) 313 | (end 43.489 33.5022) 314 | ) 315 | (line 316 | (name "") 317 | (start 112.489 23.0022) 318 | (end 112.489 33.5022) 319 | ) 320 | (tbtext "Board Name:" 321 | (name "") 322 | (pos 110.989 31.502) 323 | (font 324 | (face "Arial") 325 | (color 0 0 255 1) 326 | ) 327 | (comment "Sheet id") 328 | ) 329 | (tbtext "Variant:" 330 | (name "") 331 | (pos 41.989 42.0022) 332 | (font 333 | (face "Arial") 334 | (color 0 0 255 1) 335 | ) 336 | (comment "Sheet id") 337 | ) 338 | (line 339 | (name "") 340 | (start 43.489 44.0022) 341 | (end 1.989 44.0022) 342 | ) 343 | (line 344 | (name "") 345 | (start 43.489 33.5022) 346 | (end 43.489 44.0022) 347 | ) 348 | (tbtext "${VARIANT}" 349 | (name "") 350 | (pos 41.989 37.502) 351 | (font 352 | (face "Times New Roman") 353 | (color 0 0 127 1) 354 | ) 355 | (comment "Sheet id") 356 | ) 357 | (line 358 | (name "") 359 | (start 112.489 44.0022) 360 | (end 43.489 44.0022) 361 | ) 362 | (line 363 | (name "") 364 | (start 112.489 33.5022) 365 | (end 112.489 44.0022) 366 | ) 367 | (tbtext "Company:" 368 | (name "") 369 | (pos 110.989 42.002) 370 | (font 371 | (face "Arial") 372 | (color 0 0 255 1) 373 | ) 374 | (comment "Sheet id") 375 | ) 376 | (tbtext "${COMPANY}" 377 | (name "") 378 | (pos 110.989 37.502) 379 | (font 380 | (face "Times New Roman") bold 381 | (color 0 0 127 1) 382 | ) 383 | (comment "Sheet id") 384 | ) 385 | (tbtext "${PROJECT_NAME}" 386 | (name "") 387 | (pos 41.489 27.002) 388 | (font 389 | (face "Times New Roman") 390 | (size 2.5 2.5) bold 391 | (color 0 0 127 1) 392 | ) 393 | (comment "Sheet id") 394 | ) 395 | (tbtext "${BOARD_NAME}" 396 | (name "") 397 | (pos 110.489 27.002) 398 | (font 399 | (face "Times New Roman") 400 | (size 2.5 2.5) bold 401 | (color 0 0 127 1) 402 | ) 403 | (comment "Sheet id") 404 | ) 405 | (line 406 | (name "") 407 | (start 146.989 12.5022) 408 | (end 146.989 23.0022) 409 | ) 410 | (line 411 | (name "") 412 | (start 146.989 23.0022) 413 | (end 112.489 23.0022) 414 | ) 415 | (line 416 | (name "") 417 | (start 146.989 12.5022) 418 | (end 112.489 12.5022) 419 | ) 420 | (line 421 | (name "") 422 | (start 146.989 2.0022) 423 | (end 146.989 12.5022) 424 | ) 425 | (tbtext "File Name:" 426 | (name "") 427 | (pos 110.989 21.002) 428 | (font 429 | (face "Arial") 430 | (color 0 0 255 1) 431 | ) 432 | (comment "Sheet id") 433 | ) 434 | (tbtext "Sheet Title:" 435 | (name "") 436 | (pos 145.489 21.0022) 437 | (font 438 | (face "Arial") 439 | (color 0 0 255 1) 440 | ) 441 | (comment "Sheet id") 442 | ) 443 | (tbtext "${SHEETPATH}" 444 | (name "") 445 | (pos 145.489 6.002) 446 | (font 447 | (face "Times New Roman") 448 | (color 0 0 127 1) 449 | ) 450 | (comment "Sheet id") 451 | ) 452 | (tbtext "Sheet Path:" 453 | (name "") 454 | (pos 145.489 10.502) 455 | (font 456 | (face "Arial") 457 | (color 0 0 255 1) 458 | ) 459 | (comment "Sheet id") 460 | ) 461 | (tbtext "${TITLE}" 462 | (name "") 463 | (pos 145.489 16.502) 464 | (font 465 | (face "Times New Roman") 466 | (color 0 0 127 1) 467 | ) 468 | (comment "Sheet id") 469 | ) 470 | (line 471 | (name "") 472 | (start 146.989 44.0022) 473 | (end 112.489 44.0022) 474 | ) 475 | (line 476 | (name "") 477 | (start 146.989 23.0022) 478 | (end 146.989 44.0022) 479 | ) 480 | (tbtext "Comments:" 481 | (name "") 482 | (pos 145.489 42.002) 483 | (font 484 | (face "Arial") 485 | (color 0 0 255 1) 486 | ) 487 | (comment "Sheet id") 488 | ) 489 | (tbtext "${COMMENT1}" 490 | (name "") 491 | (pos 145.489 37.502) 492 | (font 493 | (face "Times New Roman") 494 | (color 0 0 127 1) 495 | ) 496 | (comment "Sheet id") 497 | ) 498 | (tbtext "${COMMENT2}" 499 | (name "") 500 | (pos 145.489 34.002) 501 | (font 502 | (face "Times New Roman") 503 | (color 0 0 127 1) 504 | ) 505 | (comment "Sheet id") 506 | ) 507 | (tbtext "${COMMENT3}" 508 | (name "") 509 | (pos 145.489 30.502) 510 | (font 511 | (face "Times New Roman") 512 | (color 0 0 127 1) 513 | ) 514 | (comment "Sheet id") 515 | ) 516 | (tbtext "${COMMENT4}" 517 | (name "") 518 | (pos 145.489 27.002) 519 | (font 520 | (face "Times New Roman") 521 | (color 0 0 127 1) 522 | ) 523 | (comment "Sheet id") 524 | ) 525 | (line 526 | (name "") 527 | (start 112.489 44.0022) 528 | (end 43.489 44.0022) 529 | ) 530 | (line 531 | (name "") 532 | (start 188.989 44.0022) 533 | (end 146.989 44.0022) 534 | ) 535 | (line 536 | (name "") 537 | (start 188.989 44.0022) 538 | (end 188.989 2.0022) 539 | ) 540 | (tbtext "Git Hash:" 541 | (name "") 542 | (pos 17.989 42.002) 543 | (font 544 | (face "Arial") 545 | (color 0 0 255 1) 546 | ) 547 | (comment "Sheet id") 548 | ) 549 | (line 550 | (name "") 551 | (start 19.489 44.002) 552 | (end 19.489 33.502) 553 | ) 554 | (tbtext "${GIT_HASH_SCH}" 555 | (name "") 556 | (pos 17.989 37.502) 557 | (font 558 | (face "Times New Roman") 559 | (color 0 0 127 1) 560 | ) 561 | (comment "Sheet id") 562 | ) 563 | ) 564 | -------------------------------------------------------------------------------- /Templates/KDT_Template_PCB_GIT_A5.kicad_wks: -------------------------------------------------------------------------------- 1 | (kicad_wks 2 | (version 20231118) 3 | (generator "pl_editor") 4 | (generator_version "8.0") 5 | (setup 6 | (textsize 1.5 1.5) 7 | (linewidth 0.15) 8 | (textlinewidth 0.15) 9 | (left_margin 10) 10 | (right_margin 10) 11 | (top_margin 10) 12 | (bottom_margin 10) 13 | ) 14 | (rect 15 | (name "") 16 | (start 0 0 ltcorner) 17 | (end 0 0) 18 | (repeat 2) 19 | (incrx 2) 20 | (incry 2) 21 | ) 22 | (line 23 | (name "") 24 | (start 50 2 ltcorner) 25 | (end 50 0 ltcorner) 26 | (repeat 30) 27 | (incrx 50) 28 | ) 29 | (tbtext "1" 30 | (name "") 31 | (pos 25 1 ltcorner) 32 | (font 33 | (size 1.3 1.3) 34 | ) 35 | (repeat 100) 36 | (incrx 50) 37 | ) 38 | (line 39 | (name "") 40 | (start 50 2 lbcorner) 41 | (end 50 0 lbcorner) 42 | (repeat 30) 43 | (incrx 50) 44 | ) 45 | (tbtext "1" 46 | (name "") 47 | (pos 25 1 lbcorner) 48 | (font 49 | (size 1.3 1.3) 50 | ) 51 | (repeat 100) 52 | (incrx 50) 53 | ) 54 | (line 55 | (name "") 56 | (start 0 50 ltcorner) 57 | (end 2 50 ltcorner) 58 | (repeat 30) 59 | (incry 50) 60 | ) 61 | (tbtext "A" 62 | (name "") 63 | (pos 1 25 ltcorner) 64 | (font 65 | (size 1.3 1.3) 66 | ) 67 | (justify center) 68 | (repeat 100) 69 | (incry 50) 70 | ) 71 | (line 72 | (name "") 73 | (start 0 50 rtcorner) 74 | (end 2 50 rtcorner) 75 | (repeat 30) 76 | (incry 50) 77 | ) 78 | (tbtext "A" 79 | (name "") 80 | (pos 1 25 rtcorner) 81 | (font 82 | (size 1.3 1.3) 83 | ) 84 | (justify center) 85 | (repeat 100) 86 | (incry 50) 87 | ) 88 | (tbtext "${#}" 89 | (name "") 90 | (pos 25.6 6.0002) 91 | (font 92 | (face "Times New Roman") 93 | (size 2.5 2.5) bold 94 | (color 0 0 127 1) 95 | ) 96 | (comment "Sheet id") 97 | ) 98 | (tbtext "Sheet:" 99 | (name "") 100 | (pos 25.989 10.5022) 101 | (font 102 | (face "Arial") 103 | (color 0 0 255 1) 104 | ) 105 | (comment "Sheet id") 106 | ) 107 | (tbtext "of" 108 | (name "") 109 | (pos 17.489 5.5022) 110 | (font 111 | (face "Arial") 112 | (color 0 0 255 1) 113 | ) 114 | (comment "Sheet id") 115 | ) 116 | (tbtext "${##}" 117 | (name "") 118 | (pos 14 6) 119 | (font 120 | (face "Times New Roman") 121 | (size 2.5 2.5) bold 122 | (color 0 0 127 1) 123 | ) 124 | (comment "Sheet id") 125 | ) 126 | (tbtext "Size:" 127 | (name "") 128 | (pos 41.989 10.502) 129 | (font 130 | (face "Arial") 131 | (color 0 0 255 1) 132 | ) 133 | (comment "Sheet id") 134 | ) 135 | (tbtext "${PAPER}" 136 | (name "") 137 | (pos 40.989 6.0022) 138 | (font 139 | (face "Times New Roman") 140 | (size 2.5 2.5) bold 141 | (color 0 0 127 1) 142 | ) 143 | (comment "Sheet id") 144 | ) 145 | (line 146 | (name "") 147 | (start 43.489 2.0022) 148 | (end 43.489 12.5022) 149 | ) 150 | (line 151 | (name "") 152 | (start 43.489 12.5022) 153 | (end 1.989 12.5022) 154 | ) 155 | (line 156 | (name "") 157 | (start 27.489 12.5022) 158 | (end 27.489 2.0022) 159 | ) 160 | (line 161 | (name "") 162 | (start 43.489 12.5022) 163 | (end 43.489 23.0022) 164 | ) 165 | (line 166 | (name "") 167 | (start 43.489 23.0022) 168 | (end 1.989 23.0022) 169 | ) 170 | (tbtext "Revision:" 171 | (name "") 172 | (pos 25.989 21.002) 173 | (font 174 | (face "Arial") 175 | (color 0 0 255 1) 176 | ) 177 | (comment "Sheet id") 178 | ) 179 | (tbtext "${REVISION}" 180 | (name "") 181 | (pos 25.989 16.502) 182 | (font 183 | (face "Times New Roman") 184 | (color 0 0 127 1) 185 | ) 186 | (comment "Sheet id") 187 | ) 188 | (line 189 | (name "") 190 | (start 27.489 23.002) 191 | (end 27.489 12.502) 192 | ) 193 | (tbtext "Date:" 194 | (name "") 195 | (pos 41.989 21.002) 196 | (font 197 | (face "Arial") 198 | (color 0 0 255 1) 199 | ) 200 | (comment "Sheet id") 201 | ) 202 | (line 203 | (name "") 204 | (start 43.489 23.0022) 205 | (end 43.489 33.5022) 206 | ) 207 | (line 208 | (name "") 209 | (start 43.489 33.5022) 210 | (end 1.989 33.5022) 211 | ) 212 | (tbtext "Project Name:" 213 | (name "") 214 | (pos 41.989 31.502) 215 | (font 216 | (face "Arial") 217 | (color 0 0 255 1) 218 | ) 219 | (comment "Sheet id") 220 | ) 221 | (tbtext "${ISSUE_DATE}" 222 | (name "") 223 | (pos 41.989 16.502) 224 | (font 225 | (face "Times New Roman") 226 | (color 0 0 127 1) 227 | ) 228 | (comment "Sheet id") 229 | ) 230 | (tbtext "Reviewer:" 231 | (name "") 232 | (pos 68.9892 10.5022) 233 | (font 234 | (face "Arial") 235 | (color 0 0 255 1) 236 | ) 237 | (comment "Sheet id") 238 | ) 239 | (tbtext "${COMMENT9}" 240 | (name "") 241 | (pos 68.9892 6.0022) 242 | (font 243 | (face "Times New Roman") 244 | (color 0 0 127 1) 245 | ) 246 | (comment "Sheet id") 247 | ) 248 | (line 249 | (name "") 250 | (start 77.989 12.5022) 251 | (end 43.489 12.5022) 252 | ) 253 | (line 254 | (name "") 255 | (start 70.4892 2.0022) 256 | (end 70.4892 12.5022) 257 | ) 258 | (tbtext "Designer:" 259 | (name "") 260 | (pos 68.9892 21.0022) 261 | (font 262 | (face "Arial") 263 | (color 0 0 255 1) 264 | ) 265 | (comment "Sheet id") 266 | ) 267 | (line 268 | (name "") 269 | (start 70.4892 12.5022) 270 | (end 70.4892 23.0022) 271 | ) 272 | (line 273 | (name "") 274 | (start 77.989 23.0022) 275 | (end 43.489 23.0022) 276 | ) 277 | (tbtext "${DESIGNER}" 278 | (name "") 279 | (pos 68.9892 16.5022) 280 | (font 281 | (face "Times New Roman") 282 | (color 0 0 127 1) 283 | ) 284 | (comment "Sheet id") 285 | ) 286 | (line 287 | (name "") 288 | (start 112.489 12.5022) 289 | (end 77.989 12.5022) 290 | ) 291 | (line 292 | (name "") 293 | (start 112.489 12.5022) 294 | (end 112.489 23.0022) 295 | ) 296 | (line 297 | (name "") 298 | (start 112.489 23.0022) 299 | (end 77.989 23.0022) 300 | ) 301 | (tbtext "${FILENAME}" 302 | (name "") 303 | (pos 110.989 16.502) 304 | (font 305 | (face "Times New Roman") 306 | (color 0 0 127 1) 307 | ) 308 | (comment "Sheet id") 309 | ) 310 | (line 311 | (name "") 312 | (start 112.489 33.5022) 313 | (end 43.489 33.5022) 314 | ) 315 | (line 316 | (name "") 317 | (start 112.489 23.0022) 318 | (end 112.489 33.5022) 319 | ) 320 | (tbtext "Board Name:" 321 | (name "") 322 | (pos 110.989 31.502) 323 | (font 324 | (face "Arial") 325 | (color 0 0 255 1) 326 | ) 327 | (comment "Sheet id") 328 | ) 329 | (tbtext "Variant:" 330 | (name "") 331 | (pos 41.989 42.0022) 332 | (font 333 | (face "Arial") 334 | (color 0 0 255 1) 335 | ) 336 | (comment "Sheet id") 337 | ) 338 | (line 339 | (name "") 340 | (start 43.489 44.0022) 341 | (end 1.989 44.0022) 342 | ) 343 | (line 344 | (name "") 345 | (start 43.489 33.5022) 346 | (end 43.489 44.0022) 347 | ) 348 | (tbtext "${VARIANT}" 349 | (name "") 350 | (pos 41.989 37.502) 351 | (font 352 | (face "Times New Roman") 353 | (color 0 0 127 1) 354 | ) 355 | (comment "Sheet id") 356 | ) 357 | (line 358 | (name "") 359 | (start 112.489 44.0022) 360 | (end 43.489 44.0022) 361 | ) 362 | (line 363 | (name "") 364 | (start 112.489 33.5022) 365 | (end 112.489 44.0022) 366 | ) 367 | (tbtext "Company:" 368 | (name "") 369 | (pos 110.989 42.002) 370 | (font 371 | (face "Arial") 372 | (color 0 0 255 1) 373 | ) 374 | (comment "Sheet id") 375 | ) 376 | (tbtext "${COMPANY}" 377 | (name "") 378 | (pos 110.989 37.502) 379 | (font 380 | (face "Times New Roman") bold 381 | (color 0 0 127 1) 382 | ) 383 | (comment "Sheet id") 384 | ) 385 | (tbtext "${PROJECT_NAME}" 386 | (name "") 387 | (pos 41.489 27.002) 388 | (font 389 | (face "Times New Roman") 390 | (size 2.5 2.5) bold 391 | (color 0 0 127 1) 392 | ) 393 | (comment "Sheet id") 394 | ) 395 | (tbtext "${BOARD_NAME}" 396 | (name "") 397 | (pos 110.489 27.002) 398 | (font 399 | (face "Times New Roman") 400 | (size 2.5 2.5) bold 401 | (color 0 0 127 1) 402 | ) 403 | (comment "Sheet id") 404 | ) 405 | (line 406 | (name "") 407 | (start 146.989 12.5022) 408 | (end 146.989 23.0022) 409 | ) 410 | (line 411 | (name "") 412 | (start 146.989 23.0022) 413 | (end 112.489 23.0022) 414 | ) 415 | (line 416 | (name "") 417 | (start 146.989 12.5022) 418 | (end 112.489 12.5022) 419 | ) 420 | (line 421 | (name "") 422 | (start 146.989 2.0022) 423 | (end 146.989 12.5022) 424 | ) 425 | (tbtext "File Name:" 426 | (name "") 427 | (pos 110.989 21.002) 428 | (font 429 | (face "Arial") 430 | (color 0 0 255 1) 431 | ) 432 | (comment "Sheet id") 433 | ) 434 | (tbtext "Sheet Title:" 435 | (name "") 436 | (pos 145.489 21.0022) 437 | (font 438 | (face "Arial") 439 | (color 0 0 255 1) 440 | ) 441 | (comment "Sheet id") 442 | ) 443 | (tbtext "${SHEETPATH}" 444 | (name "") 445 | (pos 145.489 6.002) 446 | (font 447 | (face "Times New Roman") 448 | (color 0 0 127 1) 449 | ) 450 | (comment "Sheet id") 451 | ) 452 | (tbtext "Sheet Path:" 453 | (name "") 454 | (pos 145.489 10.502) 455 | (font 456 | (face "Arial") 457 | (color 0 0 255 1) 458 | ) 459 | (comment "Sheet id") 460 | ) 461 | (tbtext "${SHEETNAME}" 462 | (name "") 463 | (pos 145.489 16.502) 464 | (font 465 | (face "Times New Roman") 466 | (color 0 0 127 1) 467 | ) 468 | (comment "Sheet id") 469 | ) 470 | (line 471 | (name "") 472 | (start 146.989 44.0022) 473 | (end 112.489 44.0022) 474 | ) 475 | (line 476 | (name "") 477 | (start 146.989 23.0022) 478 | (end 146.989 44.0022) 479 | ) 480 | (tbtext "Comments:" 481 | (name "") 482 | (pos 145.489 42.002) 483 | (font 484 | (face "Arial") 485 | (color 0 0 255 1) 486 | ) 487 | (comment "Sheet id") 488 | ) 489 | (tbtext "${COMMENT1}" 490 | (name "") 491 | (pos 145.489 37.502) 492 | (font 493 | (face "Times New Roman") 494 | (color 0 0 127 1) 495 | ) 496 | (comment "Sheet id") 497 | ) 498 | (tbtext "${COMMENT2}" 499 | (name "") 500 | (pos 145.489 34.002) 501 | (font 502 | (face "Times New Roman") 503 | (color 0 0 127 1) 504 | ) 505 | (comment "Sheet id") 506 | ) 507 | (tbtext "${COMMENT3}" 508 | (name "") 509 | (pos 145.489 30.502) 510 | (font 511 | (face "Times New Roman") 512 | (color 0 0 127 1) 513 | ) 514 | (comment "Sheet id") 515 | ) 516 | (tbtext "${COMMENT4}" 517 | (name "") 518 | (pos 145.489 27.002) 519 | (font 520 | (face "Times New Roman") 521 | (color 0 0 127 1) 522 | ) 523 | (comment "Sheet id") 524 | ) 525 | (line 526 | (name "") 527 | (start 112.489 44.0022) 528 | (end 43.489 44.0022) 529 | ) 530 | (line 531 | (name "") 532 | (start 188 44.002) 533 | (end 146.989 44.002) 534 | ) 535 | (line 536 | (name "") 537 | (start 188 44.002) 538 | (end 188 2.002) 539 | ) 540 | (tbtext "${BOARD_NAME} ${TITLE} Document" 541 | (name "") 542 | (pos 182.989 119.002) 543 | (font 544 | (face "Times New Roman") 545 | (size 4 4) bold) 546 | ) 547 | (tbtext "${LAYER}" 548 | (name "") 549 | (pos 7 119.002) 550 | (font 551 | (face "Times New Roman") 552 | (size 3.226 3.226) bold 553 | (color 0 0 0 1) 554 | ) 555 | (justify right) 556 | ) 557 | (tbtext "${GIT_HASH_PCB}" 558 | (name "") 559 | (pos 17.989 37.502) 560 | (font 561 | (face "Times New Roman") 562 | (color 0 0 127 1) 563 | ) 564 | (comment "Sheet id") 565 | ) 566 | (line 567 | (name "") 568 | (start 19.489 44.002) 569 | (end 19.489 33.502) 570 | ) 571 | (tbtext "Git Hash:" 572 | (name "") 573 | (pos 17.989 42.002) 574 | (font 575 | (face "Arial") 576 | (color 0 0 255 1) 577 | ) 578 | (comment "Sheet id") 579 | ) 580 | ) 581 | -------------------------------------------------------------------------------- /Templates/KDT_Template_PCB_GIT_A3.kicad_wks: -------------------------------------------------------------------------------- 1 | (kicad_wks 2 | (version 20231118) 3 | (generator "pl_editor") 4 | (generator_version "8.0") 5 | (setup 6 | (textsize 1.5 1.5) 7 | (linewidth 0.15) 8 | (textlinewidth 0.15) 9 | (left_margin 10) 10 | (right_margin 10) 11 | (top_margin 10) 12 | (bottom_margin 10) 13 | ) 14 | (rect 15 | (name "") 16 | (start 0 0 ltcorner) 17 | (end 0 0) 18 | (repeat 2) 19 | (incrx 2) 20 | (incry 2) 21 | ) 22 | (line 23 | (name "") 24 | (start 50 2 ltcorner) 25 | (end 50 0 ltcorner) 26 | (repeat 30) 27 | (incrx 50) 28 | ) 29 | (tbtext "1" 30 | (name "") 31 | (pos 25 1 ltcorner) 32 | (font 33 | (size 1.3 1.3) 34 | ) 35 | (repeat 100) 36 | (incrx 50) 37 | ) 38 | (line 39 | (name "") 40 | (start 50 2 lbcorner) 41 | (end 50 0 lbcorner) 42 | (repeat 30) 43 | (incrx 50) 44 | ) 45 | (tbtext "1" 46 | (name "") 47 | (pos 25 1 lbcorner) 48 | (font 49 | (size 1.3 1.3) 50 | ) 51 | (repeat 100) 52 | (incrx 50) 53 | ) 54 | (line 55 | (name "") 56 | (start 0 50 ltcorner) 57 | (end 2 50 ltcorner) 58 | (repeat 30) 59 | (incry 50) 60 | ) 61 | (tbtext "A" 62 | (name "") 63 | (pos 1 25 ltcorner) 64 | (font 65 | (size 1.3 1.3) 66 | ) 67 | (justify center) 68 | (repeat 100) 69 | (incry 50) 70 | ) 71 | (line 72 | (name "") 73 | (start 0 50 rtcorner) 74 | (end 2 50 rtcorner) 75 | (repeat 30) 76 | (incry 50) 77 | ) 78 | (tbtext "A" 79 | (name "") 80 | (pos 1 25 rtcorner) 81 | (font 82 | (size 1.3 1.3) 83 | ) 84 | (justify center) 85 | (repeat 100) 86 | (incry 50) 87 | ) 88 | (tbtext "${#}" 89 | (name "") 90 | (pos 25.6 6.0002) 91 | (font 92 | (face "Times New Roman") 93 | (size 2.5 2.5) bold 94 | (color 0 0 127 1) 95 | ) 96 | (comment "Sheet id") 97 | ) 98 | (tbtext "Sheet:" 99 | (name "") 100 | (pos 25.989 10.5022) 101 | (font 102 | (face "Arial") 103 | (color 0 0 255 1) 104 | ) 105 | (comment "Sheet id") 106 | ) 107 | (tbtext "of" 108 | (name "") 109 | (pos 17.489 5.5022) 110 | (font 111 | (face "Arial") 112 | (color 0 0 255 1) 113 | ) 114 | (comment "Sheet id") 115 | ) 116 | (tbtext "${##}" 117 | (name "") 118 | (pos 14 6) 119 | (font 120 | (face "Times New Roman") 121 | (size 2.5 2.5) bold 122 | (color 0 0 127 1) 123 | ) 124 | (comment "Sheet id") 125 | ) 126 | (tbtext "Size:" 127 | (name "") 128 | (pos 41.989 10.502) 129 | (font 130 | (face "Arial") 131 | (color 0 0 255 1) 132 | ) 133 | (comment "Sheet id") 134 | ) 135 | (tbtext "${PAPER}" 136 | (name "") 137 | (pos 40.989 6.0022) 138 | (font 139 | (face "Times New Roman") 140 | (size 2.5 2.5) bold 141 | (color 0 0 127 1) 142 | ) 143 | (comment "Sheet id") 144 | ) 145 | (line 146 | (name "") 147 | (start 43.489 2.0022) 148 | (end 43.489 12.5022) 149 | ) 150 | (line 151 | (name "") 152 | (start 43.489 12.5022) 153 | (end 1.989 12.5022) 154 | ) 155 | (line 156 | (name "") 157 | (start 27.489 12.5022) 158 | (end 27.489 2.0022) 159 | ) 160 | (line 161 | (name "") 162 | (start 43.489 12.5022) 163 | (end 43.489 23.0022) 164 | ) 165 | (line 166 | (name "") 167 | (start 43.489 23.0022) 168 | (end 1.989 23.0022) 169 | ) 170 | (tbtext "Revision:" 171 | (name "") 172 | (pos 25.989 21.002) 173 | (font 174 | (face "Arial") 175 | (color 0 0 255 1) 176 | ) 177 | (comment "Sheet id") 178 | ) 179 | (tbtext "${REVISION}" 180 | (name "") 181 | (pos 25.989 16.502) 182 | (font 183 | (face "Times New Roman") 184 | (color 0 0 127 1) 185 | ) 186 | (comment "Sheet id") 187 | ) 188 | (line 189 | (name "") 190 | (start 27.489 23.002) 191 | (end 27.489 12.502) 192 | ) 193 | (tbtext "Date:" 194 | (name "") 195 | (pos 41.989 21.002) 196 | (font 197 | (face "Arial") 198 | (color 0 0 255 1) 199 | ) 200 | (comment "Sheet id") 201 | ) 202 | (line 203 | (name "") 204 | (start 43.489 23.0022) 205 | (end 43.489 33.5022) 206 | ) 207 | (line 208 | (name "") 209 | (start 43.489 33.5022) 210 | (end 1.989 33.5022) 211 | ) 212 | (tbtext "Project Name:" 213 | (name "") 214 | (pos 41.989 31.502) 215 | (font 216 | (face "Arial") 217 | (color 0 0 255 1) 218 | ) 219 | (comment "Sheet id") 220 | ) 221 | (tbtext "${ISSUE_DATE}" 222 | (name "") 223 | (pos 41.989 16.502) 224 | (font 225 | (face "Times New Roman") 226 | (color 0 0 127 1) 227 | ) 228 | (comment "Sheet id") 229 | ) 230 | (tbtext "Reviewer:" 231 | (name "") 232 | (pos 68.9892 10.5022) 233 | (font 234 | (face "Arial") 235 | (color 0 0 255 1) 236 | ) 237 | (comment "Sheet id") 238 | ) 239 | (tbtext "${COMMENT9}" 240 | (name "") 241 | (pos 68.9892 6.0022) 242 | (font 243 | (face "Times New Roman") 244 | (color 0 0 127 1) 245 | ) 246 | (comment "Sheet id") 247 | ) 248 | (line 249 | (name "") 250 | (start 77.989 12.5022) 251 | (end 43.489 12.5022) 252 | ) 253 | (line 254 | (name "") 255 | (start 70.4892 2.0022) 256 | (end 70.4892 12.5022) 257 | ) 258 | (tbtext "Designer:" 259 | (name "") 260 | (pos 68.9892 21.0022) 261 | (font 262 | (face "Arial") 263 | (color 0 0 255 1) 264 | ) 265 | (comment "Sheet id") 266 | ) 267 | (line 268 | (name "") 269 | (start 70.4892 12.5022) 270 | (end 70.4892 23.0022) 271 | ) 272 | (line 273 | (name "") 274 | (start 77.989 23.0022) 275 | (end 43.489 23.0022) 276 | ) 277 | (tbtext "${DESIGNER}" 278 | (name "") 279 | (pos 68.9892 16.5022) 280 | (font 281 | (face "Times New Roman") 282 | (color 0 0 127 1) 283 | ) 284 | (comment "Sheet id") 285 | ) 286 | (line 287 | (name "") 288 | (start 112.489 12.5022) 289 | (end 77.989 12.5022) 290 | ) 291 | (line 292 | (name "") 293 | (start 112.489 12.5022) 294 | (end 112.489 23.0022) 295 | ) 296 | (line 297 | (name "") 298 | (start 112.489 23.0022) 299 | (end 77.989 23.0022) 300 | ) 301 | (tbtext "${FILENAME}" 302 | (name "") 303 | (pos 110.989 16.502) 304 | (font 305 | (face "Times New Roman") 306 | (color 0 0 127 1) 307 | ) 308 | (comment "Sheet id") 309 | ) 310 | (line 311 | (name "") 312 | (start 112.489 33.5022) 313 | (end 43.489 33.5022) 314 | ) 315 | (line 316 | (name "") 317 | (start 112.489 23.0022) 318 | (end 112.489 33.5022) 319 | ) 320 | (tbtext "Board Name:" 321 | (name "") 322 | (pos 110.989 31.502) 323 | (font 324 | (face "Arial") 325 | (color 0 0 255 1) 326 | ) 327 | (comment "Sheet id") 328 | ) 329 | (tbtext "Variant:" 330 | (name "") 331 | (pos 41.989 42.0022) 332 | (font 333 | (face "Arial") 334 | (color 0 0 255 1) 335 | ) 336 | (comment "Sheet id") 337 | ) 338 | (line 339 | (name "") 340 | (start 43.489 44.0022) 341 | (end 1.989 44.0022) 342 | ) 343 | (line 344 | (name "") 345 | (start 43.489 33.5022) 346 | (end 43.489 44.0022) 347 | ) 348 | (tbtext "${VARIANT}" 349 | (name "") 350 | (pos 41.989 37.502) 351 | (font 352 | (face "Times New Roman") 353 | (color 0 0 127 1) 354 | ) 355 | (comment "Sheet id") 356 | ) 357 | (line 358 | (name "") 359 | (start 112.489 44.0022) 360 | (end 43.489 44.0022) 361 | ) 362 | (line 363 | (name "") 364 | (start 112.489 33.5022) 365 | (end 112.489 44.0022) 366 | ) 367 | (tbtext "Company:" 368 | (name "") 369 | (pos 110.989 42.002) 370 | (font 371 | (face "Arial") 372 | (color 0 0 255 1) 373 | ) 374 | (comment "Sheet id") 375 | ) 376 | (tbtext "${COMPANY}" 377 | (name "") 378 | (pos 110.989 37.502) 379 | (font 380 | (face "Times New Roman") bold 381 | (color 0 0 127 1) 382 | ) 383 | (comment "Sheet id") 384 | ) 385 | (tbtext "${PROJECT_NAME}" 386 | (name "") 387 | (pos 41.489 27.002) 388 | (font 389 | (face "Times New Roman") 390 | (size 2.5 2.5) bold 391 | (color 0 0 127 1) 392 | ) 393 | (comment "Sheet id") 394 | ) 395 | (tbtext "${BOARD_NAME}" 396 | (name "") 397 | (pos 110.489 27.002) 398 | (font 399 | (face "Times New Roman") 400 | (size 2.5 2.5) bold 401 | (color 0 0 127 1) 402 | ) 403 | (comment "Sheet id") 404 | ) 405 | (line 406 | (name "") 407 | (start 146.989 12.5022) 408 | (end 146.989 23.0022) 409 | ) 410 | (line 411 | (name "") 412 | (start 146.989 23.0022) 413 | (end 112.489 23.0022) 414 | ) 415 | (line 416 | (name "") 417 | (start 146.989 12.5022) 418 | (end 112.489 12.5022) 419 | ) 420 | (line 421 | (name "") 422 | (start 146.989 2.0022) 423 | (end 146.989 12.5022) 424 | ) 425 | (tbtext "File Name:" 426 | (name "") 427 | (pos 110.989 21.002) 428 | (font 429 | (face "Arial") 430 | (color 0 0 255 1) 431 | ) 432 | (comment "Sheet id") 433 | ) 434 | (tbtext "Sheet Title:" 435 | (name "") 436 | (pos 145.489 21.0022) 437 | (font 438 | (face "Arial") 439 | (color 0 0 255 1) 440 | ) 441 | (comment "Sheet id") 442 | ) 443 | (tbtext "${SHEETPATH}" 444 | (name "") 445 | (pos 145.489 6.002) 446 | (font 447 | (face "Times New Roman") 448 | (color 0 0 127 1) 449 | ) 450 | (comment "Sheet id") 451 | ) 452 | (tbtext "Sheet Path:" 453 | (name "") 454 | (pos 145.489 10.502) 455 | (font 456 | (face "Arial") 457 | (color 0 0 255 1) 458 | ) 459 | (comment "Sheet id") 460 | ) 461 | (tbtext "${SHEETNAME}" 462 | (name "") 463 | (pos 145.489 16.502) 464 | (font 465 | (face "Times New Roman") 466 | (color 0 0 127 1) 467 | ) 468 | (comment "Sheet id") 469 | ) 470 | (line 471 | (name "") 472 | (start 146.989 44.0022) 473 | (end 112.489 44.0022) 474 | ) 475 | (line 476 | (name "") 477 | (start 146.989 23.0022) 478 | (end 146.989 44.0022) 479 | ) 480 | (tbtext "Comments:" 481 | (name "") 482 | (pos 145.489 42.002) 483 | (font 484 | (face "Arial") 485 | (color 0 0 255 1) 486 | ) 487 | (comment "Sheet id") 488 | ) 489 | (tbtext "${COMMENT1}" 490 | (name "") 491 | (pos 145.489 37.502) 492 | (font 493 | (face "Times New Roman") 494 | (color 0 0 127 1) 495 | ) 496 | (comment "Sheet id") 497 | ) 498 | (tbtext "${COMMENT2}" 499 | (name "") 500 | (pos 145.489 34.002) 501 | (font 502 | (face "Times New Roman") 503 | (color 0 0 127 1) 504 | ) 505 | (comment "Sheet id") 506 | ) 507 | (tbtext "${COMMENT3}" 508 | (name "") 509 | (pos 145.489 30.502) 510 | (font 511 | (face "Times New Roman") 512 | (color 0 0 127 1) 513 | ) 514 | (comment "Sheet id") 515 | ) 516 | (tbtext "${COMMENT4}" 517 | (name "") 518 | (pos 145.489 27.002) 519 | (font 520 | (face "Times New Roman") 521 | (color 0 0 127 1) 522 | ) 523 | (comment "Sheet id") 524 | ) 525 | (line 526 | (name "") 527 | (start 112.489 44.0022) 528 | (end 43.489 44.0022) 529 | ) 530 | (line 531 | (name "") 532 | (start 188.989 44.0022) 533 | (end 146.989 44.0022) 534 | ) 535 | (line 536 | (name "") 537 | (start 188.989 44.0022) 538 | (end 188.989 2.0022) 539 | ) 540 | (tbtext "${BOARD_NAME} ${TITLE} Document" 541 | (name "") 542 | (pos 392.989 267.502) 543 | (font 544 | (face "Times New Roman") 545 | (size 4 4) bold) 546 | ) 547 | (tbtext "${LAYER}" 548 | (name "") 549 | (pos 200.632 220.607) 550 | (font 551 | (face "Times New Roman") 552 | (size 3.226 3.226) bold 553 | (color 0 0 0 1) 554 | ) 555 | (justify center) 556 | ) 557 | (tbtext "${GIT_HASH_PCB}" 558 | (name "") 559 | (pos 17.989 37.502) 560 | (font 561 | (face "Times New Roman") 562 | (color 0 0 127 1) 563 | ) 564 | (comment "Sheet id") 565 | ) 566 | (line 567 | (name "") 568 | (start 19.489 44.002) 569 | (end 19.489 33.502) 570 | ) 571 | (tbtext "Git Hash:" 572 | (name "") 573 | (pos 17.989 42.002) 574 | (font 575 | (face "Arial") 576 | (color 0 0 255 1) 577 | ) 578 | (comment "Sheet id") 579 | ) 580 | ) 581 | -------------------------------------------------------------------------------- /Templates/KDT_Template_PCB_GIT_A4.kicad_wks: -------------------------------------------------------------------------------- 1 | (kicad_wks 2 | (version 20231118) 3 | (generator "pl_editor") 4 | (generator_version "8.0") 5 | (setup 6 | (textsize 1.5 1.5) 7 | (linewidth 0.15) 8 | (textlinewidth 0.15) 9 | (left_margin 10) 10 | (right_margin 10) 11 | (top_margin 10) 12 | (bottom_margin 10) 13 | ) 14 | (rect 15 | (name "") 16 | (start 0 0 ltcorner) 17 | (end 0 0) 18 | (repeat 2) 19 | (incrx 2) 20 | (incry 2) 21 | ) 22 | (line 23 | (name "") 24 | (start 50 2 ltcorner) 25 | (end 50 0 ltcorner) 26 | (repeat 30) 27 | (incrx 50) 28 | ) 29 | (tbtext "1" 30 | (name "") 31 | (pos 25 1 ltcorner) 32 | (font 33 | (size 1.3 1.3) 34 | ) 35 | (repeat 100) 36 | (incrx 50) 37 | ) 38 | (line 39 | (name "") 40 | (start 50 2 lbcorner) 41 | (end 50 0 lbcorner) 42 | (repeat 30) 43 | (incrx 50) 44 | ) 45 | (tbtext "1" 46 | (name "") 47 | (pos 25 1 lbcorner) 48 | (font 49 | (size 1.3 1.3) 50 | ) 51 | (repeat 100) 52 | (incrx 50) 53 | ) 54 | (line 55 | (name "") 56 | (start 0 50 ltcorner) 57 | (end 2 50 ltcorner) 58 | (repeat 30) 59 | (incry 50) 60 | ) 61 | (tbtext "A" 62 | (name "") 63 | (pos 1 25 ltcorner) 64 | (font 65 | (size 1.3 1.3) 66 | ) 67 | (justify center) 68 | (repeat 100) 69 | (incry 50) 70 | ) 71 | (line 72 | (name "") 73 | (start 0 50 rtcorner) 74 | (end 2 50 rtcorner) 75 | (repeat 30) 76 | (incry 50) 77 | ) 78 | (tbtext "A" 79 | (name "") 80 | (pos 1 25 rtcorner) 81 | (font 82 | (size 1.3 1.3) 83 | ) 84 | (justify center) 85 | (repeat 100) 86 | (incry 50) 87 | ) 88 | (tbtext "${#}" 89 | (name "") 90 | (pos 25.6 6.0002) 91 | (font 92 | (face "Times New Roman") 93 | (size 2.5 2.5) bold 94 | (color 0 0 127 1) 95 | ) 96 | (comment "Sheet id") 97 | ) 98 | (tbtext "Sheet:" 99 | (name "") 100 | (pos 25.989 10.5022) 101 | (font 102 | (face "Arial") 103 | (color 0 0 255 1) 104 | ) 105 | (comment "Sheet id") 106 | ) 107 | (tbtext "of" 108 | (name "") 109 | (pos 17.489 5.5022) 110 | (font 111 | (face "Arial") 112 | (color 0 0 255 1) 113 | ) 114 | (comment "Sheet id") 115 | ) 116 | (tbtext "${##}" 117 | (name "") 118 | (pos 14 6) 119 | (font 120 | (face "Times New Roman") 121 | (size 2.5 2.5) bold 122 | (color 0 0 127 1) 123 | ) 124 | (comment "Sheet id") 125 | ) 126 | (tbtext "Size:" 127 | (name "") 128 | (pos 41.989 10.502) 129 | (font 130 | (face "Arial") 131 | (color 0 0 255 1) 132 | ) 133 | (comment "Sheet id") 134 | ) 135 | (tbtext "${PAPER}" 136 | (name "") 137 | (pos 40.989 6.0022) 138 | (font 139 | (face "Times New Roman") 140 | (size 2.5 2.5) bold 141 | (color 0 0 127 1) 142 | ) 143 | (comment "Sheet id") 144 | ) 145 | (line 146 | (name "") 147 | (start 43.489 2.0022) 148 | (end 43.489 12.5022) 149 | ) 150 | (line 151 | (name "") 152 | (start 43.489 12.5022) 153 | (end 1.989 12.5022) 154 | ) 155 | (line 156 | (name "") 157 | (start 27.489 12.5022) 158 | (end 27.489 2.0022) 159 | ) 160 | (line 161 | (name "") 162 | (start 43.489 12.5022) 163 | (end 43.489 23.0022) 164 | ) 165 | (line 166 | (name "") 167 | (start 43.489 23.0022) 168 | (end 1.989 23.0022) 169 | ) 170 | (tbtext "Revision:" 171 | (name "") 172 | (pos 25.989 21.002) 173 | (font 174 | (face "Arial") 175 | (color 0 0 255 1) 176 | ) 177 | (comment "Sheet id") 178 | ) 179 | (tbtext "${REVISION}" 180 | (name "") 181 | (pos 25.989 16.502) 182 | (font 183 | (face "Times New Roman") 184 | (color 0 0 127 1) 185 | ) 186 | (comment "Sheet id") 187 | ) 188 | (line 189 | (name "") 190 | (start 27.489 23.002) 191 | (end 27.489 12.502) 192 | ) 193 | (tbtext "Date:" 194 | (name "") 195 | (pos 41.989 21.002) 196 | (font 197 | (face "Arial") 198 | (color 0 0 255 1) 199 | ) 200 | (comment "Sheet id") 201 | ) 202 | (line 203 | (name "") 204 | (start 43.489 23.0022) 205 | (end 43.489 33.5022) 206 | ) 207 | (line 208 | (name "") 209 | (start 43.489 33.5022) 210 | (end 1.989 33.5022) 211 | ) 212 | (tbtext "Project Name:" 213 | (name "") 214 | (pos 41.989 31.502) 215 | (font 216 | (face "Arial") 217 | (color 0 0 255 1) 218 | ) 219 | (comment "Sheet id") 220 | ) 221 | (tbtext "${ISSUE_DATE}" 222 | (name "") 223 | (pos 41.989 16.502) 224 | (font 225 | (face "Times New Roman") 226 | (color 0 0 127 1) 227 | ) 228 | (comment "Sheet id") 229 | ) 230 | (tbtext "Reviewer:" 231 | (name "") 232 | (pos 68.9892 10.5022) 233 | (font 234 | (face "Arial") 235 | (color 0 0 255 1) 236 | ) 237 | (comment "Sheet id") 238 | ) 239 | (tbtext "${COMMENT9}" 240 | (name "") 241 | (pos 68.9892 6.0022) 242 | (font 243 | (face "Times New Roman") 244 | (color 0 0 127 1) 245 | ) 246 | (comment "Sheet id") 247 | ) 248 | (line 249 | (name "") 250 | (start 77.989 12.5022) 251 | (end 43.489 12.5022) 252 | ) 253 | (line 254 | (name "") 255 | (start 70.4892 2.0022) 256 | (end 70.4892 12.5022) 257 | ) 258 | (tbtext "Designer:" 259 | (name "") 260 | (pos 68.9892 21.0022) 261 | (font 262 | (face "Arial") 263 | (color 0 0 255 1) 264 | ) 265 | (comment "Sheet id") 266 | ) 267 | (line 268 | (name "") 269 | (start 70.4892 12.5022) 270 | (end 70.4892 23.0022) 271 | ) 272 | (line 273 | (name "") 274 | (start 77.989 23.0022) 275 | (end 43.489 23.0022) 276 | ) 277 | (tbtext "${DESIGNER}" 278 | (name "") 279 | (pos 68.9892 16.5022) 280 | (font 281 | (face "Times New Roman") 282 | (color 0 0 127 1) 283 | ) 284 | (comment "Sheet id") 285 | ) 286 | (line 287 | (name "") 288 | (start 112.489 12.5022) 289 | (end 77.989 12.5022) 290 | ) 291 | (line 292 | (name "") 293 | (start 112.489 12.5022) 294 | (end 112.489 23.0022) 295 | ) 296 | (line 297 | (name "") 298 | (start 112.489 23.0022) 299 | (end 77.989 23.0022) 300 | ) 301 | (tbtext "${FILENAME}" 302 | (name "") 303 | (pos 110.989 16.502) 304 | (font 305 | (face "Times New Roman") 306 | (color 0 0 127 1) 307 | ) 308 | (comment "Sheet id") 309 | ) 310 | (line 311 | (name "") 312 | (start 112.489 33.5022) 313 | (end 43.489 33.5022) 314 | ) 315 | (line 316 | (name "") 317 | (start 112.489 23.0022) 318 | (end 112.489 33.5022) 319 | ) 320 | (tbtext "Board Name:" 321 | (name "") 322 | (pos 110.989 31.502) 323 | (font 324 | (face "Arial") 325 | (color 0 0 255 1) 326 | ) 327 | (comment "Sheet id") 328 | ) 329 | (tbtext "Variant:" 330 | (name "") 331 | (pos 41.989 42.0022) 332 | (font 333 | (face "Arial") 334 | (color 0 0 255 1) 335 | ) 336 | (comment "Sheet id") 337 | ) 338 | (line 339 | (name "") 340 | (start 43.489 44.0022) 341 | (end 1.989 44.0022) 342 | ) 343 | (line 344 | (name "") 345 | (start 43.489 33.5022) 346 | (end 43.489 44.0022) 347 | ) 348 | (tbtext "${VARIANT}" 349 | (name "") 350 | (pos 41.989 37.502) 351 | (font 352 | (face "Times New Roman") 353 | (color 0 0 127 1) 354 | ) 355 | (comment "Sheet id") 356 | ) 357 | (line 358 | (name "") 359 | (start 112.489 44.0022) 360 | (end 43.489 44.0022) 361 | ) 362 | (line 363 | (name "") 364 | (start 112.489 33.5022) 365 | (end 112.489 44.0022) 366 | ) 367 | (tbtext "Company:" 368 | (name "") 369 | (pos 110.989 42.002) 370 | (font 371 | (face "Arial") 372 | (color 0 0 255 1) 373 | ) 374 | (comment "Sheet id") 375 | ) 376 | (tbtext "${COMPANY}" 377 | (name "") 378 | (pos 110.989 37.502) 379 | (font 380 | (face "Times New Roman") bold 381 | (color 0 0 127 1) 382 | ) 383 | (comment "Sheet id") 384 | ) 385 | (tbtext "${PROJECT_NAME}" 386 | (name "") 387 | (pos 41.489 27.002) 388 | (font 389 | (face "Times New Roman") 390 | (size 2.5 2.5) bold 391 | (color 0 0 127 1) 392 | ) 393 | (comment "Sheet id") 394 | ) 395 | (tbtext "${BOARD_NAME}" 396 | (name "") 397 | (pos 110.489 27.002) 398 | (font 399 | (face "Times New Roman") 400 | (size 2.5 2.5) bold 401 | (color 0 0 127 1) 402 | ) 403 | (comment "Sheet id") 404 | ) 405 | (line 406 | (name "") 407 | (start 146.989 12.5022) 408 | (end 146.989 23.0022) 409 | ) 410 | (line 411 | (name "") 412 | (start 146.989 23.0022) 413 | (end 112.489 23.0022) 414 | ) 415 | (line 416 | (name "") 417 | (start 146.989 12.5022) 418 | (end 112.489 12.5022) 419 | ) 420 | (line 421 | (name "") 422 | (start 146.989 2.0022) 423 | (end 146.989 12.5022) 424 | ) 425 | (tbtext "File Name:" 426 | (name "") 427 | (pos 110.989 21.002) 428 | (font 429 | (face "Arial") 430 | (color 0 0 255 1) 431 | ) 432 | (comment "Sheet id") 433 | ) 434 | (tbtext "Sheet Title:" 435 | (name "") 436 | (pos 145.489 21.0022) 437 | (font 438 | (face "Arial") 439 | (color 0 0 255 1) 440 | ) 441 | (comment "Sheet id") 442 | ) 443 | (tbtext "${SHEETPATH}" 444 | (name "") 445 | (pos 145.489 6.002) 446 | (font 447 | (face "Times New Roman") 448 | (color 0 0 127 1) 449 | ) 450 | (comment "Sheet id") 451 | ) 452 | (tbtext "Sheet Path:" 453 | (name "") 454 | (pos 145.489 10.502) 455 | (font 456 | (face "Arial") 457 | (color 0 0 255 1) 458 | ) 459 | (comment "Sheet id") 460 | ) 461 | (tbtext "${SHEETNAME}" 462 | (name "") 463 | (pos 145.489 16.502) 464 | (font 465 | (face "Times New Roman") 466 | (color 0 0 127 1) 467 | ) 468 | (comment "Sheet id") 469 | ) 470 | (line 471 | (name "") 472 | (start 146.989 44.0022) 473 | (end 112.489 44.0022) 474 | ) 475 | (line 476 | (name "") 477 | (start 146.989 23.0022) 478 | (end 146.989 44.0022) 479 | ) 480 | (tbtext "Comments:" 481 | (name "") 482 | (pos 145.489 42.002) 483 | (font 484 | (face "Arial") 485 | (color 0 0 255 1) 486 | ) 487 | (comment "Sheet id") 488 | ) 489 | (tbtext "${COMMENT1}" 490 | (name "") 491 | (pos 145.489 37.502) 492 | (font 493 | (face "Times New Roman") 494 | (color 0 0 127 1) 495 | ) 496 | (comment "Sheet id") 497 | ) 498 | (tbtext "${COMMENT2}" 499 | (name "") 500 | (pos 145.489 34.002) 501 | (font 502 | (face "Times New Roman") 503 | (color 0 0 127 1) 504 | ) 505 | (comment "Sheet id") 506 | ) 507 | (tbtext "${COMMENT3}" 508 | (name "") 509 | (pos 145.489 30.502) 510 | (font 511 | (face "Times New Roman") 512 | (color 0 0 127 1) 513 | ) 514 | (comment "Sheet id") 515 | ) 516 | (tbtext "${COMMENT4}" 517 | (name "") 518 | (pos 145.489 27.002) 519 | (font 520 | (face "Times New Roman") 521 | (color 0 0 127 1) 522 | ) 523 | (comment "Sheet id") 524 | ) 525 | (line 526 | (name "") 527 | (start 112.489 44.0022) 528 | (end 43.489 44.0022) 529 | ) 530 | (line 531 | (name "") 532 | (start 188.989 44.0022) 533 | (end 146.989 44.0022) 534 | ) 535 | (line 536 | (name "") 537 | (start 188.989 44.0022) 538 | (end 188.989 2.0022) 539 | ) 540 | (tbtext "${BOARD_NAME} ${TITLE} Document" 541 | (name "") 542 | (pos 269.989 180.502) 543 | (font 544 | (face "Times New Roman") 545 | (size 4 4) bold) 546 | ) 547 | (tbtext "${LAYER}" 548 | (name "") 549 | (pos 138.6322 159.1072) 550 | (font 551 | (face "Times New Roman") 552 | (size 3.226 3.226) bold 553 | (color 0 0 0 1) 554 | ) 555 | (justify center) 556 | ) 557 | (tbtext "${GIT_HASH_PCB}" 558 | (name "") 559 | (pos 17.989 37.502) 560 | (font 561 | (face "Times New Roman") 562 | (color 0 0 127 1) 563 | ) 564 | (comment "Sheet id") 565 | ) 566 | (line 567 | (name "") 568 | (start 19.489 44.002) 569 | (end 19.489 33.502) 570 | ) 571 | (tbtext "Git Hash:" 572 | (name "") 573 | (pos 17.989 42.002) 574 | (font 575 | (face "Arial") 576 | (color 0 0 255 1) 577 | ) 578 | (comment "Sheet id") 579 | ) 580 | ) 581 | -------------------------------------------------------------------------------- /kibot_resources/colors/Altium_Theme.json: -------------------------------------------------------------------------------- 1 | { 2 | "3d_viewer": { 3 | "background_bottom": "rgb(102, 102, 128)", 4 | "background_top": "rgb(204, 204, 230)", 5 | "board": "rgba(51, 43, 23, 0.902)", 6 | "copper": "rgb(179, 156, 0)", 7 | "silkscreen_bottom": "rgb(230, 230, 230)", 8 | "silkscreen_top": "rgb(230, 230, 230)", 9 | "soldermask_bottom": "rgba(20, 51, 36, 0.831)", 10 | "soldermask_top": "rgba(20, 51, 36, 0.831)", 11 | "solderpaste": "rgb(128, 128, 128)", 12 | "use_board_stackup_colors": true, 13 | "user_1": "rgb(194, 194, 194)", 14 | "user_10": "rgb(89, 148, 220)", 15 | "user_11": "rgb(180, 219, 210)", 16 | "user_12": "rgb(216, 200, 82)", 17 | "user_13": "rgb(194, 194, 194)", 18 | "user_14": "rgb(89, 148, 220)", 19 | "user_15": "rgb(180, 219, 210)", 20 | "user_16": "rgb(216, 200, 82)", 21 | "user_17": "rgb(194, 194, 194)", 22 | "user_18": "rgb(89, 148, 220)", 23 | "user_19": "rgb(180, 219, 210)", 24 | "user_2": "rgb(89, 148, 220)", 25 | "user_20": "rgb(216, 200, 82)", 26 | "user_21": "rgb(194, 194, 194)", 27 | "user_22": "rgb(89, 148, 220)", 28 | "user_23": "rgb(180, 219, 210)", 29 | "user_24": "rgb(216, 200, 82)", 30 | "user_25": "rgb(194, 194, 194)", 31 | "user_26": "rgb(89, 148, 220)", 32 | "user_27": "rgb(180, 219, 210)", 33 | "user_28": "rgb(216, 200, 82)", 34 | "user_29": "rgb(194, 194, 194)", 35 | "user_3": "rgb(180, 219, 210)", 36 | "user_30": "rgb(89, 148, 220)", 37 | "user_31": "rgb(180, 219, 210)", 38 | "user_32": "rgb(216, 200, 82)", 39 | "user_33": "rgb(194, 194, 194)", 40 | "user_34": "rgb(89, 148, 220)", 41 | "user_35": "rgb(180, 219, 210)", 42 | "user_36": "rgb(216, 200, 82)", 43 | "user_37": "rgb(194, 194, 194)", 44 | "user_38": "rgb(89, 148, 220)", 45 | "user_39": "rgb(180, 219, 210)", 46 | "user_4": "rgb(216, 200, 82)", 47 | "user_40": "rgb(216, 200, 82)", 48 | "user_41": "rgb(194, 194, 194)", 49 | "user_42": "rgb(89, 148, 220)", 50 | "user_43": "rgb(180, 219, 210)", 51 | "user_44": "rgb(216, 200, 82)", 52 | "user_45": "rgb(194, 194, 194)", 53 | "user_5": "rgb(194, 194, 194)", 54 | "user_6": "rgb(89, 148, 220)", 55 | "user_7": "rgb(180, 219, 210)", 56 | "user_8": "rgb(216, 200, 82)", 57 | "user_9": "rgb(232, 178, 167)" 58 | }, 59 | "board": { 60 | "anchor": "rgb(255, 38, 226)", 61 | "aux_items": "rgb(255, 255, 255)", 62 | "b_adhes": "rgb(0, 0, 132)", 63 | "b_crtyd": "rgb(38, 233, 255)", 64 | "b_fab": "rgb(88, 93, 132)", 65 | "b_mask": "rgba(2, 255, 238, 0.400)", 66 | "b_paste": "rgba(0, 194, 194, 0.902)", 67 | "b_silks": "rgb(232, 178, 167)", 68 | "background": "rgb(0, 16, 35)", 69 | "cmts_user": "rgb(89, 148, 220)", 70 | "conflicts_shadow": "rgba(255, 0, 5, 0.502)", 71 | "copper": { 72 | "b": "rgb(77, 127, 196)", 73 | "f": "rgb(200, 52, 52)", 74 | "in1": "rgb(127, 200, 127)", 75 | "in10": "rgb(237, 124, 51)", 76 | "in11": "rgb(91, 195, 235)", 77 | "in12": "rgb(247, 111, 142)", 78 | "in13": "rgb(167, 165, 198)", 79 | "in14": "rgb(40, 204, 217)", 80 | "in15": "rgb(232, 178, 167)", 81 | "in16": "rgb(242, 237, 161)", 82 | "in17": "rgb(237, 124, 51)", 83 | "in18": "rgb(91, 195, 235)", 84 | "in19": "rgb(247, 111, 142)", 85 | "in2": "rgb(206, 125, 44)", 86 | "in20": "rgb(167, 165, 198)", 87 | "in21": "rgb(40, 204, 217)", 88 | "in22": "rgb(232, 178, 167)", 89 | "in23": "rgb(242, 237, 161)", 90 | "in24": "rgb(237, 124, 51)", 91 | "in25": "rgb(91, 195, 235)", 92 | "in26": "rgb(247, 111, 142)", 93 | "in27": "rgb(167, 165, 198)", 94 | "in28": "rgb(40, 204, 217)", 95 | "in29": "rgb(232, 178, 167)", 96 | "in3": "rgb(79, 203, 203)", 97 | "in30": "rgb(242, 237, 161)", 98 | "in4": "rgb(219, 98, 139)", 99 | "in5": "rgb(167, 165, 198)", 100 | "in6": "rgb(40, 204, 217)", 101 | "in7": "rgb(232, 178, 167)", 102 | "in8": "rgb(242, 237, 161)", 103 | "in9": "rgb(141, 203, 129)" 104 | }, 105 | "cursor": "rgb(255, 255, 255)", 106 | "drc_error": "rgba(215, 91, 107, 0.800)", 107 | "drc_exclusion": "rgba(255, 255, 255, 0.800)", 108 | "drc_warning": "rgba(255, 208, 66, 0.800)", 109 | "dwgs_user": "rgb(194, 194, 194)", 110 | "eco1_user": "rgb(180, 219, 210)", 111 | "eco2_user": "rgb(216, 200, 82)", 112 | "edge_cuts": "rgb(208, 210, 205)", 113 | "f_adhes": "rgb(132, 0, 132)", 114 | "f_crtyd": "rgb(255, 38, 226)", 115 | "f_fab": "rgb(175, 175, 175)", 116 | "f_mask": "rgba(216, 100, 255, 0.400)", 117 | "f_paste": "rgba(180, 160, 154, 0.902)", 118 | "f_silks": "rgb(242, 237, 161)", 119 | "footprint_text_invisible": "rgb(132, 132, 132)", 120 | "grid": "rgb(132, 132, 132)", 121 | "grid_axes": "rgb(194, 194, 194)", 122 | "locked_shadow": "rgba(255, 38, 226, 0.502)", 123 | "margin": "rgb(255, 38, 226)", 124 | "pad_net_names": "rgba(255, 255, 255, 0.902)", 125 | "pad_plated_hole": "rgb(194, 194, 0)", 126 | "pad_through_hole": "rgb(227, 183, 46)", 127 | "page_limits": "rgb(132, 132, 132)", 128 | "plated_hole": "rgb(26, 196, 210)", 129 | "ratsnest": "rgba(0, 248, 255, 0.349)", 130 | "track_net_names": "rgba(255, 255, 255, 0.702)", 131 | "user_1": "rgb(194, 194, 194)", 132 | "user_10": "rgb(89, 148, 220)", 133 | "user_11": "rgb(180, 219, 210)", 134 | "user_12": "rgb(216, 200, 82)", 135 | "user_13": "rgb(194, 194, 194)", 136 | "user_14": "rgb(89, 148, 220)", 137 | "user_15": "rgb(180, 219, 210)", 138 | "user_16": "rgb(216, 200, 82)", 139 | "user_17": "rgb(194, 194, 194)", 140 | "user_18": "rgb(89, 148, 220)", 141 | "user_19": "rgb(180, 219, 210)", 142 | "user_2": "rgb(89, 148, 220)", 143 | "user_20": "rgb(216, 200, 82)", 144 | "user_21": "rgb(194, 194, 194)", 145 | "user_22": "rgb(89, 148, 220)", 146 | "user_23": "rgb(180, 219, 210)", 147 | "user_24": "rgb(216, 200, 82)", 148 | "user_25": "rgb(194, 194, 194)", 149 | "user_26": "rgb(89, 148, 220)", 150 | "user_27": "rgb(180, 219, 210)", 151 | "user_28": "rgb(216, 200, 82)", 152 | "user_29": "rgb(194, 194, 194)", 153 | "user_3": "rgb(180, 219, 210)", 154 | "user_30": "rgb(89, 148, 220)", 155 | "user_31": "rgb(180, 219, 210)", 156 | "user_32": "rgb(216, 200, 82)", 157 | "user_33": "rgb(194, 194, 194)", 158 | "user_34": "rgb(89, 148, 220)", 159 | "user_35": "rgb(180, 219, 210)", 160 | "user_36": "rgb(216, 200, 82)", 161 | "user_37": "rgb(194, 194, 194)", 162 | "user_38": "rgb(89, 148, 220)", 163 | "user_39": "rgb(180, 219, 210)", 164 | "user_4": "rgb(216, 200, 82)", 165 | "user_40": "rgb(216, 200, 82)", 166 | "user_41": "rgb(194, 194, 194)", 167 | "user_42": "rgb(89, 148, 220)", 168 | "user_43": "rgb(180, 219, 210)", 169 | "user_44": "rgb(216, 200, 82)", 170 | "user_45": "rgb(194, 194, 194)", 171 | "user_5": "rgb(194, 194, 194)", 172 | "user_6": "rgb(89, 148, 220)", 173 | "user_7": "rgb(180, 219, 210)", 174 | "user_8": "rgb(216, 200, 82)", 175 | "user_9": "rgb(232, 178, 167)", 176 | "via_blind_buried": "rgb(187, 151, 38)", 177 | "via_hole": "rgb(227, 183, 46)", 178 | "via_hole_walls": "rgb(236, 236, 236)", 179 | "via_micro": "rgb(0, 132, 132)", 180 | "via_net_names": "rgba(50, 50, 50, 0.902)", 181 | "via_through": "rgb(236, 236, 236)", 182 | "worksheet": "rgb(200, 114, 171)" 183 | }, 184 | "gerbview": { 185 | "axes": "rgb(0, 0, 132)", 186 | "background": "rgb(0, 0, 0)", 187 | "dcodes": "rgb(255, 255, 255)", 188 | "grid": "rgb(132, 132, 132)", 189 | "layers": [ 190 | "rgb(200, 52, 52)", 191 | "rgb(127, 200, 127)", 192 | "rgb(206, 125, 44)", 193 | "rgb(79, 203, 203)", 194 | "rgb(219, 98, 139)", 195 | "rgb(167, 165, 198)", 196 | "rgb(40, 204, 217)", 197 | "rgb(232, 178, 167)", 198 | "rgb(242, 237, 161)", 199 | "rgb(141, 203, 129)", 200 | "rgb(237, 124, 51)", 201 | "rgb(91, 195, 235)", 202 | "rgb(247, 111, 142)", 203 | "rgb(77, 127, 196)", 204 | "rgb(200, 52, 52)", 205 | "rgb(127, 200, 127)", 206 | "rgb(206, 125, 44)", 207 | "rgb(79, 203, 203)", 208 | "rgb(219, 98, 139)", 209 | "rgb(167, 165, 198)", 210 | "rgb(40, 204, 217)", 211 | "rgb(232, 178, 167)", 212 | "rgb(242, 237, 161)", 213 | "rgb(141, 203, 129)", 214 | "rgb(237, 124, 51)", 215 | "rgb(91, 195, 235)", 216 | "rgb(247, 111, 142)", 217 | "rgb(77, 127, 196)", 218 | "rgb(200, 52, 52)", 219 | "rgb(127, 200, 127)", 220 | "rgb(206, 125, 44)", 221 | "rgb(79, 203, 203)", 222 | "rgb(219, 98, 139)", 223 | "rgb(167, 165, 198)", 224 | "rgb(40, 204, 217)", 225 | "rgb(232, 178, 167)", 226 | "rgb(242, 237, 161)", 227 | "rgb(141, 203, 129)", 228 | "rgb(237, 124, 51)", 229 | "rgb(91, 195, 235)", 230 | "rgb(247, 111, 142)", 231 | "rgb(77, 127, 196)", 232 | "rgb(200, 52, 52)", 233 | "rgb(127, 200, 127)", 234 | "rgb(206, 125, 44)", 235 | "rgb(79, 203, 203)", 236 | "rgb(219, 98, 139)", 237 | "rgb(167, 165, 198)", 238 | "rgb(40, 204, 217)", 239 | "rgb(232, 178, 167)", 240 | "rgb(242, 237, 161)", 241 | "rgb(141, 203, 129)", 242 | "rgb(237, 124, 51)", 243 | "rgb(91, 195, 235)", 244 | "rgb(247, 111, 142)", 245 | "rgb(77, 127, 196)", 246 | "rgb(200, 52, 52)", 247 | "rgb(127, 200, 127)", 248 | "rgb(206, 125, 44)", 249 | "rgb(79, 203, 203)", 250 | "rgb(219, 98, 139)", 251 | "rgb(167, 165, 198)", 252 | "rgb(40, 204, 217)", 253 | "rgb(232, 178, 167)" 254 | ], 255 | "negative_objects": "rgb(132, 132, 132)", 256 | "page_limits": "rgb(132, 132, 132)", 257 | "worksheet": "rgb(0, 0, 132)" 258 | }, 259 | "meta": { 260 | "name": "Altium_Theme", 261 | "version": 5 262 | }, 263 | "schematic": { 264 | "anchor": "rgb(0, 0, 255)", 265 | "aux_items": "rgb(0, 0, 0)", 266 | "background": "rgb(245, 244, 239)", 267 | "brightened": "rgb(255, 0, 255)", 268 | "bus": "rgb(0, 0, 132)", 269 | "bus_junction": "rgb(0, 0, 132)", 270 | "component_body": "rgb(255, 255, 194)", 271 | "component_outline": "rgb(132, 0, 0)", 272 | "cursor": "rgb(15, 15, 15)", 273 | "dnp_marker": "rgba(220, 9, 13, 0.851)", 274 | "erc_error": "rgba(230, 9, 13, 0.800)", 275 | "erc_exclusion": "rgba(94, 194, 194, 0.800)", 276 | "erc_warning": "rgba(209, 146, 0, 0.800)", 277 | "excluded_from_sim": "rgba(194, 194, 194, 0.949)", 278 | "fields": "rgb(132, 0, 132)", 279 | "grid": "rgb(181, 181, 181)", 280 | "grid_axes": "rgb(0, 0, 132)", 281 | "hidden": "rgb(94, 194, 194)", 282 | "hovered": "rgb(0, 0, 255)", 283 | "junction": "rgb(0, 0, 0)", 284 | "label_global": "rgb(132, 0, 0)", 285 | "label_hier": "rgb(114, 86, 0)", 286 | "label_local": "rgb(132, 0, 0)", 287 | "netclass_flag": "rgb(72, 72, 72)", 288 | "no_connect": "rgb(0, 0, 132)", 289 | "note": "rgb(0, 0, 194)", 290 | "note_background": "rgba(0, 0, 0, 0.000)", 291 | "op_currents": "rgb(224, 0, 12)", 292 | "op_voltages": "rgb(132, 0, 50)", 293 | "override_item_colors": false, 294 | "page_limits": "rgb(181, 181, 181)", 295 | "pin": "rgb(0, 0, 0)", 296 | "pin_name": "rgb(0, 0, 0)", 297 | "pin_number": "rgb(0, 0, 0)", 298 | "private_note": "rgb(72, 72, 255)", 299 | "reference": "rgb(0, 0, 194)", 300 | "rule_area": "rgb(255, 0, 0)", 301 | "shadow": "rgba(102, 179, 255, 0.800)", 302 | "sheet": "rgb(0, 0, 0)", 303 | "sheet_background": "rgba(255, 255, 255, 0.000)", 304 | "sheet_fields": "rgb(132, 0, 132)", 305 | "sheet_filename": "rgb(0, 0, 132)", 306 | "sheet_label": "rgb(0, 0, 0)", 307 | "sheet_name": "rgb(0, 0, 132)", 308 | "value": "rgb(0, 0, 194)", 309 | "wire": "rgb(0, 0, 0)", 310 | "worksheet": "rgb(0, 0, 0)" 311 | } 312 | } 313 | --------------------------------------------------------------------------------