diff --git a/hackpads/HackPanel/Assets/case.png b/hackpads/HackPanel/Assets/case.png new file mode 100644 index 0000000000..62d670ddd3 Binary files /dev/null and b/hackpads/HackPanel/Assets/case.png differ diff --git a/hackpads/HackPanel/Assets/pcb.png b/hackpads/HackPanel/Assets/pcb.png new file mode 100644 index 0000000000..979e314a36 Binary files /dev/null and b/hackpads/HackPanel/Assets/pcb.png differ diff --git a/hackpads/HackPanel/Assets/schematic.png b/hackpads/HackPanel/Assets/schematic.png new file mode 100644 index 0000000000..0bae32740f Binary files /dev/null and b/hackpads/HackPanel/Assets/schematic.png differ diff --git a/hackpads/HackPanel/CAD/HackPanel 10.33.51 AM.3mf b/hackpads/HackPanel/CAD/HackPanel 10.33.51 AM.3mf new file mode 100644 index 0000000000..84984867a8 Binary files /dev/null and b/hackpads/HackPanel/CAD/HackPanel 10.33.51 AM.3mf differ diff --git a/hackpads/HackPanel/CAD/HackPanelAssembled.3mf b/hackpads/HackPanel/CAD/HackPanelAssembled.3mf new file mode 100644 index 0000000000..5212dc9325 Binary files /dev/null and b/hackpads/HackPanel/CAD/HackPanelAssembled.3mf differ diff --git a/hackpads/HackPanel/Firmware/main.py b/hackpads/HackPanel/Firmware/main.py new file mode 100644 index 0000000000..f07c8e1a44 --- /dev/null +++ b/hackpads/HackPanel/Firmware/main.py @@ -0,0 +1,50 @@ +import board +from kmk.kmk_keyboard import KMKKeyboard +from kmk.keys import KC +from kmk.modules.encoder import EncoderHandler +from kmk.handlers.sequences import send_string +from kmk.modules.layers import Layers + +keyboard = KMKKeyboard() +encoder_handler = EncoderHandler() +layers = Layers() + +keyboard.modules = [layers, encoder_handler] + +keyboard.col_pins = [] +keyboard.row_pins = [] +keyboard.direct_pins = [ + board.GPIO26, + board.GPIO27, + board.GPIO28, + board.GPIO29, + board.GPIO6, + board.GPIO7, +] + +encoder_handler.pins = ((board.GPIO2, board.GPIO3, board.GPIO7, False),) + +_______ = KC.TRNS +XXXXXXX = KC.NO + +MEDIA_MUTE = KC.MUTE +MEDIA_VOLUP = KC.AUDIO_VOL_UP +MEDIA_VOLDN = KC.AUDIO_VOL_DOWN + +keyboard.keymap = [ + [ + KC.W, + KC.A, + KC.S, + KC.D, + KC.SPACE, + MEDIA_MUTE + ] +] + +encoder_handler.map = [ + ((MEDIA_VOLUP, MEDIA_VOLDN, MEDIA_MUTE),) +] + +if __name__ == '__main__': + keyboard.go() \ No newline at end of file diff --git a/hackpads/HackPanel/PCB/HackPanel.kicad_pcb b/hackpads/HackPanel/PCB/HackPanel.kicad_pcb new file mode 100644 index 0000000000..af050e1e93 --- /dev/null +++ b/hackpads/HackPanel/PCB/HackPanel.kicad_pcb @@ -0,0 +1,3826 @@ +(kicad_pcb + (version 20240108) + (generator "pcbnew") + (generator_version "8.0") + (general + (thickness 1.6) + (legacy_teardrops no) + ) + (paper "A4") + (layers + (0 "F.Cu" signal) + (31 "B.Cu" signal) + (32 "B.Adhes" user "B.Adhesive") + (33 "F.Adhes" user "F.Adhesive") + (34 "B.Paste" user) + (35 "F.Paste" user) + (36 "B.SilkS" user "B.Silkscreen") + (37 "F.SilkS" user "F.Silkscreen") + (38 "B.Mask" user) + (39 "F.Mask" user) + (40 "Dwgs.User" user "User.Drawings") + (41 "Cmts.User" user "User.Comments") + (42 "Eco1.User" user "User.Eco1") + (43 "Eco2.User" user "User.Eco2") + (44 "Edge.Cuts" user) + (45 "Margin" user) + (46 "B.CrtYd" user "B.Courtyard") + (47 "F.CrtYd" user "F.Courtyard") + (48 "B.Fab" user) + (49 "F.Fab" user) + (50 "User.1" user) + (51 "User.2" user) + (52 "User.3" user) + (53 "User.4" user) + (54 "User.5" user) + (55 "User.6" user) + (56 "User.7" user) + (57 "User.8" user) + (58 "User.9" user) + ) + (setup + (pad_to_mask_clearance 0) + (allow_soldermask_bridges_in_footprints no) + (pcbplotparams + (layerselection 0x00010fc_ffffffff) + (plot_on_all_layers_selection 0x0000000_00000000) + (disableapertmacros no) + (usegerberextensions no) + (usegerberattributes yes) + (usegerberadvancedattributes yes) + (creategerberjobfile yes) + (dashed_line_dash_ratio 12.000000) + (dashed_line_gap_ratio 3.000000) + (svgprecision 4) + (plotframeref no) + (viasonmask no) + (mode 1) + (useauxorigin no) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15.000000) + (pdf_front_fp_property_popups yes) + (pdf_back_fp_property_popups yes) + (dxfpolygonmode yes) + (dxfimperialunits yes) + (dxfusepcbnewfont yes) + (psnegative no) + (psa4output no) + (plotreference yes) + (plotvalue yes) + (plotfptext yes) + (plotinvisibletext no) + (sketchpadsonfab no) + (subtractmaskfromsilk no) + (outputformat 1) + (mirror no) + (drillshape 1) + (scaleselection 1) + (outputdirectory "") + ) + ) + (net 0 "") + (footprint "Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm" + (layer "F.Cu") + (uuid "14f4d174-4b1d-41b8-91f1-f61b522282a0") + (at 161.25 69) + (descr "Alps rotary encoder, EC12E... with switch, vertical shaft, http://www.alps.com/prod/info/E/HTML/Encoder/Incremental/EC11/EC11E15204A3.html") + (tags "rotary encoder") + (property "Reference" "SW1" + (at 2.8 -4.7 0) + (layer "F.SilkS") + (hide yes) + (uuid "4d118a5b-ff9a-4c16-adb1-e6d827d61f3d") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "RotaryEncoder_Switch" + (at 7.5 10.4 0) + (layer "F.Fab") + (hide yes) + (uuid "a6ab85d5-0dc8-40b0-b1c1-94c1500e67bb") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "c9b9c29e-c2a2-466d-9103-00f792ba5dce") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "090e1836-f3ad-4e8d-ba0c-7d7ad10de07d") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Rotary encoder, dual channel, incremental quadrate outputs, with switch" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "1a321147-186b-4546-8f27-af1df2054f91") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (attr through_hole) + (fp_line + (start -0.3 -1.6) + (end 0.3 -1.6) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "664286c5-5aa0-4bfb-a170-01ad6f4a31e1") + ) + (fp_line + (start 0 -1.3) + (end -0.3 -1.6) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "6999fee7-0249-40b7-aa35-d2a7042c31c8") + ) + (fp_line + (start 0.3 -1.6) + (end 0 -1.3) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "8964d7e9-43b9-40b3-876e-f8be8ed4e34f") + ) + (fp_line + (start 1.4 -3.4) + (end 1.4 8.4) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "d7877c71-2f29-4c61-8107-925f7d29cd81") + ) + (fp_line + (start 5.5 -3.4) + (end 1.4 -3.4) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "6ff5196b-2ffa-4b79-813c-d1372d5c9903") + ) + (fp_line + (start 5.5 8.4) + (end 1.4 8.4) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "0bab69e9-3d77-4ab3-809c-6127f34045c6") + ) + (fp_line + (start 7 2.5) + (end 8 2.5) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "8934eb45-e902-4f91-84bd-f89ec12fc84f") + ) + (fp_line + (start 7.5 2) + (end 7.5 3) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "215c2c6e-ef1a-4fe6-bbf0-ca8b136a4a0c") + ) + (fp_line + (start 9.5 -3.4) + (end 13.6 -3.4) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "2c4b36cb-cb8c-462a-99c8-a2b9ea26fafd") + ) + (fp_line + (start 13.6 -3.4) + (end 13.6 -1) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "ee9ab042-69f0-4552-8462-dfedbcaa8b61") + ) + (fp_line + (start 13.6 1.2) + (end 13.6 3.8) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "aca21ce8-6f56-4fe9-89db-42788d2c16ae") + ) + (fp_line + (start 13.6 6) + (end 13.6 8.4) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "0b981339-a898-4636-be24-0a1818923615") + ) + (fp_line + (start 13.6 8.4) + (end 9.5 8.4) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "96ca51d3-957a-4a40-839e-b6b5b8c13c2e") + ) + (fp_circle + (center 7.5 2.5) + (end 10.5 2.5) + (stroke + (width 0.12) + (type solid) + ) + (fill none) + (layer "F.SilkS") + (uuid "5c9c4e62-7b79-4ce5-93e7-9d976be1d877") + ) + (fp_line + (start -1.5 -4.6) + (end -1.5 9.6) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "76f99ea0-1e79-41ff-bb64-330707cfb36f") + ) + (fp_line + (start -1.5 -4.6) + (end 16 -4.6) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "b9728783-025e-4153-92cb-dba7581ae71a") + ) + (fp_line + (start 16 9.6) + (end -1.5 9.6) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "184265ee-7077-4804-8a40-e00f9dd4cd71") + ) + (fp_line + (start 16 9.6) + (end 16 -4.6) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "7902ce3d-87b5-48cc-8a9a-aad67d7add5f") + ) + (fp_line + (start 1.5 -2.2) + (end 2.5 -3.3) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.Fab") + (uuid "f71dc2c0-2ad6-4290-9f13-7ed72a0ec734") + ) + (fp_line + (start 1.5 8.3) + (end 1.5 -2.2) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.Fab") + (uuid "018cae38-7369-498a-b9fc-701a33416224") + ) + (fp_line + (start 2.5 -3.3) + (end 13.5 -3.3) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.Fab") + (uuid "e4e2c675-34ab-4ff5-8b85-37c04f7499c6") + ) + (fp_line + (start 4.5 2.5) + (end 10.5 2.5) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.Fab") + (uuid "e7ac103c-2e8b-4ebd-aed4-ab11867b96ac") + ) + (fp_line + (start 7.5 -0.5) + (end 7.5 5.5) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.Fab") + (uuid "069f984d-fe81-493b-b47e-013e2e94936f") + ) + (fp_line + (start 13.5 -3.3) + (end 13.5 8.3) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.Fab") + (uuid "2824c887-7d04-434c-9ca3-3a0e83bd8458") + ) + (fp_line + (start 13.5 8.3) + (end 1.5 8.3) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.Fab") + (uuid "7f8564cb-ef5e-490f-941b-58ba03e0c3ce") + ) + (fp_circle + (center 7.5 2.5) + (end 10.5 2.5) + (stroke + (width 0.12) + (type solid) + ) + (fill none) + (layer "F.Fab") + (uuid "0784ff68-79a3-409b-9335-4bf45fec6752") + ) + (pad "A" thru_hole rect + (at 0 0) + (size 2 2) + (drill 1) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "A") + (pintype "passive") + (uuid "56959e0d-094c-4a22-a416-c24c374893f2") + ) + (pad "B" thru_hole circle + (at 0 5) + (size 2 2) + (drill 1) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "B") + (pintype "passive") + (uuid "e5d66866-f795-44a6-b0bc-c545ca0e10d3") + ) + (pad "C" thru_hole circle + (at 0 2.5) + (size 2 2) + (drill 1) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "C") + (pintype "passive") + (uuid "b841ddcd-3b82-4e1e-be67-0a2a5f4b4085") + ) + (pad "MP" thru_hole rect + (at 7.5 -3.1) + (size 3.2 2) + (drill oval 2.8 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "9712a060-b96a-47d2-8dd0-288fc96af4cf") + ) + (pad "MP" thru_hole rect + (at 7.5 8.1) + (size 3.2 2) + (drill oval 2.8 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "270236ce-c2c3-4e00-bc8a-1bc8851c1f40") + ) + (pad "S1" thru_hole circle + (at 14.5 5) + (size 2 2) + (drill 1) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "S1") + (pintype "passive") + (uuid "d734c20c-69cf-4326-b156-d936558510cd") + ) + (pad "S2" thru_hole circle + (at 14.5 0) + (size 2 2) + (drill 1) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "S2") + (pintype "passive") + (uuid "03ea5df8-db80-4ea1-90ae-7e68776c4206") + ) + (model "${KICAD8_3DMODEL_DIR}/Rotary_Encoder.3dshapes/RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (layer "F.Cu") + (uuid "1a6602a7-1e6f-4ba6-b017-7fd5f7405515") + (at 171.04 88.92) + (descr "Cherry MX keyswitch, 1.00u, PCB mount, http://cherryamericas.com/wp-content/uploads/2014/12/mx_cat.pdf") + (tags "Cherry MX keyswitch 1.00u PCB") + (property "Reference" "SW6" + (at -2.54 -2.794 0) + (layer "F.SilkS") + (hide yes) + (uuid "00deb2cc-451b-49b8-9455-7cf8f3418dad") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SW_Push" + (at -2.54 12.954 0) + (layer "F.Fab") + (hide yes) + (uuid "a588611a-8996-4b86-ae12-e2fe14bcfdad") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "1d450bfe-ff9f-4fcb-8331-552b6eea8fe4") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "86234e15-ccd9-4799-a68d-e139ba9e5b6e") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Push button switch, generic, two pins" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "2fa77b7e-ea02-466e-91e4-dd67e0a5f994") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (attr through_hole) + (fp_line + (start -9.525 -1.905) + (end 4.445 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "d42310ce-da14-4607-abe0-8153ae2151c4") + ) + (fp_line + (start -9.525 12.065) + (end -9.525 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "7e57a15a-0c62-4edf-82cb-a46fc7649bc5") + ) + (fp_line + (start 4.445 -1.905) + (end 4.445 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "2f0c1d40-0aa7-45cb-8117-249e74c40bd2") + ) + (fp_line + (start 4.445 12.065) + (end -9.525 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "bbbc71e5-ad20-48d7-9316-ec6549618ad0") + ) + (fp_line + (start -12.065 -4.445) + (end 6.985 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "ca6668ba-da24-4dff-b7c6-d36132aaa4b0") + ) + (fp_line + (start -12.065 14.605) + (end -12.065 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "73e516a4-e190-4c5f-80c5-5f0b03470efd") + ) + (fp_line + (start 6.985 -4.445) + (end 6.985 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "c43fecbd-adb0-4d92-ba0d-f3b7e112287d") + ) + (fp_line + (start 6.985 14.605) + (end -12.065 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "6831250d-2b3d-4508-9d42-4a8d4ca5cc67") + ) + (fp_line + (start -9.14 -1.52) + (end 4.06 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "82f3dc49-653e-4945-a92b-85b7794878b7") + ) + (fp_line + (start -9.14 11.68) + (end -9.14 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "3a7bb614-366d-4b03-a35d-fbf27f584c93") + ) + (fp_line + (start 4.06 -1.52) + (end 4.06 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "b2ccf865-c197-4459-9cd2-dd9ea022c751") + ) + (fp_line + (start 4.06 11.68) + (end -9.14 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "8013beff-9989-42ce-8bc5-2e8b30d3e3d8") + ) + (fp_line + (start -8.89 -1.27) + (end 3.81 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "49f11318-131a-4b8c-a8f1-5b2deabc9050") + ) + (fp_line + (start -8.89 11.43) + (end -8.89 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "8910ac7f-e52b-45de-af04-a0e31b541ac3") + ) + (fp_line + (start 3.81 -1.27) + (end 3.81 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "abed7709-714a-4c37-b8ca-5b3da4a1e45d") + ) + (fp_line + (start 3.81 11.43) + (end -8.89 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "2023a49b-e87f-4cf3-b189-96489ede3691") + ) + (pad "" np_thru_hole circle + (at -7.62 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "1726ac27-85d4-44ee-9075-ad7e9f9a563e") + ) + (pad "" np_thru_hole circle + (at -2.54 5.08) + (size 4 4) + (drill 4) + (layers "*.Cu" "*.Mask") + (uuid "c2daa151-bc7c-4080-8e9d-81dbe66662fc") + ) + (pad "" np_thru_hole circle + (at 2.54 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "ab00bb3d-6950-4a98-962a-140a01881bc9") + ) + (pad "1" thru_hole circle + (at 0 0) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "1") + (pintype "passive") + (uuid "b2f5820f-c4a9-47cc-a577-f3bf82cfe991") + ) + (pad "2" thru_hole circle + (at -6.35 2.54) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "2") + (pintype "passive") + (uuid "58c211ef-aa47-427a-80ee-55203ab75ae5") + ) + (model "${KICAD8_3DMODEL_DIR}/Button_Switch_Keyboard.3dshapes/SW_Cherry_MX_1.00u_PCB.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal" + (layer "F.Cu") + (uuid "369a0b22-fbd2-4749-bf3f-8ca6b60cab6d") + (at 173.62 81.5 180) + (descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=7.62mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf") + (tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 7.62mm 0.25W = 1/4W length 6.3mm diameter 2.5mm") + (property "Reference" "R1" + (at 3.81 -2.37 0) + (layer "F.SilkS") + (hide yes) + (uuid "a27e2c0f-b15f-41cf-92a1-93e234f677b4") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "5k" + (at 3.81 2.37 0) + (layer "F.Fab") + (hide yes) + (uuid "93156237-68d9-4a36-952e-b075236673f9") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal" + (at 0 0 180) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "88f0e2ee-4888-4f3d-8551-6a11b5005cde") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 180) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "8d1ea2f8-9f32-4e32-85c4-997d382cf48c") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Resistor" + (at 0 0 180) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "a6bec10b-44f2-4e98-b5b8-e4ed4d3c36a2") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (attr through_hole) + (fp_line + (start 7.08 1.37) + (end 7.08 1.04) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "200db4d1-6e3c-4011-bdd3-b0ec79bc0d95") + ) + (fp_line + (start 7.08 -1.37) + (end 7.08 -1.04) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "1dd11d4c-e562-4503-838e-9dcb21e1cbfa") + ) + (fp_line + (start 0.54 1.37) + (end 7.08 1.37) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "879619bd-9c21-463a-8f11-956f3a7e51fb") + ) + (fp_line + (start 0.54 1.04) + (end 0.54 1.37) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "dff28d34-9a76-4059-86cd-09ddc5433871") + ) + (fp_line + (start 0.54 -1.04) + (end 0.54 -1.37) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "f2ac7651-fbff-48b7-ae3b-8c83102b7d62") + ) + (fp_line + (start 0.54 -1.37) + (end 7.08 -1.37) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "a412814f-330a-4ff1-8894-ae39cb9bff21") + ) + (fp_line + (start 8.67 1.5) + (end 8.67 -1.5) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "0bee8cbd-f768-472b-a65a-96a504f85be2") + ) + (fp_line + (start 8.67 -1.5) + (end -1.05 -1.5) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "faf7371a-79d7-417d-8a8a-76ea7f6370df") + ) + (fp_line + (start -1.05 1.5) + (end 8.67 1.5) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "9aa73d4d-8115-435b-9128-371c422506a1") + ) + (fp_line + (start -1.05 -1.5) + (end -1.05 1.5) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "7dcef732-4d78-44be-b1bf-edf6addfbe14") + ) + (fp_line + (start 7.62 0) + (end 6.96 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "86492c90-566c-4db5-8489-51dbf367658a") + ) + (fp_line + (start 6.96 1.25) + (end 6.96 -1.25) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "62ca5926-038f-433b-8a42-a024b5a5afe9") + ) + (fp_line + (start 6.96 -1.25) + (end 0.66 -1.25) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "b3a4d235-b907-437b-aa7b-7d729d5bbf5f") + ) + (fp_line + (start 0.66 1.25) + (end 6.96 1.25) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "c1272c41-760c-4a86-8ff4-937f17c515f8") + ) + (fp_line + (start 0.66 -1.25) + (end 0.66 1.25) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "113d26c5-e6d0-4f7e-ad98-3e677a09cdc3") + ) + (fp_line + (start 0 0) + (end 0.66 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "d8cde5ca-2d8f-4fba-92e1-9a36c39078ef") + ) + (pad "1" thru_hole circle + (at 0 0 180) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pintype "passive") + (uuid "66458e89-135d-42dc-882e-f153fed67746") + ) + (pad "2" thru_hole oval + (at 7.62 0 180) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pintype "passive") + (uuid "4631de1e-9560-4409-be6c-9080de59eec9") + ) + (model "${KICAD8_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal" + (layer "F.Cu") + (uuid "61c0557c-e6d7-4665-9351-4dad02e74e6d") + (at 113.5 63.69 -90) + (descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=7.62mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf") + (tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 7.62mm 0.25W = 1/4W length 6.3mm diameter 2.5mm") + (property "Reference" "R2" + (at 3.81 -2.37 90) + (layer "F.SilkS") + (hide yes) + (uuid "38e5704c-339c-44a4-886a-ea3fbbff13b9") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "5k" + (at 3.81 2.37 90) + (layer "F.Fab") + (hide yes) + (uuid "e376bf4b-aa37-4f70-b427-bae62e0079b9") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal" + (at 0 0 -90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "1c11c5a1-5120-4581-8d40-6e0477459347") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 -90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "d90600fe-28e4-45ca-abe2-e8968eead8c2") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Resistor" + (at 0 0 -90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "80ef2f8f-a22e-45bf-bec6-059c6f7ab538") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (attr through_hole) + (fp_line + (start 0.54 1.37) + (end 7.08 1.37) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "807b388e-f49e-4ef1-a523-052a6443295a") + ) + (fp_line + (start 7.08 1.37) + (end 7.08 1.04) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "f849a9a0-aefb-4ef5-b927-d4bfddcd1dba") + ) + (fp_line + (start 0.54 1.04) + (end 0.54 1.37) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "8f7bb452-144a-44b8-98ab-d5f2e78fe331") + ) + (fp_line + (start 0.54 -1.04) + (end 0.54 -1.37) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "b3d94e07-0af1-4463-b3f0-2c6978da9a3c") + ) + (fp_line + (start 0.54 -1.37) + (end 7.08 -1.37) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "537feeb0-b57e-4e74-8646-1bfd87896dcc") + ) + (fp_line + (start 7.08 -1.37) + (end 7.08 -1.04) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "bf47652b-2553-4a37-aec1-b429be4cb844") + ) + (fp_line + (start -1.05 1.5) + (end 8.67 1.5) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "03d426ef-f300-4234-a8ef-58a848a8611b") + ) + (fp_line + (start 8.67 1.5) + (end 8.67 -1.5) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "49d39a7e-fff6-4622-8f5e-8715ae86b294") + ) + (fp_line + (start -1.05 -1.5) + (end -1.05 1.5) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "3912a297-7365-4ada-9f00-5dbdb0bb8d4a") + ) + (fp_line + (start 8.67 -1.5) + (end -1.05 -1.5) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "ce0897be-db49-4fcf-a108-1d2d00f80228") + ) + (fp_line + (start 0.66 1.25) + (end 6.96 1.25) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "ef7c8842-31df-46ca-97c5-14437531444d") + ) + (fp_line + (start 6.96 1.25) + (end 6.96 -1.25) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "1b2627cd-4a18-4a1d-8eb9-72157dfe1e18") + ) + (fp_line + (start 0 0) + (end 0.66 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "2c9d359d-da43-4de5-8987-edbdadca3043") + ) + (fp_line + (start 7.62 0) + (end 6.96 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "d68fe686-33d2-4a36-b61b-6c2932f275bc") + ) + (fp_line + (start 0.66 -1.25) + (end 0.66 1.25) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "5c8fd694-2df3-4ed6-b3a0-6c8e6221df0d") + ) + (fp_line + (start 6.96 -1.25) + (end 0.66 -1.25) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "8af3a6d1-6229-425a-9e46-d65fafac5bdd") + ) + (pad "1" thru_hole circle + (at 0 0 270) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pintype "passive") + (uuid "f752daa2-e87b-4aca-8dff-6485ffef9257") + ) + (pad "2" thru_hole oval + (at 7.62 0 270) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pintype "passive") + (uuid "7f087aa7-8e5f-48e5-bf5c-52699caafdee") + ) + (model "${KICAD8_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Seeed Studio XIAO Series Library:XIAO-RP2040-DIP" + (layer "F.Cu") + (uuid "6b948595-0edd-4b1d-baa3-43af900af714") + (at 127 72) + (property "Reference" "U1" + (at -8.5 -12 0) + (unlocked yes) + (layer "F.SilkS") + (hide yes) + (uuid "c709506c-e0ec-465a-be90-d2466e1580eb") + (effects + (font + (size 0.635 0.635) + (thickness 0.1016) + ) + ) + ) + (property "Value" "XIAO-RP2040-DIP" + (at 0 -0.7685 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "6f918533-6abc-4538-9f12-934a68deaeef") + (effects + (font + (size 0.635 0.635) + (thickness 0.1016) + ) + ) + ) + (property "Footprint" "Seeed Studio XIAO Series Library:XIAO-RP2040-DIP" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "a9d2e230-e0ea-4c5d-871a-c6bee03cbab7") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "6d07060c-b46c-48c0-a7cb-bf1bb359b866") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "e5afa0d5-1d12-4aac-a948-238fc5b9317a") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (attr smd) + (fp_line + (start -8.89 8.509) + (end -8.89 -8.636) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "668479e5-84ad-4f9b-9a09-9ced33f26bed") + ) + (fp_line + (start -6.985 10.414) + (end 6.985 10.414) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "72e4c257-c8cf-4b1f-9d9e-f092552bd5e9") + ) + (fp_line + (start -4.495 -10.541) + (end -4.491272 -11.451272) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "1f3f7ce2-9877-4820-b68b-3530a178d543") + ) + (fp_line + (start -3.991272 -11.951) + (end 4.004 -11.951) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "bae4fc02-b9b0-45a3-84c0-0e8d672d4a1f") + ) + (fp_line + (start 4.504 -11.451) + (end 4.504 -10.541) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "831deb60-af2b-4419-b422-aa65b89d3017") + ) + (fp_line + (start 6.985 -10.541) + (end -6.985 -10.541) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.SilkS") + (uuid "56a6efad-636e-4e7c-a9fe-d0db2d96e5ba") + ) + (fp_line + (start 6.985 -10.541) + (end -6.985 -10.541) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "765eb07b-6723-4f31-b3be-94eb1a9ef9e4") + ) + (fp_line + (start 8.89 8.509) + (end 8.89 -8.636) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "54954983-978d-48ca-901b-956d69f055a0") + ) + (fp_arc + (start -8.89 -8.636) + (mid -8.332038 -9.983038) + (end -6.985 -10.541) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "d8956947-8230-4805-9848-3d2ae3e409ea") + ) + (fp_arc + (start -6.985 10.414) + (mid -8.332038 9.856038) + (end -8.89 8.509) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "a8d86ba4-2c0c-427f-9397-3630ce5848f5") + ) + (fp_arc + (start -4.491272 -11.451272) + (mid -4.344724 -11.804644) + (end -3.991272 -11.951) + (stroke + (width 0.127) + (type default) + ) + (layer "F.SilkS") + (uuid "1d709927-c8c2-4fa6-b26d-7ea862fd70b3") + ) + (fp_arc + (start 4.004 -11.951) + (mid 4.357553 -11.804553) + (end 4.504 -11.451) + (stroke + (width 0.127) + (type default) + ) + (layer "F.SilkS") + (uuid "03ea87c5-5fa0-42d6-a32b-831b4b8d1558") + ) + (fp_arc + (start 6.985 -10.541) + (mid 8.332038 -9.983038) + (end 8.89 -8.636) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "fc5894a4-6643-40c0-b280-267bac9972d4") + ) + (fp_arc + (start 8.89 8.509) + (mid 8.332038 9.856038) + (end 6.985 10.414) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "703b3f44-1552-4d22-a5b2-5ff52c1269cc") + ) + (fp_circle + (center -8.95 -10.3) + (end -8.95 -10.554) + (stroke + (width 0.5) + (type solid) + ) + (fill solid) + (layer "F.SilkS") + (uuid "02effaf6-0b73-44f1-98a9-39dbab6f7faa") + ) + (fp_circle + (center -7.807 -9.42) + (end -7.807 -9.674) + (stroke + (width 0.5) + (type solid) + ) + (fill solid) + (layer "F.SilkS") + (uuid "0c1cdf75-233c-4890-bf9e-e90e305900ed") + ) + (fp_rect + (start -8.9 -10.55) + (end 8.9 10.425) + (stroke + (width 0.05) + (type default) + ) + (fill none) + (layer "F.CrtYd") + (uuid "58964375-ff88-4394-b809-16471b5336a6") + ) + (fp_rect + (start -8.9 -10.55) + (end 8.9 10.425) + (stroke + (width 0.1) + (type default) + ) + (fill none) + (layer "F.Fab") + (uuid "4af64805-048c-4e2e-aa6d-020092f8e232") + ) + (fp_circle + (center -7.804 -9.426) + (end -7.804 -9.68) + (stroke + (width 0.5) + (type solid) + ) + (fill solid) + (layer "F.Fab") + (uuid "8dd31b79-65b9-47a5-942d-fd8584bab689") + ) + (pad "1" smd roundrect + (at -8.455 -7.62 180) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (pinfunction "GPIO26/ADC0/A0") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "ce4b92b2-847c-476c-81f6-432475956257") + ) + (pad "1" thru_hole circle + (at -7.62 -7.62 180) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "GPIO26/ADC0/A0") + (pintype "passive") + (uuid "7ac6aff9-3e25-4a47-aba3-40c82e74ed16") + ) + (pad "2" smd roundrect + (at -8.455 -5.08 180) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (pinfunction "GPIO27/ADC1/A1") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "2d889b58-94ed-45f2-aed4-84ca02c490cb") + ) + (pad "2" thru_hole circle + (at -7.62 -5.08 180) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "GPIO27/ADC1/A1") + (pintype "passive") + (uuid "8a3eb78e-f823-406e-badc-cab317afbfb1") + ) + (pad "3" smd roundrect + (at -8.455 -2.54 180) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (pinfunction "GPIO28/ADC2/A2") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "c9c45d1d-c1c9-4360-97b7-c4ad4504e87a") + ) + (pad "3" thru_hole circle + (at -7.62 -2.54 180) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "GPIO28/ADC2/A2") + (pintype "passive") + (uuid "1a3e9709-e376-4d26-9327-3ae6c544da61") + ) + (pad "4" smd roundrect + (at -8.455 0 180) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (pinfunction "GPIO29/ADC3/A3") + (pintype "passive+no_connect") + (thermal_bridge_angle 45) + (uuid "ef415a57-6c52-4d4a-a4f9-3e70a8d64b67") + ) + (pad "4" thru_hole circle + (at -7.62 0 180) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "GPIO29/ADC3/A3") + (pintype "passive+no_connect") + (uuid "d9978b9e-ecac-4beb-9926-748ec22cd7c8") + ) + (pad "5" smd roundrect + (at -8.455 2.54 180) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (pinfunction "GPIO6/SDA") + (pintype "passive+no_connect") + (thermal_bridge_angle 45) + (uuid "9ff99bc4-ab7d-4d98-9558-426810e77e17") + ) + (pad "5" thru_hole circle + (at -7.62 2.54 180) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "GPIO6/SDA") + (pintype "passive+no_connect") + (uuid "a00690c0-5bd1-4a18-8890-e4f7fd1dedb6") + ) + (pad "6" smd roundrect + (at -8.455 5.08 180) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (pinfunction "GPIO7/SCL") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "f0867289-034a-49c2-a662-35ea36b6ea6c") + ) + (pad "6" thru_hole circle + (at -7.62 5.08 180) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "GPIO7/SCL") + (pintype "passive") + (uuid "d8aeca37-18a8-4c85-a744-5831bc1bd35e") + ) + (pad "7" smd roundrect + (at -8.455 7.62 180) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (pinfunction "GPIO0/TX") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "2a27314c-cfaf-4427-8a5c-a5f3ae32a901") + ) + (pad "7" thru_hole circle + (at -7.62 7.62 180) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "GPIO0/TX") + (pintype "passive") + (uuid "bad8c8a9-d74c-4492-b5c2-2ff006ed527c") + ) + (pad "8" thru_hole circle + (at 7.62 7.62) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "GPIO1/RX") + (pintype "passive") + (uuid "63ef2895-14a5-4f89-9627-48a487476569") + ) + (pad "8" smd roundrect + (at 8.455 7.62) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (pinfunction "GPIO1/RX") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "8fdbf7db-cf92-4964-8b90-42082f7f7239") + ) + (pad "9" thru_hole circle + (at 7.62 5.08) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "GPIO2/SCK") + (pintype "passive") + (uuid "41e807e1-b5e7-4f22-beca-74c8c3415c5d") + ) + (pad "9" smd roundrect + (at 8.455 5.08) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (pinfunction "GPIO2/SCK") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "4df4e740-7216-4e25-82c9-07f211c06dd6") + ) + (pad "10" thru_hole circle + (at 7.62 2.54) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "GPIO4/MISO") + (pintype "passive") + (uuid "79c5116c-534f-4999-95df-12cf379e1055") + ) + (pad "10" smd roundrect + (at 8.455 2.54) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (pinfunction "GPIO4/MISO") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "e6d8d7fb-73af-482a-a987-50f817b52e10") + ) + (pad "11" thru_hole circle + (at 7.62 0) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "GPIO3/MOSI") + (pintype "passive") + (uuid "fe87c9e4-ee8c-47d9-9a29-9249a65986aa") + ) + (pad "11" smd roundrect + (at 8.455 0) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (pinfunction "GPIO3/MOSI") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "d069b1a6-bb66-40ec-8d77-a8fb66442af0") + ) + (pad "12" thru_hole circle + (at 7.62 -2.54) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "3V3") + (pintype "passive") + (uuid "d99c8542-8f09-4268-a25f-52aa1163b87e") + ) + (pad "12" smd roundrect + (at 8.455 -2.54) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (pinfunction "3V3") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "26df2851-968d-4b6e-b8b7-946be80d6371") + ) + (pad "13" thru_hole circle + (at 7.62 -5.08) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "GND") + (pintype "passive") + (uuid "5e91454a-433f-424f-9803-728a1fd6f929") + ) + (pad "13" smd roundrect + (at 8.455 -5.08) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (pinfunction "GND") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "2c957b46-54a6-49ee-835f-ba4618a2c46d") + ) + (pad "14" thru_hole circle + (at 7.62 -7.62) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "VBUS") + (pintype "passive+no_connect") + (uuid "8fb3904f-1a32-4e4e-9ddb-c70a13af263e") + ) + (pad "14" smd roundrect + (at 8.455 -7.62) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (pinfunction "VBUS") + (pintype "passive+no_connect") + (thermal_bridge_angle 45) + (uuid "d323bd20-12ca-4303-b960-53e2806d0995") + ) + (model "${AMZPATH}/3dmodels/AMz3D.3dshapes/XIAO-nRF52840 v15.step" + (hide yes) + (offset + (xyz -1.778 -6.096 0.381) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz -90 0 0) + ) + ) + (model "${AMZPATH}/3dmodels/AMz3D.3dshapes/Seeeduino XIAO SAMD21 v4.step" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + (model "${AMZPATH}/3dmodels/AMz3D.3dshapes/Seeed Studio XIAO RP2040 v26.step" + (hide yes) + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 90) + ) + ) + (model "${AMZPATH}/3dmodels/AMz3D.3dshapes/Seeed Studio XIAO-ESP32-C3.step" + (hide yes) + (offset + (xyz -1.7018 -6.096 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz -90 0 0) + ) + ) + (model "${AMZPATH}/3dmodels/AMz3D.3dshapes/XIAO-ESP32S3 v2.step" + (hide yes) + (offset + (xyz -1.778 -6.1722 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz -90 0 0) + ) + ) + ) + (footprint "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (layer "F.Cu") + (uuid "800c56f7-056c-42f7-a2de-dca69323b99e") + (at 125.15 99.04 180) + (descr "Cherry MX keyswitch, 1.00u, PCB mount, http://cherryamericas.com/wp-content/uploads/2014/12/mx_cat.pdf") + (tags "Cherry MX keyswitch 1.00u PCB") + (property "Reference" "SW4" + (at -2.54 -2.794 0) + (layer "F.SilkS") + (hide yes) + (uuid "cc6c19b0-0cad-481e-842c-4561b3be439d") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SW_Push" + (at -2.54 12.954 0) + (layer "F.Fab") + (hide yes) + (uuid "d1520c0d-73a6-444c-83d6-8cee2b0886d0") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 0 0 180) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "e03e75e8-70aa-4d0e-bfd1-a612b9ae69b4") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 180) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "11c31fb7-5dc2-42b6-82b6-304e20801727") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Push button switch, generic, two pins" + (at 0 0 180) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "1d24087f-01ad-4c19-a79d-422d753b83fa") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (attr through_hole) + (fp_line + (start 4.445 12.065) + (end -9.525 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "49e2f65f-9a11-42eb-8313-85f159956369") + ) + (fp_line + (start 4.445 -1.905) + (end 4.445 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "8ab1a51c-adbb-41ed-a0bc-0997e4ba6901") + ) + (fp_line + (start -9.525 12.065) + (end -9.525 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "f6458c71-ceea-411f-90e7-a3e3b07bad64") + ) + (fp_line + (start -9.525 -1.905) + (end 4.445 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "1ca26571-461d-4ef2-a4ce-b5eb21ee63c6") + ) + (fp_line + (start 6.985 14.605) + (end -12.065 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "60acb501-067b-433a-8c91-3413eb2d069c") + ) + (fp_line + (start 6.985 -4.445) + (end 6.985 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "c489de05-645f-43c5-a92d-09864af3b3c2") + ) + (fp_line + (start -12.065 14.605) + (end -12.065 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "1274b4eb-653f-43fa-9a39-f3a5e7f7251c") + ) + (fp_line + (start -12.065 -4.445) + (end 6.985 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "14fede91-f4dd-4644-a9d8-0a86539653d2") + ) + (fp_line + (start 4.06 11.68) + (end -9.14 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "1311a141-158c-43fa-ab2f-f6c876245bbd") + ) + (fp_line + (start 4.06 -1.52) + (end 4.06 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "d73a9704-1036-42db-a3e1-513ade6e4a44") + ) + (fp_line + (start -9.14 11.68) + (end -9.14 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "b2022ced-1b66-4194-9fd7-80cacf3edfec") + ) + (fp_line + (start -9.14 -1.52) + (end 4.06 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "e9d6a6ed-9861-4f56-84fb-4bfcdca6c6ef") + ) + (fp_line + (start 3.81 11.43) + (end -8.89 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "fe30569d-c21b-4bd6-ae80-a11beabe61be") + ) + (fp_line + (start 3.81 -1.27) + (end 3.81 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "be584347-8ec2-44d3-9821-1ddb054238bc") + ) + (fp_line + (start -8.89 11.43) + (end -8.89 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "b9199265-22c7-48c1-8c66-2508bdc9f4bd") + ) + (fp_line + (start -8.89 -1.27) + (end 3.81 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "fe78416f-72a6-465c-a6ad-c191ad5e4147") + ) + (pad "" np_thru_hole circle + (at -7.62 5.08 180) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "ec0f6329-c181-41f2-9605-1125f74746a1") + ) + (pad "" np_thru_hole circle + (at -2.54 5.08 180) + (size 4 4) + (drill 4) + (layers "*.Cu" "*.Mask") + (uuid "5f2c8c35-c8b3-4050-a770-987f04330fe9") + ) + (pad "" np_thru_hole circle + (at 2.54 5.08 180) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "9f260578-e5af-4afa-a298-48ca8b64c12e") + ) + (pad "1" thru_hole circle + (at 0 0 180) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "1") + (pintype "passive") + (uuid "c0b29e41-c2d7-4560-9b76-fc41c1e750b6") + ) + (pad "2" thru_hole circle + (at -6.35 2.54 180) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "2") + (pintype "passive") + (uuid "9065c4d6-67bb-4a7b-b832-2d06c00b4e66") + ) + (model "${KICAD8_3DMODEL_DIR}/Button_Switch_Keyboard.3dshapes/SW_Cherry_MX_1.00u_PCB.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Button_Switch_Keyboard:SW_Cherry_MX_2.75u_PCB" + (layer "F.Cu") + (uuid "b3dd153f-e8ad-4747-971f-3e6997dce82c") + (at 150.54 109.5625) + (descr "Cherry MX keyswitch, 2.75u, PCB mount, http://cherryamericas.com/wp-content/uploads/2014/12/mx_cat.pdf") + (tags "Cherry MX keyswitch 2.75u PCB") + (property "Reference" "SW7" + (at -2.54 -2.794 0) + (layer "F.SilkS") + (hide yes) + (uuid "2a97de21-2384-4c18-96dc-27572edcce60") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SW_Push" + (at -2.54 12.954 0) + (layer "F.Fab") + (hide yes) + (uuid "d0aee4a5-4066-44e5-96a9-18d808e2d963") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_2.75u_PCB" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "dc2ba1b3-bcc9-4f38-b5d1-85ea33fac8f5") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "74a81668-03b3-421f-b617-9055b78c503d") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Push button switch, generic, two pins" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "f3abf65f-67e7-4a60-aa62-ca88f661b423") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (attr through_hole) + (fp_line + (start -9.525 -1.905) + (end 4.445 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "02d5060c-4cbd-48c0-80c4-fccf57d036ac") + ) + (fp_line + (start -9.525 12.065) + (end -9.525 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "cad6f489-7ba4-4a15-b171-58f1ae244418") + ) + (fp_line + (start 4.445 -1.905) + (end 4.445 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "b78d7fd1-d98c-4796-8c76-6b4d89a69f3e") + ) + (fp_line + (start 4.445 12.065) + (end -9.525 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "1045d640-187b-4fc1-bc51-98d3542faf27") + ) + (fp_line + (start -28.73375 -4.445) + (end 23.65375 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "ddf2939d-146e-4d29-b0b0-587c9796367c") + ) + (fp_line + (start -28.73375 14.605) + (end -28.73375 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "fe89ae7f-b6eb-4319-9218-e1d05e93116e") + ) + (fp_line + (start 23.65375 -4.445) + (end 23.65375 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "574d24f3-6348-4f7c-914f-47233e900325") + ) + (fp_line + (start 23.65375 14.605) + (end -28.73375 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "129fe213-cc2c-4a23-96d1-835003c344c0") + ) + (fp_line + (start -9.14 -1.52) + (end 4.06 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "886503a0-0a1c-47da-b52a-f98d5396b503") + ) + (fp_line + (start -9.14 11.68) + (end -9.14 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "5e6a4477-4989-4a54-8f2a-d8749aae49a0") + ) + (fp_line + (start 4.06 -1.52) + (end 4.06 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "52bc5da8-9a93-4dc0-9ed0-d211e809d415") + ) + (fp_line + (start 4.06 11.68) + (end -9.14 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "aed2ea9d-5d3f-4cbd-9e49-af2262c10f45") + ) + (fp_line + (start -8.89 -1.27) + (end 3.81 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "b5b596ea-8e2e-4105-870d-875a2a580bcf") + ) + (fp_line + (start -8.89 11.43) + (end -8.89 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "4e33cbde-cb19-4dcd-8b51-53af2a8830cd") + ) + (fp_line + (start 3.81 -1.27) + (end 3.81 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "8184727a-ae41-4224-9b44-958df293b5cf") + ) + (fp_line + (start 3.81 11.43) + (end -8.89 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "9ce998bb-114c-4430-8ad1-4b0eb1213aaf") + ) + (pad "" np_thru_hole circle + (at -14.44 -1.92) + (size 3.05 3.05) + (drill 3.05) + (layers "*.Cu" "*.Mask") + (uuid "168f3add-e857-4fdd-b0cf-1e65002a6d85") + ) + (pad "" np_thru_hole circle + (at -14.44 13.32) + (size 4 4) + (drill 4) + (layers "*.Cu" "*.Mask") + (uuid "296429ef-456d-45bd-8518-a4e9b25811ea") + ) + (pad "" np_thru_hole circle + (at -7.62 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "a8cb6068-dcc4-4d6b-b2ab-42dcc2932252") + ) + (pad "" np_thru_hole circle + (at -2.54 5.08) + (size 4 4) + (drill 4) + (layers "*.Cu" "*.Mask") + (uuid "b95dbbe1-f5e1-46c6-a7f5-37839671f414") + ) + (pad "" np_thru_hole circle + (at 2.54 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "7fec350f-3406-4d57-b816-c74acdf4c477") + ) + (pad "" np_thru_hole circle + (at 9.36 -1.92) + (size 3.05 3.05) + (drill 3.05) + (layers "*.Cu" "*.Mask") + (uuid "b2cdf22a-9ad9-4d18-8bcd-ab1bcb936027") + ) + (pad "" np_thru_hole circle + (at 9.36 13.32) + (size 4 4) + (drill 4) + (layers "*.Cu" "*.Mask") + (uuid "8c5103ab-d430-47bc-b03a-b1d3ba24a592") + ) + (pad "1" thru_hole circle + (at 0 0) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "1") + (pintype "passive") + (uuid "bd9297b8-a077-43a6-8ddc-19e705316d2e") + ) + (pad "2" thru_hole circle + (at -6.35 2.54) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "2") + (pintype "passive") + (uuid "12232d97-86df-4948-8efe-3a5dd4605e1c") + ) + (model "${KICAD8_3DMODEL_DIR}/Button_Switch_Keyboard.3dshapes/SW_Cherry_MX_2.75u_PCB.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (layer "F.Cu") + (uuid "c101b396-e1a1-4a2b-b89e-b4225599efa4") + (at 150.54 88.92) + (descr "Cherry MX keyswitch, 1.00u, PCB mount, http://cherryamericas.com/wp-content/uploads/2014/12/mx_cat.pdf") + (tags "Cherry MX keyswitch 1.00u PCB") + (property "Reference" "SW5" + (at -2.54 -2.794 0) + (layer "F.SilkS") + (hide yes) + (uuid "0adce1ff-8055-43b8-914f-3a00a21ad4de") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SW_Push" + (at -2.54 12.954 0) + (layer "F.Fab") + (hide yes) + (uuid "91c145b1-908f-4b31-b6d3-71a3dbac87c2") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "18448c48-13ca-4342-af42-230031fcaff1") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "2a692690-ee72-4870-b5c9-8a28c8c9aeec") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Push button switch, generic, two pins" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "5fcbe07d-a516-4a5c-a48a-bc4946ab128e") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (attr through_hole) + (fp_line + (start -9.525 -1.905) + (end 4.445 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "bd04e22d-d4be-4a22-a0f3-af59c57c96e4") + ) + (fp_line + (start -9.525 12.065) + (end -9.525 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "ba43d346-0b1d-4209-bfed-d332bacfe2dd") + ) + (fp_line + (start 4.445 -1.905) + (end 4.445 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "8c22a539-1d64-455e-be5f-2c700d224907") + ) + (fp_line + (start 4.445 12.065) + (end -9.525 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "76377b02-106b-443c-8082-7e913f8fc37e") + ) + (fp_line + (start -12.065 -4.445) + (end 6.985 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "1e3c243e-ce5c-420e-abdb-baf3f318f303") + ) + (fp_line + (start -12.065 14.605) + (end -12.065 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "fb8f8bd0-39fa-4800-b3ca-90fbfde7b9b0") + ) + (fp_line + (start 6.985 -4.445) + (end 6.985 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "879427bc-51dd-4ec6-88ec-e3ba4cf09591") + ) + (fp_line + (start 6.985 14.605) + (end -12.065 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "a5bee49d-534b-458a-be4f-5c5940b96f66") + ) + (fp_line + (start -9.14 -1.52) + (end 4.06 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "99a3d8bb-d2dc-4b3d-a4d1-7d2824b7e80a") + ) + (fp_line + (start -9.14 11.68) + (end -9.14 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "dc63a5fb-4142-4a8a-8e1b-8d2f7c532176") + ) + (fp_line + (start 4.06 -1.52) + (end 4.06 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "19979b13-ebbb-440a-ba69-3ed55ba48325") + ) + (fp_line + (start 4.06 11.68) + (end -9.14 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "cb7a15bc-a638-4d7a-adbd-b04422fdac4e") + ) + (fp_line + (start -8.89 -1.27) + (end 3.81 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "77fb782d-bba5-4aa8-9622-4d976fd99849") + ) + (fp_line + (start -8.89 11.43) + (end -8.89 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "cf08c26e-1b68-4ed3-8925-b4a4d979dfe1") + ) + (fp_line + (start 3.81 -1.27) + (end 3.81 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "bee12f7e-7133-450d-b2e0-c4b7f070defd") + ) + (fp_line + (start 3.81 11.43) + (end -8.89 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "80cc3e46-7da9-48e3-bae1-5aec6238e650") + ) + (pad "" np_thru_hole circle + (at -7.62 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "b94ac320-5662-4243-b85c-eeaf637e1183") + ) + (pad "" np_thru_hole circle + (at -2.54 5.08) + (size 4 4) + (drill 4) + (layers "*.Cu" "*.Mask") + (uuid "09fd461f-a994-4f5c-9651-bb34f160278d") + ) + (pad "" np_thru_hole circle + (at 2.54 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "0737cd4c-73c7-4074-9a85-1dcac7912ad2") + ) + (pad "1" thru_hole circle + (at 0 0) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "1") + (pintype "passive") + (uuid "d9474c8d-819c-47b4-9627-b6ec43dd1cca") + ) + (pad "2" thru_hole circle + (at -6.35 2.54) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "2") + (pintype "passive") + (uuid "24d3e389-8d65-4283-a380-55f2293e9a8d") + ) + (model "${KICAD8_3DMODEL_DIR}/Button_Switch_Keyboard.3dshapes/SW_Cherry_MX_1.00u_PCB.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (layer "F.Cu") + (uuid "dde2fd5e-9652-4a35-9b39-58e663ef1e57") + (at 150.54 68.42) + (descr "Cherry MX keyswitch, 1.00u, PCB mount, http://cherryamericas.com/wp-content/uploads/2014/12/mx_cat.pdf") + (tags "Cherry MX keyswitch 1.00u PCB") + (property "Reference" "SW3" + (at -2.54 -2.794 0) + (layer "F.SilkS") + (hide yes) + (uuid "d1c16e84-9194-4a5d-8944-ca3a04730d82") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SW_Push" + (at -2.54 12.954 0) + (layer "F.Fab") + (hide yes) + (uuid "0109722d-fbdf-4867-a3ff-ca73cc29fbde") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "a64db7df-dee8-4479-b589-5a32e9d4b739") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "6ea2166d-7e05-402c-872e-5119b80689b6") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Push button switch, generic, two pins" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "b9aa8b17-c33c-4f1f-a815-a69d4b4d2f56") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (attr through_hole) + (fp_line + (start -9.525 -1.905) + (end 4.445 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "77446946-015e-47ca-99d2-2d9e5908e708") + ) + (fp_line + (start -9.525 12.065) + (end -9.525 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "94d69c20-1c8b-4ea1-9717-7c0d00a81e5e") + ) + (fp_line + (start 4.445 -1.905) + (end 4.445 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "10a560f2-b0f2-4cf5-810b-3cb541915032") + ) + (fp_line + (start 4.445 12.065) + (end -9.525 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "6ba646f5-1bfc-45c1-8b7e-064c5f7d1005") + ) + (fp_line + (start -12.065 -4.445) + (end 6.985 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "2c7c5021-01ab-4608-88cd-2627f7fd20c5") + ) + (fp_line + (start -12.065 14.605) + (end -12.065 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "bf2ac3b6-ff28-4521-9635-c168d993b7a5") + ) + (fp_line + (start 6.985 -4.445) + (end 6.985 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "4fdadcf1-cd5e-4232-b0a9-9ee87493bf80") + ) + (fp_line + (start 6.985 14.605) + (end -12.065 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "e00ab8c4-0366-4262-a314-dc3c1aca07b9") + ) + (fp_line + (start -9.14 -1.52) + (end 4.06 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "759cef41-923d-43e6-a4da-287f30eff2b7") + ) + (fp_line + (start -9.14 11.68) + (end -9.14 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "727b6cf4-4038-4f38-b36c-d2d23bec9eba") + ) + (fp_line + (start 4.06 -1.52) + (end 4.06 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "683ff61d-9d9e-4aa8-95ed-c0013cbbd013") + ) + (fp_line + (start 4.06 11.68) + (end -9.14 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "c73cbc87-5f0f-4fd5-9113-955be1d8635e") + ) + (fp_line + (start -8.89 -1.27) + (end 3.81 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "8569c208-5e8a-4cec-8f26-2b58a8699e56") + ) + (fp_line + (start -8.89 11.43) + (end -8.89 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "80c6a60b-41ac-4261-b05d-b258c836b5e9") + ) + (fp_line + (start 3.81 -1.27) + (end 3.81 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "ab94b825-ff2f-424c-bdb9-276585f8d579") + ) + (fp_line + (start 3.81 11.43) + (end -8.89 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "5596db6b-a05a-4ad0-8fef-77ff062e5caa") + ) + (pad "" np_thru_hole circle + (at -7.62 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "7cae375b-4912-456a-bf3b-9c53dade996d") + ) + (pad "" np_thru_hole circle + (at -2.54 5.08) + (size 4 4) + (drill 4) + (layers "*.Cu" "*.Mask") + (uuid "a7b4acc1-954d-4c87-a491-2b7a669cb1fd") + ) + (pad "" np_thru_hole circle + (at 2.54 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "33432fa2-1829-48cf-9b5c-20c5f7de332d") + ) + (pad "1" thru_hole circle + (at 0 0) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "1") + (pintype "passive") + (uuid "71246518-bbf9-4b60-919e-cb31fd399ade") + ) + (pad "2" thru_hole circle + (at -6.35 2.54) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (pinfunction "2") + (pintype "passive") + (uuid "8f9901a9-fb91-4206-86f4-6659c0100a4c") + ) + (model "${KICAD8_3DMODEL_DIR}/Button_Switch_Keyboard.3dshapes/SW_Cherry_MX_1.00u_PCB.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (gr_rect + (start 110 61) + (end 187 126) + (stroke + (width 0.05) + (type default) + ) + (fill none) + (layer "Edge.Cuts") + (uuid "4de52302-fd5e-49a5-b128-568e9c587293") + ) + (gr_text "XIAO HERE!" + (at 123 72.5 0) + (layer "F.SilkS") + (uuid "00167f9c-b753-458e-b0fd-27191644a297") + (effects + (font + (size 1 1) + (thickness 0.1) + ) + (justify left bottom) + ) + ) + (gr_text "three_1415" + (at 116 123 90) + (layer "F.SilkS") + (uuid "501afb19-b145-443c-b80d-f91287637e80") + (effects + (font + (size 3 3) + (thickness 0.1) + ) + (justify left bottom) + ) + ) + (gr_text "MacPAD\nHackpad\nHack Club" + (at 184.5 123 90) + (layer "F.SilkS") + (uuid "8deda2c4-7b69-4876-835c-168db531eddf") + (effects + (font + (size 2 2) + (thickness 0.1) + ) + (justify left bottom) + ) + ) + (segment + (start 148.311301 110.688699) + (end 145 114) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "081177be-ffb4-4228-a75d-f19a51a538d3") + ) + (segment + (start 163.85 69) + (end 175.75 69) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "08d7d72d-e33e-4945-8545-c45f78e0a3a9") + ) + (segment + (start 156.925 62.075) + (end 163.85 69) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "0ed451ac-57f8-4c3f-bd3d-ba9bd2d3005a") + ) + (segment + (start 128.58 77.08) + (end 134.62 77.08) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "190b3699-9a60-4904-be55-2bccb9f412c4") + ) + (segment + (start 160.122601 98) + (end 171.5 98) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "19576dda-052c-4a02-851c-d6c3803de4e5") + ) + (segment + (start 152.184314 65.5) + (end 155.592157 68.907843) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "27f7ad74-474b-443d-813f-ed20536f1cae") + ) + (segment + (start 136.54 69.46) + (end 140.5 65.5) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "28ab51ee-16b6-4baa-a818-e754e0e938e5") + ) + (segment + (start 134.62 69.46) + (end 130.96 69.46) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "329d48d0-e29d-44a9-9c2e-47462fe4c04b") + ) + (segment + (start 164.69 91.46) + (end 144.19 91.46) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "35f52fa6-ba9f-43c0-829a-54db98aa73cb") + ) + (segment + (start 150.54 115.46) + (end 150.54 109.5625) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "36194aff-a0ee-4da1-8fa8-2bec34ee4c84") + ) + (segment + (start 131.5 96.5) + (end 138.722944 96.5) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "3767979b-7034-43d0-8d11-d0b2a1b91b09") + ) + (segment + (start 134.62 69.46) + (end 136.54 69.46) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "37c9b803-1c16-4e3b-b262-447e9b7a4c40") + ) + (segment + (start 114.5 76.267786) + (end 117.289786 73.478) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "399ae4b1-b4b3-4761-b83b-6f3eb06bbf4e") + ) + (segment + (start 173.25 71.5) + (end 175.75 74) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "3accdd2c-7a48-4457-8d13-94b18b0aa558") + ) + (segment + (start 119.38 66.92) + (end 114.92 66.92) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "3ca34427-dc9c-482d-85d0-7f3262cdadc6") + ) + (segment + (start 130.1 98.99085) + (end 142.5 111.39085) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "442dd4b9-801c-4739-89d3-eae156045cee") + ) + (segment + (start 173.42 88.92) + (end 171.04 88.92) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "47e59f50-5131-4c6c-9964-43c7e2bc3886") + ) + (segment + (start 118.30237 69.46) + (end 115.26237 72.5) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "4927d422-2dcd-4129-942e-4bda62d0048e") + ) + (segment + (start 148.311301 109.811301) + (end 148.311301 110.688699) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "4b9d977a-f376-4f01-81a1-e2363990810e") + ) + (segment + (start 155.592157 68.907843) + (end 155.592157 71.092157) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "4cbf4310-6343-41dd-9608-1f5292769450") + ) + (segment + (start 130.96 69.46) + (end 129.5 68) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "4da72262-13ed-48ad-847e-f1d69d3c1eeb") + ) + (segment + (start 134.62 74.54) + (end 138.630101 74.54) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "4f7a910c-2576-4f2d-a9fa-2e5a24275ebb") + ) + (segment + (start 142.79835 116.9925) + (end 149.0075 116.9925) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "51e553fa-1dc5-4abf-95df-f0471bcc5391") + ) + (segment + (start 117 78.38237) + (end 117 86.593402) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "523ef62b-1135-4bdd-8830-5db53154200f") + ) + (segment + (start 176 93.5) + (end 176 91.5) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "547c544e-d9bf-4d07-85b7-c0fabdc43887") + ) + (segment + (start 140.5 65.5) + (end 152.184314 65.5) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "572cb143-5438-4f60-a07f-b3e03547982e") + ) + (segment + (start 133.953299 108.147449) + (end 142.79835 116.9925) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "58b2be1f-6ea9-481e-82f6-7b19d414199d") + ) + (segment + (start 117.732786 62.875) + (end 116.923893 63.683893) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "5b1e8a5e-3669-46a3-a0de-3c647df273b9") + ) + (segment + (start 154.725 62.475) + (end 114.715 62.475) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "5db8c2b3-fedb-41f8-a486-310737817a31") + ) + (segment + (start 161.25 71.5) + (end 173.25 71.5) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "5dc5624e-a1a9-483e-9dff-e5d51e5a2776") + ) + (segment + (start 119.38 69.46) + (end 118.30237 69.46) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "617c136f-6f6d-487e-8637-abcc79ebbd52") + ) + (segment + (start 171.5 98) + (end 176 93.5) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "647d2cdb-fa93-4e42-873f-c3c0e40d0ea1") + ) + (segment + (start 111 70.5) + (end 111 63) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "64e6d012-cd8c-4631-9895-c3f786f8eb2a") + ) + (segment + (start 116.923893 65.076107) + (end 117.705786 65.858) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "6822dd66-6c06-4429-8509-412eef270b69") + ) + (segment + (start 116.923893 63.683893) + (end 116.923893 65.076107) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "6b410bc1-ba2a-4888-aa61-029dcdf73e23") + ) + (segment + (start 125.15 99.04) + (end 114.5 88.39) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "6b832f9d-083f-4915-864d-34e769496fc5") + ) + (segment + (start 168.85 74) + (end 161.25 74) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "6ccd938a-f991-417d-90d5-34d66211e7c5") + ) + (segment + (start 142.5 112.392399) + (end 144.107601 114) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "767adbba-6bb1-420b-822b-f960beebcee3") + ) + (segment + (start 116.81 68) + (end 113.5 71.31) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "76e097f3-05f7-43d8-b64e-158fbab27ddf") + ) + (segment + (start 115.26237 72.5) + (end 113 72.5) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "777c36d8-33e6-4fb5-9811-594c1d00c49b") + ) + (segment + (start 117 86.593402) + (end 133.953299 103.546701) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "787a56f7-ccfa-4463-b2de-fa1deaa7f5d6") + ) + (segment + (start 175.75 80.925635) + (end 165.215635 91.46) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "787d11f4-09bd-45e7-8fdb-f45fed80d51c") + ) + (segment + (start 144.750101 68.42) + (end 150.54 68.42) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "7f04c3a4-20d0-4cfe-a6ef-a2f914a393b9") + ) + (segment + (start 150.54 88.92) + (end 143.92 88.92) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "820e75ed-31c5-430e-a85c-c8145c351eb3") + ) + (segment + (start 144.107601 114) + (end 145 114) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "82f6b5a7-4c55-4511-b137-097667b16f64") + ) + (segment + (start 131.5 99.4125) + (end 144.19 112.1025) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "84d61cbe-b2d8-470f-89ca-330637582e08") + ) + (segment + (start 120.442 63.318) + (end 150.568 63.318) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "87e7d3d8-539d-4ace-a38b-fdb7e2ff16fa") + ) + (segment + (start 119.38 64.38) + (end 120.442 63.318) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "87f99d27-2607-4ae7-935f-c1bd82a06ab0") + ) + (segment + (start 148.561301 109.561301) + (end 160.122601 98) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "8948ac2e-6f93-4b06-b2bd-7b4be06ce463") + ) + (segment + (start 111.925 62.075) + (end 156.925 62.075) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "946d3708-b33d-4b13-adfe-48bfb5ee6d69") + ) + (segment + (start 144.19 73.927056) + (end 139.559056 78.558) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "9c6bbb1f-282f-4f91-bf23-a96b0440bb8b") + ) + (segment + (start 144.19 70.96) + (end 144.19 73.927056) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "9cecde38-5142-4fe8-8f77-e1a5b2694987") + ) + (segment + (start 143.92 88.92) + (end 134.62 79.62) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "9db714a7-236f-41cb-bd06-802eb64f438b") + ) + (segment + (start 150.568 63.318) + (end 161.25 74) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "a151f667-fa6b-4867-93b6-7933d4e42244") + ) + (segment + (start 175.75 74) + (end 175.75 80.925635) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "a937ef19-583d-4a54-b533-713d3d23f395") + ) + (segment + (start 143.762944 91.46) + (end 144.19 91.46) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "addd0ea4-4aa5-4f4d-b97b-581f6e621012") + ) + (segment + (start 129.5 68) + (end 116.81 68) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "b43fd9f8-6c27-4227-a3dd-933ebd48becf") + ) + (segment + (start 117.289786 73.478) + (end 124.978 73.478) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "b9d56ed5-e818-4916-9e69-a65121bb9384") + ) + (segment + (start 148.561301 109.561301) + (end 148.311301 109.811301) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "bcb8405f-a4e1-47b2-81ed-62a825cbac60") + ) + (segment + (start 155.592157 71.092157) + (end 166 81.5) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "be400245-9e85-494f-bc62-7cd6798254a8") + ) + (segment + (start 124.978 73.478) + (end 128.58 77.08) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "be7d3e45-2d86-4ae4-bec0-d5753c02049b") + ) + (segment + (start 173.62 78.77) + (end 168.85 74) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "bf12d14c-c659-44c4-aaec-82a01ffa36f2") + ) + (segment + (start 117.705786 65.858) + (end 133.558 65.858) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "bf481bdb-6be4-4fbc-b293-9e6772f094fb") + ) + (segment + (start 149.0075 116.9925) + (end 150.54 115.46) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "c01f192d-c448-4617-8755-6e78d067e8c9") + ) + (segment + (start 131.5 96.5) + (end 131.5 99.4125) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "c18a01f9-863f-4a93-9e28-315876213ba0") + ) + (segment + (start 113.5 65.5) + (end 113.5 63.69) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "c23afdef-4292-4edf-b523-eb886f2356e8") + ) + (segment + (start 114.5 88.39) + (end 114.5 76.267786) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "c5a3018c-aa30-48c8-962f-e528dd33ce3d") + ) + (segment + (start 114.715 62.475) + (end 113.5 63.69) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "c65f5802-dad8-4c4d-8add-5b15cae458f5") + ) + (segment + (start 161.25 71.5) + (end 152.625 62.875) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "ceca7780-0f21-4a13-b260-abccf31b0ffc") + ) + (segment + (start 131.5 81.238105) + (end 131.5 96.5) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "cf7605e9-0ee2-4865-a080-6f55cd2a846c") + ) + (segment + (start 134.180105 78.558) + (end 131.5 81.238105) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "d0e04151-571d-42f4-aaf5-198041b27a30") + ) + (segment + (start 154.725 62.475) + (end 161.25 69) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "d7568196-0889-4b17-bf96-d5b336569cbf") + ) + (segment + (start 111 63) + (end 111.925 62.075) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "d9d8bdb2-037f-40ab-af02-030f1a31169d") + ) + (segment + (start 113 72.5) + (end 111 70.5) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "da06bb87-ad6b-410d-b471-346927421318") + ) + (segment + (start 176 91.5) + (end 173.42 88.92) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "ddb15e88-24d7-4cd3-be14-29051280d632") + ) + (segment + (start 119.38 79.62) + (end 130.1 90.34) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "e2b76df7-d10e-462e-a73c-193fd27c989e") + ) + (segment + (start 130.1 90.34) + (end 130.1 98.99085) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "e4dcd2f6-4b0a-4a73-8d1d-ba8e44336ac9") + ) + (segment + (start 133.953299 103.546701) + (end 133.953299 108.147449) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "e7b691c7-43b5-4a06-b731-67d108a5e217") + ) + (segment + (start 152.625 62.875) + (end 117.732786 62.875) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "e876d2a5-bd92-4510-9906-8434daaae2a2") + ) + (segment + (start 119.38 77.08) + (end 118.30237 77.08) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "eb8b5cf9-9bb8-4821-9e51-cdd3dd4792ca") + ) + (segment + (start 138.722944 96.5) + (end 143.762944 91.46) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "ebf128da-e090-41df-a5a8-76c587e5457d") + ) + (segment + (start 173.62 81.5) + (end 173.62 78.77) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "ec6b6adb-acb0-44f6-803b-735942ded9d8") + ) + (segment + (start 139.559056 78.558) + (end 134.180105 78.558) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "f3be004d-612b-433e-b6a5-e906c2c9fffe") + ) + (segment + (start 114.92 66.92) + (end 113.5 65.5) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "f9c92a0c-f78e-4f3e-9dce-8eda3ab21451") + ) + (segment + (start 165.215635 91.46) + (end 164.69 91.46) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "faccf4c9-bfdb-44be-ab56-4ee8ab94bb1c") + ) + (segment + (start 138.630101 74.54) + (end 144.750101 68.42) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "fb4ab028-9a4a-41a4-b0f5-63ae15adf7be") + ) + (segment + (start 118.30237 77.08) + (end 117 78.38237) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "fc0d8bde-5730-4a3e-9e53-4e950db63cb3") + ) + (segment + (start 142.5 111.39085) + (end 142.5 112.392399) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "ff0fe161-0d97-4712-91d5-62bf19167a0c") + ) + (segment + (start 133.558 65.858) + (end 134.62 66.92) + (width 0.2) + (layer "F.Cu") + (net 0) + (uuid "ffeb5e8d-6d7d-48c7-9933-56f0e7e8b755") + ) +) diff --git a/hackpads/HackPanel/PCB/HackPanel.kicad_pro b/hackpads/HackPanel/PCB/HackPanel.kicad_pro new file mode 100644 index 0000000000..a9d44fab14 --- /dev/null +++ b/hackpads/HackPanel/PCB/HackPanel.kicad_pro @@ -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": "HackPanel.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": "", + "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 + } + ], + "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": [ + [ + "88921c59-b6f9-4a2f-b20b-ec1236ab41f9", + "Root" + ] + ], + "text_variables": {} +} diff --git a/hackpads/HackPanel/PCB/HackPanel.kicad_sch b/hackpads/HackPanel/PCB/HackPanel.kicad_sch new file mode 100644 index 0000000000..92271cbb34 --- /dev/null +++ b/hackpads/HackPanel/PCB/HackPanel.kicad_sch @@ -0,0 +1,2718 @@ +(kicad_sch + (version 20231120) + (generator "eeschema") + (generator_version "8.0") + (uuid "88921c59-b6f9-4a2f-b20b-ec1236ab41f9") + (paper "A4") + (lib_symbols + (symbol "Device:R" + (pin_numbers hide) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "R" + (at 2.032 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "R" + (at 0 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at -1.778 0 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "R res resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "R_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "R_0_1" + (rectangle + (start -1.016 -2.54) + (end 1.016 2.54) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "R_1_1" + (pin passive line + (at 0 3.81 270) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Device:RotaryEncoder_Switch" + (pin_names + (offset 0.254) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "SW" + (at 0 6.604 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "RotaryEncoder_Switch" + (at 0 -6.604 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at -3.81 4.064 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 6.604 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Rotary encoder, dual channel, incremental quadrate outputs, with switch" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "rotary switch encoder switch push button" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "RotaryEncoder*Switch*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "RotaryEncoder_Switch_0_1" + (rectangle + (start -5.08 5.08) + (end 5.08 -5.08) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + (circle + (center -3.81 0) + (radius 0.254) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + (circle + (center -0.381 0) + (radius 1.905) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -0.381 2.667) + (mid -3.0988 -0.0635) + (end -0.381 -2.794) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -0.635 -1.778) (xy -0.635 1.778) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -0.381 -1.778) (xy -0.381 1.778) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -0.127 1.778) (xy -0.127 -1.778) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 3.81 0) (xy 3.429 0) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 3.81 1.016) (xy 3.81 -1.016) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -5.08 -2.54) (xy -3.81 -2.54) (xy -3.81 -2.032) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -5.08 2.54) (xy -3.81 2.54) (xy -3.81 2.032) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.254 -3.048) (xy -0.508 -2.794) (xy 0.127 -2.413) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.254 2.921) (xy -0.508 2.667) (xy 0.127 2.286) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 5.08 -2.54) (xy 4.318 -2.54) (xy 4.318 -1.016) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 5.08 2.54) (xy 4.318 2.54) (xy 4.318 1.016) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -5.08 0) (xy -3.81 0) (xy -3.81 -1.016) (xy -3.302 -2.032) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -4.318 0) (xy -3.81 0) (xy -3.81 1.016) (xy -3.302 2.032) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 4.318 -1.016) + (radius 0.127) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 4.318 1.016) + (radius 0.127) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "RotaryEncoder_Switch_1_1" + (pin passive line + (at -7.62 2.54 0) + (length 2.54) + (name "A" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "A" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -7.62 -2.54 0) + (length 2.54) + (name "B" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "B" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -7.62 0 0) + (length 2.54) + (name "C" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "C" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 7.62 2.54 180) + (length 2.54) + (name "S1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "S1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 7.62 -2.54 180) + (length 2.54) + (name "S2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "S2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Seeed_Studio_XIAO_Series:XIAO-RP2040-DIP" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "U" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "XIAO-RP2040-DIP" + (at 5.334 -1.778 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Module:MOUDLE14P-XIAO-DIP-SMD" + (at 14.478 -32.258 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "XIAO-RP2040-DIP_1_0" + (polyline + (pts + (xy -1.27 -30.48) (xy -1.27 -16.51) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -27.94) (xy -2.54 -27.94) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -24.13) (xy -2.54 -24.13) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -20.32) (xy -2.54 -20.32) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -16.51) (xy -2.54 -16.51) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -16.51) (xy -1.27 -12.7) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -12.7) (xy -2.54 -12.7) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -12.7) (xy -1.27 -8.89) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -8.89) (xy -2.54 -8.89) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -8.89) (xy -1.27 -5.08) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -5.08) (xy -2.54 -5.08) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -5.08) (xy -1.27 -2.54) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -2.54) (xy 29.21 -2.54) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 29.21 -30.48) (xy -1.27 -30.48) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 29.21 -12.7) (xy 29.21 -30.48) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 29.21 -8.89) (xy 29.21 -12.7) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 29.21 -5.08) (xy 29.21 -8.89) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 29.21 -2.54) (xy 29.21 -5.08) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 30.48 -27.94) (xy 29.21 -27.94) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 30.48 -24.13) (xy 29.21 -24.13) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 30.48 -20.32) (xy 29.21 -20.32) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 30.48 -16.51) (xy 29.21 -16.51) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 30.48 -12.7) (xy 29.21 -12.7) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 30.48 -8.89) (xy 29.21 -8.89) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 30.48 -5.08) (xy 29.21 -5.08) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (pin passive line + (at -3.81 -5.08 0) + (length 2.54) + (name "GPIO26/ADC0/A0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 31.75 -20.32 180) + (length 2.54) + (name "GPIO4/MISO" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 31.75 -16.51 180) + (length 2.54) + (name "GPIO3/MOSI" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 31.75 -12.7 180) + (length 2.54) + (name "3V3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 31.75 -8.89 180) + (length 2.54) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 31.75 -5.08 180) + (length 2.54) + (name "VBUS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -3.81 -8.89 0) + (length 2.54) + (name "GPIO27/ADC1/A1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -3.81 -12.7 0) + (length 2.54) + (name "GPIO28/ADC2/A2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -3.81 -16.51 0) + (length 2.54) + (name "GPIO29/ADC3/A3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -3.81 -20.32 0) + (length 2.54) + (name "GPIO6/SDA" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -3.81 -24.13 0) + (length 2.54) + (name "GPIO7/SCL" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -3.81 -27.94 0) + (length 2.54) + (name "GPIO0/TX" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 31.75 -27.94 180) + (length 2.54) + (name "GPIO1/RX" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 31.75 -24.13 180) + (length 2.54) + (name "GPIO2/SCK" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Switch:SW_Push" + (pin_numbers hide) + (pin_names + (offset 1.016) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "SW" + (at 1.27 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "SW_Push" + (at 0 -1.524 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 5.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 5.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, generic, two pins" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "switch normally-open pushbutton push-button" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "SW_Push_0_1" + (circle + (center -2.032 0) + (radius 0.508) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 1.27) (xy 0 3.048) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 2.54 1.27) (xy -2.54 1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 2.032 0) + (radius 0.508) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (pin passive line + (at -5.08 0 0) + (length 2.54) + (name "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 0 180) + (length 2.54) + (name "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "power:GND" + (power) + (pin_numbers hide) + (pin_names + (offset 0) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -6.35 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "GND_1_1" + (pin power_in line + (at 0 0 270) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + ) + (junction + (at 209.55 95.25) + (diameter 0) + (color 0 0 0 0) + (uuid "1c3d33e0-da10-46bf-a65b-dbdf21f7e6d6") + ) + (junction + (at 209.55 81.28) + (diameter 0) + (color 0 0 0 0) + (uuid "1d58b006-32ea-4a93-b48b-9b5201c98f4b") + ) + (junction + (at 209.55 119.38) + (diameter 0) + (color 0 0 0 0) + (uuid "4aa5862d-07c5-4517-b5d5-63d40b7189f9") + ) + (junction + (at 209.55 107.95) + (diameter 0) + (color 0 0 0 0) + (uuid "5e057ea9-aae6-47e2-8114-7c8d504fb84d") + ) + (junction + (at 124.46 60.96) + (diameter 0) + (color 0 0 0 0) + (uuid "63c86771-1d65-4695-8ca1-1553dd5ba50b") + ) + (junction + (at 110.49 72.39) + (diameter 0) + (color 0 0 0 0) + (uuid "b76716e0-e6fb-4258-bbc5-c321687597d4") + ) + (junction + (at 116.84 76.2) + (diameter 0) + (color 0 0 0 0) + (uuid "ee5a912a-d512-486e-8820-08ce81471485") + ) + (no_connect + (at 130.81 87.63) + (uuid "2361da9d-4dbd-4693-ab50-429c0d20dd40") + ) + (no_connect + (at 166.37 72.39) + (uuid "3ae7adc6-bd5b-49ad-89dc-30440e4cf652") + ) + (no_connect + (at 166.37 83.82) + (uuid "9846907d-e356-439e-94fb-7d87b096d884") + ) + (no_connect + (at 130.81 83.82) + (uuid "d6e03f0b-9147-436b-b08f-0186f89a1f0a") + ) + (wire + (pts + (xy 179.07 95.25) (xy 179.07 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "00a13377-4a04-490f-b4e5-f2f8aa90ade3") + ) + (wire + (pts + (xy 116.84 76.2) (xy 114.3 76.2) + ) + (stroke + (width 0) + (type default) + ) + (uuid "06f8fe24-1182-466c-b559-b16c96fc5a4e") + ) + (wire + (pts + (xy 209.55 67.31) (xy 214.63 67.31) + ) + (stroke + (width 0) + (type default) + ) + (uuid "18a018fe-3045-4551-bef1-aa0ee7a3107e") + ) + (wire + (pts + (xy 175.26 81.28) (xy 175.26 87.63) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1dedeb21-8cd7-4cd1-afc7-8541557c4edd") + ) + (wire + (pts + (xy 175.26 87.63) (xy 166.37 87.63) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2244fbd1-4bbe-4991-b2b3-c734f993c223") + ) + (wire + (pts + (xy 95.25 77.47) (xy 90.17 77.47) + ) + (stroke + (width 0) + (type default) + ) + (uuid "26919ee6-127a-405a-ac5f-550506a235b2") + ) + (wire + (pts + (xy 199.39 130.81) (xy 125.73 130.81) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2e681511-0778-4851-b4b4-78bcd04cb071") + ) + (wire + (pts + (xy 119.38 80.01) (xy 130.81 80.01) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3ca3cd97-e2b5-4268-9948-42477499f66f") + ) + (wire + (pts + (xy 110.49 72.39) (xy 130.81 72.39) + ) + (stroke + (width 0) + (type default) + ) + (uuid "59bc7edb-5dad-4115-86a3-b785ed3711af") + ) + (wire + (pts + (xy 119.38 86.36) (xy 119.38 80.01) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5ac39b9f-8538-4041-9fe2-2577e7934ded") + ) + (wire + (pts + (xy 209.55 95.25) (xy 209.55 107.95) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5bbeab38-66ff-45e7-afb2-83987a214e35") + ) + (wire + (pts + (xy 114.3 76.2) (xy 114.3 82.55) + ) + (stroke + (width 0) + (type default) + ) + (uuid "628f39a7-ce42-4c61-8989-f56793c4c667") + ) + (wire + (pts + (xy 209.55 119.38) (xy 209.55 130.81) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6448c23e-054e-4a5f-bf6c-46908e1c50c3") + ) + (wire + (pts + (xy 166.37 107.95) (xy 166.37 95.25) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7a22bcac-5671-4098-a187-f7cd42713e39") + ) + (wire + (pts + (xy 114.3 82.55) (xy 110.49 82.55) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8058755e-6978-41ba-b138-6c76cf4f258a") + ) + (wire + (pts + (xy 199.39 119.38) (xy 130.81 119.38) + ) + (stroke + (width 0) + (type default) + ) + (uuid "82c292db-2f17-4f86-b081-dc1c232ab827") + ) + (wire + (pts + (xy 199.39 107.95) (xy 166.37 107.95) + ) + (stroke + (width 0) + (type default) + ) + (uuid "840e6a38-cca1-4211-9b51-7d360517a8c2") + ) + (wire + (pts + (xy 125.73 130.81) (xy 125.73 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8704fe65-8797-4571-b4cf-cef67fc27738") + ) + (wire + (pts + (xy 110.49 52.07) (xy 116.84 52.07) + ) + (stroke + (width 0) + (type default) + ) + (uuid "897dbe3f-ebe7-4bab-99a0-be645df87380") + ) + (wire + (pts + (xy 199.39 81.28) (xy 175.26 81.28) + ) + (stroke + (width 0) + (type default) + ) + (uuid "939a4d69-4c7a-4e98-a662-ebdb711ce6e4") + ) + (wire + (pts + (xy 116.84 60.96) (xy 116.84 76.2) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a0cb33ee-e6cb-496c-9161-8495732fa8bd") + ) + (wire + (pts + (xy 124.46 60.96) (xy 168.91 60.96) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a10b0a95-fc51-494b-96a7-612def2ca5bb") + ) + (wire + (pts + (xy 199.39 95.25) (xy 179.07 95.25) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a10c7924-8a4c-4967-b18b-6a5e1d80a964") + ) + (wire + (pts + (xy 130.81 76.2) (xy 116.84 76.2) + ) + (stroke + (width 0) + (type default) + ) + (uuid "be9ebda8-0aa4-4428-a7d9-eecd9d3faa66") + ) + (wire + (pts + (xy 209.55 107.95) (xy 209.55 119.38) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c0a109cb-00aa-47fc-a49c-79cb62953d40") + ) + (wire + (pts + (xy 124.46 52.07) (xy 124.46 60.96) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c7403cd9-afdc-48e4-925d-d0c9bf5708c4") + ) + (wire + (pts + (xy 179.07 91.44) (xy 166.37 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ca871b3e-a292-495f-8b2c-f74391f1d55e") + ) + (wire + (pts + (xy 209.55 81.28) (xy 209.55 95.25) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cbbc84a1-ab77-46bb-b7f3-328242ae58fa") + ) + (wire + (pts + (xy 130.81 119.38) (xy 130.81 95.25) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cd8bda17-2537-4a1d-8d80-caad2e4c0f26") + ) + (wire + (pts + (xy 110.49 72.39) (xy 110.49 52.07) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d54313bb-5a65-4c35-9978-13b412b75529") + ) + (wire + (pts + (xy 90.17 86.36) (xy 119.38 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d7f487b3-12d1-476b-b4f9-5c5dd172c0be") + ) + (wire + (pts + (xy 125.73 91.44) (xy 130.81 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d8ccd5e1-3948-4414-a405-195477d41111") + ) + (wire + (pts + (xy 168.91 80.01) (xy 166.37 80.01) + ) + (stroke + (width 0) + (type default) + ) + (uuid "dd779a6d-de65-4a05-bcf5-b94348f73b43") + ) + (wire + (pts + (xy 168.91 60.96) (xy 168.91 80.01) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f0fcf1e9-90a1-4f2d-9ab5-b1bd0c1e77a7") + ) + (wire + (pts + (xy 209.55 67.31) (xy 209.55 81.28) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f7d1d258-7395-45ce-a6c8-4eae28e517b3") + ) + (wire + (pts + (xy 110.49 77.47) (xy 110.49 72.39) + ) + (stroke + (width 0) + (type default) + ) + (uuid "fb604ad2-0d3e-482f-bce1-998a1423f476") + ) + (wire + (pts + (xy 90.17 77.47) (xy 90.17 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "fff8a4d4-ecdb-497c-bc53-c9734b2bb80e") + ) + (symbol + (lib_id "power:GND") + (at 214.63 67.31 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "028932a4-bd4a-41b2-9efc-21747ac72c1d") + (property "Reference" "#PWR04" + (at 220.98 67.31 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 218.44 67.3099 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 214.63 67.31 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 214.63 67.31 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 214.63 67.31 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "c9527d83-64c1-4bfd-a841-a34c92520d46") + ) + (instances + (project "HackPanel" + (path "/88921c59-b6f9-4a2f-b20b-ec1236ab41f9" + (reference "#PWR04") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push") + (at 204.47 81.28 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "20a4309e-5e3c-4932-a060-1e4ad5d79cc8") + (property "Reference" "SW2" + (at 204.47 73.66 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push" + (at 204.47 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 204.47 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 204.47 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, generic, two pins" + (at 204.47 81.28 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "9b68ec35-c88f-4e10-94e6-52298735a882") + ) + (pin "1" + (uuid "018dff28-86e8-4df4-8ec4-61ac75642f43") + ) + (instances + (project "HackPanel" + (path "/88921c59-b6f9-4a2f-b20b-ec1236ab41f9" + (reference "SW2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 110.49 80.01 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "3b814519-420c-4209-8ac0-7fc2707991a4") + (property "Reference" "#PWR02" + (at 116.84 80.01 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 114.3 80.0099 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 110.49 80.01 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 110.49 80.01 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 110.49 80.01 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "993a88d0-68fd-4a64-b58f-b14b22b57913") + ) + (instances + (project "HackPanel" + (path "/88921c59-b6f9-4a2f-b20b-ec1236ab41f9" + (reference "#PWR02") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push") + (at 204.47 119.38 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "4398e414-8c83-4b30-b7f4-c7b85b1ef863") + (property "Reference" "SW5" + (at 204.47 111.76 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push" + (at 204.47 114.3 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 204.47 114.3 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 204.47 114.3 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, generic, two pins" + (at 204.47 119.38 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "e183cef1-f3ca-4558-9983-6f2db763a6bc") + ) + (pin "1" + (uuid "b98e4071-802c-410d-a5fe-0775464b8d18") + ) + (instances + (project "HackPanel" + (path "/88921c59-b6f9-4a2f-b20b-ec1236ab41f9" + (reference "SW5") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 95.25 82.55 270) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "44b5455f-248a-477a-851d-645da56f3676") + (property "Reference" "#PWR01" + (at 88.9 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 91.44 82.5499 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 95.25 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 95.25 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 95.25 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "eecb7451-c6c0-4e11-9358-31d7148f00bb") + ) + (instances + (project "HackPanel" + (path "/88921c59-b6f9-4a2f-b20b-ec1236ab41f9" + (reference "#PWR01") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:RotaryEncoder_Switch") + (at 102.87 80.01 180) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "52af479c-345a-4ded-bd16-fad66f29ea1a") + (property "Reference" "SW1" + (at 102.87 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "RotaryEncoder_Switch" + (at 102.87 87.63 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm" + (at 106.68 84.074 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 102.87 86.614 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Rotary encoder, dual channel, incremental quadrate outputs, with switch" + (at 102.87 80.01 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "C" + (uuid "63097bfa-18da-488e-93ae-d34a78d71a81") + ) + (pin "B" + (uuid "1b6e317c-dfad-4180-b39b-036a2101a56a") + ) + (pin "S2" + (uuid "6ea198c0-dd32-46f9-85e7-9a7148db5eb0") + ) + (pin "S1" + (uuid "cdd9e6b8-3d1d-4702-b6c3-45addb78445c") + ) + (pin "A" + (uuid "a6177286-ed95-457a-9d4a-c1ffc8451935") + ) + (instances + (project "HackPanel" + (path "/88921c59-b6f9-4a2f-b20b-ec1236ab41f9" + (reference "SW1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push") + (at 204.47 130.81 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "557a704f-2c87-41b2-9d4e-eb67dcd7dc9d") + (property "Reference" "SW6" + (at 204.47 123.19 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push" + (at 204.47 125.73 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_2.75u_PCB" + (at 204.47 125.73 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 204.47 125.73 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, generic, two pins" + (at 204.47 130.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "b7f3fb3a-f3ab-4829-ba8b-c84319fdf44b") + ) + (pin "1" + (uuid "5cf2e1d8-fd4e-4d3f-8a2f-19a9cbc86117") + ) + (instances + (project "HackPanel" + (path "/88921c59-b6f9-4a2f-b20b-ec1236ab41f9" + (reference "SW6") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 120.65 60.96 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "5914370b-e8be-4843-8048-0d99e4d764ff") + (property "Reference" "R2" + (at 120.65 54.61 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "5k" + (at 120.65 57.15 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal" + (at 120.65 62.738 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 120.65 60.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 120.65 60.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "910a01f1-3b22-470a-a917-64395b76341b") + ) + (pin "1" + (uuid "4dd62904-15f3-4ef0-aafd-e8f797827d8a") + ) + (instances + (project "HackPanel" + (path "/88921c59-b6f9-4a2f-b20b-ec1236ab41f9" + (reference "R2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push") + (at 204.47 95.25 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "9e0e896b-43ba-4280-a34d-7f65bc2a9acd") + (property "Reference" "SW3" + (at 204.47 87.63 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push" + (at 204.47 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 204.47 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 204.47 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, generic, two pins" + (at 204.47 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "8419933e-d773-4069-b518-ad78a3ae02e7") + ) + (pin "1" + (uuid "8fff0dc5-fbeb-4ed7-9e35-09a858065d9b") + ) + (instances + (project "HackPanel" + (path "/88921c59-b6f9-4a2f-b20b-ec1236ab41f9" + (reference "SW3") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push") + (at 204.47 107.95 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "ce9eee31-859b-4879-944a-6fe3d62f719d") + (property "Reference" "SW4" + (at 204.47 100.33 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push" + (at 204.47 102.87 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 204.47 102.87 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 204.47 102.87 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, generic, two pins" + (at 204.47 107.95 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "0ac225db-9b1b-480e-a718-0a266f262631") + ) + (pin "1" + (uuid "0fe5023e-9472-4e23-b15e-73d1da44dbf3") + ) + (instances + (project "HackPanel" + (path "/88921c59-b6f9-4a2f-b20b-ec1236ab41f9" + (reference "SW4") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Seeed_Studio_XIAO_Series:XIAO-RP2040-DIP") + (at 134.62 67.31 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "cf813127-acd8-4dc0-b5bc-be745133cecb") + (property "Reference" "U1" + (at 148.59 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "XIAO-RP2040-DIP" + (at 148.59 67.31 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Seeed Studio XIAO Series Library:XIAO-RP2040-DIP" + (at 149.098 99.568 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 134.62 67.31 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 134.62 67.31 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "13" + (uuid "5e0f95b9-bf09-41e5-9122-f59a096b6964") + ) + (pin "1" + (uuid "a036cf1c-0a24-4e45-96c8-b4bfe76168fb") + ) + (pin "12" + (uuid "69ac9355-3d95-4a3b-86a3-35ed8a15f1db") + ) + (pin "2" + (uuid "7937a107-3360-4e56-ac10-75b29cd278fc") + ) + (pin "6" + (uuid "89061558-0bc8-4c40-98ab-8459bcccaeb7") + ) + (pin "10" + (uuid "e425ec3e-4bd1-4c2d-a2af-97c1679dcc8d") + ) + (pin "11" + (uuid "7843823c-fe42-4919-bba6-6c6c30a95aea") + ) + (pin "9" + (uuid "21227a55-ee16-46d5-bef2-a14553eaba89") + ) + (pin "14" + (uuid "1d130e4d-8523-4832-8e47-9ca9335d0c6c") + ) + (pin "4" + (uuid "41c4eb08-9be1-44fe-bbd3-283391d5005e") + ) + (pin "3" + (uuid "8a42c237-4057-4c87-9eb1-9b47f2b25d03") + ) + (pin "5" + (uuid "7ca21912-015b-4baa-afd2-d0ae94a90f24") + ) + (pin "8" + (uuid "c6616696-fafb-4b81-bb74-aa74e33889dc") + ) + (pin "7" + (uuid "354f5ff3-9c95-4796-968b-f7ac23a3c80d") + ) + (instances + (project "HackPanel" + (path "/88921c59-b6f9-4a2f-b20b-ec1236ab41f9" + (reference "U1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 120.65 52.07 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "e3d67fab-fa9c-4acf-936d-4042fe093aa3") + (property "Reference" "R1" + (at 119.3799 49.53 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "5k" + (at 121.9199 49.53 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal" + (at 120.65 53.848 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 120.65 52.07 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 120.65 52.07 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "10c5c9c0-03aa-4f4b-9d16-9a2fa76abf00") + ) + (pin "1" + (uuid "69ccf95c-810f-4a88-94ff-2156b7079ded") + ) + (instances + (project "HackPanel" + (path "/88921c59-b6f9-4a2f-b20b-ec1236ab41f9" + (reference "R1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 166.37 76.2 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "f3829363-66c2-4e27-b89d-c853efa232a9") + (property "Reference" "#PWR03" + (at 172.72 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 170.18 76.1999 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 166.37 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 166.37 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 166.37 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "64b87f50-16d3-46e9-bb6a-b2347203cc47") + ) + (instances + (project "HackPanel" + (path "/88921c59-b6f9-4a2f-b20b-ec1236ab41f9" + (reference "#PWR03") + (unit 1) + ) + ) + ) + ) + (sheet_instances + (path "/" + (page "1") + ) + ) +) diff --git a/hackpads/HackPanel/Production/HackPanel.stl b/hackpads/HackPanel/Production/HackPanel.stl new file mode 100644 index 0000000000..f6d93d5a57 Binary files /dev/null and b/hackpads/HackPanel/Production/HackPanel.stl differ diff --git a/hackpads/HackPanel/Production/KMK/main.py b/hackpads/HackPanel/Production/KMK/main.py new file mode 100644 index 0000000000..f07c8e1a44 --- /dev/null +++ b/hackpads/HackPanel/Production/KMK/main.py @@ -0,0 +1,50 @@ +import board +from kmk.kmk_keyboard import KMKKeyboard +from kmk.keys import KC +from kmk.modules.encoder import EncoderHandler +from kmk.handlers.sequences import send_string +from kmk.modules.layers import Layers + +keyboard = KMKKeyboard() +encoder_handler = EncoderHandler() +layers = Layers() + +keyboard.modules = [layers, encoder_handler] + +keyboard.col_pins = [] +keyboard.row_pins = [] +keyboard.direct_pins = [ + board.GPIO26, + board.GPIO27, + board.GPIO28, + board.GPIO29, + board.GPIO6, + board.GPIO7, +] + +encoder_handler.pins = ((board.GPIO2, board.GPIO3, board.GPIO7, False),) + +_______ = KC.TRNS +XXXXXXX = KC.NO + +MEDIA_MUTE = KC.MUTE +MEDIA_VOLUP = KC.AUDIO_VOL_UP +MEDIA_VOLDN = KC.AUDIO_VOL_DOWN + +keyboard.keymap = [ + [ + KC.W, + KC.A, + KC.S, + KC.D, + KC.SPACE, + MEDIA_MUTE + ] +] + +encoder_handler.map = [ + ((MEDIA_VOLUP, MEDIA_VOLDN, MEDIA_MUTE),) +] + +if __name__ == '__main__': + keyboard.go() \ No newline at end of file diff --git a/hackpads/HackPanel/Production/gerbers.zip b/hackpads/HackPanel/Production/gerbers.zip new file mode 100644 index 0000000000..c30dd61b28 Binary files /dev/null and b/hackpads/HackPanel/Production/gerbers.zip differ diff --git a/hackpads/HackPanel/README.md b/hackpads/HackPanel/README.md new file mode 100644 index 0000000000..94681d4b97 --- /dev/null +++ b/hackpads/HackPanel/README.md @@ -0,0 +1,51 @@ +# HackPanel + +HackpPanel is a 5 key macropad with a rotary encoder. HackPanel uses KMK for it's firmware. + +## Features: +- Special case designed with blender +- EC11 Rotary encoder for volume control +- 5 Customizationable keys +- Utilizes the Xiao RP2040's onboard RGB LED + +## CAD Model: +HackPanel focuses on simplicity, meaning no screws. to attach the top and bottom, the pieces perfectly fit together, and the bottom of the PCB has no traces or vias so everything is attachable with simple glue or adhesive, including the case. + +It has 2 pieces in 1 print file while still following the printing diameters. The top piece is branded and perfectly fits into the bottom piece. + +Schematic + +Made in Blender. Very Simple. + + +## PCB +This is my PCB, made in KiCad. + +Schematic +Schematic + +PCB +Schematic + + +## Firmware Overview +This hackpad uses KMK firmware for the Xiao RP2040. + +- the rotary encoder controls volume. press to mute/unmute +- The 5 keys currently act as customizationable macro keys, but can also be used as arrow and space bar keys + + +I shouldn't need to change anything, it's perfectly fine to me. + +## BOM: +This is everything needed to make HackPanel: + +- 5x Cherry MX Switches +- 5x DSA Keycaps +- 1x EC11 Rotary Encoder +- 1x XIAO RP2040 +- 1x Case (2 parts, 1 file) + + +## Extra stuff +There's not much to say, but it was an interesting challenge and I learned a lot. \ No newline at end of file