samoklava/config.yaml

409 lines
8.8 KiB
YAML

meta:
engine: 4.0.4
name: samoklava
version: 0.3
author: soundmonnster
url: https://github.com/soundmonster/samoklava
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: =colrow
to: =column_net
diode:
type: diode
nets:
from: =colrow
to: =row_net
anchor:
shift: [0, -5]
zones:
matrix:
key.padding: ky
columns:
pinky:
key:
stagger: 0 ky
spread: kx
column_net: col_pinky
ring:
key:
stagger: 0.7 ky
spread: kx
column_net: col_ring
middle:
key:
stagger: 0.2 ky
spread: kx
column_net: col_middle
index:
key:
stagger: -0.2 ky
spread: kx
column_net: col_index
inner:
key:
stagger: -0.1 ky
spread: kx
column_net: col_inner
rows:
bottom:
row_net: row_bottom
home:
row_net: row_home
top:
row_net: row_top
thumbfan:
anchor:
ref: matrix_inner_bottom
shift: [-0.5 kx, -1 ky]
columns:
near:
key:
spread: kx
splay: -15
origin: [-0.5 kx, -0.5 ky]
column_net: col_middle
home:
key:
spread: kx
splay: -15
origin: [-0.5 kx, -0.5 ky]
column_net: col_index
far:
key:
spread: kx
splay: -15
origin: [-0.5 kx, -0.5 ky]
column_net: col_inner
rows:
thumb:
row_net: row_thumb
outlines:
# board dimensions according to JLCPCB: 122.28 mm x 101.05 mm
raw:
- what: rectangle
where: true
asym: source
size: [kx + px, ky + py]
corner: px
thumbfan_glue:
- what: 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:
- what: 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:
- what: 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:
- what: rectangle
where:
- ref: matrix_inner_top
# re-tranalte to new anchor position
shift: [32/2 + 0 kx, 76.5/2 - 4.05 ky]
size: [32, 76.5]
corner: px
switches:
- what: rectangle
where: true
asym: source
size: 14
keycaps:
- what: rectangle
where: true
asym: source
size: [kx, ky]
corner: 1
keywell:
- "raw"
- "+patch_inner"
- "+patch_outer"
- "+thumbfan_glue"
base_outline:
- "keywell"
- "+controller_area"
screw_holes:
top_left:
what: circle
where:
- ref: matrix_ring_home
shift: [-0.5 kx, 0 ky]
radius: 1.05
bottom_left:
what: circle
where:
- ref: matrix_pinky_bottom
shift: [0.5 kx, 0]
radius: 1.05
top_right:
what: circle
where:
- ref: matrix_inner_top
shift: [-0.5 kx, 0]
radius: 1.05
palm:
what: circle
where:
- ref: matrix_index_bottom
shift: [0, -1.06 ky]
radius: 1.05
thumb:
what: circle
where:
- ref: thumbfan_far_thumb
shift: [-0.55 kx, 0]
radius: 1.05
mounting_holes:
$extends: outlines.screw_holes
top_left:
radius: 2.05
bottom_left:
radius: 2.05
top_right:
radius: 2.05
palm:
radius: 2.05
thumb:
radius: 2.05
bottom_outline:
- "base_outline"
# TODO use footprints with pad + via reinforcement as mounting holes
- "-screw_holes"
plate:
- "keywell"
- "-switches"
- "-screw_holes"
pcb:
- "base_outline"
# TODO use footprints with pad + via reinforcement as mounting holes
- "-mounting_holes"
pcbs:
top_plate:
outlines:
edge:
outline: plate
layer: Edge.Cuts
footprints:
jlc_order_number:
what: text
where:
ref:
- matrix_ring_home
shift: [-0.25 kx, 0.5 ky]
params:
text: "JLCJLCJLCJLC"
justify: left
bottom_plate:
outlines:
edge:
outline: bottom_outline
layer: Edge.Cuts
board:
outlines:
edge:
outline: pcb
layer: Edge.Cuts
footprints:
choc_hotswap:
what: choc
where:
- /matrix_.*/
- /thumbfan_.*/
params:
hotswap: true
reverse: true
keycaps: true
from: "{{colrow}}"
to: "{{column_net}}"
diode:
what: diode
where:
- /matrix_.*/
- /thumbfan_.*/
adjust.shift: [0, -5]
params:
from: "{{colrow}}"
to: "{{row_net}}"
mcu_l:
what: promicro
where:
ref:
- matrix_inner_top
shift: [20, -11]
rotate: 270
params:
orientation: up
P4: row_top
P5: row_home
P6: row_bottom
P7: row_thumb
P14: col_inner
P15: col_index
P18: col_middle
P19: col_ring
P20: col_pinky
mcu_r:
what: promicro
where:
ref:
- matrix_inner_top
shift: [22.5, -12.25]
rotate: 270
params:
orientation: down
pad_plus:
what: pad
where:
ref:
- matrix_inner_top
shift: [23, -6]
rotate: 0
params:
front: true
back: true
width: 1.5
height: 1.5
text: "B+"
net: Bplus
pad_minus:
what: pad
where:
ref:
- matrix_inner_top
shift: [23, -3]
rotate: 0
params:
front: true
back: true
width: 1.5
height: 1.5
text: "B-"
net: GND
trrs:
what: trrs_tight
where:
ref:
- matrix_inner_bottom
shift: [32, -15]
rotate: 270
params:
reverse: true
symmetric: false
# The naming of the nets on this footprint is different from the Corne schematics.
A: ""
B: VCC
C: GND
D: P0
jumper_l:
what: jumper
where:
ref:
- matrix_inner_bottom
shift: [23.5, 0]
rotate: 270
params:
side: B
from: Bplus
to: RAW
jumper_r:
what: jumper
where:
ref:
- matrix_inner_bottom
shift: [23.5, 0]
rotate: 270
params:
side: F
from: Bplus
to: RAW
slider_l:
what: slider_threeway
where:
ref:
- matrix_inner_bottom
shift: [30, 0]
rotate: 270
params:
side: F
from: RAW
left: Bplus
right: ''
slider_r:
what: slider_threeway
where:
ref:
- matrix_inner_bottom
shift: [30, 0]
rotate: 270
params:
side: B
from: RAW
left: ''
right: Bplus
reset:
what: reset_button
where:
ref:
- matrix_inner_bottom
shift: [17, 0]
rotate: 270
params:
from: GND
to: RST
info_l:
what: text
where:
ref:
- matrix_pinky_bottom
shift: [0.75 kx, 0]
params:
text: "samoklava v0.3\\nby soundmonster"
justify: left
info_r:
what: text
where:
ref:
- matrix_pinky_bottom
shift: [0.75 kx, 0]
params:
layer: B.SilkS
text: "samoklava v0.3\\nby soundmonster"
justify: right mirror