diff --git a/src/footprints/TRRS-PJ-320A-dual.js b/src/footprints/TRRS-PJ-320A-dual.js new file mode 100644 index 0000000..88c68bb --- /dev/null +++ b/src/footprints/TRRS-PJ-320A-dual.js @@ -0,0 +1,55 @@ +module.exports = { + nets: ['A', 'B', 'C', 'D'], + params: { + class: 'T', // for TRRS + reverse: true + }, + body: p => { + + const reversal = (j) => { + if (j == true) return ` + (pad 1 thru_hole oval (at 0 11.3 ${p.rot}) (size 1.6 2.2) (drill oval 0.9 1.5) (layers *.Cu *.Mask) ${p.net.A}) + (pad 2 thru_hole oval (at -4.6 10.2 ${p.rot}) (size 1.6 2.2) (drill oval 0.9 1.5) (layers *.Cu *.Mask) ${p.net.B}) + (pad 3 thru_hole oval (at -4.6 6.2 ${p.rot}) (size 1.6 2.2) (drill oval 0.9 1.5) (layers *.Cu *.Mask) ${p.net.C}) + (pad 4 thru_hole oval (at -4.6 3.2 ${p.rot}) (size 1.6 2.2) (drill oval 0.9 1.5) (layers *.Cu *.Mask) ${p.net.D}) + (fp_line (start 0.5 -2) (end -5.1 -2) (layer B.SilkS) (width 0.15)) + (fp_line (start -5.1 0) (end -5.1 -2) (layer B.SilkS) (width 0.15)) + (fp_line (start 0.5 0) (end 0.5 -2) (layer B.SilkS) (width 0.15)) + (fp_line (start -5.35 0) (end -5.35 12.1) (layer B.SilkS) (width 0.15)) + (fp_line (start 0.75 0) (end 0.75 12.1) (layer B.SilkS) (width 0.15)) + (fp_line (start 0.75 12.1) (end -5.35 12.1) (layer B.SilkS) (width 0.15)) + (fp_line (start 0.75 0) (end -5.35 0) (layer B.SilkS) (width 0.15)) + ` + else return '' + } + + return ` + + (module TRRS-PJ-320A-dual (layer F.Cu) (tedit 5970F8E5) + + ${p.at /* parametric position */} + + (fp_text reference REF** (at 0 14.2) (layer Dwgs.User) (effects (font (size 1 1) (thickness 0.15)))) + (fp_text value TRRS-PJ-320A-dual (at 0 -5.6) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15)))) + (fp_line (start 0.5 -2) (end -5.1 -2) (layer F.SilkS) (width 0.15)) + (fp_line (start -5.1 0) (end -5.1 -2) (layer F.SilkS) (width 0.15)) + (fp_line (start 0.5 0) (end 0.5 -2) (layer F.SilkS) (width 0.15)) + (fp_line (start -5.35 0) (end -5.35 12.1) (layer F.SilkS) (width 0.15)) + (fp_line (start 0.75 0) (end 0.75 12.1) (layer F.SilkS) (width 0.15)) + (fp_line (start 0.75 12.1) (end -5.35 12.1) (layer F.SilkS) (width 0.15)) + (fp_line (start 0.75 0) (end -5.35 0) (layer F.SilkS) (width 0.15)) + + (pad 1 thru_hole oval (at -4.6 11.3 ${p.rot}) (size 1.6 2.2) (drill oval 0.9 1.5) (layers *.Cu *.Mask) ${p.net.A}) + (pad 2 thru_hole oval (at 0 10.2 ${p.rot}) (size 1.6 2.2) (drill oval 0.9 1.5) (layers *.Cu *.Mask) ${p.net.B}) + (pad 3 thru_hole oval (at 0 6.2 ${p.rot}) (size 1.6 2.2) (drill oval 0.9 1.5) (layers *.Cu *.Mask) ${p.net.C}) + (pad 4 thru_hole oval (at 0 3.2 ${p.rot}) (size 1.6 2.2) (drill oval 0.9 1.5) (layers *.Cu *.Mask) ${p.net.D}) + + ${reversal(p.param.reverse)} + + (pad "" np_thru_hole circle (at -2.3 8.6) (size 1.5 1.5) (drill 1.5) (layers *.Cu *.Mask)) + (pad "" np_thru_hole circle (at -2.3 8.6) (size 1.5 1.5) (drill 1.5) (layers *.Cu *.Mask)) + (pad "" np_thru_hole circle (at -2.3 1.6) (size 1.5 1.5) (drill 1.5) (layers *.Cu *.Mask)) + ) + ` +} +} \ No newline at end of file diff --git a/src/footprints/choc_hotswap.js b/src/footprints/choc_hotswap.js index c395ee8..68afe25 100644 --- a/src/footprints/choc_hotswap.js +++ b/src/footprints/choc_hotswap.js @@ -1,10 +1,21 @@ module.exports = { nets: ['from', 'to'], params: { - class: 'S' + class: 'S', + reverse: true }, - body: p => ` + body: p => { + + const reversal = (j) => { + if (j == true) return ` + (pad "" np_thru_hole circle (at -5 -3.75) (size 3 3) (drill 3) (layers *.Cu *.Mask)) + (pad 1 smd rect (at 3.275 -5.95 ${p.rot}) (size 2.6 2.6) (layers F.Cu F.Paste F.Mask) ${p.net.from}) + (pad 2 smd rect (at -8.275 -3.75 ${p.rot}) (size 2.6 2.6) (layers F.Cu F.Paste F.Mask) ${p.net.to}) + ` + else return '' + } + return ` (module Kailh_socket_PG1350_optional (layer F.Cu) (tedit 5DD50F3F) ${p.at /* parametric position */} @@ -15,19 +26,6 @@ module.exports = { (fp_text value "" (at 0 8.25) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15)))) - ${''/* corner marks */} - (fp_line (start -2.6 -3.1) (end 2.6 -3.1) (layer Eco2.User) (width 0.15)) - (fp_line (start 2.6 -3.1) (end 2.6 -6.3) (layer Eco2.User) (width 0.15)) - (fp_line (start 2.6 -6.3) (end -2.6 -6.3) (layer Eco2.User) (width 0.15)) - (fp_line (start -2.6 -3.1) (end -2.6 -6.3) (layer Eco2.User) (width 0.15)) - (fp_line (start -7 -6) (end -7 -7) (layer F.SilkS) (width 0.15)) - (fp_line (start -7 7) (end -6 7) (layer F.SilkS) (width 0.15)) - (fp_line (start -6 -7) (end -7 -7) (layer F.SilkS) (width 0.15)) - (fp_line (start -7 7) (end -7 6) (layer F.SilkS) (width 0.15)) - (fp_line (start 7 6) (end 7 7) (layer F.SilkS) (width 0.15)) - (fp_line (start 7 -7) (end 6 -7) (layer F.SilkS) (width 0.15)) - (fp_line (start 6 7) (end 7 7) (layer F.SilkS) (width 0.15)) - (fp_line (start 7 -7) (end 7 -6) (layer F.SilkS) (width 0.15)) (fp_line (start -6.9 6.9) (end 6.9 6.9) (layer Eco2.User) (width 0.15)) (fp_line (start 6.9 -6.9) (end -6.9 -6.9) (layer Eco2.User) (width 0.15)) @@ -40,40 +38,6 @@ module.exports = { (fp_line (start 7.5 7.5) (end -7.5 7.5) (layer F.Fab) (width 0.15)) (fp_line (start -7.5 7.5) (end -7.5 -7.5) (layer F.Fab) (width 0.15)) - ${''/* hotswap marks */} - (fp_line (start 7 -1.5) (end 7 -2) (layer B.SilkS) (width 0.15)) - (fp_line (start -1.5 -8.2) (end 1.5 -8.2) (layer B.SilkS) (width 0.15)) - (fp_line (start -2 -7.7) (end -1.5 -8.2) (layer B.SilkS) (width 0.15)) - (fp_line (start -1.5 -3.7) (end 1 -3.7) (layer B.SilkS) (width 0.15)) - (fp_line (start 7 -5.6) (end 7 -6.2) (layer B.SilkS) (width 0.15)) - (fp_line (start -2 -4.2) (end -1.5 -3.7) (layer B.SilkS) (width 0.15)) - (fp_line (start 7 -6.2) (end 2.5 -6.2) (layer B.SilkS) (width 0.15)) - (fp_line (start 2 -6.7) (end 2 -7.7) (layer B.SilkS) (width 0.15)) - (fp_line (start 1.5 -8.2) (end 2 -7.7) (layer B.SilkS) (width 0.15)) - (fp_line (start 2.5 -1.5) (end 7 -1.5) (layer B.SilkS) (width 0.15)) - (fp_line (start 2.5 -2.2) (end 2.5 -1.5) (layer B.SilkS) (width 0.15)) - (fp_line (start 9.5 -2.5) (end 7 -2.5) (layer B.Fab) (width 0.12)) - (fp_line (start -2 -4.75) (end -4.5 -4.75) (layer B.Fab) (width 0.12)) - (fp_line (start -4.5 -4.75) (end -4.5 -7.25) (layer B.Fab) (width 0.12)) - (fp_line (start -4.5 -7.25) (end -2 -7.25) (layer B.Fab) (width 0.12)) - (fp_line (start 9.5 -5) (end 9.5 -2.5) (layer B.Fab) (width 0.12)) - (fp_line (start -2 -4.25) (end -2 -7.7) (layer B.Fab) (width 0.12)) - (fp_line (start 2.5 -2.2) (end 2.5 -1.5) (layer B.Fab) (width 0.15)) - (fp_line (start 2.5 -1.5) (end 7 -1.5) (layer B.Fab) (width 0.15)) - (fp_line (start 1.5 -8.2) (end 2 -7.7) (layer B.Fab) (width 0.15)) - (fp_line (start 2 -6.7) (end 2 -7.7) (layer B.Fab) (width 0.15)) - (fp_line (start 7 -6.2) (end 2.5 -6.2) (layer B.Fab) (width 0.15)) - (fp_line (start -2 -4.2) (end -1.5 -3.7) (layer B.Fab) (width 0.15)) - (fp_line (start -1.5 -3.7) (end 1 -3.7) (layer B.Fab) (width 0.15)) - (fp_line (start -2 -7.7) (end -1.5 -8.2) (layer B.Fab) (width 0.15)) - (fp_line (start -1.5 -8.2) (end 1.5 -8.2) (layer B.Fab) (width 0.15)) - (fp_line (start 7 -1.5) (end 7 -6.2) (layer B.Fab) (width 0.12)) - (fp_line (start 7 -5) (end 9.5 -5) (layer B.Fab) (width 0.12)) - (fp_arc (start 2.5 -6.7) (end 2 -6.7) (angle -90) (layer B.Fab) (width 0.15)) - (fp_arc (start 1 -2.2) (end 2.5 -2.2) (angle -90) (layer B.Fab) (width 0.15)) - (fp_arc (start 1 -2.2) (end 2.5 -2.2) (angle -90) (layer B.SilkS) (width 0.15)) - (fp_arc (start 2.5 -6.7) (end 2 -6.7) (angle -90) (layer B.SilkS) (width 0.15)) - ${'' /* holes */} (pad "" np_thru_hole circle (at -5.5 0) (size 1.7018 1.7018) (drill 1.7018) (layers *.Cu *.Mask)) (pad "" np_thru_hole circle (at 5.5 0) (size 1.7018 1.7018) (drill 1.7018) (layers *.Cu *.Mask)) @@ -81,16 +45,15 @@ module.exports = { (pad "" np_thru_hole circle (at 0 0) (size 3.429 3.429) (drill 3.429) (layers *.Cu *.Mask)) (pad "" np_thru_hole circle (at 0 -5.95) (size 3 3) (drill 3) (layers *.Cu *.Mask)) - - ${'' /* pins */} - (pad 2 thru_hole circle (at -5 3.8) (size 2.032 2.032) (drill 1.27) (layers *.Cu *.Mask)) - (pad 1 thru_hole circle (at 0 5.9) (size 2.032 2.032) (drill 1.27) (layers *.Cu *.Mask)) - ${'' /* net pads */} (pad 1 smd rect (at -3.275 -5.95 ${p.rot}) (size 2.6 2.6) (layers B.Cu B.Paste B.Mask) ${p.net.from}) (pad 2 smd rect (at 8.275 -3.75 ${p.rot}) (size 2.6 2.6) (layers B.Cu B.Paste B.Mask) ${p.net.to}) + + ${reversal(p.param.reverse)} + ) ` } +} \ No newline at end of file diff --git a/src/footprints/index.js b/src/footprints/index.js index 7f82a5f..309d2ca 100644 --- a/src/footprints/index.js +++ b/src/footprints/index.js @@ -11,5 +11,9 @@ module.exports = { rgb: require('./rgb'), jstph: require('./jstph'), pad: require('./pad'), - rotary: require('./rotary') + rotary: require('./rotary'), + // Fresh prints + promicro_front: require('./promicro_front'), + trrs: require('./TRRS-PJ-320A-dual'), + via: require('./via.js') } \ No newline at end of file diff --git a/src/footprints/promicro_front.js b/src/footprints/promicro_front.js new file mode 100644 index 0000000..a2d1b42 --- /dev/null +++ b/src/footprints/promicro_front.js @@ -0,0 +1,65 @@ +module.exports = { + static_nets: [ + 'RAW', 'GND', 'RST', 'VCC', + 'P21', 'P20', 'P19', 'P18', + 'P15', 'P14', 'P16', 'P10', + 'P1', 'P0', 'P2', 'P3', 'P4', + 'P5', 'P6', 'P7', 'P8', 'P9' + ], + params: { + class: 'C' // for Controller + }, + body: p => ` + + (module ArduinoProMicro-TopSide (layer F.Cu) (tedit 591BD5DD) + + ${p.at /* parametric position */} + (fp_text value "Arduino Pro Micro" (at 0 0) (layer F.SilkS) hide + (effects (font (size 1.27 1.524) (thickness 0.2032))) + ) + (fp_text user TX0 (at -13.9 4.6 90) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user RAW (at -13.9 -4.7 90) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user RAW (at -13.9 -4.6 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user TX0 (at -13.9 4.5 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -15.24 -8.89) (end -15.24 8.89) (layer F.SilkS) (width 0.381)) + (fp_line (start -15.24 8.89) (end 15.24 8.89) (layer F.SilkS) (width 0.381)) + (fp_line (start 15.24 8.89) (end 15.24 -8.89) (layer F.SilkS) (width 0.381)) + (fp_line (start 15.24 -8.89) (end -15.24 -8.89) (layer F.SilkS) (width 0.381)) + (fp_line (start -15.24 6.35) (end -12.7 6.35) (layer F.SilkS) (width 0.381)) + (fp_line (start -12.7 6.35) (end -12.7 8.89) (layer F.SilkS) (width 0.381)) + (pad 1 thru_hole rect (at -13.97 -7.62 ${p.rot}) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.RAW}) + (pad 2 thru_hole circle (at -11.43 -7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.GND}) + (pad 3 thru_hole circle (at -8.89 -7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.RST}) + (pad 4 thru_hole circle (at -6.35 -7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.VCC}) + (pad 5 thru_hole circle (at -3.81 -7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P21}) + (pad 6 thru_hole circle (at -1.27 -7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P20}) + (pad 7 thru_hole circle (at 1.27 -7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P19}) + (pad 8 thru_hole circle (at 3.81 -7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P18}) + (pad 9 thru_hole circle (at 6.35 -7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P15}) + (pad 10 thru_hole circle (at 8.89 -7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P14}) + (pad 11 thru_hole circle (at 11.43 -7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P16}) + (pad 12 thru_hole circle (at 13.97 -7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P10}) + + (pad 13 thru_hole circle (at -13.97 7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P1}) + (pad 14 thru_hole circle (at -11.43 7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P0}) + (pad 15 thru_hole circle (at -8.89 7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.GND}) + (pad 16 thru_hole circle (at -6.35 7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.GND}) + (pad 17 thru_hole circle (at -3.81 7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P2}) + (pad 18 thru_hole circle (at -1.27 7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P3}) + (pad 19 thru_hole circle (at 1.27 7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P4}) + (pad 20 thru_hole circle (at 3.81 7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P5}) + (pad 21 thru_hole circle (at 6.35 7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P6}) + (pad 22 thru_hole circle (at 8.89 7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P7}) + (pad 23 thru_hole circle (at 11.43 7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P8}) + (pad 24 thru_hole circle (at 13.97 7.62 0) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) ${p.net.P9}) + ) + ` +}