Compare commits
5 Commits
09ec2aaf8c
...
532f2cecd9
| Author | SHA1 | Date |
|---|---|---|
|
|
532f2cecd9 | |
|
|
6cde20c085 | |
|
|
b621ff952c | |
|
|
742be3a927 | |
|
|
ccff5ab3d9 |
|
|
@ -1,10 +1,10 @@
|
||||||
# The eepyPad
|
# The eepyPad
|
||||||
|
|
||||||
Custom macro key pad with mechanical low-profile (Choc) switches.
|
Custom macro key pad with mechanical low-profile (Choc) switches.
|
||||||
|
|
||||||
## Repository structure
|
## 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
|
- `/ergogen`: [Ergogen](https://docs.ergogen.xyz/) files to generate outlines, cases and PCBs
|
||||||
|
|
||||||
## Used software
|
## Used software
|
||||||
|
|
|
||||||
|
|
@ -36,17 +36,17 @@ points:
|
||||||
# Key rows (from bottom to top)
|
# Key rows (from bottom to top)
|
||||||
rows:
|
rows:
|
||||||
one:
|
one:
|
||||||
row_net: P9
|
row_net: P5
|
||||||
two:
|
two:
|
||||||
row_net: P8
|
row_net: P6
|
||||||
tags: [ is_key, flip_led ]
|
tags: [ is_key, flip_led ]
|
||||||
three:
|
three:
|
||||||
row_net: P7
|
row_net: P7
|
||||||
four:
|
four:
|
||||||
row_net: P6
|
row_net: P8
|
||||||
tags: [ is_key, flip_led ]
|
tags: [ is_key, flip_led ]
|
||||||
five:
|
five:
|
||||||
row_net: P5
|
row_net: P9
|
||||||
|
|
||||||
# Key columns (from left to right)
|
# Key columns (from left to right)
|
||||||
columns:
|
columns:
|
||||||
|
|
@ -168,38 +168,39 @@ pcbs:
|
||||||
params:
|
params:
|
||||||
keycaps: true
|
keycaps: true
|
||||||
hotswap: true
|
hotswap: true
|
||||||
from: "{{column_net}}"
|
from: "{{colrow}}"
|
||||||
to: "{{colrow}}"
|
to: "{{row_net}}"
|
||||||
|
|
||||||
# TODO: Check if the position of the rotary encoder fits with the controller board
|
# TODO: Check if the position of the rotary encoder fits with the controller board
|
||||||
rotary_encoder:
|
rotary_encoder:
|
||||||
what: rotary
|
what: rotary_modified
|
||||||
where: is_rotary_encoder
|
where: is_rotary_encoder
|
||||||
adjust.rotate: 90
|
adjust.rotate: 90
|
||||||
params:
|
params:
|
||||||
from: "{{column_net}}"
|
from: "{{colrow}}"
|
||||||
to: "{{colrow}}"
|
to: "{{row_net}}"
|
||||||
# TODO: Set these to GPIO pins
|
# TODO: Check whether these pins are correct (should C really be GND?)
|
||||||
A: "rotary_encoder_a"
|
A: P3
|
||||||
B: "rotary_encoder_b"
|
B: P4
|
||||||
C: "rotary_encoder_c"
|
C: GND
|
||||||
|
|
||||||
diode:
|
diode:
|
||||||
what: diode_smd
|
what: diode_smd
|
||||||
where: is_key
|
where: is_key
|
||||||
# TODO: Is this a good position? Might be a bit too close to the hotswap sockets...
|
|
||||||
adjust:
|
adjust:
|
||||||
shift: [ -8.28, -8.5 ]
|
shift: [ 5, -2.5 ]
|
||||||
rotate: 90
|
rotate: 180
|
||||||
params:
|
params:
|
||||||
side: B
|
side: B
|
||||||
from: "{{colrow}}"
|
from: "{{colrow}}"
|
||||||
to: "{{row_net}}"
|
to: "{{column_net}}"
|
||||||
|
|
||||||
diode_rotary_encoder:
|
diode_rotary_encoder:
|
||||||
$extends: pcbs.eepypad.footprints.diode
|
$extends: pcbs.eepypad.footprints.diode
|
||||||
where: is_rotary_encoder
|
where: is_rotary_encoder
|
||||||
adjust.shift: [ 0, 0 ]
|
adjust:
|
||||||
|
shift: [ 0, 0 ]
|
||||||
|
rotate: 90
|
||||||
|
|
||||||
led_pixel:
|
led_pixel:
|
||||||
what: sk6812_mini_e
|
what: sk6812_mini_e
|
||||||
|
|
@ -218,14 +219,30 @@ pcbs:
|
||||||
where: [ [ is_key, flip_led ] ]
|
where: [ [ is_key, flip_led ] ]
|
||||||
adjust.rotate: 180
|
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:
|
controller:
|
||||||
what: promicro_modified
|
what: promicro_modified
|
||||||
where:
|
where:
|
||||||
ref: pad_five_five
|
ref: pad_five_five
|
||||||
rotate: -90
|
rotate: -90
|
||||||
shift: [ 0, 2 ]
|
shift: [ 0, 3 ]
|
||||||
params:
|
params:
|
||||||
orientation: down
|
orientation: down
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
`
|
||||||
|
}
|
||||||
|
|
@ -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 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))))
|
(fp_text value "" (at 0 0) (layer F.SilkS) hide (effects (font (size 1.27 1.27) (thickness 0.15))))
|
||||||
|
|
||||||
${'' /* corner marks */}
|
${'' /* switch marks */}
|
||||||
(fp_line (start -7 -6) (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 -6 7) (layer F.SilkS) (width 0.15))
|
(fp_line (start 7 -7) (end 7 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 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 7) (end -7 -7) (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))
|
|
||||||
|
|
||||||
${'' /* LED hole marks */}
|
${'' /* LED hole marks */}
|
||||||
(fp_line (start -2.6 3.1) (end 2.6 3.1) (layer Dwgs.User) (width 0.15))
|
(fp_line (start -2.6 3.1) (end 2.6 3.1) (layer Dwgs.User) (width 0.15))
|
||||||
|
|
|
||||||
|
|
@ -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 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 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 -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 -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 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))
|
(fp_line (start 15.24 -8.89) (end -17.78 -8.89) (layer B.SilkS) (width 0.15))
|
||||||
|
|
|
||||||
|
|
@ -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})
|
||||||
|
)
|
||||||
|
`
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue