From 2f6b9ab52cf4cdda91ffdee286d16ab798964f90 Mon Sep 17 00:00:00 2001 From: tapioki <74p1oki@gmail.com> Date: Tue, 6 Jul 2021 20:09:50 +0200 Subject: [PATCH] Added new footprints for OLEDs, jumpers, and Omron B3F-4055 switches --- src/footprints/index.js | 3 +++ src/footprints/jumper.js | 21 +++++++++++++++++++++ src/footprints/oled.js | 26 ++++++++++++++++++++++++++ src/footprints/omron.js | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 83 insertions(+) create mode 100644 src/footprints/jumper.js create mode 100644 src/footprints/oled.js create mode 100644 src/footprints/omron.js diff --git a/src/footprints/index.js b/src/footprints/index.js index 617d27f..46bfe35 100644 --- a/src/footprints/index.js +++ b/src/footprints/index.js @@ -5,7 +5,10 @@ module.exports = { chocmini: require('./chocmini'), diode: require('./diode'), jstph: require('./jstph'), + jumper: require('./jumper'), mx: require('./mx'), + oled: require('./oled'), + omron: required('./omron'), pad: require('./pad'), promicro: require('./promicro'), rgb: require('./rgb'), diff --git a/src/footprints/jumper.js b/src/footprints/jumper.js new file mode 100644 index 0000000..0c9016a --- /dev/null +++ b/src/footprints/jumper.js @@ -0,0 +1,21 @@ +module.exports = { + nets: ['from', 'to' ], + params: { + class: 'J', + side: 'F' + }, + body: p => ` + (module lib:Jumper (layer F.Cu) (tedit 5E1ADAC2) + ${p.at /* parametric position */} + + ${'' /* footprint reference */} + (fp_text reference "${p.ref}" (at 0 0) (layer F.SilkS) ${p.ref_hide} (effects (font (size 1.27 1.27) (thickness 0.15)))) + (fp_text value Jumper (at 0 -7.3) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15)))) + + ${'' /* pins */} + (pad 1 smd rect (at -0.50038 0 ${p.rot}) (size 0.635 1.143) (layers ${p.param.side}.Cu ${p.param.side}.Paste ${p.param.side}.Mask) + (clearance 0.1905) ${p.net.from}) + (pad 2 smd rect (at 0.50038 0 ${p.rot}) (size 0.635 1.143) (layers ${p.param.side}.Cu ${p.param.side}.Paste ${p.param.side}.Mask) + (clearance 0.1905) ${p.net.to})) + ` +} \ No newline at end of file diff --git a/src/footprints/oled.js b/src/footprints/oled.js new file mode 100644 index 0000000..d4f46d8 --- /dev/null +++ b/src/footprints/oled.js @@ -0,0 +1,26 @@ +module.exports = { + static_nets: ['SDA', 'SCL', 'VCC', 'GND' ], + params: { + class: 'S', + side: 'F' + }, + body: p => ` + (module lib:OLED_headers (layer F.Cu) (tedit 5E1ADAC2) + ${p.at /* parametric position */} + + ${'' /* footprint reference */} + (fp_text reference "${p.ref}" (at 0 0) (layer F.SilkS) ${p.ref_hide} (effects (font (size 1.27 1.27) (thickness 0.15)))) + (fp_text value OLED (at 0 -7.3) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15)))) + + ${'' /* pins */} + (pad 4 thru_hole oval (at 1.6 2.18 ${p.rot+270}) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + ${p.net.SDA}) + (pad 3 thru_hole oval (at 1.6 4.72 ${p.rot+270}) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + ${p.net.SCL}) + (pad 2 thru_hole oval (at 1.6 7.26 ${p.rot+270}) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + ${p.net.VCC}) + (pad 1 thru_hole rect (at 1.6 9.8 ${p.rot+270}) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + ${p.net.GND}) + ) + ` +} \ No newline at end of file diff --git a/src/footprints/omron.js b/src/footprints/omron.js new file mode 100644 index 0000000..8d983ad --- /dev/null +++ b/src/footprints/omron.js @@ -0,0 +1,33 @@ +module.exports = { + nets: ['from', 'to'], + params: { + class: 'B' // for Button, + }, + body: p => ` + + (module OMRON_B3F-4055 (layer F.Cu) (tstamp 5BF2CC94) + + ${p.at /* parametric position */} + ${'' /* footprint reference */} + (fp_text reference "${p.ref}" (at 0 0) (layer F.SilkS) ${p.ref_hide} (effects (font (size 1.27 1.27) (thickness 0.15)))) + (fp_text value "" (at 0 0) (layer F.SilkS) hide (effects (font (size 1.27 1.27) (thickness 0.15)))) + + ${'' /* stabilizers */} + (pad "" np_thru_hole circle (at 0 -4.5) (size 1.8 1.8) (drill 1.8) (layers *.Cu *.Mask)) + (pad "" np_thru_hole circle (at 0 4.5) (size 1.8 1.8) (drill 1.8) (layers *.Cu *.Mask)) + + ${'' /* switch marks */} + (fp_line (start -6 -6) (end 6 -6) (layer Dwgs.User) (width 0.15)) + (fp_line (start 6 -6) (end 6 6) (layer Dwgs.User) (width 0.15)) + (fp_line (start 6 6) (end -6 6) (layer Dwgs.User) (width 0.15)) + (fp_line (start -6 6) (end -6 -6) (layer Dwgs.User) (width 0.15)) + + ${'' /* pins */} + (pad 1 np_thru_hole circle (at 6.25 -2.5) (size 1.2 1.2) (drill 1.2) (layers *.Cu *.Mask) ${p.net.from}) + (pad 2 np_thru_hole circle (at -6.25 -2.5) (size 1.2 1.2) (drill 1.2) (layers *.Cu *.Mask) ${p.net.from}) + (pad 3 np_thru_hole circle (at 6.25 2.5) (size 1.2 1.2) (drill 1.2) (layers *.Cu *.Mask) ${p.net.to}) + (pad 4 np_thru_hole circle (at -6.25 2.5 ) (size 1.2 1.2) (drill 1.2) (layers *.Cu *.Mask) ${p.net.to}) + ) + + ` +} \ No newline at end of file