meta: engine: 4.0.4 name: corney-island version: 0.1 ref: &kb_ref "Corney Island v0.1" author: ceoloide url: &kb_url https://github.com/ceoloide/corney-island # footprint: &switch_footprint "infused-kim/choc" footprint: &switch_footprint "mx" switch: $extends: presets.mx # $extends: presets.choc_v1 # $extends: presets.choc_v2 presets: # These presets provide different layout options # Select a preset in the `units` section below # Note: The appropriate switch footprint will still need to be set in the `pcb` section mx: # Key and keycap measures kx: u # spacing between key centers (X-axis) ky: u # spacing between key centers (Y-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) led_pos_x: 0 # Led X position relative to the switch center led_pos_y: -4.75 # Led Y position relative to the switch center led_rotation: 180 # Led rotation vertical_underglow_shift: -0.5 kp # How much to shift underglow leds tied to keys vertical_diode_shift: 1.325 # How much to shift to avoid overlap horizontal_diode_shift: 7 diode_rotation: 0 # Diode rotation switch_rotation: 0 # Hotswap north, led south choc_v1: # Key and keycap measures kx: cx # spacing between key centers (X-axis) ky: cy # spacing between key centers (Y-axis) ks: 18.5 # horizontal space between columns (default: 19) kp: 17.5 # vertical padding between keys (deafult: 19) kcow: 13.8 # key cutout hole width (cherry, choc v2: 14, choc v1: 13.8) kcoh: 13.8 # key cutout hole height (cherry, choc v2: 14, choc v1: 13.8) keycw: 17.5 # keycap width (cherry: 18, choc: 17.5) keych: 16.5 # keycap height (cherry: 18, choc: 16.5) led_pos_x: 0 # Led X position relative to the switch center led_pos_y: 4.7 # Led Y position relative to the switch center led_rotation: 0 # Led rotation vertical_underglow_shift: -kp + 7.8 # How much to shift underglow leds tied to keys vertical_diode_shift: 1.5 # How much to shift to avoid overlap horizontal_diode_shift: -0.5 kcow - 0.85 diode_rotation: -180 # Diode rotation switch_rotation: 180 # Hotswap south, led north choc_v2: # Key and keycap measures $extends: presets.choc_v1 kx: u # spacing between key centers (X-axis) ky: u # spacing between key centers (Y-axis) ks: 19 # horizontal space between columns (default: 19) kp: 19 # vertical padding between keys (deafult: 19) keycw: 18 # keycap width (cherry: 18, choc: 17.5) keych: 18 # keycap height (cherry: 18, choc: 16.5) units: # The following statements will make the content of the preset # available in the units context $extends: meta.switch hand_rotation: 0 # Physical measures screw_radius: 1.1 # M2 screws screw_diameter: screw_radius * 2 spacer_radius: 2.15 # M2 standoffs spacer_diameter: spacer_radius * 2 fillet_radius: 0.5 pwr_trace_width: 0.25 gnd_trace_width: 0.25 signal_trace_width: 0.15 via_size: 0.56 # JLCPCB min 0.56 | KiCad default 0.8 via_drill: 0.3 # JLCPCB min 0.3 | KiCad default 0.4 # Thumb splay splay_thumb_middle: 15 splay_thumb_far: 15 points: zones: # Main key matrix matrix: key: padding: kp spread: ks tags: - key - matrix_key anchor: rotate: hand_rotation shift: [100, -100] # Fix KiCad placement columns: outer: key: column_net: C0 rows: top.key: led_prev: LED_18 led_next: LED_19 home.key: led_prev: LED_19 led_next: LED_20 bottom.key: led_prev: LED_20 led_next: LED_21 pinky: key: column_net: C1 rows: top.key: led_prev: LED_17 led_next: LED_18 home.key: led_prev: LED_16 led_next: LED_17 bottom.key: led_prev: LED_15 led_next: LED_16 ring: key: stagger: 0.25 kp column_net: C2 rows: top.key: led_prev: LED_12 led_next: LED_13 home.key: led_prev: LED_13 led_next: LED_14 bottom.key: led_prev: LED_14 led_next: LED_15 middle: key: stagger: 0.125 kp column_net: C3 rows: top.key: led_prev: LED_11 led_next: LED_12 home.key: led_prev: LED_10 led_next: LED_11 bottom.key: led_prev: LED_9 led_next: LED_10 index: key: stagger: -0.125 kp column_net: C4 rows: top.key: led_prev: LED_4 led_next: LED_5 home.key: led_prev: LED_5 led_next: LED_6 bottom.key: led_prev: LED_6 led_next: LED_7 inner: key: stagger: -0.125 kp column_net: C5 rows: top.key: led_prev: LED_3 led_next: LED_4 home.key: led_prev: LED_2 led_next: LED_3 bottom.key: led_prev: LED_1 led_next: LED_2 rows: bottom: row_net: R2 home: row_net: R1 top: row_net: R0 # Thumb cluster thumbfan: key: padding: 0 spread: 0 stagger: 0 tags: - key - thumb_key anchor: ref: matrix_middle_bottom shift: [0.5 ks, -kp -3] columns: near: key: column_net: C3 rows: home.key: led_prev: LED_8 led_next: LED_9 mid: key: splay: -splay_thumb_middle column_net: C4 stagger: -2.750 spread: ks + 2 rows: home.key: led_prev: LED_7 led_next: LED_8 far: key: splay: -splay_thumb_far rotate: 90 column_net: C5 stagger: 2.122 spread: ks + 3.463 tags: - key_1_5u rows: home.key: led_prev: ULED_6 led_next: LED_1 rows: home: row_net: R3 # Helper points underglow_led_1: key: tags: - helper - underglow din: LED dout: ULED_1 anchor: - ref: matrix_inner_top shift: [0, vertical_underglow_shift] underglow_led_2: key: tags: - helper - underglow din: ULED_1 dout: ULED_2 anchor: - ref: matrix_middle_top shift: [0, vertical_underglow_shift] underglow_led_3: key: tags: - helper - underglow din: ULED_2 dout: ULED_3 anchor: - ref: matrix_pinky_top shift: [0, vertical_underglow_shift] underglow_led_4: key: tags: - helper - underglow din: ULED_3 dout: ULED_4 anchor: - ref: matrix_pinky_home shift: [0, vertical_underglow_shift] underglow_led_5: key: tags: - helper - underglow din: ULED_4 dout: ULED_5 anchor: - ref: matrix_middle_bottom shift: [0, vertical_underglow_shift] underglow_led_6: key: tags: - helper - underglow din: ULED_5 dout: ULED_6 anchor: - ref: matrix_inner_bottom shift: [0, vertical_underglow_shift] plate_outline_bottom_1: key.tags: - helper anchor: - ref: matrix_ring_bottom shift: [ks * 0.465 + 0.005, -kp * 0.74 + 0.07] plate_outline_bottom_2: key.tags: - helper anchor: - ref: thumbfan_near_home shift: [-ks * 0.47 - 0.01, -kp * 0.475 - 0.05] plate_outline_bottom_3: key.tags: - helper anchor: - ref: thumbfan_far_home shift: [-ks * 0.725 - 0.028,kp * 0.475 - 0.009] affect: ['x','y'] plate_outline_bottom_4: key.tags: - helper anchor: - ref: thumbfan_far_home shift: [-ks * 0.725 - 0.028,-kp * 0.48 + 0.023] affect: ['x','y'] mcu_cover_top_left: key.tags: - helper anchor: - ref: matrix_inner_top shift: [ks * 0.53 + 0.043,kp * 0.35 - 0.015] mcu_cover_top_right: key.tags: - helper anchor: - ref: mcu_cover_top_left shift: [ks + 0.72,0] mcu_cover_bottom_right: key.tags: - helper anchor: - ref: mcu_cover_top_right shift: [0,-kp * 3.2 + 0.339] rotate: (splay_thumb_middle + splay_thumb_far) * 2 mcu_cover_bottom_left: key.tags: - helper anchor: - aggregate: method: intersect parts: - ref: mcu_cover_top_left - ref: mcu_cover_bottom_right plate_additional_outline_top: key.tags: - helper anchor: - ref: mcu_cover_top_left shift: [-1.03,0] plate_additional_outline_bottom_right: key.tags: - helper anchor: - ref: mcu_cover_bottom_right shift: [-0.63,0] plate_additional_outline_bottom_left: key.tags: - helper anchor: - aggregate: method: intersect parts: - ref: plate_additional_outline_top - ref: plate_additional_outline_bottom_right screw_pcb_left_top: key.tags: - helper - screw anchor: - ref: matrix_pinky_top shift: [-0.5 ks, -0.5 kp] screw_pcb_left_bottom: key.tags: - helper - screw anchor: - ref: matrix_pinky_home shift: [-0.5 ks, -0.5 kp] screw_pcb_right_top: key.tags: - helper - screw anchor: - ref: matrix_inner_top shift: [-0.5 ks -0.032, -0.5 kp +1.139] screw_pcb_thumbfan_left: key.tags: - helper - screw anchor: - ref: thumbfan_near_home shift: [-0.5 ks -4.343, kp * 0.375 +0.01] screw_pcb_thumbfan_right: key.tags: - helper - screw anchor: - ref: thumbfan_far_home shift: [0, 0.5 kp +2.631] screw_mcu_cover_left: key.tags: - helper - screw anchor: - ref: matrix_inner_bottom shift: [0.67 ks + 0.032, -0.15 kp -0.001] screw_mcu_cover_right: key.tags: - helper - screw anchor: - ref: matrix_inner_bottom shift: [1.45 ks - 0.356, -0.6 ks +0.03] outlines: _debug_points: - what: rectangle where: true size: [6,0.01] - what: rectangle where: true size: [0.01,4] - what: circle where: true radius: 0.4 adjust: shift: [3,0] - what: circle where: true radius: 0.4 adjust: shift: [0,2] - what: rectangle where: [key] size: [kx, ky] operation: stack - what: rectangle where: [key_1_5u] size: [kx*1.5, ky] operation: stack - what: rectangle where: /key/ size: [kcow, kcoh] operation: stack - what: circle where: [screw] radius: 2 operation: stack _keycap_outlines: - what: rectangle fillet: 2 where: [key] size: [keycw, keych] - what: rectangle fillet: 2 where: [key_1_5u] size: [keycw*1.5, keych] _switch_cutouts: - what: rectangle where: /key/ size: [kcow, kcoh] _backplate_additional_outline: - what: polygon points: - ref: mcu_cover_top_left - ref: mcu_cover_top_right - ref: mcu_cover_bottom_right - ref: mcu_cover_bottom_left _matrix_outline: - what: polygon points: - ref: matrix_outer_top shift: [-ks * 0.47 +0.01, kp * 0.475 -0.015] - ref: matrix_ring_top shift: [-ks * 0.47 +0.01, kp * 0.225 -0.014] - ref: matrix_ring_top shift: [-ks * 0.47 +0.01, kp * 0.475 -0.015] - ref: matrix_middle_top shift: [-ks * 0.47 +0.01, kp * 0.35 -0.015] - ref: matrix_middle_top shift: [-ks * 0.47 +0.01, kp * 0.468 -0.005] - ref: matrix_middle_top shift: [ks * 0.478, kp * 0.468 -0.005] - ref: matrix_middle_top shift: [ks * 0.478, kp * 0.35 -0.015] - ref: matrix_index_top shift: [ks * 0.478, kp * 0.475 -0.015] - ref: matrix_index_top shift: [ks * 0.478, kp * 0.34 +0.052] - ref: matrix_inner_top shift: [ks * 0.478, kp * 0.468 -0.005] - ref: plate_additional_outline_top - ref: plate_additional_outline_bottom_left - ref: plate_additional_outline_bottom_right - ref: plate_outline_bottom_4 - ref: plate_outline_bottom_3 - ref: plate_outline_bottom_2 - ref: plate_outline_bottom_1 - ref: matrix_outer_bottom shift: [-ks * 0.47 +0.012, -kp * 0.485 -0.025] _plate_outline: - what: outline name: _matrix_outline - what: polygon points: - ref: plate_additional_outline_top - ref: mcu_cover_top_right - ref: mcu_cover_bottom_right - ref: plate_additional_outline_bottom_right - ref: plate_additional_outline_bottom_left _screws: - what: circle where: /screw_pcb/ radius: screw_radius _spacers: - what: circle where: /screw_pcb/ radius: spacer_radius _controller_overlay_screws: - what: circle where: /screw_mcu/ radius: screw_radius _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_outline: - what: outline name: _backplate_outline fillet: fillet_radius pcb: - what: outline name: _pcb_outline - what: outline name: _spacers operation: subtract - what: outline name: _controller_overlay_screws operation: subtract _frontplate_outline: - what: outline name: _matrix_outline fillet: fillet_radius - what: outline name: _switch_cutouts operation: subtract frontplate: - what: outline name: _frontplate_outline - what: outline name: _screws operation: subtract _controller_overlay_outline: - what: outline name: _backplate_additional_outline fillet: fillet_radius controller_overlay: - what: outline name: _controller_overlay_outline - what: outline name: _controller_overlay_screws operation: subtract 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: backplate: outlines: main: outline: backplate footprints: m2_screws: what: screw_hole where: /screw_pcb/ params: size: screw_diameter drill: screw_diameter frontplate: outlines: main: outline: frontplate footprints: m2_screws: what: screw_hole where: /screw_pcb/ params: size: screw_diameter drill: screw_diameter controller_overlay: outlines: main: outline: controller_overlay footprints: m2_screws: what: screw_hole where: /screw_mcu/ params: size: screw_diameter drill: screw_diameter _corney_island_baseline: outlines: &basepcb_outlines main: outline: _pcb_outline keycaps: outline: _keycap_outlines layer: Dwgs.User screws: outline: _spacers layer: Edge.Cuts mcu_screws: outline: _controller_overlay_screws layer: Edge.Cuts footprints: &basepcb_footprints key_switches: what: *switch_footprint where: /key/ params: reverse: true hotswap: true from: "{{column_net}}" to: "{{colrow}}" # The following parameters are specific to choc_v2_hotswap # outer_pad_width_front: 1.6 # outer_pad_width_back: 1.6 adjust: rotate: switch_rotation diodes_b: what: combo_diode where: /key/ params: from: "{{colrow}}" to: "{{row_net}}" include_tht: false reversible: false side: B adjust: shift: [horizontal_diode_shift,vertical_diode_shift] rotate: 90 + diode_rotation diodes_f: what: combo_diode where: /key/ params: from: "{{colrow}}" to: "{{row_net}}" include_tht: false reversible: false side: F adjust: shift: [-1 * horizontal_diode_shift,vertical_diode_shift] rotate: 90 + diode_rotation mcu: what: nice_nano where: matrix_inner_top params: P0: DAT P1: LED P21: C0 P20: C1 P19: C2 P18: C3 P15: C4 P14: C5 P2: SDA P3: SCL P4: CS P5: R0 P6: R1 P7: R2 P8: R3 traces: true show_instructions: false show_silk_labels: true show_via_labels: true adjust: shift: [19.704, 0.375 kp -18.37] jlcpcb_order_number_text: what: infused-kim/text where: matrix_ring_bottom params: text: JLCJLCJLCJLC adjust: shift: [0, -0.65 kp] corney_island: outlines: <<: *basepcb_outlines footprints: <<: *basepcb_footprints display: what: combo_display where: matrix_inner_top params: oled: ssd1306 reversible: true adjust: shift: [0.5 ks + 10.147, 0.375 kp -38.696] reset_switch: what: reset_switch where: matrix_inner_top params: from: GND to: RST adjust: shift: [0.5 ks + 17.817, 0.375 kp -40.251] rotate: 90 trrs: what: trrs where: matrix_inner_top params: A: DAT # Tip and first ring can be together C: GND D: VCC reversible: true symmetric: true adjust: shift: [0.5 ks +19.61, 0.375 kp -50.31] rotate: -90 per_key_leds: what: sk6812mini-e where: /key/ params: P1: VCC P2: "{{key.led_next}}" #DOUT P3: GND P4: "{{key.led_prev}}" #DIN reversible: true reverse_mount: true add_traces_vias: true add_keepout: false add_courtyard: false gnd_trace_width: gnd_trace_width pwr_trace_width: pwr_trace_width signal_trace_width: signal_trace_width via_size: via_size via_drill: via_drill adjust: shift: [led_pos_x, led_pos_y] rotate: led_rotation underglow_leds: what: sk6812mini-e where: [underglow] params: P1: VCC P2: "{{zone.key.dout}}" #DOUT P3: GND P4: "{{zone.key.din}}" #DIN reversible: true reverse_mount: false add_traces_vias: true add_keepout: false add_courtyard: false gnd_trace_width: gnd_trace_width pwr_trace_width: pwr_trace_width signal_trace_width: signal_trace_width via_size: via_size via_drill: via_drill adjust: rotate: 180 corney_island_wireless: outlines: <<: *basepcb_outlines footprints: <<: *basepcb_footprints nice_view: what: nice_view where: matrix_inner_top params: MOSI: SDA SCK: SCL reversible: true show_labels: false jumpers_at_bottom: true adjust: shift: [0.5 ks + 10.147, 0.375 kp -21.25] on_off_switch: what: infused-kim/switch_power where: matrix_inner_top params: reverse: true from: BAT_P to: RAW adjust: shift: [19.5, 0.245 kp] rotate: 90 reset_switch: what: infused-kim/switch_reset where: matrix_inner_top params: reverse: true from: GND to: RST adjust: shift: [11.65, 0.24 kp] rotate: 90 battery_connector: what: jst_battery_connector where: matrix_inner_top params: reversible: true BAT_P: BAT_P BAT_N: GND adjust: shift: [0.5 ks + 7.75, 0.375 kp -45.25] rotate: -90