From 38d444689048ed82ffaf730e50f84257ce740b4e Mon Sep 17 00:00:00 2001 From: Marco Massarelli Date: Wed, 10 May 2023 13:38:40 -0400 Subject: [PATCH] Add corney island back, incrementally --- .github/workflows/build.yml | 10 +- input/config.yaml | 1016 ++++++++++------------------------- 2 files changed, 288 insertions(+), 738 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6d83c02..f6a6f47 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,23 +24,23 @@ jobs: - name: Export DSN uses: ./.github/actions/export-dsn with: - boards: left right + boards: corney_island - name: Autoroute PCB uses: ./.github/actions/autoroute with: - boards: left right + boards: corney_island - name: Import SES uses: ./.github/actions/import-ses with: - boards: left right + boards: corney_island - name: DRC check uses: ./.github/actions/run-drc with: - boards: left right + boards: corney_island - name: Export Gerbers uses: ./.github/actions/export-gerbers with: - boards: left right + boards: corney_island - name: Persist output uses: actions/upload-artifact@v3 with: diff --git a/input/config.yaml b/input/config.yaml index 20310f9..9263884 100644 --- a/input/config.yaml +++ b/input/config.yaml @@ -1,762 +1,312 @@ +vars: + version: &kb_version 'Corney Island v0.1' + units: - kx: cx - ky: cy - px: kx - py: ky - kxo: 0.5 * kx - kyo: 0.5 * ky + # Key and keycap measures + kx: u # spacing between key centers (X-axis) + ky: u # spacing between key centers (X-axis) + ks: 19 # horizontal space between columns (default: 19) + kp: 19 # vertical padding between keys (deafult: 19) + kcow: 14 # key cutout hole width (cherry: 14, choc: 13.8) + kcoh: 14 # key cutout hole height (cherry: 14, choc: 13.8) + keycw: 18 # keycap width (cherry: 18, choc: 17.5) + keych: 18 # keycap height (cherry: 18, choc: 16.5) + hand_rotation: 0 - # PG1232 plate cutout - plate_kx: 13.6 - plate_ky: 12.6 + # Physical measures + screw_radius: 1.1 # M2 screws + spacer_radius: 2.05 # M2 standoffs + fillet_radius: 0.5 - # Stabilizer dimensions - stabilizer_width: 7 - stabilizer_height: 14 - stabilizer_offset: -1 # This means south stabs, use `orient` to rotate them for north facing scenarios - stabilizer_spacing_2u: u / 2 + stabilizer_width / 2 + ((23.8 / 2) - (14 / 2) - (stabilizer_width / 2)) # The complex formula has two magic numbers. 14 is the size of a switch cutout for a plate. 23.8 is the distance between each stabilizer on a 2-2.75u stabilizer, as specified by Cherry - stabilizer_spacing_3u: u * ((3 - 1) / 2) - - # Font units - font_x: 1 - font_y: 1 - font_xo: 0.5 font_x - font_yo: 0.5 * font_y - - # Nice Nano - # The nice nano footprint's center doesn't account - # for the 2.54mm "overhang" of the PCB beyond the pins. - mcu_overhang_y: 2.54 - mcu_spacing_x: 2.72 - mcu_x: 17.78 + mcu_spacing_x - mcu_y: 30.48 + mcu_overhang_y - mcu_xo: 0.5 * mcu_x - mcu_yo: 0.5 * mcu_y + 0.5 * mcu_overhang_y - - # Nice!View display - disp_x: 14 - disp_y: 36 - disp_jumper_y: 2.6 - disp_xo: 0.5 * disp_x - disp_yo: 0.5 * disp_y - - # Battery Connector - batc_x: 4.3 - batc_y: 4.6 - batc_xo: 0.5 * batc_x - batc_yo: 0.5 * batc_y - - # Battery Pads - batp_x: 3.75 - batp_y: 2.5 - batp_xo: 0.5 * batp_x - batp_yo: 0.5 * batp_y - - # Power Switch - sw_power_x: 3.1 - sw_power_y: 8.3 - sw_power_xo: 0.5 * sw_power_x - sw_power_yo: 0.5 * sw_power_y - - # Reset Switch - sw_reset_x: 3.4 - sw_reset_y: 5 - sw_reset_xo: 0.5 * sw_reset_x - sw_reset_yo: 0.5 * sw_reset_y + # Thumb splay + splay_thumb_middle: -15 + splay_thumb_far: -15 points: - key: - padding: ky - spread: kx - width: kx - height: ky zones: + + # Main key matrix matrix: - # Fix placement on KiCAD sheet. + key: + padding: kp + spread: ks + tags: key anchor: - shift: [35, -100] - key.tags: key + rotate: hand_rotation + shift: [100, -100] # Fix KiCad placement columns: - left: - key: - spread: kx * 0.25 - width: kx * 1.5 - asym: left - column_net: C0 - q: - key: - spread: kx * 1.25 - column_net: C1 - w: - key.column_net: C2 - e: - key.column_net: C3 - r: - key.column_net: C4 - t: - key.column_net: C5 - + outer: + key: + column_net: C0 + pinky: + key: + column_net: C1 + ring: + key: + stagger: 0.25 kp + column_net: C2 + middle: + key: + stagger: 0.125 kp + column_net: C3 + index: + key: + stagger: -0.125 kp + column_net: C4 + inner: + key: + stagger: -0.125 kp + column_net: C5 rows: bottom: - row_net: R4 + row_net: R0 home: - row_net: R3 + row_net: R1 top: - row_net: R2 - num: - row_net: R1 - f: - row_net: R0 + row_net: R2 - leftcluster: + # Thumb cluster + thumbfan: key: - spread: kx * 1.5 - width: kx * 1.5 - kx: kx * 1.5 - asym: left + padding: kp + spread: ks tags: key anchor: - ref: matrix_left_bottom - shift: [0, -2ky] + ref: matrix_index_bottom + shift: [-0.5 ks, -kp -0.5] columns: - one: - key.column_net: C0 - two: - key.column_net: C1 - three: - key.column_net: C2 + near: + key: + column_net: C3 + middle: + key: + splay: splay_thumb_middle + origin: [-0.5 ks, -0.5 kp] + column_net: C4 + far: + key: + splay: splay_thumb_far + origin: [0.5 ks, -0.55 kp] + rotate: 90 + column_net: C5 rows: - down: - row_net: R7 - up: - row_net: R6 - rightcluster: - key: - asym: right - tags: key - anchor: - ref: matrix_left_bottom - shift: [0.25 * kx, -2ky] - columns: - one: - key.column_net: C0 - two: - key.column_net: C1 - three: - key.column_net: C2 - rows: - down: - row_net: R7 - up: - row_net: R7 - - bigenters: - key: - spread: kx * 1.5 - width: kx * 1.5 - kx: kx * 1.5 - padding: 2ky - height: 2ky - tags: [key, enter, 2u_stabilizer_90] - - anchor: - ref: matrix_t_top - shift: [kx * 1.25, -1.5ky] - columns: - one: - key.column_net: C6 - rows: - enter: - row_net: R2 - back: - padding: ky * 1.5 - row_net: R1 - f: - height: ky - tags: key - row_net: R0 - spaces: - key.tags: key - anchor: - ref: leftcluster_three_up - shift: [0.25 * kx, 0] - columns: - alt: - key: - asym: right - column_net: C3 - space: - key: - width: 3.5kx - spread: 2.25kx - column_net: C4 - tags: [key, space, 3u_stabilizer] - rows: - space: - row_net: R6 - rightsym: - anchor: - ref: matrix_q_bottom - shift: [-kx, 0] - key: - asym: right - tags: key - columns: - sym: - key.column_net: C0 - rows: - bottom: - row_net: R4 home: - row_net: R3 - top: - row_net: R2 - num: - row_net: R1 - f: - row_net: R0 - right: - anchor: - ref: rightsym_sym_bottom - shift: [-kx * 1.25, -2ky] - key: - asym: right - spread: kx * 1.5 - width: kx * 1.5 - kx: kx * 1.5 - tags: key - columns: - sym: - key.column_net: C7 - rows: - ctl_down: - row_net: R6 - ctl_up: - row_net: R5 - bottom: - row_net: R4 - home: - row_net: R3 - top: - row_net: R2 - num: - row_net: R1 - f: - row_net: R0 + row_net: R3 - # Controller - # - controller: - anchor: - ref: bigenters_one_f - shift: [0.75 * kx + mcu_xo, kyo -2.25 - mcu_yo] - key: - name: mcu - width: mcu_x - height: mcu_y - - mirror: &mirror - ref: bigenters_one_f - distance: 100 outlines: - _2u_stabilizer: # This creates the stabilizer, you just need to use its name in a `where` clause of another outline - - operation: stack - where: [2u_stabilizer] # Set this tag on the keys you want - what: rectangle - size: [stabilizer_width, stabilizer_height] - adjust: - shift: [stabilizer_spacing_2u, stabilizer_offset] - - operation: stack - where: [2u_stabilizer] - what: rectangle - size: [stabilizer_width, stabilizer_height] - adjust: - shift: [-stabilizer_spacing_2u, stabilizer_offset] + _switch_cutouts: + - what: rectangle + where: true + size: [kcow, kcoh] + + _backplate_additional_outline: + - what: rectangle + where: + - matrix_inner_top + size: [20, 3.5 kp] + adjust: + shift: [ks + (20 - ks) / 2, -1.25 kp -0.125 kp] + operation: stack + - what: rectangle + adjust: + ref: thumbfan_far_home + size: [1.5 ks, 1.75 kp] + operation: subtract + + _matrix_outline: + - what: rectangle + where: + - matrix_outer_top + - matrix_outer_home + - matrix_outer_bottom + - matrix_pinky_top + - matrix_pinky_home + - matrix_pinky_bottom + - matrix_ring_top + - matrix_ring_home + - matrix_ring_bottom + - matrix_middle_top + - matrix_middle_home + - matrix_middle_bottom + - matrix_index_top + - matrix_index_home + - matrix_index_bottom + - matrix_inner_top + - matrix_inner_home + - matrix_inner_bottom + size: [ks, kp] + + _plate_outline: + - what: outline + name: _matrix_outline + - what: rectangle + adjust: + ref: thumbfan_far_home + shift: [0, 0.275 kp] + size: [1.5 ks, 1.5 kp] + - what: rectangle + adjust: + ref: matrix_ring_bottom + shift: [0, -0.5 kp] + size: [3 ks, 0.5 kp] + - what: polygon + points: + - ref: matrix_pinky_bottom + shift: [1.5 ks, -0.5 kp] + - ref: thumbfan_near_home + shift: [-0.5 ks, -0.5 kp] + - ref: thumbfan_far_home + shift: [-0.75 ks, 0.5 kp] + - ref: thumbfan_far_home + shift: [0.75 ks, 0.5 kp] + - ref: thumbfan_near_home + shift: [-0.5 ks, 0.75 kp] + + _screws: + - &circle + what: circle + radius: screw_radius + adjust: + ref: matrix_pinky_top + shift: [-0.5 ks, -0.5 kp] + - <<: *circle + adjust: + ref: matrix_pinky_home + shift: [-0.5 ks, -0.5 kp] + - <<: *circle + adjust: + ref: matrix_inner_top + shift: [-0.5 ks, -0.5 kp + 1.4] + - <<: *circle + adjust: + ref: thumbfan_near_home + shift: [-0.7 ks -0.2, 7.1] + - <<: *circle + adjust: + ref: thumbfan_far_home + shift: [0, 0.5 kp + 2] + + _controller_overlay_screws: + - <<: *circle + adjust: + - ref: thumbfan_far_home + shift: [0.9 ks, 0.65 kp] + - <<: *circle + adjust: + - ref: thumbfan_far_home + shift: [0.9 ks, -0.25 kp] + + _spacers: + - &bigCircle + what: circle + radius: spacer_radius + adjust: + ref: matrix_pinky_top + shift: [-0.5 ks, -0.5 kp] + - <<: *bigCircle + adjust: + ref: matrix_pinky_home + shift: [-0.5 ks, -0.5 kp] + - <<: *bigCircle + adjust: + ref: matrix_inner_top + shift: [-0.5 ks, -0.5 kp + 1.4] + - <<: *bigCircle + adjust: + ref: thumbfan_near_home + shift: [-0.7 ks -0.2, 7.1] + - <<: *bigCircle + adjust: + ref: thumbfan_far_home + shift: [0, 0.5 kp + 2] + + _keycap_outlines: + - what: rectangle + fillet: 2 + where: true + size: [keycw, keych] + + _backplate_outline: + - what: outline + name: _plate_outline + - what: outline + name: _backplate_additional_outline + operation: add + + backplate: + - what: outline + name: _backplate_outline + fillet: fillet_radius + - what: outline + name: _screws + operation: subtract + + pcb: + - what: outline + name: backplate + - what: outline + name: _spacers + operation: subtract + - what: outline + name: _controller_overlay_screws + operation: subtract - _2u_stabilizer_90: # This creates the stabilizer, you just need to use its name in a `where` clause of another outline - - operation: stack - where: [2u_stabilizer_90] # Set this tag on the keys you want - what: rectangle - size: [stabilizer_height, stabilizer_width] - adjust: - shift: [stabilizer_offset, stabilizer_spacing_2u] - - operation: stack - where: [2u_stabilizer_90] - what: rectangle - size: [stabilizer_height, stabilizer_width] - adjust: - shift: [stabilizer_offset, -stabilizer_spacing_2u] + frontplate: + - what: outline + name: _plate_outline + fillet: fillet_radius + - what: outline + name: _switch_cutouts + operation: subtract + - what: outline + name: _screws + operation: subtract - _3u_stabilizer: # This creates the stabilizer, you just need to use its name in a `where` clause of another outline - - operation: stack - where: [3u_stabilizer] # Set this tag on the keys you want - what: rectangle - size: [stabilizer_width, stabilizer_height] - adjust: - shift: [stabilizer_spacing_3u, stabilizer_offset] - - operation: stack - where: [3u_stabilizer] - what: rectangle - size: [stabilizer_width, stabilizer_height] - adjust: - shift: [-stabilizer_spacing_3u, stabilizer_offset] + controller_overlay: + - what: outline + name: _backplate_additional_outline + fillet: fillet_radius + - what: outline + name: _controller_overlay_screws + operation: subtract - _keys: - - what: rectangle - where: [[key, -enter, -space]] - size: [plate_kx/2, plate_ky/2] - _enters: - - what: rectangle - where: [[key, enter]] - size: [plate_ky/2, plate_kx/2] - _spaces: - - what: rectangle - where: [[key, space]] - size: [plate_kx/2, plate_ky/2] - - _outline_left: - - what: polygon - operation: stack - fillet: 2 - points: - - ref: matrix_left_f - shift: [-kx * 0.75, ky * 0.5] - - ref: bigenters_one_f - shift: [kx * 0.75, ky * 0.5] - - ref: spaces_space_space - shift: [kx * 1.75, -ky * 0.5] - - ref: leftcluster_three_down - shift: [kx * 0.75, ky * 0.5] - - ref: leftcluster_three_down - shift: [kx * 0.75, -ky * 0.5] - - ref: leftcluster_one_down - shift: [-kx * 0.75, -ky * 0.5] - - _outline_right: - - what: polygon - operation: stack - fillet: 2 - points: - - ref: mirror_rightsym_sym_f - shift: [-kx * 2, ky * 0.5] - - ref: mirror_bigenters_one_f - shift: [kx * 0.75, ky * 0.5] - - ref: mirror_spaces_space_space - shift: [kx * 1.75, -ky * 0.5] - - ref: mirror_rightcluster_three_down - shift: [kx * 0.75, ky * 0.5] - - ref: mirror_rightcluster_three_down - shift: [kx * 0.75, -ky * 0.5] - - ref: mirror_rightcluster_one_down - shift: [-kx * 2, -ky * 0.5] - - _mcuears: - - what: rectangle - size: [mcu_x +10, 6ky] - fillet: 2 - - pcb_left: - - name: _outline_left - - operation: add - name: _mcuears - where: - ref: bigenters_one_f - shift: [0.75 * kx + mcu_x/2 -5, -2.5ky] - - pcb_right: - - name: _outline_right - - operation: add - name: _mcuears - where: - ref: mirror_bigenters_one_f - shift: [0.75 * kx + mcu_x/2 -5, -2.5ky] - - topleft: - - name: _outline_left - - operation: subtract - name: _keys - - operation: subtract - name: _enters - - operation: subtract - name: _spaces - - operation: subtract - name: _2u_stabilizer - - operation: subtract - name: _2u_stabilizer_90 - - operation: subtract - name: _3u_stabilizer - - topright: - - name: _outline_right - - operation: subtract - name: _keys - - operation: subtract - name: _enters - - operation: subtract - name: _spaces - - operation: subtract - name: _2u_stabilizer - - operation: subtract - name: _2u_stabilizer_90 - - operation: subtract - name: _3u_stabilizer - - - bottomright: - - name: pcb_right - - bottomleft: - - name: pcb_left - - # Combination preview showing outline and keys. - combined: - - name: topleft - - operation: stack - name: topright + _debug: + - what: outline + name: frontplate + operation: stack + - what: outline + name: controller_overlay + operation: stack + preview: + - what: outline + name: backplate + - what: outline + name: pcb + operation: stack + - what: outline + name: frontplate + operation: stack + - what: outline + name: controller_overlay + operation: stack + - what: outline + name: _keycap_outlines + operation: stack pcbs: - left: - outlines: - left: - outline: pcb_left - footprints: - choc: - what: chocmini - where: - - /^matrix_.*/ - - /leftcluster_.*/ - - [/^bigenters_.*/, key, -enter] - - /^spaces_.*/ - params: - keycaps: true - reverse: false - from: "{{colrow}}" - to: "{{column_net}}" - choc_enter: - what: chocmini - where: - - [/^bigenters_.*/, enter] - params: - keycaps: true - reverse: false - from: "{{colrow}}" - to: "{{column_net}}" - adjust: - rotate: 90 - diode: - what: diode - where: - - /^matrix_.*/ - - /leftcluster_.*/ - - /^spaces_.*/ - - [/^bigenters_.*/, key, -enter] - params: - from: "{{colrow}}" - to: "{{row_net}}" - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [-1.4, -6] - rotate: 180 - diode_enters: - what: diode - where: - - [/^bigenters_.*/, enter] - params: - from: "{{colrow}}" - to: "{{row_net}}" - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [6, -1.4] - rotate: 270 - backlight: - what: diode ## Fixme use LED - where: - - /^matrix_.*/ - - /leftcluster_.*/ - - [/^bigenters_.*/, key, -enter] - - /^spaces_.*/ - params: - from: "bl_{{colrow}}{{row_net}}" - to: GND - tht: false # No through hole - side: F # Top only - adjust: - shift: [0, 4.3] - rotate: 0 - backlight_enters: - what: diode ## Fixme use LED - where: - - [/^bigenters_.*/, enter] - params: - from: "bl_{{colrow}}{{row_net}}" - to: GND - tht: false # No through hole - side: F # Top only - adjust: - shift: [-4.3, 0] - rotate: 90 - resistor_backlight: - what: diode ## Fixme use resistor - where: - - /^matrix_.*/ - - /leftcluster_.*/ - - [/^bigenters_.*/, key, -enter] - - /^spaces_.*/ - params: - from: "bl_{{colrow}}{{row_net}}" - to: bl_pwr - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [0, 4.3] - rotate: 0 - resistor_backlight_enters: - what: diode ## Fixme use resistor - where: - - [/^bigenters_.*/, enter] - params: - from: "bl_{{colrow}}{{row_net}}" - to: GND - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [-4.3, 0] - rotate: 90 - # Controller Area - promicro: - what: promicro - params: - # Pin Assignments (Controller on top facing down) - # Right Side - P0: "DPD" # Display Data - P1: "DPC" # Display Clock - # GND - # GND - P2: "DPE" # Display CS (nice!view only) FIXME? ZPM default? - P3: "R1" # Row - P4: "R2" # Row - P5: "R3" # Row - P6: "R4" # Row - P7: "R5" # Row - P8: "R6" # Row - P9: "R7" # Row + corney_island: + outlines: + main: + outline: pcb - # Left Side - RAW: "BAT_P" # Battery Pos - # GND # Ground / Battery Neg - # RST # Reset pin - # VCC # External Power - P21: "C0" # Column - P20: "C1" # Column - P19: "C2" # Column - P18: "C3" # Column - P15: "C4" # Column - P14: "C5" # Column - P16: "C6" # Column - P10: "F10" # Free - - where: - ref: mcu - shift: [0, 0] - rotate: -90 - display: - what: nice_view - params: - reverse: true - MOSI: DPD - SCK: DPC - CS: DPE - show_labels: false - jumpers_at_bottom: false - where: - ref: mcu - shift: [0, -1] # Move the display down a bit to be sure the cable fits between the headers - pads_bat: - what: jstph - params: - pos: BAT_P - neg: GND - where: - ref: mcu - shift: [-batc_x, -mcu_y/2 - 5] - #rotate: 270 - reset: - what: button - params: - from: GND - to: RST - where: - ref: mcu - shift: [batc_x, -mcu_y/2 - 8] - - right: - outlines: - right: - outline: pcb_right - footprints: - choc: - what: chocmini - where: - - [/^mirror.*/, key, -enter] - - /rightcluster_.*/ - params: - keycaps: true - reverse: false - from: "{{colrow}}" - to: "{{column_net}}" - choc_enter: - what: chocmini - where: - - [/^mirror.*/, key, enter] - params: - keycaps: true - reverse: false - from: "{{colrow}}" - to: "{{column_net}}" - adjust: - rotate: 270 - diode: - what: diode - where: - - [/^mirror.*/, key, -enter] - - /rightcluster_.*/ - params: - from: "{{colrow}}" - to: "{{row_net}}" - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [1.4, -6] - rotate: 180 - diode_enters: - what: diode - where: - - [/^mirror.*/, key, enter] - params: - from: "{{colrow}}" - to: "{{row_net}}" - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [-6, -1.4] - rotate: 90 - backlight: - what: diode ## Fixme use LED - where: - - [/^mirror.*/, key, -enter] - - /rightcluster_.*/ - params: - from: "bl_{{colrow}}{{row_net}}" - to: GND - tht: false # No through hole - side: F # Top only - adjust: - shift: [0, 4.3] - rotate: 0 - backlight_enters: - what: diode ## Fixme use LED - where: - - [/^mirror.*/, key, enter] - params: - from: "bl_{{colrow}}{{row_net}}" - to: GND - tht: false # No through hole - side: F # Top only - adjust: - shift: [4.3, 0] - rotate: 270 - resistor_backlight: - what: diode ## Fixme use Resistor - where: - - [/^mirror.*/, key, -enter] - - /rightcluster_.*/ - params: - from: "bl_{{colrow}}{{row_net}}" - to: bl_pwr - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [0, 4.3] - rotate: 0 - resistor_backlight_enters: - what: diode ## Fixme use resistor - where: - - [/^mirror.*/, key, enter] - params: - from: "bl_{{colrow}}{{row_net}}" - to: bl_pwr - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [4.3, 0] - rotate: 270 - # Controller Area - promicro: - what: promicro - params: - # Pin Assignments (Controller on top facing down) - # Right Side - P0: "DPD" # Display Data - P1: "DPC" # Display Clock - # GND - # GND - P2: "DPE" # Display CS (nice!view only) FIXME? ZPM default? - P3: "R1" # Row - P4: "R2" # Row - P5: "R3" # Row - P6: "R4" # Row - P7: "R5" # Row - P8: "R6" # Row - P9: "R7" # Row - - # Left Side - RAW: "BAT_P" # Battery Pos - # GND # Ground / Battery Neg - # RST # Reset pin - # VCC # External Power - P21: "C0" # Column - P20: "C1" # Column - P19: "C2" # Column - P18: "C3" # Column - P15: "C4" # Column - P14: "C5" # Column - P16: "C6" # Column - P10: "C7" # Column - - where: - ref: mirror_mcu - shift: [0, 0] - rotate: 90 - - display: - what: nice_view - params: - reverse: true - MOSI: DPD - SCK: DPC - CS: DPE - show_labels: false - jumpers_at_bottom: false - where: - ref: mirror_mcu - shift: [0, -1] # Move the display down a bit to be sure the cable fits between the headers - pads_bat: - what: jstph - params: - pos: BAT_P - neg: GND - where: - ref: mirror_mcu - shift: [-batc_x, -mcu_y/2 - 5] - #rotate: 270 - reset: - what: button - params: - from: GND - to: RST - where: - ref: mirror_mcu - shift: [batc_x, -mcu_y/2 - 8] + footprints: + key_switches: + what: mx + where: [key] + params: + reverse: true + hotswap: true + keycaps: false + from: "{{column_net}}" + to: "{{colrow}}" \ No newline at end of file