phiboard/ergogen/config.yaml

241 lines
5.4 KiB
YAML

meta:
engine: 4.1.0
author: phiwan
units:
kx: cx
ky: cy
# halfs
khx: kx/2
khy: ky/2
# padding
px: kx + 2
py: ky + 2
# adjust preview rendering
$default_width: cx
$default_height: cy
points:
zones:
# main key matrix
matrix:
anchor.shift: [170, -170]
key:
tags: [key]
padding: ky
spread: kx
columns:
outer:
# upper key
rows.top.column_net: cpinky
rows.top.row_net: rthumbs
# lower key
rows.home.column_net: cring
rows.home.row_net: rthumbs
# this column only has 2 keys
rows.bottom.skip: true
pinky.key:
stagger: 5
column_net: cpinky
ring.key:
stagger: 10
column_net: cring
middle.key:
stagger: 7
column_net: cmiddle
index.key:
stagger: -7
column_net: cindex
inner.key:
stagger: 0
column_net: cinner
rows:
bottom.row_net: rbottom
home.row_net: rhome
top.row_net: rtop
# thumb clusters
thumbs:
key:
tags: [key]
spread: 22
anchor:
ref: matrix_inner_bottom
shift: [-24, -ky]
columns:
left.key:
splay: 0
column_net: cmiddle
middle.key:
splay: -15
shift: [0, -3]
column_net: cindex
right.key:
splay: -15
shift: [0, -6]
column_net: cinner
rows:
cluster.row_net: rthumbs
# screw points
screws:
key.tags: [screw]
key.spread: 0
anchor:
ref: matrix_outer_top
columns:
left_top.key.shift: [khx+0.3, -3.5]
left_bottom.key.shift: [khx+0.3, -ky-3.5]
middle_top.key.shift: [2kx+khx+0.3, ky-3.5]
middle_bottom.key.shift: [3kx+6, -ky-7]
right_top.key.shift: [4kx+khx, +6.5]
right_bottom.key.shift: [5kx+khx+2, -2ky+2]
outlines:
keys:
- what: rectangle
where: [key]
size: [kx, ky]
board:
- what: polygon
operation: stack
points:
- ref: matrix_outer_top
shift: [-khx-2,khy+2]
- ref: matrix_outer_top
shift: [khx-2,khy+2]
- ref: matrix_pinky_top
shift: [-khx-2,khy+2]
- ref: matrix_pinky_top
shift: [khx-2,khy+2]
- ref: matrix_ring_top
shift: [-khx-2,khy+2]
- ref: matrix_ring_top
shift: [khx-2,khy+2]
- ref: matrix_middle_top
shift: [-khx-2,khy+2]
- ref: matrix_middle_top
shift: [khx+2,khy+2]
- ref: matrix_index_top
shift: [-khx+2,khy+2]
- ref: matrix_inner_top
shift: [30.6,khy+2]
- ref: thumbs_right_cluster
shift: [khx+2,khy+1] # not an error
- ref: thumbs_right_cluster
shift: [khx+2,-khy-2]
- ref: thumbs_right_cluster
shift: [-khx,-khy-2]
- ref: thumbs_middle_cluster
shift: [-khx-1,-khy-2] # not an error
- ref: thumbs_left_cluster
shift: [-khx-2,-khy-2]
- ref: matrix_pinky_bottom
shift: [khx,-khy-2]
- ref: matrix_pinky_bottom
shift: [-khx-2,-khy-2]
- ref: matrix_outer_home
shift: [khx-2,-khy-2]
- ref: matrix_outer_home
shift: [-khx-2,-khy-2]
fillet: 2
combined:
- name: board
- operation: stack
name: keys
pcbs:
pcb:
outlines.main.outline: board
footprints:
# hotswap choc
switches:
what: choc
where: [key]
params:
keycaps: false # outline on the pcb
reverse: true
hotswap: true
from: "{{column_net}}"
to: "{{colrow}}"
# smd diodes
diodes:
what: combo_diode
where: [key]
params:
include_smd: true
include_tht: false
reversible: true
from: "{{colrow}}"
to: "{{row_net}}"
adjust:
shift: [0, -5]
# mcu with reversible pins
xiao_ble:
what: xiao_ble_smd_reversible
params:
D0: "rtop"
D1: "rhome"
D2: "rbottom"
D3: "rthumbs"
D4: "sda"
D5: "scl"
D6: "cinner"
D10: "cpinky"
D9: "cring"
D8: "cmiddle"
D7: "cindex"
where:
ref: matrix_inner_top
shift: [kx+2, 0]
# raw battery pads, no connector
battery_pads:
what: pads
params:
reverse: true
net_1: "BAT+"
net_2: "GND"
label_1: "+"
label_2: ""
space: 1.25
where:
ref: matrix_inner_home
shift: [kx+2, 0]
# OLED screen
# added manually in kicad
# uses jumpers to make it reversible
screws:
what: mounting_hole
params:
drill: 3.6
where: [screw]
# silkscreen
# added manually in kicad
# different graphics for front and back
# small custom graphics
# different graphics for front and back
phi-caps:
what: phi-caps
params.scale: 0.013
where:
ref: thumbs_left_cluster
shift: [-2kx-2, 16]
phi-logo:
what: phi-logo
params.scale: 0.011
where:
ref: thumbs_left_cluster
shift: [-2kx+2, 14]