# 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