units: kx: cx # cx=18 ky: cy # cy=17 mbkx: 17.5 mbky: 16.5 padding: 2 px: kx+padding py: ky+padding mcu_height: 34 mcu_width: 18 mcu_padding: 2 scrollwheel_width: 17 scrollwheel_height: 14 points: zones: matrix: # fix placement on kicad anchor.shift: [150, -200] key: tags: [switch] padding: 1ky spread: 1kx columns: outer2: rows: mod.skip: true bottom.skip: true home: bind: [0, 5, 0, 0] row_net: row0 top.skip: true num.skip: true key.column_net: col0 outer: rows: num.skip: true mod.skip: true key.column_net: col0 pinky: rows: mod.skip: true key: splay: -5 origin: [0, 8] column_net: col1 ring: rows: mod.skip: true key: origin: [0, 8] stagger: 0.33ky splay: -5 column_net: col2 middle: key: stagger: 0.2ky column_net: col3 rows: mod: column_net: col1 index: key: stagger: -0.33ky column_net: col4 rows: mod: column_net: col2 inner: rows: mod.skip: true key: stagger: -2.5 column_net: col5 rows: mod: row_net: row4 bottom: row_net: row3 home: row_net: row2 top: row_net: row1 num: row_net: row0 thumbs: anchor: ref: matrix_middle_home shift: [38, -45] key: tags: [switch] padding: 1ky spread: 1kx columns: layer: key: splay: -15 column_net: col3 space: key: width: 1.5kx splay: 75 shift: [13-kx, -3] column_net: col4 rows: cluster: row_net: row4 scrollwheel: anchor: ref: matrix_inner_bottom columns: scrollwheel: key: tags: [scrollwheel] rotate: -15 shift: [px, -4] column_net: col5 width: scrollwheel_width height: scrollwheel_height rows: scrollwheel: row_net: row4 mcu: anchor: ref: matrix_inner_num columns: mcu: key: tags: [mcu] width: mcu_height # footprint width/height unintuitive height: mcu_width rotate: -90 shift: [kx+mcu_padding, -mcu_width/2+1] rotate: 10 outlines: keys: - what: rectangle where: true fillet: 2 size: [mbkx, mbky] raw: - what: rectangle where: true bound: true size: [px+5, py+5] fillet: - what: outline name: raw fillet: 2 board: - what: polygon operation: stack # fillet: 2 points: - ref: matrix_outer2_home shift: [-0.5px, -0.5py] - ref: matrix_outer2_home shift: [-0.5px, 0.5py] - ref: matrix_outer_top shift: [-0.5px, 0.5py] - ref: matrix_pinky_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_inner_num shift: [0.5px, 0.5py] - ref: matrix_inner_num shift: [0.5px+mcu_padding+mcu_width, 0.5py] - ref: scrollwheel_scrollwheel_scrollwheel shift: [0.5scrollwheel_width+padding, 0.5scrollwheel_height+padding] #- ref: matrix_inner_bottom # shift: [0.5px+mcu_padding+mcu_width, -0.5py] - ref: thumbs_space_cluster shift: [0.5px, -0.5py] - ref: thumbs_space_cluster shift: [-0.5px, -0.5py] - ref: matrix_index_mod shift: [-0.5px, -0.5py] - ref: matrix_index_mod shift: [-0.5px, -0.5py] - ref: matrix_outer_bottom shift: [-0.5px, -0.5py] pcbs: left: outlines.main.outline: board footprints: choc_hotswap: what: choc where: switch params: keycaps: true reverse: true hotswap: true from: "{{column_net}}" to: "{{colrow}}" diode: # TODO diode without throughhole? what: diode where: [switch] params: from: "{{colrow}}" to: "{{row_net}}" adjust.shift: [0, -5] scrollwheel: what: scrollwheel where: [scrollwheel] params: from: col5 to: row4 A: ENCB B: GND C: ENCA D: undefined scroll_diode: # TODO diode without throughhole what: diode where: [scrollwheel] params: from: "{{colrow}}" to: "{{row_net}}" adjust.shift: [-3, 10] rotary: what: rotary where: [scrollwheel] params: from: col5 to: row4 A: ENCA B: ENCB C: GND adjust.rotate: 90 promicro: what: promicro where: mcu params: orientation: down P1: CS P2: SDA P3: SCL P5: row0 P6: row1 P7: row2 P8: row3 P9: row4 P21: ENCA P20: ENCB P19: col0 P18: col1 P15: col2 P14: col3 P16: col4 P10: col5