From eca3eb051f71b3a159e874dcc9875f444d7146ba Mon Sep 17 00:00:00 2001 From: Marco Massarelli Date: Wed, 10 May 2023 13:19:26 -0400 Subject: [PATCH] Switch config and footprints to corney-island --- input/config.yaml | 1073 +++++++-------------- input/footprints/promicro_pretty.js | 1369 +++++++++++++++++++++++++++ input/footprints/reset_switch.js | 41 + input/footprints/sod-123w.js | 58 ++ input/footprints/via.js | 18 + 5 files changed, 1829 insertions(+), 730 deletions(-) create mode 100644 input/footprints/promicro_pretty.js create mode 100644 input/footprints/reset_switch.js create mode 100644 input/footprints/sod-123w.js create mode 100644 input/footprints/via.js diff --git a/input/config.yaml b/input/config.yaml index 20310f9..e1fb48c 100644 --- a/input/config.yaml +++ b/input/config.yaml @@ -1,762 +1,375 @@ +vars: + version: &kb_version 'Corney Island v0.1' + units: - kx: cx - ky: cy - px: kx - py: ky - kxo: 0.5 * kx - kyo: 0.5 * ky + # Key and keycap measures + kx: u # spacing between key centers (X-axis) + ky: u # spacing between key centers (X-axis) + ks: 19 # horizontal space between columns (default: 19) + kp: 19 # vertical padding between keys (deafult: 19) + kcow: 14 # key cutout hole width (cherry: 14, choc: 13.8) + kcoh: 14 # key cutout hole height (cherry: 14, choc: 13.8) + keycw: 18 # keycap width (cherry: 18, choc: 17.5) + keych: 18 # keycap height (cherry: 18, choc: 16.5) + hand_rotation: 0 - # PG1232 plate cutout - plate_kx: 13.6 - plate_ky: 12.6 + # Physical measures + screw_radius: 1.1 # M2 screws + spacer_radius: 2.05 # M2 standoffs + fillet_radius: 0.5 - # Stabilizer dimensions - stabilizer_width: 7 - stabilizer_height: 14 - stabilizer_offset: -1 # This means south stabs, use `orient` to rotate them for north facing scenarios - stabilizer_spacing_2u: u / 2 + stabilizer_width / 2 + ((23.8 / 2) - (14 / 2) - (stabilizer_width / 2)) # The complex formula has two magic numbers. 14 is the size of a switch cutout for a plate. 23.8 is the distance between each stabilizer on a 2-2.75u stabilizer, as specified by Cherry - stabilizer_spacing_3u: u * ((3 - 1) / 2) - - # Font units - font_x: 1 - font_y: 1 - font_xo: 0.5 font_x - font_yo: 0.5 * font_y - - # Nice Nano - # The nice nano footprint's center doesn't account - # for the 2.54mm "overhang" of the PCB beyond the pins. - mcu_overhang_y: 2.54 - mcu_spacing_x: 2.72 - mcu_x: 17.78 + mcu_spacing_x - mcu_y: 30.48 + mcu_overhang_y - mcu_xo: 0.5 * mcu_x - mcu_yo: 0.5 * mcu_y + 0.5 * mcu_overhang_y - - # Nice!View display - disp_x: 14 - disp_y: 36 - disp_jumper_y: 2.6 - disp_xo: 0.5 * disp_x - disp_yo: 0.5 * disp_y - - # Battery Connector - batc_x: 4.3 - batc_y: 4.6 - batc_xo: 0.5 * batc_x - batc_yo: 0.5 * batc_y - - # Battery Pads - batp_x: 3.75 - batp_y: 2.5 - batp_xo: 0.5 * batp_x - batp_yo: 0.5 * batp_y - - # Power Switch - sw_power_x: 3.1 - sw_power_y: 8.3 - sw_power_xo: 0.5 * sw_power_x - sw_power_yo: 0.5 * sw_power_y - - # Reset Switch - sw_reset_x: 3.4 - sw_reset_y: 5 - sw_reset_xo: 0.5 * sw_reset_x - sw_reset_yo: 0.5 * sw_reset_y + # Thumb splay + splay_thumb_middle: -15 + splay_thumb_far: -15 points: - key: - padding: ky - spread: kx - width: kx - height: ky zones: + + # Main key matrix matrix: - # Fix placement on KiCAD sheet. + key: + padding: kp + spread: ks + tags: key anchor: - shift: [35, -100] - key.tags: key + rotate: hand_rotation + shift: [100, -100] # Fix KiCad placement columns: - left: - key: - spread: kx * 0.25 - width: kx * 1.5 - asym: left - column_net: C0 - q: - key: - spread: kx * 1.25 - column_net: C1 - w: - key.column_net: C2 - e: - key.column_net: C3 - r: - key.column_net: C4 - t: - key.column_net: C5 - + outer: + key: + column_net: C0 + pinky: + key: + column_net: C1 + ring: + key: + stagger: 0.25 kp + column_net: C2 + middle: + key: + stagger: 0.125 kp + column_net: C3 + index: + key: + stagger: -0.125 kp + column_net: C4 + inner: + key: + stagger: -0.125 kp + column_net: C5 rows: bottom: - row_net: R4 + row_net: R0 home: - row_net: R3 + row_net: R1 top: - row_net: R2 - num: - row_net: R1 - f: - row_net: R0 + row_net: R2 - leftcluster: + # Thumb cluster + thumbfan: key: - spread: kx * 1.5 - width: kx * 1.5 - kx: kx * 1.5 - asym: left + padding: kp + spread: ks tags: key anchor: - ref: matrix_left_bottom - shift: [0, -2ky] + ref: matrix_index_bottom + shift: [-0.5 ks, -kp -0.5] columns: - one: - key.column_net: C0 - two: - key.column_net: C1 - three: - key.column_net: C2 + near: + key: + column_net: C3 + middle: + key: + splay: splay_thumb_middle + origin: [-0.5 ks, -0.5 kp] + column_net: C4 + far: + key: + splay: splay_thumb_far + origin: [0.5 ks, -0.55 kp] + rotate: 90 + column_net: C5 rows: - down: - row_net: R7 - up: - row_net: R6 - rightcluster: - key: - asym: right - tags: key - anchor: - ref: matrix_left_bottom - shift: [0.25 * kx, -2ky] - columns: - one: - key.column_net: C0 - two: - key.column_net: C1 - three: - key.column_net: C2 - rows: - down: - row_net: R7 - up: - row_net: R7 - - bigenters: - key: - spread: kx * 1.5 - width: kx * 1.5 - kx: kx * 1.5 - padding: 2ky - height: 2ky - tags: [key, enter, 2u_stabilizer_90] - - anchor: - ref: matrix_t_top - shift: [kx * 1.25, -1.5ky] - columns: - one: - key.column_net: C6 - rows: - enter: - row_net: R2 - back: - padding: ky * 1.5 - row_net: R1 - f: - height: ky - tags: key - row_net: R0 - spaces: - key.tags: key - anchor: - ref: leftcluster_three_up - shift: [0.25 * kx, 0] - columns: - alt: - key: - asym: right - column_net: C3 - space: - key: - width: 3.5kx - spread: 2.25kx - column_net: C4 - tags: [key, space, 3u_stabilizer] - rows: - space: - row_net: R6 - rightsym: - anchor: - ref: matrix_q_bottom - shift: [-kx, 0] - key: - asym: right - tags: key - columns: - sym: - key.column_net: C0 - rows: - bottom: - row_net: R4 home: - row_net: R3 - top: - row_net: R2 - num: - row_net: R1 - f: - row_net: R0 - right: - anchor: - ref: rightsym_sym_bottom - shift: [-kx * 1.25, -2ky] - key: - asym: right - spread: kx * 1.5 - width: kx * 1.5 - kx: kx * 1.5 - tags: key - columns: - sym: - key.column_net: C7 - rows: - ctl_down: - row_net: R6 - ctl_up: - row_net: R5 - bottom: - row_net: R4 - home: - row_net: R3 - top: - row_net: R2 - num: - row_net: R1 - f: - row_net: R0 + row_net: R3 - # Controller - # - controller: - anchor: - ref: bigenters_one_f - shift: [0.75 * kx + mcu_xo, kyo -2.25 - mcu_yo] - key: - name: mcu - width: mcu_x - height: mcu_y - - mirror: &mirror - ref: bigenters_one_f - distance: 100 outlines: - _2u_stabilizer: # This creates the stabilizer, you just need to use its name in a `where` clause of another outline - - operation: stack - where: [2u_stabilizer] # Set this tag on the keys you want - what: rectangle - size: [stabilizer_width, stabilizer_height] - adjust: - shift: [stabilizer_spacing_2u, stabilizer_offset] - - operation: stack - where: [2u_stabilizer] - what: rectangle - size: [stabilizer_width, stabilizer_height] - adjust: - shift: [-stabilizer_spacing_2u, stabilizer_offset] + _switch_cutouts: + - what: rectangle + where: true + size: [kcow, kcoh] + + _backplate_additional_outline: + - what: rectangle + where: + - matrix_inner_top + size: [20, 3.5 kp] + adjust: + shift: [ks + (20 - ks) / 2, -1.25 kp -0.125 kp] + operation: stack + - what: rectangle + adjust: + ref: thumbfan_far_home + size: [1.5 ks, 1.75 kp] + operation: subtract + + _matrix_outline: + - what: rectangle + where: + - matrix_outer_top + - matrix_outer_home + - matrix_outer_bottom + - matrix_pinky_top + - matrix_pinky_home + - matrix_pinky_bottom + - matrix_ring_top + - matrix_ring_home + - matrix_ring_bottom + - matrix_middle_top + - matrix_middle_home + - matrix_middle_bottom + - matrix_index_top + - matrix_index_home + - matrix_index_bottom + - matrix_inner_top + - matrix_inner_home + - matrix_inner_bottom + size: [ks, kp] + + _plate_outline: + - what: outline + name: _matrix_outline + - what: rectangle + adjust: + ref: thumbfan_far_home + shift: [0, 0.275 kp] + size: [1.5 ks, 1.5 kp] + - what: rectangle + adjust: + ref: matrix_ring_bottom + shift: [0, -0.5 kp] + size: [3 ks, 0.5 kp] + - what: polygon + points: + - ref: matrix_pinky_bottom + shift: [1.5 ks, -0.5 kp] + - ref: thumbfan_near_home + shift: [-0.5 ks, -0.5 kp] + - ref: thumbfan_far_home + shift: [-0.75 ks, 0.5 kp] + - ref: thumbfan_far_home + shift: [0.75 ks, 0.5 kp] + - ref: thumbfan_near_home + shift: [-0.5 ks, 0.75 kp] + + _screws: + - &circle + what: circle + radius: screw_radius + adjust: + ref: matrix_pinky_top + shift: [-0.5 ks, -0.5 kp] + - <<: *circle + adjust: + ref: matrix_pinky_home + shift: [-0.5 ks, -0.5 kp] + - <<: *circle + adjust: + ref: matrix_inner_top + shift: [-0.5 ks, -0.5 kp + 1.4] + - <<: *circle + adjust: + ref: thumbfan_near_home + shift: [-0.7 ks -0.2, 7.1] + - <<: *circle + adjust: + ref: thumbfan_far_home + shift: [0, 0.5 kp + 2] + + _controller_overlay_screws: + - <<: *circle + adjust: + - ref: thumbfan_far_home + shift: [0.9 ks, 0.65 kp] + - <<: *circle + adjust: + - ref: thumbfan_far_home + shift: [0.9 ks, -0.25 kp] + + _spacers: + - &bigCircle + what: circle + radius: spacer_radius + adjust: + ref: matrix_pinky_top + shift: [-0.5 ks, -0.5 kp] + - <<: *bigCircle + adjust: + ref: matrix_pinky_home + shift: [-0.5 ks, -0.5 kp] + - <<: *bigCircle + adjust: + ref: matrix_inner_top + shift: [-0.5 ks, -0.5 kp + 1.4] + - <<: *bigCircle + adjust: + ref: thumbfan_near_home + shift: [-0.7 ks -0.2, 7.1] + - <<: *bigCircle + adjust: + ref: thumbfan_far_home + shift: [0, 0.5 kp + 2] + + _keycap_outlines: + - what: rectangle + fillet: 2 + where: true + size: [keycw, keych] + + _backplate_outline: + - what: outline + name: _plate_outline + - what: outline + name: _backplate_additional_outline + operation: add + + backplate: + - what: outline + name: _backplate_outline + fillet: fillet_radius + - what: outline + name: _screws + operation: subtract + + pcb: + - what: outline + name: backplate + - what: outline + name: _spacers + operation: subtract + - what: outline + name: _controller_overlay_screws + operation: subtract - _2u_stabilizer_90: # This creates the stabilizer, you just need to use its name in a `where` clause of another outline - - operation: stack - where: [2u_stabilizer_90] # Set this tag on the keys you want - what: rectangle - size: [stabilizer_height, stabilizer_width] - adjust: - shift: [stabilizer_offset, stabilizer_spacing_2u] - - operation: stack - where: [2u_stabilizer_90] - what: rectangle - size: [stabilizer_height, stabilizer_width] - adjust: - shift: [stabilizer_offset, -stabilizer_spacing_2u] + frontplate: + - what: outline + name: _plate_outline + fillet: fillet_radius + - what: outline + name: _switch_cutouts + operation: subtract + - what: outline + name: _screws + operation: subtract - _3u_stabilizer: # This creates the stabilizer, you just need to use its name in a `where` clause of another outline - - operation: stack - where: [3u_stabilizer] # Set this tag on the keys you want - what: rectangle - size: [stabilizer_width, stabilizer_height] - adjust: - shift: [stabilizer_spacing_3u, stabilizer_offset] - - operation: stack - where: [3u_stabilizer] - what: rectangle - size: [stabilizer_width, stabilizer_height] - adjust: - shift: [-stabilizer_spacing_3u, stabilizer_offset] + controller_overlay: + - what: outline + name: _backplate_additional_outline + fillet: fillet_radius + - what: outline + name: _controller_overlay_screws + operation: subtract - _keys: - - what: rectangle - where: [[key, -enter, -space]] - size: [plate_kx/2, plate_ky/2] - _enters: - - what: rectangle - where: [[key, enter]] - size: [plate_ky/2, plate_kx/2] - _spaces: - - what: rectangle - where: [[key, space]] - size: [plate_kx/2, plate_ky/2] - - _outline_left: - - what: polygon - operation: stack - fillet: 2 - points: - - ref: matrix_left_f - shift: [-kx * 0.75, ky * 0.5] - - ref: bigenters_one_f - shift: [kx * 0.75, ky * 0.5] - - ref: spaces_space_space - shift: [kx * 1.75, -ky * 0.5] - - ref: leftcluster_three_down - shift: [kx * 0.75, ky * 0.5] - - ref: leftcluster_three_down - shift: [kx * 0.75, -ky * 0.5] - - ref: leftcluster_one_down - shift: [-kx * 0.75, -ky * 0.5] - - _outline_right: - - what: polygon - operation: stack - fillet: 2 - points: - - ref: mirror_rightsym_sym_f - shift: [-kx * 2, ky * 0.5] - - ref: mirror_bigenters_one_f - shift: [kx * 0.75, ky * 0.5] - - ref: mirror_spaces_space_space - shift: [kx * 1.75, -ky * 0.5] - - ref: mirror_rightcluster_three_down - shift: [kx * 0.75, ky * 0.5] - - ref: mirror_rightcluster_three_down - shift: [kx * 0.75, -ky * 0.5] - - ref: mirror_rightcluster_one_down - shift: [-kx * 2, -ky * 0.5] - - _mcuears: - - what: rectangle - size: [mcu_x +10, 6ky] - fillet: 2 - - pcb_left: - - name: _outline_left - - operation: add - name: _mcuears - where: - ref: bigenters_one_f - shift: [0.75 * kx + mcu_x/2 -5, -2.5ky] - - pcb_right: - - name: _outline_right - - operation: add - name: _mcuears - where: - ref: mirror_bigenters_one_f - shift: [0.75 * kx + mcu_x/2 -5, -2.5ky] - - topleft: - - name: _outline_left - - operation: subtract - name: _keys - - operation: subtract - name: _enters - - operation: subtract - name: _spaces - - operation: subtract - name: _2u_stabilizer - - operation: subtract - name: _2u_stabilizer_90 - - operation: subtract - name: _3u_stabilizer - - topright: - - name: _outline_right - - operation: subtract - name: _keys - - operation: subtract - name: _enters - - operation: subtract - name: _spaces - - operation: subtract - name: _2u_stabilizer - - operation: subtract - name: _2u_stabilizer_90 - - operation: subtract - name: _3u_stabilizer - - - bottomright: - - name: pcb_right - - bottomleft: - - name: pcb_left - - # Combination preview showing outline and keys. - combined: - - name: topleft - - operation: stack - name: topright + _debug: + - what: outline + name: frontplate + operation: stack + - what: outline + name: controller_overlay + operation: stack + preview: + - what: outline + name: backplate + - what: outline + name: pcb + operation: stack + - what: outline + name: frontplate + operation: stack + - what: outline + name: controller_overlay + operation: stack + - what: outline + name: _keycap_outlines + operation: stack pcbs: - left: - outlines: - left: - outline: pcb_left - footprints: - choc: - what: chocmini - where: - - /^matrix_.*/ - - /leftcluster_.*/ - - [/^bigenters_.*/, key, -enter] - - /^spaces_.*/ - params: - keycaps: true - reverse: false - from: "{{colrow}}" - to: "{{column_net}}" - choc_enter: - what: chocmini - where: - - [/^bigenters_.*/, enter] - params: - keycaps: true - reverse: false - from: "{{colrow}}" - to: "{{column_net}}" - adjust: - rotate: 90 - diode: - what: diode - where: - - /^matrix_.*/ - - /leftcluster_.*/ - - /^spaces_.*/ - - [/^bigenters_.*/, key, -enter] - params: - from: "{{colrow}}" - to: "{{row_net}}" - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [-1.4, -6] - rotate: 180 - diode_enters: - what: diode - where: - - [/^bigenters_.*/, enter] - params: - from: "{{colrow}}" - to: "{{row_net}}" - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [6, -1.4] - rotate: 270 - backlight: - what: diode ## Fixme use LED - where: - - /^matrix_.*/ - - /leftcluster_.*/ - - [/^bigenters_.*/, key, -enter] - - /^spaces_.*/ - params: - from: "bl_{{colrow}}{{row_net}}" - to: GND - tht: false # No through hole - side: F # Top only - adjust: - shift: [0, 4.3] - rotate: 0 - backlight_enters: - what: diode ## Fixme use LED - where: - - [/^bigenters_.*/, enter] - params: - from: "bl_{{colrow}}{{row_net}}" - to: GND - tht: false # No through hole - side: F # Top only - adjust: - shift: [-4.3, 0] - rotate: 90 - resistor_backlight: - what: diode ## Fixme use resistor - where: - - /^matrix_.*/ - - /leftcluster_.*/ - - [/^bigenters_.*/, key, -enter] - - /^spaces_.*/ - params: - from: "bl_{{colrow}}{{row_net}}" - to: bl_pwr - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [0, 4.3] - rotate: 0 - resistor_backlight_enters: - what: diode ## Fixme use resistor - where: - - [/^bigenters_.*/, enter] - params: - from: "bl_{{colrow}}{{row_net}}" - to: GND - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [-4.3, 0] - rotate: 90 - # Controller Area - promicro: - what: promicro - params: - # Pin Assignments (Controller on top facing down) - # Right Side - P0: "DPD" # Display Data - P1: "DPC" # Display Clock - # GND - # GND - P2: "DPE" # Display CS (nice!view only) FIXME? ZPM default? - P3: "R1" # Row - P4: "R2" # Row - P5: "R3" # Row - P6: "R4" # Row - P7: "R5" # Row - P8: "R6" # Row - P9: "R7" # Row + corney_island: + outlines: + main: + outline: pcb - # Left Side - RAW: "BAT_P" # Battery Pos - # GND # Ground / Battery Neg - # RST # Reset pin - # VCC # External Power - P21: "C0" # Column - P20: "C1" # Column - P19: "C2" # Column - P18: "C3" # Column - P15: "C4" # Column - P14: "C5" # Column - P16: "C6" # Column - P10: "F10" # Free + footprints: + key_switches: + what: mx + where: [key] + params: + reverse: true + hotswap: true + keycaps: false + from: "{{column_net}}" + to: "{{colrow}}" + + diodes: + what: sod-123w + where: [key] + params: + from: "{{colrow}}" + to: "{{row_net}}" + adjust: + shift: [0.5 kcow + 0.5, -3.5] + rotate: 90 + + mcu: + what: promicro_pretty + where: matrix_inner_top + params: + P0: data + P21: C0 + P20: C1 + P19: C2 + P18: C3 + P15: C4 + P14: C5 + P2: SDA + P3: SCL + P4: R0 + P5: R1 + P6: R2 + P7: R3 + adjust: + shift: [19.7, 0.5 kp -0.125 kp - 19.3] + rotate: -90 - where: - ref: mcu - shift: [0, 0] - rotate: -90 - display: - what: nice_view - params: - reverse: true - MOSI: DPD - SCK: DPC - CS: DPE - show_labels: false - jumpers_at_bottom: false - where: - ref: mcu - shift: [0, -1] # Move the display down a bit to be sure the cable fits between the headers - pads_bat: - what: jstph - params: - pos: BAT_P - neg: GND - where: - ref: mcu - shift: [-batc_x, -mcu_y/2 - 5] - #rotate: 270 - reset: - what: button - params: - from: GND - to: RST - where: - ref: mcu - shift: [batc_x, -mcu_y/2 - 8] + oled: + what: oled + where: matrix_inner_top + params: + SDA: SDA + SCL: SCL + adjust: + shift: [0.5 ks + 4.16, 0.5 kp -0.125 kp - 19.3 - 22.65] + rotate: 90 - right: - outlines: - right: - outline: pcb_right - footprints: - choc: - what: chocmini - where: - - [/^mirror.*/, key, -enter] - - /rightcluster_.*/ - params: - keycaps: true - reverse: false - from: "{{colrow}}" - to: "{{column_net}}" - choc_enter: - what: chocmini - where: - - [/^mirror.*/, key, enter] - params: - keycaps: true - reverse: false - from: "{{colrow}}" - to: "{{column_net}}" - adjust: - rotate: 270 - diode: - what: diode - where: - - [/^mirror.*/, key, -enter] - - /rightcluster_.*/ - params: - from: "{{colrow}}" - to: "{{row_net}}" - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [1.4, -6] - rotate: 180 - diode_enters: - what: diode - where: - - [/^mirror.*/, key, enter] - params: - from: "{{colrow}}" - to: "{{row_net}}" - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [-6, -1.4] - rotate: 90 - backlight: - what: diode ## Fixme use LED - where: - - [/^mirror.*/, key, -enter] - - /rightcluster_.*/ - params: - from: "bl_{{colrow}}{{row_net}}" - to: GND - tht: false # No through hole - side: F # Top only - adjust: - shift: [0, 4.3] - rotate: 0 - backlight_enters: - what: diode ## Fixme use LED - where: - - [/^mirror.*/, key, enter] - params: - from: "bl_{{colrow}}{{row_net}}" - to: GND - tht: false # No through hole - side: F # Top only - adjust: - shift: [4.3, 0] - rotate: 270 - resistor_backlight: - what: diode ## Fixme use Resistor - where: - - [/^mirror.*/, key, -enter] - - /rightcluster_.*/ - params: - from: "bl_{{colrow}}{{row_net}}" - to: bl_pwr - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [0, 4.3] - rotate: 0 - resistor_backlight_enters: - what: diode ## Fixme use resistor - where: - - [/^mirror.*/, key, enter] - params: - from: "bl_{{colrow}}{{row_net}}" - to: bl_pwr - tht: false # No through hole - side: B # Bottom only - adjust: - shift: [4.3, 0] - rotate: 270 - # Controller Area - promicro: - what: promicro - params: - # Pin Assignments (Controller on top facing down) - # Right Side - P0: "DPD" # Display Data - P1: "DPC" # Display Clock - # GND - # GND - P2: "DPE" # Display CS (nice!view only) FIXME? ZPM default? - P3: "R1" # Row - P4: "R2" # Row - P5: "R3" # Row - P6: "R4" # Row - P7: "R5" # Row - P8: "R6" # Row - P9: "R7" # Row + reset_switch: + what: reset_switch + where: matrix_inner_top + params: + from: RST + to: GND + adjust: + shift: [0.5 ks + 18, 0.5 kp -0.125 kp - 19.3 - 20.65] + rotate: -90 - # Left Side - RAW: "BAT_P" # Battery Pos - # GND # Ground / Battery Neg - # RST # Reset pin - # VCC # External Power - P21: "C0" # Column - P20: "C1" # Column - P19: "C2" # Column - P18: "C3" # Column - P15: "C4" # Column - P14: "C5" # Column - P16: "C6" # Column - P10: "C7" # Column - - where: - ref: mirror_mcu - shift: [0, 0] - rotate: 90 - - display: - what: nice_view - params: - reverse: true - MOSI: DPD - SCK: DPC - CS: DPE - show_labels: false - jumpers_at_bottom: false - where: - ref: mirror_mcu - shift: [0, -1] # Move the display down a bit to be sure the cable fits between the headers - pads_bat: - what: jstph - params: - pos: BAT_P - neg: GND - where: - ref: mirror_mcu - shift: [-batc_x, -mcu_y/2 - 5] - #rotate: 270 - reset: - what: button - params: - from: GND - to: RST - where: - ref: mirror_mcu - shift: [batc_x, -mcu_y/2 - 8] + trrs: + what: trrs + where: matrix_inner_top + params: + A: J1-PadA + B: data + C: GND + D: VCC + adjust: + shift: [0.5 ks + 19.2, 0.5 kp -0.125 kp - 19.3 - 30.75] + rotate: -90 \ No newline at end of file diff --git a/input/footprints/promicro_pretty.js b/input/footprints/promicro_pretty.js new file mode 100644 index 0000000..72341d0 --- /dev/null +++ b/input/footprints/promicro_pretty.js @@ -0,0 +1,1369 @@ +// Arduino ProMicro atmega32u4au +// Take care to bridge the pads on the correct side of the pcb +// To orient the MCU up, meaning power led faces away from pcb, bridge the pads on the side of the pcb with the MCU +// To orient the MCU down, meaning power led faces the pcb, bridge the pads on the opposite side of the pcb + +module.exports = { + params: { + designator: 'MCU', + RAW: {type: 'net', value: 'RAW'}, + GND: {type: 'net', value: 'GND'}, + RST: {type: 'net', value: 'RST'}, + VCC: {type: 'net', value: 'VCC'}, + P21: {type: 'net', value: 'P21'}, + P20: {type: 'net', value: 'P20'}, + P19: {type: 'net', value: 'P19'}, + P18: {type: 'net', value: 'P18'}, + P15: {type: 'net', value: 'P15'}, + P14: {type: 'net', value: 'P14'}, + P16: {type: 'net', value: 'P16'}, + P10: {type: 'net', value: 'P10'}, + P1: {type: 'net', value: 'P1'}, + P0: {type: 'net', value: 'P0'}, + P2: {type: 'net', value: 'P2'}, + P3: {type: 'net', value: 'P3'}, + P4: {type: 'net', value: 'P4'}, + P5: {type: 'net', value: 'P5'}, + P6: {type: 'net', value: 'P6'}, + P7: {type: 'net', value: 'P7'}, + P8: {type: 'net', value: 'P8'}, + P9: {type: 'net', value: 'P9'} + }, + body: p => { + return ` + (module ProMicro (layer F.Cu) (tedit 6135B927) + ${p.at /* parametric position */} + + ${'' /* footprint description, tags and reference */} + (descr "Solder-jumper reversible Pro Micro footprint") + (tags "promicro ProMicro reversible solder jumper") + (fp_text reference "${p.ref}" (at -16.256 -0.254 ${p.rot + 90}) (layer F.SilkS) ${p.ref_hide} + (effects (font (size 1 1) (thickness 0.15))) + ) + + ${''/* extra border around "RAW", in case the rectangular shape is not distinctive enough */} + (fp_line (start -15.24 6.35) (end -12.7 6.35) (layer F.SilkS) (width 0.15)) + (fp_line (start -15.24 6.35) (end -15.24 8.89) (layer F.SilkS) (width 0.15)) + (fp_line (start -12.7 6.35) (end -12.7 8.89) (layer F.SilkS) (width 0.15)) + (fp_line (start -12.7 8.89) (end -15.24 8.89) (layer F.SilkS) (width 0.15)) + (fp_line (start -15.24 -6.35) (end -12.7 -6.35) (layer B.SilkS) (width 0.15)) + (fp_line (start -15.24 -6.35) (end -15.24 -8.89) (layer B.SilkS) (width 0.15)) + (fp_line (start -12.7 -6.35) (end -12.7 -8.89) (layer B.SilkS) (width 0.15)) + (fp_line (start -12.7 -8.89) (end -15.24 -8.89) (layer B.SilkS) (width 0.15)) + + ${''/* illustration of the (possible) USB port overhang */} + (fp_line (start -19.304 -3.81) (end -14.224 -3.81) (layer Dwgs.User) (width 0.15)) + (fp_line (start -19.304 3.81) (end -19.304 -3.81) (layer Dwgs.User) (width 0.15)) + (fp_line (start -14.224 3.81) (end -19.304 3.81) (layer Dwgs.User) (width 0.15)) + (fp_line (start -14.224 -3.81) (end -14.224 3.81) (layer Dwgs.User) (width 0.15)) + + (fp_circle (center 13.97 0.762) (end 14.095 0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center 13.97 0.762) (end 14.095 0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center 13.97 -0.762) (end 14.095 -0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center 13.97 -0.762) (end 14.095 -0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center 11.43 0.762) (end 11.555 0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center 11.43 0.762) (end 11.555 0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center 11.43 -0.762) (end 11.555 -0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center 11.43 -0.762) (end 11.555 -0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center 8.89 0.762) (end 9.015 0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center 8.89 0.762) (end 9.015 0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center 8.89 -0.762) (end 9.015 -0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center 8.89 -0.762) (end 9.015 -0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center 6.35 0.762) (end 6.475 0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center 6.35 0.762) (end 6.475 0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center 6.35 -0.762) (end 6.475 -0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center 6.35 -0.762) (end 6.475 -0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center 3.81 0.762) (end 3.935 0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center 3.81 0.762) (end 3.935 0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center 3.81 -0.762) (end 3.935 -0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center 3.81 -0.762) (end 3.935 -0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center 1.27 0.762) (end 1.395 0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center 1.27 0.762) (end 1.395 0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center 1.27 -0.762) (end 1.395 -0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center 1.27 -0.762) (end 1.395 -0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center -1.27 0.762) (end -1.145 0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center -1.27 0.762) (end -1.145 0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center -1.27 -0.762) (end -1.145 -0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center -1.27 -0.762) (end -1.145 -0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center -3.81 0.762) (end -3.685 0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center -3.81 0.762) (end -3.685 0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center -3.81 -0.762) (end -3.685 -0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center -3.81 -0.762) (end -3.685 -0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center -6.35 0.762) (end -6.225 0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center -6.35 0.762) (end -6.225 0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center -6.35 -0.762) (end -6.225 -0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center -6.35 -0.762) (end -6.225 -0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center -8.89 0.762) (end -8.765 0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center -8.89 0.762) (end -8.765 0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center -8.89 -0.762) (end -8.765 -0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center -8.89 -0.762) (end -8.765 -0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center -11.43 -0.762) (end -11.305 -0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center -11.43 -0.762) (end -11.305 -0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center -11.43 0.762) (end -11.305 0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center -11.43 0.762) (end -11.305 0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center -13.97 0.762) (end -13.845 0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center -13.97 0.762) (end -13.845 0.762) (layer F.Mask) (width 0.25)) + (fp_circle (center -13.97 -0.762) (end -13.845 -0.762) (layer B.Mask) (width 0.25)) + (fp_circle (center -13.97 -0.762) (end -13.845 -0.762) (layer F.Mask) (width 0.25)) + (fp_poly (pts (xy 14.478 -5.08) (xy 13.462 -5.08) (xy 13.462 -6.096) (xy 14.478 -6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy 11.938 -5.08) (xy 10.922 -5.08) (xy 10.922 -6.096) (xy 11.938 -6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy 9.398 -5.08) (xy 8.382 -5.08) (xy 8.382 -6.096) (xy 9.398 -6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy 6.858 -5.08) (xy 5.842 -5.08) (xy 5.842 -6.096) (xy 6.858 -6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy 4.318 -5.08) (xy 3.302 -5.08) (xy 3.302 -6.096) (xy 4.318 -6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy 1.778 -5.08) (xy 0.762 -5.08) (xy 0.762 -6.096) (xy 1.778 -6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy -0.762 -5.08) (xy -1.778 -5.08) (xy -1.778 -6.096) (xy -0.762 -6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy -3.302 -5.08) (xy -4.318 -5.08) (xy -4.318 -6.096) (xy -3.302 -6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy -5.842 -5.08) (xy -6.858 -5.08) (xy -6.858 -6.096) (xy -5.842 -6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy -8.382 -5.08) (xy -9.398 -5.08) (xy -9.398 -6.096) (xy -8.382 -6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy -10.922 -5.08) (xy -11.938 -5.08) (xy -11.938 -6.096) (xy -10.922 -6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy -13.462 -5.08) (xy -14.478 -5.08) (xy -14.478 -6.096) (xy -13.462 -6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy 13.462 5.08) (xy 14.478 5.08) (xy 14.478 6.096) (xy 13.462 6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy 10.922 5.08) (xy 11.938 5.08) (xy 11.938 6.096) (xy 10.922 6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy 8.382 5.08) (xy 9.398 5.08) (xy 9.398 6.096) (xy 8.382 6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy 5.842 5.08) (xy 6.858 5.08) (xy 6.858 6.096) (xy 5.842 6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy 3.302 5.08) (xy 4.318 5.08) (xy 4.318 6.096) (xy 3.302 6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy 0.762 5.08) (xy 1.778 5.08) (xy 1.778 6.096) (xy 0.762 6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy -1.778 5.08) (xy -0.762 5.08) (xy -0.762 6.096) (xy -1.778 6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy -4.318 5.08) (xy -3.302 5.08) (xy -3.302 6.096) (xy -4.318 6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy -6.858 5.08) (xy -5.842 5.08) (xy -5.842 6.096) (xy -6.858 6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy -9.398 5.08) (xy -8.382 5.08) (xy -8.382 6.096) (xy -9.398 6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy -11.938 5.08) (xy -10.922 5.08) (xy -10.922 6.096) (xy -11.938 6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy -14.478 5.08) (xy -13.462 5.08) (xy -13.462 6.096) (xy -14.478 6.096)) (layer B.Mask) (width 0.1)) + (fp_poly (pts (xy -13.462 -5.08) (xy -14.478 -5.08) (xy -14.478 -6.096) (xy -13.462 -6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy 1.778 -5.08) (xy 0.762 -5.08) (xy 0.762 -6.096) (xy 1.778 -6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy -10.922 -5.08) (xy -11.938 -5.08) (xy -11.938 -6.096) (xy -10.922 -6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy -8.382 -5.08) (xy -9.398 -5.08) (xy -9.398 -6.096) (xy -8.382 -6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy -3.302 -5.08) (xy -4.318 -5.08) (xy -4.318 -6.096) (xy -3.302 -6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy -0.762 -5.08) (xy -1.778 -5.08) (xy -1.778 -6.096) (xy -0.762 -6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy 6.858 -5.08) (xy 5.842 -5.08) (xy 5.842 -6.096) (xy 6.858 -6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy 11.938 -5.08) (xy 10.922 -5.08) (xy 10.922 -6.096) (xy 11.938 -6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy -5.842 -5.08) (xy -6.858 -5.08) (xy -6.858 -6.096) (xy -5.842 -6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy 4.318 -5.08) (xy 3.302 -5.08) (xy 3.302 -6.096) (xy 4.318 -6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy 9.398 -5.08) (xy 8.382 -5.08) (xy 8.382 -6.096) (xy 9.398 -6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy 14.478 -5.08) (xy 13.462 -5.08) (xy 13.462 -6.096) (xy 14.478 -6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy 13.462 5.08) (xy 14.478 5.08) (xy 14.478 6.096) (xy 13.462 6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy 10.922 5.08) (xy 11.938 5.08) (xy 11.938 6.096) (xy 10.922 6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy 8.382 5.08) (xy 9.398 5.08) (xy 9.398 6.096) (xy 8.382 6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy 5.842 5.08) (xy 6.858 5.08) (xy 6.858 6.096) (xy 5.842 6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy 3.302 5.08) (xy 4.318 5.08) (xy 4.318 6.096) (xy 3.302 6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy 0.762 5.08) (xy 1.778 5.08) (xy 1.778 6.096) (xy 0.762 6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy -1.778 5.08) (xy -0.762 5.08) (xy -0.762 6.096) (xy -1.778 6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy -4.318 5.08) (xy -3.302 5.08) (xy -3.302 6.096) (xy -4.318 6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy -6.858 5.08) (xy -5.842 5.08) (xy -5.842 6.096) (xy -6.858 6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy -9.398 5.08) (xy -8.382 5.08) (xy -8.382 6.096) (xy -9.398 6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy -11.938 5.08) (xy -10.922 5.08) (xy -10.922 6.096) (xy -11.938 6.096)) (layer F.Mask) (width 0.1)) + (fp_poly (pts (xy -14.478 5.08) (xy -13.462 5.08) (xy -13.462 6.096) (xy -14.478 6.096)) (layer F.Mask) (width 0.1)) + (pad "" thru_hole circle (at -13.97 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask) + (zone_connect 0)) + (pad "" thru_hole circle (at -11.43 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at -8.89 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at -6.35 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at -3.81 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at -1.27 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at 1.27 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at 3.81 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at 6.35 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at 8.89 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at 11.43 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at 13.97 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at 13.97 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at 11.43 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at 8.89 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at 6.35 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at 3.81 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at 1.27 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at -1.27 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at -3.81 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at -6.35 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at -8.89 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at -11.43 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" thru_hole circle (at -13.97 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask)) + (pad "" smd custom (at -13.97 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 24 smd custom (at -13.97 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P1.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -13.97 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" thru_hole rect (at -13.97 7.62 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers F.Cu F.Mask) + (zone_connect 0)) + (pad "" thru_hole rect (at -13.97 -7.62 ${p.rot}) (size 1.6 1.6) (drill 1.1) (layers B.Cu B.Mask) + (zone_connect 0)) + (pad "" smd custom (at -11.43 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -11.43 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 23 smd custom (at -11.43 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P0.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -8.89 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -8.89 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 22 smd custom (at -8.89 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.GND.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -6.35 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -6.35 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 21 smd custom (at -6.35 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.GND.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -3.81 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -3.81 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 20 smd custom (at -3.81 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P2.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -1.27 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -1.27 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 19 smd custom (at -1.27 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P3.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 1.27 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 1.27 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 18 smd custom (at 1.27 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P4.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 3.81 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 3.81 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 17 smd custom (at 3.81 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P5.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 6.35 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 6.35 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 16 smd custom (at 6.35 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P6.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 8.89 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 8.89 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 15 smd custom (at 8.89 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P7.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 11.43 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 11.43 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 14 smd custom (at 11.43 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P8.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 13.97 6.35 ${p.rot + 180}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 13.97 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 13 smd custom (at 13.97 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P9.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad 1 smd custom (at -13.97 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.RAW.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad 3 smd custom (at -8.89 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.RST.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -8.89 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -8.89 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad "" smd custom (at -13.97 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad "" smd custom (at -11.43 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad 2 smd custom (at -11.43 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.GND.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -13.97 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad 4 smd custom (at -6.35 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.VCC.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -11.43 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad "" smd custom (at -6.35 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 6 smd custom (at -1.27 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P20.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad 7 smd custom (at 1.27 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P19.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 13.97 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 1.27 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad "" smd custom (at 8.89 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad 8 smd custom (at 3.81 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P18.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 1.27 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad 12 smd custom (at 13.97 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P10.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 3.81 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad "" smd custom (at 6.35 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 13.97 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad "" smd custom (at -3.81 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 3.81 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -1.27 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad 9 smd custom (at 6.35 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P15.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -6.35 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -3.81 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad "" smd custom (at -1.27 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad "" smd custom (at 6.35 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 10 smd custom (at 8.89 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P14.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 8.89 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad "" smd custom (at 11.43 -5.842 ${p.rot}) (size 0.1 0.1) (layers F.Cu F.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 11 smd custom (at 11.43 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P16.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 11.43 -6.35 ${p.rot}) (size 0.25 1) (layers F.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad 5 smd custom (at -3.81 -4.826 ${p.rot}) (size 1.2 0.5) (layers F.Cu F.Mask) ${p.P21.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -13.97 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad 1 smd custom (at -13.97 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.RAW.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -13.97 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad "" smd custom (at -11.43 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -11.43 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 2 smd custom (at -11.43 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -8.89 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -8.89 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 3 smd custom (at -8.89 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.RST.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -6.35 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -6.35 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 4 smd custom (at -6.35 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.VCC.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -3.81 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -3.81 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 5 smd custom (at -3.81 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P21.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -1.27 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -1.27 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 6 smd custom (at -1.27 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P20.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 1.27 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 1.27 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 7 smd custom (at 1.27 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P19.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 3.81 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 3.81 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 8 smd custom (at 3.81 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P18.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 6.35 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 6.35 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 9 smd custom (at 6.35 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P15.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 8.89 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 8.89 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 10 smd custom (at 8.89 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P14.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 11.43 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 11.43 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 11 smd custom (at 11.43 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P16.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 13.97 6.35 ${p.rot + 180}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 13.97 5.842 ${p.rot + 180}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 12 smd custom (at 13.97 4.826 ${p.rot + 180}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P10.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -13.97 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -13.97 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 24 smd custom (at -13.97 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P1.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad 23 smd custom (at -11.43 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P0.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -11.43 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -11.43 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 22 smd custom (at -8.89 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.GND.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -8.89 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -8.89 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 21 smd custom (at -6.35 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.GND.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -6.35 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -6.35 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 20 smd custom (at -3.81 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P2.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -3.81 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -3.81 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 19 smd custom (at -1.27 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P3.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at -1.27 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at -1.27 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 18 smd custom (at 1.27 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P4.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 1.27 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 1.27 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 17 smd custom (at 3.81 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P5.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 3.81 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 3.81 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 16 smd custom (at 6.35 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P6.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 6.35 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 6.35 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 15 smd custom (at 8.89 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P7.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 8.89 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 8.89 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 14 smd custom (at 11.43 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P8.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 11.43 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 11.43 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + (pad 13 smd custom (at 13.97 -4.826 ${p.rot}) (size 1.2 0.5) (layers B.Cu B.Mask) ${p.P9.str} + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 0) (xy -0.6 0) (xy -0.6 -1) (xy 0 -0.4) (xy 0.6 -1) + ) (width 0)) + )) + (pad "" smd custom (at 13.97 -6.35 ${p.rot}) (size 0.25 1) (layers B.Cu) + (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + )) + (pad "" smd custom (at 13.97 -5.842 ${p.rot}) (size 0.1 0.1) (layers B.Cu B.Mask) + (clearance 0.1) (zone_connect 0) + (options (clearance outline) (anchor rect)) + (primitives + (gr_poly (pts + (xy 0.6 -0.4) (xy -0.6 -0.4) (xy -0.6 -0.2) (xy 0 0.4) (xy 0.6 -0.2) + ) (width 0)) + )) + ) + (segment (start ${p.xy(-5.584, -1.528)}) (end ${p.xy(-5.584, -4.06)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-5.584, -4.06)}) (end ${p.xy(-6.35, -4.826)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-6.35, -0.762)}) (end ${p.xy(-5.584, -1.528)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-6.35, -0.762)}) (end ${p.xy(-7.116, 0.004)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-7.116, 0.004)}) (end ${p.xy(-7.116, 4.06)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-7.116, 4.06)}) (end ${p.xy(-6.35, 4.826)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-11.43, -0.762)}) (end ${p.xy(-10.664, -1.528)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-9.643779, 4.065901)}) (end ${p.xy(-8.877779, 4.831901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-10.664, -1.528)}) (end ${p.xy(-10.664, -4.06)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-9.643779, 1.533901)}) (end ${p.xy(-9.643779, 4.065901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-6.337779, 0.767901)}) (end ${p.xy(-7.103779, 1.533901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-8.877779, 0.767901)}) (end ${p.xy(-9.643779, 1.533901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-7.103779, 4.065901)}) (end ${p.xy(-6.337779, 4.831901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-7.103779, 1.533901)}) (end ${p.xy(-7.103779, 4.065901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-10.664, -4.06)}) (end ${p.xy(-11.43, -4.826)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-6.337779, 0.767901)}) (end ${p.xy(-5.571779, 0.001901)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-8.111779, -4.054099)}) (end ${p.xy(-8.877779, -4.820099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-8.111779, 0.001901)}) (end ${p.xy(-8.111779, -4.054099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-8.877779, 0.767901)}) (end ${p.xy(-8.111779, 0.001901)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-5.571779, 0.001901)}) (end ${p.xy(-5.571779, -4.054099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-11.43, -0.762)}) (end ${p.xy(-12.196, 0.004)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-12.196, 4.06)}) (end ${p.xy(-11.43, 4.826)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-12.196, 0.004)}) (end ${p.xy(-12.196, 4.06)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-5.571779, -4.054099)}) (end ${p.xy(-6.337779, -4.820099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(13.982221, 0.767901)}) (end ${p.xy(13.216221, 1.533901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(13.216221, 4.065901)}) (end ${p.xy(13.982221, 4.831901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(13.216221, 1.533901)}) (end ${p.xy(13.216221, 4.065901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(13.982221, 0.767901)}) (end ${p.xy(14.748221, 0.001901)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(14.748221, 0.001901)}) (end ${p.xy(14.748221, -4.054099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(14.748221, -4.054099)}) (end ${p.xy(13.982221, -4.820099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-4.563779, 4.065901)}) (end ${p.xy(-3.797779, 4.831901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-3.797779, 0.767901)}) (end ${p.xy(-4.563779, 1.533901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-4.563779, 1.533901)}) (end ${p.xy(-4.563779, 4.065901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-3.797779, 0.767901)}) (end ${p.xy(-3.031779, 0.001901)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-3.031779, 0.001901)}) (end ${p.xy(-3.031779, -4.054099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-3.031779, -4.054099)}) (end ${p.xy(-3.797779, -4.820099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-12.183779, 4.065901)}) (end ${p.xy(-11.417779, 4.831901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-12.183779, 1.533901)}) (end ${p.xy(-12.183779, 4.065901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-11.417779, 0.767901)}) (end ${p.xy(-12.183779, 1.533901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-10.651779, 0.001901)}) (end ${p.xy(-10.651779, -4.054099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-11.417779, 0.767901)}) (end ${p.xy(-10.651779, 0.001901)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-10.651779, -4.054099)}) (end ${p.xy(-11.417779, -4.820099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-14.723779, 1.533901)}) (end ${p.xy(-14.723779, 4.065901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-14.723779, 4.065901)}) (end ${p.xy(-13.957779, 4.831901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-13.957779, 0.767901)}) (end ${p.xy(-14.723779, 1.533901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-13.957779, 0.767901)}) (end ${p.xy(-13.191779, 0.001901)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-13.191779, 0.001901)}) (end ${p.xy(-13.191779, -4.054099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-13.191779, -4.054099)}) (end ${p.xy(-13.957779, -4.820099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(10.676221, 1.533901)}) (end ${p.xy(10.676221, 4.065901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(11.442221, 0.767901)}) (end ${p.xy(10.676221, 1.533901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(10.676221, 4.065901)}) (end ${p.xy(11.442221, 4.831901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(11.442221, 0.767901)}) (end ${p.xy(12.208221, 0.001901)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(12.208221, -4.054099)}) (end ${p.xy(11.442221, -4.820099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(12.208221, 0.001901)}) (end ${p.xy(12.208221, -4.054099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(8.136221, 4.065901)}) (end ${p.xy(8.902221, 4.831901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(8.902221, 0.767901)}) (end ${p.xy(8.136221, 1.533901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(8.136221, 1.533901)}) (end ${p.xy(8.136221, 4.065901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(9.668221, -4.054099)}) (end ${p.xy(8.902221, -4.820099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(8.902221, 0.767901)}) (end ${p.xy(9.668221, 0.001901)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(9.668221, 0.001901)}) (end ${p.xy(9.668221, -4.054099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(5.596221, 1.533901)}) (end ${p.xy(5.596221, 4.065901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(5.596221, 4.065901)}) (end ${p.xy(6.362221, 4.831901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(6.362221, 0.767901)}) (end ${p.xy(5.596221, 1.533901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(7.128221, -4.054099)}) (end ${p.xy(6.362221, -4.820099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(7.128221, 0.001901)}) (end ${p.xy(7.128221, -4.054099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(6.362221, 0.767901)}) (end ${p.xy(7.128221, 0.001901)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(3.056221, 4.065901)}) (end ${p.xy(3.822221, 4.831901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(3.822221, 0.767901)}) (end ${p.xy(3.056221, 1.533901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(3.056221, 1.533901)}) (end ${p.xy(3.056221, 4.065901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(4.588221, -4.054099)}) (end ${p.xy(3.822221, -4.820099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(4.588221, 0.001901)}) (end ${p.xy(4.588221, -4.054099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(3.822221, 0.767901)}) (end ${p.xy(4.588221, 0.001901)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(0.516221, 4.065901)}) (end ${p.xy(1.282221, 4.831901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(0.516221, 1.533901)}) (end ${p.xy(0.516221, 4.065901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(1.282221, 0.767901)}) (end ${p.xy(0.516221, 1.533901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(2.048221, -4.054099)}) (end ${p.xy(1.282221, -4.820099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(2.048221, 0.001901)}) (end ${p.xy(2.048221, -4.054099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(1.282221, 0.767901)}) (end ${p.xy(2.048221, 0.001901)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-2.023779, 4.065901)}) (end ${p.xy(-1.257779, 4.831901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-1.257779, 0.767901)}) (end ${p.xy(-2.023779, 1.533901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-2.023779, 1.533901)}) (end ${p.xy(-2.023779, 4.065901)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-0.491779, 0.001901)}) (end ${p.xy(-0.491779, -4.054099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-0.491779, -4.054099)}) (end ${p.xy(-1.257779, -4.820099)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-1.257779, 0.767901)}) (end ${p.xy(-0.491779, 0.001901)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-13.204, -4.06)}) (end ${p.xy(-13.97, -4.826)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-13.204, -1.528)}) (end ${p.xy(-13.204, -4.06)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-13.97, -0.762)}) (end ${p.xy(-13.204, -1.528)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-14.736, 0.004)}) (end ${p.xy(-14.736, 4.06)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-14.736, 4.06)}) (end ${p.xy(-13.97, 4.826)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-13.97, -0.762)}) (end ${p.xy(-14.736, 0.004)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-8.89, -0.762)}) (end ${p.xy(-8.124, -1.528)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-8.124, -4.06)}) (end ${p.xy(-8.89, -4.826)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-8.124, -1.528)}) (end ${p.xy(-8.124, -4.06)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-9.656, 0.004)}) (end ${p.xy(-9.656, 4.06)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-8.89, -0.762)}) (end ${p.xy(-9.656, 0.004)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-9.656, 4.06)}) (end ${p.xy(-8.89, 4.826)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-3.044, -4.06)}) (end ${p.xy(-3.81, -4.826)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-3.81, -0.762)}) (end ${p.xy(-3.044, -1.528)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-3.044, -1.528)}) (end ${p.xy(-3.044, -4.06)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-4.576, 0.004)}) (end ${p.xy(-4.576, 4.06)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-3.81, -0.762)}) (end ${p.xy(-4.576, 0.004)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-4.576, 4.06)}) (end ${p.xy(-3.81, 4.826)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-1.27, -0.762)}) (end ${p.xy(-0.504, -1.528)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-0.504, -4.06)}) (end ${p.xy(-1.27, -4.826)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-0.504, -1.528)}) (end ${p.xy(-0.504, -4.06)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(-2.036, 4.06)}) (end ${p.xy(-1.27, 4.826)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-2.036, 0.004)}) (end ${p.xy(-2.036, 4.06)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(-1.27, -0.762)}) (end ${p.xy(-2.036, 0.004)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(2.036, -1.528)}) (end ${p.xy(2.036, -4.06)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(1.27, -0.762)}) (end ${p.xy(2.036, -1.528)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(2.036, -4.06)}) (end ${p.xy(1.27, -4.826)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(0.504, 0.004)}) (end ${p.xy(0.504, 4.06)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(0.504, 4.06)}) (end ${p.xy(1.27, 4.826)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(1.27, -0.762)}) (end ${p.xy(0.504, 0.004)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(3.81, -0.762)}) (end ${p.xy(4.576, -1.528)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(4.576, -1.528)}) (end ${p.xy(4.576, -4.06)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(4.576, -4.06)}) (end ${p.xy(3.81, -4.826)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(3.044, 4.06)}) (end ${p.xy(3.81, 4.826)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(3.044, 0.004)}) (end ${p.xy(3.044, 4.06)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(3.81, -0.762)}) (end ${p.xy(3.044, 0.004)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(7.116, -4.06)}) (end ${p.xy(6.35, -4.826)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(6.35, -0.762)}) (end ${p.xy(7.116, -1.528)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(7.116, -1.528)}) (end ${p.xy(7.116, -4.06)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(6.35, -0.762)}) (end ${p.xy(5.584, 0.004)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(5.584, 4.06)}) (end ${p.xy(6.35, 4.826)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(5.584, 0.004)}) (end ${p.xy(5.584, 4.06)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(8.89, -0.762)}) (end ${p.xy(9.656, -1.528)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(9.656, -1.528)}) (end ${p.xy(9.656, -4.06)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(9.656, -4.06)}) (end ${p.xy(8.89, -4.826)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(8.89, -0.762)}) (end ${p.xy(8.124, 0.004)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(8.124, 4.06)}) (end ${p.xy(8.89, 4.826)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(8.124, 0.004)}) (end ${p.xy(8.124, 4.06)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(12.196, -4.06)}) (end ${p.xy(11.43, -4.826)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(12.196, -1.528)}) (end ${p.xy(12.196, -4.06)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(11.43, -0.762)}) (end ${p.xy(12.196, -1.528)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(11.43, -0.762)}) (end ${p.xy(10.664, 0.004)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(10.664, 0.004)}) (end ${p.xy(10.664, 4.06)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(10.664, 4.06)}) (end ${p.xy(11.43, 4.826)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(14.736, -1.528)}) (end ${p.xy(14.736, -4.06)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(13.97, -0.762)}) (end ${p.xy(14.736, -1.528)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(14.736, -4.06)}) (end ${p.xy(13.97, -4.826)}) (width 0.25) (layer "F.Cu")) + (segment (start ${p.xy(13.97, -0.762)}) (end ${p.xy(13.204, 0.004)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(13.204, 4.06)}) (end ${p.xy(13.97, 4.826)}) (width 0.25) (layer "B.Cu")) + (segment (start ${p.xy(13.204, 0.004)}) (end ${p.xy(13.204, 4.06)}) (width 0.25) (layer "B.Cu")) + + + + + (via (at ${p.xy(-11.43, -0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.GND.index})) + (via (at ${p.xy(-11.43, 0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P0.index})) + (via (at ${p.xy(-13.97, 0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P1.index})) + (via (at ${p.xy(-13.97, -0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.RAW.index})) + (via (at ${p.xy(-8.89, 0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.GND.index})) + (via (at ${p.xy(-8.89, -0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.RST.index})) + (via (at ${p.xy(-6.35, 0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.GND.index})) + (via (at ${p.xy(-6.35, -0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.VCC.index})) + (via (at ${p.xy(-3.81, 0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P2.index})) + (via (at ${p.xy(-3.81, -0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P21.index})) + (via (at ${p.xy(-1.27, 0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P3.index})) + (via (at ${p.xy(-1.27, -0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P20.index})) + (via (at ${p.xy(1.27, 0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P4.index})) + (via (at ${p.xy(1.27, -0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P19.index})) + (via (at ${p.xy(3.81, 0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P5.index})) + (via (at ${p.xy(3.81, -0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P18.index})) + (via (at ${p.xy(6.35, 0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P6.index})) + (via (at ${p.xy(6.35, -0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P15.index})) + (via (at ${p.xy(8.89, 0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P7.index})) + (via (at ${p.xy(8.89, -0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P14.index})) + (via (at ${p.xy(11.43, 0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P8.index})) + (via (at ${p.xy(11.43, -0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P16.index})) + (via (at ${p.xy(13.97, 0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P9.index})) + (via (at ${p.xy(13.97, -0.762)}) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net ${p.P10.index})) + ` + } +} + diff --git a/input/footprints/reset_switch.js b/input/footprints/reset_switch.js new file mode 100644 index 0000000..7036a6a --- /dev/null +++ b/input/footprints/reset_switch.js @@ -0,0 +1,41 @@ +module.exports = { + params: { + designator: 'B', // for Button + side: 'F', + from: undefined, + to: undefined + }, + body: p => ` + (module kbd:ResetSW (layer F.Cu) (tedit 5B9559E6) (tstamp 61905781) + + (descr "Two pin through hole Tactile Switch, the same as on the Corne") + (tags "Tactile Switch") + + ${p.at /* parametric position */} + ${'' /* footprint reference */} + (fp_text reference "${p.ref}" (at 0 2.55) (layer F.SilkS) ${p.ref_hide} (effects (font (size 1 1) (thickness 0.15)))) + (fp_text value "" (at 0 -2.55) (layer F.Fab) (effects (font (size 1 1) (thickness 0.15)))) + + ${'' /* outline */} + (fp_text user RESET (at 0 0 ${p.rot}) (layer F.SilkS) (effects (font (size 1 1) (thickness 0.15)))) + (fp_text user RESET (at 0.127 0 ${p.rot}) (layer B.SilkS) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))) + + (fp_line (start 3 1.5) (end 3 1.75) (layer B.SilkS) (width 0.15)) + (fp_line (start 3 1.75) (end -3 1.75) (layer B.SilkS) (width 0.15)) + (fp_line (start -3 1.75) (end -3 1.5) (layer B.SilkS) (width 0.15)) + (fp_line (start -3 -1.5) (end -3 -1.75) (layer B.SilkS) (width 0.15)) + (fp_line (start -3 -1.75) (end 3 -1.75) (layer B.SilkS) (width 0.15)) + (fp_line (start 3 -1.75) (end 3 -1.5) (layer B.SilkS) (width 0.15)) + (fp_line (start -3 1.75) (end 3 1.75) (layer F.SilkS) (width 0.15)) + (fp_line (start 3 1.75) (end 3 1.5) (layer F.SilkS) (width 0.15)) + (fp_line (start -3 1.75) (end -3 1.5) (layer F.SilkS) (width 0.15)) + (fp_line (start -3 -1.75) (end -3 -1.5) (layer F.SilkS) (width 0.15)) + (fp_line (start -3 -1.75) (end 3 -1.75) (layer F.SilkS) (width 0.15)) + (fp_line (start 3 -1.75) (end 3 -1.5) (layer F.SilkS) (width 0.15)) + + ${'' /* pins */} + (pad 2 thru_hole circle (at -3.25 0 ${p.rot}) (size 2 2) (drill 1.3) (layers *.Cu *.Mask F.SilkS) ${p.from.str}) + (pad 1 thru_hole circle (at 3.25 0 ${p.rot}) (size 2 2) (drill 1.3) (layers *.Cu *.Mask F.SilkS) ${p.to.str}) + ) + ` +} \ No newline at end of file diff --git a/input/footprints/sod-123w.js b/input/footprints/sod-123w.js new file mode 100644 index 0000000..8008a48 --- /dev/null +++ b/input/footprints/sod-123w.js @@ -0,0 +1,58 @@ +module.exports = { + params: { + designator: 'D', + from: {type: 'net', value: 'from'}, + to: {type: 'net', value: 'to'} + }, + body: p => ` + (footprint "Diode_SMD:Nexperia_CFP3_SOD-123W" + ${p.at} + (descr "Nexperia CFP3 (SOD-123W), https://assets.nexperia.com/documents/outline-drawing/SOD123W.pdf") + (tags "CFP3 SOD-123W") + (attr smd) + (fp_text reference "${p.ref}" (at 0 -2 ${p.rot}) (layer "F.SilkS") ${p.ref_hide} + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value "Nexperia_CFP3_SOD-123W" (at 0 2 ${p.rot}) (layer "F.Fab") hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -2.26 -0.95) (end -2.26 0.95) (stroke (width 0.12) (type solid)) (layer "F.SilkS")) + (fp_line (start -2.26 -0.95) (end 1.4 -0.95) (stroke (width 0.12) (type solid)) (layer "F.SilkS")) + (fp_line (start -2.26 0.95) (end 1.4 0.95) (stroke (width 0.12) (type solid)) (layer "F.SilkS")) + (fp_line (start -2.25 -1.1) (end -2.25 1.1) (stroke (width 0.05) (type solid)) (layer "F.CrtYd")) + (fp_line (start -2.25 -1.1) (end 2.25 -1.1) (stroke (width 0.05) (type solid)) (layer "F.CrtYd")) + (fp_line (start 2.25 -1.1) (end 2.25 1.1) (stroke (width 0.05) (type solid)) (layer "F.CrtYd")) + (fp_line (start 2.25 1.1) (end -2.25 1.1) (stroke (width 0.05) (type solid)) (layer "F.CrtYd")) + (fp_line (start -1.3 -0.85) (end 1.3 -0.85) (stroke (width 0.1) (type solid)) (layer "F.Fab")) + (fp_line (start -1.3 0.85) (end -1.3 -0.85) (stroke (width 0.1) (type solid)) (layer "F.Fab")) + (fp_line (start -0.75 0) (end -0.35 0) (stroke (width 0.1) (type solid)) (layer "F.Fab")) + (fp_line (start -0.35 -0.55) (end -0.35 0.55) (stroke (width 0.1) (type solid)) (layer "F.Fab")) + (fp_line (start -0.35 0) (end 0.25 -0.4) (stroke (width 0.1) (type solid)) (layer "F.Fab")) + (fp_line (start -0.35 0) (end 0.25 0.4) (stroke (width 0.1) (type solid)) (layer "F.Fab")) + (fp_line (start 0.25 -0.4) (end 0.25 0.4) (stroke (width 0.1) (type solid)) (layer "F.Fab")) + (fp_line (start 0.75 0) (end 0.25 0) (stroke (width 0.1) (type solid)) (layer "F.Fab")) + (fp_line (start 1.3 -0.85) (end 1.3 0.85) (stroke (width 0.1) (type solid)) (layer "F.Fab")) + (fp_line (start 1.3 0.85) (end -1.3 0.85) (stroke (width 0.1) (type solid)) (layer "F.Fab")) + + (fp_line (start -2.26 -0.95) (end -2.26 0.95) (stroke (width 0.12) (type solid)) (layer "B.SilkS")) + (fp_line (start -2.26 -0.95) (end 1.4 -0.95) (stroke (width 0.12) (type solid)) (layer "B.SilkS")) + (fp_line (start -2.26 0.95) (end 1.4 0.95) (stroke (width 0.12) (type solid)) (layer "B.SilkS")) + (fp_line (start -2.25 -1.1) (end -2.25 1.1) (stroke (width 0.05) (type solid)) (layer "B.CrtYd")) + (fp_line (start -2.25 -1.1) (end 2.25 -1.1) (stroke (width 0.05) (type solid)) (layer "B.CrtYd")) + (fp_line (start 2.25 -1.1) (end 2.25 1.1) (stroke (width 0.05) (type solid)) (layer "B.CrtYd")) + (fp_line (start 2.25 1.1) (end -2.25 1.1) (stroke (width 0.05) (type solid)) (layer "B.CrtYd")) + (fp_line (start -1.3 -0.85) (end 1.3 -0.85) (stroke (width 0.1) (type solid)) (layer "B.Fab")) + (fp_line (start -1.3 0.85) (end -1.3 -0.85) (stroke (width 0.1) (type solid)) (layer "B.Fab")) + (fp_line (start -0.75 0) (end -0.35 0) (stroke (width 0.1) (type solid)) (layer "B.Fab")) + (fp_line (start -0.35 -0.55) (end -0.35 0.55) (stroke (width 0.1) (type solid)) (layer "B.Fab")) + (fp_line (start -0.35 0) (end 0.25 -0.4) (stroke (width 0.1) (type solid)) (layer "B.Fab")) + (fp_line (start -0.35 0) (end 0.25 0.4) (stroke (width 0.1) (type solid)) (layer "B.Fab")) + (fp_line (start 0.25 -0.4) (end 0.25 0.4) (stroke (width 0.1) (type solid)) (layer "B.Fab")) + (fp_line (start 0.75 0) (end 0.25 0) (stroke (width 0.1) (type solid)) (layer "B.Fab")) + (fp_line (start 1.3 -0.85) (end 1.3 0.85) (stroke (width 0.1) (type solid)) (layer "B.Fab")) + (fp_line (start 1.3 0.85) (end -1.3 0.85) (stroke (width 0.1) (type solid)) (layer "B.Fab")) + (pad "1" thru_hole rect (at -1.4 0 ${ p.rot}) (size 1.2 1.2) (drill 0.3) (layers *.Cu *.Mask) (zone_connect 2) ${p.to.str}) + (pad "2" thru_hole rect (at 1.4 0 ${p.rot}) (size 1.2 1.2) (drill 0.3) (layers *.Cu *.Mask) (zone_connect 2) ${p.from.str }) + ) + ` +} diff --git a/input/footprints/via.js b/input/footprints/via.js new file mode 100644 index 0000000..2c99f39 --- /dev/null +++ b/input/footprints/via.js @@ -0,0 +1,18 @@ +// Via +// Nets +// net: the net this via should be connected to + +module.exports = { + params: { + net: undefined + }, + body: p => ` + (via + ${p.at.replace(/ [-\d]+\)$/, ')')} + (size 0.8) + (drill 0.4) + (layers "F.Cu" "B.Cu") + (net ${p.net.index}) + ) + ` +}