Compare commits

...

5 Commits

6 changed files with 150 additions and 32 deletions

View File

@ -1,10 +1,10 @@
# The eepyPad
Custom macro key pad with mechanical low-profile (Choc) switches.
Custom macro key pad with mechanical low-profile (Choc) switches.
## Repository structure
- `/layouts`: Keyboard layouts created with the [Keyboard Layout Editor](http://www.keyboard-layout-editor.com)
- `/layouts`: Keyboard layouts created with the [Keyboard Layout Editor](http://www.keyboard-layout-editor.com)
- `/ergogen`: [Ergogen](https://docs.ergogen.xyz/) files to generate outlines, cases and PCBs
## Used software

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:
@ -168,38 +168,39 @@ 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
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: Check whether these pins are correct (should C really 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...
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
led_pixel:
what: sk6812_mini_e
@ -218,14 +219,30 @@ 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
from: VCC
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

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

@ -66,7 +66,7 @@ module.exports = {
(fp_line (start 15.24 8.89) (end 15.24 -8.89) (layer F.SilkS) (width 0.15))
(fp_line (start 15.24 -8.89) (end -17.78 -8.89) (layer F.SilkS) (width 0.15))
(fp_line (start -17.78 -8.89) (end -17.78 8.89) (layer F.SilkS) (width 0.15))
(fp_line (start -17.78 8.89) (end 15.24 8.89) (layer B.SilkS) (width 0.15))
(fp_line (start 15.24 8.89) (end 15.24 -8.89) (layer B.SilkS) (width 0.15))
(fp_line (start 15.24 -8.89) (end -17.78 -8.89) (layer B.SilkS) (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 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})
)
`
}