From fd9bddcaa0e14e10f256179a7d479e9f9b21141d Mon Sep 17 00:00:00 2001 From: Tony Grosinger Date: Thu, 30 Jun 2022 07:49:44 -0700 Subject: [PATCH] Initialize pseudacris as a copy of chrysemys --- pseudacris/README.md | 12 ++ pseudacris/pseudacris.yaml | 367 +++++++++++++++++++++++++++++++++++++ 2 files changed, 379 insertions(+) create mode 100644 pseudacris/README.md create mode 100644 pseudacris/pseudacris.yaml diff --git a/pseudacris/README.md b/pseudacris/README.md new file mode 100644 index 0000000..232a476 --- /dev/null +++ b/pseudacris/README.md @@ -0,0 +1,12 @@ +# Pseudacris + +A 34-key single-board keyboard created with [Ergogen](https://ergogen.xyz). + +This keyboard is materially extremely similar to Chrysemys, with the intention to change the following: + +- Change from Kailh Choc Mini to the normal Kailh Choc switches. + - I have not been happy with how the mini switches feel to type on. They feels as though they are going to bind up too often and especially make chords more difficult. + - This will reduce manufacturing costs because the extra cutouts needed for the mini switches requires excess milling time. +- Use hotswap sockets for the switches. +- Move the switches closer together, so there is less of a gap between key caps. +- Use an integrated MCU, based on the nRFMicro rather than a nice!nano. diff --git a/pseudacris/pseudacris.yaml b/pseudacris/pseudacris.yaml new file mode 100644 index 0000000..9635e01 --- /dev/null +++ b/pseudacris/pseudacris.yaml @@ -0,0 +1,367 @@ +# +# NOTES: +# +# - The thumb key nets are inverted compared to rest +# - The right half column nets are in a strange order +# + +units: + cx: 18 # Keycap is 17.5mm wide + cy: 17 # Keycap is 16.5mm tall + kx: cx + 0.5 # Key spacing horizontal + ky: cy + 0.5 # Key spacing vertical + plate_padding: 2 + pinky_splay: 6 + ring_splay: 3 + angle: 22 # Angle between two halves + mounting_hole_radius: 1.5 + mcu_height: 33 + mcu_width: 18 + batt_width: 11.5 + batt_length: 31.8 + batt_padding: 1.5 +points: + mirror: + ref: matrix_inner_top + distance: 50 + zones: + matrix: + key: + footprints: + chocmini: + type: chocmini_with_diode + nets: + from: "=row_net" + to: "=column_net" + rotate: -angle + pinky_splay + ring_splay + columns: + pinky: + key: + column_net: P5 + mirror.column_net: P18 + rows: + bottom: + bind: [0.5ky, 1, 0, 0] + home: + bind: [0.5ky, 0.5kx, 0.5ky, 0] + top: + bind: [0, 0.5kx, 0.5ky, 0] + ring: + rotate: -pinky_splay + stagger: 7 + spread: kx + 1 + key: + column_net: P6 + mirror.column_net: P15 + rows: + bottom: + bind: [0.5ky, 0, 0, 5] + home: + bind: [0.5ky, 0.5kx, 0.5ky, 0.5kx] + top: + bind: [0, 0.5kx, 0.5ky, 0] + middle: + rotate: -ring_splay + stagger: 3 + spread: kx + 1 + key: + column_net: P7 + mirror.column_net: P14 + rows: + bottom: + bind: [0.5ky, 5, 0, 5] + home: + bind: [0.5ky, 0.5kx, 0.5ky, 0.5kx] + top: + bind: [0, 0, 0.5ky, 0] + index: + stagger: -6 + key: + column_net: P8 + mirror.column_net: P16 + rows: + bottom: + bind: [0.5ky, 5, 0, 0] + home: + bind: [0.5ky, 0.5kx, 0.5ky, 0.5kx] + top: + bind: [0, 0, 0.5ky, 5] + inner: + stagger: -4 + key: + column_net: P9 + mirror.column_net: P10 + rows: + bottom: + bind: [0.5ky, 2, 0, 0] + home: + bind: [0.5ky, 0.5kx, 0.5ky, 0.5kx] + top: + bind: [0, 5, 0.5ky, 5] + rows: + bottom: + row_net: P3 + mirror.row_net: P3 + home: + row_net: P2 + mirror.row_net: P2 + top: + row_net: P1 + mirror.row_net: P1 + thumbfan: + anchor: + ref: matrix_inner_bottom + shift: [-(kx/2), -(ky + 2)] + key: + footprints: + chocmini: + type: chocmini_with_diode + nets: + from: "=column_net" + to: "=row_net" + columns: + near: + rows: + thumb: + bind: [10, 5, 0, 1] + column_net: P7 + mirror.column_net: P14 + home: + rotate: -15 + spread: 20 + origin: [-10, -9] + rows: + thumb: + bind: [5, 5, 0, 5] + column_net: P8 + mirror.column_net: P16 + far: + rotate: -15 + spread: 20 + origin: [-10, -9] + rows: + thumb: + bind: [5, 1, 0, 5] + column_net: P9 + mirror.column_net: P10 + rows: + thumb: + row_net: P4 + mirror.row_net: P4 +outlines: + exports: + _mcu: + - type: rectangle + size: [mcu_width, mcu_height] + anchor: + ref: + - matrix_inner_top + - mirror_matrix_inner_top + shift: + - -mcu_width/2 + - -mcu_height + 1 + _battery: + - type: rectangle + size: [batt_length, batt_width] + anchor: + ref: + - matrix_inner_top + - mirror_matrix_inner_top + shift: + - -batt_length/2 + - -mcu_height - batt_width - 6 # Below the MCU and bat pads + _battery_cutout: + - type: rectangle + size: + - batt_length + 2 batt_padding + - batt_width + 2 batt_padding + anchor: + ref: + - matrix_inner_top + - mirror_matrix_inner_top + shift: + - -(batt_length + 2 batt_padding)/2 # Half the width + - -mcu_height - batt_width - 6 - batt_padding # Below the MCU and bat pads + _key_outline: + - type: keys + side: both + size: 16 + _center: + - type: polygon + points: + - ref: matrix_inner_top + shift: [cx/2, cy/2-1] + - ref: mirror_matrix_inner_top + shift: [cx/2, cy/2-1] + - ref: mirror_thumbfan_home_thumb + shift: [-cx/3, cy/2] + - ref: mirror_thumbfan_far_thumb + shift: [cx/2, -cy/2+0.5] + - ref: thumbfan_far_thumb + shift: [cx/2, -cy/2+0.5] + - ref: thumbfan_home_thumb + shift: [-cx/3, cy/2] + - type: circle # Bottom center arc + operation: subtract + anchor: + ref: + - thumbfan_far_thumb + - mirror_thumbfan_far_thumb + shift: [0, -38] + radius: 31 + - type: circle # Top center arc + operation: subtract + anchor: + ref: + - matrix_inner_top + - mirror_matrix_inner_top + shift: [0, 32] + radius: 31 + _bottom_arc: + - type: polygon + mirror: true + points: + - ref: matrix_pinky_bottom + shift: [cx/2, -cy/2+0.5] + - ref: thumbfan_near_thumb + shift: [-cx/2, -cy/2+0.5] + - ref: matrix_inner_bottom + shift: [cx/2, cy/2] + - ref: matrix_pinky_bottom + shift: [cx/2, cy/2] + - type: circle + mirror: true + operation: subtract + anchor: + ref: matrix_pinky_bottom + shift: [0, -76.5] + radius: 69 + _keycaps: + - type: keys + side: both + size: [cx, cy] + bound: false + _top_plate_mounting_holes: + - type: circle + anchor: + ref: + - thumbfan_home_thumb + - thumbfan_far_thumb + shift: [0, 3.8 cy] + mirror: true + radius: mounting_hole_radius + - type: circle + anchor: + ref: + - thumbfan_home_thumb + - thumbfan_far_thumb + shift: [0, cy] + mirror: true + radius: mounting_hole_radius + _battery_mounting_holes: + - type: circle + anchor: + ref: + - matrix_inner_bottom + - mirror_matrix_inner_bottom + shift: [-22, -11] + radius: mounting_hole_radius + - type: circle + anchor: + ref: + - matrix_inner_bottom + - mirror_matrix_inner_bottom + shift: [22, -11] + radius: mounting_hole_radius + _panel: + - _key_outline + - +_center + - +_bottom_arc + - -_battery_cutout + panel: + - name: _panel + fillet: 1.5 + - -_top_plate_mounting_holes + - -_battery_mounting_holes + top_plate: + - type: polygon + points: + - ref: matrix_inner_top + shift: [cx/2 + plate_padding, cy/2-1] + - ref: mirror_matrix_inner_top + shift: [cx/2 + plate_padding, cy/2-1] + - ref: mirror_matrix_inner_bottom + shift: [cx/2 + plate_padding, -cy/2] + - ref: mirror_thumbfan_far_thumb + shift: [-cx/2, cy/2 + plate_padding] + - ref: thumbfan_far_thumb + shift: [-cx/2, cy/2 + plate_padding] + - ref: matrix_inner_bottom + shift: [cx/2 + plate_padding, -cy/2] + - type: circle # Match the top center arc + operation: subtract + anchor: + ref: + - matrix_inner_top + - mirror_matrix_inner_top + shift: [0, 32] + radius: 31 + demo_keycaps: + - panel + - ^_keycaps + demo_center: + - _center + - ^_keycaps + demo_battery: + - panel + - ^_mcu + - ^_keycaps + - ^top_plate + - ^_battery +pcbs: + chrysemeys: + outlines: + main: + outline: panel + footprints: + mcu: + type: promicro + params: + orientation: up + anchor: + ref: + - matrix_inner_top + - mirror_matrix_inner_top + rotate: -90 + shift: [0, -16] + battery_pads: + type: battery_pads + nets: + neg: GND + pos: BATT + anchor: + ref: + - matrix_inner_top + - mirror_matrix_inner_top + shift: [0, -34] + reset: + type: two_lead_button + nets: + from: RST + to: GND + anchor: + ref: + - thumbfan_far_thumb + - mirror_thumbfan_far_thumb + shift: [0, 2] + power: + type: slider + nets: + from: BATT + to: RAW + anchor: + ref: + - thumbfan_far_thumb + - mirror_thumbfan_far_thumb + shift: [0, -4] + rotate: 180