@@ 0,0 1,367 @@
+#
+# 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