Ergogen: Rework layout for eepyBoard rev3
This commit is contained in:
parent
053df48ad1
commit
6ad3791b0e
|
|
@ -8,7 +8,7 @@ meta:
|
||||||
# Required version of Ergogen
|
# Required version of Ergogen
|
||||||
engine: "4.1.0"
|
engine: "4.1.0"
|
||||||
# Version of the board
|
# Version of the board
|
||||||
version: "1.1"
|
version: "1.2"
|
||||||
author: binaryDiv
|
author: binaryDiv
|
||||||
|
|
||||||
# Define units and default values used throughout this file
|
# Define units and default values used throughout this file
|
||||||
|
|
@ -30,13 +30,13 @@ units:
|
||||||
$default_padding: cy
|
$default_padding: cy
|
||||||
|
|
||||||
# Vertical offset between function key row and main zone
|
# Vertical offset between function key row and main zone
|
||||||
function_offset: 3
|
function_row_offset: 3
|
||||||
|
|
||||||
# Horizontal offset/gap between function key groups (Esc, F1-F4, F5-F8, F9-F12)
|
# Outline border (border between keys and PCB edge)
|
||||||
function_gap: 6
|
border_left: -6
|
||||||
|
border_right: 6
|
||||||
# Distance between left and right half of the main zone
|
border_top: 5
|
||||||
split_gap_width: 2cx + 3
|
border_bottom: -4
|
||||||
|
|
||||||
# Radius of rotary encoder knob (just for visualization)
|
# Radius of rotary encoder knob (just for visualization)
|
||||||
rotary_encoder_radius: 10
|
rotary_encoder_radius: 10
|
||||||
|
|
@ -62,132 +62,118 @@ points:
|
||||||
# Modifier row (Ctrl etc., but excluding the thumb keys)
|
# Modifier row (Ctrl etc., but excluding the thumb keys)
|
||||||
mods:
|
mods:
|
||||||
row_net: ROW1
|
row_net: ROW1
|
||||||
led_next_key: "{{zone.name}}_{{neighbor_col_left}}_{{row}}"
|
led_next_key: "{{zone.name}}_{{neighbor_col_right}}_{{row}}"
|
||||||
|
tags: [ is_key, flip_led ]
|
||||||
|
|
||||||
# Bottom letter row
|
# Bottom letter row
|
||||||
bottom:
|
bottom:
|
||||||
row_net: ROW2
|
row_net: ROW2
|
||||||
led_next_key: "{{zone.name}}_{{neighbor_col_right}}_{{row}}"
|
led_next_key: "{{zone.name}}_{{neighbor_col_left}}_{{row}}"
|
||||||
tags: [ is_key, flip_led ]
|
|
||||||
|
|
||||||
# Home letter row
|
# Home letter row
|
||||||
home:
|
home:
|
||||||
row_net: ROW3
|
row_net: ROW3
|
||||||
led_next_key: "{{zone.name}}_{{neighbor_col_left}}_{{row}}"
|
led_next_key: "{{zone.name}}_{{neighbor_col_right}}_{{row}}"
|
||||||
|
tags: [ is_key, flip_led ]
|
||||||
|
|
||||||
# Top letter row
|
# Top letter row
|
||||||
top:
|
top:
|
||||||
row_net: ROW4
|
row_net: ROW4
|
||||||
led_next_key: "{{zone.name}}_{{neighbor_col_right}}_{{row}}"
|
led_next_key: "{{zone.name}}_{{neighbor_col_left}}_{{row}}"
|
||||||
tags: [ is_key, flip_led ]
|
|
||||||
|
|
||||||
# Number row
|
# Number row
|
||||||
numbers:
|
numbers:
|
||||||
row_net: ROW5
|
row_net: ROW5
|
||||||
led_next_key: "{{zone.name}}_{{neighbor_col_left}}_{{row}}"
|
led_next_key: "{{zone.name}}_{{neighbor_col_right}}_{{row}}"
|
||||||
|
tags: [ is_key, flip_led ]
|
||||||
|
|
||||||
# Key columns (from left to right)
|
# Key columns (from left to right)
|
||||||
columns:
|
columns:
|
||||||
# Left-most column (extra keys)
|
# Left-most column (`, Tab, Shift, etc.)
|
||||||
left:
|
left:
|
||||||
key.column_net: COL1
|
key.column_net: COL1
|
||||||
key.neighbor_col_right: zero
|
|
||||||
rows.numbers.led_next_key: main_left_top
|
|
||||||
rows.home.led_next_key: main_left_bottom
|
|
||||||
# Use placeholder to mark end of the RGB LED chain (unused net name)
|
|
||||||
rows.mods.led_next_key: END_OF_CHAIN
|
|
||||||
# Modifier column (`, Tab, Shift, etc.)
|
|
||||||
zero:
|
|
||||||
key.stagger: 1/8cy
|
|
||||||
key.column_net: COL2
|
|
||||||
key.neighbor_col_left: left
|
|
||||||
key.neighbor_col_right: one
|
key.neighbor_col_right: one
|
||||||
|
rows.top.led_next_key: main_left_home
|
||||||
|
rows.bottom.led_next_key: main_left_mods
|
||||||
# First letter column (1, Q)
|
# First letter column (1, Q)
|
||||||
one:
|
one:
|
||||||
key.stagger: 1/8cy
|
key.column_net: COL2
|
||||||
key.column_net: COL3
|
key.neighbor_col_left: left
|
||||||
key.neighbor_col_left: zero
|
|
||||||
key.neighbor_col_right: two
|
key.neighbor_col_right: two
|
||||||
|
rows.mods.led_next_key: thumb_one
|
||||||
# Second letter column (2, W)
|
# Second letter column (2, W)
|
||||||
two:
|
two:
|
||||||
key.stagger: 1/8cy
|
key.column_net: COL3
|
||||||
key.column_net: COL4
|
|
||||||
key.neighbor_col_left: one
|
key.neighbor_col_left: one
|
||||||
key.neighbor_col_right: three
|
key.neighbor_col_right: three
|
||||||
rows.mods.skip: true
|
rows.mods.skip: true
|
||||||
# Third letter column (3, E)
|
# Third letter column (3, E)
|
||||||
three:
|
three:
|
||||||
key.column_net: COL5
|
key.column_net: COL4
|
||||||
key.neighbor_col_left: two
|
key.neighbor_col_left: two
|
||||||
key.neighbor_col_right: four
|
key.neighbor_col_right: four
|
||||||
rows.mods.skip: true
|
rows.mods.skip: true
|
||||||
# Fourth letter column (4, R)
|
# Fourth letter column (4, R)
|
||||||
four:
|
four:
|
||||||
key.stagger: -(1/4cy)
|
key.column_net: COL5
|
||||||
key.column_net: COL6
|
|
||||||
key.neighbor_col_left: three
|
key.neighbor_col_left: three
|
||||||
key.neighbor_col_right: five
|
key.neighbor_col_right: five
|
||||||
rows.mods.skip: true
|
rows.mods.skip: true
|
||||||
# Fifth letter column (5, T)
|
# Fifth letter column (5, T)
|
||||||
five:
|
five:
|
||||||
key.stagger: -(1/4cy)
|
key.column_net: COL6
|
||||||
key.column_net: COL7
|
|
||||||
key.neighbor_col_left: four
|
key.neighbor_col_left: four
|
||||||
key.neighbor_col_right: six
|
key.neighbor_col_right: six
|
||||||
rows.top.led_next_key: arrow_keys_up
|
|
||||||
rows.bottom.led_next_key: arrow_keys_down
|
|
||||||
rows.mods.skip: true
|
rows.mods.skip: true
|
||||||
|
|
||||||
# (Gap with arrow keys in the middle: Matrix column 8)
|
|
||||||
|
|
||||||
# Sixth letter column (6, Y)
|
# Sixth letter column (6, Y)
|
||||||
six:
|
six:
|
||||||
key.spread: cx + split_gap_width
|
key.column_net: COL7
|
||||||
key.column_net: COL9
|
|
||||||
key.neighbor_col_left: five
|
key.neighbor_col_left: five
|
||||||
key.neighbor_col_right: seven
|
key.neighbor_col_right: seven
|
||||||
rows.home.led_next_key: arrow_keys_right
|
|
||||||
rows.mods.skip: true
|
rows.mods.skip: true
|
||||||
# Seventh letter column (7, U)
|
# Seventh letter column (7, U)
|
||||||
seven:
|
seven:
|
||||||
key.stagger: 1/4cy
|
key.column_net: COL8
|
||||||
key.column_net: COL10
|
|
||||||
key.neighbor_col_left: six
|
key.neighbor_col_left: six
|
||||||
key.neighbor_col_right: eight
|
key.neighbor_col_right: eight
|
||||||
rows.mods.skip: true
|
rows.mods.skip: true
|
||||||
# Eighth letter column (8, I)
|
# Eighth letter column (8, I)
|
||||||
eight:
|
eight:
|
||||||
key.stagger: 1/4cy
|
key.column_net: COL9
|
||||||
key.column_net: COL11
|
|
||||||
key.neighbor_col_left: seven
|
key.neighbor_col_left: seven
|
||||||
key.neighbor_col_right: nine
|
key.neighbor_col_right: nine
|
||||||
rows.mods.skip: true
|
rows.mods.skip: true
|
||||||
# Nineth letter column (9, O)
|
# Nineth letter column (9, O)
|
||||||
nine:
|
nine:
|
||||||
key.column_net: COL12
|
key.column_net: COL10
|
||||||
key.neighbor_col_left: eight
|
key.neighbor_col_left: eight
|
||||||
key.neighbor_col_right: ten
|
key.neighbor_col_right: ten
|
||||||
rows.mods.skip: true
|
rows.mods.skip: true
|
||||||
# Tenth letter column (0, P)
|
# Tenth letter column (0, P)
|
||||||
ten:
|
ten:
|
||||||
key.stagger: -(1/8cy)
|
key.column_net: COL11
|
||||||
key.column_net: COL13
|
|
||||||
key.neighbor_col_left: nine
|
key.neighbor_col_left: nine
|
||||||
key.neighbor_col_right: eleven
|
key.neighbor_col_right: eleven
|
||||||
rows.mods.led_next_key: mirror_thumb_one
|
|
||||||
# Eleventh letter column (-, [)
|
# Eleventh letter column (-, [)
|
||||||
eleven:
|
eleven:
|
||||||
key.stagger: -(1/8cy)
|
key.column_net: COL12
|
||||||
key.column_net: COL14
|
|
||||||
key.neighbor_col_left: ten
|
key.neighbor_col_left: ten
|
||||||
key.neighbor_col_right: twelve
|
key.neighbor_col_right: twelve
|
||||||
# Twelfth letter column (=, ])
|
# Twelfth letter column (=, ])
|
||||||
twelve:
|
twelve:
|
||||||
key.stagger: -(1/8cy)
|
key.column_net: COL13
|
||||||
key.column_net: COL15
|
|
||||||
key.neighbor_col_left: eleven
|
key.neighbor_col_left: eleven
|
||||||
rows.top.led_next_key: main_twelve_home
|
key.neighbor_col_right: right
|
||||||
rows.bottom.led_next_key: main_twelve_mods
|
rows.numbers.led_next_key: main_right_top
|
||||||
|
# Right-most column (Enter, Shift etc.)
|
||||||
|
right:
|
||||||
|
key.column_net: COL14
|
||||||
|
key.neighbor_col_left: twelve
|
||||||
|
# Skip right-most key in numbers row because that wouldn't fit with the controller board
|
||||||
|
rows.numbers.skip: true
|
||||||
|
rows.home.led_next_key: main_right_bottom
|
||||||
|
# Use placeholder to mark end of the RGB LED chain (unused net name)
|
||||||
|
rows.mods.led_next_key: END_OF_CHAIN
|
||||||
|
|
||||||
# Thumb fan
|
# Thumb fan
|
||||||
thumb:
|
thumb:
|
||||||
|
|
@ -199,224 +185,137 @@ points:
|
||||||
# Zone-wide key settings
|
# Zone-wide key settings
|
||||||
key:
|
key:
|
||||||
row_net: ROW1
|
row_net: ROW1
|
||||||
|
tags: [ is_key, flip_led ]
|
||||||
# Rotate the thumb keys around the bottom-left corner of the key
|
# Rotate the thumb keys around the bottom-left corner of the key
|
||||||
origin: [ -0.5cx, -0.5cy ]
|
origin: [ -0.5cx, -0.5cy ]
|
||||||
splay: -6
|
splay: -4
|
||||||
|
|
||||||
# Define thumb keys
|
# Define thumb keys
|
||||||
columns:
|
columns:
|
||||||
one:
|
one:
|
||||||
key.column_net: COL4
|
key.column_net: COL3
|
||||||
key.mirror.column_net: COL12
|
|
||||||
key.led_next_key: main_one_mods
|
|
||||||
key.mirror.led_next_key: mirror_thumb_two
|
|
||||||
two:
|
|
||||||
key.column_net: COL5
|
|
||||||
key.mirror.column_net: COL11
|
|
||||||
key.led_next_key: thumb_one
|
|
||||||
key.mirror.led_next_key: mirror_thumb_three
|
|
||||||
three:
|
|
||||||
key.column_net: COL6
|
|
||||||
key.mirror.column_net: COL10
|
key.mirror.column_net: COL10
|
||||||
key.led_next_key: thumb_two
|
key.led_next_key: thumb_two
|
||||||
key.mirror.led_next_key: mirror_thumb_four
|
key.mirror.led_next_key: main_ten_mods
|
||||||
four:
|
two:
|
||||||
key.column_net: COL7
|
key.column_net: COL4
|
||||||
key.mirror.column_net: COL9
|
key.mirror.column_net: COL9
|
||||||
key.led_next_key: thumb_three
|
key.led_next_key: thumb_three
|
||||||
key.mirror.led_next_key: thumb_center
|
key.mirror.led_next_key: mirror_thumb_one
|
||||||
|
three:
|
||||||
|
key.column_net: COL5
|
||||||
|
key.mirror.column_net: COL8
|
||||||
|
key.led_next_key: thumb_center
|
||||||
|
key.mirror.led_next_key: mirror_thumb_two
|
||||||
|
|
||||||
# Mirror the thumb fan
|
# Mirror the thumb fan
|
||||||
mirror:
|
mirror:
|
||||||
ref: main_five_bottom
|
ref: main_five_bottom
|
||||||
shift: [ 0.5cx, 0.5cy ]
|
shift: [ 0.5cx, 0.5cy ]
|
||||||
distance: split_gap_width
|
|
||||||
|
|
||||||
# Single key centered between thumb keys
|
# Single key centered between thumb keys (space key)
|
||||||
thumb_center:
|
thumb_center:
|
||||||
anchor:
|
anchor:
|
||||||
# Center between the two inner thumb keys
|
# Center between the two inner thumb keys
|
||||||
aggregate.parts:
|
aggregate.parts:
|
||||||
- thumb_four
|
- thumb_three
|
||||||
- mirror_thumb_four
|
- mirror_thumb_three
|
||||||
shift: [ 0, -0.25cy ]
|
shift: [ 0, -0.125cy ]
|
||||||
|
|
||||||
# Key settings (instead of rows/columns)
|
# Key settings (instead of rows/columns)
|
||||||
key:
|
key:
|
||||||
width: 1.5kcx
|
width: 1.5kcx
|
||||||
row_net: ROW1
|
row_net: ROW1
|
||||||
column_net: COL8
|
column_net: COL6
|
||||||
led_next_key: thumb_four
|
led_next_key: mirror_thumb_three
|
||||||
tags: [ is_key, 1_5u ]
|
tags: [ is_key, flip_led, 1_5u ]
|
||||||
|
|
||||||
# Arrow keys in the middle of the keyboard
|
|
||||||
# In the matrix, these keys act as 4 keys in a single column (column 8, row 2 to 5)
|
|
||||||
arrow_keys:
|
|
||||||
anchor:
|
|
||||||
# Center between the V and B keys, then shift down half a key
|
|
||||||
aggregate.parts:
|
|
||||||
- main_five_bottom
|
|
||||||
- main_six_bottom
|
|
||||||
shift: [ 0, -cy/2 ]
|
|
||||||
|
|
||||||
# Assign all keys to the same column
|
|
||||||
key:
|
|
||||||
column_net: COL8
|
|
||||||
|
|
||||||
rows:
|
|
||||||
# Bottom row: Only the down key
|
|
||||||
bottom:
|
|
||||||
row_net: ROW2
|
|
||||||
tags: [ is_key, flip_led ]
|
|
||||||
|
|
||||||
# Center row: Left and right keys (shifted to the left to center them)
|
|
||||||
center:
|
|
||||||
adjust.shift: [ -cx/2, 0 ]
|
|
||||||
# Use ROW3 for the left key and ROW5 for the right key (overridden in columns)
|
|
||||||
row_net: ROW3
|
|
||||||
|
|
||||||
# Top row: Only the up key
|
|
||||||
top:
|
|
||||||
row_net: ROW4
|
|
||||||
tags: [ is_key, flip_led ]
|
|
||||||
|
|
||||||
columns:
|
|
||||||
# Left column: Up, left, down keys
|
|
||||||
left:
|
|
||||||
rows.top:
|
|
||||||
name: arrow_keys_up
|
|
||||||
led_next_key: main_six_top
|
|
||||||
rows.center:
|
|
||||||
name: arrow_keys_left
|
|
||||||
led_next_key: main_five_home
|
|
||||||
rows.bottom:
|
|
||||||
name: arrow_keys_down
|
|
||||||
led_next_key: main_six_bottom
|
|
||||||
|
|
||||||
# Right column: Only right key (assigned to matrix row 5)
|
|
||||||
right:
|
|
||||||
rows.top.skip: true
|
|
||||||
rows.center:
|
|
||||||
name: arrow_keys_right
|
|
||||||
row_net: ROW5
|
|
||||||
led_next_key: arrow_keys_left
|
|
||||||
rows.bottom.skip: true
|
|
||||||
|
|
||||||
# Function key row above the main zone (Esc, F1-F12)
|
# Function key row above the main zone (Esc, F1-F12)
|
||||||
function:
|
function:
|
||||||
# Position function key row above main zone with 3mm of vertical offset
|
# Position function key row above main zone with a vertical offset
|
||||||
anchor:
|
anchor:
|
||||||
# To center the F keys on the top of the keyboard:
|
ref: main_left_numbers
|
||||||
# - Get center point between keys 3 and 8 (they have the highest staggering)
|
shift: [ 0, cy + function_row_offset ]
|
||||||
# - Shift upwards by one key + an offset to have a small gap
|
|
||||||
# - Shift to the left by 7 keys (Esc, F1-F6) + the gaps between the F key groups.
|
|
||||||
aggregate.parts:
|
|
||||||
- main_three_numbers
|
|
||||||
- main_eight_numbers
|
|
||||||
shift: [ -6.5cx - 2 * function_gap, cy + function_offset ]
|
|
||||||
|
|
||||||
# Single row zone: Assign row net
|
# Single row zone: Assign row net
|
||||||
key:
|
key:
|
||||||
row_net: ROW6
|
row_net: ROW6
|
||||||
tags: [ is_key, flip_led ]
|
|
||||||
|
|
||||||
# Define function keys
|
# Define function keys
|
||||||
columns:
|
columns:
|
||||||
# Escape key
|
# Escape key
|
||||||
esc:
|
esc:
|
||||||
key.shift: [ 0, -cy/8 ]
|
|
||||||
key.column_net: COL1
|
key.column_net: COL1
|
||||||
key.led_next_key: function_f1
|
key.led_next_key: main_left_numbers
|
||||||
# Esc is the first key in the RGB LED chain.
|
|
||||||
# The first LED needs to run on a lower voltage (see explanation below).
|
|
||||||
key.led_vcc_net: VCC_first_led
|
|
||||||
|
|
||||||
# Block of 4 keys with gap
|
# F1 to F12 keys
|
||||||
f1:
|
f1:
|
||||||
key.spread: cx + function_gap
|
|
||||||
key.column_net: COL2
|
key.column_net: COL2
|
||||||
key.led_next_key: function_f2
|
key.led_next_key: function_esc
|
||||||
f2:
|
f2:
|
||||||
key.column_net: COL3
|
key.column_net: COL3
|
||||||
key.led_next_key: function_f3
|
key.led_next_key: function_f1
|
||||||
f3:
|
f3:
|
||||||
key.column_net: COL4
|
key.column_net: COL4
|
||||||
key.led_next_key: function_f4
|
key.led_next_key: function_f2
|
||||||
f4:
|
f4:
|
||||||
key.column_net: COL5
|
key.column_net: COL5
|
||||||
key.led_next_key: function_f5
|
key.led_next_key: function_f3
|
||||||
|
|
||||||
# Block of 4 keys with gap
|
|
||||||
f5:
|
f5:
|
||||||
key.spread: cx + function_gap
|
|
||||||
key.column_net: COL6
|
key.column_net: COL6
|
||||||
key.led_next_key: function_f6
|
key.led_next_key: function_f4
|
||||||
f6:
|
f6:
|
||||||
key.column_net: COL7
|
key.column_net: COL7
|
||||||
key.led_next_key: function_f7
|
key.led_next_key: function_f5
|
||||||
# Skip matrix column 8 (arrow keys)
|
|
||||||
f7:
|
f7:
|
||||||
key.column_net: COL9
|
key.column_net: COL8
|
||||||
key.led_next_key: function_f8
|
key.led_next_key: function_f6
|
||||||
f8:
|
f8:
|
||||||
key.column_net: COL10
|
key.column_net: COL9
|
||||||
key.led_next_key: function_f9
|
key.led_next_key: function_f7
|
||||||
|
|
||||||
# Block of 4 keys with gap
|
|
||||||
f9:
|
f9:
|
||||||
key.spread: cx + function_gap
|
key.column_net: COL10
|
||||||
key.column_net: COL11
|
key.led_next_key: function_f8
|
||||||
key.led_next_key: function_f10
|
|
||||||
f10:
|
f10:
|
||||||
key.column_net: COL12
|
key.column_net: COL11
|
||||||
key.led_next_key: function_f11
|
key.led_next_key: function_f9
|
||||||
f11:
|
f11:
|
||||||
key.column_net: COL13
|
key.column_net: COL12
|
||||||
key.led_next_key: function_f12
|
key.led_next_key: function_f10
|
||||||
f12:
|
f12:
|
||||||
key.column_net: COL14
|
key.column_net: COL13
|
||||||
key.led_next_key: main_twelve_numbers
|
key.led_next_key: function_f11
|
||||||
|
# F12 is the first key in the RGB LED chain.
|
||||||
# RP2040 Pico Mini controller board
|
# The first LED needs to run on a lower voltage (see explanation below).
|
||||||
controller:
|
key.led_vcc_net: VCC_first_led
|
||||||
anchor:
|
|
||||||
# Place in the center of the keyboard, above the arrow keys
|
|
||||||
aggregate.parts:
|
|
||||||
- main_five_numbers
|
|
||||||
- main_six_numbers
|
|
||||||
shift: [ 0, 1.5 ]
|
|
||||||
|
|
||||||
# This is an auxiliary point to place the controller, not an actual key
|
|
||||||
key:
|
|
||||||
tags: [ is_controller ]
|
|
||||||
width: 18
|
|
||||||
height: 36
|
|
||||||
|
|
||||||
# Rotary encoder in the center of the keyboard (on top of the controller board)
|
|
||||||
rotary_center:
|
|
||||||
anchor:
|
|
||||||
ref: controller
|
|
||||||
rotate: -90
|
|
||||||
key:
|
|
||||||
tags: [ is_rotary_encoder ]
|
|
||||||
width: 2 * rotary_encoder_radius
|
|
||||||
height: 2 * rotary_encoder_radius
|
|
||||||
# Matrix position of the switch: between F7 and F8
|
|
||||||
row_net: ROW6
|
|
||||||
column_net: COL8
|
|
||||||
|
|
||||||
# Rotary encoder in the top right corner of the keyboard
|
# Rotary encoder in the top right corner of the keyboard
|
||||||
rotary_top_right:
|
rotary_top_right:
|
||||||
anchor:
|
anchor:
|
||||||
ref: function_f12
|
ref: function_f12
|
||||||
shift: [ cx + 2 + function_gap, -cy/8 ]
|
shift: [ cx + 3, 0 ]
|
||||||
|
rotate: 90
|
||||||
key:
|
key:
|
||||||
tags: [ is_rotary_encoder ]
|
tags: [ is_rotary_encoder ]
|
||||||
width: 2 * rotary_encoder_radius
|
width: 2 * rotary_encoder_radius
|
||||||
height: 2 * rotary_encoder_radius
|
height: 2 * rotary_encoder_radius
|
||||||
# Matrix position of the switch: Function row, right of F12
|
# Matrix position of the switch: Function row, right of F12
|
||||||
row_net: ROW6
|
row_net: ROW6
|
||||||
column_net: COL15
|
column_net: COL14
|
||||||
|
|
||||||
|
# RP2040 Pico Mini controller board
|
||||||
|
controller:
|
||||||
|
anchor:
|
||||||
|
# Place in top-right corner (right to F12, with rotary encoder on top)
|
||||||
|
- ref: rotary_top_right
|
||||||
|
affect: xy
|
||||||
|
- shift: [ 0, -0.5cy + 2.5 ]
|
||||||
|
|
||||||
|
# This is an auxiliary point to place the controller, not an actual key
|
||||||
|
key:
|
||||||
|
tags: [ is_controller ]
|
||||||
|
width: 18
|
||||||
|
height: 36
|
||||||
|
|
||||||
# Generate outlines that can be used in the PCB and for 3D models
|
# Generate outlines that can be used in the PCB and for 3D models
|
||||||
outlines:
|
outlines:
|
||||||
|
|
@ -447,58 +346,45 @@ outlines:
|
||||||
- what: polygon
|
- what: polygon
|
||||||
points:
|
points:
|
||||||
# Top left corner
|
# Top left corner
|
||||||
- ref: &corner_top_left_anchor
|
- ref:
|
||||||
- ref: main_left_numbers
|
- ref: function_esc
|
||||||
affect: x
|
shift: [ -0.5kcx, 0.5kcy ]
|
||||||
- ref: function_f1
|
# Extend all corners to the sides to get a border
|
||||||
affect: y
|
shift: [ border_left, border_top ]
|
||||||
- shift: [ -0.5kcx, 0.5kcy ]
|
|
||||||
# Extend all corners 4mm to the sides to get a 4mm border
|
|
||||||
shift: [ -4, 4 ]
|
|
||||||
|
|
||||||
# Top right corner
|
# Top right corner
|
||||||
- ref: &corner_top_right_anchor
|
- ref:
|
||||||
- ref: main_twelve_numbers
|
- ref: main_right_top
|
||||||
affect: x
|
affect: x
|
||||||
- ref: function_f12
|
- ref: function_f12
|
||||||
affect: y
|
affect: y
|
||||||
- shift: [ 0.5kcx, 0.5kcy ]
|
- shift: [ 0.5kcx, 0.5kcy ]
|
||||||
shift: [ 4, 4 ]
|
shift: [ border_right, border_top ]
|
||||||
|
|
||||||
# Bottom right corner
|
# Bottom right corner
|
||||||
- ref:
|
- ref:
|
||||||
- ref: main_twelve_mods
|
- ref: main_right_mods
|
||||||
shift: [ 0.5kcx, -0.5kcy ]
|
shift: [ 0.5kcx, -0.5kcy ]
|
||||||
shift: [ 4, -4 ]
|
shift: [ border_right, border_bottom ]
|
||||||
|
|
||||||
# Bottom center-right corner (below thumb keys)
|
# Bottom center "corner" below space key (needs to be post-processed in KiCad to get a smooth arc, see below!)
|
||||||
- ref:
|
- ref:
|
||||||
- ref: mirror_thumb_four
|
- ref: thumb_center
|
||||||
shift: [ 0.5kcx, -0.5kcy ]
|
shift: [ 0, -0.5kcy ]
|
||||||
# Discard the rotation, so the next shift moves the corner straight down
|
shift: [ 0, border_bottom ]
|
||||||
affect: xy
|
|
||||||
shift: [ 0, -4 ]
|
|
||||||
|
|
||||||
# Bottom center-left corner (below thumb keys)
|
|
||||||
- ref:
|
|
||||||
- ref: thumb_four
|
|
||||||
shift: [ 0.5kcx, -0.5kcy ]
|
|
||||||
# Discard the rotation, so the next shift moves the corner straight down
|
|
||||||
affect: xy
|
|
||||||
shift: [ 0, -4 ]
|
|
||||||
|
|
||||||
# Bottom left corner
|
# Bottom left corner
|
||||||
- ref:
|
- ref:
|
||||||
- ref: main_left_mods
|
- ref: main_left_mods
|
||||||
shift: [ -0.5kcx, -0.5kcy ]
|
shift: [ -0.5kcx, -0.5kcy ]
|
||||||
shift: [ -4, -4 ]
|
shift: [ border_left, border_bottom ]
|
||||||
|
|
||||||
# Round off the corners with an 8mm radius fillet.
|
# Round off the corners with a fillet.
|
||||||
# NOTE: To get a smoother arc on the bottom of the board, do some post-processing in KiCad:
|
# NOTE: To get a smoother arc on the bottom of the board, do some post-processing in KiCad:
|
||||||
# 1. Remove the bottom center line and the two small fillet arcs next to it.
|
# 1. Remove the tiny fillet arc between the two diagonal bottom lines.
|
||||||
# 2. Select the two remaining bottom lines. Right click them and use "Shape Modification -> Extend Lines to Meet".
|
# 2. Select the two remaining bottom lines. Right click them and use "Shape Modification -> Extend Lines to Meet".
|
||||||
# 3. Right click the two angled lines again. Use "Shape Modification -> Fillet Lines..." with a 200mm radius.
|
# 3. Right click the two angled lines again. Use "Shape Modification -> Fillet Lines..." with a 300mm radius.
|
||||||
fillet: 8
|
fillet: 5
|
||||||
|
|
||||||
# Preview version of board with key caps and components for visualization
|
# Preview version of board with key caps and components for visualization
|
||||||
board_preview:
|
board_preview:
|
||||||
|
|
@ -546,8 +432,8 @@ pcbs:
|
||||||
orientation: down
|
orientation: down
|
||||||
# Use 5V from USB as VCC net
|
# Use 5V from USB as VCC net
|
||||||
5V: VCC
|
5V: VCC
|
||||||
# RGB LEDs: The chain starts with the Esc key
|
# RGB LEDs: The chain starts with the F12 key
|
||||||
GP29: led_din_function_esc
|
GP29: led_din_function_f12
|
||||||
# Matrix columns
|
# Matrix columns
|
||||||
GP27: COL1
|
GP27: COL1
|
||||||
GP26: COL2
|
GP26: COL2
|
||||||
|
|
@ -555,27 +441,24 @@ pcbs:
|
||||||
GP23: COL4
|
GP23: COL4
|
||||||
GP22: COL5
|
GP22: COL5
|
||||||
GP21: COL6
|
GP21: COL6
|
||||||
GP20: COL7
|
GP18: COL7
|
||||||
GP17: COL8 # Center column (arrow keys)
|
GP17: COL8
|
||||||
GP12: COL9
|
GP13: COL9
|
||||||
GP11: COL10
|
GP12: COL10
|
||||||
GP10: COL11
|
GP11: COL11
|
||||||
GP9: COL12
|
GP10: COL12
|
||||||
GP8: COL13
|
GP9: COL13
|
||||||
GP7: COL14
|
GP8: COL14
|
||||||
GP6: COL15
|
|
||||||
# Matrix rows
|
# Matrix rows
|
||||||
GP13: ROW1
|
GP0: ROW1
|
||||||
GP14: ROW2
|
GP1: ROW2
|
||||||
GP19: ROW3
|
GP2: ROW3
|
||||||
GP18: ROW4
|
GP3: ROW4
|
||||||
GP15: ROW5
|
GP19: ROW5
|
||||||
GP28: ROW6
|
GP28: ROW6
|
||||||
# Rotary encoders
|
# Rotary encoder
|
||||||
GP0: rotary_top_right_a
|
GP6: rotary_top_right_a
|
||||||
GP1: rotary_top_right_b
|
GP7: rotary_top_right_b
|
||||||
GP3: rotary_center_a
|
|
||||||
GP2: rotary_center_b
|
|
||||||
|
|
||||||
choc_hotswap:
|
choc_hotswap:
|
||||||
what: choc_pretty
|
what: choc_pretty
|
||||||
|
|
@ -663,75 +546,100 @@ pcbs:
|
||||||
# the signal of the RP2040 is strong enough.
|
# the signal of the RP2040 is strong enough.
|
||||||
first_led_voltage_diode:
|
first_led_voltage_diode:
|
||||||
what: diode_smd
|
what: diode_smd
|
||||||
where: function_esc
|
where: function_f12
|
||||||
adjust:
|
adjust:
|
||||||
shift: [ 10, 1.5]
|
shift: [ 0, 8 ]
|
||||||
rotate: -90
|
rotate: 0
|
||||||
params:
|
params:
|
||||||
side: B
|
side: B
|
||||||
from: VCC
|
from: VCC
|
||||||
to: VCC_first_led
|
to: VCC_first_led
|
||||||
|
|
||||||
# Mounting holes: Top left and right corners
|
# Mounting holes: Top row (above and between Esc/F1, F4/F5, F8/F9, F12/rotary)
|
||||||
|
mounting_hole_top1:
|
||||||
|
what: mountinghole_m2
|
||||||
|
where:
|
||||||
|
ref: function_f1
|
||||||
|
shift: [ -0.5cx, 0.5cy + 1.5 ]
|
||||||
|
|
||||||
|
mounting_hole_top2:
|
||||||
|
what: mountinghole_m2
|
||||||
|
where:
|
||||||
|
ref: function_f5
|
||||||
|
shift: [ -0.5cx, 0.5cy + 1.5 ]
|
||||||
|
|
||||||
|
mounting_hole_top3:
|
||||||
|
what: mountinghole_m2
|
||||||
|
where:
|
||||||
|
ref: function_f8
|
||||||
|
shift: [ 0.5cx, 0.5cy + 1.5 ]
|
||||||
|
|
||||||
|
mounting_hole_top4:
|
||||||
|
what: mountinghole_m2
|
||||||
|
where:
|
||||||
|
ref: function_f12
|
||||||
|
shift: [ 0.5cx - 1, 0.5cy + 1.5 ]
|
||||||
|
|
||||||
|
# Mounting holes: Top left corner (left of Esc)
|
||||||
mounting_hole_top_left:
|
mounting_hole_top_left:
|
||||||
what: mountinghole_m2
|
what: mountinghole_m2
|
||||||
where:
|
where:
|
||||||
ref: *corner_top_left_anchor
|
ref: function_esc
|
||||||
shift: [ 2, -2 ]
|
shift: [ -12, 0 ]
|
||||||
|
|
||||||
|
# Mounting holes: "Top" right corner (right edge, below the controller board)
|
||||||
mounting_hole_top_right:
|
mounting_hole_top_right:
|
||||||
what: mountinghole_m2
|
what: mountinghole_m2
|
||||||
where:
|
where:
|
||||||
ref: *corner_top_right_anchor
|
ref: main_right_top
|
||||||
shift: [ -2, -2 ]
|
shift: [ 0.5cx - 0.5, 0.5cy + 1.25 ]
|
||||||
|
|
||||||
# Mounting holes: Top center, left and right of the controller
|
# Mounting holes: Bottom center, below C and N keys (with copyright text in between)
|
||||||
mounting_hole_controller_left:
|
|
||||||
what: mountinghole_m2
|
|
||||||
where:
|
|
||||||
ref: main_five_numbers
|
|
||||||
shift: [ 0, 12 ]
|
|
||||||
|
|
||||||
mounting_hole_controller_right:
|
|
||||||
what: mountinghole_m2
|
|
||||||
where:
|
|
||||||
ref: main_six_numbers
|
|
||||||
shift: [ 0, 12 ]
|
|
||||||
|
|
||||||
# Mounting holes: Bottom center, under columns five/six (but above the thumb keys)
|
|
||||||
mounting_hole_bottom_center_left:
|
mounting_hole_bottom_center_left:
|
||||||
what: mountinghole_m2
|
what: mountinghole_m2
|
||||||
where:
|
where:
|
||||||
ref: main_five_bottom
|
ref: main_four_bottom
|
||||||
shift: [ 0, -13 ]
|
shift: [ 4, -12.25 ]
|
||||||
|
|
||||||
mounting_hole_bottom_center_right:
|
mounting_hole_bottom_center_right:
|
||||||
what: mountinghole_m2
|
what: mountinghole_m2
|
||||||
where:
|
where:
|
||||||
ref: main_six_bottom
|
ref: main_seven_bottom
|
||||||
shift: [ 0, -13 ]
|
shift: [ -4, -12.25 ]
|
||||||
|
|
||||||
# Mounting holes: Bottom left and right corners, under the second key columns
|
# Mounting holes: Bottom left corner (left of Ctrl; below left thumb keys)
|
||||||
mounting_hole_bottom_left:
|
mounting_hole_bottom_left1:
|
||||||
what: mountinghole_m2
|
what: mountinghole_m2
|
||||||
where:
|
where:
|
||||||
ref: main_zero_mods
|
ref: main_one_mods
|
||||||
shift: [ 0, -13.5 ]
|
shift: [ 0.5cx, -11.75 ]
|
||||||
|
|
||||||
mounting_hole_bottom_right:
|
mounting_hole_bottom_left2:
|
||||||
what: mountinghole_m2
|
what: mountinghole_m2
|
||||||
where:
|
where:
|
||||||
ref: main_eleven_mods
|
ref: main_left_mods
|
||||||
shift: [ 0, -13.5 ]
|
shift: [ -12, 0 ]
|
||||||
|
|
||||||
|
# Mounting holes: Bottom right corner (right of bottom-right key; below right thumb keys)
|
||||||
|
mounting_hole_bottom_right1:
|
||||||
|
what: mountinghole_m2
|
||||||
|
where:
|
||||||
|
ref: main_twelve_mods
|
||||||
|
shift: [ -0.5cx, -11.75 ]
|
||||||
|
|
||||||
|
mounting_hole_bottom_right2:
|
||||||
|
what: mountinghole_m2
|
||||||
|
where:
|
||||||
|
ref: main_right_mods
|
||||||
|
shift: [ 12, 0 ]
|
||||||
|
|
||||||
# Render text with project name and copyright onto the PCB
|
# Render text with project name and copyright onto the PCB
|
||||||
copyright_text:
|
copyright_text:
|
||||||
what: text
|
what: text
|
||||||
where:
|
where:
|
||||||
ref: thumb_one
|
ref: thumb_center
|
||||||
shift: [ 0, -16.5 ]
|
shift: [ 0, 13.25 ]
|
||||||
rotate: -0.3 # total rotation: -6.3 (including key rotation)
|
|
||||||
params:
|
params:
|
||||||
text: |-
|
text: |-
|
||||||
eepyBoard v1.1 by binaryDiv
|
eepyBoard v1.2 by binaryDiv
|
||||||
(c) 2024 (MIT License)
|
(c) 2024 (MIT License)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue