(kicad_sch (version 20211123) (generator eeschema)

  (uuid a1395841-eaa3-430a-b9c3-5cc8e27add8f)

  (paper "A4")

  (lib_symbols
    (symbol "Mechanical:MountingHole_Pad" (pin_numbers hide) (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
      (property "Reference" "H" (id 0) (at 0 6.35 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Value" "MountingHole_Pad" (id 1) (at 0 4.445 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" "mounting hole" (id 4) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Mounting Hole with connection" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "MountingHole*Pad*" (id 6) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "MountingHole_Pad_0_1"
        (circle (center 0 1.27) (radius 1.27)
          (stroke (width 1.27) (type default) (color 0 0 0 0))
          (fill (type none))
        )
      )
      (symbol "MountingHole_Pad_1_1"
        (pin input line (at 0 -2.54 90) (length 2.54)
          (name "1" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "power:+1V8" (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" "+1V8" (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 \"+1V8\"" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "+1V8_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 "+1V8_1_1"
        (pin power_in line (at 0 0 90) (length 0) hide
          (name "+1V8" (effects (font (size 1.27 1.27))))
          (number "1" (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:+5V" (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" "+5V" (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 \"+5V\"" (id 5) (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "+5V_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 "+5V_1_1"
        (pin power_in line (at 0 0 90) (length 0) hide
          (name "+5V" (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))
        )
      )
    )
  )


  (no_connect (at 80.01 180.34) (uuid 3278aa9a-bab6-48f8-ac8f-5baf47b5093d))
  (no_connect (at 80.01 187.96) (uuid 5f2f1911-03e5-47fd-95db-19e168104bfd))
  (no_connect (at 97.79 180.34) (uuid bef51c29-5c6e-4160-ac7e-91e2c3fab23d))
  (no_connect (at 97.79 187.96) (uuid f3cf8e9c-1029-4c32-825c-02379d8539a9))

  (wire (pts (xy 130.81 160.02) (xy 151.13 160.02))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 14482988-d976-4b64-84c3-34b19aa3c080)
  )
  (wire (pts (xy 130.81 154.94) (xy 151.13 154.94))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 61c4fcf4-77a0-489f-bd99-fde425031517)
  )
  (wire (pts (xy 157.48 180.34) (xy 157.48 182.88))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid 7cd58190-95d9-4ee8-97cc-c290a48f662d)
  )
  (wire (pts (xy 127 180.34) (xy 127 182.88))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid aa211dbc-45c0-4a6d-a646-8182307001a5)
  )
  (wire (pts (xy 130.81 162.56) (xy 151.13 162.56))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid b657aa3a-1019-4447-bdde-42d9ab18a1ab)
  )
  (wire (pts (xy 130.81 157.48) (xy 151.13 157.48))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid e62bd02f-8183-4c2f-9d47-be2a7bc6673d)
  )
  (wire (pts (xy 147.32 180.34) (xy 147.32 182.88))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid eaa117a5-f67d-47ba-86e4-7d94dea7191d)
  )
  (wire (pts (xy 130.81 152.4) (xy 151.13 152.4))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid f011dd81-a1de-4388-bcaf-5ebb7fd4875a)
  )
  (wire (pts (xy 137.16 180.34) (xy 137.16 182.88))
    (stroke (width 0) (type default) (color 0 0 0 0))
    (uuid f3ff836d-1e36-46a4-b878-b161f8eb551c)
  )

  (text "JTAG_TCK" (at 135.89 154.94 0)
    (effects (font (size 1.27 1.27)) (justify left bottom))
    (uuid 22c70d00-09ab-48a1-ac5b-c957df290379)
  )
  (text "JTAG_nTRST" (at 135.89 162.56 0)
    (effects (font (size 1.27 1.27)) (justify left bottom))
    (uuid 4658d8a3-6785-4bf8-8cde-7fa74fb10231)
  )
  (text "JTAG_TMS" (at 135.89 152.4 0)
    (effects (font (size 1.27 1.27)) (justify left bottom))
    (uuid 63036e96-fff7-4d4c-81ed-f3ef4e110dc3)
  )
  (text "JTAG_TDO" (at 135.89 157.48 0)
    (effects (font (size 1.27 1.27)) (justify left bottom))
    (uuid 8ed75f43-84c3-4407-9962-18caff6a60f6)
  )
  (text "JTAG_TDI" (at 135.89 160.02 0)
    (effects (font (size 1.27 1.27)) (justify left bottom))
    (uuid d40cd582-87d3-4bc8-ba29-99ab0c67c391)
  )

  (global_label "JTAG_TCK" (shape output) (at 151.13 154.94 0) (fields_autoplaced)
    (effects (font (size 1 1)) (justify left))
    (uuid 5019de98-317f-4833-9d28-4f212047e41f)
    (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 159.9348 154.8775 0)
      (effects (font (size 1 1)) (justify left))
    )
  )
  (global_label "JTAG_nTRST" (shape input) (at 151.13 162.56 0) (fields_autoplaced)
    (effects (font (size 1 1)) (justify left))
    (uuid 74135f4d-0bcd-41b5-a633-d1343edd5f96)
    (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 161.5538 162.4975 0)
      (effects (font (size 1 1)) (justify left))
    )
  )
  (global_label "JTAG_TDI" (shape output) (at 151.13 160.02 0) (fields_autoplaced)
    (effects (font (size 1 1)) (justify left))
    (uuid 814687a2-21b6-45f8-845a-554f9672193e)
    (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 159.411 159.9575 0)
      (effects (font (size 1 1)) (justify left))
    )
  )
  (global_label "JTAG_TMS" (shape output) (at 151.13 152.4 0) (fields_autoplaced)
    (effects (font (size 1 1)) (justify left))
    (uuid a32ae1ae-5982-497a-baa8-1b6c18a3f261)
    (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 160.03 152.3375 0)
      (effects (font (size 1 1)) (justify left))
    )
  )
  (global_label "JTAG_TDO" (shape input) (at 151.13 157.48 0) (fields_autoplaced)
    (effects (font (size 1 1)) (justify left))
    (uuid d8135b0d-736c-4aa7-9729-631f27c0e058)
    (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 159.9824 157.4175 0)
      (effects (font (size 1 1)) (justify left))
    )
  )

  (symbol (lib_id "power:+3V3") (at 147.32 180.34 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 01d78c5c-75bb-41f7-a8a0-0494ab1b758d)
    (property "Reference" "#PWR0118" (id 0) (at 147.32 184.15 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "+3V3" (id 1) (at 147.32 175.26 0))
    (property "Footprint" "" (id 2) (at 147.32 180.34 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (id 3) (at 147.32 180.34 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 1a54ac1b-bab7-400a-ba18-7e0b1269ca41))
  )

  (symbol (lib_id "power:+1V8") (at 137.16 180.34 0) (unit 1)
    (in_bom yes) (on_board yes)
    (uuid 1763f786-dd71-4840-968a-c65e7d3470b9)
    (property "Reference" "#PWR0117" (id 0) (at 137.16 184.15 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "+1V8" (id 1) (at 137.16 175.26 0))
    (property "Footprint" "" (id 2) (at 137.16 180.34 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (id 3) (at 137.16 180.34 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 376ddba5-512c-4954-a3b8-ac9833af80f6))
  )

  (symbol (lib_id "power:+5V") (at 157.48 180.34 0) (unit 1)
    (in_bom yes) (on_board yes) (fields_autoplaced)
    (uuid 26f89030-47cf-42e4-b52d-68258ac0b694)
    (property "Reference" "#PWR0119" (id 0) (at 157.48 184.15 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "+5V" (id 1) (at 157.48 175.26 0))
    (property "Footprint" "" (id 2) (at 157.48 180.34 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (id 3) (at 157.48 180.34 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid c018befe-0b7d-468a-a1d1-84e9f5190e28))
  )

  (symbol (lib_id "power:PWR_FLAG") (at 137.16 182.88 180) (unit 1)
    (in_bom yes) (on_board yes) (fields_autoplaced)
    (uuid 2d961883-8fad-4615-b075-c1c8d642286e)
    (property "Reference" "#FLG0101" (id 0) (at 137.16 184.785 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "PWR_FLAG" (id 1) (at 137.16 187.96 0))
    (property "Footprint" "" (id 2) (at 137.16 182.88 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 137.16 182.88 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 8443d732-cbb9-4e7e-bdc3-21302635e4b0))
  )

  (symbol (lib_id "power:PWR_FLAG") (at 127 180.34 0) (unit 1)
    (in_bom yes) (on_board yes) (fields_autoplaced)
    (uuid 39d46bd4-00a9-474a-ae64-99d67bf6f5ed)
    (property "Reference" "#FLG0102" (id 0) (at 127 178.435 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "PWR_FLAG" (id 1) (at 127 175.26 0))
    (property "Footprint" "" (id 2) (at 127 180.34 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 127 180.34 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 139873f8-6bbf-4c1c-a410-75f6800c8fb3))
  )

  (symbol (lib_id "Mechanical:MountingHole_Pad") (at 97.79 185.42 0) (unit 1)
    (in_bom yes) (on_board yes) (fields_autoplaced)
    (uuid 3d338990-2bfd-4ad1-9d29-5ed86abc4a46)
    (property "Reference" "H4" (id 0) (at 100.33 184.1499 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "MountingHole" (id 1) (at 100.33 186.6899 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "DevBoardMicroLib:9774030951R" (id 2) (at 97.79 185.42 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 97.79 185.42 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 8c066880-cbc2-45eb-8e13-2b5651917189))
  )

  (symbol (lib_id "power:PWR_FLAG") (at 147.32 182.88 180) (unit 1)
    (in_bom yes) (on_board yes) (fields_autoplaced)
    (uuid 761994d9-0fff-4933-ae07-2d81af7b06af)
    (property "Reference" "#FLG0103" (id 0) (at 147.32 184.785 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "PWR_FLAG" (id 1) (at 147.32 187.96 0))
    (property "Footprint" "" (id 2) (at 147.32 182.88 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 147.32 182.88 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid a101a7dd-3f5b-48c2-a3c2-53636101e725))
  )

  (symbol (lib_id "power:PWR_FLAG") (at 157.48 182.88 180) (unit 1)
    (in_bom yes) (on_board yes) (fields_autoplaced)
    (uuid 7e482491-ae76-4b1c-a734-9a8ff2193916)
    (property "Reference" "#FLG0104" (id 0) (at 157.48 184.785 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "PWR_FLAG" (id 1) (at 157.48 187.96 0))
    (property "Footprint" "" (id 2) (at 157.48 182.88 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 157.48 182.88 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 1734bf90-e59a-454b-b75b-95b700d8ae55))
  )

  (symbol (lib_id "Mechanical:MountingHole_Pad") (at 97.79 177.8 0) (unit 1)
    (in_bom yes) (on_board yes) (fields_autoplaced)
    (uuid 83e6d6e6-3a0e-4f35-9aac-5a1696ccc4a8)
    (property "Reference" "H3" (id 0) (at 100.33 176.5299 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "MountingHole" (id 1) (at 100.33 179.0699 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "DevBoardMicroLib:9774030951R" (id 2) (at 97.79 177.8 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 97.79 177.8 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid ad6bd075-d043-4005-8fa0-22a64caa83a8))
  )

  (symbol (lib_id "Mechanical:MountingHole_Pad") (at 80.01 185.42 0) (unit 1)
    (in_bom yes) (on_board yes) (fields_autoplaced)
    (uuid 8bb23044-8e2c-46a7-94d1-d22ca80f8935)
    (property "Reference" "H2" (id 0) (at 82.55 184.1499 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "MountingHole" (id 1) (at 82.55 186.6899 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "DevBoardMicroLib:9774030951R" (id 2) (at 80.01 185.42 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 80.01 185.42 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 66ec9c99-536e-4965-8c3d-3f8f6376a2f0))
  )

  (symbol (lib_id "Mechanical:MountingHole_Pad") (at 80.01 177.8 0) (unit 1)
    (in_bom yes) (on_board yes) (fields_autoplaced)
    (uuid a76bb15d-f7e2-4a5a-b278-caf4fac53d9a)
    (property "Reference" "H1" (id 0) (at 82.55 176.5299 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "MountingHole" (id 1) (at 82.55 179.0699 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "DevBoardMicroLib:9774030951R" (id 2) (at 80.01 177.8 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (id 3) (at 80.01 177.8 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid cb62cdf5-427f-4e72-bcad-46fb7b0d7943))
  )

  (symbol (lib_id "power:GND") (at 127 182.88 0) (unit 1)
    (in_bom yes) (on_board yes) (fields_autoplaced)
    (uuid cdb86a34-4c47-488e-bd36-c1327e1e9630)
    (property "Reference" "#PWR0116" (id 0) (at 127 189.23 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (id 1) (at 127 187.96 0))
    (property "Footprint" "" (id 2) (at 127 182.88 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (id 3) (at 127 182.88 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 1c2d85aa-4de0-4594-a4bd-828a2b06049e))
  )

  (sheet (at 19.05 170.18) (size 41.91 21.59) (fields_autoplaced)
    (stroke (width 0.1524) (type solid) (color 0 0 0 0))
    (fill (color 0 0 0 0.0000))
    (uuid 851a5144-622e-4e9b-84aa-b2177ea53c92)
    (property "Sheet name" "B2B Connection" (id 0) (at 19.05 169.4684 0)
      (effects (font (size 1.27 1.27)) (justify left bottom))
    )
    (property "Sheet file" "B2B.kicad_sch" (id 1) (at 19.05 192.3546 0)
      (effects (font (size 1.27 1.27)) (justify left top))
    )
  )

  (sheet_instances
    (path "/" (page "1"))
    (path "/851a5144-622e-4e9b-84aa-b2177ea53c92" (page "2"))
  )

  (symbol_instances
    (path "/2d961883-8fad-4615-b075-c1c8d642286e"
      (reference "#FLG0101") (unit 1) (value "PWR_FLAG") (footprint "")
    )
    (path "/39d46bd4-00a9-474a-ae64-99d67bf6f5ed"
      (reference "#FLG0102") (unit 1) (value "PWR_FLAG") (footprint "")
    )
    (path "/761994d9-0fff-4933-ae07-2d81af7b06af"
      (reference "#FLG0103") (unit 1) (value "PWR_FLAG") (footprint "")
    )
    (path "/7e482491-ae76-4b1c-a734-9a8ff2193916"
      (reference "#FLG0104") (unit 1) (value "PWR_FLAG") (footprint "")
    )
    (path "/851a5144-622e-4e9b-84aa-b2177ea53c92/509be4de-4cfd-4f03-a29b-e210350800cc"
      (reference "#PWR0109") (unit 1) (value "GND") (footprint "")
    )
    (path "/851a5144-622e-4e9b-84aa-b2177ea53c92/6b91675f-3f4a-4c45-b82b-8db2163a75ff"
      (reference "#PWR0110") (unit 1) (value "GND") (footprint "")
    )
    (path "/851a5144-622e-4e9b-84aa-b2177ea53c92/95a63bfa-f3e2-4ec2-a9fd-517188bf6aa7"
      (reference "#PWR0111") (unit 1) (value "+5V") (footprint "")
    )
    (path "/851a5144-622e-4e9b-84aa-b2177ea53c92/d7419199-80cd-4ec8-90a7-c7841f41c706"
      (reference "#PWR0112") (unit 1) (value "+1V8") (footprint "")
    )
    (path "/851a5144-622e-4e9b-84aa-b2177ea53c92/df1b28de-d73c-4328-9f7f-55bf26651bdf"
      (reference "#PWR0113") (unit 1) (value "+3V3") (footprint "")
    )
    (path "/851a5144-622e-4e9b-84aa-b2177ea53c92/b2242582-8a2a-4dd7-9028-8eff339cc1b0"
      (reference "#PWR0114") (unit 1) (value "GND") (footprint "")
    )
    (path "/851a5144-622e-4e9b-84aa-b2177ea53c92/ea0dc059-938a-4105-9e52-0d8b5ffddd86"
      (reference "#PWR0115") (unit 1) (value "GND") (footprint "")
    )
    (path "/cdb86a34-4c47-488e-bd36-c1327e1e9630"
      (reference "#PWR0116") (unit 1) (value "GND") (footprint "")
    )
    (path "/1763f786-dd71-4840-968a-c65e7d3470b9"
      (reference "#PWR0117") (unit 1) (value "+1V8") (footprint "")
    )
    (path "/01d78c5c-75bb-41f7-a8a0-0494ab1b758d"
      (reference "#PWR0118") (unit 1) (value "+3V3") (footprint "")
    )
    (path "/26f89030-47cf-42e4-b52d-68258ac0b694"
      (reference "#PWR0119") (unit 1) (value "+5V") (footprint "")
    )
    (path "/a76bb15d-f7e2-4a5a-b278-caf4fac53d9a"
      (reference "H1") (unit 1) (value "MountingHole") (footprint "DevBoardMicroLib:9774030951R")
    )
    (path "/8bb23044-8e2c-46a7-94d1-d22ca80f8935"
      (reference "H2") (unit 1) (value "MountingHole") (footprint "DevBoardMicroLib:9774030951R")
    )
    (path "/83e6d6e6-3a0e-4f35-9aac-5a1696ccc4a8"
      (reference "H3") (unit 1) (value "MountingHole") (footprint "DevBoardMicroLib:9774030951R")
    )
    (path "/3d338990-2bfd-4ad1-9d29-5ed86abc4a46"
      (reference "H4") (unit 1) (value "MountingHole") (footprint "DevBoardMicroLib:9774030951R")
    )
    (path "/851a5144-622e-4e9b-84aa-b2177ea53c92/a49eea03-6cd4-479c-a764-06c09fdb033d"
      (reference "J1") (unit 1) (value "DF40HC(3.0)-100DS-0.4V") (footprint "DevBoardMicroLib:DF40HC_3.0-100DS-0.4V")
    )
    (path "/851a5144-622e-4e9b-84aa-b2177ea53c92/235f67bf-0f50-4ac6-b7c0-564c2d019217"
      (reference "J2") (unit 1) (value "DF40HC(3.0)-100DS-0.4V") (footprint "DevBoardMicroLib:DF40HC_3.0-100DS-0.4V")
    )
  )
)
