Compare commits

...

1 Commits
main ... _WIP

Author SHA1 Message Date
Lexi / Zoe cceb4689ef
[WIP 2] 2024-02-28 22:33:06 +01:00
4 changed files with 157 additions and 29 deletions

View File

@ -36,17 +36,17 @@ points:
# Key rows (from bottom to top)
rows:
one:
row_net: P9
row_net: P5
two:
row_net: P8
row_net: P6
tags: [ is_key, flip_led ]
three:
row_net: P7
four:
row_net: P6
row_net: P8
tags: [ is_key, flip_led ]
five:
row_net: P5
row_net: P9
# Key columns (from left to right)
columns:
@ -101,6 +101,7 @@ outlines:
# Rotary encoder with knob (2cm)
# TODO: Not sure about the size and position yet
# TODO remove the holding pad thingies because they're too close to the MCU pins
rotary_encoder:
- what: rectangle
operation: stack
@ -121,6 +122,7 @@ outlines:
- what: rectangle
where: pad_three_one
size: [ 100, 100 ]
# TODO move switches a bit to the top (more margin at the bottom to fit the diodes)
adjust.shift: [ 0, 50 - 0.5cx ]
fillet: 4
@ -168,39 +170,44 @@ pcbs:
params:
keycaps: true
hotswap: true
from: "{{column_net}}"
to: "{{colrow}}"
from: "{{colrow}}"
to: "{{row_net}}"
# TODO: Check if the position of the rotary encoder fits with the controller board
# -> probably remove the mounting pads at the sides?
rotary_encoder:
what: rotary
what: rotary_modified
where: is_rotary_encoder
adjust.rotate: 90
params:
from: "{{column_net}}"
to: "{{colrow}}"
# TODO: Set these to GPIO pins
A: "rotary_encoder_a"
B: "rotary_encoder_b"
C: "rotary_encoder_c"
from: "{{colrow}}"
to: "{{row_net}}"
# TODO: good GPIO pins? - check whether C or B should be GND
A: P3
B: P4
C: GND
diode:
what: diode_smd
where: is_key
# TODO: Is this a good position? Might be a bit too close to the hotswap sockets...
# -> rotate and move a bit
adjust:
shift: [ -8.28, -8.5 ]
rotate: 90
shift: [ 5, -2.5 ]
rotate: 180
params:
side: B
from: "{{colrow}}"
to: "{{row_net}}"
to: "{{column_net}}"
diode_rotary_encoder:
$extends: pcbs.eepypad.footprints.diode
where: is_rotary_encoder
adjust.shift: [ 0, 0 ]
adjust:
shift: [ 0, 0 ]
rotate: 90
# TODO: the neopixels need 5V, VCC might be only 3.3V - check this
led_pixel:
what: sk6812_mini_e
# Place unrotated LEDs in all rows without the flip_led tag
@ -209,6 +216,7 @@ pcbs:
adjust.shift: [ 0, 4.7 ]
params:
side: B
VCC: 5V
din: "{{led_din_net}}"
dout: "led_dout_{{colrow}}"
@ -218,16 +226,35 @@ pcbs:
where: [ [ is_key, flip_led ] ]
adjust.rotate: 180
# TODO: Decoupling capacitors for the LEDs?
led_capacitor:
what: cap_0805
where: [ [ is_key, -flip_led ] ]
adjust:
shift: [ -6, 4.5 ]
rotate: 90
params:
side: B
# TODO: the neopixels need 5V, VCC might be only 3.3V - check this
from: 5V
to: GND
led_capacitor_flipped:
$extends: pcbs.eepypad.footprints.led_capacitor
where: [ [ is_key, flip_led ] ]
adjust:
shift: [ 6, 4.9 ]
rotate: 270
controller:
what: promicro_modified
where:
ref: pad_five_five
rotate: -90
shift: [ 0, 2 ]
shift: [ 0, 3 ]
params:
orientation: down
# TODO check if this is correct!
RAW: 5V
reset_button:
# TODO: Check if the footprint fits to the buttons we ordered
@ -240,4 +267,4 @@ pcbs:
from: GND
to: RST
# TODO: Mounting holes?
# TODO: Mounting holes!

View File

@ -0,0 +1,37 @@
module.exports = {
params: {
designator: 'C',
side: 'F',
from: undefined,
to: undefined
},
body: p => `
(module C_0805_2012Metric (layer ${p.side}.Cu) (tedit 5F68FEEE)
${p.at /* parametric position */}
${'' /* footprint reference */}
(fp_text reference "${p.ref}" (at 0 0) (layer ${p.side}.SilkS) ${p.ref_hide} (effects (font (size 1.27 1.27) (thickness 0.15))))
(fp_text value "" (at 0 0) (layer ${p.side}.SilkS) hide (effects (font (size 1.27 1.27) (thickness 0.15))))
${''/* capacitor symbols */}
(fp_line (start -1 0.625) (end -1 -0.625) (layer ${p.side}.Fab) (width 0.1))
(fp_line (start -1 -0.625) (end 1 -0.625) (layer ${p.side}.Fab) (width 0.1))
(fp_line (start 1 -0.625) (end 1 0.625) (layer ${p.side}.Fab) (width 0.1))
(fp_line (start 1 0.625) (end -1 0.625) (layer ${p.side}.Fab) (width 0.1))
(fp_line (start -0.261252 -0.735) (end 0.261252 -0.735) (layer ${p.side}.SilkS) (width 0.12))
(fp_line (start -0.261252 0.735) (end 0.261252 0.735) (layer ${p.side}.SilkS) (width 0.12))
(fp_line (start -1.7 0.98) (end -1.7 -0.98) (layer ${p.side}.CrtYd) (width 0.05))
(fp_line (start -1.7 -0.98) (end 1.7 -0.98) (layer ${p.side}.CrtYd) (width 0.05))
(fp_line (start 1.7 -0.98) (end 1.7 0.98) (layer ${p.side}.CrtYd) (width 0.05))
(fp_line (start 1.7 0.98) (end -1.7 0.98) (layer ${p.side}.CrtYd) (width 0.05))
${''/* SMD pads */}
(pad 1 smd roundrect (at -0.95 0 ${p.r}) (size 1 1.45) (layers ${p.side}.Cu ${p.side}.Mask ${p.side}.Paste)
(roundrect_rratio 0.25) ${p.to}
)
(pad 2 smd roundrect (at 0.95 0 ${p.r}) (size 1 1.45) (layers ${p.side}.Cu ${p.side}.Mask ${p.side}.Paste)
(roundrect_rratio 0.25) ${p.from}
)
)
`
}

View File

@ -33,15 +33,11 @@ module.exports = {
(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))))
${'' /* corner marks */}
(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))
${'' /* switch marks */}
(fp_line (start -7 -7) (end 7 -7) (layer F.SilkS) (width 0.15))
(fp_line (start 7 -7) (end 7 7) (layer F.SilkS) (width 0.15))
(fp_line (start 7 7) (end -7 7) (layer F.SilkS) (width 0.15))
(fp_line (start -7 7) (end -7 -7) (layer F.SilkS) (width 0.15))
${'' /* LED hole marks */}
(fp_line (start -2.6 3.1) (end 2.6 3.1) (layer Dwgs.User) (width 0.15))

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 2 (for rotary, should be GND) -- TODO WAIT why does it say here that B should be GND and not C?
// C: corresponds to pin 3 (for rotary)
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})
)
`
}