PCB: Modify rotary encoder footprint to remove the leg mounts; assign pins

This commit is contained in:
Lexi / Zoe 2024-02-29 18:30:31 +01:00
parent b621ff952c
commit 6cde20c085
Signed by: binaryDiv
GPG Key ID: F8D4956E224DA232
2 changed files with 74 additions and 6 deletions

View File

@ -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

View File

@ -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})
)
`
}