Add files via upload

This commit is contained in:
GameCrest 2025-02-16 18:02:17 +02:00 committed by GitHub
parent 769de8429b
commit 9a040336e4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
40 changed files with 221470 additions and 0 deletions

View file

@ -0,0 +1,36 @@
## YeagPad:
This is a 10 key general purpose macropad for stuff like... I don't know, playing games and whatever (。・ω・。)
![The Render](YeagPad_render.PNG)
## Inspiration:
I was a macropad that I could use for rhythm games and also for 3d enviroments, while also still having options incase I wanted to make my macropad a makeshift launchpad for music.
## Challenges:
~~Me being a dumbass~~ Honestly it was just me making everything harder that it was supposed to be. In, hindsight, making my macropad was actually pretty easy(-ish)
## Stuff:
- Simple design (Sleek!)
- Has an OLED (Cool!)
- KMK built with hopes and dreams as this is my first time doing this whole building a macropad thing (I really hope this works)
- Yeag! (Yeag!)
## BOM:
1x XIAO RP2040
10x Through-hole 1N4148 Diodes
10x Cherry MX Switches
1x 128x64 OLED
10x Blank DSA Keycaps (Red)
4x M3x16mm Screws
4x M3x5mmx4mm Heatset Inserts
1x 3D Printed Base
1x 3D Printed Top Plate
## Schematic
![The Schematic](YeagPad_schematic.png)
## PCB
![The PCB](YeagPad_pcb.png)
## Case
![The Case](YeagPad_case.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,30 @@
import board
from kmk.kmk_keyboard import KMKKeyboard
from kmk.scanners.keypad import KeysScanner
from kmk.keys import KC
from kmk.modules.macros import Press, Release, Tap, Macros
from kmk.scanners import DiodeOrientation
keyboard = KMKKeyboard()
col_pins = (board.GP26, board.GP27, board.GP28, board.GP29)
row_pins = (board.GP4, board.GP2, board.GP1)
diode_orientation = DiodeOrientation.COL2ROW
# Define your pins here!
PINS = [board.D3, board.D4, board.D2, board.D1, board.D4, board.D2, board.D1, board.D4, board.D2, board.D1]
# Here you define the buttons corresponding to the pins
# Look here for keycodes: https://github.com/KMKfw/kmk_firmware/blob/main/docs/en/keycodes.md
# And here for macros: https://github.com/KMKfw/kmk_firmware/blob/main/docs/en/macros.md
keyboard.keymap = [
[KC.Q, KC.W, KC.E, KC.R,
KC.A, KC.S, KC.D,
KC.Z, KC.X, KC.C]
]
# Start kmk!
if __name__ == '__main__':
keyboard.go()

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,83 @@
{
"board": {
"active_layer": 0,
"active_layer_preset": "",
"auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [],
"high_contrast_mode": 1,
"net_color_mode": 1,
"opacity": {
"images": 0.6,
"pads": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"selection_filter": {
"dimensions": true,
"footprints": true,
"graphics": true,
"keepouts": true,
"lockedItems": false,
"otherItems": true,
"pads": true,
"text": true,
"tracks": true,
"vias": true,
"zones": true
},
"visible_items": [
0,
1,
2,
3,
4,
5,
8,
9,
10,
11,
12,
13,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
32,
33,
34,
35,
36,
39,
40
],
"visible_layers": "7ffffff_80000001",
"zone_display_mode": 0
},
"git": {
"repo_password": "",
"repo_type": "",
"repo_username": "",
"ssh_key": ""
},
"meta": {
"filename": "YeagPad.kicad_prl",
"version": 3
},
"project": {
"files": []
}
}

View file

@ -0,0 +1,584 @@
{
"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": [],
"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.5,
"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": [],
"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": [],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"conflicting_netclasses": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"similar_labels": "warning",
"simulation_model_issue": "ignore",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "YeagPad.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": "",
"pos_files": "",
"specctra_dsn": "",
"step": "YeagPad.step",
"svg": "",
"vrml": "YeagPad.wrl"
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "",
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
"keep_line_breaks": false,
"keep_tabs": false,
"name": "CSV",
"ref_delimiter": ",",
"ref_range_delimiter": "",
"string_delimiter": "\""
},
"bom_presets": [],
"bom_settings": {
"exclude_dnp": false,
"fields_ordered": [
{
"group_by": false,
"label": "Reference",
"name": "Reference",
"show": true
},
{
"group_by": true,
"label": "Value",
"name": "Value",
"show": true
},
{
"group_by": false,
"label": "Datasheet",
"name": "Datasheet",
"show": true
},
{
"group_by": false,
"label": "Footprint",
"name": "Footprint",
"show": true
},
{
"group_by": false,
"label": "Qty",
"name": "${QUANTITY}",
"show": true
},
{
"group_by": true,
"label": "DNP",
"name": "${DNP}",
"show": true
}
],
"filter_string": "",
"group_symbols": true,
"name": "Grouped By Value",
"sort_asc": true,
"sort_field": "Reference"
},
"connection_grid_size": 50.0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"operating_point_overlay_i_precision": 3,
"operating_point_overlay_i_range": "~A",
"operating_point_overlay_v_precision": 3,
"operating_point_overlay_v_range": "~V",
"overbar_offset_ratio": 1.23,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"page_layout_descr_file": "",
"plot_directory": "",
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"e2b264e9-bae2-4876-a6b8-6263b17d090b",
"Root"
]
],
"text_variables": {}
}

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -0,0 +1,5 @@
Designator,Footprint,Quantity,Value,LCSC Part #
"D1, D10, D2, D3, D4, D5, D6, D7, D8, D9",D_DO-35_SOD27_P7.62mm_Horizontal,10,1N4148,
J1,OLED_128x64,1,OLED_128x64,
"K1, K10, K2, K3, K4, K5, K6, K7, K8, K9",MX_PCB_1.00u,10,SW_Push_45deg,
U1,Seeed_XIAO_RP2040,1,XIAO-RP2040-DIP,
1 Designator Footprint Quantity Value LCSC Part #
2 D1, D10, D2, D3, D4, D5, D6, D7, D8, D9 D_DO-35_SOD27_P7.62mm_Horizontal 10 1N4148
3 J1 OLED_128x64 1 OLED_128x64
4 K1, K10, K2, K3, K4, K5, K6, K7, K8, K9 MX_PCB_1.00u 10 SW_Push_45deg
5 U1 Seeed_XIAO_RP2040 1 XIAO-RP2040-DIP

View file

@ -0,0 +1,23 @@
D1:1
D10:1
D2:1
D3:1
D4:1
D5:1
D6:1
D7:1
D8:1
D9:1
J1:1
K1:1
K10:1
K2:1
K3:1
K4:1
K5:1
K6:1
K7:1
K8:1
K9:1
REF**:4
U1:1
1 D1:1
2 D10:1
3 D2:1
4 D3:1
5 D4:1
6 D5:1
7 D6:1
8 D7:1
9 D8:1
10 D9:1
11 J1:1
12 K1:1
13 K10:1
14 K2:1
15 K3:1
16 K4:1
17 K5:1
18 K6:1
19 K7:1
20 K8:1
21 K9:1
22 REF**:4
23 U1:1

View file

@ -0,0 +1,110 @@
P CODE 00
P UNITS CUST 0
P arrayDim N
317GND J1 -1 D0394PA00X+086689Y-035433X0669Y0669R270S0
317VCC J1 -2 D0394PA00X+087689Y-035433X0669Y0669R270S0
317SCL J1 -3 D0394PA00X+088689Y-035433X0669Y0669R270S0
317SDA J1 -4 D0394PA00X+089689Y-035433X0669Y0669R270S0
367N/C REF** D1260UA00X+092520Y-016929X1260Y0000R000S0
327COLUMN?0 U1 -1 A01X+081864Y-015504X1083Y0787R000S2
317COLUMN?0 U1 -1 D0394PA00X+082039Y-015504X0630Y0630R270S0
327COLUMN?1 U1 -2 A01X+081864Y-016504X1083Y0787R000S2
317COLUMN?1 U1 -2 D0394PA00X+082039Y-016504X0630Y0000R270S0
327COLUMN?2 U1 -3 A01X+081864Y-017504X1083Y0787R000S2
317COLUMN?2 U1 -3 D0394PA00X+082039Y-017504X0630Y0000R270S0
327COLUMN?4 U1 -4 A01X+081864Y-018504X1083Y0787R000S2
317COLUMN?4 U1 -4 D0394PA00X+082039Y-018504X0630Y0000R270S0
327SDA U1 -5 A01X+081864Y-019504X1083Y0787R000S2
317SDA U1 -5 D0394PA00X+082039Y-019504X0630Y0000R270S0
327SCL U1 -6 A01X+081864Y-020504X1083Y0787R000S2
317SCL U1 -6 D0394PA00X+082039Y-020504X0630Y0000R270S0
327SLASH}TX-PAD7) U1 -7 A01X+081864Y-021504X1083Y0787R000S2
317SLASH}TX-PAD7) U1 -7 D0394PA00X+082039Y-021504X0630Y0000R270S0
317ROW?2 U1 -8 D0394PA00X+088039Y-021504X0630Y0000R270S0
327ROW?2 U1 -8 A01X+088228Y-021504X1083Y0787R000S2
317ROW?1 U1 -9 D0394PA00X+088039Y-020504X0630Y0000R270S0
327ROW?1 U1 -9 A01X+088228Y-020504X1083Y0787R000S2
317ROW?0 U1 -10 D0394PA00X+088039Y-019504X0630Y0000R270S0
327ROW?0 U1 -10 A01X+088228Y-019504X1083Y0787R000S2
317SH}MOSI-PAD11) U1 -11 D0394PA00X+088039Y-018504X0630Y0000R270S0
327SH}MOSI-PAD11) U1 -11 A01X+088228Y-018504X1083Y0787R000S2
317+3V3 U1 -12 D0394PA00X+088039Y-017504X0630Y0000R270S0
327+3V3 U1 -12 A01X+088228Y-017504X1083Y0787R000S2
317GND U1 -13 D0394PA00X+088039Y-016504X0630Y0000R270S0
327GND U1 -13 A01X+088228Y-016504X1083Y0787R000S2
317VCC U1 -14 D0394PA00X+088039Y-015504X0630Y0000R270S0
327VCC U1 -14 A01X+088228Y-015504X1083Y0787R000S2
367N/C REF** D1260UA00X+092520Y-050394X1260Y0000R000S0
367N/C REF** D1260UA00X+059449Y-050394X1260Y0000R000S0
367N/C REF** D1260UA00X+059449Y-016929X1260Y0000R000S0
367N/C K1 D0689UA00X+059961Y-028906X0689Y0000R000S0
367N/C K1 D1575UA00X+061961Y-028906X1575Y0000R000S0
367N/C K1 D0689UA00X+063961Y-028906X0689Y0000R000S0
317COLUMN?0 K1 -1 D0591PA00X+060461Y-027906X0984Y0000R000S0
317NET-(D1-A) K1 -2 D0591PA00X+062961Y-026906X0984Y0000R000S0
367N/C K10 D0689UA00X+082465Y-028906X0689Y0000R000S0
367N/C K10 D1575UA00X+084465Y-028906X1575Y0000R000S0
367N/C K10 D0689UA00X+086465Y-028906X0689Y0000R000S0
317COLUMN?4 K10 -1 D0591PA00X+082965Y-027906X0984Y0000R000S0
317NET-(D10-A) K10 -2 D0591PA00X+085465Y-026906X0984Y0000R000S0
367N/C K7 D0689UA00X+059961Y-044654X0689Y0000R000S0
367N/C K7 D1575UA00X+061961Y-044654X1575Y0000R000S0
367N/C K7 D0689UA00X+063961Y-044654X0689Y0000R000S0
317COLUMN?0 K7 -1 D0591PA00X+060461Y-043654X0984Y0000R000S0
317NET-(D7-A) K7 -2 D0591PA00X+062961Y-042654X0984Y0000R000S0
367N/C K6 D0689UA00X+074984Y-036780X0689Y0000R000S0
367N/C K6 D1575UA00X+076984Y-036780X1575Y0000R000S0
367N/C K6 D0689UA00X+078984Y-036780X0689Y0000R000S0
317COLUMN?2 K6 -1 D0591PA00X+075484Y-035780X0984Y0000R000S0
317NET-(D6-A) K6 -2 D0591PA00X+077984Y-034780X0984Y0000R000S0
367N/C K9 D0689UA00X+074984Y-044654X0689Y0000R000S0
367N/C K9 D1575UA00X+076984Y-044654X1575Y0000R000S0
367N/C K9 D0689UA00X+078984Y-044654X0689Y0000R000S0
317COLUMN?2 K9 -1 D0591PA00X+075484Y-043654X0984Y0000R000S0
317NET-(D9-A) K9 -2 D0591PA00X+077984Y-042654X0984Y0000R000S0
367N/C K4 D0689UA00X+059961Y-036780X0689Y0000R000S0
367N/C K4 D1575UA00X+061961Y-036780X1575Y0000R000S0
367N/C K4 D0689UA00X+063961Y-036780X0689Y0000R000S0
317COLUMN?0 K4 -1 D0591PA00X+060461Y-035780X0984Y0000R000S0
317NET-(D4-A) K4 -2 D0591PA00X+062961Y-034780X0984Y0000R000S0
367N/C K8 D0689UA00X+067504Y-044654X0689Y0000R000S0
367N/C K8 D1575UA00X+069504Y-044654X1575Y0000R000S0
367N/C K8 D0689UA00X+071504Y-044654X0689Y0000R000S0
317COLUMN?1 K8 -1 D0591PA00X+068004Y-043654X0984Y0000R000S0
317NET-(D8-A) K8 -2 D0591PA00X+070504Y-042654X0984Y0000R000S0
367N/C K3 D0689UA00X+074984Y-028906X0689Y0000R000S0
367N/C K3 D1575UA00X+076984Y-028906X1575Y0000R000S0
367N/C K3 D0689UA00X+078984Y-028906X0689Y0000R000S0
317COLUMN?2 K3 -1 D0591PA00X+075484Y-027906X0984Y0000R000S0
317NET-(D3-A) K3 -2 D0591PA00X+077984Y-026906X0984Y0000R000S0
367N/C K2 D0689UA00X+067504Y-028906X0689Y0000R000S0
367N/C K2 D1575UA00X+069504Y-028906X1575Y0000R000S0
367N/C K2 D0689UA00X+071504Y-028906X0689Y0000R000S0
317COLUMN?1 K2 -1 D0591PA00X+068004Y-027906X0984Y0000R000S0
317NET-(D2-A) K2 -2 D0591PA00X+070504Y-026906X0984Y0000R000S0
367N/C K5 D0689UA00X+067504Y-036780X0689Y0000R000S0
367N/C K5 D1575UA00X+069504Y-036780X1575Y0000R000S0
367N/C K5 D0689UA00X+071504Y-036780X0689Y0000R000S0
317COLUMN?1 K5 -1 D0591PA00X+068004Y-035780X0984Y0000R000S0
317NET-(D5-A) K5 -2 D0591PA00X+070504Y-034780X0984Y0000R000S0
317ROW?2 D7 -1 D0315PA00X+065748Y-045669X0630Y0630R270S0
317NET-(D7-A) D7 -2 D0315PA00X+065748Y-042669X0630Y0630R270S0
317ROW?1 D5 -1 D0315PA00X+073228Y-037795X0630Y0630R270S0
317NET-(D5-A) D5 -2 D0315PA00X+073228Y-034795X0630Y0630R270S0
317ROW?2 D9 -1 D0315PA00X+080709Y-045669X0630Y0630R270S0
317NET-(D9-A) D9 -2 D0315PA00X+080709Y-042669X0630Y0630R270S0
317ROW?0 D1 -1 D0315PA00X+065748Y-029921X0630Y0630R270S0
317NET-(D1-A) D1 -2 D0315PA00X+065748Y-026921X0630Y0630R270S0
317ROW?1 D4 -1 D0315PA00X+065748Y-037795X0630Y0630R270S0
317NET-(D4-A) D4 -2 D0315PA00X+065748Y-034795X0630Y0630R270S0
317ROW?2 D8 -1 D0315PA00X+073228Y-045669X0630Y0630R270S0
317NET-(D8-A) D8 -2 D0315PA00X+073228Y-042669X0630Y0630R270S0
317ROW?0 D2 -1 D0315PA00X+073228Y-029921X0630Y0630R270S0
317NET-(D2-A) D2 -2 D0315PA00X+073228Y-026921X0630Y0630R270S0
317ROW?1 D6 -1 D0315PA00X+080709Y-037795X0630Y0630R270S0
317NET-(D6-A) D6 -2 D0315PA00X+080709Y-034795X0630Y0630R270S0
317ROW?0 D10 -1 D0315PA00X+088189Y-029921X0630Y0630R270S0
317NET-(D10-A) D10 -2 D0315PA00X+088189Y-026921X0630Y0630R270S0
317ROW?0 D3 -1 D0315PA00X+080709Y-029921X0630Y0630R270S0
317NET-(D3-A) D3 -2 D0315PA00X+080709Y-026921X0630Y0630R270S0
999

View file

@ -0,0 +1,22 @@
Designator,Mid X,Mid Y,Rotation,Layer
D1,167.0,-72.19,90.0,bottom
D10,224.0,-72.19,90.0,bottom
D2,186.0,-72.19,90.0,bottom
D3,205.0,-72.19,90.0,bottom
D4,167.0,-92.19,90.0,bottom
D5,186.0,-92.19,90.0,bottom
D6,205.0,-92.19,90.0,bottom
D7,167.0,-112.19,90.0,bottom
D8,186.0,-112.19,90.0,bottom
D9,205.0,-112.19,90.0,bottom
K1,157.38,-71.255,0.0,top
K10,214.54,-71.255,0.0,top
K2,176.54,-71.255,0.0,top
K3,195.54,-71.255,0.0,top
K4,157.38,-91.255,0.0,top
K5,176.54,-91.255,0.0,top
K6,195.54,-91.255,0.0,top
K7,157.38,-111.255,0.0,top
K8,176.54,-111.255,0.0,top
K9,195.54,-111.255,0.0,top
U1,216.0175,-47.0,0.0,top
1 Designator Mid X Mid Y Rotation Layer
2 D1 167.0 -72.19 90.0 bottom
3 D10 224.0 -72.19 90.0 bottom
4 D2 186.0 -72.19 90.0 bottom
5 D3 205.0 -72.19 90.0 bottom
6 D4 167.0 -92.19 90.0 bottom
7 D5 186.0 -92.19 90.0 bottom
8 D6 205.0 -92.19 90.0 bottom
9 D7 167.0 -112.19 90.0 bottom
10 D8 186.0 -112.19 90.0 bottom
11 D9 205.0 -112.19 90.0 bottom
12 K1 157.38 -71.255 0.0 top
13 K10 214.54 -71.255 0.0 top
14 K2 176.54 -71.255 0.0 top
15 K3 195.54 -71.255 0.0 top
16 K4 157.38 -91.255 0.0 top
17 K5 176.54 -91.255 0.0 top
18 K6 195.54 -91.255 0.0 top
19 K7 157.38 -111.255 0.0 top
20 K8 176.54 -111.255 0.0 top
21 K9 195.54 -111.255 0.0 top
22 U1 216.0175 -47.0 0.0 top

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,30 @@
import board
from kmk.kmk_keyboard import KMKKeyboard
from kmk.scanners.keypad import KeysScanner
from kmk.keys import KC
from kmk.modules.macros import Press, Release, Tap, Macros
from kmk.scanners import DiodeOrientation
keyboard = KMKKeyboard()
col_pins = (board.GP26, board.GP27, board.GP28, board.GP29)
row_pins = (board.GP4, board.GP2, board.GP1)
diode_orientation = DiodeOrientation.COL2ROW
# Define your pins here!
PINS = [board.D3, board.D4, board.D2, board.D1, board.D4, board.D2, board.D1, board.D4, board.D2, board.D1]
# Here you define the buttons corresponding to the pins
# Look here for keycodes: https://github.com/KMKfw/kmk_firmware/blob/main/docs/en/keycodes.md
# And here for macros: https://github.com/KMKfw/kmk_firmware/blob/main/docs/en/macros.md
keyboard.keymap = [
[KC.Q, KC.W, KC.E, KC.R,
KC.A, KC.S, KC.D,
KC.Z, KC.X, KC.C]
]
# Start kmk!
if __name__ == '__main__':
keyboard.go()