ceoloide / ergogen-footprints

Ergogen v4 footprints
MIT License
30 stars 10 forks source link

choc footprint produces kicad pcb file error #27

Closed mlilley closed 4 months ago

mlilley commented 4 months ago

Choc footprint seems to have broken sometime in the last few weeks. This:

      switches:
        what: switch_choc_v1_v2
        where: true
        params:
          choc_v2_support: false
          from: "{{column_net}}"
          to: "{{colrow}}"
        adjust:
          rotate: 180

produces a pcb file that kicad can't load:

Expecting 'end' in '/Users/aaaa/bbbb/cccc/dddd.kicad_pcb', line 272, offset 32.

the footprint at that location looks like (I've marked line 272 with a comment):

  (footprint "ceoloide:switch_choc_v1_v2"
    (layer "B.Cu")
    (at 70.7106781 122.4744871 165)
    (property "Reference" "S1"
      (at 0 8.8 165)
      (layer "B.SilkS")
      hide
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (attr exclude_from_pos_files exclude_from_bom allow_soldermask_bridges)

    (pad "" np_thru_hole circle (at 0 0 165) (size 3.4 3.4) (drill 3.4) (layers "*.Cu" "*.Mask"))

    (pad "" np_thru_hole circle (at 5.5 0 165) (size 1.9 1.9) (drill 1.9) (layers "*.Cu" "*.Mask"))
    (pad "" np_thru_hole circle (at -5.5 0 165) (size 1.9 1.9) (drill 1.9) (layers "*.Cu" "*.Mask"))

    (pad "" np_thru_hole circle (at 0 -5.95 165) (size 3 3) (drill 3) (layers "*.Cu" "*.Mask"))

    (fp_line (start -1.5 -8.2) (end -2 -7.7) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 1.5 -8.2) (end -1.5 -8.2) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 2 -7.7) (end 1.5 -8.2) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 2 -7.7) (end 2 -6.78) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 2.52 -6.2) (end 7 -6.2) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 7 -6.2) (end 7 -5.6) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_arc (start 2.52 -6.2) (mid 2.139878 -6.382304) (end 2 -6.78) (layer "B.SilkS") (stroke (width 0.15) (type solid)))  # <-- Line 272

    (fp_line (start -1.5 -3.7) (end -2 -4.2) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 0.8 -3.7) (end -1.5 -3.7) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 2.5 -1.5) (end 2.5 -2.2) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 7 -1.5) (end 2.5 -1.5) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 7 -2) (end 7 -1.5) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_arc (start 0.8 -3.7) (mid 1.956518 -3.312082) (end 2.5 -2.22) (layer "B.SilkS") (stroke (width 0.15) (type solid)))

    (pad "1" smd rect (at -3.275 -5.95 165) (size 2.6 2.6) (layers "B.Cu" "B.Paste" "B.Mask") (net 0 ""))

    (pad "2" smd rect (at 8.275 -3.75 165) (size 2.6 2.6) (layers "B.Cu" "B.Paste" "B.Mask") (net 1 "outer_bottom"))

    (pad "" np_thru_hole circle (at 5 -3.75 360) (size 3 3) (drill 3) (layers "*.Cu" "*.Mask"))

  )

If I minimally change to the ergogen included choc footprint with the following, the pcb file can be read fine.

      switches:
        what: choc
        where: true
        params:
          from: "{{column_net}}"
          to: "{{colrow}}"
        adjust:
          rotate: 180

Ergogen 4.0.5, Kicad 8.0.1

ceoloide commented 4 months ago

The error you quote is shown by KiCad when you open a KiCad 5 *.kicad_pcb file containing KiCad 8 footprints that have incompatible syntax (like fp_arc which changed syntax from KiCad 5 to 8).

I updated the README.md to explicitly call out how to force a KiCad 8 file, but in short:

I won't be supporting KiCad 5 moving forward, but should you need KiCad 5 compatible footprints, there is a version and branch tagged specifically with that.