# Gerber and drill files for JLCPCB, without stencil, plus board images
# URL: https://jlcpcb.com/help/article/16-How-to-generate-Gerber-and-Drill-files-in-KiCad-6

kibot:
  version: 1

preflight:
  run_erc: false
  run_drc: false
  check_zone_fills: false
  ignore_unconnected: false

outputs:
  - name: jlcpcb_gerbers
    comment: Gerbers compatible with JLCPCB
    type: gerber
    dir: ergogen/output/gerbers/%f
    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
    layers:
      - F.Cu
      - B.Cu
      - F.SilkS
      - B.SilkS
      - F.Mask
      - B.Mask
      - Edge.Cuts

  - name: jlcpcb_drill
    comment: Drill files compatible with JLCPCB
    type: excellon
    dir: ergogen/output/gerbers/%f
    options:
      mirror_y_axis: false
      minimal_header: false
      pth_and_npth_single_file: false
      route_mode_for_oval_holes: false
      map: gerber
      use_aux_axis_as_origin: false
      metric_units: true
      zeros_format: 'DECIMAL_FORMAT'

  - name: jlcpcb
    comment: ZIP file for JLCPCB gerbers
    type: compress
    dir: ergogen/output/gerbers
    options:
      files:
        - from_output: jlcpcb_gerbers
          dest: /
        - from_output: jlcpcb_drill
          dest: /
      output: '%f.%x'

  - name: top_view
    comment: "Top view of the PCB"
    type: pcbdraw
    dir: ergogen/output/images
    options:
      format: png
      style: oshpark-afterdark
      margin: 5

  - name: bottom_view
    comment: "Bottom view of the PCB"
    type: pcbdraw
    dir: ergogen/output/images
    extends: top_view
    options:
      bottom: true
