Merge pull request #613 from sz6084/main

Add Sammie's Scarapad
This commit is contained in:
Alex Ren 2025-03-12 11:14:43 -04:00 committed by GitHub
commit 1903e3e575
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 21593 additions and 0 deletions

Binary file not shown.

View file

@ -0,0 +1,40 @@
# You import all the IOs of your board
import board
# These are imports from the kmk library
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
# This is the main instance of your keyboard
keyboard = KMKKeyboard()
# Add the macro extension
macros = Macros()
keyboard.modules.append(macros)
# Define your pins here!
#PINS = [board.D3, board.D4, board.D2, board.D1]
keyboard.col_pins = (board.D0, board.D1, board.D2, board.D3)
keyboard.row_pins = (board.D7, board.D8, board.D9, board.D10)
# Tell kmk we are not using a key matrix
#keyboard.matrix = KeysScanner(
# pins=PINS,
# value_when_pressed=False,
#)
# 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.NLCK, KC.P7, KC.P8, KC.P9, KC.MEDIA_PREV_TRACK,
KC.P4, KC.P5, KC.P6, KC.MEDIA_PLAY_PAUSE,
KC.P1, KC.P2, KC.P3, KC.MEDIA_NEXT_TRACK,
KC.P0, KC.PDOT, KC.PENT] # Media keys prev/next are windows-specific
]
# Start kmk!
if __name__ == '__main__':
keyboard.go()

View file

@ -0,0 +1,4 @@
(fp_lib_table
(version 7)
(lib (name "OPL")(type "KiCad")(uri "${KIPRJMOD}/OPL_Kicad_Library/Seeed Studio XIAO Series Library")(options "")(descr ""))
)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,596 @@
{
"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.005,
"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": "hackpad.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": "hackpad.step",
"svg": "",
"vrml": ""
},
"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
},
{
"group_by": false,
"label": "#",
"name": "${ITEM_NUMBER}",
"show": false
},
{
"group_by": false,
"label": "Description",
"name": "Description",
"show": false
}
],
"filter_string": "",
"group_symbols": true,
"name": "",
"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": [
[
"2dd82d7e-3706-47df-b4ac-af9f2b8d9656",
"Root"
]
],
"text_variables": {}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,4 @@
(sym_lib_table
(version 7)
(lib (name "OPL")(type "KiCad")(uri "${KIPRJMOD}/OPL_Kicad_Library/Seeed Studio XIAO Series Library/Seeed_Studio_XIAO_Series.kicad_sym")(options "")(descr ""))
)

View file

@ -0,0 +1,35 @@
# Sammie's Chonkpad
A macropad I think might be somewhat chonky
Note: I did not include the OPL submodule + other stuff, you can see https://github.com/sz6084/hackpad-self for the full repository.
![Hackpad-case v12](https://github.com/user-attachments/assets/5aa71cc5-84b1-45f7-84d2-9d4e23bbaadc)
### Inspiration
I wanted to create a macropad for the keys I lost when i moved from daily-driving a laptop to a PC. Specifically, keys like Rewind, Play/Pause, and Next. These keys were not part of my laptop's function key alternates-they were dedicated buttons which I missed since my current keyboard, a (surprisingly decent and fully-sized) membrane keyboard, only had function keys with no dedicated media buttons. This is definitely not something everyone agrees with (and I find binding my function keys would be too tedious, especially since my old laptop did not have these bound to function keys anyways). It has 16 switches (numpad functions too!), 1 rp2040, and no LEDs (I don't want the hassle and my membrane keyboard doesn't have it anyways, thought RGB in a future macropad would be cool). Something else I might consider is using Choc v2 switches but since the guide used Cherry MX switches I decided to do the same.
### Challenge
I had never designed a macropad before, let alone use Fusion360 or KiCAD at all. I followed the online guide (thanks @Cyao but please update it!) and consulted my trusty friend who had more experience than I did. I also asked questions in the Hack Club Slack.
### Specifications
BOM:
- 16x Cherry MX switches
- 16x 1N4148 diodes
- 1x XIAO RP2040
- 16x Blank DSA keycaps
- 4x M3x16 Bolt
- 4x M3 Heatset
Others:
- KMK firmware
- Top_Plate.stl
- Bottom_Case.stl
Schematic | PCB | Case
:-------------------------:|:-------------------------:|:-------------------------:|
![image](https://github.com/user-attachments/assets/377f4dae-6c65-4e2d-9600-ef55ea8351d8) | ![image](https://github.com/user-attachments/assets/f171720a-bc69-4301-b0b4-cf3f069113da) | ![Hackpad-case v13](https://github.com/user-attachments/assets/f433e493-c04b-4526-92c6-a2f8bdb94357)

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,148 @@
P CODE 00
P UNITS CUST 0
P arrayDim N
317ROW2 D11 -1 D0315PA00X+033750Y-042375X0630Y0630R270S0
317NET-(D11-A) D11 -2 D0315PA00X+033750Y-039375X0630Y0630R270S0
317ROW3 D8 -1 D0315PA00X+022500Y-049875X0630Y0630R270S0
317NET-(D8-A) D8 -2 D0315PA00X+022500Y-046875X0630Y0630R270S0
367N/C SW4 D0669UA00X+013000Y-040313X0669Y0000R000S0
367N/C SW4 D1575UA00X+015000Y-040313X1575Y0000R000S0
367N/C SW4 D0669UA00X+017000Y-040313X0669Y0000R000S0
317COL0 SW4 -1 D0591PA00X+016000Y-038313X0866Y0000R000S0
317NET-(D4-A) SW4 -2 D0591PA00X+013500Y-039313X0866Y0000R000S0
367N/C SW14 D0669UA00X+035500Y-032813X0669Y0000R000S0
367N/C SW14 D1575UA00X+037500Y-032813X1575Y0000R000S0
367N/C SW14 D0669UA00X+039500Y-032813X0669Y0000R000S0
317COL3 SW14 -1 D0591PA00X+038500Y-030813X0866Y0000R000S0
317NET-(D14-A) SW14 -2 D0591PA00X+036000Y-031813X0866Y0000R000S0
317ROW1 D2 -1 D0315PA00X+018750Y-027375X0630Y0630R270S0
317NET-(D2-A) D2 -2 D0315PA00X+018750Y-024375X0630Y0630R270S0
317ROW0 D5 -1 D0315PA00X+026250Y-027375X0630Y0630R270S0
317NET-(D5-A) D5 -2 D0315PA00X+026250Y-024375X0630Y0630R270S0
367N/C SW5 D0669UA00X+020500Y-025313X0669Y0000R000S0
367N/C SW5 D1575UA00X+022500Y-025313X1575Y0000R000S0
367N/C SW5 D0669UA00X+024500Y-025313X0669Y0000R000S0
317COL1 SW5 -1 D0591PA00X+023500Y-023313X0866Y0000R000S0
317NET-(D5-A) SW5 -2 D0591PA00X+021000Y-024313X0866Y0000R000S0
367N/C SW6 D0669UA00X+020500Y-032813X0669Y0000R000S0
367N/C SW6 D1575UA00X+022500Y-032813X1575Y0000R000S0
367N/C SW6 D0669UA00X+024500Y-032813X0669Y0000R000S0
317COL1 SW6 -1 D0591PA00X+023500Y-030813X0866Y0000R000S0
317NET-(D6-A) SW6 -2 D0591PA00X+021000Y-031813X0866Y0000R000S0
367N/C SW8 D1201UA00X+014065Y-045057X1201Y0000R000S0
367N/C SW8 D1575UA00X+014065Y-051057X1575Y0000R000S0
367N/C SW8 D0669UA00X+016750Y-047813X0669Y0000R000S0
367N/C SW8 D1575UA00X+018750Y-047813X1575Y0000R000S0
367N/C SW8 D0669UA00X+020750Y-047813X0669Y0000R000S0
367N/C SW8 D1201UA00X+023435Y-045057X1201Y0000R000S0
367N/C SW8 D1575UA00X+023435Y-051057X1575Y0000R000S0
317COL1 SW8 -1 D0591PA00X+019750Y-045813X0866Y0000R000S0
317NET-(D8-A) SW8 -2 D0591PA00X+017250Y-046813X0866Y0000R000S0
367N/C SW16 D0669UA00X+035500Y-047813X0669Y0000R000S0
367N/C SW16 D1575UA00X+037500Y-047813X1575Y0000R000S0
367N/C SW16 D0669UA00X+039500Y-047813X0669Y0000R000S0
317COL3 SW16 -1 D0591PA00X+038500Y-045813X0866Y0000R000S0
317NET-(D16-A) SW16 -2 D0591PA00X+036000Y-046813X0866Y0000R000S0
317ROW3 D12 -1 D0315PA00X+033750Y-049875X0630Y0630R270S0
317NET-(D12-A) D12 -2 D0315PA00X+033750Y-046875X0630Y0630R270S0
317ROW1 D10 -1 D0315PA00X+033750Y-034875X0630Y0630R270S0
317NET-(D10-A) D10 -2 D0315PA00X+033750Y-031875X0630Y0630R270S0
317ROW0 D9 -1 D0315PA00X+033750Y-027375X0630Y0630R270S0
317NET-(D9-A) D9 -2 D0315PA00X+033750Y-024375X0630Y0630R270S0
367N/C SW13 D0669UA00X+035500Y-025313X0669Y0000R000S0
367N/C SW13 D1575UA00X+037500Y-025313X1575Y0000R000S0
367N/C SW13 D0669UA00X+039500Y-025313X0669Y0000R000S0
317COL3 SW13 -1 D0591PA00X+038500Y-023313X0866Y0000R000S0
317NET-(D13-A) SW13 -2 D0591PA00X+036000Y-024313X0866Y0000R000S0
367N/C SW3 D0669UA00X+013000Y-032813X0669Y0000R000S0
367N/C SW3 D1575UA00X+015000Y-032813X1575Y0000R000S0
367N/C SW3 D0669UA00X+017000Y-032813X0669Y0000R000S0
317COL0 SW3 -1 D0591PA00X+016000Y-030813X0866Y0000R000S0
317NET-(D3-A) SW3 -2 D0591PA00X+013500Y-031813X0866Y0000R000S0
317ROW0 D1 -1 D0315PA00X+018750Y-019688X0630Y0630R270S0
317NET-(D1-A) D1 -2 D0315PA00X+018750Y-016688X0630Y0630R270S0
317ROW0 D13 -1 D0315PA00X+041250Y-027375X0630Y0630R270S0
317NET-(D13-A) D13 -2 D0315PA00X+041250Y-024375X0630Y0630R270S0
317ROW1 D14 -1 D0315PA00X+041250Y-034875X0630Y0630R270S0
317NET-(D14-A) D14 -2 D0315PA00X+041250Y-031875X0630Y0630R270S0
317ROW2 D7 -1 D0315PA00X+026250Y-042375X0630Y0630R270S0
317NET-(D7-A) D7 -2 D0315PA00X+026250Y-039375X0630Y0630R270S0
367N/C SW12 D0669UA00X+028000Y-047813X0669Y0000R000S0
367N/C SW12 D1575UA00X+030000Y-047813X1575Y0000R000S0
367N/C SW12 D0669UA00X+032000Y-047813X0669Y0000R000S0
317COL2 SW12 -1 D0591PA00X+031000Y-045813X0866Y0000R000S0
317NET-(D12-A) SW12 -2 D0591PA00X+028500Y-046813X0866Y0000R000S0
367N/C SW9 D0669UA00X+028000Y-025313X0669Y0000R000S0
367N/C SW9 D1575UA00X+030000Y-025313X1575Y0000R000S0
367N/C SW9 D0669UA00X+032000Y-025313X0669Y0000R000S0
317COL2 SW9 -1 D0591PA00X+031000Y-023313X0866Y0000R000S0
317NET-(D9-A) SW9 -2 D0591PA00X+028500Y-024313X0866Y0000R000S0
367N/C SW2 D0669UA00X+013000Y-025313X0669Y0000R000S0
367N/C SW2 D1575UA00X+015000Y-025313X1575Y0000R000S0
367N/C SW2 D0669UA00X+017000Y-025313X0669Y0000R000S0
317COL0 SW2 -1 D0591PA00X+016000Y-023313X0866Y0000R000S0
317NET-(D2-A) SW2 -2 D0591PA00X+013500Y-024313X0866Y0000R000S0
317ROW1 D6 -1 D0315PA00X+026250Y-034875X0630Y0630R270S0
317NET-(D6-A) D6 -2 D0315PA00X+026250Y-031875X0630Y0630R270S0
367N/C SW11 D0669UA00X+028000Y-040313X0669Y0000R000S0
367N/C SW11 D1575UA00X+030000Y-040313X1575Y0000R000S0
367N/C SW11 D0669UA00X+032000Y-040313X0669Y0000R000S0
317COL2 SW11 -1 D0591PA00X+031000Y-038313X0866Y0000R000S0
317NET-(D11-A) SW11 -2 D0591PA00X+028500Y-039313X0866Y0000R000S0
317ROW3 D4 -1 D0315PA00X+018750Y-042375X0630Y0630R270S0
317NET-(D4-A) D4 -2 D0315PA00X+018750Y-039375X0630Y0630R270S0
317ROW2 D3 -1 D0315PA00X+018750Y-034875X0630Y0630R270S0
317NET-(D3-A) D3 -2 D0315PA00X+018750Y-031875X0630Y0630R270S0
317ROW3 D16 -1 D0315PA00X+041250Y-049875X0630Y0630R270S0
317NET-(D16-A) D16 -2 D0315PA00X+041250Y-046875X0630Y0630R270S0
367N/C SW15 D0669UA00X+035500Y-040313X0669Y0000R000S0
367N/C SW15 D1575UA00X+037500Y-040313X1575Y0000R000S0
367N/C SW15 D0669UA00X+039500Y-040313X0669Y0000R000S0
317COL3 SW15 -1 D0591PA00X+038500Y-038313X0866Y0000R000S0
317NET-(D15-A) SW15 -2 D0591PA00X+036000Y-039313X0866Y0000R000S0
327COL0 U1 -1 A01X+034359Y-014000X0957Y0600R180S2
317COL0 U1 -1 D0350PA00X+034688Y-014000X0600Y0000R180S0
327COL1 U1 -2 A01X+034359Y-015000X0957Y0600R180S2
317COL1 U1 -2 D0350PA00X+034688Y-015000X0600Y0000R180S0
327COL2 U1 -3 A01X+034359Y-016000X0957Y0600R180S2
317COL2 U1 -3 D0350PA00X+034688Y-016000X0600Y0000R180S0
327COL3 U1 -4 A01X+034359Y-017000X0957Y0600R180S2
317COL3 U1 -4 D0350PA00X+034688Y-017000X0600Y0000R180S0
327LASH}SDA-PAD5) U1 -5 A01X+034359Y-018000X0957Y0600R180S2
317LASH}SDA-PAD5) U1 -5 D0350PA00X+034688Y-018000X0600Y0000R180S0
327LASH}SCL-PAD6) U1 -6 A01X+034359Y-019000X0957Y0600R180S2
317LASH}SCL-PAD6) U1 -6 D0350PA00X+034688Y-019000X0600Y0000R180S0
327SLASH}TX-PAD7) U1 -7 A01X+034359Y-020000X0957Y0600R180S2
317SLASH}TX-PAD7) U1 -7 D0350PA00X+034688Y-020000X0600Y0000R180S0
317ROW0 U1 -8 D0350PA00X+040688Y-020000X0600Y0000R000S0
327ROW0 U1 -8 A01X+041016Y-020000X0957Y0600R000S2
317ROW1 U1 -9 D0350PA00X+040688Y-019000X0600Y0000R000S0
327ROW1 U1 -9 A01X+041016Y-019000X0957Y0600R000S2
317ROW2 U1 -10 D0350PA00X+040688Y-018000X0600Y0000R000S0
327ROW2 U1 -10 A01X+041016Y-018000X0957Y0600R000S2
317ROW3 U1 -11 D0350PA00X+040688Y-017000X0600Y0000R000S0
327ROW3 U1 -11 A01X+041016Y-017000X0957Y0600R000S2
317(U1-3V3-PAD12) U1 -12 D0350PA00X+040688Y-016000X0600Y0000R000S0
327(U1-3V3-PAD12) U1 -12 A01X+041016Y-016000X0957Y0600R000S2
317GND U1 -13 D0350PA00X+040688Y-015000X0600Y0000R000S0
327GND U1 -13 A01X+041016Y-015000X0957Y0600R000S2
317+5V U1 -14 D0350PA00X+040688Y-014000X0600Y0000R000S0
327+5V U1 -14 A01X+041016Y-014000X0957Y0600R000S2
367N/C SW1 D0669UA00X+013000Y-017813X0669Y0000R000S0
367N/C SW1 D1575UA00X+015000Y-017813X1575Y0000R000S0
367N/C SW1 D0669UA00X+017000Y-017813X0669Y0000R000S0
317COL0 SW1 -1 D0591PA00X+016000Y-015813X0866Y0000R000S0
317NET-(D1-A) SW1 -2 D0591PA00X+013500Y-016813X0866Y0000R000S0
367N/C SW10 D0669UA00X+028000Y-032813X0669Y0000R000S0
367N/C SW10 D1575UA00X+030000Y-032813X1575Y0000R000S0
367N/C SW10 D0669UA00X+032000Y-032813X0669Y0000R000S0
317COL2 SW10 -1 D0591PA00X+031000Y-030813X0866Y0000R000S0
317NET-(D10-A) SW10 -2 D0591PA00X+028500Y-031813X0866Y0000R000S0
367N/C SW7 D0669UA00X+020500Y-040313X0669Y0000R000S0
367N/C SW7 D1575UA00X+022500Y-040313X1575Y0000R000S0
367N/C SW7 D0669UA00X+024500Y-040313X0669Y0000R000S0
317COL1 SW7 -1 D0591PA00X+023500Y-038313X0866Y0000R000S0
317NET-(D7-A) SW7 -2 D0591PA00X+021000Y-039313X0866Y0000R000S0
317ROW2 D15 -1 D0315PA00X+041250Y-042375X0630Y0630R270S0
317NET-(D15-A) D15 -2 D0315PA00X+041250Y-039375X0630Y0630R270S0
999