samoklava/config.yaml

431 lines
9.5 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_l:
what: trrs
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
# trrs_r:
# type: trrs
# anchor:
# ref:
# - matrix_inner_bottom
# shift: [32, -13]
# rotate: 270
# params:
# reverse: true
# symmetric: false
# # The naming of the nets on this footprint is different from the Corne schematics.
# nets:
# A: ""
# B: VCC
# C: GND
# D: P0
# jumper_l:
# type: jumper
# anchor:
# ref:
# - matrix_inner_bottom
# shift: [23.5, 0]
# rotate: 270
# params:
# side: B
# nets:
# from: Bplus
# to: RAW
# jumper_r:
# type: jumper
# anchor:
# ref:
# - matrix_inner_bottom
# shift: [23.5, 0]
# rotate: 270
# params:
# side: F
# nets:
# from: Bplus
# to: RAW
# slider_l:
# type: slider
# anchor:
# ref:
# - matrix_inner_bottom
# shift: [30, 0]
# rotate: 270
# params:
# side: F
# nets:
# from: RAW
# left: Bplus
# right: ''
# slider_r:
# type: slider
# anchor:
# ref:
# - matrix_inner_bottom
# shift: [30, 0]
# rotate: 270
# params:
# side: B
# nets:
# from: RAW
# left: ''
# right: Bplus
# reset:
# type: button
# anchor:
# ref:
# - matrix_inner_bottom
# shift: [17, 0]
# rotate: 270
# params:
# variant: 2_pin_th
# nets:
# from: GND
# to: RST
# info_l:
# type: text
# anchor:
# ref:
# - matrix_pinky_bottom
# shift: [0.75 kx, 0]
# params:
# text: "samoklava v0.1\\nby soundmonster"
# justify: left
# info_r:
# type: text
# anchor:
# ref:
# - matrix_pinky_bottom
# shift: [0.75 kx, 0]
# params:
# layer: B.SilkS
# text: "samoklava v0.1\\nby soundmonster"
# justify: right mirror
#