diff --git a/ergogen/config.yaml b/ergogen/config.yaml index c24fe02..40b018a 100644 --- a/ergogen/config.yaml +++ b/ergogen/config.yaml @@ -173,16 +173,16 @@ pcbs: # TODO: Check if the position of the rotary encoder fits with the controller board rotary_encoder: - what: rotary + what: rotary_modified where: is_rotary_encoder adjust.rotate: 90 params: - # TODO: Set these to GPIO pins - A: "rotary_encoder_a" - B: "rotary_encoder_b" - C: "rotary_encoder_c" from: "{{colrow}}" to: "{{row_net}}" + # TODO: Check whether these pins are correct (should C really be GND?) + A: P3 + B: P4 + C: GND diode: what: diode_smd @@ -242,7 +242,7 @@ pcbs: where: ref: pad_five_five rotate: -90 - shift: [ 0, 2 ] + shift: [ 0, 3 ] params: orientation: down diff --git a/ergogen/footprints/rotary_modified.js b/ergogen/footprints/rotary_modified.js new file mode 100644 index 0000000..41c7a21 --- /dev/null +++ b/ergogen/footprints/rotary_modified.js @@ -0,0 +1,68 @@ +// Modified version of rotary.js, without the mounting legs +// -------------------------------------------------------- +// EC12 rotary encoder +// +// Nets +// from: corresponds to switch pin 1 (for button presses) +// to: corresponds to switch pin 2 (for button presses) +// A: corresponds to pin 1 (for rotary) +// B: corresponds to pin 3 (for rotary) +// C: corresponds to pin 2 (for rotary, should be GND) + +module.exports = { + params: { + designator: 'ROT', + from: undefined, + to: undefined, + A: undefined, + B: undefined, + C: undefined + }, + body: p => ` + (module rotary_encoder (layer F.Cu) (tedit 603326DE) + + ${p.at /* parametric position */} + + ${'' /* footprint reference */} + (fp_text reference "${p.ref}" (at 0 0.5) (layer F.SilkS) + ${p.ref_hide} (effects (font (size 1 1) (thickness 0.15)))) + (fp_text value "" (at 0 8.89) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15)))) + + ${''/* component outline */} + (fp_line (start -0.62 -0.04) (end 0.38 -0.04) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.12 -0.54) (end -0.12 0.46) (layer F.SilkS) (width 0.12)) + (fp_line (start 5.98 3.26) (end 5.98 5.86) (layer F.SilkS) (width 0.12)) + (fp_line (start 5.98 -1.34) (end 5.98 1.26) (layer F.SilkS) (width 0.12)) + (fp_line (start 5.98 -5.94) (end 5.98 -3.34) (layer F.SilkS) (width 0.12)) + (fp_line (start -3.12 -0.04) (end 2.88 -0.04) (layer F.Fab) (width 0.12)) + (fp_line (start -0.12 -3.04) (end -0.12 2.96) (layer F.Fab) (width 0.12)) + (fp_line (start -7.32 -4.14) (end -7.62 -3.84) (layer F.SilkS) (width 0.12)) + (fp_line (start -7.92 -4.14) (end -7.32 -4.14) (layer F.SilkS) (width 0.12)) + (fp_line (start -7.62 -3.84) (end -7.92 -4.14) (layer F.SilkS) (width 0.12)) + (fp_line (start -6.22 -5.84) (end -6.22 5.86) (layer F.SilkS) (width 0.12)) + (fp_line (start -2.12 -5.84) (end -6.22 -5.84) (layer F.SilkS) (width 0.12)) + (fp_line (start -2.12 5.86) (end -6.22 5.86) (layer F.SilkS) (width 0.12)) + (fp_line (start 5.98 5.86) (end 1.88 5.86) (layer F.SilkS) (width 0.12)) + (fp_line (start 1.88 -5.94) (end 5.98 -5.94) (layer F.SilkS) (width 0.12)) + (fp_line (start -6.12 -4.74) (end -5.12 -5.84) (layer F.Fab) (width 0.12)) + (fp_line (start -6.12 5.76) (end -6.12 -4.74) (layer F.Fab) (width 0.12)) + (fp_line (start 5.88 5.76) (end -6.12 5.76) (layer F.Fab) (width 0.12)) + (fp_line (start 5.88 -5.84) (end 5.88 5.76) (layer F.Fab) (width 0.12)) + (fp_line (start -5.12 -5.84) (end 5.88 -5.84) (layer F.Fab) (width 0.12)) + (fp_line (start -8.87 -6.89) (end 7.88 -6.89) (layer F.CrtYd) (width 0.05)) + (fp_line (start -8.87 -6.89) (end -8.87 6.81) (layer F.CrtYd) (width 0.05)) + (fp_line (start 7.88 6.81) (end 7.88 -6.89) (layer F.CrtYd) (width 0.05)) + (fp_line (start 7.88 6.81) (end -8.87 6.81) (layer F.CrtYd) (width 0.05)) + (fp_circle (center -0.12 -0.04) (end 2.88 -0.04) (layer F.SilkS) (width 0.12)) + (fp_circle (center -0.12 -0.04) (end 2.88 -0.04) (layer F.Fab) (width 0.12)) + + ${''/* pin names */} + (pad A thru_hole rect (at -7.62 -2.54 ${p.r}) (size 2 2) (drill 1) (layers *.Cu *.Mask) ${p.A}) + (pad C thru_hole circle (at -7.62 -0.04) (size 2 2) (drill 1) (layers *.Cu *.Mask) ${p.C}) + (pad B thru_hole circle (at -7.62 2.46) (size 2 2) (drill 1) (layers *.Cu *.Mask) ${p.B}) + (pad 1 thru_hole circle (at 6.88 -2.54) (size 1.5 1.5) (drill 1) (layers *.Cu *.Mask) ${p.from}) + (pad 2 thru_hole circle (at 6.88 2.46) (size 1.5 1.5) (drill 1) (layers *.Cu *.Mask) ${p.to}) + ) + ` +}