diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..1f9197c --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,9 @@ +image: ghcr.io/inti-cmnb/kicad6_auto:latest + +stages: + - plot + +plot_gerbers: + stage: checks + script: + - cd mellifera && kibot \ No newline at end of file diff --git a/mellifera/jlcpcb.kibot.yaml b/mellifera/jlcpcb.kibot.yaml new file mode 100644 index 0000000..2cdac25 --- /dev/null +++ b/mellifera/jlcpcb.kibot.yaml @@ -0,0 +1,133 @@ +# Gerber and drill files for JLCPCB, without stencil +# URL: https://jlcpcb.com/ +# Based on setting used by Gerber Zipper (https://github.com/g200kg/kicad-gerberzipper) +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: true + 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 + inner_extension_pattern: '.gp%n' + 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: true + map: gerber + route_mode_for_oval_holes: false + output: "%f%i.%x" + + - name: 'JLCPCB_position' + comment: "Pick and place file, JLCPCB style" + type: position + dir: JLCPCB + 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 + dir: JLCPCB + 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 + + - name: JLCPCB + comment: ZIP file for JLCPCB + type: compress + dir: JLCPCB + options: + files: + - from_output: JLCPCB_gerbers + dest: / + - from_output: JLCPCB_drill + dest: / + - from_output: JLCPCB_position + dest: / + - from_output: JLCPCB_bom + dest: / \ No newline at end of file