units: # Proxy Spacing Variables kx: U ky: U # Padding Variables px: kx + 4 py: ky + 4 screwSize: 1 points: zones: matrix: anchor: shift: [100, -100] columns: outer: key: column_net: P017 pinky: key.stagger: 0 key: column_net: P020 ring: key: stagger: 5 column_net: P022 middle: key: stagger: 8 column_net: P024 index: key: stagger: -5 column_net: P100 inner: key: stagger: -3 column_net: P011 rows: bottom: row_net: P010 home: row_net: P111 top: row_net: P113 num: # 4th row row_net: P115 # The 5-key Thumb Arc thumbs: anchor: - ref: matrix_index_bottom shift: [-19, -19] columns: # First key (tucked under the middle finger area) tuck: key.rotate: 0 key.shift: [0, 0] key.name: thumb_tuck key.column_net: P022 # Second key (the "Home" thumb key) reach: key.rotate: -5 key.shift: [1, -5] key.name: thumb_reach key.column_net: P024 # Third key (Middle of arc) middle: key.rotate: -10 key.shift: [2, -10] key.name: thumb_middle key.column_net: P100 # Fourth key (Moving outward) stretch: key.tags: 1.25cap key.width: 1.25u key.rotate: -115 key.shift: [6, -14] key.name: thumb_stretch key.column_net: P011 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 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] - ref: mirror_matrix_ring_num shift: [-0.5px, 0.5py] - ref: mirror_matrix_middle_num shift: [-0.5px, +0.5py] - ref: mirror_matrix_middle_num shift: [+0.5px, +0.5py] - ref: mirror_matrix_index_num shift: [0.5px, 0.5py] - ref: mirror_matrix_inner_num shift: [0.5px, 0.5py] - ref: mirror_matrix_inner_num shift: [1.5px, 0.5py] # Extending out for the MCU - ref: mirror_matrix_inner_bottom shift: [1.5px, -0.5py] - 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] - ref: mirror_matrix_pinky_bottom shift: [1py, -0.5py] - 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 pcbs: left_side: outlines: main: outline: _boardL footprints: # 1. MX Switches mx_hotswap: what: mx 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.*/ params: keycaps: true reverse: false hotswap: true from: "{{column_net}}" to: "{{colrow}}" # 2. Diodes (Placed slightly above/below the switch) diodes: what: diode where: /^matrix.*/ params: from: "{{colrow}}" to: "{{row_net}}" adjust: shift: [0, -5] #2.1 Diodes Thumb diodes_thumb: what: diode where: /^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: matrix_inner_num shift: [kx/2+18/2+1.6,ky/2-36/2] 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 # 4. Power Switch (Hidden on the back or next to MCU) battery_switch: what: slider params: side: B from: pos to: RAW where: ref: 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: matrix_inner_top shift: [1.5px-2,-ky/2] rotate: -90.0 #6. BatteryJack jstph: what: jstph where: ref: matrix_inner_home shift: [kx*0.75,0] 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] shift: [0, ky*0.625] holeRight: what: mountinghole where: ref: [matrix_index_home] shift: [kx/2,ky/2] ### 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] cases: