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: 1 scrollwheel_width: 17 scrollwheel_height: 14 points: rotate: 5 zones: matrix: # fix placement on kicad anchor.shift: [125, -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: col0 top.skip: true num.skip: true key.column_net: row0 outer: rows: num.skip: true mod.skip: true key: column_net: row0 stagger: -0.33ky pinky: rows: mod.skip: true key: origin: [0, 8] column_net: row1 ring: rows: mod.skip: true key: origin: [0, 8] stagger: 0.33ky splay: -5 column_net: row2 middle: key: stagger: 0.2ky column_net: row3 rows: mod: column_net: row1 index: key: stagger: -0.33ky column_net: row4 rows: mod: column_net: row2 inner: rows: mod.skip: true key: stagger: -2.5 column_net: row5 rows: mod: row_net: col4 bottom: row_net: col3 home: row_net: col2 top: row_net: col1 num: row_net: col0 thumbs: anchor: ref: matrix_middle_home shift: [38, -45] key: tags: [switch] padding: 1ky spread: 1kx columns: layer: key: splay: -15 column_net: row3 space: key: width: 1.5kx splay: 75 shift: [13-kx, -3] column_net: row4 tags: [switch_space] rows: cluster: row_net: col4 scrollwheel: anchor: ref: matrix_inner_bottom columns: scrollwheel: key: tags: [scrollwheel] shift: [kx+mcu_padding-0.75, 0.1py] column_net: row5 width: scrollwheel_width height: scrollwheel_height rows: scrollwheel: row_net: col4 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-0.3] 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.9, 0.5py] shift: [0.5px+mcu_padding+mcu_width, 0.5py] - ref: matrix_inner_bottom #shift: [0.5px+mcu_padding+mcu_width-0.9, -0.5py] 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_middle_mod shift: [-0.5px, -0.5py] - ref: matrix_outer_bottom shift: [-0.5px, -0.5py] pcbs: keyboard: outlines.main.outline: board footprints: choc_hotswap: what: choc where: [switch, switch_space] params: keycaps: true reverse: true hotswap: true from: "{{column_net}}" to: "{{colrow}}" adjust: rotate: 180 diode: what: diode where: [switch] params: from: "{{colrow}}" to: "{{row_net}}" adjust: rotate: 0 shift: [2.5, -9] diode_space: what: diode where: [switch_space] params: from: "{{colrow}}" to: "{{row_net}}" adjust: rotate: -90 # 8.275 is exactly above the pad shift: [-8.275, 1] scrollwheel: what: scrollwheel where: [scrollwheel] params: from: "{{column_net}}" to: "{{colrow}}" A: ENCB B: GND C: ENCA D: scroolwheel_undefined rotary: what: rotary where: [scrollwheel] params: from: "{{colrow}}" to: "{{column_net}}" A: ENCA B: ENCB C: GND adjust.rotate: 90 scroll_diode: what: diode where: [scrollwheel] params: from: "{{colrow}}" to: "{{row_net}}" adjust: shift: [-5, 9] promicro: what: promicro where: mcu params: orientation: down RAW: RAW_P1 GND1: GND_P0 RST: RST_GND VCC: VCC_GND P21: ENCA P20: ENCB P19: row0 P18: row1 P15: row2 P14: row3 P16: row4 P10: row5 P1: P1_RAW P0: P0_GND GND2: GND_RST GND3: GND_VCC P2: SDA P3: SCL P4: CS P5: col0 P6: col1 P7: col2 P8: col3 P9: col4 jumper_text_f: what: text where: mcu params: side: "F" text: "Solder this side &\\nPlace Nice!Nano face down." adjust: rotate: 90 jumper_text_b: what: text where: mcu params: side: "B" text: "Solder this side &\\nPlace Nice!Nano face down." adjust: rotate: 90 jumper_f_raw: what: jumper where: mcu params: from: RAW to: RAW_P1 side: "F" adjust: shift: [-11.45, -2.5] rotate: -90 jumper_f_rst: what: jumper where: mcu params: from: RST to: RST_GND side: "F" adjust: shift: [-8.9, -2.5] rotate: -90 jumper_f_vcc: what: jumper where: mcu params: from: VCC to: VCC_GND side: "F" adjust: shift: [-6.35, -2.5] rotate: -90 jumper_f_gnd: what: jumper where: mcu params: from: GND to: GND_RST side: "F" adjust: shift: [-8.9, 2.5] rotate: 90 jumper_b_raw: what: jumper where: mcu params: from: RAW to: P1_RAW side: "B" adjust: shift: [-11.45, 2.5] rotate: 90 jumper_b_rst: what: jumper where: mcu params: from: RST to: GND_RST side: "B" adjust: shift: [-8.9, 2.5] rotate: 90 jumper_b_vcc: what: jumper where: mcu params: from: VCC to: GND_VCC side: "B" adjust: shift: [-6.35, 2.5] rotate: 90 jumper_b_gnd: what: jumper where: mcu params: from: GND to: RST_GND side: "B" adjust: shift: [-8.9, -2.5] rotate: -90 niceview: what: niceview where: mcu adjust: shift: [20.5, 0] rotate: 180 params: outline: true side: 'F' SDA: NN_SDA_CS SCL: NN_SCL_GND VCC: NN_VCC GND: NN_GND_SCL CS: NN_CS_SDA jumper_nn_f_sda: what: jumper where: mcu params: from: SDA to: NN_SDA_CS side: "F" adjust: shift: [20.50-3, -5.08] jumper_nn_f_scl: what: jumper where: mcu params: from: SCL to: NN_SCL_GND side: "F" adjust: shift: [20.50-3, -2.54] jumper_nn_f_vcc: what: jumper where: mcu params: from: VCC to: NN_VCC side: "F" adjust: shift: [20.50-3, 0] jumper_nn_f_gnd: what: jumper where: mcu params: from: GND to: NN_GND_SCL side: "F" adjust: shift: [20.50-3, 2.54] jumper_nn_f_cs: what: jumper where: mcu params: from: CS to: NN_CS_SDA side: "F" adjust: shift: [20.50-3, 5.08] jumper_nn_b_sda: what: jumper where: mcu params: from: SDA to: NN_CS_SDA side: "B" adjust: shift: [20.50-3, 5.08] jumper_nn_b_scl: what: jumper where: mcu params: from: SCL to: NN_GND_SCL side: "B" adjust: shift: [20.50-3, 2.54] jumper_nn_b_vcc: what: jumper where: mcu params: from: VCC to: NN_VCC side: "B" adjust: shift: [20.50-3, 0] jumper_nn_b_gnd: what: jumper where: mcu params: from: GND to: NN_SCL_GND side: "B" adjust: shift: [20.50-3, -2.54] jumper_nn_b_cs: what: jumper where: mcu params: from: CS to: NN_SDA_CS side: "B" adjust: shift: [20.50-3, -5.08] slider_f: what: slider where: mcu adjust: shift: [-17.1, 0] rotate: 90 params: side: F from: switch_from to: RAW slider_b: what: slider where: mcu adjust: shift: [-17.1, 0] rotate: 90 params: side: B from: switch_from to: RAW battery: what: battery where: mcu adjust: shift: [-17, 0] params: RAW: switch_from reset: what: reset where: mcu params: from: GND to: RST adjust: shift: [10+mcu_height/2, 0] rotate: -90 plexi_inner: what: hole where: mcu params: size: 3.5 drill: 2.2 adjust: shift: [10+mcu_height/2, -mcu_width/2+1.5] plexi_outer: what: hole where: mcu params: size: 3.5 drill: 2.2 adjust: shift: [10+mcu_height/2, mcu_width/2-1.5] screw_hole_top_left: what: hole where: ref.aggregate.parts: [matrix_ring_num, matrix_ring_top] shift: [-11, 0] params: size: 4.7 drill: 4.1 screw_hole_top_right: what: hole where: ref.aggregate.parts: [matrix_index_num, matrix_inner_num, matrix_index_top, matrix_inner_top] shift: [0, -2] params: size: 4.7 drill: 4.1 screw_hole_bottom_left: what: hole where: ref.aggregate.parts: [matrix_outer_home, matrix_outer_bottom, matrix_pinky_home, matrix_pinky_bottom] shift: [0, -1] params: size: 4.7 drill: 4.1 screw_hole_bottom_right: what: hole where: ref.aggregate.parts: [matrix_middle_bottom, matrix_index_bottom] shift: [0, -12] params: size: 4.7 drill: 4.1 screw_hole_thumb: what: hole where: ref.aggregate.parts: [thumbs_layer_cluster, thumbs_space_cluster] shift: [10, 8] params: size: 4.7 drill: 4.1 left_text: what: text where: matrix_middle_home params: text: "Left Hand Front" side: F knockout: true adjust: shift: [0, 4] rotate: 90 right_text: what: text where: matrix_middle_home params: text: "Right Hand Front" side: B knockout: true adjust: rotate: 90 shift: [0, 4]