240 lines
5.6 KiB
YAML
240 lines
5.6 KiB
YAML
# Ergogen config for the protoEepyBoard
|
|
#
|
|
# Reference information:
|
|
# - Keycap size (FK MBK keycaps): 17.5mm x 16.5mm
|
|
|
|
# Metadata
|
|
meta:
|
|
# Required version of Ergogen
|
|
engine: "4.1.0"
|
|
# Version of the board
|
|
version: "1.0"
|
|
author: binaryDiv
|
|
|
|
# Define units and default values used throughout this file
|
|
units:
|
|
# Redefine choc units (keycap size + 1mm clearance)
|
|
cx: 18.5
|
|
cy: 17.5
|
|
|
|
# Size of key rectangle in demo view (keycap size)
|
|
$default_width: cx-1
|
|
$default_height: cy-1
|
|
|
|
# Actual spacing of keys
|
|
$default_spread: cx
|
|
$default_padding: cy
|
|
|
|
# Define the points (i.e. keys)
|
|
points:
|
|
key:
|
|
# Tag all points as "is_key" unless overwritten
|
|
tags: [ is_key ]
|
|
|
|
zones:
|
|
# Primary keyboard zone
|
|
primary:
|
|
# Set anchor to fix placement on KiCad sheet
|
|
anchor:
|
|
shift: [ 100, -150 ]
|
|
|
|
# Key rows (from bottom to top)
|
|
rows:
|
|
# Modifier row (Ctrl, ..., but excluding the thumb keys)
|
|
mod:
|
|
row_net: P9
|
|
# Bottom letter row (Shift, Backspace, ZXCV...)
|
|
bottom:
|
|
row_net: P7
|
|
# Middle letter row (Esc, ASDFG...)
|
|
home:
|
|
row_net: P5
|
|
# Top letter row (Tab, QWERT...)
|
|
top:
|
|
row_net: P3
|
|
# Number row (`, 12345...)
|
|
num:
|
|
row_net: P1
|
|
|
|
# Key columns (from left to right)
|
|
columns:
|
|
# Left-most column (`, Tab, Esc, Shift, Ctrl)
|
|
outer:
|
|
key.column_net: P10
|
|
key.stagger: 0.25cy
|
|
|
|
# First letter column (1, QA, ...)
|
|
one:
|
|
key.column_net: P8
|
|
key.stagger: 0.25cy
|
|
|
|
# Second letter column (2, WSZ)
|
|
two:
|
|
key.column_net: P6
|
|
rows.mod.skip: true
|
|
|
|
# Third letter column (3, EDX)
|
|
three:
|
|
key.column_net: P4
|
|
rows.mod.skip: true
|
|
|
|
# Fourth letter column (4, RFC)
|
|
four:
|
|
key.column_net: P2
|
|
key.stagger: -0.25cy
|
|
rows.mod.skip: true
|
|
|
|
# Fifth letter column (5, TGV)
|
|
five:
|
|
key.column_net: P12
|
|
key.stagger: -0.25cy
|
|
rows.mod.skip: true
|
|
|
|
# Thumb fan
|
|
thumb:
|
|
# Position thumb keys based on the (non-existant) third key in the modifier row
|
|
anchor:
|
|
ref: primary_three_mod
|
|
shift: [ -0.5cx, -0.25cy ]
|
|
|
|
# Rotate the thumb keys around the bottom-left corner of the key
|
|
key:
|
|
row_net: P9
|
|
origin: [ -0.5cx, -0.5cy ]
|
|
splay: -8
|
|
|
|
# Define thumb keys
|
|
columns:
|
|
one:
|
|
key.column_net: P6
|
|
two:
|
|
key.column_net: P4
|
|
three:
|
|
key.column_net: P2
|
|
four:
|
|
key.column_net: P12
|
|
|
|
# Generate outlines that can be used in the PCB and for 3D models
|
|
outlines:
|
|
# Outline of the key caps
|
|
keys:
|
|
- what: rectangle
|
|
where: is_key
|
|
size: [ cx - 1, cy - 1 ]
|
|
|
|
# Outline for the PCB
|
|
board:
|
|
- what: polygon
|
|
points:
|
|
- ref: primary_outer_num
|
|
shift: [ -0.5cx, 0.75cy ]
|
|
- ref: primary_five_num
|
|
shift: [ 0.5cx + 0, cy ]
|
|
- ref: primary_five_bottom
|
|
shift: [ 0.5cx + 0, -cy - 6 ]
|
|
- ref: thumb_four
|
|
shift: [ 0.5cx, 0.5cy ]
|
|
- ref: thumb_four
|
|
shift: [ 0.5cx, -0.5cy ]
|
|
- ref: thumb_three
|
|
shift: [ 0.5cx, -0.5cy ]
|
|
- ref: thumb_two
|
|
shift: [ 0.5cx, -0.5cy ]
|
|
- ref: thumb_one
|
|
shift: [ 0.5cx, -0.5cy ]
|
|
- ref: thumb_one
|
|
shift: [ -0.5cx, -0.5cy ]
|
|
- ref: primary_one_mod
|
|
shift: [ 0.5cx, -0.75cy ]
|
|
- ref: primary_outer_mod
|
|
shift: [ -0.5cx, -0.5cy ]
|
|
expand: 4
|
|
|
|
# Preview version of board with key caps and components for visualization
|
|
board_preview:
|
|
- board
|
|
- ^keys
|
|
# Pin header
|
|
- what: rectangle
|
|
operation: stack
|
|
where: primary_five_num
|
|
size: [ 5.2, 15.4 ]
|
|
adjust.rotate: 90
|
|
adjust.shift: [ 0cx, cy - 2 ]
|
|
|
|
# Cutouts for the switches
|
|
switch_cutouts:
|
|
- what: rectangle
|
|
where: is_key
|
|
size: 14
|
|
|
|
# Board outline with switch cutouts
|
|
switch_plate:
|
|
- board
|
|
- -switch_cutouts
|
|
|
|
# Generate the PCB
|
|
pcbs:
|
|
protoeepyboard:
|
|
outlines:
|
|
main:
|
|
outline: board
|
|
|
|
footprints:
|
|
choc_hotswap:
|
|
what: choc_pretty
|
|
where: is_key
|
|
# Rotate footprint so that the hotswap socket is at the bottom and the LED can be at the top
|
|
adjust.rotate: 180
|
|
params:
|
|
keycaps: true
|
|
reverse: true
|
|
hotswap: true
|
|
from: "{{column_net}}"
|
|
to: "{{colrow}}"
|
|
|
|
diode:
|
|
what: diode_smd
|
|
where: is_key
|
|
adjust:
|
|
shift: [ 0, 4.7 ]
|
|
rotate: 180
|
|
params:
|
|
side: B
|
|
from: "{{colrow}}"
|
|
to: "{{row_net}}"
|
|
|
|
pin_header:
|
|
what: pin_header_2x6
|
|
where:
|
|
ref: primary_five_num
|
|
rotate: 90
|
|
# The footprint's origin is on the first pin, so we need an offset of -6.35 / -1.27 (2.5 pins, 0.5 pins) to
|
|
# center the footprint.
|
|
shift: [ 0 - 6.35, cy - 2 - 1.27 ]
|
|
|
|
# Mounting holes
|
|
mounting_hole_top_left:
|
|
what: mountinghole_m2
|
|
where:
|
|
ref: primary_outer_num
|
|
shift: [ 0cx, 0.5cy + 4 ]
|
|
|
|
mounting_hole_top_right:
|
|
what: mountinghole_m2
|
|
where:
|
|
ref: primary_five_num
|
|
shift: [ 0.5cx + 1.5, 0.5cy + 2 ]
|
|
|
|
mounting_hole_bottom_left:
|
|
what: mountinghole_m2
|
|
where:
|
|
ref: primary_one_mod
|
|
shift: [ -0.25cx, -0.5cy - 4 ]
|
|
|
|
mounting_hole_bottom_right:
|
|
what: mountinghole_m2
|
|
where:
|
|
ref: primary_five_bottom
|
|
shift: [ 0.25cx, -0.75cy - 2 ]
|