Add CI for kicad

This commit is contained in:
Jan-Henrik 2025-02-08 17:02:40 +01:00
parent fe255aa6e3
commit cf636b3183
6 changed files with 45359 additions and 2 deletions

View file

@ -78,4 +78,27 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: firmware
path: firmware/.pio/build/pico/firmware.uf2
path: firmware/.pio/build/pico/firmware.uf2
build-pcb:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: INTI-CMNB/KiBot@v2_k8
with:
# Required - kibot config file
config: hardware/board/jlcpcb.kibot.yaml
# optional - prefix to output defined in config
dir: hardware/board/output
# optional - schematic file
schema: 'hardware/board/butns.kicad_sch'
# optional - PCB design file
board: 'hardware/board/butns.kicad_pcb'
- name: upload results
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: board
path: |
hardware/board/output/*.csv
hardware/board/output/JLCPCB/*.zip

View file

@ -27,10 +27,16 @@ jobs:
uses: actions/download-artifact@v4
with:
name: buttons
- name: Download board artifact
uses: actions/download-artifact@v4
with:
name: board
- name: Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
*.uf2
*.stl
*.stl
*.csv
*.zip

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,89 @@
(kicad_sch
(version 20231120)
(generator "eeschema")
(generator_version "8.0")
(uuid "1c3520c0-bca7-4d12-8c9b-3ac18c44338d")
(paper "A4")
(lib_symbols)
(sheet
(at 128.27 74.93)
(size 24.13 10.16)
(fields_autoplaced yes)
(stroke
(width 0.1524)
(type solid)
)
(fill
(color 0 0 0 0.0000)
)
(uuid "b0295986-856b-4508-9cd9-aff1aa86ee33")
(property "Sheetname" "Frontend"
(at 128.27 74.2184 0)
(effects
(font
(size 1.27 1.27)
)
(justify left bottom)
)
)
(property "Sheetfile" "butns-frontend.kicad_sch"
(at 128.27 85.6746 0)
(effects
(font
(size 1.27 1.27)
)
(justify left top)
)
)
(instances
(project "butns"
(path "/1c3520c0-bca7-4d12-8c9b-3ac18c44338d"
(page "2")
)
)
)
)
(sheet
(at 177.8 77.47)
(size 26.67 10.16)
(fields_autoplaced yes)
(stroke
(width 0.1524)
(type solid)
)
(fill
(color 0 0 0 0.0000)
)
(uuid "d5941714-0239-4676-93bd-9d828e2adbdd")
(property "Sheetname" "Backend"
(at 177.8 76.7584 0)
(effects
(font
(size 1.27 1.27)
)
(justify left bottom)
)
)
(property "Sheetfile" "butns-backend.kicad_sch"
(at 177.8 88.2146 0)
(effects
(font
(size 1.27 1.27)
)
(justify left top)
)
)
(instances
(project "butns"
(path "/1c3520c0-bca7-4d12-8c9b-3ac18c44338d"
(page "3")
)
)
)
)
(sheet_instances
(path "/"
(page "1")
)
)
)

View file

@ -0,0 +1,120 @@
kibot:
version: 1
filters:
- name: only_jlc_parts
comment: 'Only parts with JLC (LCSC) code'
type: generic
include_only:
- column: 'LCSC#'
regex: '^C\d+'
variants:
- name: rotated
comment: 'Just a place holder for the rotation filter'
type: kibom
variant: rotated
pre_transform: _rot_footprint
outputs:
- name: JLCPCB_gerbers
comment: Gerbers compatible with JLCPCB
type: gerber
dir: JLCPCB
options: &gerber_options
exclude_edge_layer: true
exclude_pads_from_silkscreen: true
plot_sheet_reference: false
plot_footprint_refs: true
plot_footprint_values: false
force_plot_invisible_refs_vals: false
tent_vias: true
use_protel_extensions: false
create_gerber_job_file: false
disable_aperture_macros: true
gerber_precision: 4.6
use_gerber_x2_attributes: false
use_gerber_net_attributes: false
line_width: 0.1
subtract_mask_from_silk: true
layers:
# Note: a more generic approach is to use 'copper' but then the filenames
# are slightly different.
- F.Cu
- B.Cu
- In1.Cu
- In2.Cu
- In3.Cu
- In4.Cu
- In5.Cu
- In6.Cu
- F.SilkS
- B.SilkS
- F.Mask
- B.Mask
- Edge.Cuts
- name: JLCPCB_drill
comment: Drill files compatible with JLCPCB
type: excellon
dir: JLCPCB
options:
pth_and_npth_single_file: false
pth_id: '-PTH'
npth_id: '-NPTH'
metric_units: false
output: "%f%i.%x"
- name: JLCPCB
comment: ZIP file for JLCPCB
type: compress
dir: JLCPCB
options:
files:
- from_output: JLCPCB_gerbers
dest: /
- from_output: JLCPCB_drill
dest: /
- name: 'JLCPCB_position'
comment: "Pick and place file, JLCPCB style"
type: position
options:
variant: rotated
output: '%f_cpl_jlc.%x'
format: CSV
units: millimeters
separate_files_for_front_and_back: false
only_smd: true
columns:
- id: Ref
name: Designator
- Val
- Package
- id: PosX
name: "Mid X"
- id: PosY
name: "Mid Y"
- id: Rot
name: Rotation
- id: Side
name: Layer
- name: 'JLCPCB_bom'
comment: "BoM for JLCPCB"
type: bom
options:
output: '%f_%i_jlc.%x'
#exclude_filter: 'only_jlc_parts'
ref_separator: ','
columns:
- field: Value
name: Comment
- field: References
name: Designator
- Footprint
- field: 'LCSC'
name: 'LCSC Part #'
csv:
hide_pcb_info: true
hide_stats_info: true
quote_all: true