409 lines
8.8 KiB
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
|
|
|