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_AUTHOR := binarydiv
QMK_KEYBOARD_NAME := eepyboard
QMK_KEYBOARD_REV ?= rev1
QMK_KEYBOARD_REV ?= rev3
# Directory structure for QMK keyboard files
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)
- 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
- `/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 same output directory as above.
- 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.
- 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.
5. Add all generated files to version control.

View File

@ -8,7 +8,7 @@ meta:
# Required version of Ergogen
engine: "4.1.0"
# Version of the board
version: "1.1"
version: "1.2"
author: binaryDiv
# Define units and default values used throughout this file
@ -30,13 +30,13 @@ units:
$default_padding: cy
# 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)
function_gap: 6
# Distance between left and right half of the main zone
split_gap_width: 2cx + 3
# Outline border (border between keys and PCB edge)
border_left: -6
border_right: 6
border_top: 5
border_bottom: -4
# Radius of rotary encoder knob (just for visualization)
rotary_encoder_radius: 10
@ -62,132 +62,118 @@ points:
# Modifier row (Ctrl etc., but excluding the thumb keys)
mods:
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:
row_net: ROW2
led_next_key: "{{zone.name}}_{{neighbor_col_right}}_{{row}}"
tags: [ is_key, flip_led ]
led_next_key: "{{zone.name}}_{{neighbor_col_left}}_{{row}}"
# Home letter row
home:
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:
row_net: ROW4
led_next_key: "{{zone.name}}_{{neighbor_col_right}}_{{row}}"
tags: [ is_key, flip_led ]
led_next_key: "{{zone.name}}_{{neighbor_col_left}}_{{row}}"
# Number row
numbers:
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)
columns:
# Left-most column (extra keys)
# Left-most column (`, Tab, Shift, etc.)
left:
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
rows.top.led_next_key: main_left_home
rows.bottom.led_next_key: main_left_mods
# First letter column (1, Q)
one:
key.stagger: 1/8cy
key.column_net: COL3
key.neighbor_col_left: zero
key.column_net: COL2
key.neighbor_col_left: left
key.neighbor_col_right: two
rows.mods.led_next_key: thumb_one
# Second letter column (2, W)
two:
key.stagger: 1/8cy
key.column_net: COL4
key.column_net: COL3
key.neighbor_col_left: one
key.neighbor_col_right: three
rows.mods.skip: true
# Third letter column (3, E)
three:
key.column_net: COL5
key.column_net: COL4
key.neighbor_col_left: two
key.neighbor_col_right: four
rows.mods.skip: true
# Fourth letter column (4, R)
four:
key.stagger: -(1/4cy)
key.column_net: COL6
key.column_net: COL5
key.neighbor_col_left: three
key.neighbor_col_right: five
rows.mods.skip: true
# Fifth letter column (5, T)
five:
key.stagger: -(1/4cy)
key.column_net: COL7
key.column_net: COL6
key.neighbor_col_left: four
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
# (Gap with arrow keys in the middle: Matrix column 8)
# Sixth letter column (6, Y)
six:
key.spread: cx + split_gap_width
key.column_net: COL9
key.column_net: COL7
key.neighbor_col_left: five
key.neighbor_col_right: seven
rows.home.led_next_key: arrow_keys_right
rows.mods.skip: true
# Seventh letter column (7, U)
seven:
key.stagger: 1/4cy
key.column_net: COL10
key.column_net: COL8
key.neighbor_col_left: six
key.neighbor_col_right: eight
rows.mods.skip: true
# Eighth letter column (8, I)
eight:
key.stagger: 1/4cy
key.column_net: COL11
key.column_net: COL9
key.neighbor_col_left: seven
key.neighbor_col_right: nine
rows.mods.skip: true
# Nineth letter column (9, O)
nine:
key.column_net: COL12
key.column_net: COL10
key.neighbor_col_left: eight
key.neighbor_col_right: ten
rows.mods.skip: true
# Tenth letter column (0, P)
ten:
key.stagger: -(1/8cy)
key.column_net: COL13
key.column_net: COL11
key.neighbor_col_left: nine
key.neighbor_col_right: eleven
rows.mods.led_next_key: mirror_thumb_one
# Eleventh letter column (-, [)
eleven:
key.stagger: -(1/8cy)
key.column_net: COL14
key.column_net: COL12
key.neighbor_col_left: ten
key.neighbor_col_right: twelve
# Twelfth letter column (=, ])
twelve:
key.stagger: -(1/8cy)
key.column_net: COL15
key.column_net: COL13
key.neighbor_col_left: eleven
rows.top.led_next_key: main_twelve_home
rows.bottom.led_next_key: main_twelve_mods
key.neighbor_col_right: right
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:
@ -199,224 +185,137 @@ points:
# Zone-wide key settings
key:
row_net: ROW1
tags: [ is_key, flip_led ]
# Rotate the thumb keys around the bottom-left corner of the key
origin: [ -0.5cx, -0.5cy ]
splay: -6
splay: -4
# Define thumb keys
columns:
one:
key.column_net: COL4
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.column_net: COL3
key.mirror.column_net: COL10
key.led_next_key: thumb_two
key.mirror.led_next_key: mirror_thumb_four
four:
key.column_net: COL7
key.mirror.led_next_key: main_ten_mods
two:
key.column_net: COL4
key.mirror.column_net: COL9
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:
ref: main_five_bottom
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:
anchor:
# Center between the two inner thumb keys
aggregate.parts:
- thumb_four
- mirror_thumb_four
shift: [ 0, -0.25cy ]
- thumb_three
- mirror_thumb_three
shift: [ 0, -0.125cy ]
# Key settings (instead of rows/columns)
key:
width: 1.5kcx
row_net: ROW1
column_net: COL8
led_next_key: thumb_four
tags: [ is_key, 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
column_net: COL6
led_next_key: mirror_thumb_three
tags: [ is_key, flip_led, 1_5u ]
# Function key row above the main zone (Esc, F1-F12)
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:
# To center the F keys on the top of the keyboard:
# - Get center point between keys 3 and 8 (they have the highest staggering)
# - 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 ]
ref: main_left_numbers
shift: [ 0, cy + function_row_offset ]
# Single row zone: Assign row net
key:
row_net: ROW6
tags: [ is_key, flip_led ]
# Define function keys
columns:
# Escape key
esc:
key.shift: [ 0, -cy/8 ]
key.column_net: COL1
key.led_next_key: function_f1
# 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
key.led_next_key: main_left_numbers
# Block of 4 keys with gap
# F1 to F12 keys
f1:
key.spread: cx + function_gap
key.column_net: COL2
key.led_next_key: function_f2
key.led_next_key: function_esc
f2:
key.column_net: COL3
key.led_next_key: function_f3
key.led_next_key: function_f1
f3:
key.column_net: COL4
key.led_next_key: function_f4
key.led_next_key: function_f2
f4:
key.column_net: COL5
key.led_next_key: function_f5
# Block of 4 keys with gap
key.led_next_key: function_f3
f5:
key.spread: cx + function_gap
key.column_net: COL6
key.led_next_key: function_f6
key.led_next_key: function_f4
f6:
key.column_net: COL7
key.led_next_key: function_f7
# Skip matrix column 8 (arrow keys)
key.led_next_key: function_f5
f7:
key.column_net: COL9
key.led_next_key: function_f8
key.column_net: COL8
key.led_next_key: function_f6
f8:
key.column_net: COL10
key.led_next_key: function_f9
# Block of 4 keys with gap
key.column_net: COL9
key.led_next_key: function_f7
f9:
key.spread: cx + function_gap
key.column_net: COL11
key.led_next_key: function_f10
key.column_net: COL10
key.led_next_key: function_f8
f10:
key.column_net: COL12
key.led_next_key: function_f11
key.column_net: COL11
key.led_next_key: function_f9
f11:
key.column_net: COL13
key.led_next_key: function_f12
key.column_net: COL12
key.led_next_key: function_f10
f12:
key.column_net: COL14
key.led_next_key: main_twelve_numbers
# RP2040 Pico Mini controller board
controller:
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
key.column_net: COL13
key.led_next_key: function_f11
# F12 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
# Rotary encoder in the top right corner of the keyboard
rotary_top_right:
anchor:
ref: function_f12
shift: [ cx + 2 + function_gap, -cy/8 ]
shift: [ cx + 3, 0 ]
rotate: 90
key:
tags: [ is_rotary_encoder ]
width: 2 * rotary_encoder_radius
height: 2 * rotary_encoder_radius
# Matrix position of the switch: Function row, right of F12
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
outlines:
@ -447,58 +346,45 @@ outlines:
- what: polygon
points:
# Top left corner
- ref: &corner_top_left_anchor
- ref: main_left_numbers
affect: x
- ref: function_f1
affect: y
- shift: [ -0.5kcx, 0.5kcy ]
# Extend all corners 4mm to the sides to get a 4mm border
shift: [ -4, 4 ]
- ref:
- ref: function_esc
shift: [ -0.5kcx, 0.5kcy ]
# Extend all corners to the sides to get a border
shift: [ border_left, border_top ]
# Top right corner
- ref: &corner_top_right_anchor
- ref: main_twelve_numbers
- ref:
- ref: main_right_top
affect: x
- ref: function_f12
affect: y
- shift: [ 0.5kcx, 0.5kcy ]
shift: [ 4, 4 ]
shift: [ border_right, border_top ]
# Bottom right corner
- ref:
- ref: main_twelve_mods
- ref: main_right_mods
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: mirror_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 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 ]
- ref: thumb_center
shift: [ 0, -0.5kcy ]
shift: [ 0, border_bottom ]
# Bottom left corner
- ref:
- ref: main_left_mods
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:
# 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".
# 3. Right click the two angled lines again. Use "Shape Modification -> Fillet Lines..." with a 200mm radius.
fillet: 8
# 3. Right click the two angled lines again. Use "Shape Modification -> Fillet Lines..." with a 300mm radius.
fillet: 5
# Preview version of board with key caps and components for visualization
board_preview:
@ -546,8 +432,8 @@ pcbs:
orientation: down
# Use 5V from USB as VCC net
5V: VCC
# RGB LEDs: The chain starts with the Esc key
GP29: led_din_function_esc
# RGB LEDs: The chain starts with the F12 key
GP29: led_din_function_f12
# Matrix columns
GP27: COL1
GP26: COL2
@ -555,27 +441,24 @@ pcbs:
GP23: COL4
GP22: COL5
GP21: COL6
GP20: COL7
GP17: COL8 # Center column (arrow keys)
GP12: COL9
GP11: COL10
GP10: COL11
GP9: COL12
GP8: COL13
GP7: COL14
GP6: COL15
GP18: COL7
GP17: COL8
GP13: COL9
GP12: COL10
GP11: COL11
GP10: COL12
GP9: COL13
GP8: COL14
# Matrix rows
GP13: ROW1
GP14: ROW2
GP19: ROW3
GP18: ROW4
GP15: ROW5
GP0: ROW1
GP1: ROW2
GP2: ROW3
GP3: ROW4
GP19: ROW5
GP28: ROW6
# Rotary encoders
GP0: rotary_top_right_a
GP1: rotary_top_right_b
GP3: rotary_center_a
GP2: rotary_center_b
# Rotary encoder
GP6: rotary_top_right_a
GP7: rotary_top_right_b
choc_hotswap:
what: choc_pretty
@ -663,75 +546,100 @@ pcbs:
# the signal of the RP2040 is strong enough.
first_led_voltage_diode:
what: diode_smd
where: function_esc
where: function_f12
adjust:
shift: [ 10, 1.5]
rotate: -90
shift: [ 0, 8.5 ]
rotate: 0
params:
side: B
from: VCC
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:
what: mountinghole_m2
where:
ref: *corner_top_left_anchor
shift: [ 2, -2 ]
ref: function_esc
shift: [ -12, 0 ]
# Mounting holes: "Top" right corner (right edge, below the controller board)
mounting_hole_top_right:
what: mountinghole_m2
where:
ref: *corner_top_right_anchor
shift: [ -2, -2 ]
ref: main_right_top
shift: [ 0.5cx - 0.5, 0.5cy + 1.25 ]
# Mounting holes: Top center, left and right of the controller
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 holes: Bottom center, below C and N keys (with copyright text in between)
mounting_hole_bottom_center_left:
what: mountinghole_m2
where:
ref: main_five_bottom
shift: [ 0, -13 ]
ref: main_four_bottom
shift: [ 4, -12.25 ]
mounting_hole_bottom_center_right:
what: mountinghole_m2
where:
ref: main_six_bottom
shift: [ 0, -13 ]
ref: main_seven_bottom
shift: [ -4, -12.25 ]
# Mounting holes: Bottom left and right corners, under the second key columns
mounting_hole_bottom_left:
# Mounting holes: Bottom left corner (left of Ctrl; below left thumb keys)
mounting_hole_bottom_left1:
what: mountinghole_m2
where:
ref: main_zero_mods
shift: [ 0, -13.5 ]
ref: main_one_mods
shift: [ 0.5cx, -11.75 ]
mounting_hole_bottom_right:
mounting_hole_bottom_left2:
what: mountinghole_m2
where:
ref: main_eleven_mods
shift: [ 0, -13.5 ]
ref: main_left_mods
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
copyright_text:
what: text
where:
ref: thumb_one
shift: [ 0, -16.5 ]
rotate: -0.3 # total rotation: -6.3 (including key rotation)
ref: thumb_center
shift: [ 0, 13.25 ]
params:
text: |-
eepyBoard v1.1 by binaryDiv
eepyBoard v1.2 by binaryDiv
(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,17 +19,21 @@ enum layer_names {
enum custom_keycodes {
// Macro to select the current word (Ctrl-Left, Shift-Ctrl-Right)
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] = {
// Base layer
[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_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_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_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_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_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_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_RIGHT_ALT, KC_ENTER, KC_DELETE, MO(L_FN), KC_RIGHT_CTRL
),
// "Code" key layer
@ -38,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_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, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
@ -72,6 +76,9 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
#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_SELECT_WORD:
// 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))));
}
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;
}

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