Skip to content

Instantly share code, notes, and snippets.

@jcmkk3
Last active July 31, 2023 16:23
Show Gist options
  • Save jcmkk3/af9eaa85dfc40b6bc49dbf9d943e525e to your computer and use it in GitHub Desktop.
Save jcmkk3/af9eaa85dfc40b6bc49dbf9d943e525e to your computer and use it in GitHub Desktop.
ergogen-zenestra
units:
# Parameters
# ==========
capx: 14.5 # Keycap dimensions
capy: 14.5
kx: 15 # Key spacing dimensions
ky: 15
# Constants
# =========
$default_height: 0 # Points invisible by default unless height/width explicitly set
$default_width: 0
m3_diameter: 3.2
points.zones:
extent:
anchor.shift: [150, -180] # Fix placement on KiCAD sheet
key:
name: "{{zone.name}}_{{row}}_{{col.name}}"
padding: 100 / 2
rows:
bottom:
middle:
top:
columns:
left:
left_second.key.spread: 51.267
right_second.key.spread: 47.667
right.key.spread: 51.267
extent_center.anchor:
aggregate.parts:
- extent_middle_left
- extent_middle_right
mount_top_left.anchor:
ref: extent_top_left
shift: [3.6, -3.6]
mount_top_left_second.anchor:
ref: extent_top_left_second
shift: [0, -3.6]
mount_top_right_second.anchor:
ref: extent_top_right_second
shift: [0, -3.6]
mount_top_right.anchor:
ref: extent_top_right
shift: [-3.6, -3.6]
mount_middle_left.anchor:
ref: extent_middle_left
shift: [3.6, 0]
mount_middle_right.anchor:
ref: extent_middle_right
shift: [-3.6, 0]
mount_bottom_left.anchor:
ref: extent_bottom_left
shift: [3.6, 3.6]
mount_bottom_left_second.anchor:
ref: extent_bottom_left_second
shift: [0, 3.6]
mount_bottom_right_second.anchor:
ref: extent_bottom_right_second
shift: [0, 3.6]
mount_bottom_right.anchor:
ref: extent_bottom_right
shift: [-3.6, 3.6]
matrix:
anchor:
- ref: extent_bottom_left
shift: [-0.5kx, 0.5ky] # Alight to bottom left
- shift: [0.75kx, 35]
mirror:
ref: matrix_inner_home
shift: [0.5kx, 0.5ky]
key:
width: capx
height: capy
spread: kx
padding: ky
tags:
- keys
rows:
bottom:
home:
shift: [0.25kx, 0]
top:
shift: [0.25kx, 0]
columns:
pinky:
rows.bottom.skip: true
ring:
middle:
index:
inner:
rows.top.skip: true
thumb:
anchor:
ref: matrix_index_bottom
shift: [-0.5kx, -1.25ky]
mirror.$extends: points.zones.matrix.mirror
key.$extends: points.zones.matrix.key
columns:
tucky:
reachy:
key:
spread: 0.25kx / 2 + kx
tags:
- 125keys
outlines:
pcb_edge_cuts:
- what: polygon
points:
- extent_top_left
- extent_top_right
- extent_bottom_right
- extent_bottom_left
fillet: 3.5
mounting_holes:
- what: circle
where: /^mount_.*/
radius: m3_diameter / 2
pcb_mounting_holes:
- pcb_edge_cuts
- ^mounting_holes
_keepout_inset_pcb_edge_cuts:
- name: pcb_edge_cuts
expand: -0.01
_keepout_inner_margin:
- name: pcb_edge_cuts
expand: -3.6
_keepout_outer_margin:
- name: pcb_edge_cuts
expand: 5
- -pcb_edge_cuts
_keepout_mounting_rectangles:
- what: rectangle
where: /^mount_.*/
size: [7.2, 7.2]
_keepout_mounting_circles:
- what: circle
where: /^mount_.*/
radius: 3.6
pcb_keepout:
- _keepout_mounting_rectangles
- -_keepout_inner_margin
- _keepout_mounting_circles
- name: _keepout_outer_margin
fillet: 2
- ~_keepout_inset_pcb_edge_cuts
- -mounting_holes
- what: circle
where: extent_center
radius: 6.25 / 2
switches:
- what: rectangle
size: 14
where:
- keys
- 125keys
fillet: 0.5
keycaps:
- what: rectangle
size: [capx, capy]
where: keys
- what: rectangle
size: [1.25capx, capy]
where: 125keys
demo_keycaps:
- pcb_mounting_holes
- ^pcb_keepout
- ^keycaps
pcbs:
zenestra:
outlines:
main:
outline: pcb_edge_cuts
keepout:
outline: pcb_keepout
layer: B.CrtYd
footprints:
- what: choc
where:
- keys
- 125keys
params:
from: ""
to: ""
- what: via
where: /^mount_.*/
params.net: ""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment