keyboards/chrysemys/chrysemys.yaml

368 lines
9.0 KiB
YAML

#
# NOTES:
#
# - The thumb key nets are inverted compared to rest
# - The right half column nets are in a strange order
#
units:
cx: 18 # Keycap is 17.5mm wide
cy: 17 # Keycap is 16.5mm tall
kx: cx + 0.5 # Key spacing horizontal
ky: cy + 0.5 # Key spacing vertical
plate_padding: 2
pinky_splay: 6
ring_splay: 3
angle: 22 # Angle between two halves
mounting_hole_radius: 1.5
mcu_height: 33
mcu_width: 18
batt_width: 11.5
batt_length: 31.8
batt_padding: 1.5
points:
mirror:
ref: matrix_inner_top
distance: 50
zones:
matrix:
key:
footprints:
chocmini:
type: chocmini_with_diode
nets:
from: "=row_net"
to: "=column_net"
rotate: -angle + pinky_splay + ring_splay
columns:
pinky:
key:
column_net: P5
mirror.column_net: P18
rows:
bottom:
bind: [0.5ky, 1, 0, 0]
home:
bind: [0.5ky, 0.5kx, 0.5ky, 0]
top:
bind: [0, 0.5kx, 0.5ky, 0]
ring:
rotate: -pinky_splay
stagger: 7
spread: kx + 1
key:
column_net: P6
mirror.column_net: P15
rows:
bottom:
bind: [0.5ky, 0, 0, 5]
home:
bind: [0.5ky, 0.5kx, 0.5ky, 0.5kx]
top:
bind: [0, 0.5kx, 0.5ky, 0]
middle:
rotate: -ring_splay
stagger: 3
spread: kx + 1
key:
column_net: P7
mirror.column_net: P14
rows:
bottom:
bind: [0.5ky, 5, 0, 5]
home:
bind: [0.5ky, 0.5kx, 0.5ky, 0.5kx]
top:
bind: [0, 0, 0.5ky, 0]
index:
stagger: -6
key:
column_net: P8
mirror.column_net: P16
rows:
bottom:
bind: [0.5ky, 5, 0, 0]
home:
bind: [0.5ky, 0.5kx, 0.5ky, 0.5kx]
top:
bind: [0, 0, 0.5ky, 5]
inner:
stagger: -4
key:
column_net: P9
mirror.column_net: P10
rows:
bottom:
bind: [0.5ky, 2, 0, 0]
home:
bind: [0.5ky, 0.5kx, 0.5ky, 0.5kx]
top:
bind: [0, 5, 0.5ky, 5]
rows:
bottom:
row_net: P3
mirror.row_net: P3
home:
row_net: P2
mirror.row_net: P2
top:
row_net: P1
mirror.row_net: P1
thumbfan:
anchor:
ref: matrix_inner_bottom
shift: [-(kx/2), -(ky + 2)]
key:
footprints:
chocmini:
type: chocmini_with_diode
nets:
from: "=column_net"
to: "=row_net"
columns:
near:
rows:
thumb:
bind: [10, 5, 0, 1]
column_net: P7
mirror.column_net: P14
home:
rotate: -15
spread: 20
origin: [-10, -9]
rows:
thumb:
bind: [5, 5, 0, 5]
column_net: P8
mirror.column_net: P16
far:
rotate: -15
spread: 20
origin: [-10, -9]
rows:
thumb:
bind: [5, 1, 0, 5]
column_net: P9
mirror.column_net: P10
rows:
thumb:
row_net: P4
mirror.row_net: P4
outlines:
exports:
_mcu:
- type: rectangle
size: [mcu_width, mcu_height]
anchor:
ref:
- matrix_inner_top
- mirror_matrix_inner_top
shift:
- -mcu_width/2
- -mcu_height + 1
_battery:
- type: rectangle
size: [batt_length, batt_width]
anchor:
ref:
- matrix_inner_top
- mirror_matrix_inner_top
shift:
- -batt_length/2
- -mcu_height - batt_width - 6 # Below the MCU and bat pads
_battery_cutout:
- type: rectangle
size:
- batt_length + 2 batt_padding
- batt_width + 2 batt_padding
anchor:
ref:
- matrix_inner_top
- mirror_matrix_inner_top
shift:
- -(batt_length + 2 batt_padding)/2 # Half the width
- -mcu_height - batt_width - 6 - batt_padding # Below the MCU and bat pads
_key_outline:
- type: keys
side: both
size: 16
_center:
- type: polygon
points:
- ref: matrix_inner_top
shift: [cx/2, cy/2-1]
- ref: mirror_matrix_inner_top
shift: [cx/2, cy/2-1]
- ref: mirror_thumbfan_home_thumb
shift: [-cx/3, cy/2]
- ref: mirror_thumbfan_far_thumb
shift: [cx/2, -cy/2+0.5]
- ref: thumbfan_far_thumb
shift: [cx/2, -cy/2+0.5]
- ref: thumbfan_home_thumb
shift: [-cx/3, cy/2]
- type: circle # Bottom center arc
operation: subtract
anchor:
ref:
- thumbfan_far_thumb
- mirror_thumbfan_far_thumb
shift: [0, -38]
radius: 31
- type: circle # Top center arc
operation: subtract
anchor:
ref:
- matrix_inner_top
- mirror_matrix_inner_top
shift: [0, 32]
radius: 31
_bottom_arc:
- type: polygon
mirror: true
points:
- ref: matrix_pinky_bottom
shift: [cx/2, -cy/2+0.5]
- ref: thumbfan_near_thumb
shift: [-cx/2, -cy/2+0.5]
- ref: matrix_inner_bottom
shift: [cx/2, cy/2]
- ref: matrix_pinky_bottom
shift: [cx/2, cy/2]
- type: circle
mirror: true
operation: subtract
anchor:
ref: matrix_pinky_bottom
shift: [0, -76.5]
radius: 69
_keycaps:
- type: keys
side: both
size: [cx, cy]
bound: false
_top_plate_mounting_holes:
- type: circle
anchor:
ref:
- thumbfan_home_thumb
- thumbfan_far_thumb
shift: [0, 3.8 cy]
mirror: true
radius: mounting_hole_radius
- type: circle
anchor:
ref:
- thumbfan_home_thumb
- thumbfan_far_thumb
shift: [0, cy]
mirror: true
radius: mounting_hole_radius
_battery_mounting_holes:
- type: circle
anchor:
ref:
- matrix_inner_bottom
- mirror_matrix_inner_bottom
shift: [-22, -11]
radius: mounting_hole_radius
- type: circle
anchor:
ref:
- matrix_inner_bottom
- mirror_matrix_inner_bottom
shift: [22, -11]
radius: mounting_hole_radius
_panel:
- _key_outline
- +_center
- +_bottom_arc
- -_battery_cutout
panel:
- name: _panel
fillet: 1.5
- -_top_plate_mounting_holes
- -_battery_mounting_holes
top_plate:
- type: polygon
points:
- ref: matrix_inner_top
shift: [cx/2 + plate_padding, cy/2-1]
- ref: mirror_matrix_inner_top
shift: [cx/2 + plate_padding, cy/2-1]
- ref: mirror_matrix_inner_bottom
shift: [cx/2 + plate_padding, -cy/2]
- ref: mirror_thumbfan_far_thumb
shift: [-cx/2, cy/2 + plate_padding]
- ref: thumbfan_far_thumb
shift: [-cx/2, cy/2 + plate_padding]
- ref: matrix_inner_bottom
shift: [cx/2 + plate_padding, -cy/2]
- type: circle # Match the top center arc
operation: subtract
anchor:
ref:
- matrix_inner_top
- mirror_matrix_inner_top
shift: [0, 32]
radius: 31
demo_keycaps:
- panel
- ^_keycaps
demo_center:
- _center
- ^_keycaps
demo_battery:
- panel
- ^_mcu
- ^_keycaps
- ^top_plate
- ^_battery
pcbs:
chrysemeys:
outlines:
main:
outline: panel
footprints:
mcu:
type: promicro
params:
orientation: up
anchor:
ref:
- matrix_inner_top
- mirror_matrix_inner_top
rotate: -90
shift: [0, -16]
battery_pads:
type: battery_pads
nets:
neg: GND
pos: BATT
anchor:
ref:
- matrix_inner_top
- mirror_matrix_inner_top
shift: [0, -34]
reset:
type: two_lead_button
nets:
from: RST
to: GND
anchor:
ref:
- thumbfan_far_thumb
- mirror_thumbfan_far_thumb
shift: [0, 2]
power:
type: slider
nets:
from: BATT
to: RAW
anchor:
ref:
- thumbfan_far_thumb
- mirror_thumbfan_far_thumb
shift: [0, -4]
rotate: 180