From 31c9554b0a6d3dbd4e33a58d9d7f1631d819a548 Mon Sep 17 00:00:00 2001 From: Leo Batyuk Date: Fri, 3 Sep 2021 18:37:21 +0200 Subject: [PATCH] rofl > lol --- package.json | 2 +- rofl.yaml | 291 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 292 insertions(+), 1 deletion(-) create mode 100644 rofl.yaml diff --git a/package.json b/package.json index 4899229..1929a45 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "scripts": { - "gen": "ergogen lol.yaml --debug" + "gen": "ergogen rofl.yaml --debug" }, "dependencies": { "ergogen": "github:mrzealot/ergogen" diff --git a/rofl.yaml b/rofl.yaml new file mode 100644 index 0000000..604b113 --- /dev/null +++ b/rofl.yaml @@ -0,0 +1,291 @@ +units: + kx: cx + ky: cy + px: 2 + py: 2 +points: + key: + footprints: + choc_hotswap: + type: choc + params: + hotswap: true + reverse: true + keycaps: true + nets: + # from: P1 + # to: P2 + from: =colrow + to: =column_net + diode: + type: diode + nets: + # from: P3 + # to: P4 + from: =colrow + to: =row_net + anchor: + shift: [0, -5] + zones: + matrix: + # anchor: + # rotate: 5 + key.padding: ky + columns: + pinky: + stagger: 0 ky + spread: kx + key: + column_net: P21 + ring: + stagger: 0.7 ky + spread: kx + key: + column_net: P20 + middle: + stagger: 0.2 ky + spread: kx + key: + column_net: P19 + index: + stagger: -0.2 ky + spread: kx + key: + column_net: P18 + inner: + stagger: -0.1 ky + spread: kx + key: + column_net: P15 + rows: + bottom: + row_net: P7 + home: + row_net: P6 + top: + row_net: P5 + thumbfan: + anchor: + ref: matrix_inner_bottom + shift: [-1.5 kx, -1 ky] + columns: + near: + spread: kx + rotate: -15 + origin: [-0.5 kx, -0.5 ky] + key: + column_net: P19 + home: + spread: kx + rotate: -15 + origin: [-0.5 kx, -0.5 ky] + key: + column_net: P18 + far: + spread: kx + rotate: -15 + origin: [-0.5 kx, -0.5 ky] + key: + column_net: P15 + rows: + thumb: + row_net: P4 +outlines: + exports: + raw: + - type: keys + side: left + size: [kx + px, ky + py] + corner: px + thumbfan_glue: + - type: polygon + points: + - ref: matrix_inner_bottom + shift: [0.5 kx + 0.5px, -0.5 ky + 0.5 py] + - ref: thumbfan_far_thumb + shift: [0.5 kx - 0.5px, 0.5 ky + 0.5 py] + - ref: thumbfan_far_thumb + shift: [0.5 kx - 0.5px, -0.5 ky - 0.5 py] + - ref: thumbfan_near_thumb + shift: [-0.5 kx + 0.5 px, -0.5 ky - 0.5 py] + - ref: matrix_pinky_bottom + shift: [0.5 kx - 0.5 py, -0.5 ky - 0.5 py] + - ref: matrix_pinky_home + - ref: matrix_inner_home + patch_outer: + - type: polygon + points: + - ref: matrix_ring_top + - ref: matrix_ring_bottom + - ref: matrix_pinky_bottom + shift: [-0.5 (kx + px), 0] + - ref: matrix_pinky_top + shift: [-0.5 (kx + px), 0] + patch_inner: + - type: polygon + points: + - ref: matrix_inner_top + shift: [0.5 (kx + px), 0] + - ref: matrix_inner_bottom + shift: [0.5 (kx + px), 0] + - ref: matrix_index_bottom + - ref: matrix_index_top + controller_area: + main: + type: rectangle + anchor: + ref: + - matrix_inner_top + shift: [0 kx, -4.05 ky] + size: [32, 76.5] + corner: px + switches: + main: + type: keys + side: left + size: 14 + bound: false + keycaps: + main: + type: keys + side: left + size: [kx, ky] + bound: false + corner: 1 + keywell: + main: + type: outline + name: raw + patch_inner: + type: outline + name: patch_inner + operation: add + patch_outer: + type: outline + name: patch_outer + operation: add + thumbfan_glue: + type: outline + name: thumbfan_glue + operation: add + base_outline: + main: + type: outline + name: keywell + controller: + type: outline + name: controller_area + operation: add + screw_holes: + top_left: + type: circle + anchor: + - ref: matrix_ring_home + shift: [-0.5 kx, 0 ky] + radius: 1 + bottom_left: + type: circle + anchor: + - ref: matrix_pinky_bottom + shift: [0.5 kx, 0] + radius: 1 + top_right: + type: circle + anchor: + - ref: matrix_inner_top + shift: [-0.5 kx, 0] + radius: 1 + palm: + type: circle + anchor: + - ref: matrix_index_bottom + shift: [0, -1.06 ky] + radius: 1 + thumb: + type: circle + anchor: + - ref: thumbfan_far_thumb + shift: [-0.55 kx, 0] + radius: 1 + mounting_holes: + $extends: outlines.exports.screw_holes + top_left: + radius: 1.6 + bottom_left: + radius: 1.6 + top_right: + radius: 1.6 + palm: + radius: 1.6 + thumb: + radius: 1.6 + bottom_outline: + main: + type: outline + name: base_outline + screw_holes: + type: outline + name: screw_holes + operation: subtract + plate: + main: + type: outline + name: keywell + switches: + type: outline + name: switches + operation: subtract + mounting_holes: + type: outline + # TODO use mounting holes of bigger diameter on PCB + name: screw_holes + operation: subtract + pcb: + main: + type: outline + name: base_outline + mounting_holes: + type: outline + name: mounting_holes + operation: subtract +pcbs: + main: + outlines: + edge: + outline: pcb + layer: Edge.Cuts + # TODO there's a way to add stuff to the silkscreen layer + footprints: + mcu_l: + type: promicro + params: + orientation: up + anchor: + ref: + - matrix_inner_top + shift: [20, -11] + rotate: 270 + mcu_r: + type: promicro + params: + orientation: down + anchor: + ref: + - matrix_inner_top + shift: [22.5, -12.25] + rotate: 270 + trrs: + type: trrs + anchor: + ref: + - matrix_inner_bottom + shift: [30, -8] + rotate: 270 + params: + reverse: true + symmetric: true + nets: + A: P0 + B: P0 + C: GND + D: VCC