# 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: # Bottom letter row (Shift, Backspace, ZXCV...) bottom: # Middle letter row (Esc, ASDFG...) home: # Top letter row (Tab, QWERT...) top: # Number row (`, 12345...) num: # Key columns (from left to right) columns: # Left-most column (`, Tab, Esc, Shift, Ctrl) outer: key.stagger: 0.25cy # First letter column (1, QA, ...) one: key.stagger: 0.25cy # Second letter column (2, WSZ) two: rows.mod.skip: true # Third letter column (3, EDX) three: rows.mod.skip: true # Fourth letter column (4, RFC) four: rows.mod.skip: true key.stagger: -0.25cy # Fifth letter column (5, TGV) five: rows.mod.skip: true key.stagger: -0.25cy # 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: origin: [ -0.5cx, -0.5cy ] splay: -8 # Define thumb keys columns: one: two: three: four: # 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: [ 1.5cx + 0, 1.0cy ] - ref: primary_five_num shift: [ 1.5cx + 0, 1.0cy - 32 ] - ref: thumb_four shift: [ 0.5cx, 0.5cy ] - ref: thumb_four shift: [ 0.5cx, -0.5cy ] - 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 # Pro Micro board - TODO: position? - what: rectangle operation: stack where: primary_five_num size: [ 18, 32 ] adjust.shift: [ cx + 2, 0.25cy ] # 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: "{{colrow}}" to: "{{row_net}}" diode: what: diode_smd where: is_key adjust: shift: [ 0, 4.7 ] rotate: 180 params: side: B from: "{{colrow}}" to: "{{column_net}}" controller: what: promicro_modified where: ref: primary_five_num rotate: -90 shift: [ cx + 2, cy - 14 ] params: orientation: up # TODO: Place reset button # reset_button: # what: button_6x6 # where: # # TODO: Where? # ref: pad_four_five # shift: [ 0, 15 ] # params: # side: B # from: GND # to: RST # Mounting holes # TODO: Place these # mounting_hole_top_left: # what: mountinghole_m2 # where: # ref: pad_one_five # shift: [ -8, 15 ] # TODO: Route all unused pins (+ VCC and GND) to a pin header on the board for potential future use # TODO: Buy fitting pin sockets and/or pin headers :/