Merge pull request 'layout-rev3' (#2) from layout-rev3 into main

Reviewed-on: #2
This commit is contained in:
Lexi / Zoe 2025-08-16 18:53:00 +02:00
commit f5b96629b1
40 changed files with 349362 additions and 311 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -4,7 +4,7 @@ QMK_HOME ?= ${HOME}/qmk_firmware
# QMK keyboard information (author, keyboard, revision) # QMK keyboard information (author, keyboard, revision)
QMK_KEYBOARD_AUTHOR := binarydiv QMK_KEYBOARD_AUTHOR := binarydiv
QMK_KEYBOARD_NAME := eepyboard QMK_KEYBOARD_NAME := eepyboard
QMK_KEYBOARD_REV ?= rev1 QMK_KEYBOARD_REV ?= rev3
# Directory structure for QMK keyboard files # Directory structure for QMK keyboard files
QMK_KEYBOARD_AUTHOR_DIR := ${QMK_KEYBOARD_AUTHOR} QMK_KEYBOARD_AUTHOR_DIR := ${QMK_KEYBOARD_AUTHOR}

View File

@ -19,6 +19,12 @@ Custom ergonomic mechanical keyboard with low-profile (Choc) switches.
- 2 pressable rotary encoders (one in the center of the keyboard, one in the upper right) - 2 pressable rotary encoders (one in the center of the keyboard, one in the upper right)
- Compact RP2040 "Pico Mini" controller board in the center - Compact RP2040 "Pico Mini" controller board in the center
- **eepyBoard v1.2: Hardware revision 3**
- Mostly ortholinear layout with 14 columns (81 keys + rotary encoder)
- Bottom row with regular keys, thumb keys and a 1.5u space key
- Full F-key row (Esc, F1-F12) and rotary encoder
- Compact RP2040 "Pico Mini" controller controller board in upper right corner
## Repository structure ## Repository structure
- `/layouts`: Keyboard layouts created with the [Keyboard Layout Editor](http://www.keyboard-layout-editor.com) - `/layouts`: Keyboard layouts created with the [Keyboard Layout Editor](http://www.keyboard-layout-editor.com)
@ -91,9 +97,9 @@ Now you can generate the gerber, drill and map files.
- Set drill units to millimeters. - Set drill units to millimeters.
- Set same output directory as above. - Set same output directory as above.
- Click `Generate Drill File`, then `Generate Map File` - Click `Generate Drill File`, then `Generate Map File`
3. Create zip file with all generated files from `kicad/gerber/`. 3. Create zip file with all generated files from `kicad/revN/gerber/`.
- No subdirectories, only files. - No subdirectories, only files.
- Ideally name the file `kicad/gerber/eepyboard_{REVISION}.zip`. - Ideally name the file `kicad/revN/gerber/eepyboard_{REVISION}.zip`.
4. Upload zip file to manufacturer and make sure everything is correct. 4. Upload zip file to manufacturer and make sure everything is correct.
5. Add all generated files to version control. 5. Add all generated files to version control.

View File

@ -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.5 ]
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)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,287 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.762,
"height": 1.524,
"width": 1.524
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.5
}
},
"diff_pair_dimensions": [
{
"gap": 0.0,
"via_gap": 0.0,
"width": 0.0
}
],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_near_hole": "error",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.09,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [
0.0,
0.75
],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [
{
"diameter": 0.0,
"drill": 0.0
}
],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "eepyboard_rev3.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
}
],
"meta": {
"version": 3
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "gerber/",
"pos_files": "",
"specctra_dsn": "",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"legacy_lib_dir": "",
"legacy_lib_list": []
},
"sheets": [],
"text_variables": {}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,787 @@
%TF.GenerationSoftware,KiCad,Pcbnew,8.0.7*%
%TF.CreationDate,2025-01-24T18:11:27+01:00*%
%TF.ProjectId,eepyboard_rev3,65657079-626f-4617-9264-5f726576332e,1.2*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Profile,NP*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.7) date 2025-01-24 18:11:27*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%TA.AperFunction,Profile*%
%ADD10C,0.150000*%
%TD*%
%TA.AperFunction,Profile*%
%ADD11C,0.120000*%
%TD*%
G04 APERTURE END LIST*
D10*
X337266745Y-73925901D02*
X337266749Y-182685607D01*
X337266749Y-182685607D02*
G75*
G02*
X332533191Y-187678479I-5000005J29D01*
G01*
X60766748Y-73925899D02*
G75*
G02*
X65766748Y-68925902I4999996J1D01*
G01*
X198548986Y-194828440D02*
G75*
G02*
X161503923Y-194514665I-15986442J299574262D01*
G01*
X332533192Y-187678500D02*
X198548986Y-194828440D01*
X60766748Y-182765380D02*
X60766748Y-73925899D01*
X65415772Y-187753047D02*
X161503923Y-194514666D01*
X332266746Y-68925899D02*
G75*
G02*
X337266721Y-73925901I-3J-4999978D01*
G01*
X65766748Y-68925900D02*
X332266746Y-68925899D01*
X65415773Y-187753047D02*
G75*
G02*
X60766742Y-182765380I350971J4987669D01*
G01*
D11*
%TO.C,LED18*%
X225816748Y-114975901D02*
X229216748Y-114975901D01*
X225816748Y-117975901D02*
X225816748Y-114975901D01*
X229216748Y-114975901D02*
X229216748Y-117975901D01*
X229216748Y-117975901D02*
X225816748Y-117975901D01*
%TO.C,LED24*%
X282816749Y-114975902D02*
X286216749Y-114975902D01*
X282816749Y-117975902D02*
X282816749Y-114975902D01*
X286216749Y-114975902D02*
X286216749Y-117975902D01*
X286216749Y-117975902D02*
X282816749Y-117975902D01*
%TO.C,LED41*%
X301816751Y-75975901D02*
X305216751Y-75975901D01*
X301816751Y-78975901D02*
X301816751Y-75975901D01*
X305216751Y-75975901D02*
X305216751Y-78975901D01*
X305216751Y-78975901D02*
X301816751Y-78975901D01*
%TO.C,LED69*%
X282816747Y-96975898D02*
X286216747Y-96975898D01*
X282816747Y-99975898D02*
X282816747Y-96975898D01*
X286216747Y-96975898D02*
X286216747Y-99975898D01*
X286216747Y-99975898D02*
X282816747Y-99975898D01*
%TO.C,LED54*%
X168816748Y-132975900D02*
X172216748Y-132975900D01*
X168816748Y-135975900D02*
X168816748Y-132975900D01*
X172216748Y-132975900D02*
X172216748Y-135975900D01*
X172216748Y-135975900D02*
X168816748Y-135975900D01*
%TO.C,LED8*%
X130816745Y-114975900D02*
X134216745Y-114975900D01*
X130816745Y-117975900D02*
X130816745Y-114975900D01*
X134216745Y-114975900D02*
X134216745Y-117975900D01*
X134216745Y-117975900D02*
X130816745Y-117975900D01*
%TO.C,LED39*%
X263816746Y-75975901D02*
X267216746Y-75975901D01*
X263816746Y-78975901D02*
X263816746Y-75975901D01*
X267216746Y-75975901D02*
X267216746Y-78975901D01*
X267216746Y-78975901D02*
X263816746Y-78975901D01*
%TO.C,LED23*%
X282816748Y-150975898D02*
X286216748Y-150975898D01*
X282816748Y-153975898D02*
X282816748Y-150975898D01*
X286216748Y-150975898D02*
X286216748Y-153975898D01*
X286216748Y-153975898D02*
X282816748Y-153975898D01*
%TO.C,LED38*%
X244816748Y-75975899D02*
X248216748Y-75975899D01*
X244816748Y-78975899D02*
X244816748Y-75975899D01*
X248216748Y-75975899D02*
X248216748Y-78975899D01*
X248216748Y-78975899D02*
X244816748Y-78975899D01*
%TO.C,LED55*%
X168816749Y-96975897D02*
X172216749Y-96975897D01*
X168816749Y-99975897D02*
X168816749Y-96975897D01*
X172216749Y-96975897D02*
X172216749Y-99975897D01*
X172216749Y-99975897D02*
X168816749Y-99975897D01*
%TO.C,LED58*%
X206816749Y-132975898D02*
X210216749Y-132975898D01*
X206816749Y-135975898D02*
X206816749Y-132975898D01*
X210216749Y-132975898D02*
X210216749Y-135975898D01*
X210216749Y-135975898D02*
X206816749Y-135975898D01*
%TO.C,LED28*%
X320816747Y-114975899D02*
X324216747Y-114975899D01*
X320816747Y-117975899D02*
X320816747Y-114975899D01*
X324216747Y-114975899D02*
X324216747Y-117975899D01*
X324216747Y-117975899D02*
X320816747Y-117975899D01*
%TO.C,LED40*%
X282816748Y-75975902D02*
X286216748Y-75975902D01*
X282816748Y-78975902D02*
X282816748Y-75975902D01*
X286216748Y-75975902D02*
X286216748Y-78975902D01*
X286216748Y-78975902D02*
X282816748Y-78975902D01*
%TO.C,LED66*%
X263816744Y-96975901D02*
X267216744Y-96975901D01*
X263816744Y-99975901D02*
X263816744Y-96975901D01*
X267216744Y-96975901D02*
X267216744Y-99975901D01*
X267216744Y-99975901D02*
X263816744Y-99975901D01*
%TO.C,LED74*%
X320816746Y-132975903D02*
X324216746Y-132975903D01*
X320816746Y-135975903D02*
X320816746Y-132975903D01*
X324216746Y-132975903D02*
X324216746Y-135975903D01*
X324216746Y-135975903D02*
X320816746Y-135975903D01*
%TO.C,LED13*%
X187816747Y-150975898D02*
X191216747Y-150975898D01*
X187816747Y-153975898D02*
X187816747Y-150975898D01*
X191216747Y-150975898D02*
X191216747Y-153975898D01*
X191216747Y-153975898D02*
X187816747Y-153975898D01*
%TO.C,LED14*%
X187816746Y-114975901D02*
X191216746Y-114975901D01*
X187816746Y-117975901D02*
X187816746Y-114975901D01*
X191216746Y-114975901D02*
X191216746Y-117975901D01*
X191216746Y-117975901D02*
X187816746Y-117975901D01*
%TO.C,LED19*%
X244816747Y-150975902D02*
X248216747Y-150975902D01*
X244816747Y-153975902D02*
X244816747Y-150975902D01*
X248216747Y-150975902D02*
X248216747Y-153975902D01*
X248216747Y-153975902D02*
X244816747Y-153975902D01*
%TO.C,LED9*%
X149816746Y-150975900D02*
X153216746Y-150975900D01*
X149816746Y-153975900D02*
X149816746Y-150975900D01*
X153216746Y-150975900D02*
X153216746Y-153975900D01*
X153216746Y-153975900D02*
X149816746Y-153975900D01*
%TO.C,LED46*%
X92816748Y-132975903D02*
X96216748Y-132975903D01*
X92816748Y-135975903D02*
X92816748Y-132975903D01*
X96216748Y-132975903D02*
X96216748Y-135975903D01*
X96216748Y-135975903D02*
X92816748Y-135975903D01*
%TO.C,LED50*%
X130816747Y-132975902D02*
X134216747Y-132975902D01*
X130816747Y-135975902D02*
X130816747Y-132975902D01*
X134216747Y-132975902D02*
X134216747Y-135975902D01*
X134216747Y-135975902D02*
X130816747Y-135975902D01*
%TO.C,LED48*%
X111816746Y-132975901D02*
X115216746Y-132975901D01*
X111816746Y-135975901D02*
X111816746Y-132975901D01*
X115216746Y-132975901D02*
X115216746Y-135975901D01*
X115216746Y-135975901D02*
X111816746Y-135975901D01*
%TO.C,LED62*%
X244816745Y-132975901D02*
X248216745Y-132975901D01*
X244816745Y-135975901D02*
X244816745Y-132975901D01*
X248216745Y-132975901D02*
X248216745Y-135975901D01*
X248216745Y-135975901D02*
X244816745Y-135975901D01*
%TO.C,LED21*%
X263816747Y-150975900D02*
X267216747Y-150975900D01*
X263816747Y-153975900D02*
X263816747Y-150975900D01*
X267216747Y-150975900D02*
X267216747Y-153975900D01*
X267216747Y-153975900D02*
X263816747Y-153975900D01*
%TO.C,LED35*%
X187816746Y-75975897D02*
X191216746Y-75975897D01*
X187816746Y-78975897D02*
X187816746Y-75975897D01*
X191216746Y-75975897D02*
X191216746Y-78975897D01*
X191216746Y-78975897D02*
X187816746Y-78975897D01*
%TO.C,LED27*%
X320816749Y-150975901D02*
X324216749Y-150975901D01*
X320816749Y-153975901D02*
X320816749Y-150975901D01*
X324216749Y-150975901D02*
X324216749Y-153975901D01*
X324216749Y-153975901D02*
X320816749Y-153975901D01*
%TO.C,LED81*%
X178316745Y-177367399D02*
X181716745Y-177367399D01*
X178316745Y-180367399D02*
X178316745Y-177367399D01*
X181716745Y-177367399D02*
X181716745Y-180367399D01*
X181716745Y-180367399D02*
X178316745Y-180367399D01*
%TO.C,LED57*%
X187816747Y-96975902D02*
X191216747Y-96975902D01*
X187816747Y-99975902D02*
X187816747Y-96975902D01*
X191216747Y-96975902D02*
X191216747Y-99975902D01*
X191216747Y-99975902D02*
X187816747Y-99975902D01*
%TO.C,LED67*%
X282816749Y-168975902D02*
X286216749Y-168975902D01*
X282816749Y-171975902D02*
X282816749Y-168975902D01*
X286216749Y-168975902D02*
X286216749Y-171975902D01*
X286216749Y-171975902D02*
X282816749Y-171975902D01*
%TO.C,LED36*%
X206816745Y-75975898D02*
X210216745Y-75975898D01*
X206816745Y-78975898D02*
X206816745Y-75975898D01*
X210216745Y-75975898D02*
X210216745Y-78975898D01*
X210216745Y-78975898D02*
X206816745Y-78975898D01*
%TO.C,LED33*%
X149816744Y-75975900D02*
X153216744Y-75975900D01*
X149816744Y-78975900D02*
X149816744Y-75975900D01*
X153216744Y-75975900D02*
X153216744Y-78975900D01*
X153216744Y-78975900D02*
X149816744Y-78975900D01*
%TO.C,LED70*%
X301816745Y-168975899D02*
X305216745Y-168975899D01*
X301816745Y-171975899D02*
X301816745Y-168975899D01*
X305216745Y-168975899D02*
X305216745Y-171975899D01*
X305216745Y-171975899D02*
X301816745Y-171975899D01*
%TO.C,LED26*%
X301816751Y-114975899D02*
X305216751Y-114975899D01*
X301816751Y-117975899D02*
X301816751Y-114975899D01*
X305216751Y-114975899D02*
X305216751Y-117975899D01*
X305216751Y-117975899D02*
X301816751Y-117975899D01*
%TO.C,LED72*%
X301816746Y-96975900D02*
X305216746Y-96975900D01*
X301816746Y-99975900D02*
X301816746Y-96975900D01*
X305216746Y-96975900D02*
X305216746Y-99975900D01*
X305216746Y-99975900D02*
X301816746Y-99975900D01*
%TO.C,LED49*%
X111816749Y-96975898D02*
X115216749Y-96975898D01*
X111816749Y-99975898D02*
X111816749Y-96975898D01*
X115216749Y-96975898D02*
X115216749Y-99975898D01*
X115216749Y-99975898D02*
X111816749Y-99975898D01*
%TO.C,LED15*%
X206816746Y-150975901D02*
X210216746Y-150975901D01*
X206816746Y-153975901D02*
X206816746Y-150975901D01*
X210216746Y-150975901D02*
X210216746Y-153975901D01*
X210216746Y-153975901D02*
X206816746Y-153975901D01*
%TO.C,LED59*%
X206816749Y-96975901D02*
X210216749Y-96975901D01*
X206816749Y-99975901D02*
X206816749Y-96975901D01*
X210216749Y-96975901D02*
X210216749Y-99975901D01*
X210216749Y-99975901D02*
X206816749Y-99975901D01*
%TO.C,LED45*%
X92816748Y-168975900D02*
X96216748Y-168975900D01*
X92816748Y-171975900D02*
X92816748Y-168975900D01*
X96216748Y-168975900D02*
X96216748Y-171975900D01*
X96216748Y-171975900D02*
X92816748Y-171975900D01*
%TO.C,LED1*%
X73816745Y-150975902D02*
X77216745Y-150975902D01*
X73816745Y-153975902D02*
X73816745Y-150975902D01*
X77216745Y-150975902D02*
X77216745Y-153975902D01*
X77216745Y-153975902D02*
X73816745Y-153975902D01*
%TO.C,LED43*%
X73816748Y-132975904D02*
X77216748Y-132975904D01*
X73816748Y-135975904D02*
X73816748Y-132975904D01*
X77216748Y-132975904D02*
X77216748Y-135975904D01*
X77216748Y-135975904D02*
X73816748Y-135975904D01*
%TO.C,LED17*%
X225816749Y-150975903D02*
X229216749Y-150975903D01*
X225816749Y-153975903D02*
X225816749Y-150975903D01*
X229216749Y-150975903D02*
X229216749Y-153975903D01*
X229216749Y-153975903D02*
X225816749Y-153975903D01*
%TO.C,LED47*%
X92816747Y-96975899D02*
X96216747Y-96975899D01*
X92816747Y-99975899D02*
X92816747Y-96975899D01*
X96216747Y-96975899D02*
X96216747Y-99975899D01*
X96216747Y-99975899D02*
X92816747Y-99975899D01*
%TO.C,LED12*%
X168816749Y-114975903D02*
X172216749Y-114975903D01*
X168816749Y-117975903D02*
X168816749Y-114975903D01*
X172216749Y-114975903D02*
X172216749Y-117975903D01*
X172216749Y-117975903D02*
X168816749Y-117975903D01*
%TO.C,LED65*%
X263816746Y-132975903D02*
X267216746Y-132975903D01*
X263816746Y-135975903D02*
X263816746Y-132975903D01*
X267216746Y-132975903D02*
X267216746Y-135975903D01*
X267216746Y-135975903D02*
X263816746Y-135975903D01*
%TO.C,LED56*%
X187816747Y-132975899D02*
X191216747Y-132975899D01*
X187816747Y-135975899D02*
X187816747Y-132975899D01*
X191216747Y-132975899D02*
X191216747Y-135975899D01*
X191216747Y-135975899D02*
X187816747Y-135975899D01*
%TO.C,LED80*%
X203132427Y-175606329D02*
X206458125Y-174899430D01*
X203756159Y-178540772D02*
X203132427Y-175606329D01*
X206458125Y-174899430D02*
X207081857Y-177833873D01*
X207081857Y-177833873D02*
X203756159Y-178540772D01*
%TO.C,LED5*%
X111816747Y-150975900D02*
X115216747Y-150975900D01*
X111816747Y-153975900D02*
X111816747Y-150975900D01*
X115216747Y-150975900D02*
X115216747Y-153975900D01*
X115216747Y-153975900D02*
X111816747Y-153975900D01*
%TO.C,LED60*%
X225816744Y-132975898D02*
X229216744Y-132975898D01*
X225816744Y-135975898D02*
X225816744Y-132975898D01*
X229216744Y-132975898D02*
X229216744Y-135975898D01*
X229216744Y-135975898D02*
X225816744Y-135975898D01*
%TO.C,LED76*%
X133392469Y-174505551D02*
X133809985Y-171534747D01*
X133809985Y-171534747D02*
X137176893Y-172007935D01*
X136759377Y-174978739D02*
X133392469Y-174505551D01*
X137176893Y-172007935D02*
X136759377Y-174978739D01*
%TO.C,LED75*%
X113648776Y-172549714D02*
X113858046Y-169557025D01*
X113858046Y-169557025D02*
X117249764Y-169794200D01*
X117040494Y-172786889D02*
X113648776Y-172549714D01*
X117249764Y-169794200D02*
X117040494Y-172786889D01*
%TO.C,LED64*%
X263816748Y-168975901D02*
X267216748Y-168975901D01*
X263816748Y-171975901D02*
X263816748Y-168975901D01*
X267216748Y-168975901D02*
X267216748Y-171975901D01*
X267216748Y-171975901D02*
X263816748Y-171975901D01*
%TO.C,LED30*%
X92816746Y-75975902D02*
X96216746Y-75975902D01*
X92816746Y-78975902D02*
X92816746Y-75975902D01*
X96216746Y-75975902D02*
X96216746Y-78975902D01*
X96216746Y-78975902D02*
X92816746Y-78975902D01*
%TO.C,LED52*%
X149816745Y-132975901D02*
X153216745Y-132975901D01*
X149816745Y-135975901D02*
X149816745Y-132975901D01*
X153216745Y-132975901D02*
X153216745Y-135975901D01*
X153216745Y-135975901D02*
X149816745Y-135975901D01*
%TO.C,LED31*%
X111816749Y-75975901D02*
X115216749Y-75975901D01*
X111816749Y-78975901D02*
X111816749Y-75975901D01*
X115216749Y-75975901D02*
X115216749Y-78975901D01*
X115216749Y-78975901D02*
X111816749Y-78975901D01*
%TO.C,LED7*%
X130816748Y-150975901D02*
X134216748Y-150975901D01*
X130816748Y-153975901D02*
X130816748Y-150975901D01*
X134216748Y-150975901D02*
X134216748Y-153975901D01*
X134216748Y-153975901D02*
X130816748Y-153975901D01*
%TO.C,LED78*%
X242783731Y-169794201D02*
X246175449Y-169557026D01*
X242993001Y-172786890D02*
X242783731Y-169794201D01*
X246175449Y-169557026D02*
X246384719Y-172549715D01*
X246384719Y-172549715D02*
X242993001Y-172786890D01*
%TO.C,LED77*%
X152951636Y-177833874D02*
X153575368Y-174899431D01*
X153575368Y-174899431D02*
X156901066Y-175606330D01*
X156277334Y-178540773D02*
X152951636Y-177833874D01*
X156901066Y-175606330D02*
X156277334Y-178540773D01*
%TO.C,LED10*%
X149816746Y-114975901D02*
X153216746Y-114975901D01*
X149816746Y-117975901D02*
X149816746Y-114975901D01*
X153216746Y-114975901D02*
X153216746Y-117975901D01*
X153216746Y-117975901D02*
X149816746Y-117975901D01*
%TO.C,LED25*%
X301816748Y-150975899D02*
X305216748Y-150975899D01*
X301816748Y-153975899D02*
X301816748Y-150975899D01*
X305216748Y-150975899D02*
X305216748Y-153975899D01*
X305216748Y-153975899D02*
X301816748Y-153975899D01*
%TO.C,LED53*%
X149816747Y-96975902D02*
X153216747Y-96975902D01*
X149816747Y-99975902D02*
X149816747Y-96975902D01*
X153216747Y-96975902D02*
X153216747Y-99975902D01*
X153216747Y-99975902D02*
X149816747Y-99975902D01*
%TO.C,LED6*%
X111816750Y-114975898D02*
X115216750Y-114975898D01*
X111816750Y-117975898D02*
X111816750Y-114975898D01*
X115216750Y-114975898D02*
X115216750Y-117975898D01*
X115216750Y-117975898D02*
X111816750Y-117975898D01*
%TO.C,LED73*%
X320816746Y-168975898D02*
X324216746Y-168975898D01*
X320816746Y-171975898D02*
X320816746Y-168975898D01*
X324216746Y-168975898D02*
X324216746Y-171975898D01*
X324216746Y-171975898D02*
X320816746Y-171975898D01*
%TO.C,LED2*%
X73816746Y-114975898D02*
X77216746Y-114975898D01*
X73816746Y-117975898D02*
X73816746Y-114975898D01*
X77216746Y-114975898D02*
X77216746Y-117975898D01*
X77216746Y-117975898D02*
X73816746Y-117975898D01*
%TO.C,LED68*%
X282816748Y-132975902D02*
X286216748Y-132975902D01*
X282816748Y-135975902D02*
X282816748Y-132975902D01*
X286216748Y-132975902D02*
X286216748Y-135975902D01*
X286216748Y-135975902D02*
X282816748Y-135975902D01*
%TO.C,LED34*%
X168816747Y-75975897D02*
X172216747Y-75975897D01*
X168816747Y-78975897D02*
X168816747Y-75975897D01*
X172216747Y-75975897D02*
X172216747Y-78975897D01*
X172216747Y-78975897D02*
X168816747Y-78975897D01*
%TO.C,LED20*%
X244816751Y-114975901D02*
X248216751Y-114975901D01*
X244816751Y-117975901D02*
X244816751Y-114975901D01*
X248216751Y-114975901D02*
X248216751Y-117975901D01*
X248216751Y-117975901D02*
X244816751Y-117975901D01*
%TO.C,LED51*%
X130816748Y-96975900D02*
X134216748Y-96975900D01*
X130816748Y-99975900D02*
X130816748Y-96975900D01*
X134216748Y-96975900D02*
X134216748Y-99975900D01*
X134216748Y-99975900D02*
X130816748Y-99975900D01*
%TO.C,LED29*%
X73816750Y-75975900D02*
X77216750Y-75975900D01*
X73816750Y-78975900D02*
X73816750Y-75975900D01*
X77216750Y-75975900D02*
X77216750Y-78975900D01*
X77216750Y-78975900D02*
X73816750Y-78975900D01*
%TO.C,LED22*%
X263816753Y-114975900D02*
X267216753Y-114975900D01*
X263816753Y-117975900D02*
X263816753Y-114975900D01*
X267216753Y-114975900D02*
X267216753Y-117975900D01*
X267216753Y-117975900D02*
X263816753Y-117975900D01*
%TO.C,LED61*%
X225816747Y-96975899D02*
X229216747Y-96975899D01*
X225816747Y-99975899D02*
X225816747Y-96975899D01*
X229216747Y-96975899D02*
X229216747Y-99975899D01*
X229216747Y-99975899D02*
X225816747Y-99975899D01*
%TO.C,LED44*%
X73816747Y-96975900D02*
X77216747Y-96975900D01*
X73816747Y-99975900D02*
X73816747Y-96975900D01*
X77216747Y-96975900D02*
X77216747Y-99975900D01*
X77216747Y-99975900D02*
X73816747Y-99975900D01*
%TO.C,LED32*%
X130816749Y-75975901D02*
X134216749Y-75975901D01*
X130816749Y-78975901D02*
X130816749Y-75975901D01*
X134216749Y-75975901D02*
X134216749Y-78975901D01*
X134216749Y-78975901D02*
X130816749Y-78975901D01*
%TO.C,LED63*%
X244816745Y-96975900D02*
X248216745Y-96975900D01*
X244816745Y-99975900D02*
X244816745Y-96975900D01*
X248216745Y-96975900D02*
X248216745Y-99975900D01*
X248216745Y-99975900D02*
X244816745Y-99975900D01*
%TO.C,LED37*%
X225816747Y-75975899D02*
X229216747Y-75975899D01*
X225816747Y-78975899D02*
X225816747Y-75975899D01*
X229216747Y-75975899D02*
X229216747Y-78975899D01*
X229216747Y-78975899D02*
X225816747Y-78975899D01*
%TO.C,LED71*%
X301816747Y-132975904D02*
X305216747Y-132975904D01*
X301816747Y-135975904D02*
X301816747Y-132975904D01*
X305216747Y-132975904D02*
X305216747Y-135975904D01*
X305216747Y-135975904D02*
X301816747Y-135975904D01*
%TO.C,LED16*%
X206816749Y-114975902D02*
X210216749Y-114975902D01*
X206816749Y-117975902D02*
X206816749Y-114975902D01*
X210216749Y-114975902D02*
X210216749Y-117975902D01*
X210216749Y-117975902D02*
X206816749Y-117975902D01*
%TO.C,LED3*%
X92816745Y-150975901D02*
X96216745Y-150975901D01*
X92816745Y-153975901D02*
X92816745Y-150975901D01*
X96216745Y-150975901D02*
X96216745Y-153975901D01*
X96216745Y-153975901D02*
X92816745Y-153975901D01*
%TO.C,LED79*%
X222856603Y-172007936D02*
X226223511Y-171534748D01*
X223274119Y-174978740D02*
X222856603Y-172007936D01*
X226223511Y-171534748D02*
X226641027Y-174505552D01*
X226641027Y-174505552D02*
X223274119Y-174978740D01*
%TO.C,LED4*%
X92816748Y-114975899D02*
X96216748Y-114975899D01*
X92816748Y-117975899D02*
X92816748Y-114975899D01*
X96216748Y-114975899D02*
X96216748Y-117975899D01*
X96216748Y-117975899D02*
X92816748Y-117975899D01*
%TO.C,LED42*%
X73816747Y-168975899D02*
X77216747Y-168975899D01*
X73816747Y-171975899D02*
X73816747Y-168975899D01*
X77216747Y-168975899D02*
X77216747Y-171975899D01*
X77216747Y-171975899D02*
X73816747Y-171975899D01*
%TO.C,LED11*%
X168816753Y-150975900D02*
X172216753Y-150975900D01*
X168816753Y-153975900D02*
X168816753Y-150975900D01*
X172216753Y-150975900D02*
X172216753Y-153975900D01*
X172216753Y-153975900D02*
X168816753Y-153975900D01*
%TD*%
M02*

View File

@ -0,0 +1,757 @@
%TF.GenerationSoftware,KiCad,Pcbnew,8.0.7*%
%TF.CreationDate,2025-01-24T18:11:26+01:00*%
%TF.ProjectId,eepyboard_rev3,65657079-626f-4617-9264-5f726576332e,1.2*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Copper,L1,Top*%
%TF.FilePolarity,Positive*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.7) date 2025-01-24 18:11:26*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%TA.AperFunction,ComponentPad*%
%ADD10C,1.500000*%
%TD*%
%TA.AperFunction,ComponentPad*%
%ADD11R,2.000000X2.000000*%
%TD*%
%TA.AperFunction,ComponentPad*%
%ADD12C,2.000000*%
%TD*%
%TA.AperFunction,ComponentPad*%
%ADD13C,1.752600*%
%TD*%
%TA.AperFunction,ViaPad*%
%ADD14C,0.600000*%
%TD*%
%TA.AperFunction,Conductor*%
%ADD15C,0.200000*%
%TD*%
G04 APERTURE END LIST*
D10*
%TO.P,ROT1,1*%
%TO.N,diode_rotary_top_right*%
X322976745Y-75295902D03*
%TO.P,ROT1,2*%
%TO.N,COL14*%
X327976745Y-75295902D03*
D11*
%TO.P,ROT1,A*%
%TO.N,rotary_top_right_a*%
X322976745Y-89795905D03*
D12*
%TO.P,ROT1,B*%
%TO.N,rotary_top_right_b*%
X327976745Y-89795904D03*
%TO.P,ROT1,C*%
%TO.N,GND*%
X325476746Y-89795902D03*
%TD*%
D13*
%TO.P,MCU1,1*%
%TO.N,ROW1*%
X333136746Y-72165900D03*
%TO.P,MCU1,2*%
%TO.N,ROW2*%
X333136746Y-74705900D03*
%TO.P,MCU1,3*%
%TO.N,ROW3*%
X333136746Y-77245900D03*
%TO.P,MCU1,4*%
%TO.N,ROW4*%
X333136746Y-79785900D03*
%TO.P,MCU1,5*%
%TO.N,GP4*%
X333136746Y-82325900D03*
%TO.P,MCU1,6*%
%TO.N,GP5*%
X333136746Y-84865900D03*
%TO.P,MCU1,7*%
%TO.N,rotary_top_right_a*%
X333136746Y-87405900D03*
%TO.P,MCU1,8*%
%TO.N,rotary_top_right_b*%
X333136746Y-89945900D03*
%TO.P,MCU1,9*%
%TO.N,COL14*%
X333136746Y-92485900D03*
%TO.P,MCU1,10*%
%TO.N,COL13*%
X333136746Y-95025900D03*
%TO.P,MCU1,11*%
%TO.N,COL12*%
X333136746Y-97565900D03*
%TO.P,MCU1,12*%
%TO.N,COL11*%
X333136746Y-100105900D03*
%TO.P,MCU1,13*%
%TO.N,COL10*%
X333136746Y-102645900D03*
%TO.P,MCU1,14*%
%TO.N,COL9*%
X333136746Y-105185900D03*
%TO.P,MCU1,15*%
%TO.N,GP14*%
X330596746Y-105185900D03*
%TO.P,MCU1,16*%
%TO.N,GP15*%
X328056746Y-105185900D03*
%TO.P,MCU1,17*%
%TO.N,GP16*%
X325516746Y-105185900D03*
%TO.P,MCU1,18*%
%TO.N,COL8*%
X322976746Y-105185900D03*
%TO.P,MCU1,19*%
%TO.N,COL7*%
X320436746Y-105185900D03*
%TO.P,MCU1,20*%
%TO.N,VCC*%
X317896746Y-72165900D03*
%TO.P,MCU1,21*%
%TO.N,GND*%
X317896746Y-74705900D03*
%TO.P,MCU1,22*%
%TO.N,RST*%
X317896746Y-77245900D03*
%TO.P,MCU1,23*%
%TO.N,3V3*%
X317896746Y-79785900D03*
%TO.P,MCU1,24*%
%TO.N,led_din_function_f12*%
X317896746Y-82325900D03*
%TO.P,MCU1,25*%
%TO.N,ROW6*%
X317896746Y-84865900D03*
%TO.P,MCU1,26*%
%TO.N,COL1*%
X317896746Y-87405900D03*
%TO.P,MCU1,27*%
%TO.N,COL2*%
X317896746Y-89945900D03*
%TO.P,MCU1,28*%
%TO.N,COL3*%
X317896746Y-92485900D03*
%TO.P,MCU1,29*%
%TO.N,COL4*%
X317896746Y-95025900D03*
%TO.P,MCU1,30*%
%TO.N,COL5*%
X317896746Y-97565900D03*
%TO.P,MCU1,31*%
%TO.N,COL6*%
X317896746Y-100105900D03*
%TO.P,MCU1,32*%
%TO.N,GP20*%
X317896746Y-102645900D03*
%TO.P,MCU1,33*%
%TO.N,ROW5*%
X317896746Y-105185900D03*
%TD*%
D14*
%TO.N,COL6*%
X162027674Y-96175900D03*
%TO.N,COL5*%
X143027675Y-96175900D03*
%TO.N,COL4*%
X124027673Y-96175900D03*
%TO.N,COL3*%
X105027673Y-96175900D03*
%TO.N,COL2*%
X86027674Y-96175900D03*
%TO.N,COL1*%
X67027672Y-96175900D03*
%TO.N,led_din_main_right_bottom*%
X330900000Y-135250000D03*
%TO.N,COL9*%
X331500000Y-130500000D03*
%TO.N,COL10*%
X331500000Y-131500000D03*
%TO.N,COL7*%
X181027674Y-114000000D03*
%TO.N,COL8*%
X200027674Y-114000000D03*
%TO.N,COL9*%
X219027674Y-132000000D03*
%TO.N,COL10*%
X238027674Y-132000000D03*
%TO.N,COL13*%
X331500000Y-166500000D03*
%TO.N,COL12*%
X331500000Y-149500000D03*
%TO.N,COL13*%
X295027674Y-168000000D03*
%TO.N,COL11*%
X257027673Y-150000000D03*
%TO.N,COL12*%
X276027673Y-150000000D03*
%TO.N,GND*%
X200635767Y-176903765D03*
%TO.N,VCC*%
X209909495Y-177245617D03*
X229466372Y-174121100D03*
%TO.N,GND*%
X220239081Y-173133175D03*
X240151917Y-170730062D03*
%TO.N,VCC*%
X249287818Y-172359247D03*
X119876586Y-172997741D03*
X139351300Y-175355633D03*
X158830360Y-179096210D03*
%TO.N,GND*%
X150497430Y-175011951D03*
X130753767Y-171862594D03*
X111056334Y-170112943D03*
X317890546Y-169725899D03*
X298890546Y-169725899D03*
X279890544Y-169725901D03*
X260890545Y-169725900D03*
X175390544Y-178117398D03*
X89890544Y-169725901D03*
X70890544Y-169725900D03*
X317890544Y-133725901D03*
X298890544Y-133725902D03*
X279890544Y-133725901D03*
X260890544Y-133725903D03*
X241890546Y-133725900D03*
X222890544Y-133725898D03*
X203890544Y-133725898D03*
X184890543Y-133725900D03*
X165890544Y-133725902D03*
X146890543Y-133725901D03*
X127890544Y-133725901D03*
X108890544Y-133725901D03*
X89890544Y-133725902D03*
X70890543Y-133725903D03*
X298890544Y-97725900D03*
X279890544Y-97725900D03*
X260890545Y-97725901D03*
X241890546Y-97725901D03*
X222890545Y-97725899D03*
X203890545Y-97725901D03*
X184890544Y-97725903D03*
X165890544Y-97725898D03*
X146890543Y-97725900D03*
X127890543Y-97725898D03*
X108890543Y-97725898D03*
X89890543Y-97725900D03*
X70890544Y-97725901D03*
X327390544Y-153225900D03*
X308390544Y-153225901D03*
X289390544Y-153225900D03*
X270390544Y-153225900D03*
X251390544Y-153225902D03*
X232390544Y-153225904D03*
X213390543Y-153225903D03*
X194390543Y-153225900D03*
X175390543Y-153225901D03*
X156390543Y-153225899D03*
X137390543Y-153225900D03*
X118390543Y-153225899D03*
X99390544Y-153225900D03*
X80390544Y-153225901D03*
X327390544Y-117225901D03*
X308390543Y-117225901D03*
X289390544Y-117225902D03*
X270390543Y-117225900D03*
X251390544Y-117225900D03*
X232390544Y-117225901D03*
X213390544Y-117225902D03*
X194390543Y-117225899D03*
X175390543Y-117225902D03*
X156390543Y-117225902D03*
X137390543Y-117225901D03*
X118390543Y-117225901D03*
X99390543Y-117225899D03*
X80390543Y-117225899D03*
%TO.N,COL14*%
X314027672Y-122571945D03*
X314027672Y-158571942D03*
X314027672Y-176571945D03*
X314027674Y-140571942D03*
%TO.N,COL13*%
X295027673Y-104571945D03*
X295027675Y-122571945D03*
X295027674Y-176571947D03*
X295027674Y-140571944D03*
X295027673Y-158571942D03*
X295027674Y-88071942D03*
%TO.N,COL12*%
X276027673Y-122571947D03*
X276027671Y-88071942D03*
X276027673Y-158571943D03*
X276027676Y-104571944D03*
X276027673Y-140571944D03*
X276027674Y-176571944D03*
%TO.N,COL11*%
X257027675Y-104571944D03*
X257027673Y-158571945D03*
X257027675Y-176571942D03*
X257027674Y-122571942D03*
X257027674Y-140571942D03*
X257027673Y-88071944D03*
%TO.N,COL10*%
X238027675Y-88071946D03*
X238027675Y-104571944D03*
X236545581Y-177918401D03*
X238027673Y-158571944D03*
X238027674Y-140571944D03*
X238027673Y-122571943D03*
%TO.N,COL9*%
X219027675Y-122571941D03*
X219027676Y-104571946D03*
X217149134Y-180638936D03*
X219027673Y-158571944D03*
X219027673Y-88071945D03*
X219027674Y-140571945D03*
%TO.N,COL8*%
X200027674Y-88071945D03*
X198059299Y-184547830D03*
X200027673Y-122571942D03*
X200027672Y-158571943D03*
X200027675Y-140571945D03*
X200027676Y-104571945D03*
%TO.N,COL7*%
X181027676Y-140571943D03*
X181027676Y-104571944D03*
X181027676Y-88071943D03*
X181027672Y-158571944D03*
X181027672Y-122571942D03*
%TO.N,VCC*%
X222890544Y-75863400D03*
X288890543Y-171988400D03*
X108890544Y-114863402D03*
X279890543Y-75863402D03*
X127890544Y-75863401D03*
X250890543Y-135988402D03*
X193890543Y-99988399D03*
X250890544Y-99988400D03*
X174890543Y-99988401D03*
X146890544Y-150863400D03*
X260890544Y-75863399D03*
X241890543Y-75863397D03*
X98890543Y-99988405D03*
X317890544Y-150863398D03*
X146890544Y-114863403D03*
X193890543Y-135988404D03*
X117890544Y-99988403D03*
X79890544Y-99988402D03*
X184390545Y-180379896D03*
X79890544Y-171988399D03*
X174890544Y-135988402D03*
X326890544Y-171988397D03*
X184890545Y-114863403D03*
X70890544Y-114863399D03*
X117890544Y-135988400D03*
X307890544Y-135988401D03*
X203890544Y-150863401D03*
X127890543Y-114863403D03*
X89890544Y-75863403D03*
X165890543Y-114863402D03*
X279890543Y-150863402D03*
X89890543Y-150863399D03*
X203890545Y-75863403D03*
X306890545Y-73667578D03*
X222890544Y-150863401D03*
X184890544Y-150863399D03*
X136890543Y-135988401D03*
X288890544Y-99988401D03*
X317890545Y-114863400D03*
X79890545Y-135988398D03*
X260890543Y-114863401D03*
X241890543Y-150863401D03*
X98890542Y-135988402D03*
X108890544Y-75863403D03*
X298890543Y-150863403D03*
X146890544Y-75863398D03*
X222890543Y-114863403D03*
X260890543Y-150863401D03*
X288890544Y-135988402D03*
X269890543Y-171988403D03*
X155890543Y-99988401D03*
X241890543Y-114863402D03*
X231890544Y-99988399D03*
X203890544Y-114863402D03*
X326890544Y-135988401D03*
X70890543Y-75863401D03*
X165890544Y-75863400D03*
X108890543Y-150863403D03*
X98890545Y-171988396D03*
X165890544Y-150863399D03*
X136890544Y-99988402D03*
X127890545Y-150863398D03*
X269890544Y-99988400D03*
X269890545Y-135988398D03*
X212890543Y-99988400D03*
X89890544Y-114863399D03*
X184890545Y-75863401D03*
X298890544Y-114863399D03*
X307890545Y-99988404D03*
X70890543Y-150863401D03*
X279890544Y-114863399D03*
X155890544Y-135988398D03*
X307890544Y-171988399D03*
X212890543Y-135988402D03*
X231890543Y-135988401D03*
%TO.N,GND*%
X80390543Y-78225900D03*
X194390545Y-78225898D03*
X289390543Y-78225902D03*
X308390543Y-78225900D03*
X99390545Y-78225902D03*
X137390544Y-78225902D03*
X118390544Y-78225902D03*
X232390545Y-78225899D03*
X251390544Y-78225898D03*
X175390544Y-78225897D03*
X213390545Y-78225899D03*
X156390544Y-78225900D03*
X270390543Y-78225899D03*
%TO.N,COL1*%
X67027674Y-122571946D03*
X67027673Y-88071943D03*
X67027673Y-176571943D03*
X67027671Y-104571942D03*
X67027674Y-158571946D03*
X67027673Y-140571941D03*
%TO.N,COL2*%
X86027673Y-88071942D03*
X86027673Y-104571942D03*
X86027676Y-176571946D03*
X86027673Y-140571943D03*
X86027675Y-158571943D03*
X86027675Y-122571947D03*
%TO.N,COL3*%
X106718122Y-176775310D03*
X105027675Y-158571943D03*
X105027674Y-104571943D03*
X105027675Y-122571945D03*
X105027673Y-88071944D03*
X105027671Y-140571944D03*
%TO.N,COL4*%
X125945875Y-178346396D03*
X124027674Y-104571945D03*
X124027675Y-88071945D03*
X124027675Y-158571942D03*
X124027672Y-122571944D03*
X124027673Y-140571944D03*
%TO.N,COL5*%
X143027674Y-104571944D03*
X143027676Y-88071944D03*
X143027674Y-140571942D03*
X143027675Y-158571944D03*
X145299627Y-180922965D03*
X143027672Y-122571944D03*
%TO.N,COL6*%
X162027672Y-140571942D03*
X162027674Y-104571943D03*
X171527673Y-185071943D03*
X162027674Y-88071945D03*
X162027673Y-122571945D03*
X162027673Y-158571945D03*
%TO.N,COL11*%
X331500000Y-148500000D03*
%TO.N,led_din_main_right_bottom*%
X330900000Y-150250000D03*
%TD*%
D15*
%TO.N,rotary_top_right_a*%
X322976745Y-89795905D02*
X325366750Y-87405900D01*
X325366750Y-87405900D02*
X333136746Y-87405900D01*
%TO.N,rotary_top_right_b*%
X327976745Y-89795904D02*
X332986750Y-89795904D01*
%TO.N,COL6*%
X162027674Y-96175900D02*
X162027674Y-104571943D01*
%TO.N,COL5*%
X143027675Y-96175900D02*
X143027676Y-88071944D01*
%TO.N,COL4*%
X124027673Y-96175900D02*
X124027674Y-104571945D01*
%TO.N,COL3*%
X105027673Y-96175900D02*
X105027674Y-104571943D01*
%TO.N,COL2*%
X86027674Y-96175900D02*
X86027673Y-104571942D01*
%TO.N,COL1*%
X67027672Y-96175900D02*
X67027671Y-104571942D01*
%TO.N,led_din_main_right_bottom*%
X330900000Y-135250000D02*
X330900000Y-150250000D01*
%TO.N,COL14*%
X333136746Y-92485900D02*
X336500000Y-95849154D01*
X336500000Y-95849154D02*
X336500000Y-163500000D01*
X336500000Y-163500000D02*
X331500000Y-168500000D01*
X331500000Y-168500000D02*
X314027674Y-168500000D01*
%TO.N,COL13*%
X333136746Y-95025900D02*
X336100000Y-97989154D01*
X336100000Y-97989154D02*
X336100000Y-161900000D01*
X336100000Y-161900000D02*
X331500000Y-166500000D01*
%TO.N,COL12*%
X331500000Y-149500000D02*
X335700000Y-145300000D01*
X335700000Y-145300000D02*
X335700000Y-100129154D01*
X335700000Y-100129154D02*
X333136746Y-97565900D01*
%TO.N,COL11*%
X333136746Y-100105900D02*
X335300000Y-102269154D01*
X335300000Y-102269154D02*
X335300000Y-144700000D01*
X335300000Y-144700000D02*
X331500000Y-148500000D01*
%TO.N,COL10*%
X331500000Y-131500000D02*
X334900000Y-128100000D01*
X334900000Y-128100000D02*
X334900000Y-104409154D01*
X334900000Y-104409154D02*
X333136746Y-102645900D01*
%TO.N,COL9*%
X333136746Y-105185900D02*
X334500000Y-106549154D01*
X334500000Y-106549154D02*
X334500000Y-127500000D01*
X334500000Y-127500000D02*
X331500000Y-130500000D01*
%TO.N,COL7*%
X181027674Y-114000000D02*
X181027672Y-122571942D01*
%TO.N,COL8*%
X200027674Y-114000000D02*
X200027673Y-122571942D01*
%TO.N,COL9*%
X219027674Y-132000000D02*
X219027674Y-140571945D01*
%TO.N,COL10*%
X238027674Y-132000000D02*
X238027674Y-140571944D01*
%TO.N,COL14*%
X314027672Y-158571942D02*
X314027674Y-170500000D01*
X314027672Y-176571945D02*
X314027674Y-170500000D01*
%TO.N,COL13*%
X295027674Y-168000000D02*
X295027674Y-176571947D01*
%TO.N,COL11*%
X257027673Y-150000000D02*
X257027673Y-158571945D01*
X257027674Y-140571942D02*
X257027673Y-150000000D01*
%TO.N,COL13*%
X295027673Y-158571942D02*
X295027674Y-168000000D01*
%TO.N,COL14*%
X314027672Y-158571942D02*
X314027674Y-140571942D01*
X314027674Y-140571942D02*
X314027672Y-122571945D01*
%TO.N,COL13*%
X295027673Y-104571945D02*
X295027675Y-122571945D01*
X295027674Y-140571944D02*
X295027673Y-158571942D01*
X295027673Y-104571945D02*
X295027674Y-88071942D01*
X295027675Y-122571945D02*
X295027674Y-140571944D01*
%TO.N,COL12*%
X276027676Y-104571944D02*
X276027673Y-122571947D01*
X276027672Y-94571944D02*
X276027676Y-104571944D01*
X276027673Y-122571947D02*
X276027673Y-140571944D01*
X276027673Y-158571943D02*
X276027674Y-176571944D01*
X276027671Y-88071942D02*
X276027672Y-94571944D01*
%TO.N,COL11*%
X257027673Y-88071944D02*
X257027676Y-93571944D01*
X257027676Y-93571944D02*
X257027675Y-104571944D01*
X257027673Y-158571945D02*
X257027675Y-176571942D01*
X257027675Y-104571944D02*
X257027674Y-122571942D01*
X257027674Y-122571942D02*
X257027674Y-140571942D01*
%TO.N,COL10*%
X238027674Y-140571944D02*
X238027673Y-158571944D01*
X238027675Y-104571944D02*
X238027673Y-122571943D01*
X236545581Y-177918401D02*
X235988108Y-169946219D01*
X235988108Y-169946219D02*
X235989564Y-169944548D01*
X235989564Y-169944548D02*
X238027675Y-167906437D01*
X238027675Y-88071946D02*
X238027673Y-93571945D01*
X238027675Y-167906437D02*
X238027673Y-158571944D01*
X238027673Y-93571945D02*
X238027675Y-104571944D01*
X238027673Y-122571943D02*
X238027674Y-132000000D01*
%TO.N,COL9*%
X216202771Y-173905211D02*
X219027676Y-170156436D01*
X219027673Y-88071945D02*
X219027676Y-93571944D01*
X219027676Y-170156436D02*
X219027673Y-158571944D01*
X219027675Y-122571941D02*
X219027674Y-132000000D01*
X219027676Y-93571944D02*
X219027676Y-104571946D01*
X219027674Y-140571945D02*
X219027673Y-158571944D01*
X217149134Y-180638936D02*
X216202771Y-173905211D01*
X219027676Y-104571946D02*
X219027675Y-122571941D01*
%TO.N,COL8*%
X200027672Y-158571943D02*
X200027675Y-173906436D01*
X200027674Y-88071945D02*
X200027676Y-104571945D01*
X196840567Y-178814150D02*
X200027675Y-173906436D01*
X200027676Y-104571945D02*
X200027674Y-114000000D01*
X200027673Y-122571942D02*
X200027675Y-140571945D01*
X200027675Y-140571945D02*
X200027672Y-158571943D01*
X198059299Y-184547830D02*
X196840567Y-178814150D01*
%TO.N,COL7*%
X181027676Y-88071943D02*
X181027673Y-93071947D01*
X181027673Y-93071947D02*
X181027676Y-104571944D01*
X181027672Y-122571942D02*
X181027676Y-140571943D01*
X181027676Y-104571944D02*
X181027674Y-114000000D01*
X181027676Y-140571943D02*
X181027672Y-158571944D01*
%TO.N,COL1*%
X67027674Y-158571946D02*
X67027673Y-176571943D01*
X67027671Y-104571942D02*
X67027674Y-122571946D01*
X67027673Y-88071943D02*
X67027672Y-96175900D01*
X67027674Y-122571946D02*
X67027673Y-140571941D01*
X67027673Y-140571941D02*
X67027674Y-158571946D01*
%TO.N,COL2*%
X86027673Y-140571943D02*
X86027675Y-158571943D01*
X86027675Y-122571947D02*
X86027673Y-140571943D01*
X86027675Y-158571943D02*
X86027676Y-176571946D01*
X86027673Y-88071942D02*
X86027675Y-92571943D01*
X86027673Y-104571942D02*
X86027675Y-122571947D01*
X86027675Y-92571943D02*
X86027674Y-96175900D01*
%TO.N,COL3*%
X105027674Y-104571943D02*
X105027675Y-122571945D01*
X105027675Y-158571943D02*
X105027674Y-165669254D01*
X105027674Y-165669254D02*
X107332459Y-167974035D01*
X105027673Y-88071944D02*
X105027673Y-96175900D01*
X107241296Y-169293579D02*
X106718122Y-176775310D01*
X105027671Y-140571944D02*
X105027675Y-158571943D01*
X107241296Y-169293579D02*
X107333482Y-167975218D01*
X107333482Y-167975218D02*
X107332459Y-167974035D01*
X105027675Y-122571945D02*
X105027671Y-140571944D01*
%TO.N,COL4*%
X124027675Y-88071945D02*
X124027672Y-92071943D01*
X124027672Y-122571944D02*
X124027673Y-140571944D01*
X124027673Y-140571944D02*
X124027675Y-158571942D01*
X124027675Y-167942618D02*
X126991492Y-170906436D01*
X124027674Y-104571945D02*
X124027672Y-122571944D01*
X124027675Y-158571942D02*
X124027675Y-167942618D01*
X126991492Y-170906436D02*
X125945875Y-178346396D01*
X124027672Y-92071943D02*
X124027673Y-96175900D01*
%TO.N,COL5*%
X143027674Y-104571944D02*
X143027672Y-122571944D01*
X143027674Y-140571942D02*
X143027675Y-158571944D01*
X143027675Y-158571944D02*
X143027674Y-170446214D01*
X146737896Y-174156436D02*
X145299627Y-180922965D01*
X143027674Y-104571944D02*
X143027675Y-96175900D01*
X143027674Y-170446214D02*
X146737896Y-174156436D01*
X143027672Y-122571944D02*
X143027674Y-140571942D01*
%TO.N,COL6*%
X162027674Y-104571943D02*
X162027673Y-122571945D01*
X162027672Y-140571942D02*
X162027673Y-158571945D01*
X162027674Y-88071945D02*
X162027674Y-96175900D01*
X162027674Y-165656438D02*
X162027673Y-174386582D01*
X171527672Y-183886580D02*
X171527673Y-185071943D01*
X162027673Y-174386582D02*
X171527672Y-183886580D01*
X162027673Y-158571945D02*
X162027674Y-165656438D01*
X162027673Y-122571945D02*
X162027672Y-140571942D01*
%TO.N,COL12*%
X276027673Y-150000000D02*
X276027673Y-158571943D01*
X276027673Y-140571944D02*
X276027673Y-150000000D01*
%TD*%
M02*

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,15 @@
%TF.GenerationSoftware,KiCad,Pcbnew,8.0.7*%
%TF.CreationDate,2025-01-24T18:11:26+01:00*%
%TF.ProjectId,eepyboard_rev3,65657079-626f-4617-9264-5f726576332e,1.2*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Paste,Top*%
%TF.FilePolarity,Positive*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.7) date 2025-01-24 18:11:26*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
G04 APERTURE END LIST*
M02*

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,441 @@
M48
; DRILL file {KiCad 8.0.7} date 2025-01-24T18:11:34+0100
; FORMAT={-:-/ absolute / metric / decimal}
; #@! TF.CreationDate,2025-01-24T18:11:34+01:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.7
; #@! TF.FileFunction,NonPlated,1,4,NPTH
FMAT,2
METRIC
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
T1C1.702
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
T2C2.200
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
T3C3.000
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
T4C3.429
%
G90
G05
T1
X70.017Y-175.176
X70.017Y-82.176
X70.017Y-121.176
X70.017Y-103.176
X70.017Y-139.176
X70.017Y-157.176
X81.017Y-175.176
X81.017Y-82.176
X81.017Y-121.176
X81.017Y-103.176
X81.017Y-139.176
X81.017Y-157.176
X89.017Y-82.176
X89.017Y-139.176
X89.017Y-103.176
X89.017Y-121.176
X89.017Y-157.176
X89.017Y-175.176
X100.017Y-82.176
X100.017Y-139.176
X100.017Y-103.176
X100.017Y-121.176
X100.017Y-157.176
X100.017Y-175.176
X108.017Y-82.176
X108.017Y-103.176
X108.017Y-121.176
X108.017Y-157.176
X108.017Y-139.176
X109.635Y-175.477
X119.017Y-82.176
X119.017Y-103.176
X119.017Y-121.176
X119.017Y-157.176
X119.017Y-139.176
X120.608Y-176.244
X127.017Y-103.176
X127.017Y-121.176
X127.017Y-157.176
X127.017Y-82.176
X127.017Y-139.176
X129.184Y-177.146
X138.017Y-103.176
X138.017Y-121.176
X138.017Y-157.176
X138.017Y-82.176
X138.017Y-139.176
X140.077Y-178.676
X146.017Y-139.176
X146.017Y-103.176
X146.017Y-157.176
X146.017Y-82.176
X146.017Y-121.176
X148.569Y-180.174
X157.017Y-139.176
X157.017Y-103.176
X157.017Y-157.176
X157.017Y-82.176
X157.017Y-121.176
X159.329Y-182.461
X165.017Y-139.176
X165.017Y-121.176
X165.017Y-82.176
X165.017Y-157.176
X165.017Y-103.176
X174.517Y-183.567
X176.017Y-139.176
X176.017Y-121.176
X176.017Y-82.176
X176.017Y-157.176
X176.017Y-103.176
X184.017Y-103.176
X184.017Y-139.176
X184.017Y-157.176
X184.017Y-121.176
X184.017Y-82.176
X185.517Y-183.567
X195.017Y-103.176
X195.017Y-139.176
X195.017Y-157.176
X195.017Y-121.176
X195.017Y-82.176
X200.705Y-182.461
X203.017Y-139.176
X203.017Y-157.176
X203.017Y-103.176
X203.017Y-121.176
X203.017Y-82.176
X211.464Y-180.174
X214.017Y-139.176
X214.017Y-157.176
X214.017Y-103.176
X214.017Y-121.176
X214.017Y-82.176
X219.956Y-178.676
X222.017Y-121.176
X222.017Y-157.176
X222.017Y-103.176
X222.017Y-82.176
X222.017Y-139.176
X230.849Y-177.146
X233.017Y-121.176
X233.017Y-157.176
X233.017Y-103.176
X233.017Y-82.176
X233.017Y-139.176
X239.425Y-176.244
X241.017Y-103.176
X241.017Y-121.176
X241.017Y-157.176
X241.017Y-82.176
X241.017Y-139.176
X250.399Y-175.477
X252.017Y-103.176
X252.017Y-121.176
X252.017Y-157.176
X252.017Y-82.176
X252.017Y-139.176
X260.017Y-121.176
X260.017Y-157.176
X260.017Y-175.176
X260.017Y-103.176
X260.017Y-82.176
X260.017Y-139.176
X271.017Y-121.176
X271.017Y-157.176
X271.017Y-175.176
X271.017Y-103.176
X271.017Y-82.176
X271.017Y-139.176
X279.017Y-121.176
X279.017Y-157.176
X279.017Y-175.176
X279.017Y-82.176
X279.017Y-103.176
X279.017Y-139.176
X290.017Y-121.176
X290.017Y-157.176
X290.017Y-175.176
X290.017Y-82.176
X290.017Y-103.176
X290.017Y-139.176
X298.017Y-157.176
X298.017Y-82.176
X298.017Y-121.176
X298.017Y-103.176
X298.017Y-175.176
X298.017Y-139.176
X309.017Y-157.176
X309.017Y-82.176
X309.017Y-121.176
X309.017Y-103.176
X309.017Y-175.176
X309.017Y-139.176
X317.017Y-157.176
X317.017Y-139.176
X317.017Y-175.176
X317.017Y-121.176
X328.017Y-157.176
X328.017Y-139.176
X328.017Y-175.176
X328.017Y-121.176
T2
X63.517Y-175.176
X63.517Y-82.176
X85.017Y-71.676
X104.017Y-186.926
X155.517Y-169.426
X161.017Y-71.676
X204.517Y-169.426
X237.017Y-71.676
X294.017Y-186.926
X312.017Y-71.676
X331.517Y-110.926
X334.517Y-175.176
T3
X70.517Y-178.926
X70.517Y-85.926
X70.517Y-124.926
X70.517Y-106.926
X70.517Y-142.926
X70.517Y-160.926
X75.517Y-181.126
X75.517Y-88.126
X75.517Y-127.126
X75.517Y-109.126
X75.517Y-145.126
X75.517Y-163.126
X89.517Y-85.926
X89.517Y-142.926
X89.517Y-106.926
X89.517Y-124.926
X89.517Y-160.926
X89.517Y-178.926
X94.517Y-88.126
X94.517Y-145.126
X94.517Y-109.126
X94.517Y-127.126
X94.517Y-163.126
X94.517Y-181.126
X108.517Y-85.926
X108.517Y-106.926
X108.517Y-124.926
X108.517Y-160.926
X108.517Y-142.926
X109.872Y-179.253
X113.517Y-88.126
X113.517Y-109.126
X113.517Y-127.126
X113.517Y-163.126
X113.517Y-145.126
X114.706Y-181.796
X127.517Y-106.926
X127.517Y-124.926
X127.517Y-160.926
X127.517Y-85.926
X127.517Y-142.926
X129.157Y-180.929
X132.517Y-109.126
X132.517Y-127.126
X132.517Y-163.126
X132.517Y-88.126
X132.517Y-145.126
X133.802Y-183.803
X146.517Y-142.926
X146.517Y-106.926
X146.517Y-160.926
X146.517Y-85.926
X146.517Y-124.926
X148.279Y-183.946
X151.517Y-145.126
X151.517Y-109.126
X151.517Y-163.126
X151.517Y-88.126
X151.517Y-127.126
X152.712Y-187.137
X165.517Y-142.926
X165.517Y-124.926
X165.517Y-85.926
X165.517Y-160.926
X165.517Y-106.926
X170.517Y-145.126
X170.517Y-127.126
X170.517Y-88.126
X170.517Y-163.126
X170.517Y-109.126
X175.017Y-187.317
X180.017Y-189.517
X184.517Y-106.926
X184.517Y-142.926
X184.517Y-160.926
X184.517Y-124.926
X184.517Y-85.926
X189.517Y-109.126
X189.517Y-145.126
X189.517Y-163.126
X189.517Y-127.126
X189.517Y-88.126
X201.973Y-186.025
X203.517Y-142.926
X203.517Y-160.926
X203.517Y-106.926
X203.517Y-124.926
X203.517Y-85.926
X207.321Y-187.137
X208.517Y-145.126
X208.517Y-163.126
X208.517Y-109.126
X208.517Y-127.126
X208.517Y-88.126
X220.973Y-182.32
X222.517Y-124.926
X222.517Y-160.926
X222.517Y-106.926
X222.517Y-85.926
X222.517Y-142.926
X226.231Y-183.803
X227.517Y-127.126
X227.517Y-163.126
X227.517Y-109.126
X227.517Y-88.126
X227.517Y-145.126
X240.186Y-179.95
X241.517Y-106.926
X241.517Y-124.926
X241.517Y-160.926
X241.517Y-85.926
X241.517Y-142.926
X245.327Y-181.796
X246.517Y-109.126
X246.517Y-127.126
X246.517Y-163.126
X246.517Y-88.126
X246.517Y-145.126
X260.517Y-124.926
X260.517Y-160.926
X260.517Y-178.926
X260.517Y-106.926
X260.517Y-85.926
X260.517Y-142.926
X265.517Y-127.126
X265.517Y-163.126
X265.517Y-181.126
X265.517Y-109.126
X265.517Y-88.126
X265.517Y-145.126
X279.517Y-124.926
X279.517Y-160.926
X279.517Y-178.926
X279.517Y-85.926
X279.517Y-106.926
X279.517Y-142.926
X284.517Y-127.126
X284.517Y-163.126
X284.517Y-181.126
X284.517Y-88.126
X284.517Y-109.126
X284.517Y-145.126
X298.517Y-160.926
X298.517Y-85.926
X298.517Y-124.926
X298.517Y-106.926
X298.517Y-178.926
X298.517Y-142.926
X303.517Y-163.126
X303.517Y-88.126
X303.517Y-127.126
X303.517Y-109.126
X303.517Y-181.126
X303.517Y-145.126
X317.517Y-160.926
X317.517Y-142.926
X317.517Y-178.926
X317.517Y-124.926
X322.517Y-163.126
X322.517Y-145.126
X322.517Y-181.126
X322.517Y-127.126
T4
X75.517Y-175.176
X75.517Y-82.176
X75.517Y-121.176
X75.517Y-103.176
X75.517Y-139.176
X75.517Y-157.176
X94.517Y-82.176
X94.517Y-139.176
X94.517Y-103.176
X94.517Y-121.176
X94.517Y-157.176
X94.517Y-175.176
X113.517Y-82.176
X113.517Y-103.176
X113.517Y-121.176
X113.517Y-157.176
X113.517Y-139.176
X115.121Y-175.861
X132.517Y-103.176
X132.517Y-121.176
X132.517Y-157.176
X132.517Y-82.176
X132.517Y-139.176
X134.631Y-177.911
X151.517Y-139.176
X151.517Y-103.176
X151.517Y-157.176
X151.517Y-82.176
X151.517Y-121.176
X153.949Y-181.317
X170.517Y-139.176
X170.517Y-121.176
X170.517Y-82.176
X170.517Y-157.176
X170.517Y-103.176
X180.017Y-183.567
X189.517Y-103.176
X189.517Y-139.176
X189.517Y-157.176
X189.517Y-121.176
X189.517Y-82.176
X206.084Y-181.317
X208.517Y-139.176
X208.517Y-157.176
X208.517Y-103.176
X208.517Y-121.176
X208.517Y-82.176
X225.403Y-177.911
X227.517Y-121.176
X227.517Y-157.176
X227.517Y-103.176
X227.517Y-82.176
X227.517Y-139.176
X244.912Y-175.861
X246.517Y-103.176
X246.517Y-121.176
X246.517Y-157.176
X246.517Y-82.176
X246.517Y-139.176
X265.517Y-121.176
X265.517Y-157.176
X265.517Y-175.176
X265.517Y-103.176
X265.517Y-82.176
X265.517Y-139.176
X284.517Y-121.176
X284.517Y-157.176
X284.517Y-175.176
X284.517Y-82.176
X284.517Y-103.176
X284.517Y-139.176
X303.517Y-157.176
X303.517Y-82.176
X303.517Y-121.176
X303.517Y-103.176
X303.517Y-175.176
X303.517Y-139.176
X322.517Y-157.176
X322.517Y-139.176
X322.517Y-175.176
X322.517Y-121.176
M30

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,322 @@
M48
; DRILL file {KiCad 8.0.7} date 2025-01-24T18:11:34+0100
; FORMAT={-:-/ absolute / metric / decimal}
; #@! TF.CreationDate,2025-01-24T18:11:34+01:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.7
; #@! TF.FileFunction,Plated,1,4,PTH
FMAT,2
METRIC
; #@! TA.AperFunction,Plated,PTH,ViaDrill
T1C0.300
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T2C1.000
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T3C1.092
%
G90
G05
T1
X67.028Y-104.572
X67.028Y-96.176
X67.028Y-88.072
X67.028Y-140.572
X67.028Y-176.572
X67.028Y-122.572
X67.028Y-158.572
X70.891Y-75.863
X70.891Y-133.726
X70.891Y-150.863
X70.891Y-97.726
X70.891Y-114.863
X70.891Y-169.726
X79.891Y-99.988
X79.891Y-171.988
X79.891Y-135.988
X80.391Y-78.226
X80.391Y-117.226
X80.391Y-153.226
X86.028Y-88.072
X86.028Y-104.572
X86.028Y-140.572
X86.028Y-96.176
X86.028Y-122.572
X86.028Y-158.572
X86.028Y-176.572
X89.891Y-97.726
X89.891Y-150.863
X89.891Y-75.863
X89.891Y-114.863
X89.891Y-133.726
X89.891Y-169.726
X98.891Y-135.988
X98.891Y-99.988
X98.891Y-171.988
X99.391Y-117.226
X99.391Y-153.226
X99.391Y-78.226
X105.028Y-140.572
X105.028Y-88.072
X105.028Y-96.176
X105.028Y-104.572
X105.028Y-122.572
X105.028Y-158.572
X106.718Y-176.775
X108.891Y-97.726
X108.891Y-150.863
X108.891Y-75.863
X108.891Y-114.863
X108.891Y-133.726
X111.056Y-170.113
X117.891Y-99.988
X117.891Y-135.988
X118.391Y-117.226
X118.391Y-153.226
X118.391Y-78.226
X119.877Y-172.998
X124.028Y-122.572
X124.028Y-96.176
X124.028Y-140.572
X124.028Y-104.572
X124.028Y-88.072
X124.028Y-158.572
X125.946Y-178.346
X127.891Y-97.726
X127.891Y-114.863
X127.891Y-75.863
X127.891Y-133.726
X127.891Y-150.863
X130.754Y-171.863
X136.891Y-135.988
X136.891Y-99.988
X137.391Y-117.226
X137.391Y-153.226
X137.391Y-78.226
X139.351Y-175.356
X143.028Y-122.572
X143.028Y-104.572
X143.028Y-140.572
X143.028Y-96.176
X143.028Y-158.572
X143.028Y-88.072
X145.3Y-180.923
X146.891Y-97.726
X146.891Y-133.726
X146.891Y-75.863
X146.891Y-114.863
X146.891Y-150.863
X150.497Y-175.012
X155.891Y-99.988
X155.891Y-135.988
X156.391Y-117.226
X156.391Y-153.226
X156.391Y-78.226
X158.83Y-179.096
X162.028Y-140.572
X162.028Y-122.572
X162.028Y-158.572
X162.028Y-88.072
X162.028Y-96.176
X162.028Y-104.572
X165.891Y-114.863
X165.891Y-75.863
X165.891Y-97.726
X165.891Y-133.726
X165.891Y-150.863
X171.528Y-185.072
X174.891Y-99.988
X174.891Y-135.988
X175.391Y-117.226
X175.391Y-153.226
X175.391Y-78.226
X175.391Y-178.117
X181.028Y-122.572
X181.028Y-158.572
X181.028Y-114.0
X181.028Y-88.072
X181.028Y-104.572
X181.028Y-140.572
X184.391Y-180.38
X184.891Y-133.726
X184.891Y-97.726
X184.891Y-150.863
X184.891Y-75.863
X184.891Y-114.863
X193.891Y-99.988
X193.891Y-135.988
X194.391Y-117.226
X194.391Y-153.226
X194.391Y-78.226
X198.059Y-184.548
X200.028Y-158.572
X200.028Y-122.572
X200.028Y-88.072
X200.028Y-114.0
X200.028Y-140.572
X200.028Y-104.572
X200.636Y-176.904
X203.891Y-114.863
X203.891Y-133.726
X203.891Y-150.863
X203.891Y-75.863
X203.891Y-97.726
X209.909Y-177.246
X212.891Y-99.988
X212.891Y-135.988
X213.391Y-153.226
X213.391Y-117.226
X213.391Y-78.226
X217.149Y-180.639
X219.028Y-88.072
X219.028Y-158.572
X219.028Y-132.0
X219.028Y-140.572
X219.028Y-122.572
X219.028Y-104.572
X220.239Y-173.133
X222.891Y-114.863
X222.891Y-75.863
X222.891Y-133.726
X222.891Y-150.863
X222.891Y-97.726
X229.466Y-174.121
X231.891Y-135.988
X231.891Y-99.988
X232.391Y-117.226
X232.391Y-153.226
X232.391Y-78.226
X236.546Y-177.918
X238.028Y-122.572
X238.028Y-158.572
X238.028Y-132.0
X238.028Y-140.572
X238.028Y-88.072
X238.028Y-104.572
X240.152Y-170.73
X241.891Y-75.863
X241.891Y-114.863
X241.891Y-150.863
X241.891Y-97.726
X241.891Y-133.726
X249.288Y-172.359
X250.891Y-135.988
X250.891Y-99.988
X251.391Y-78.226
X251.391Y-117.226
X251.391Y-153.226
X257.028Y-88.072
X257.028Y-150.0
X257.028Y-158.572
X257.028Y-122.572
X257.028Y-140.572
X257.028Y-104.572
X257.028Y-176.572
X260.891Y-114.863
X260.891Y-150.863
X260.891Y-75.863
X260.891Y-133.726
X260.891Y-97.726
X260.891Y-169.726
X269.891Y-171.988
X269.891Y-99.988
X269.891Y-135.988
X270.391Y-78.226
X270.391Y-117.226
X270.391Y-153.226
X276.028Y-88.072
X276.028Y-122.572
X276.028Y-140.572
X276.028Y-150.0
X276.028Y-158.572
X276.028Y-176.572
X276.028Y-104.572
X279.891Y-75.863
X279.891Y-150.863
X279.891Y-97.726
X279.891Y-114.863
X279.891Y-133.726
X279.891Y-169.726
X288.891Y-171.988
X288.891Y-99.988
X288.891Y-135.988
X289.391Y-78.226
X289.391Y-117.226
X289.391Y-153.226
X295.028Y-104.572
X295.028Y-158.572
X295.028Y-88.072
X295.028Y-140.572
X295.028Y-168.0
X295.028Y-176.572
X295.028Y-122.572
X298.891Y-150.863
X298.891Y-97.726
X298.891Y-114.863
X298.891Y-133.726
X298.891Y-169.726
X306.891Y-73.668
X307.891Y-135.988
X307.891Y-171.988
X307.891Y-99.988
X308.391Y-78.226
X308.391Y-117.226
X308.391Y-153.226
X314.028Y-122.572
X314.028Y-158.572
X314.028Y-176.572
X314.028Y-140.572
X317.891Y-133.726
X317.891Y-150.863
X317.891Y-114.863
X317.891Y-169.726
X326.891Y-135.988
X326.891Y-171.988
X327.391Y-117.226
X327.391Y-153.226
X330.9Y-135.25
X330.9Y-150.25
X331.5Y-130.5
X331.5Y-131.5
X331.5Y-148.5
X331.5Y-149.5
X331.5Y-166.5
T2
X322.977Y-75.296
X322.977Y-89.796
X325.477Y-89.796
X327.977Y-75.296
X327.977Y-89.796
T3
X317.897Y-72.166
X317.897Y-74.706
X317.897Y-77.246
X317.897Y-79.786
X317.897Y-82.326
X317.897Y-84.866
X317.897Y-87.406
X317.897Y-89.946
X317.897Y-92.486
X317.897Y-95.026
X317.897Y-97.566
X317.897Y-100.106
X317.897Y-102.646
X317.897Y-105.186
X320.437Y-105.186
X322.977Y-105.186
X325.517Y-105.186
X328.057Y-105.186
X330.597Y-105.186
X333.137Y-72.166
X333.137Y-74.706
X333.137Y-77.246
X333.137Y-79.786
X333.137Y-82.326
X333.137Y-84.866
X333.137Y-87.406
X333.137Y-89.946
X333.137Y-92.486
X333.137Y-95.026
X333.137Y-97.566
X333.137Y-100.106
X333.137Y-102.646
X333.137Y-105.186
M30

View File

@ -0,0 +1,169 @@
{
"Header": {
"GenerationSoftware": {
"Vendor": "KiCad",
"Application": "Pcbnew",
"Version": "8.0.7"
},
"CreationDate": "2025-01-24T18:11:27+01:00"
},
"GeneralSpecs": {
"ProjectId": {
"Name": "eepyboard_rev3",
"GUID": "65657079-626f-4617-9264-5f726576332e",
"Revision": "1.2"
},
"Size": {
"X": 276.65,
"Y": 126.4788
},
"LayerNumber": 4,
"BoardThickness": 1.6,
"Finish": "None"
},
"DesignRules": [
{
"Layers": "Outer",
"PadToPad": 0.2,
"PadToTrack": 0.2,
"TrackToTrack": 0.2,
"MinLineWidth": 0.2,
"TrackToRegion": 0.5,
"RegionToRegion": 0.5
},
{
"Layers": "Inner",
"PadToPad": 0.2,
"PadToTrack": 0.2,
"TrackToTrack": 0.2,
"TrackToRegion": 0.5,
"RegionToRegion": 0.5
}
],
"FilesAttributes": [
{
"Path": "eepyboard_rev3-F_Cu.gbr",
"FileFunction": "Copper,L1,Top",
"FilePolarity": "Positive"
},
{
"Path": "eepyboard_rev3-In1_Cu.gbr",
"FileFunction": "Copper,L2,Inr",
"FilePolarity": "Positive"
},
{
"Path": "eepyboard_rev3-In2_Cu.gbr",
"FileFunction": "Copper,L3,Inr",
"FilePolarity": "Positive"
},
{
"Path": "eepyboard_rev3-B_Cu.gbr",
"FileFunction": "Copper,L4,Bot",
"FilePolarity": "Positive"
},
{
"Path": "eepyboard_rev3-F_Paste.gbr",
"FileFunction": "SolderPaste,Top",
"FilePolarity": "Positive"
},
{
"Path": "eepyboard_rev3-B_Paste.gbr",
"FileFunction": "SolderPaste,Bot",
"FilePolarity": "Positive"
},
{
"Path": "eepyboard_rev3-F_Silkscreen.gbr",
"FileFunction": "Legend,Top",
"FilePolarity": "Positive"
},
{
"Path": "eepyboard_rev3-B_Silkscreen.gbr",
"FileFunction": "Legend,Bot",
"FilePolarity": "Positive"
},
{
"Path": "eepyboard_rev3-F_Mask.gbr",
"FileFunction": "SolderMask,Top",
"FilePolarity": "Negative"
},
{
"Path": "eepyboard_rev3-B_Mask.gbr",
"FileFunction": "SolderMask,Bot",
"FilePolarity": "Negative"
},
{
"Path": "eepyboard_rev3-Edge_Cuts.gbr",
"FileFunction": "Profile",
"FilePolarity": "Positive"
}
],
"MaterialStackup": [
{
"Type": "Legend",
"Name": "Top Silk Screen"
},
{
"Type": "SolderPaste",
"Name": "Top Solder Paste"
},
{
"Type": "SolderMask",
"Thickness": 0.01,
"Name": "Top Solder Mask"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "F.Cu"
},
{
"Type": "Dielectric",
"Thickness": 0.1,
"Material": "FR4",
"Name": "F.Cu/In1.Cu",
"Notes": "Type: dielectric layer 1 (from F.Cu to In1.Cu)"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "In1.Cu"
},
{
"Type": "Dielectric",
"Thickness": 1.24,
"Material": "FR4",
"Name": "In1.Cu/In2.Cu",
"Notes": "Type: dielectric layer 2 (from In1.Cu to In2.Cu)"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "In2.Cu"
},
{
"Type": "Dielectric",
"Thickness": 0.1,
"Material": "FR4",
"Name": "In2.Cu/B.Cu",
"Notes": "Type: dielectric layer 3 (from In2.Cu to B.Cu)"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "B.Cu"
},
{
"Type": "SolderMask",
"Thickness": 0.01,
"Name": "Bottom Solder Mask"
},
{
"Type": "SolderPaste",
"Name": "Bottom Solder Paste"
},
{
"Type": "Legend",
"Name": "Bottom Silk Screen"
}
]
}

Binary file not shown.

379
layouts/eepyboard-v1-2.json Normal file
View File

@ -0,0 +1,379 @@
[
[
{
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000\n#cc00ff",
"fa": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1
]
},
"Esc\n\n\n\n\n\n\n\n\n\nRecord Stop",
{
"fa": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
1
]
},
"F1\n\n\n\n\n\n\n\n\nMacro1\nRecord",
"F2\n\n\n\n\n\n\n\n\nMacro2\nRecord",
{
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000"
},
"F3",
"F4",
"F5",
"F6",
"F7",
"F8",
"F9",
"F10\n\n\n\n\n\n\n\n\nPrtScr",
"F11\n\n\n\n\n\n\n\n\nLock",
"F12\n\n\n\n\n\n\n\n\nSleep",
{
"x": 0.25,
"c": "#ffffff",
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000\n#cc00ff",
"w": 1.125,
"h": 1.125
},
"Vol -/+\n\n\n\n\n\n\n\n\nScroll ↑ ↓\nRGB bright"
],
[
{
"y": 0.25,
"c": "#cccccc",
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000"
},
"~\n`",
"!\n1",
"@\n2",
"#\n3",
"$\n4",
"%\n5",
"^\n6",
"&\n7",
"*\n8",
"(\n9",
")\n0",
{
"t": "#000000\n\n\n#cc00ff\n\n\n\n\n\n#ff0000\n#cc00ff",
"fa": [
0,
0,
0,
1,
0,
0,
0,
0,
0,
2,
1
]
},
"_\n-\n\nRGB bright-",
{
"t": "#000000\n\n\n#cc00ff\n\n\n\n\n\n#ff0000"
},
"+\n=\n\nRGB bright+"
],
[
{
"t": "#000000"
},
"Tab",
{
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000"
},
"Q\n\n\n\n\n\n\n\n\nHome",
{
"f": 3
},
"W\n\n\n\n\n\n\n\n\n↑",
"E\n\n\n\n\n\n\n\n\nEnd",
{
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000\n#cc00ff"
},
"R\n\n\n\n\n\n\n\n\nPgUp\nReboot",
{
"t": "#000000"
},
"T",
"Y",
{
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000"
},
"U",
"I",
{
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000\n#cc00ff"
},
"O\n\n\n\n\n\n\n\n\n\n1-shot toggle",
{
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000"
},
"P",
{
"t": "#000000\n\n\n#cc00ff"
},
"{\n[\n\nRGB speed-",
"}\n]\n\nRGB speed+",
{
"t": "#000000\n\n\n\n\n\n\n\n\n\n#cc00ff"
},
"Enter\n\n\n\n\n\n\n\n\n\nBoot-loader"
],
[
{
"t": "#000000"
},
"Enter",
{
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000",
"f": 3
},
"A\n\n\n\n\n\n\n\n\n←",
{
"f": 3
},
"S\n\n\n\n\n\n\n\n\n↓",
{
"f": 3
},
"D\n\n\n\n\n\n\n\n\n→",
"F\n\n\n\n\n\n\n\n\nPgDn",
{
"t": "#000000"
},
"G",
{
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000",
"fa": [
0,
0,
0,
1,
0,
0,
0,
0,
0,
0
]
},
"H\n\n\n\n\n\n\n\n\n♡",
"J",
"K",
"L",
":\n;",
{
"t": "#000000\n\n\n#cc00ff"
},
"\"\n'\n\nRGB mode",
"|\n\\\n\nRGB toggle",
{
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000",
"fa": [
0,
0,
0,
1,
0,
0,
0,
0,
0,
2
]
},
"Del\n\n\n\n\n\n\n\n\nIns"
],
[
{
"t": "#000000"
},
"Shift",
{
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000"
},
"Home\n\n\n\n\n\n\n\n\nPgUp",
"Z",
"X\n\n\n\n\n\n\n\n\nEsc",
{
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000\n#cc00ff",
"fa": [
0,
0,
0,
1,
0,
0,
0,
0,
0,
2,
1
]
},
"C\n\n\n\n\n\n\n\n\n\nClear EEPROM",
{
"t": "#000000"
},
"V",
{
"t": "#000000\n\n\n\n\n\n\n\n\n\n#cc00ff"
},
"B\n\n\n\n\n\n\n\n\n\nBoot-loader",
{
"t": "#000000"
},
"N",
"M",
"<\n,",
{
"t": "#000000\n\n\n\n\n\n\n\n\n\n#ff0000"
},
">\n.",
"?\n/",
{
"t": "#000000\n#ff0000",
"a": 5,
"f2": 2
},
"\nPgUp\n\n\n\n\n↑",
{
"t": "#000000\n\n\n\n\n\n\n\n\n\n#ff0000",
"a": 4
},
"Shift"
],
[
{
"t": "#000000"
},
"Ctrl",
{
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000"
},
"End\n\n\n\n\n\n\n\n\nPgDn",
{
"x": 9,
"t": "#000000\n#ff0000",
"a": 5,
"f2": 2
},
"\nHome\n\n\n\n\n←",
{
"f2": 2
},
"\nPgDn\n\n\n\n\n↓",
{
"f2": 2
},
"\nEnd\n\n\n\n\n→"
],
[
{
"y": -0.6500000000000004,
"x": 5.25,
"t": "#000000",
"w": 1.5
},
"Space"
],
[
{
"rx": 11.5,
"ry": 26,
"y": -20.75,
"x": -1.5,
"t": "#cc00ff\n\n\n\n\n\n\n\n\n\n#ff0000",
"a": 4
},
"Fn"
],
[
{
"r": 3,
"rx": 1.5,
"y": -20.75,
"x": -0.5,
"t": "#000000"
},
"Super"
],
[
{
"r": 6,
"y": -1,
"x": -0.5
},
"Alt"
],
[
{
"r": 9,
"y": -1,
"x": -0.5,
"t": "#ff0000"
},
"Code"
],
[
{
"r": 12,
"y": -1,
"x": -0.5,
"t": "#000000",
"a": 7,
"d": true
},
""
],
[
{
"r": -9,
"rx": 10.5,
"y": -20.75,
"x": -0.5,
"t": "#000000\n\n\n\n\n\n\n\n\n#ff0000",
"a": 4
},
"Bksp\n\n\n\n\n\n\n\n\nDel"
],
[
{
"r": -6,
"y": -1,
"x": -0.5,
"t": "#000000"
},
"AltGr"
],
[
{
"r": -3,
"y": -1,
"x": -0.5
},
"Ctrl"
]
]

View File

@ -19,27 +19,31 @@ enum layer_names {
enum custom_keycodes { enum custom_keycodes {
// Macro to select the current word (Ctrl-Left, Shift-Ctrl-Right) // Macro to select the current word (Ctrl-Left, Shift-Ctrl-Right)
MACRO_SELECT_WORD = SAFE_RANGE, MACRO_SELECT_WORD = SAFE_RANGE,
// Special characters that require more complicated input
MACRO_HEART,
}; };
// For keycodes, see QMK docs: https://docs.qmk.fm/keycodes
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Base layer // Base layer
[L_BASE] = LAYOUT_ortho_6x13( [L_BASE] = LAYOUT_ortho_6x13(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, KC_KB_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, KC_KB_MUTE,
KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LEFT_BRACKET, KC_RIGHT_BRACKET,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_BACKSLASH, KC_APP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_BACKSLASH,
KC_LEFT_SHIFT, KC_HOME, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RIGHT_SHIFT, KC_LEFT_SHIFT, KC_ESC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RIGHT_SHIFT,
KC_LEFT_CTRL, KC_END, KC_LGUI, KC_LEFT_ALT, OSL(L_CODE), KC_SPACE, _______, KC_BACKSPACE, KC_ENTER, OSM(MOD_RALT), KC_DELETE, MO(L_FN), KC_RIGHT_CTRL KC_LEFT_CTRL, KC_END, KC_LGUI, KC_LEFT_ALT, OSL(L_CODE), KC_SPACE, _______, KC_BACKSPACE, KC_RIGHT_ALT, KC_ENTER, KC_DELETE, MO(L_FN), KC_RIGHT_CTRL
), ),
// "Code" key layer // "Code" key layer
[L_CODE] = LAYOUT_ortho_6x13( [L_CODE] = LAYOUT_ortho_6x13(
_______, DM_PLY1, DM_PLY2, _______, _______, _______, _______, _______, KC_PRINT_SCREEN, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, _______, _______, _______, _______, _______, KC_PRINT_SCREEN, _______, _______, _______, _______,
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
_______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, KC_UNDERSCORE, KC_EQUAL, KC_LEFT_BRACKET, KC_RIGHT_BRACKET, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, KC_UNDERSCORE, KC_EQUAL, KC_LEFT_BRACKET, KC_RIGHT_BRACKET, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, _______, _______, KC_MINUS, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, _______, _______, KC_MINUS, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, _______, _______,
_______, LCTL(KC_LEFT), MACRO_SELECT_WORD, LCTL(KC_RIGHT), KC_ENTER, _______, _______, _______, _______, _______, _______, _______, _______, _______, LCTL(KC_LEFT), MACRO_SELECT_WORD, LCTL(KC_RIGHT), MACRO_HEART, KC_ENTER, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
// "Fn" key layer // "Fn" key layer
@ -72,6 +76,9 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
#endif #endif
bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// Store the current modifier state in the variable for later reference
uint8_t mod_state = get_mods();
switch (keycode) { switch (keycode) {
case MACRO_SELECT_WORD: case MACRO_SELECT_WORD:
// Run macro when keycode is pressed // Run macro when keycode is pressed
@ -80,6 +87,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) SS_LSFT(SS_LCTL(SS_TAP(X_RIGHT)))); SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) SS_LSFT(SS_LCTL(SS_TAP(X_RIGHT))));
} }
break; break;
case MACRO_HEART:
if (record->event.pressed) {
// Type a outlined heart via X11 Compose key (with custom mappings)
del_mods(MOD_MASK_SHIFT);
SEND_STRING(SS_TAP(X_APP) "c3");
set_mods(mod_state);
}
} }
return true; return true;
} }

View File

@ -0,0 +1,3 @@
# eepyBoard v1.1 / rev2
This is the firmware for hardware revision 2 of the eepyBoard (v1.1).

View File

@ -0,0 +1,7 @@
// Copyright 2024 binaryDiv (@binaryDiv)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
// Lock one-shot keys when tapping them twice
#define ONESHOT_TAP_TOGGLE 2

View File

@ -0,0 +1,258 @@
{
"keyboard_name": "eepyBoard v1.1",
"maintainer": "binaryDiv",
"manufacturer": "binaryDiv",
"url": "https://git.0xbd.space/binaryDiv/eepyBoard",
"processor": "RP2040",
"bootloader": "rp2040",
"usb": {
"device_version": "1.1.0",
"vid": "0x1337",
"pid": "0xBD32"
},
"features": {
"bootmagic": true,
"command": false,
"console": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": [
"GP27", "GP26", "GP25", "GP23", "GP22", "GP21", "GP20", "GP17",
"GP12", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6"
],
"rows": ["GP28", "GP15", "GP18", "GP19", "GP14", "GP13"]
},
"encoder": {
"rotary": [
{
"pin_a": "GP3",
"pin_b": "GP2",
"resolution": 4
},
{
"pin_a": "GP0",
"pin_b": "GP1",
"resolution": 4
}
]
},
"layouts": {
"LAYOUT_separate_cursor_keys": {
"layout": [
{"matrix": [0, 0], "x": 0.25, "y": 0, "label": "Esc"},
{"matrix": [0, 1], "x": 1.75, "y": 0, "label": "F1"},
{"matrix": [0, 2], "x": 2.75, "y": 0, "label": "F2"},
{"matrix": [0, 3], "x": 3.75, "y": 0, "label": "F3"},
{"matrix": [0, 4], "x": 4.75, "y": 0, "label": "F4"},
{"matrix": [0, 5], "x": 6.25, "y": 0, "label": "F5"},
{"matrix": [0, 6], "x": 7.25, "y": 0, "label": "F6"},
{"matrix": [0, 8], "x": 8.25, "y": 0, "label": "F7"},
{"matrix": [0, 9], "x": 9.25, "y": 0, "label": "F8"},
{"matrix": [0, 10], "x": 10.75, "y": 0, "label": "F9"},
{"matrix": [0, 11], "x": 11.75, "y": 0, "label": "F10"},
{"matrix": [0, 12], "x": 12.75, "y": 0, "label": "F11"},
{"matrix": [0, 13], "x": 13.75, "y": 0, "label": "F12"},
{"matrix": [0, 14], "x": 15.25, "y": 0, "label": "VolCtrl", "encoder": 1},
{"matrix": [1, 0], "x": 0.0, "y": 1.62, "label": "L1"},
{"matrix": [1, 1], "x": 1.0, "y": 1.50, "label": "~"},
{"matrix": [1, 2], "x": 2.0, "y": 1.37, "label": "1"},
{"matrix": [1, 3], "x": 3.0, "y": 1.25, "label": "2"},
{"matrix": [1, 4], "x": 4.0, "y": 1.25, "label": "3"},
{"matrix": [1, 5], "x": 5.0, "y": 1.50, "label": "4"},
{"matrix": [1, 6], "x": 6.0, "y": 1.75, "label": "5"},
{"matrix": [1, 8], "x": 9.5, "y": 1.75, "label": "6"},
{"matrix": [1, 9], "x": 10.5, "y": 1.50, "label": "7"},
{"matrix": [1, 10], "x": 11.5, "y": 1.25, "label": "8"},
{"matrix": [1, 11], "x": 12.5, "y": 1.25, "label": "9"},
{"matrix": [1, 12], "x": 13.5, "y": 1.37, "label": "0"},
{"matrix": [1, 13], "x": 14.5, "y": 1.50, "label": "-"},
{"matrix": [1, 14], "x": 15.5, "y": 1.62, "label": "="},
{"matrix": [2, 0], "x": 0.0, "y": 2.62, "label": "L2"},
{"matrix": [2, 1], "x": 1.0, "y": 2.50, "label": "Tab"},
{"matrix": [2, 2], "x": 2.0, "y": 2.37, "label": "Q"},
{"matrix": [2, 3], "x": 3.0, "y": 2.25, "label": "W"},
{"matrix": [2, 4], "x": 4.0, "y": 2.25, "label": "E"},
{"matrix": [2, 5], "x": 5.0, "y": 2.50, "label": "R"},
{"matrix": [2, 6], "x": 6.0, "y": 2.75, "label": "T"},
{"matrix": [2, 8], "x": 9.5, "y": 2.75, "label": "Y"},
{"matrix": [2, 9], "x": 10.5, "y": 2.50, "label": "U"},
{"matrix": [2, 10], "x": 11.5, "y": 2.25, "label": "I"},
{"matrix": [2, 11], "x": 12.5, "y": 2.25, "label": "O"},
{"matrix": [2, 12], "x": 13.5, "y": 2.37, "label": "P"},
{"matrix": [2, 13], "x": 14.5, "y": 2.50, "label": "["},
{"matrix": [2, 14], "x": 15.5, "y": 2.62, "label": "]"},
{"matrix": [3, 0], "x": 0.0, "y": 3.62, "label": "L3"},
{"matrix": [3, 1], "x": 1.0, "y": 3.50, "label": "Caps"},
{"matrix": [3, 2], "x": 2.0, "y": 3.37, "label": "A"},
{"matrix": [3, 3], "x": 3.0, "y": 3.25, "label": "S"},
{"matrix": [3, 4], "x": 4.0, "y": 3.25, "label": "D"},
{"matrix": [3, 5], "x": 5.0, "y": 3.50, "label": "F"},
{"matrix": [3, 6], "x": 6.0, "y": 3.75, "label": "G"},
{"matrix": [3, 8], "x": 9.5, "y": 3.75, "label": "H"},
{"matrix": [3, 9], "x": 10.5, "y": 3.50, "label": "J"},
{"matrix": [3, 10], "x": 11.5, "y": 3.25, "label": "K"},
{"matrix": [3, 11], "x": 12.5, "y": 3.25, "label": "L"},
{"matrix": [3, 12], "x": 13.5, "y": 3.37, "label": ";"},
{"matrix": [3, 13], "x": 14.5, "y": 3.50, "label": "'"},
{"matrix": [3, 14], "x": 15.5, "y": 3.62, "label": "\\"},
{"matrix": [4, 0], "x": 0.0, "y": 4.62, "label": "L4"},
{"matrix": [4, 1], "x": 1.0, "y": 4.50, "label": "Shift"},
{"matrix": [4, 2], "x": 2.0, "y": 4.37, "label": "\\"},
{"matrix": [4, 3], "x": 3.0, "y": 4.25, "label": "Z"},
{"matrix": [4, 4], "x": 4.0, "y": 4.25, "label": "X"},
{"matrix": [4, 5], "x": 5.0, "y": 4.50, "label": "C"},
{"matrix": [4, 6], "x": 6.0, "y": 4.75, "label": "V"},
{"matrix": [4, 8], "x": 9.5, "y": 4.75, "label": "B"},
{"matrix": [4, 9], "x": 10.5, "y": 4.50, "label": "N"},
{"matrix": [4, 10], "x": 11.5, "y": 4.25, "label": "M"},
{"matrix": [4, 11], "x": 12.5, "y": 4.25, "label": ","},
{"matrix": [4, 12], "x": 13.5, "y": 4.37, "label": "."},
{"matrix": [4, 13], "x": 14.5, "y": 4.50, "label": "/"},
{"matrix": [4, 14], "x": 15.5, "y": 4.62, "label": "Shift"},
{"matrix": [5, 0], "x": 0.0, "y": 5.62, "label": "L5"},
{"matrix": [5, 1], "x": 1.0, "y": 5.50, "label": "L6"},
{"matrix": [5, 2], "x": 2.0, "y": 5.37, "label": "Ctrl"},
{"matrix": [5, 3], "x": 3.0, "y": 5.50, "label": "Super"},
{"matrix": [5, 4], "x": 4.0, "y": 5.62, "label": "Alt"},
{"matrix": [5, 5], "x": 5.0, "y": 5.75, "label": "Code"},
{"matrix": [5, 6], "x": 6.0, "y": 5.87, "label": "Space"},
{"matrix": [5, 8], "x": 9.5, "y": 5.87, "label": "Backspace"},
{"matrix": [5, 9], "x": 10.5, "y": 5.75, "label": "AltGr"},
{"matrix": [5, 10], "x": 11.5, "y": 5.62, "label": "Ctrl"},
{"matrix": [5, 11], "x": 12.5, "y": 5.50, "label": "Del"},
{"matrix": [5, 12], "x": 13.5, "y": 5.37, "label": "Fn"},
{"matrix": [5, 13], "x": 14.5, "y": 5.50, "label": "R1"},
{"matrix": [5, 14], "x": 15.5, "y": 5.62, "label": "R2"},
{"matrix": [2, 7], "x": 7.75, "y": 3.25, "label": "Up"},
{"matrix": [3, 7], "x": 7.25, "y": 4.25, "label": "Left"},
{"matrix": [1, 7], "x": 8.25, "y": 4.25, "label": "Right"},
{"matrix": [4, 7], "x": 7.75, "y": 5.25, "label": "Down"},
{"matrix": [5, 7], "x": 7.50, "y": 6.25, "label": "Enter", "w": 1.5},
{"matrix": [0, 7], "x": 7.75, "y": 2.0, "label": "Scroll", "encoder": 0}
]
}
},
"rgb_matrix": {
"driver": "ws2812",
"default": {
"animation": "cycle_pinwheel",
"speed": 32
},
"animations": {
"cycle_pinwheel": true,
"typing_heatmap": true
},
"max_brightness": 127,
"sleep": true,
"center_point": [77, 31],
"layout": [
{"x": 2, "y": 0, "matrix": [0, 0], "flags": 4},
{"x": 17, "y": 0, "matrix": [0, 1], "flags": 4},
{"x": 27, "y": 0, "matrix": [0, 2], "flags": 4},
{"x": 37, "y": 0, "matrix": [0, 3], "flags": 4},
{"x": 47, "y": 0, "matrix": [0, 4], "flags": 4},
{"x": 62, "y": 0, "matrix": [0, 5], "flags": 4},
{"x": 72, "y": 0, "matrix": [0, 6], "flags": 4},
{"x": 82, "y": 0, "matrix": [0, 8], "flags": 4},
{"x": 92, "y": 0, "matrix": [0, 9], "flags": 4},
{"x": 107, "y": 0, "matrix": [0, 10], "flags": 4},
{"x": 117, "y": 0, "matrix": [0, 11], "flags": 4},
{"x": 127, "y": 0, "matrix": [0, 12], "flags": 4},
{"x": 137, "y": 0, "matrix": [0, 13], "flags": 4},
{"x": 155, "y": 16, "matrix": [1, 14], "flags": 4},
{"x": 145, "y": 15, "matrix": [1, 13], "flags": 4},
{"x": 135, "y": 14, "matrix": [1, 12], "flags": 4},
{"x": 125, "y": 12, "matrix": [1, 11], "flags": 4},
{"x": 115, "y": 12, "matrix": [1, 10], "flags": 4},
{"x": 105, "y": 15, "matrix": [1, 9], "flags": 4},
{"x": 95, "y": 17, "matrix": [1, 8], "flags": 4},
{"x": 60, "y": 17, "matrix": [1, 6], "flags": 4},
{"x": 50, "y": 15, "matrix": [1, 5], "flags": 4},
{"x": 40, "y": 12, "matrix": [1, 4], "flags": 4},
{"x": 30, "y": 12, "matrix": [1, 3], "flags": 4},
{"x": 20, "y": 14, "matrix": [1, 2], "flags": 4},
{"x": 10, "y": 15, "matrix": [1, 1], "flags": 4},
{"x": 0, "y": 16, "matrix": [1, 0], "flags": 4},
{"x": 0, "y": 26, "matrix": [2, 0], "flags": 4},
{"x": 10, "y": 25, "matrix": [2, 1], "flags": 4},
{"x": 20, "y": 24, "matrix": [2, 2], "flags": 4},
{"x": 30, "y": 22, "matrix": [2, 3], "flags": 4},
{"x": 40, "y": 22, "matrix": [2, 4], "flags": 4},
{"x": 50, "y": 25, "matrix": [2, 5], "flags": 4},
{"x": 60, "y": 27, "matrix": [2, 6], "flags": 4},
{"x": 78, "y": 32, "matrix": [2, 7], "flags": 4},
{"x": 95, "y": 27, "matrix": [2, 8], "flags": 4},
{"x": 105, "y": 25, "matrix": [2, 9], "flags": 4},
{"x": 115, "y": 22, "matrix": [2, 10], "flags": 4},
{"x": 125, "y": 22, "matrix": [2, 11], "flags": 4},
{"x": 135, "y": 24, "matrix": [2, 12], "flags": 4},
{"x": 145, "y": 25, "matrix": [2, 13], "flags": 4},
{"x": 155, "y": 26, "matrix": [2, 14], "flags": 4},
{"x": 155, "y": 36, "matrix": [3, 14], "flags": 4},
{"x": 145, "y": 35, "matrix": [3, 13], "flags": 4},
{"x": 135, "y": 34, "matrix": [3, 12], "flags": 4},
{"x": 125, "y": 32, "matrix": [3, 11], "flags": 4},
{"x": 115, "y": 32, "matrix": [3, 10], "flags": 4},
{"x": 105, "y": 35, "matrix": [3, 9], "flags": 4},
{"x": 95, "y": 37, "matrix": [3, 8], "flags": 4},
{"x": 82, "y": 42, "matrix": [1, 7], "flags": 4},
{"x": 72, "y": 42, "matrix": [3, 7], "flags": 4},
{"x": 60, "y": 37, "matrix": [3, 6], "flags": 4},
{"x": 50, "y": 35, "matrix": [3, 5], "flags": 4},
{"x": 40, "y": 32, "matrix": [3, 4], "flags": 4},
{"x": 30, "y": 32, "matrix": [3, 3], "flags": 4},
{"x": 20, "y": 34, "matrix": [3, 2], "flags": 4},
{"x": 10, "y": 35, "matrix": [3, 1], "flags": 4},
{"x": 0, "y": 36, "matrix": [3, 0], "flags": 4},
{"x": 0, "y": 46, "matrix": [4, 0], "flags": 4},
{"x": 10, "y": 45, "matrix": [4, 1], "flags": 4},
{"x": 20, "y": 44, "matrix": [4, 2], "flags": 4},
{"x": 30, "y": 42, "matrix": [4, 3], "flags": 4},
{"x": 40, "y": 42, "matrix": [4, 4], "flags": 4},
{"x": 50, "y": 45, "matrix": [4, 5], "flags": 4},
{"x": 60, "y": 47, "matrix": [4, 6], "flags": 4},
{"x": 78, "y": 52, "matrix": [4, 7], "flags": 4},
{"x": 95, "y": 47, "matrix": [4, 8], "flags": 4},
{"x": 105, "y": 45, "matrix": [4, 9], "flags": 4},
{"x": 115, "y": 42, "matrix": [4, 10], "flags": 4},
{"x": 125, "y": 42, "matrix": [4, 11], "flags": 4},
{"x": 135, "y": 44, "matrix": [4, 12], "flags": 4},
{"x": 145, "y": 45, "matrix": [4, 13], "flags": 4},
{"x": 155, "y": 46, "matrix": [4, 14], "flags": 4},
{"x": 155, "y": 56, "matrix": [5, 14], "flags": 4},
{"x": 145, "y": 55, "matrix": [5, 13], "flags": 4},
{"x": 135, "y": 54, "matrix": [5, 12], "flags": 4},
{"x": 125, "y": 55, "matrix": [5, 11], "flags": 4},
{"x": 115, "y": 56, "matrix": [5, 10], "flags": 4},
{"x": 105, "y": 57, "matrix": [5, 9], "flags": 4},
{"x": 95, "y": 59, "matrix": [5, 8], "flags": 4},
{"x": 78, "y": 62, "matrix": [5, 7], "flags": 4},
{"x": 60, "y": 59, "matrix": [5, 6], "flags": 4},
{"x": 50, "y": 57, "matrix": [5, 5], "flags": 4},
{"x": 40, "y": 56, "matrix": [5, 4], "flags": 4},
{"x": 30, "y": 55, "matrix": [5, 3], "flags": 4},
{"x": 20, "y": 54, "matrix": [5, 2], "flags": 4},
{"x": 10, "y": 55, "matrix": [5, 1], "flags": 4},
{"x": 0, "y": 56, "matrix": [5, 0], "flags": 4}
]
},
"ws2812": {
"pin": "GP29"
}
}

View File

@ -0,0 +1,152 @@
// Copyright 2024 binaryDiv (@binaryDiv)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
// Define layer names for better readability
enum layer_names {
// Base layer
L_BASE,
// "Code" key: Moving the cursor around via WASD, F-keys on number keys, etc.
L_CODE,
// Fn / keyboard control layer: Used for keyboard configuration
L_FN,
};
// Custom keycodes
enum custom_keycodes {
// Special characters that require more complicated input
MACRO_HEART = SAFE_RANGE,
};
// For keycodes, see QMK docs: https://docs.qmk.fm/keycodes
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ------------------------------------
// Layout macro "LAYOUT_eepyboard_rev2"
// ------------------------------------
//
// - First 6 rows: All keys except center area
// - Last row: Up, Left, Right, Down, Enter, center rotary encoder
//
// ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐╭──╮
// │Es││F1││F2││F3││F4││F5││F6│ │F7││F8││F9││10││11││12│▲Vo▼
// └──┘└──┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘╰──╯
// ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐
// │L1││~ ││1 ││2 ││3 ││4 ││5 │ (sc) │6 ││7 ││8 ││9 ││0 ││- ││= │
// └──┘└──┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──┘
// ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐
// │L2││Ta││Q ││W ││E ││R ││T │ (up) │Y ││U ││I ││O ││P ││[ ││] │
// └──┘└──┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──┘
// ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐
// │L3││Ca││A ││S ││D ││F ││G │ (le)(ri) │H ││J ││K ││L ││; ││' ││\ │
// └──┘└──┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──┘
// ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐
// │L4││Sh││\ ││Z ││X ││C ││V │ (do) │B ││N ││M ││, ││. ││/ ││Sh│
// └──┘└──┘└──┘└──┘└── └──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──┘
// ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐
// │L5││L6││Ct││Su││Al││Co││Sp│ (entr) │Ba││AG││Ct││De││Fn││R1││R2│
// └──┘└──┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──┘
// ┌──┐┌──┐┌──┐┌──┐ ┌────┐ ╭──╮
// │Up││Le││Ri││Do│ │Entr│ ▲Sc▼
// └──┘└──┘└──┘└──┘ └────┘ ╰──╯
// Base layer
// TODO: Update/finalize KLE layout
[L_BASE] = LAYOUT_separate_cursor_keys(
///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// /////////////
//[Esc] [F1] [F2] [F3] [F4] [F5] [F6] [F7] [F8] [F9] [F10] [F11] [F12] (Vol)
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
//[...] [`,Tab...] [1,Q,A...] [2,W,S,Z] [3,E,D,X] [4,R,F,C] [5,T,G,V] [6,Y,H,B] [7,U,J,N] [8,I,K,M] [9,O,L...] [0,P,;,.] [-,[,',/] [=,],\...]
_______, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL,
_______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
_______, OSL(L_CODE), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_BACKSLASH,
_______, KC_LSFT, KC_ESC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSFT,
//[...] [...] [Ctrl] [Super] [Alt] [Code] [Space] [Backspace] [AltGr] [RCtrl] [Del] [Fn] [Menu] [RCtrl]
_______, KC_LCTL, KC_LCTL, KC_LGUI, KC_LALT, OSL(L_CODE), KC_SPACE, KC_BACKSPACE, KC_RALT, KC_ENTER, KC_DELETE, MO(L_FN), KC_APP, KC_RCTL,
//[Up] [Left] [Right] [Down] [Enter] (Scroll)
KC_UP, KC_LEFT, KC_RIGHT, KC_DOWN, KC_ENTER, _______
),
// "Code" key layer
[L_CODE] = LAYOUT_separate_cursor_keys(
///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// /////////////
//[Esc] [F1] [F2] [F3] [F4] [F5] [F6] [F7] [F8] [F9] [F10] [F11] [F12] (Vol)
_______, _______, DM_PLY1, DM_PLY2, _______, _______, _______, _______, _______, _______, _______, _______, KC_PRINT_SCREEN, _______,
//[...] [`,Tab...] [1,Q,A...] [2,W,S,Z] [3,E,D,X] [4,R,F,C] [5,T,G,V] [6,Y,H,B] [7,U,J,N] [8,I,K,M] [9,O,L...] [0,P,;,.] [-,[,',/] [=,],\...]
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_UNDERSCORE, KC_EQUAL, KC_LEFT_BRACKET, KC_RIGHT_BRACKET, _______, _______, _______,
_______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, _______, KC_MINUS, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, _______, _______, _______,
_______, _______, LCTL(KC_LEFT), _______, LCTL(KC_RIGHT), MACRO_HEART, _______, _______, _______, _______, _______, _______, _______, _______,
//[...] [...] [Ctrl] [Super] [Alt] [Code] [Space] [Backspace] [AltGr] [RCtrl] [Del] [Fn] [Menu] [RCtrl]
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//[Up] [Left] [Right] [Down] [Enter] (Scroll)
KC_PGUP, KC_HOME, KC_END, KC_PGDN, KC_INSERT, _______
),
// "Fn" key layer
[L_FN] = LAYOUT_separate_cursor_keys(
///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// /////////////
//[Esc] [F1] [F2] [F3] [F4] [F5] [F6] [F7] [F8] [F9] [F10] [F11] [F12] (Vol)
DM_RSTP, DM_REC1, DM_REC2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//[...] [`,Tab...] [1,Q,A...] [2,W,S,Z] [3,E,D,X] [4,R,F,C] [5,T,G,V] [6,Y,H,B] [7,U,J,N] [8,I,K,M] [9,O,L...] [0,P,;,.] [-,[,',/] [=,],\...]
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI,
_______, _______, _______, _______, _______, QK_REBOOT, _______, _______, _______, _______, OS_TOGG, _______, RGB_SPD, RGB_SPI,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_TOG,
_______, _______, _______, _______, _______, QK_CLEAR_EEPROM, _______, _______, _______, _______, _______, _______, _______, _______,
//[...] [...] [Ctrl] [Super] [Alt] [Code] [Space] [Backspace] [AltGr] [RCtrl] [Del] [Fn] [Menu] [RCtrl]
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOTLOADER, _______,
//[Up] [Left] [Right] [Down] [Enter] (Scroll)
_______, _______, _______, _______, _______, _______
)
};
// Define mapping for rotary encoder
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
// Rotary encoder order:
// 0: Center
// 1: Top right
// Base layer
[L_BASE] = {
// 0: Center: Scroll up/down
ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN),
// 1: Top right: Volume control
ENCODER_CCW_CW(KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP)
},
// Code layer
[L_CODE] = {
// 0: Center: Scroll left/right
ENCODER_CCW_CW(KC_MS_WH_LEFT, KC_MS_WH_RIGHT),
// 1: Top right: Volume control
ENCODER_CCW_CW(KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP)
},
// Fn layer
[L_FN] = {
// 0: Center: RGB LED speed control
ENCODER_CCW_CW(RGB_SPD, RGB_SPI),
// 1: Top right: RGB LED brightness control
ENCODER_CCW_CW(RGB_VAD, RGB_VAI)
}
};
#endif
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// Store the current modifier state in the variable for later reference
uint8_t mod_state = get_mods();
switch (keycode) {
case MACRO_HEART:
if (record->event.pressed) {
// Type a outlined heart via X11 Compose key (with custom mappings)
del_mods(MOD_MASK_SHIFT);
SEND_STRING(SS_TAP(X_APP) "c3");
set_mods(mod_state);
}
}
return true;
}

View File

@ -0,0 +1,9 @@
# Enable support for rotary encoder
ENCODER_ENABLE = yes
ENCODER_MAP_ENABLE = yes
# Use RP2040-specific driver for WS2812 (PIO-based)
WS2812_DRIVER = vendor
# Enable support for dynamic macros
DYNAMIC_MACRO_ENABLE = yes

View File

@ -0,0 +1,3 @@
# eepyBoard v1.2 / rev3
This is the firmware for hardware revision 3 of the eepyBoard (v1.2).

View File

@ -0,0 +1,7 @@
// Copyright 2025 binaryDiv (@binaryDiv)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
// Lock one-shot keys when tapping them twice
#define ONESHOT_TAP_TOGGLE 2

View File

@ -0,0 +1,256 @@
{
"keyboard_name": "eepyBoard v1.2",
"maintainer": "binaryDiv",
"manufacturer": "binaryDiv",
"url": "https://git.0xbd.space/binaryDiv/eepyBoard",
"processor": "RP2040",
"bootloader": "rp2040",
"usb": {
"device_version": "1.2.0",
"vid": "0x1337",
"pid": "0xBD32"
},
"features": {
"bootmagic": true,
"command": false,
"console": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": [
"GP27",
"GP26",
"GP25",
"GP23",
"GP22",
"GP21",
"GP18",
"GP17",
"GP13",
"GP12",
"GP11",
"GP10",
"GP9",
"GP8"
],
"rows": [
"GP28",
"GP19",
"GP3",
"GP2",
"GP1",
"GP0"
]
},
"encoder": {
"rotary": [
{
"pin_a": "GP6",
"pin_b": "GP7",
"resolution": 4
}
]
},
"layouts": {
"LAYOUT_default": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "label": "Esc"},
{"matrix": [0, 1], "x": 1, "y": 0, "label": "F1"},
{"matrix": [0, 2], "x": 2, "y": 0, "label": "F2"},
{"matrix": [0, 3], "x": 3, "y": 0, "label": "F3"},
{"matrix": [0, 4], "x": 4, "y": 0, "label": "F4"},
{"matrix": [0, 5], "x": 5, "y": 0, "label": "F5"},
{"matrix": [0, 6], "x": 6, "y": 0, "label": "F6"},
{"matrix": [0, 7], "x": 7, "y": 0, "label": "F7"},
{"matrix": [0, 8], "x": 8, "y": 0, "label": "F8"},
{"matrix": [0, 9], "x": 9, "y": 0, "label": "F9"},
{"matrix": [0, 10], "x": 10, "y": 0, "label": "F10"},
{"matrix": [0, 11], "x": 11, "y": 0, "label": "F11"},
{"matrix": [0, 12], "x": 12, "y": 0, "label": "F12"},
{"matrix": [0, 13], "x": 13.25, "y": 0, "label": "VolCtrl", "encoder": 0},
{"matrix": [1, 0], "x": 0, "y": 1.25, "label": "~"},
{"matrix": [1, 1], "x": 1, "y": 1.25, "label": "1"},
{"matrix": [1, 2], "x": 2, "y": 1.25, "label": "2"},
{"matrix": [1, 3], "x": 3, "y": 1.25, "label": "3"},
{"matrix": [1, 4], "x": 4, "y": 1.25, "label": "4"},
{"matrix": [1, 5], "x": 5, "y": 1.25, "label": "5"},
{"matrix": [1, 6], "x": 6, "y": 1.25, "label": "6"},
{"matrix": [1, 7], "x": 7, "y": 1.25, "label": "7"},
{"matrix": [1, 8], "x": 8, "y": 1.25, "label": "8"},
{"matrix": [1, 9], "x": 9, "y": 1.25, "label": "9"},
{"matrix": [1, 10], "x": 10, "y": 1.25, "label": "0"},
{"matrix": [1, 11], "x": 11, "y": 1.25, "label": "-"},
{"matrix": [1, 12], "x": 12, "y": 1.25, "label": "="},
{"matrix": [2, 0], "x": 0, "y": 2.25, "label": "Tab"},
{"matrix": [2, 1], "x": 1, "y": 2.25, "label": "Q"},
{"matrix": [2, 2], "x": 2, "y": 2.25, "label": "W"},
{"matrix": [2, 3], "x": 3, "y": 2.25, "label": "E"},
{"matrix": [2, 4], "x": 4, "y": 2.25, "label": "R"},
{"matrix": [2, 5], "x": 5, "y": 2.25, "label": "T"},
{"matrix": [2, 6], "x": 6, "y": 2.25, "label": "Y"},
{"matrix": [2, 7], "x": 7, "y": 2.25, "label": "U"},
{"matrix": [2, 8], "x": 8, "y": 2.25, "label": "I"},
{"matrix": [2, 9], "x": 9, "y": 2.25, "label": "O"},
{"matrix": [2, 10], "x": 10, "y": 2.25, "label": "P"},
{"matrix": [2, 11], "x": 11, "y": 2.25, "label": "["},
{"matrix": [2, 12], "x": 12, "y": 2.25, "label": "]"},
{"matrix": [2, 13], "x": 13, "y": 2.25, "label": "Enter"},
{"matrix": [3, 0], "x": 0, "y": 3.25, "label": "Enter"},
{"matrix": [3, 1], "x": 1, "y": 3.25, "label": "A"},
{"matrix": [3, 2], "x": 2, "y": 3.25, "label": "S"},
{"matrix": [3, 3], "x": 3, "y": 3.25, "label": "D"},
{"matrix": [3, 4], "x": 4, "y": 3.25, "label": "F"},
{"matrix": [3, 5], "x": 5, "y": 3.25, "label": "G"},
{"matrix": [3, 6], "x": 6, "y": 3.25, "label": "H"},
{"matrix": [3, 7], "x": 7, "y": 3.25, "label": "J"},
{"matrix": [3, 8], "x": 8, "y": 3.25, "label": "K"},
{"matrix": [3, 9], "x": 9, "y": 3.25, "label": "L"},
{"matrix": [3, 10], "x": 10, "y": 3.25, "label": ";"},
{"matrix": [3, 11], "x": 11, "y": 3.25, "label": "'"},
{"matrix": [3, 12], "x": 12, "y": 3.25, "label": "\\"},
{"matrix": [3, 13], "x": 13, "y": 3.25, "label": "Del"},
{"matrix": [4, 0], "x": 0, "y": 4.25, "label": "Shift"},
{"matrix": [4, 1], "x": 1, "y": 4.25, "label": "Home"},
{"matrix": [4, 2], "x": 2, "y": 4.25, "label": "Z"},
{"matrix": [4, 3], "x": 3, "y": 4.25, "label": "X"},
{"matrix": [4, 4], "x": 4, "y": 4.25, "label": "C"},
{"matrix": [4, 5], "x": 5, "y": 4.25, "label": "V"},
{"matrix": [4, 6], "x": 6, "y": 4.25, "label": "B"},
{"matrix": [4, 7], "x": 7, "y": 4.25, "label": "N"},
{"matrix": [4, 8], "x": 8, "y": 4.25, "label": "M"},
{"matrix": [4, 9], "x": 9, "y": 4.25, "label": ","},
{"matrix": [4, 10], "x": 10, "y": 4.25, "label": "."},
{"matrix": [4, 11], "x": 11, "y": 4.25, "label": "/"},
{"matrix": [4, 12], "x": 12, "y": 4.25, "label": "Up"},
{"matrix": [4, 13], "x": 13, "y": 4.25, "label": "Shift"},
{"matrix": [5, 0], "x": 0, "y": 5.25, "label": "Ctrl"},
{"matrix": [5, 1], "x": 1, "y": 5.25, "label": "End"},
{"matrix": [5, 2], "x": 2, "y": 5.25, "label": "Super"},
{"matrix": [5, 3], "x": 3, "y": 5.37, "label": "Alt"},
{"matrix": [5, 4], "x": 4, "y": 5.50, "label": "Code"},
{"matrix": [5, 5], "x": 5.25, "y": 5.50, "label": "Space", "w": 1.5},
{"matrix": [5, 7], "x": 7, "y": 5.50, "label": "Backspace"},
{"matrix": [5, 8], "x": 8, "y": 5.37, "label": "AltGr"},
{"matrix": [5, 9], "x": 9, "y": 5.25, "label": "Ctrl"},
{"matrix": [5, 10], "x": 10, "y": 5.25, "label": "Fn"},
{"matrix": [5, 11], "x": 11, "y": 5.25, "label": "Left"},
{"matrix": [5, 12], "x": 12, "y": 5.25, "label": "Down"},
{"matrix": [5, 13], "x": 13, "y": 5.25, "label": "Right"}
]
}
},
"rgb_matrix": {
"driver": "ws2812",
"default": {
"animation": "cycle_pinwheel",
"speed": 32
},
"animations": {
"cycle_pinwheel": true,
"typing_heatmap": true
},
"max_brightness": 127,
"sleep": true,
"center_point": [55, 25],
"layout": [
{"x": 120, "y": 0, "matrix": [0, 12], "flags": 4},
{"x": 110, "y": 0, "matrix": [0, 11], "flags": 4},
{"x": 100, "y": 0, "matrix": [0, 10], "flags": 4},
{"x": 90, "y": 0, "matrix": [0, 9], "flags": 4},
{"x": 80, "y": 0, "matrix": [0, 8], "flags": 4},
{"x": 70, "y": 0, "matrix": [0, 7], "flags": 4},
{"x": 60, "y": 0, "matrix": [0, 6], "flags": 4},
{"x": 50, "y": 0, "matrix": [0, 5], "flags": 4},
{"x": 40, "y": 0, "matrix": [0, 4], "flags": 4},
{"x": 30, "y": 0, "matrix": [0, 3], "flags": 4},
{"x": 20, "y": 0, "matrix": [0, 2], "flags": 4},
{"x": 10, "y": 0, "matrix": [0, 1], "flags": 4},
{"x": 0, "y": 0, "matrix": [0, 0], "flags": 4},
{"x": 0, "y": 10, "matrix": [1, 0], "flags": 4},
{"x": 10, "y": 10, "matrix": [1, 1], "flags": 4},
{"x": 20, "y": 10, "matrix": [1, 2], "flags": 4},
{"x": 30, "y": 10, "matrix": [1, 3], "flags": 4},
{"x": 40, "y": 10, "matrix": [1, 4], "flags": 4},
{"x": 50, "y": 10, "matrix": [1, 5], "flags": 4},
{"x": 60, "y": 10, "matrix": [1, 6], "flags": 4},
{"x": 70, "y": 10, "matrix": [1, 7], "flags": 4},
{"x": 80, "y": 10, "matrix": [1, 8], "flags": 4},
{"x": 90, "y": 10, "matrix": [1, 9], "flags": 4},
{"x": 100, "y": 10, "matrix": [1, 10], "flags": 4},
{"x": 110, "y": 10, "matrix": [1, 11], "flags": 4},
{"x": 120, "y": 10, "matrix": [1, 12], "flags": 4},
{"x": 130, "y": 20, "matrix": [2, 13], "flags": 4},
{"x": 120, "y": 20, "matrix": [2, 12], "flags": 4},
{"x": 110, "y": 20, "matrix": [2, 11], "flags": 4},
{"x": 100, "y": 20, "matrix": [2, 10], "flags": 4},
{"x": 90, "y": 20, "matrix": [2, 9], "flags": 4},
{"x": 80, "y": 20, "matrix": [2, 8], "flags": 4},
{"x": 70, "y": 20, "matrix": [2, 7], "flags": 4},
{"x": 60, "y": 20, "matrix": [2, 6], "flags": 4},
{"x": 50, "y": 20, "matrix": [2, 5], "flags": 4},
{"x": 40, "y": 20, "matrix": [2, 4], "flags": 4},
{"x": 30, "y": 20, "matrix": [2, 3], "flags": 4},
{"x": 20, "y": 20, "matrix": [2, 2], "flags": 4},
{"x": 10, "y": 20, "matrix": [2, 1], "flags": 4},
{"x": 0, "y": 20, "matrix": [2, 0], "flags": 4},
{"x": 0, "y": 30, "matrix": [3, 0], "flags": 4},
{"x": 10, "y": 30, "matrix": [3, 1], "flags": 4},
{"x": 20, "y": 30, "matrix": [3, 2], "flags": 4},
{"x": 30, "y": 30, "matrix": [3, 3], "flags": 4},
{"x": 40, "y": 30, "matrix": [3, 4], "flags": 4},
{"x": 50, "y": 30, "matrix": [3, 5], "flags": 4},
{"x": 60, "y": 30, "matrix": [3, 6], "flags": 4},
{"x": 70, "y": 30, "matrix": [3, 7], "flags": 4},
{"x": 80, "y": 30, "matrix": [3, 8], "flags": 4},
{"x": 90, "y": 30, "matrix": [3, 9], "flags": 4},
{"x": 100, "y": 30, "matrix": [3, 10], "flags": 4},
{"x": 110, "y": 30, "matrix": [3, 11], "flags": 4},
{"x": 120, "y": 30, "matrix": [3, 12], "flags": 4},
{"x": 130, "y": 30, "matrix": [3, 13], "flags": 4},
{"x": 130, "y": 40, "matrix": [4, 13], "flags": 4},
{"x": 120, "y": 40, "matrix": [4, 12], "flags": 4},
{"x": 110, "y": 40, "matrix": [4, 11], "flags": 4},
{"x": 100, "y": 40, "matrix": [4, 10], "flags": 4},
{"x": 90, "y": 40, "matrix": [4, 9], "flags": 4},
{"x": 80, "y": 40, "matrix": [4, 8], "flags": 4},
{"x": 70, "y": 40, "matrix": [4, 7], "flags": 4},
{"x": 60, "y": 40, "matrix": [4, 6], "flags": 4},
{"x": 50, "y": 40, "matrix": [4, 5], "flags": 4},
{"x": 40, "y": 40, "matrix": [4, 4], "flags": 4},
{"x": 30, "y": 40, "matrix": [4, 3], "flags": 4},
{"x": 20, "y": 40, "matrix": [4, 2], "flags": 4},
{"x": 10, "y": 40, "matrix": [4, 1], "flags": 4},
{"x": 0, "y": 40, "matrix": [4, 0], "flags": 4},
{"x": 0, "y": 50, "matrix": [5, 0], "flags": 4},
{"x": 10, "y": 50, "matrix": [5, 1], "flags": 4},
{"x": 21, "y": 51, "matrix": [5, 2], "flags": 4},
{"x": 31, "y": 52, "matrix": [5, 3], "flags": 4},
{"x": 41, "y": 53, "matrix": [5, 4], "flags": 4},
{"x": 55, "y": 55, "matrix": [5, 5], "flags": 4},
{"x": 71, "y": 53, "matrix": [5, 7], "flags": 4},
{"x": 81, "y": 52, "matrix": [5, 8], "flags": 4},
{"x": 91, "y": 51, "matrix": [5, 9], "flags": 4},
{"x": 100, "y": 50, "matrix": [5, 10], "flags": 4},
{"x": 110, "y": 50, "matrix": [5, 11], "flags": 4},
{"x": 120, "y": 50, "matrix": [5, 12], "flags": 4},
{"x": 130, "y": 50, "matrix": [5, 13], "flags": 4}
]
},
"ws2812": {
"pin": "GP29"
}
}

View File

@ -0,0 +1,147 @@
// Cowpyright 2025 binaryDiv (@binaryDiv)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
// Define layer names for better readability
enum layer_names {
// Base layer
L_BASE,
// "Code" key: Moving the cursor around via WASD, etc.
L_CODE,
// Fn / keyboard control layer: Used for keyboard configuration
L_FN,
};
// Custom keycodes
enum custom_keycodes {
// Special characters that require more complicated input
MACRO_HEART = SAFE_RANGE,
};
// For keycodes, see QMK docs: https://docs.qmk.fm/keycodes
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// -----------------------------
// Layout macro "LAYOUT_default"
// -----------------------------
//
// - 6 rows in total a 14 columns.
// - Row 1: Esc, function keys, volume control knob.
// - Row 2: Numbers. Last key unused.
// - Row 3 to 5: Q-row, A-row, Z-row.
// - Row 6: Modifiers, thumb keys, space bar. Key after space bar is unused (space occupies two slots).
//
// ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ╭──╮
// │Es││F1││F2││F3││F4││F5││F6││F7││F8││F9││10││11││12│ ▲Vo▼
// └──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘ ╰──╯
// ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐
// │~ ││1 ││2 ││3 ││4 ││5 ││6 ││7 ││8 ││9 ││0 ││- ││= │
// └──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘
// ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐
// │Ta││Q ││W ││E ││R ││T ││Y ││U ││I ││O ││P ││[ ││] ││En│
// └──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘
// ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐
// │En││A ││S ││D ││F ││G ││H ││J ││K ││L ││; ││' ││\ ││De│
// └──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘
// ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐
// │Sh││Ho││Z ││X ││C ││V ││B ││N ││M ││, ││. ││/ ││Up││Sh│
// └──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘
// ┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐
// │Ct││En│┌──┐┌──┐┌──┐ ┌────┐ ┌──┐┌──┐┌──┐│Fn││Le││Do││Ri│
// └──┘└──┘│Su││Al││Co│ │Spac│ │Ba││Al││Ct│└──┘└──┘└──┘└──┘
// └──┘└──┘└──┘ └────┘ └──┘└──┘└──┘
// Base layer
[L_BASE] = LAYOUT_default(
///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// /////////////
//[Esc] [F1] [F2] [F3] [F4] [F5] [F6] [F7] [F8] [F9] [F10] [F11] [F12] (Vol)
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE,
//[`] [1] [2] [3] [4] [5] [6] [7] [8] [9] [0] [-] [=]
KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL,
//[Tab...] [Q,A,Home] [W,S,Z] [E,D,X] [R,F,C] [T,G,V] [Y,H,B] [U,J,N] [I,K,M] [O,L,[,]] [P,[;],[.]] [<[>,',/] [<]>,\,Up] [Enter...]
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENTER,
KC_ENTER, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_BACKSLASH, KC_DELETE,
KC_LSFT, KC_HOME, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_UP, KC_RSFT,
//[Ctrl] [End] [Super] [Alt] [Code] [______Space______] [Backspace] [AltGr] [RCtrl] [Fn] [Left] [Down] [Right]
KC_LCTL, KC_END, KC_LGUI, KC_LALT, MO(L_CODE), KC_SPACE, KC_BACKSPACE, KC_RALT, KC_RCTL, MO(L_FN), KC_LEFT, KC_DOWN, KC_RIGHT
),
// "Code" key layer
// Code+F11: Super+Del = Lock screen
[L_CODE] = LAYOUT_default(
///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// /////////////
//[Esc] [F1] [F2] [F3] [F4] [F5] [F6] [F7] [F8] [F9] [F10] [F11] [F12] (Vol)
_______, DM_PLY1, DM_PLY2, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, LGUI(KC_DEL), KC_SYSTEM_SLEEP, KC_NO,
//[`] [1] [2] [3] [4] [5] [6] [7] [8] [9] [0] [-] [=]
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//[Tab...] [Q,A,Home] [W,S,Z] [E,D,X] [R,F,C] [T,G,V] [Y,H,B] [U,J,N] [I,K,M] [O,L,[,]] [P,[;],[.]] [<[>,',/] [<]>,\,Up] [Enter...]
_______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, _______, MACRO_HEART, _______, _______, _______, _______, _______, _______, KC_INSERT,
_______, KC_PGUP, _______, KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______,
//[Ctrl] [End] [Super] [Alt] [Code] [______Space______] [Backspace] [AltGr] [RCtrl] [Fn] [Left] [Down] [Right]
_______, KC_PGDN, _______, _______, _______, _______, KC_DELETE, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
),
// "Fn" key layer
[L_FN] = LAYOUT_default(
///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// ///////////// /////////////
//[Esc] [F1] [F2] [F3] [F4] [F5] [F6] [F7] [F8] [F9] [F10] [F11] [F12] (Vol)
DM_RSTP, DM_REC1, DM_REC2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_RGB_MATRIX_TOGGLE,
//[`] [1] [2] [3] [4] [5] [6] [7] [8] [9] [0] [-] [=]
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI,
//[Tab...] [Q,A,Home] [W,S,Z] [E,D,X] [R,F,C] [T,G,V] [Y,H,B] [U,J,N] [I,K,M] [O,L,[,]] [P,[;],[.]] [<[>,',/] [<]>,\,Up] [Enter...]
_______, _______, _______, _______, QK_REBOOT, _______, _______, _______, _______, OS_TOGG, _______, RGB_SPD, RGB_SPI, QK_BOOTLOADER,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_TOG, _______,
_______, _______, _______, _______, QK_CLEAR_EEPROM, _______, QK_BOOTLOADER, _______, _______, _______, _______, _______, _______, _______,
//[Ctrl] [End] [Super] [Alt] [Code] [______Space______] [Backspace] [AltGr] [RCtrl] [Fn] [Left] [Down] [Right]
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
// Define mapping for rotary encoder
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
// Base layer: Volume control (press: mute)
[L_BASE] = {
ENCODER_CCW_CW(KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP)
},
// Code layer: Scroll up/down (press: no action)
[L_CODE] = {
ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN)
},
// Fn layer: RGB LED brightness control (press: toggle RGB light)
[L_FN] = {
ENCODER_CCW_CW(RGB_VAD, RGB_VAI)
}
};
#endif
// Define custom keycode handlers
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// Store the current modifier state in the variable for later reference
uint8_t mod_state = get_mods();
switch (keycode) {
case MACRO_HEART:
if (record->event.pressed) {
// Type a outlined heart via X11 Compose key (with custom mappings)
del_mods(MOD_MASK_SHIFT);
SEND_STRING(SS_TAP(X_APP) "c3");
set_mods(mod_state);
}
}
return true;
}

View File

@ -0,0 +1,9 @@
# Enable support for rotary encoder
ENCODER_ENABLE = yes
ENCODER_MAP_ENABLE = yes
# Use RP2040-specific driver for WS2812 (PIO-based)
WS2812_DRIVER = vendor
# Enable support for dynamic macros
DYNAMIC_MACRO_ENABLE = yes