(kicad_sch (version 20211123) (generator eeschema)

  (uuid 9208ea78-8dde-4b3d-91e9-5755ab5efd9a)

  (paper "A4")

  (title_block
    (title "icE1usb - GPS")
    (date "2020-08-26")
    (rev "1.0")
    (comment 1 "CERN-OHL-S")
    (comment 2 "(C) 2020 Sylvain Munaut")
  )

  (lib_symbols
    (symbol "Device:Battery_Cell" (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
      (property "Reference" "BT" (id 0) (at 2.54 2.54 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Value" "Battery_Cell" (id 1) (at 2.54 0 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Footprint" "" (id 2) (at 0 1.524 90)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (id 3) (at 0 1.524 90)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "battery cell" (id 4) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Single-cell battery" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "Battery_Cell_0_1"
        (rectangle (start -2.286 1.778) (end 2.286 1.524)
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type outline))
        )
        (rectangle (start -1.5748 1.1938) (end 1.4732 0.6858)
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type outline))
        )
        (polyline
          (pts
            (xy 0 0.762)
            (xy 0 0)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 0 1.778)
            (xy 0 2.54)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 0.508 3.429)
            (xy 1.524 3.429)
          )
          (stroke (width 0.254) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 1.016 3.937)
            (xy 1.016 2.921)
          )
          (stroke (width 0.254) (type default) (color 0 0 0 0))
          (fill (type none))
        )
      )
      (symbol "Battery_Cell_1_1"
        (pin passive line (at 0 5.08 270) (length 2.54)
          (name "+" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 0 -2.54 90) (length 2.54)
          (name "-" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "Device:C_Small" (pin_numbers hide) (pin_names (offset 0.254) hide) (in_bom yes) (on_board yes)
      (property "Reference" "C" (id 0) (at 0.254 1.778 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Value" "C_Small" (id 1) (at 0.254 -2.032 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Footprint" "" (id 2) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (id 3) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "capacitor cap" (id 4) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Unpolarized capacitor, small symbol" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "C_*" (id 6) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "C_Small_0_1"
        (polyline
          (pts
            (xy -1.524 -0.508)
            (xy 1.524 -0.508)
          )
          (stroke (width 0.3302) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy -1.524 0.508)
            (xy 1.524 0.508)
          )
          (stroke (width 0.3048) (type default) (color 0 0 0 0))
          (fill (type none))
        )
      )
      (symbol "C_Small_1_1"
        (pin passive line (at 0 2.54 270) (length 2.032)
          (name "~" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 0 -2.54 90) (length 2.032)
          (name "~" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "Device:D_Schottky_Small" (pin_numbers hide) (pin_names (offset 0.254) hide) (in_bom yes) (on_board yes)
      (property "Reference" "D" (id 0) (at -1.27 2.032 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Value" "D_Schottky_Small" (id 1) (at -7.112 -2.032 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Footprint" "" (id 2) (at 0 0 90)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (id 3) (at 0 0 90)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "diode Schottky" (id 4) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Schottky diode, small symbol" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "TO-???* *_Diode_* *SingleDiode* D_*" (id 6) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "D_Schottky_Small_0_1"
        (polyline
          (pts
            (xy -0.762 0)
            (xy 0.762 0)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 0.762 -1.016)
            (xy -0.762 0)
            (xy 0.762 1.016)
            (xy 0.762 -1.016)
          )
          (stroke (width 0.254) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy -1.27 0.762)
            (xy -1.27 1.016)
            (xy -0.762 1.016)
            (xy -0.762 -1.016)
            (xy -0.254 -1.016)
            (xy -0.254 -0.762)
          )
          (stroke (width 0.254) (type default) (color 0 0 0 0))
          (fill (type none))
        )
      )
      (symbol "D_Schottky_Small_1_1"
        (pin passive line (at -2.54 0 0) (length 1.778)
          (name "K" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 2.54 0 180) (length 1.778)
          (name "A" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "Device:D_TVS" (pin_numbers hide) (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
      (property "Reference" "D" (id 0) (at 0 2.54 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Value" "D_TVS" (id 1) (at 0 -2.54 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Footprint" "" (id 2) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (id 3) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "diode TVS thyrector" (id 4) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Bidirectional transient-voltage-suppression diode" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "TO-???* *_Diode_* *SingleDiode* D_*" (id 6) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "D_TVS_0_1"
        (polyline
          (pts
            (xy 1.27 0)
            (xy -1.27 0)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 0.508 1.27)
            (xy 0 1.27)
            (xy 0 -1.27)
            (xy -0.508 -1.27)
          )
          (stroke (width 0.254) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy -2.54 1.27)
            (xy -2.54 -1.27)
            (xy 2.54 1.27)
            (xy 2.54 -1.27)
            (xy -2.54 1.27)
          )
          (stroke (width 0.254) (type default) (color 0 0 0 0))
          (fill (type none))
        )
      )
      (symbol "D_TVS_1_1"
        (pin passive line (at -3.81 0 0) (length 2.54)
          (name "A1" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 3.81 0 180) (length 2.54)
          (name "A2" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "Device:L_Small" (pin_numbers hide) (pin_names (offset 0.254) hide) (in_bom yes) (on_board yes)
      (property "Reference" "L" (id 0) (at 0.762 1.016 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Value" "L_Small" (id 1) (at 0.762 -1.016 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Footprint" "" (id 2) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (id 3) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "inductor choke coil reactor magnetic" (id 4) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Inductor, small symbol" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "Choke_* *Coil* Inductor_* L_*" (id 6) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "L_Small_0_1"
        (arc (start 0 -2.032) (mid 0.508 -1.524) (end 0 -1.016)
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (arc (start 0 -1.016) (mid 0.508 -0.508) (end 0 0)
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (arc (start 0 0) (mid 0.508 0.508) (end 0 1.016)
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (arc (start 0 1.016) (mid 0.508 1.524) (end 0 2.032)
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
      )
      (symbol "L_Small_1_1"
        (pin passive line (at 0 2.54 270) (length 0.508)
          (name "~" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 0 -2.54 90) (length 0.508)
          (name "~" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "Device:R_Pack04" (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
      (property "Reference" "RN" (id 0) (at -7.62 0 90)
        (effects (font (size 1.27 1.27)))
      )
      (property "Value" "R_Pack04" (id 1) (at 5.08 0 90)
        (effects (font (size 1.27 1.27)))
      )
      (property "Footprint" "" (id 2) (at 6.985 0 90)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (id 3) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "R network parallel topology isolated" (id 4) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "4 resistor network, parallel topology" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "DIP* SOIC* R*Array*Concave* R*Array*Convex*" (id 6) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "R_Pack04_0_1"
        (rectangle (start -6.35 -2.413) (end 3.81 2.413)
          (stroke (width 0.254) (type default) (color 0 0 0 0))
          (fill (type background))
        )
        (rectangle (start -5.715 1.905) (end -4.445 -1.905)
          (stroke (width 0.254) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (rectangle (start -3.175 1.905) (end -1.905 -1.905)
          (stroke (width 0.254) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (rectangle (start -0.635 1.905) (end 0.635 -1.905)
          (stroke (width 0.254) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy -5.08 -2.54)
            (xy -5.08 -1.905)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy -5.08 1.905)
            (xy -5.08 2.54)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy -2.54 -2.54)
            (xy -2.54 -1.905)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy -2.54 1.905)
            (xy -2.54 2.54)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 0 -2.54)
            (xy 0 -1.905)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 0 1.905)
            (xy 0 2.54)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 2.54 -2.54)
            (xy 2.54 -1.905)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 2.54 1.905)
            (xy 2.54 2.54)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (rectangle (start 1.905 1.905) (end 3.175 -1.905)
          (stroke (width 0.254) (type default) (color 0 0 0 0))
          (fill (type none))
        )
      )
      (symbol "R_Pack04_1_1"
        (pin passive line (at -5.08 -5.08 90) (length 2.54)
          (name "R1.1" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at -2.54 -5.08 90) (length 2.54)
          (name "R2.1" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 0 -5.08 90) (length 2.54)
          (name "R3.1" (effects (font (size 1.27 1.27))))
          (number "3" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 2.54 -5.08 90) (length 2.54)
          (name "R4.1" (effects (font (size 1.27 1.27))))
          (number "4" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 2.54 5.08 270) (length 2.54)
          (name "R4.2" (effects (font (size 1.27 1.27))))
          (number "5" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 0 5.08 270) (length 2.54)
          (name "R3.2" (effects (font (size 1.27 1.27))))
          (number "6" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at -2.54 5.08 270) (length 2.54)
          (name "R2.2" (effects (font (size 1.27 1.27))))
          (number "7" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at -5.08 5.08 270) (length 2.54)
          (name "R1.2" (effects (font (size 1.27 1.27))))
          (number "8" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "Device:R_Small" (pin_numbers hide) (pin_names (offset 0.254) hide) (in_bom yes) (on_board yes)
      (property "Reference" "R" (id 0) (at 0.762 0.508 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Value" "R_Small" (id 1) (at 0.762 -1.016 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Footprint" "" (id 2) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (id 3) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "R resistor" (id 4) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Resistor, small symbol" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "R_*" (id 6) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "R_Small_0_1"
        (rectangle (start -0.762 1.778) (end 0.762 -1.778)
          (stroke (width 0.2032) (type default) (color 0 0 0 0))
          (fill (type none))
        )
      )
      (symbol "R_Small_1_1"
        (pin passive line (at 0 2.54 270) (length 0.762)
          (name "~" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 0 -2.54 90) (length 0.762)
          (name "~" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "Jumper:SolderJumper_2_Bridged" (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
      (property "Reference" "JP" (id 0) (at 0 2.032 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Value" "SolderJumper_2_Bridged" (id 1) (at 0 -2.54 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Footprint" "" (id 2) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (id 3) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "solder jumper SPST" (id 4) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Solder Jumper, 2-pole, closed/bridged" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "SolderJumper*Bridged*" (id 6) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "SolderJumper_2_Bridged_0_1"
        (rectangle (start -0.508 0.508) (end 0.508 -0.508)
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type outline))
        )
        (arc (start -0.254 1.016) (mid -1.27 0) (end -0.254 -1.016)
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (arc (start -0.254 1.016) (mid -1.27 0) (end -0.254 -1.016)
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type outline))
        )
        (polyline
          (pts
            (xy -0.254 1.016)
            (xy -0.254 -1.016)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 0.254 1.016)
            (xy 0.254 -1.016)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (arc (start 0.254 -1.016) (mid 1.27 0) (end 0.254 1.016)
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (arc (start 0.254 -1.016) (mid 1.27 0) (end 0.254 1.016)
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type outline))
        )
      )
      (symbol "SolderJumper_2_Bridged_1_1"
        (pin passive line (at -3.81 0 0) (length 2.54)
          (name "A" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 3.81 0 180) (length 2.54)
          (name "B" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "Jumper:SolderJumper_2_Open" (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
      (property "Reference" "JP" (id 0) (at 0 2.032 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Value" "SolderJumper_2_Open" (id 1) (at 0 -2.54 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Footprint" "" (id 2) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (id 3) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "solder jumper SPST" (id 4) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Solder Jumper, 2-pole, open" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "SolderJumper*Open*" (id 6) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "SolderJumper_2_Open_0_1"
        (arc (start -0.254 1.016) (mid -1.27 0) (end -0.254 -1.016)
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (arc (start -0.254 1.016) (mid -1.27 0) (end -0.254 -1.016)
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type outline))
        )
        (polyline
          (pts
            (xy -0.254 1.016)
            (xy -0.254 -1.016)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 0.254 1.016)
            (xy 0.254 -1.016)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (arc (start 0.254 -1.016) (mid 1.27 0) (end 0.254 1.016)
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (arc (start 0.254 -1.016) (mid 1.27 0) (end 0.254 1.016)
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type outline))
        )
      )
      (symbol "SolderJumper_2_Open_1_1"
        (pin passive line (at -3.81 0 0) (length 2.54)
          (name "A" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 3.81 0 180) (length 2.54)
          (name "B" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "RF_GPS:MAX-M8W" (in_bom yes) (on_board yes)
      (property "Reference" "U" (id 0) (at -10.16 16.51 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Value" "MAX-M8W" (id 1) (at 12.7 16.51 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Footprint" "RF_GPS:ublox_MAX" (id 2) (at 10.16 -16.51 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "https://www.u-blox.com/sites/default/files/MAX-M8-FW3_DataSheet_%28UBX-15031506%29.pdf" (id 3) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "ublox GPS GNSS module" (id 4) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "GNSS Module MAX M8, VCC 2.7V to 3.6V" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "ublox*MAX*" (id 6) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "MAX-M8W_0_1"
        (rectangle (start 12.7 15.24) (end -12.7 -15.24)
          (stroke (width 0.254) (type default) (color 0 0 0 0))
          (fill (type background))
        )
      )
      (symbol "MAX-M8W_1_1"
        (pin power_in line (at 0 -17.78 90) (length 2.54)
          (name "GND" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 0 -17.78 90) (length 2.54) hide
          (name "GND" (effects (font (size 1.27 1.27))))
          (number "10" (effects (font (size 1.27 1.27))))
        )
        (pin input line (at 15.24 0 180) (length 2.54)
          (name "RF_IN" (effects (font (size 1.27 1.27))))
          (number "11" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 0 -17.78 90) (length 2.54) hide
          (name "GND" (effects (font (size 1.27 1.27))))
          (number "12" (effects (font (size 1.27 1.27))))
        )
        (pin no_connect line (at 12.7 -5.08 180) (length 2.54) hide
          (name "Reserved" (effects (font (size 1.27 1.27))))
          (number "13" (effects (font (size 1.27 1.27))))
        )
        (pin power_out line (at 5.08 17.78 270) (length 2.54)
          (name "VCC_RF" (effects (font (size 1.27 1.27))))
          (number "14" (effects (font (size 1.27 1.27))))
        )
        (pin power_in line (at 2.54 17.78 270) (length 2.54)
          (name "V_ANT" (effects (font (size 1.27 1.27))))
          (number "15" (effects (font (size 1.27 1.27))))
        )
        (pin bidirectional line (at -15.24 2.54 0) (length 2.54)
          (name "SDA" (effects (font (size 1.27 1.27))))
          (number "16" (effects (font (size 1.27 1.27))))
        )
        (pin input line (at -15.24 0 0) (length 2.54)
          (name "SCL" (effects (font (size 1.27 1.27))))
          (number "17" (effects (font (size 1.27 1.27))))
        )
        (pin input line (at -15.24 -7.62 0) (length 2.54)
          (name "~{SAFEBOOT}" (effects (font (size 1.27 1.27))))
          (number "18" (effects (font (size 1.27 1.27))))
        )
        (pin output line (at -15.24 7.62 0) (length 2.54)
          (name "TXD" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
        (pin input line (at -15.24 10.16 0) (length 2.54)
          (name "RXD" (effects (font (size 1.27 1.27))))
          (number "3" (effects (font (size 1.27 1.27))))
        )
        (pin output line (at 15.24 -7.62 180) (length 2.54)
          (name "TIMEPULSE" (effects (font (size 1.27 1.27))))
          (number "4" (effects (font (size 1.27 1.27))))
        )
        (pin input line (at -15.24 -5.08 0) (length 2.54)
          (name "EXTINT" (effects (font (size 1.27 1.27))))
          (number "5" (effects (font (size 1.27 1.27))))
        )
        (pin power_in line (at 0 17.78 270) (length 2.54)
          (name "V_BCKP" (effects (font (size 1.27 1.27))))
          (number "6" (effects (font (size 1.27 1.27))))
        )
        (pin power_in line (at -2.54 17.78 270) (length 2.54)
          (name "VCC_IO" (effects (font (size 1.27 1.27))))
          (number "7" (effects (font (size 1.27 1.27))))
        )
        (pin power_in line (at -5.08 17.78 270) (length 2.54)
          (name "VCC" (effects (font (size 1.27 1.27))))
          (number "8" (effects (font (size 1.27 1.27))))
        )
        (pin input line (at -15.24 -10.16 0) (length 2.54)
          (name "~{RESET}" (effects (font (size 1.27 1.27))))
          (number "9" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "power:+3V3" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes)
      (property "Reference" "#PWR" (id 0) (at 0 -3.81 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Value" "+3V3" (id 1) (at 0 3.556 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Footprint" "" (id 2) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "" (id 3) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "power-flag" (id 4) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Power symbol creates a global label with name \"+3V3\"" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "+3V3_0_1"
        (polyline
          (pts
            (xy -0.762 1.27)
            (xy 0 2.54)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 0 0)
            (xy 0 2.54)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 0 2.54)
            (xy 0.762 1.27)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
      )
      (symbol "+3V3_1_1"
        (pin power_in line (at 0 0 90) (length 0) hide
          (name "+3V3" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes)
      (property "Reference" "#PWR" (id 0) (at 0 -6.35 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Value" "GND" (id 1) (at 0 -3.81 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Footprint" "" (id 2) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "" (id 3) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "power-flag" (id 4) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "GND_0_1"
        (polyline
          (pts
            (xy 0 0)
            (xy 0 -1.27)
            (xy 1.27 -1.27)
            (xy 0 -2.54)
            (xy -1.27 -1.27)
            (xy 0 -1.27)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
      )
      (symbol "GND_1_1"
        (pin power_in line (at 0 0 270) (length 0) hide
          (name "GND" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "power:PWR_FLAG" (power) (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
      (property "Reference" "#FLG" (id 0) (at 0 1.905 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Value" "PWR_FLAG" (id 1) (at 0 3.81 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Footprint" "" (id 2) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (id 3) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "power-flag" (id 4) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Special symbol for telling ERC where power comes from" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "PWR_FLAG_0_0"
        (pin power_out line (at 0 0 90) (length 0)
          (name "pwr" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
      )
      (symbol "PWR_FLAG_0_1"
        (polyline
          (pts
            (xy 0 0)
            (xy 0 1.27)
            (xy -1.016 1.905)
            (xy 0 2.54)
            (xy 1.016 1.905)
            (xy 0 1.27)
          )
          (stroke (width 0) (type default) (color 0 0 0 0))
          (fill (type none))
        )
      )
    )
  )

  (junction (at 203.2 99.06) (diameter 0) (color 0 0 0 0)
    (uuid 044de712-d3da-40ed-9c9f-d91ef285c74c)
  )
  (junction (at 119.38 58.42) (diameter 0) (color 0 0 0 0)
    (uuid 0e32af77-726b-4e11-9f99-2e2484ba9e9b)
  )
  (junction (at 71.12 96.52) (diameter 0) (color 0 0 0 0)
    (uuid 0f0f7bb5-ade7-4a81-82b4-43be6a8ad05c)
  )
  (junction (at 106.68 76.2) (diameter 0) (color 0 0 0 0)
    (uuid 178ae27e-edb9-4ffb-bd13-c0a6dd659606)
  )
  (junction (at 96.52 58.42) (diameter 0) (color 0 0 0 0)
    (uuid 3e87b259-dfc1-4885-8dcf-7e7ae39674ed)
  )
  (junction (at 106.68 58.42) (diameter 0) (color 0 0 0 0)
    (uuid 66ca01b3-51ff-4294-9b77-4492e98f6aec)
  )
  (junction (at 96.52 76.2) (diameter 0) (color 0 0 0 0)
    (uuid ae8bb5ae-95ee-4e2d-8a0c-ae5b6149b4e3)
  )
  (junction (at 177.8 88.9) (diameter 0) (color 0 0 0 0)
    (uuid bb5d2eae-a96e-45dd-89aa-125fe22cc2fa)
  )
  (junction (at 50.8 96.52) (diameter 0) (color 0 0 0 0)
    (uuid bd29b6d3-a58c-4b1f-9c20-de4efb708ab2)
  )
  (junction (at 210.82 99.06) (diameter 0) (color 0 0 0 0)
    (uuid c20aea50-e9e4-4978-b938-d613d445aab7)
  )
  (junction (at 111.76 58.42) (diameter 0) (color 0 0 0 0)
    (uuid d32956af-146b-4a09-a053-d9d64b8dd86d)
  )

  (no_connect (at 116.84 101.6) (uuid 58cc7831-f944-4d33-8c61-2fd5bebc61e0))
  (no_connect (at 116.84 104.14) (uuid 9de304ba-fba7-4896-b969-9d87a3522d74))

  (wire (pts (xy 144.78 88.9) (xy 139.7 88.9))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 000b46d6-b833-4804-8f56-56d539f76d09)
  )
  (wire (pts (xy 119.38 91.44) (xy 129.54 91.44))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 044dde97-ee2e-473a-9264-ed4dff1893a5)
  )
  (wire (pts (xy 111.76 58.42) (xy 119.38 58.42))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 06665bf8-cef1-4e75-8d5b-1537b3c1b090)
  )
  (wire (pts (xy 116.84 93.98) (xy 119.38 93.98))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 06f09c2f-89c0-45c5-9ecb-66d7577cc34e)
  )
  (wire (pts (xy 203.2 88.9) (xy 203.2 99.06))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 0b110cbc-e477-4bdc-9c81-26a3d588d354)
  )
  (wire (pts (xy 177.8 99.06) (xy 182.88 99.06))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 0c544a8c-9f45-4205-9bca-1d91c95d58ef)
  )
  (wire (pts (xy 106.68 55.88) (xy 106.68 58.42))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 0fb27e11-fde6-4a25-adbb-e9684771b369)
  )
  (wire (pts (xy 144.78 93.98) (xy 139.7 93.98))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 113ffcdf-4c54-4e37-81dc-f91efa934ba7)
  )
  (wire (pts (xy 127 93.98) (xy 129.54 93.98))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 12a2b6ef-79e4-4a5d-9c9d-9af4a2440310)
  )
  (wire (pts (xy 203.2 101.6) (xy 203.2 99.06))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 1732b93f-cd0e-4ca4-a905-bb406354ca33)
  )
  (wire (pts (xy 101.6 114.3) (xy 101.6 116.84))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 1cacb878-9da4-41fc-aa80-018bc841e19a)
  )
  (wire (pts (xy 144.78 106.68) (xy 116.84 106.68))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 2102c637-9f11-48f1-aae6-b4139dc22be2)
  )
  (wire (pts (xy 81.28 104.14) (xy 81.28 127))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 272c2a78-b5f5-4b61-aed3-ec69e0e92729)
  )
  (wire (pts (xy 119.38 58.42) (xy 119.38 60.96))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 2ee28fa9-d785-45a1-9a1b-1be02ad8cd0b)
  )
  (wire (pts (xy 203.2 109.22) (xy 203.2 111.76))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 2f0570b6-86da-47a8-9e56-ce60c431c534)
  )
  (wire (pts (xy 86.36 104.14) (xy 81.28 104.14))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 3f2a6679-91d7-4b6c-bf5c-c4d5abb2bc44)
  )
  (wire (pts (xy 50.8 111.76) (xy 50.8 116.84))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 42ecdba3-f348-4384-8d4b-cd21e56f3613)
  )
  (wire (pts (xy 210.82 99.06) (xy 210.82 104.14))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 49488c82-6277-4d05-a051-6a9df142c373)
  )
  (wire (pts (xy 101.6 58.42) (xy 101.6 78.74))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 58126faf-01a4-4f91-8e8c-ca9e47b48048)
  )
  (wire (pts (xy 96.52 55.88) (xy 96.52 58.42))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 5a33f5a4-a470-4c04-9e2d-532b5f01a5d6)
  )
  (wire (pts (xy 71.12 96.52) (xy 86.36 96.52))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 5e6153e6-2c19-46de-9a8e-b310a2a07861)
  )
  (wire (pts (xy 116.84 88.9) (xy 119.38 88.9))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 661ca2ba-bce5-4308-99a6-de333a625515)
  )
  (wire (pts (xy 200.66 88.9) (xy 203.2 88.9))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 6762c669-2824-49a2-8bd4-3f19091dd75a)
  )
  (wire (pts (xy 127 66.04) (xy 127 68.58))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 6ae963fb-e34f-4e11-9adf-78839a5b2ef1)
  )
  (wire (pts (xy 210.82 96.52) (xy 210.82 99.06))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 6b6d35dc-fa1d-46c5-87c0-b0652011059d)
  )
  (wire (pts (xy 116.84 96.52) (xy 119.38 96.52))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 6cf213f1-c80b-4a2e-bcc6-43b92003b05d)
  )
  (wire (pts (xy 198.12 99.06) (xy 203.2 99.06))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 74012f9c-57f0-452a-9ea1-1e3437e264b8)
  )
  (wire (pts (xy 88.9 58.42) (xy 88.9 60.96))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 7f064424-06a6-4f5b-87d6-1970ae527766)
  )
  (wire (pts (xy 88.9 66.04) (xy 88.9 68.58))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 82204892-ec79-4d38-a593-52fb9a9b4b87)
  )
  (wire (pts (xy 119.38 58.42) (xy 127 58.42))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 8a427111-6480-4b0c-b097-d8b6a0ee1819)
  )
  (wire (pts (xy 119.38 88.9) (xy 119.38 91.44))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 8ae05d37-86b4-45ea-800f-f1f9fb167857)
  )
  (wire (pts (xy 99.06 78.74) (xy 99.06 58.42))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 8b3ba7fc-20b6-43c4-a020-80151e1caecc)
  )
  (wire (pts (xy 121.92 88.9) (xy 121.92 86.36))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 93ac15d8-5f91-4361-acff-be4992b93b51)
  )
  (wire (pts (xy 121.92 86.36) (xy 116.84 86.36))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 96781640-c07e-4eea-a372-067ded96b703)
  )
  (wire (pts (xy 203.2 99.06) (xy 210.82 99.06))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 9e136ac4-5d28-4814-9ebf-c30c372bc2ec)
  )
  (wire (pts (xy 106.68 58.42) (xy 111.76 58.42))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 9f969b13-1795-4747-8326-93bdc304ed56)
  )
  (wire (pts (xy 104.14 78.74) (xy 104.14 76.2))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 9fdca5c2-1fbd-4774-a9c3-8795a40c206d)
  )
  (wire (pts (xy 104.14 76.2) (xy 106.68 76.2))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid a0d52767-051a-423c-a600-928281f27952)
  )
  (wire (pts (xy 50.8 104.14) (xy 50.8 96.52))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid a22bec73-a69c-4ab7-8d8d-f6a6b09f925f)
  )
  (wire (pts (xy 111.76 58.42) (xy 111.76 60.96))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid a239fd1d-dfbb-49fd-b565-8c3de9dcf42b)
  )
  (wire (pts (xy 96.52 58.42) (xy 88.9 58.42))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid a2a0f5cc-b5aa-4e3e-8d85-23bdc2f59aec)
  )
  (wire (pts (xy 81.28 127) (xy 144.78 127))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid a3fab380-991d-404b-95d5-1c209b047b6e)
  )
  (wire (pts (xy 177.8 88.9) (xy 193.04 88.9))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid a9d76dfc-52ba-46de-beb4-dab7b94ee663)
  )
  (wire (pts (xy 38.1 96.52) (xy 50.8 96.52))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid aa23bfe3-454b-4a2b-bfe1-101c747eb84e)
  )
  (wire (pts (xy 106.68 76.2) (xy 106.68 78.74))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid aa8663be-9516-4b07-84d2-4c4d668b8596)
  )
  (wire (pts (xy 127 96.52) (xy 129.54 96.52))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid ad21907b-ae03-4640-a265-427e12e8c6c2)
  )
  (wire (pts (xy 50.8 96.52) (xy 71.12 96.52))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid b44c0167-50fe-4c67-94fb-5ce2e6f52544)
  )
  (wire (pts (xy 96.52 58.42) (xy 96.52 60.96))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid b7c09c15-282b-4731-8942-008851172201)
  )
  (wire (pts (xy 71.12 76.2) (xy 71.12 86.36))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid b8c8c7a1-d546-4878-9de9-463ec76dff98)
  )
  (wire (pts (xy 127 58.42) (xy 127 60.96))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid b9d4de74-d246-495d-8b63-12ab2133d6d6)
  )
  (wire (pts (xy 71.12 76.2) (xy 96.52 76.2))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid ba116096-3ccc-4cc8-a185-5325439e4e24)
  )
  (wire (pts (xy 144.78 96.52) (xy 139.7 96.52))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid c7cd39db-931a-4d86-96b8-57e6b39f58f9)
  )
  (wire (pts (xy 71.12 91.44) (xy 71.12 96.52))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid cb1a49ef-0a06-4f40-9008-61d1d1c36198)
  )
  (wire (pts (xy 177.8 88.9) (xy 177.8 99.06))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid cd50b8dc-829d-4a1d-8f2a-6471f378ba87)
  )
  (wire (pts (xy 144.78 91.44) (xy 139.7 91.44))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid ceb12634-32ca-4cbf-9ff5-5e8b53ab18ad)
  )
  (wire (pts (xy 193.04 99.06) (xy 187.96 99.06))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid d1441985-7b63-4bf8-a06d-c70da2e3b78b)
  )
  (wire (pts (xy 119.38 66.04) (xy 119.38 68.58))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid d45d1afe-78e6-4045-862c-b274469da903)
  )
  (wire (pts (xy 177.8 83.82) (xy 177.8 88.9))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid d9cf2d61-3126-40fe-a66d-ae5145f94be8)
  )
  (wire (pts (xy 96.52 76.2) (xy 96.52 78.74))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid da862bae-4511-4bb9-b18d-fa60a2737feb)
  )
  (wire (pts (xy 96.52 76.2) (xy 96.52 66.04))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid dec284d9-246c-4619-8dcc-8f4886f9349e)
  )
  (wire (pts (xy 210.82 109.22) (xy 210.82 111.76))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid df5c9f6b-a62e-44ba-997f-b2cf3279c7d4)
  )
  (wire (pts (xy 210.82 99.06) (xy 226.06 99.06))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid e0d7c1d9-102e-4758-a8b7-ff248f1ce315)
  )
  (wire (pts (xy 111.76 66.04) (xy 111.76 68.58))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid f203116d-f256-4611-a03e-9536bbedaf2f)
  )
  (wire (pts (xy 129.54 88.9) (xy 121.92 88.9))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid f284b1e2-75a4-4a3f-a5f4-6f05f15fb4f5)
  )
  (wire (pts (xy 99.06 58.42) (xy 96.52 58.42))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid fb0b1440-18be-4b5f-b469-b4cfaf66fc53)
  )
  (wire (pts (xy 106.68 58.42) (xy 106.68 76.2))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid fb0bf2a0-d317-42f7-b022-b5e05481f6be)
  )

  (text "For M8W:\n - Place C & R between\n   Vcc_RF and V_ant\n\nFor ATGM336H:\n - Place the bias inductor\n"
    (at 53.34 71.12 0)
    (effects (font (size 1.27 1.27)) (justify left bottom))
    (uuid 31bfc3e7-147b-4531-a0c5-e3a305c1647d)
  )
  (text "Battery and charging circuit\nis DNP by default" (at 210.82 88.9 0)
    (effects (font (size 1.27 1.27)) (justify left bottom))
    (uuid dd2d59b3-ddef-491f-bb57-eb3d3820bdeb)
  )

  (label "vbackup" (at 101.6 58.42 270)
    (effects (font (size 1.27 1.27)) (justify right bottom))
    (uuid 44b926bf-8bdd-4191-846d-2dfabab2cecb)
  )
  (label "vbackup" (at 226.06 99.06 180)
    (effects (font (size 1.27 1.27)) (justify right bottom))
    (uuid e8274862-c966-456a-98d5-9c42f72963c1)
  )

  (hierarchical_label "i2c_sda" (shape bidirectional) (at 144.78 93.98 0)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 1de61170-5337-44c5-ba28-bd477db4bff1)
  )
  (hierarchical_label "rx" (shape input) (at 144.78 88.9 0)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 2ba25c40-ea42-478e-9150-1d94fa1c8ae9)
  )
  (hierarchical_label "i2c_scl" (shape bidirectional) (at 144.78 96.52 0)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 3a1a39fc-8030-4c93-9d9c-d79ba6824099)
  )
  (hierarchical_label "~{reset}" (shape input) (at 144.78 106.68 0)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 49b5f540-e128-4e08-bb09-f321f8e64056)
  )
  (hierarchical_label "RF" (shape input) (at 38.1 96.52 180)
    (effects (font (size 1.27 1.27)) (justify right))
    (uuid 4ce9470f-5633-41bf-89ac-74a810939893)
  )
  (hierarchical_label "tx" (shape output) (at 144.78 91.44 0)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid acb6c3f3-e677-4f35-9fc2-138ba10f33af)
  )
  (hierarchical_label "pps" (shape output) (at 144.78 127 0)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid dd70858b-2f9a-4b3f-9af5-ead3a9ba57e9)
  )

  (symbol (lib_id "RF_GPS:MAX-M8W") (at 101.6 96.52 0) (mirror y) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f27f978)
    (property "Reference" "U8" (id 0) (at 114.3 114.3 0))
    (property "Value" "MAX-M8W" (id 1) (at 111.76 116.84 0))
    (property "Footprint" "s47-misc:ublox_MAX" (id 2) (at 91.44 113.03 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "https://www.u-blox.com/sites/default/files/MAX-M8-FW3_DataSheet_%28UBX-15031506%29.pdf" (id 3) (at 101.6 96.52 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 5040ef30-252d-4384-8bc4-96ac10d6ddaf))
    (pin "10" (uuid bae45a3d-7f32-4cbd-9262-c37de2623168))
    (pin "11" (uuid 13bd4268-2a8f-422b-b1d2-60d75c072f0d))
    (pin "12" (uuid 370239c0-944a-40e0-89e9-66ade0ad6752))
    (pin "13" (uuid 38bbbd7c-98ff-4baf-a937-f34f05cf4b2e))
    (pin "14" (uuid 737db82e-5893-499e-970e-a70a3ec6f461))
    (pin "15" (uuid 8af229b0-8007-4fae-80a9-e673d7c6e83d))
    (pin "16" (uuid 9651cee1-5992-40d1-b721-c5345fff85c7))
    (pin "17" (uuid 0e1085fc-3623-4600-ac99-711202be1fa6))
    (pin "18" (uuid 85b70eef-69a0-4df4-adbc-e4b63d8aeadd))
    (pin "2" (uuid 9e96a899-2f6f-4da7-a9d3-96d538c5f1c1))
    (pin "3" (uuid af5d65cf-59cd-43d5-bef4-bd0c0e563249))
    (pin "4" (uuid fa15908b-b974-4d08-a66c-21578a348a2c))
    (pin "5" (uuid 0f002426-23d5-470c-820f-9b55f9f15cc9))
    (pin "6" (uuid 2afea3a9-cc0f-4fcd-8dd0-cab1c4c9ae4b))
    (pin "7" (uuid c83e2a77-ffb8-488b-ac3d-41a6aa179753))
    (pin "8" (uuid 80170a41-f74e-4852-8be0-2869b4b01992))
    (pin "9" (uuid dcaac0fc-227f-4c2e-b119-7334f073dba2))
  )

  (symbol (lib_id "power:GND") (at 101.6 116.84 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f2e5db9)
    (property "Reference" "#PWR046" (id 0) (at 101.6 123.19 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (id 1) (at 101.727 121.2342 0))
    (property "Footprint" "" (id 2) (at 101.6 116.84 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (id 3) (at 101.6 116.84 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid d7923634-2f00-4406-9e1c-061e4e780dff))
  )

  (symbol (lib_id "Device:C_Small") (at 119.38 63.5 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f3311e6)
    (property "Reference" "C23" (id 0) (at 121.7168 62.3316 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "100n" (id 1) (at 121.7168 64.643 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "Capacitor_SMD:C_0603_1608Metric" (id 2) (at 119.38 63.5 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 119.38 63.5 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid c35ea097-8863-4f19-8493-a0ada4b1152e))
    (pin "2" (uuid acfcc4f8-d781-4932-8684-80ca0f5b3598))
  )

  (symbol (lib_id "Device:L_Small") (at 71.12 88.9 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f334ba8)
    (property "Reference" "L1" (id 0) (at 72.3392 87.7316 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "47n" (id 1) (at 72.3392 90.043 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "Inductor_SMD:L_0402_1005Metric" (id 2) (at 71.12 88.9 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 71.12 88.9 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "MPN" "Murata LQW15AN47NG00D" (id 4) (at 71.12 88.9 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 48efb94c-7490-48b7-985d-5d498ebcf74d))
    (pin "2" (uuid acf49abf-c2ea-4082-969e-e8891bb50e05))
  )

  (symbol (lib_id "power:+3V3") (at 106.68 55.88 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f336762)
    (property "Reference" "#PWR047" (id 0) (at 106.68 59.69 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "+3V3" (id 1) (at 107.061 51.4858 0))
    (property "Footprint" "" (id 2) (at 106.68 55.88 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (id 3) (at 106.68 55.88 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid a58f6e64-2d79-44b7-8e23-3ebd100ca49d))
  )

  (symbol (lib_id "Device:C_Small") (at 127 63.5 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f337095)
    (property "Reference" "C24" (id 0) (at 129.3368 62.3316 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "1u" (id 1) (at 129.3368 64.643 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "Capacitor_SMD:C_0603_1608Metric" (id 2) (at 127 63.5 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 127 63.5 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid f789ca47-6048-4203-ad28-2a8bc0c1569a))
    (pin "2" (uuid a54ebcb3-3ed0-4c3d-a156-7d9771b81fe0))
  )

  (symbol (lib_id "Device:C_Small") (at 111.76 63.5 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f337e6d)
    (property "Reference" "C22" (id 0) (at 114.0968 62.3316 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "100n" (id 1) (at 114.0968 64.643 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "Capacitor_SMD:C_0603_1608Metric" (id 2) (at 111.76 63.5 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 111.76 63.5 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 146f4fd7-4757-44d3-8575-04189b30bbbf))
    (pin "2" (uuid 86b49c1c-d84c-4f3d-88b2-5848523b75ce))
  )

  (symbol (lib_id "power:GND") (at 111.76 68.58 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f33d588)
    (property "Reference" "#PWR048" (id 0) (at 111.76 74.93 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (id 1) (at 111.887 72.9742 0))
    (property "Footprint" "" (id 2) (at 111.76 68.58 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (id 3) (at 111.76 68.58 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 475ba1d4-e566-4462-9b90-e2c92c9c5703))
  )

  (symbol (lib_id "power:GND") (at 119.38 68.58 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f33dc6f)
    (property "Reference" "#PWR049" (id 0) (at 119.38 74.93 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (id 1) (at 119.507 72.9742 0))
    (property "Footprint" "" (id 2) (at 119.38 68.58 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (id 3) (at 119.38 68.58 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 15f75413-0991-4d8d-9545-021705c2e782))
  )

  (symbol (lib_id "power:GND") (at 127 68.58 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f33dd47)
    (property "Reference" "#PWR050" (id 0) (at 127 74.93 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (id 1) (at 127.127 72.9742 0))
    (property "Footprint" "" (id 2) (at 127 68.58 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (id 3) (at 127 68.58 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 20967443-c0d0-4005-a11d-1b9953d67c71))
  )

  (symbol (lib_id "Device:R_Small") (at 96.52 63.5 0) (mirror y) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f33f9b7)
    (property "Reference" "R18" (id 0) (at 95.0214 61.1886 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "10R" (id 1) (at 95.0214 63.5 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "Resistor_SMD:R_0603_1608Metric" (id 2) (at 96.52 63.5 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 96.52 63.5 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "DNP" "DNP" (id 4) (at 95.0214 65.8114 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (pin "1" (uuid b1a1d043-8de6-4e51-948c-18eab29072e6))
    (pin "2" (uuid ab866081-8f8b-49e6-ab59-50933150a879))
  )

  (symbol (lib_id "Device:C_Small") (at 88.9 63.5 0) (mirror x) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f33febe)
    (property "Reference" "C21" (id 0) (at 86.5632 61.1886 0)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Value" "100n" (id 1) (at 86.5632 63.5 0)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "Capacitor_SMD:C_0603_1608Metric" (id 2) (at 88.9 63.5 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 88.9 63.5 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "DNP" "DNP" (id 4) (at 86.5632 65.8114 0)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (pin "1" (uuid f979bc82-3082-4517-88a6-6349f2cec19f))
    (pin "2" (uuid 37a1b69b-8bd0-4989-8b0a-8868e66416a5))
  )

  (symbol (lib_id "power:GND") (at 88.9 68.58 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f341049)
    (property "Reference" "#PWR045" (id 0) (at 88.9 74.93 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (id 1) (at 89.027 72.9742 0))
    (property "Footprint" "" (id 2) (at 88.9 68.58 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (id 3) (at 88.9 68.58 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 44c00fa4-dc0b-4998-93c1-da39a1de6f16))
  )

  (symbol (lib_id "Device:Battery_Cell") (at 203.2 106.68 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f34dae6)
    (property "Reference" "BT1" (id 0) (at 200.2282 103.0986 0)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Value" "VL-1220/VCN" (id 1) (at 200.2282 105.41 0)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "Battery:Battery_Panasonic_CR1220-VCN_Vertical_CircularHoles" (id 2) (at 203.2 105.156 90)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 203.2 105.156 90)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "DNP" "DNP" (id 4) (at 200.2282 107.7214 0)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (pin "1" (uuid d635ea2d-0a31-4cf8-beb1-0389dc1a64b5))
    (pin "2" (uuid c5108b27-4664-44a0-abe5-99af90144916))
  )

  (symbol (lib_id "power:GND") (at 203.2 111.76 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f34e154)
    (property "Reference" "#PWR052" (id 0) (at 203.2 118.11 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (id 1) (at 203.327 116.1542 0))
    (property "Footprint" "" (id 2) (at 203.2 111.76 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (id 3) (at 203.2 111.76 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid b5b58b53-4f37-4f40-8183-c723ec730730))
  )

  (symbol (lib_id "Jumper:SolderJumper_2_Bridged") (at 196.85 88.9 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f34e744)
    (property "Reference" "JP1" (id 0) (at 196.85 83.5152 0))
    (property "Value" "BatBypass" (id 1) (at 196.85 85.8266 0))
    (property "Footprint" "s47-misc:J_NC_0603_30" (id 2) (at 196.85 88.9 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 196.85 88.9 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 71a87ef8-39c3-4769-8c72-4106195c39c8))
    (pin "2" (uuid 4833198f-8bb7-4bc0-8a74-d0a4517b2fd0))
  )

  (symbol (lib_id "power:+3V3") (at 177.8 83.82 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f35197e)
    (property "Reference" "#PWR051" (id 0) (at 177.8 87.63 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "+3V3" (id 1) (at 178.181 79.4258 0))
    (property "Footprint" "" (id 2) (at 177.8 83.82 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (id 3) (at 177.8 83.82 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 01d4768a-c5f0-4542-bd92-26cb35851f40))
  )

  (symbol (lib_id "Device:C_Small") (at 210.82 106.68 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f3521e0)
    (property "Reference" "C25" (id 0) (at 213.1568 105.5116 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "100n" (id 1) (at 213.1568 107.823 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "Capacitor_SMD:C_0603_1608Metric" (id 2) (at 210.82 106.68 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 210.82 106.68 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid c299c54f-55f3-4efd-9bfc-9067ea5b8443))
    (pin "2" (uuid e4aeed4d-9f68-40be-a729-5a5067b63aa9))
  )

  (symbol (lib_id "power:GND") (at 210.82 111.76 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f353c3f)
    (property "Reference" "#PWR053" (id 0) (at 210.82 118.11 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (id 1) (at 210.947 116.1542 0))
    (property "Footprint" "" (id 2) (at 210.82 111.76 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (id 3) (at 210.82 111.76 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid d309d839-7ef8-4251-9a1f-6e44e2d03c59))
  )

  (symbol (lib_id "Device:R_Small") (at 195.58 99.06 90) (mirror x) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f357044)
    (property "Reference" "R19" (id 0) (at 195.58 91.7956 90))
    (property "Value" "330R" (id 1) (at 195.58 94.107 90))
    (property "Footprint" "Resistor_SMD:R_0603_1608Metric" (id 2) (at 195.58 99.06 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 195.58 99.06 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "DNP" "DNP" (id 4) (at 195.58 96.4184 90))
    (pin "1" (uuid 3efc1268-dbc7-4bf3-9742-49add15a4cec))
    (pin "2" (uuid b49dd2bf-3e43-424a-9354-842b2185b33a))
  )

  (symbol (lib_id "Device:D_Schottky_Small") (at 185.42 99.06 180) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f35aa23)
    (property "Reference" "D4" (id 0) (at 185.42 91.567 0))
    (property "Value" "SDM02U30LP3" (id 1) (at 185.42 93.8784 0))
    (property "Footprint" "Diode_SMD:D_0603_1608Metric" (id 2) (at 185.42 99.06 90)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 185.42 99.06 90)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "DNP" "DNP" (id 4) (at 185.42 96.1898 0))
    (pin "1" (uuid 4b586d29-e256-40ab-97c7-b27c1153e996))
    (pin "2" (uuid e81baf3a-e4d1-46c5-8de2-c1f850a6b1d6))
  )

  (symbol (lib_id "Device:D_TVS") (at 50.8 107.95 270) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f37b3c0)
    (property "Reference" "D3" (id 0) (at 52.8066 106.7816 90)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "PESD0402-140" (id 1) (at 52.8066 109.093 90)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "Diode_SMD:D_0402_1005Metric" (id 2) (at 50.8 107.95 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 50.8 107.95 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "MPN" "Little Fuse PESD0402-140" (id 4) (at 50.8 107.95 90)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 682cebf1-e263-4542-a89c-dec0bdec1828))
    (pin "2" (uuid 2775403a-8d7e-457c-8559-f9a5db3a5326))
  )

  (symbol (lib_id "power:GND") (at 50.8 116.84 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f37bb33)
    (property "Reference" "#PWR044" (id 0) (at 50.8 123.19 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (id 1) (at 50.927 121.2342 0))
    (property "Footprint" "" (id 2) (at 50.8 116.84 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (id 3) (at 50.8 116.84 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 5b27c48b-ac49-4803-80e5-5aca426e620e))
  )

  (symbol (lib_id "power:PWR_FLAG") (at 210.82 96.52 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f6d51cd)
    (property "Reference" "#FLG03" (id 0) (at 210.82 94.615 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "PWR_FLAG" (id 1) (at 210.82 92.1258 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Footprint" "" (id 2) (at 210.82 96.52 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 210.82 96.52 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid bcb6b86d-b107-4aa4-8ba8-3af9b12c95e3))
  )

  (symbol (lib_id "power:PWR_FLAG") (at 96.52 55.88 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f6da120)
    (property "Reference" "#FLG02" (id 0) (at 96.52 53.975 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "PWR_FLAG" (id 1) (at 96.52 51.4858 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Footprint" "" (id 2) (at 96.52 55.88 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 96.52 55.88 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 5b2dcb54-03fe-4563-92da-b895ace3f0ea))
  )

  (symbol (lib_id "Device:R_Pack04") (at 134.62 93.98 270) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 00000000-0000-0000-0000-00005f77d81a)
    (property "Reference" "RN6" (id 0) (at 134.62 83.3882 90))
    (property "Value" "33R" (id 1) (at 134.62 85.6996 90))
    (property "Footprint" "Resistor_SMD:R_Array_Convex_4x0603" (id 2) (at 134.62 100.965 90)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 134.62 93.98 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 70eba86b-3384-4227-b301-03f0262196f0))
    (pin "2" (uuid e3b41366-26e9-4258-8352-a323c0493920))
    (pin "3" (uuid 41058c10-70cc-434c-9dba-462c5a70c0a0))
    (pin "4" (uuid d3a19325-da52-4d3b-90a6-aec3569f51dd))
    (pin "5" (uuid e1011013-62a3-47d2-9a4f-ee5ec3ce63cf))
    (pin "6" (uuid 71c39310-8686-4d5f-aeac-addc4e636f5e))
    (pin "7" (uuid d3af1df9-d358-447e-bd12-0c6cc62c12ed))
    (pin "8" (uuid 5d305c1e-ec21-477a-8dad-4713fe2a3ca2))
  )

  (symbol (lib_id "Jumper:SolderJumper_2_Open") (at 123.19 93.98 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 2fe05468-a358-4532-91bb-d12596f61ee3)
    (property "Reference" "JP2" (id 0) (at 128.27 92.71 0))
    (property "Value" "GPS SDA" (id 1) (at 123.19 91.9281 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Footprint" "s47-misc:J_0402" (id 2) (at 123.19 93.98 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 123.19 93.98 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 173cdf3a-7a67-4792-a522-569acea683a1))
    (pin "2" (uuid 82ce02bc-fbc1-469e-9bdf-43b2612fc814))
  )

  (symbol (lib_id "Jumper:SolderJumper_2_Open") (at 123.19 96.52 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid c5d67839-4777-45dd-9641-4c04e45579f7)
    (property "Reference" "JP3" (id 0) (at 128.27 95.25 0))
    (property "Value" "GPS SCL" (id 1) (at 123.19 94.4681 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Footprint" "s47-misc:J_0402" (id 2) (at 123.19 96.52 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 123.19 96.52 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 95634981-26de-4ebf-abe8-71e5cd0d0946))
    (pin "2" (uuid bb5bbef4-d651-462e-9e0e-058e4a59c047))
  )
)
