Files

632 lines
15 KiB
YAML
Raw Permalink Normal View History

2026-05-06 23:45:52 +02:00
units:
# Proxy Spacing Variables
kx: U
ky: U
# Padding Variables
px: kx + 4
py: ky + 4
screwSize: 1
2026-05-19 21:26:47 +02:00
screwStandoffInner: 1.5
screwStandoffOuter: 2.5
2026-05-06 23:45:52 +02:00
points:
zones:
matrix:
anchor:
shift: [100, -100]
columns:
outer:
key:
2026-05-19 13:44:32 +02:00
column_net: P017
2026-05-06 23:45:52 +02:00
pinky:
key.stagger: 0
key:
2026-05-19 13:44:32 +02:00
column_net: P020
2026-05-06 23:45:52 +02:00
ring:
key:
stagger: 5
2026-05-19 13:44:32 +02:00
column_net: P022
2026-05-06 23:45:52 +02:00
middle:
key:
stagger: 8
2026-05-19 13:44:32 +02:00
column_net: P024
2026-05-06 23:45:52 +02:00
index:
key:
stagger: -5
2026-05-19 13:44:32 +02:00
column_net: P100
2026-05-06 23:45:52 +02:00
inner:
key:
stagger: -3
2026-05-19 13:44:32 +02:00
column_net: P011
2026-05-06 23:45:52 +02:00
rows:
bottom:
2026-05-19 13:44:32 +02:00
row_net: P010
2026-05-06 23:45:52 +02:00
home:
2026-05-19 13:44:32 +02:00
row_net: P111
2026-05-06 23:45:52 +02:00
top:
2026-05-19 13:44:32 +02:00
row_net: P113
2026-05-06 23:45:52 +02:00
num: # 4th row
2026-05-19 13:44:32 +02:00
row_net: P115
2026-05-06 23:45:52 +02:00
# The 5-key Thumb Arc
thumbs:
anchor:
- ref: matrix_index_bottom
2026-05-19 13:44:32 +02:00
shift: [-19, -19]
2026-05-06 23:45:52 +02:00
columns:
# First key (tucked under the middle finger area)
tuck:
key.rotate: 0
key.shift: [0, 0]
key.name: thumb_tuck
2026-05-19 13:44:32 +02:00
key.column_net: P022
2026-05-06 23:45:52 +02:00
# Second key (the "Home" thumb key)
reach:
key.rotate: -5
key.shift: [1, -5]
key.name: thumb_reach
2026-05-19 13:44:32 +02:00
key.column_net: P024
2026-05-06 23:45:52 +02:00
# Third key (Middle of arc)
middle:
key.rotate: -10
key.shift: [2, -10]
key.name: thumb_middle
2026-05-19 13:44:32 +02:00
key.column_net: P100
2026-05-06 23:45:52 +02:00
# Fourth key (Moving outward)
stretch:
key.tags:
1.25cap
key.width: 1.25u
key.rotate: -115
key.shift: [6, -14]
key.name: thumb_stretch
2026-05-19 13:44:32 +02:00
key.column_net: P011
2026-05-06 23:45:52 +02:00
rows:
cluster:
row_net: P009
mirror:
ref: matrix_inner_num # The "anchor" point for the mirror
distance: 90
outlines:
raw:
- what: rectangle
where: true
size: [px, py]
fillet: 2
2026-05-19 21:26:47 +02:00
leftkeys_case:
- where: true
what: rectangle
size: [14,14]
leftcutout:
- name: raw
- operation: subtract
name: leftkeys_case
2026-05-06 23:45:52 +02:00
keys:
- what: rectangle
where: true
bound: false
size: [kx-0.5,ky-0.5]
- what: rectangle
where: [1.25cap]
size: [ky*1.25-0.5,ky-0.5]
_boardL:
- what: polygon
operation: stack
points:
- ref: matrix_outer_num
shift: [-0.5px, 0.5py]
- ref: matrix_ring_num
shift: [-0.5px, 0.5py]
- ref: matrix_middle_num
shift: [-0.5px, +0.5py]
- ref: matrix_middle_num
shift: [+0.5px, +0.5py]
- ref: matrix_index_num
shift: [0.5px, 0.5py]
- ref: matrix_inner_num
shift: [0.5px, 0.5py]
- ref: matrix_inner_num
shift: [1.5px, 0.5py] # Extending out for the MCU
- ref: matrix_inner_bottom
shift: [1.5px, -0.5py]
- ref: thumb_stretch
shift: [-0.625px, +0.5py]
- ref: thumb_stretch
shift: [0.625px, +0.5py]
- ref: thumb_tuck
shift: [-0.5px, -0.5py]
- ref: matrix_pinky_bottom
shift: [1py, -0.5py]
- ref: matrix_outer_bottom
shift: [-0.5px, -0.5py]
fillet: 2
_boardR:
- what: polygon
operation: stack
points:
- ref: mirror_matrix_outer_num
shift: [-0.5px, 0.5py]
2026-05-19 13:44:32 +02:00
- ref: mirror_matrix_ring_num
shift: [-0.5px, 0.5py]
2026-05-06 23:45:52 +02:00
- ref: mirror_matrix_middle_num
shift: [-0.5px, +0.5py]
- ref: mirror_matrix_middle_num
shift: [+0.5px, +0.5py]
2026-05-19 13:44:32 +02:00
- ref: mirror_matrix_index_num
shift: [0.5px, 0.5py]
- ref: mirror_matrix_inner_num
shift: [0.5px, 0.5py]
2026-05-06 23:45:52 +02:00
- ref: mirror_matrix_inner_num
shift: [1.5px, 0.5py] # Extending out for the MCU
2026-05-19 13:44:32 +02:00
- ref: mirror_matrix_inner_bottom
shift: [1.5px, -0.5py]
2026-05-06 23:45:52 +02:00
- ref: mirror_thumb_stretch
shift: [-0.625px, +0.5py]
- ref: mirror_thumb_stretch
shift: [0.625px, +0.5py]
- ref: mirror_thumb_tuck
shift: [-0.5px, -0.5py]
2026-05-19 13:44:32 +02:00
- ref: mirror_matrix_pinky_bottom
shift: [1py, -0.5py]
2026-05-06 23:45:52 +02:00
- ref: mirror_matrix_outer_bottom
shift: [-0.5px, -0.5py]
fillet: 2
combo:
- name: _boardL
- operation: stack
name: keys
- name: _boardR
- operation: stack
name: keys
2026-05-19 21:26:47 +02:00
mounting:
- what: circle
radius: screwSize
where:
ref: [matrix_outer_num]
shift: [kx/2, -ky/2]
- what: circle
radius: screwSize
where:
ref: [matrix_middle_num]
shift: [kx/2, -ky/2]
- what: circle
radius: screwSize
where:
ref: [thumb_tuck]
shift: [0, ky*0.625]
- what: circle
radius: screwSize
where:
ref: [matrix_index_home]
shift: [kx/2,ky/2]
_standoffInner:
- what: circle
radius: screwStandoffInner
where:
ref: [matrix_outer_num]
shift: [kx/2, -ky/2]
- what: circle
radius: screwStandoffInner
where:
ref: [matrix_middle_num]
shift: [kx/2, -ky/2]
- what: circle
radius: screwStandoffInner
where:
ref: [thumb_tuck]
shift: [0, ky*0.625]
- what: circle
radius: screwStandoffInner
where:
ref: [matrix_index_home]
shift: [kx/2,ky/2]
_standoffOuter:
- what: circle
radius: screwStandoffOuter
where:
ref: [matrix_outer_num]
shift: [kx/2, -ky/2]
- what: circle
radius: screwStandoffOuter
where:
ref: [matrix_middle_num]
shift: [kx/2, -ky/2]
- what: circle
radius: screwStandoffOuter
where:
ref: [thumb_tuck]
shift: [0, ky*0.625]
- what: circle
radius: screwStandoffOuter
where:
ref: [matrix_index_home]
shift: [kx/2,ky/2]
mountingR:
- what: circle
radius: screwSize
where:
ref: [mirror_matrix_outer_num]
shift: [kx/2, -ky/2]
- what: circle
radius: screwSize
where:
ref: [mirror_matrix_middle_num]
shift: [kx/2, -ky/2]
- what: circle
radius: screwSize
where:
ref: [mirror_thumb_tuck]
shift: [0, ky*0.625]
- what: circle
radius: screwSize
where:
ref: [mirror_matrix_index_home]
shift: [kx/2,ky/2]
### Right Side
_standoffInnerR:
- what: circle
radius: screwStandoffInner
where:
ref: [mirror_matrix_outer_num]
shift: [kx/2, -ky/2]
- what: circle
radius: screwStandoffInner
where:
ref: [mirror_matrix_middle_num]
shift: [kx/2, -ky/2]
- what: circle
radius: screwStandoffInner
where:
ref: [mirror_thumb_tuck]
shift: [0, ky*0.625]
- what: circle
radius: screwStandoffInner
where:
ref: [mirror_matrix_index_home]
shift: [kx/2,ky/2]
_standoffOuterR:
- what: circle
radius: screwStandoffOuter
where:
ref: [mirror_matrix_outer_num]
shift: [kx/2, -ky/2]
- what: circle
radius: screwStandoffOuter
where:
ref: [mirror_matrix_middle_num]
shift: [kx/2, -ky/2]
- what: circle
radius: screwStandoffOuter
where:
ref: [mirror_thumb_tuck]
shift: [0, ky*0.625]
- what: circle
radius: screwStandoffOuter
where:
ref: [mirror_matrix_index_home]
shift: [kx/2,ky/2]
leftFullBoard:
- name: _boardL
- operation: subtract
name: leftkeys_case
rightFullBoard:
- name: _boardR
- operation: subtract
name: leftkeys_case
2026-05-06 23:45:52 +02:00
pcbs:
left_side:
outlines:
main:
outline: _boardL
footprints:
# 1. MX Switches
mx_hotswap:
what: mx
2026-05-19 13:44:32 +02:00
where: /^matrix_.*/
params:
keycaps: true
reverse: false
hotswap: true
from: "{{column_net}}"
to: "{{colrow}}"
#1.1 Switches Thumbs
mx_hotswap_thumb:
what: mx
where: /^thumb.*/
2026-05-06 23:45:52 +02:00
params:
keycaps: true
reverse: false
hotswap: true
2026-05-19 13:44:32 +02:00
from: "{{column_net}}"
2026-05-06 23:45:52 +02:00
to: "{{colrow}}"
# 2. Diodes (Placed slightly above/below the switch)
diodes:
what: diode
2026-05-19 13:44:32 +02:00
where: /^matrix.*/
params:
from: "{{colrow}}"
to: "{{row_net}}"
adjust:
shift: [0, -5]
#2.1 Diodes Thumb
diodes_thumb:
what: diode
where: /^thumb.*/
2026-05-06 23:45:52 +02:00
params:
2026-05-19 13:44:32 +02:00
from: "{{colrow}}"
to: "{{row_net}}"
2026-05-06 23:45:52 +02:00
adjust:
shift: [0, -5]
# 3. Exposed nice!nano
nice_nano:
what: nice_nano
2026-05-19 13:44:32 +02:00
params:
orientation: down
2026-05-06 23:45:52 +02:00
where:
ref: matrix_inner_num
shift: [kx/2+18/2+1.6,ky/2-36/2]
2026-05-19 13:44:32 +02:00
rotate: 270
nice_view:
what: nice_view
params:
SDA: P104
SCL: P106
CS: P006
where:
ref: matrix_inner_home
shift: [kx/2+18/2+1.6,ky/2]
rotate: 90
2026-05-06 23:45:52 +02:00
# 4. Power Switch (Hidden on the back or next to MCU)
2026-05-19 13:44:32 +02:00
battery_switch:
2026-05-06 23:45:52 +02:00
what: slider
params:
side: B
from: pos
to: RAW
where:
ref: matrix_inner_home
2026-05-19 13:44:32 +02:00
shift: [1.5px-1.5,0]
2026-05-06 23:45:52 +02:00
rotate: -90
# 5. Reset Button
reset:
2026-05-19 13:44:32 +02:00
what: EVQPUC
params:
side: B
from: GND
to: RST
where:
ref: matrix_inner_top
shift: [1.5px-2,-ky/2]
rotate: -90.0
2026-05-06 23:45:52 +02:00
#6. BatteryJack
jstph:
what: jstph
where:
ref: matrix_inner_home
2026-05-19 13:44:32 +02:00
shift: [kx*0.75,0]
2026-05-06 23:45:52 +02:00
rotate: 90
params:
side: B
pos: pos
neg: GND
#7. Holes
holeTopLeft:
what: mountinghole
where:
ref: [matrix_outer_num]
shift: [kx/2, -ky/2]
holeTopRight:
what: mountinghole
where:
ref: [matrix_middle_num]
shift: [kx/2, -ky/2]
holeBottom:
what: mountinghole
where:
ref: [thumb_tuck]
2026-05-19 13:44:32 +02:00
shift: [0, ky*0.625]
2026-05-06 23:45:52 +02:00
holeRight:
what: mountinghole
where:
ref: [matrix_index_home]
shift: [kx/2,ky/2]
2026-05-19 13:44:32 +02:00
### RIGHT SIDE
right_side:
outlines:
main:
outline: _boardR
footprints:
# 1. MX Switches
mx_hotswap:
what: mx
where: /^mirror_matrix_.*/
params:
keycaps: true
reverse: false
hotswap: true
from: "{{column_net}}"
to: "{{colrow}}"
#1.1 Switches Thumbs
mx_hotswap_thumb:
what: mx
where: /^mirror_thumb.*/
params:
keycaps: true
reverse: false
hotswap: true
from: "{{column_net}}"
to: "{{colrow}}"
# 2. Diodes (Placed slightly above/below the switch)
diodes:
what: diode
where: /^mirror_matrix.*/
params:
from: "{{colrow}}"
to: "{{row_net}}"
adjust:
shift: [0, -5]
#2.1 Diodes Thumb
diodes_thumb:
what: diode
where: /^mirror_thumb.*/
params:
from: "{{colrow}}"
to: "{{row_net}}"
adjust:
shift: [0, -5]
# 3. Exposed nice!nano
nice_nano:
what: nice_nano
params:
orientation: down
where:
ref: mirror_matrix_inner_num
shift: [kx/2+18/2+1.6,ky/2-36/2]
rotate: 90
nice_view:
what: nice_view
params:
SDA: P104
SCL: P106
CS: P006
where:
ref: mirror_matrix_inner_home
shift: [kx/2+18/2+1.6,ky/2]
rotate: 270
# 4. Power Switch (Hidden on the back or next to MCU)
battery_switch:
what: slider
params:
side: B
from: pos
to: RAW
where:
ref: mirror_matrix_inner_home
shift: [1.5px-1.5,0]
rotate: -90
# 5. Reset Button
reset:
what: EVQPUC
params:
side: B
from: GND
to: RST
where:
ref: mirror_matrix_inner_top
shift: [1.5px-2,-ky/2]
rotate: -90.0
#6. BatteryJack
jstph:
what: jstph
where:
ref: mirror_matrix_inner_home
shift: [kx*0.75,0]
rotate: 90
params:
side: B
pos: pos
neg: GND
#7. Holes
holeTopLeft:
what: mountinghole
where:
ref: [mirror_matrix_outer_num]
shift: [kx/2, -ky/2]
holeTopRight:
what: mountinghole
where:
ref: [mirror_matrix_middle_num]
shift: [kx/2, -ky/2]
holeBottom:
what: mountinghole
where:
ref: [mirror_thumb_tuck]
shift: [0, ky*0.625]
holeRight:
what: mountinghole
where:
ref: [mirror_matrix_index_home]
shift: [kx/2,ky/2]
2026-05-06 23:45:52 +02:00
cases:
2026-05-19 21:26:47 +02:00
_plate:
- name: leftcutout
extrude: 1.5
_platFullL:
- name: leftFullBoard
extrude: 1.5
_platFullR:
- name: rightFullBoard
extrude: 1.5
_holes:
- name: mounting
extrude: 4
_holesR:
- name: mountingR
extrude: 4
_screwStandoffInner:
- name: _standoffInner
extrude: 4
_screwStandoffOuter:
- name: _standoffOuter
extrude: 4
_screwStandoffInnerR:
- name: _standoffInnerR
extrude: 4
_screwStandoffOuterR:
- name: _standoffOuterR
extrude: 4
casePlate:
- what: case
name: _plate
operation: add
- what: case
name: _holes
operation: subtract
- what: case
name: _holesR
operation: subtract
_caseBottomP1:
- name: _boardL
extrude: 1.5
caseBottomL:
- what: case
name: _screwStandoffOuter
operation: add
- what: case
name: _caseBottomP1
operation: add
- what: case
name: _screwStandoffInner
operation: subtract
_caseBottomR1:
- name: _boardR
extrude: 1.5
caseBottomR:
- what: case
name: _screwStandoffOuterR
operation: add
- what: case
name: _caseBottomR1
operation: add
- what: case
name: _screwStandoffInnerR
operation: subtract
casePlateNewL:
- what: case
name: _platFullL
operation: add
- what: case
name: _holes
operation: subtract
- what: case
name: _holesR
operation: subtract
casePlateNewR:
- what: case
name: _platFullR
operation: add
- what: case
name: _holes
operation: subtract
- what: case
name: _holesR
operation: subtract