diff --git a/ergogen/config.yaml b/ergogen/config.yaml index 40b018a..1213b07 100644 --- a/ergogen/config.yaml +++ b/ergogen/config.yaml @@ -248,7 +248,7 @@ pcbs: reset_button: # TODO: Check if the footprint fits to the buttons we ordered - what: button + what: button_6x6 where: ref: pad_four_five shift: [ 0, 15 ] @@ -257,4 +257,27 @@ pcbs: from: GND to: RST -# TODO: Mounting holes? + # Mounting holes + mounting_hole_top_left: + what: mountinghole_m2 + where: + ref: pad_one_five + shift: [ -8, 15 ] + + mounting_hole_top_right: + what: mountinghole_m2 + where: + ref: pad_three_five + shift: [ 8, 15 ] + + mounting_hole_bottom_left: + what: mountinghole_m2 + where: + ref: pad_one_one + shift: [ -10.25, 0 ] + + mounting_hole_bottom_right: + what: mountinghole_m2 + where: + ref: pad_five_one + shift: [ 10, -6 ] diff --git a/ergogen/footprints/button_6x6.js b/ergogen/footprints/button_6x6.js new file mode 100644 index 0000000..034877d --- /dev/null +++ b/ergogen/footprints/button_6x6.js @@ -0,0 +1,48 @@ +// Tactile button 6x6mm +// Source: https://kicad.github.io/footprints/Button_Switch_SMD +module.exports = { + params: { + designator: 'B', + side: 'F', + from: undefined, + to: undefined + }, + body: p => ` + (module SW_Push_1P1T_NO_6x6mm_H9.5mm (layer F.Cu) (tedit 5CA1CA7F) + (descr "tactile push button, 6x6mm e.g. PTS645xx series, height=9.5mm") + (tags "tact sw push 6mm smd") + (attr smd) + + ${p.at /* parametric position */} + + ${'' /* footprint reference */} + (fp_text reference "${p.ref}" (at 0 -4.05) (layer F.SilkS) ${p.ref_hide} (effects (font (size 1 1) (thickness 0.15)))) + (fp_text value "" (at 0 4.15) (layer F.SilkS) hide (effects (font (size 1 1) (thickness 0.15)))) + + ${'' /* outline */} + (fp_line (start -3 -3 ) (end -3 3 ) (layer ${p.side}.Fab) (width 0.1)) + (fp_line (start -3 3 ) (end 3 3 ) (layer ${p.side}.Fab) (width 0.1)) + (fp_line (start 3 3 ) (end 3 -3 ) (layer ${p.side}.Fab) (width 0.1)) + (fp_line (start 3 -3 ) (end -3 -3 ) (layer ${p.side}.Fab) (width 0.1)) + (fp_line (start 5 3.25) (end 5 -3.25) (layer ${p.side}.CrtYd) (width 0.05)) + (fp_line (start -5 -3.25) (end -5 3.25) (layer ${p.side}.CrtYd) (width 0.05)) + (fp_line (start -5 3.25) (end 5 3.25) (layer ${p.side}.CrtYd) (width 0.05)) + (fp_line (start -5 -3.25) (end 5 -3.25) (layer ${p.side}.CrtYd) (width 0.05)) + (fp_line (start 3.23 -3.23) (end 3.23 -3.2 ) (layer ${p.side}.SilkS) (width 0.12)) + (fp_line (start 3.23 3.23) (end 3.23 3.2 ) (layer ${p.side}.SilkS) (width 0.12)) + (fp_line (start -3.23 3.23) (end -3.23 3.2 ) (layer ${p.side}.SilkS) (width 0.12)) + (fp_line (start -3.23 -3.2 ) (end -3.23 -3.23) (layer ${p.side}.SilkS) (width 0.12)) + (fp_line (start 3.23 -1.3 ) (end 3.23 1.3 ) (layer ${p.side}.SilkS) (width 0.12)) + (fp_line (start -3.23 -3.23) (end 3.23 -3.23) (layer ${p.side}.SilkS) (width 0.12)) + (fp_line (start -3.23 -1.3 ) (end -3.23 1.3 ) (layer ${p.side}.SilkS) (width 0.12)) + (fp_line (start -3.23 3.23) (end 3.23 3.23) (layer ${p.side}.SilkS) (width 0.12)) + (fp_circle (center 0 0) (end 1.75 -0.05) (layer ${p.side}.Fab) (width 0.1)) + + ${'' /* pins */} + (pad 1 smd rect (at -3.975 -2.25 ${p.r}) (size 1.55 1.3) (layers ${p.side}.Cu ${p.side}.Paste ${p.side}.Mask) ${p.from}) + (pad 1 smd rect (at 3.975 -2.25 ${p.r}) (size 1.55 1.3) (layers ${p.side}.Cu ${p.side}.Paste ${p.side}.Mask) ${p.from}) + (pad 2 smd rect (at -3.975 2.25 ${p.r}) (size 1.55 1.3) (layers ${p.side}.Cu ${p.side}.Paste ${p.side}.Mask) ${p.to}) + (pad 2 smd rect (at 3.975 2.25 ${p.r}) (size 1.55 1.3) (layers ${p.side}.Cu ${p.side}.Paste ${p.side}.Mask) ${p.to}) + ) + ` +} diff --git a/ergogen/footprints/mountinghole_m2.js b/ergogen/footprints/mountinghole_m2.js new file mode 100644 index 0000000..b11ed32 --- /dev/null +++ b/ergogen/footprints/mountinghole_m2.js @@ -0,0 +1,24 @@ +// MountingHole_2.2mm_M2 +// Source: https://kicad.github.io/footprints/MountingHole +module.exports = { + nets: { + net: undefined + }, + params: { + class: 'HOLE', + }, + body: p => ` + (module MountingHole_2.2mm_M2 (layer F.Cu) (tedit 56D1B4CB) + ${p.at /* parametric position */} + + (fp_text reference "${p.ref}" (at 0 -3.2) (layer F.SilkS) ${p.ref_hide} + (effects (font (size 1 1) (thickness 0.15))) + ) + + (fp_circle (center 0 0) (end 2.2 0) (layer Cmts.User) (width 0.15)) + + (fp_circle (center 0 0) (end 2.45 0) (layer F.CrtYd) (width 0.05)) + (pad 1 np_thru_hole circle (at 0 0) (size 2.2 2.2) (drill 2.2) (layers *.Cu *.Mask)) + ) + ` +}