218 lines
5.2 KiB
YAML
218 lines
5.2 KiB
YAML
# Ergogen config for the eepyBoard
|
|
#
|
|
# 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 + 1.5mm clearance)
|
|
cx: 19
|
|
cy: 18
|
|
|
|
# Size of keycaps
|
|
kcx: 17.5
|
|
kcy: 16.5
|
|
|
|
# Size of key rectangle in demo view (keycap size)
|
|
$default_width: 17.5
|
|
$default_height: 16.5
|
|
|
|
# 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)
|
|
mods:
|
|
# Bottom letter row (Shift, ZXCV...)
|
|
bottom:
|
|
# Middle/home letter row (Caps Lock, ASDFG...)
|
|
home:
|
|
# Top letter row (Tab, QWERT...)
|
|
top:
|
|
# Number row (`, 12345...)
|
|
numbers:
|
|
|
|
# Key columns (from left to right)
|
|
columns:
|
|
# Left-most column (`, Tab, Caps Lock, Shift, Ctrl)
|
|
zero:
|
|
# First letter column (1, Q)
|
|
one:
|
|
# Second letter column (2, W)
|
|
two:
|
|
rows.mods.skip: true
|
|
# Third letter column (3, E)
|
|
three:
|
|
rows.mods.skip: true
|
|
# Fourth letter column (4, R)
|
|
four:
|
|
rows.mods.skip: true
|
|
# Fifth letter column (5, T)
|
|
five:
|
|
rows.mods.skip: true
|
|
# Sixth letter column (6, Y)
|
|
six:
|
|
rows.mods.skip: true
|
|
# Seventh letter column (7, U)
|
|
seven:
|
|
rows.mods.skip: true
|
|
# Eighth letter column (8, I)
|
|
eight:
|
|
rows.mods.skip: true
|
|
# Nineth letter column (9, O)
|
|
nine:
|
|
rows.mods.skip: true
|
|
# Tenth letter column (0, P)
|
|
ten:
|
|
rows.mods.skip: true
|
|
# Eleventh letter column (-, [)
|
|
eleven:
|
|
# Twelfth letter column (=, ])
|
|
twelve:
|
|
|
|
# Thumb fan
|
|
thumb:
|
|
# Position thumb keys based on the (non-existant) third key in the modifier row
|
|
anchor:
|
|
ref: primary_two_mods
|
|
shift: [ 2, 0 ]
|
|
|
|
# Rotate the thumb keys around the bottom-left corner of the key
|
|
key:
|
|
origin: [ -0.5cx, -0.5cy ]
|
|
splay: -4
|
|
|
|
# Define thumb keys
|
|
columns:
|
|
one:
|
|
two:
|
|
three:
|
|
four:
|
|
|
|
# Mirror the board with a distance of 1 key between the upper corners
|
|
mirror:
|
|
ref: primary_five_numbers
|
|
shift: [ 0.5cx, 0.5cx ]
|
|
distance: 1cx
|
|
|
|
# Extra row above the primary zone (including rotary encoder)
|
|
extra:
|
|
# Position extra row above primary zone with 3mm of vertical offset
|
|
anchor:
|
|
ref: primary_zero_numbers
|
|
shift: [ 0, cy + 3 ]
|
|
|
|
# Define extra keys
|
|
# (The "F" keys will likely be used for macros and other special functions, but can be mapped to specific F keys
|
|
# when needed.)
|
|
columns:
|
|
# Escape key
|
|
esc:
|
|
|
|
# Block of 4 extra keys with 6mm offset
|
|
f1:
|
|
key.spread: cx + 6
|
|
f2:
|
|
f3:
|
|
f4:
|
|
|
|
# Block of 4 extra keys with 6mm offset
|
|
f5:
|
|
key.spread: cx + 6
|
|
f6:
|
|
f7:
|
|
f8:
|
|
|
|
# Rotary encoder in the upper right corner, with offset to be centered between columns eleven/twelve
|
|
rotary:
|
|
key:
|
|
spread: 2.5cx + 7
|
|
width: 20.5
|
|
height: 20.5
|
|
tags: [ is_rotary_encoder ]
|
|
|
|
# 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: [ kcx, kcy ]
|
|
|
|
# Rotary encoder with knob (2cm)
|
|
rotary_encoder:
|
|
- what: rectangle
|
|
operation: stack
|
|
size: [ 14, 14 ]
|
|
- what: circle
|
|
operation: stack
|
|
radius: 10
|
|
|
|
# Outline for the PCB
|
|
board:
|
|
- what: polygon
|
|
points:
|
|
- ref: primary_zero_numbers
|
|
shift: [ -0.5cx, 1.5cy + 3 ]
|
|
- ref: primary_twelve_numbers
|
|
shift: [ 0.5cx, 1.5cy + 3 ]
|
|
- ref: primary_twelve_mods
|
|
shift: [ 0.5cx, -0.5cy ]
|
|
- ref: mirror_thumb_four
|
|
shift: [ 0.5cx, -0.5cy ]
|
|
- ref: thumb_four
|
|
shift: [ 0.5cx, -0.5cy ]
|
|
- ref: primary_zero_mods
|
|
shift: [ -0.5cx, -0.5cy ]
|
|
expand: 4
|
|
|
|
# Preview version of board with key caps and components for visualization
|
|
board_preview:
|
|
- board
|
|
- ^keys
|
|
# RP2040 controller board
|
|
- what: rectangle
|
|
operation: stack
|
|
where: primary_eleven_numbers
|
|
size: [ 54, 20 ]
|
|
adjust.shift: [ 0, cy + 3 ]
|
|
# Rotary encoder (component)
|
|
- what: outline
|
|
name: rotary_encoder
|
|
operation: stack
|
|
where: is_rotary_encoder
|
|
|
|
# Cutouts for the switches
|
|
switch_cutouts:
|
|
- what: rectangle
|
|
where: true
|
|
size: 14
|
|
|
|
# Board outline with switch cutouts
|
|
switch_plate:
|
|
- board
|
|
- -switch_cutouts
|