Initialize pseudacris as a copy of chrysemys

This commit is contained in:
Tony Grosinger 2022-06-30 07:49:44 -07:00
parent 8afcece751
commit fd9bddcaa0
2 changed files with 379 additions and 0 deletions

12
pseudacris/README.md Normal file
View File

@ -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.

367
pseudacris/pseudacris.yaml Normal file
View File

@ -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