text:
/*
  Node.cs -- stored node exceptions for DrData, January 24, 2016

  Copyright (c) 2013-2016 Kudryashov Andrey aka Dr

  This software is provided 'as-is', without any express or implied
  warranty. In no event will the authors be held liable for any damages
  arising from the use of this software.

  Permission is granted to anyone to use this software for any purpose,
  including commercial applications, and to alter it and redistribute it
  freely, subject to the following restrictions:

      1. The origin of this software must not be misrepresented; you must not
      claim that you wrote the original software. If you use this software
      in a product, an acknowledgment in the product documentation would be
      appreciated but is not required.

      2. Altered source versions must be plainly marked as such, and must not be
      misrepresented as being the original software.

      3. This notice may not be removed or altered from any source distribution.

      Kudryashov Andrey <kudryashov.andrey at gmail.com>

 */
using System;

namespace DrOpen.DrCommon.DrData.Exceptions
{
    /// <summary>
    /// DrData -- node exception
    /// </summary>
    public class DDNodeException : Exception
    {
        /// <summary>
        /// DrData node exception
        /// </summary>
        public DDNodeException()
            : base() { }
        /// <summary>
        /// DrData node exception
        /// </summary>
        /// <param name="message">A message that describes the error.</param>
        public DDNodeException(string message)
            : base(message) { }
        /// <summary>
        /// DrData node exception
        /// </summary>
        /// <param name="message">A message that describes the error.</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodeException(string message, Exception innerException)
            : base(message, innerException) { }

    }

    #region Add
    /// <summary>
    /// DrData -- node exception -- the exception that is thrown when you try to add node which has another parent node.
    /// </summary>
    public class DDNodeAddNodeWithParent : DDNodePathException
    {
        /// <summary>
        /// Initializes a new instance of the DDNodeAddNodeWithParent class with the default error message.
        /// </summary>
        /// <param name="path">Path to node</param>
        public DDNodeAddNodeWithParent(string path)
            : base(path, string.Format(Res.Msg.CANNOT_ADD_NODE_BELONG_TO_ANOTHER_PARENT_NODE, path))
        { }
        /// <summary>
        /// Initializes a new instance of the DDNodeAddNodeWithParent class with a specified error message.
        /// </summary>
        /// <param name="path">path to node</param>
        /// <param name="message">A message that describes the error</param>
        public DDNodeAddNodeWithParent(string path, string message)
            : base(message)
        { }
        /// <summary>
        /// Initializes a new instance of the DDNodeAddNodeWithParent class with the default message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="path">path to node</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodeAddNodeWithParent(string path, Exception innerException)
            : base(string.Format(Res.Msg.CANNOT_ADD_NODE_BELONG_TO_ANOTHER_PARENT_NODE, path), innerException)
        { }
        /// <summary>
        /// Initializes a new instance of the DDNodeAddNodeWithParent class with a specified error message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="path">path to node</param>
        /// <param name="message">A message that describes the error.</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodeAddNodeWithParent(string path, string message, Exception innerException)
            : base(message, innerException)
        { }
    }
    /// <summary>
    /// DrData -- node exception -- the exception that is thrown when you try to add yourself as child node.
    /// </summary>
    public class DDNodeAddSelf : DDNodePathException
    {
        /// <summary>
        /// Initializes a new instance of the DDNodeAddSelf class with the default error message.
        /// </summary>
        /// <param name="path">Path to node</param>
        public DDNodeAddSelf(string path)
            : base(path, string.Format(Res.Msg.CANNOT_ADD_YOURSELF_AS_CHILD, path))
        { }
        /// <summary>
        /// Initializes a new instance of the DDNodeAddSelf class with a specified error message.
        /// </summary>
        /// <param name="path">path to node</param>
        /// <param name="message">A message that describes the error</param>
        public DDNodeAddSelf(string path, string message)
            : base(path, message)
        { }
        /// <summary>
        /// Initializes a new instance of the DDNodeAddSelf class with the default message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="path">path to node</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodeAddSelf(string path, Exception innerException)
            : base(path, string.Format(Res.Msg.CANNOT_ADD_YOURSELF_AS_CHILD, path), innerException)
        { }
        /// <summary>
        /// Initializes a new instance of the DDNodeAddSelf class with a specified error message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="path">path to node</param>
        /// <param name="message">A message that describes the error.</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodeAddSelf(string path, string message, Exception innerException)
            : base(path, message, innerException)
        { }
    }
    /// <summary>
    /// DrData -- node exception -- the exception that is thrown when the node is null.
    /// </summary>
    public class DDNodeNullException : DDNodeException
    {
        /// <summary>
        /// Initializes a new instance of the DDNodeAddNullException class with the default error message.
        /// </summary>
        public DDNodeNullException()
            : base(Res.Msg.CANNOT_NULL_NODE)
        { }
        /// <summary>
        /// Initializes a new instance of the DDNodeAddNullException class with a specified error message.
        /// </summary>
        /// <param name="message">A message that describes the error</param>
        public DDNodeNullException(string message)
            : base(message)
        { }
        /// <summary>
        /// Initializes a new instance of the DDNodeAddNullException class with the default message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodeNullException(Exception innerException)
            : base(Res.Msg.CANNOT_NULL_NODE, innerException)
        { }
        /// <summary>
        /// Initializes a new instance of the DDNodeAddNullException class with a specified error message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="message">A message that describes the error.</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodeNullException(string message, Exception innerException)
            : base(message, innerException)
        { }
    }

    #endregion Add
    #region Path
    /// <summary>
    /// DrData -- node exception -- the exception that is thrown when the node path is null.
    /// </summary>
    public class DDNodeNullPathException : DDNodeException
    {
        /// <summary>
        /// Initializes a new instance of the DDNodeNullPathException class with the default error message.
        /// </summary>
        public DDNodeNullPathException()
            : base(Res.Msg.PATH_IS_NULL)
        { }
        /// <summary>
        /// Initializes a new instance of the DDNodeNullPathException class with a specified error message.
        /// </summary>
        /// <param name="message">A message that describes the error</param>
        public DDNodeNullPathException(string message)
            : base(message)
        { }
        /// <summary>
        /// Initializes a new instance of the DDNodeNullPathException class with the default message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodeNullPathException(Exception innerException)
            : base(Res.Msg.PATH_IS_NULL, innerException)
        { }
        /// <summary>
        /// Initializes a new instance of the DDNodeNullPathException class with a specified error message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="message">A message that describes the error.</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodeNullPathException(string message, Exception innerException)
            : base(message, innerException)
        { }
    }

    /// <summary>
    /// DrData -- node exception -- the exception that is thrown when you try to rise above the root node.
    /// </summary>
    public class DDNodePathAboveRootException : DDNodePathException
    {
        /// <summary>
        /// Initializes a new instance of the DDNodePathAboveRootException class with the default error message.
        /// </summary>
        /// <param name="path">Path to node</param>
        public DDNodePathAboveRootException(string path)
            : base(path, string.Format(Res.Msg.RISE_ABOVE_ROOT_NODE, path))
        { }
        /// <summary>
        /// Initializes a new instance of the DDNodePathAboveRootException class with a specified error message.
        /// </summary>
        /// <param name="path">path to node</param>
        /// <param name="message">A message that describes the error</param>
        public DDNodePathAboveRootException(string path, string message)
            : base(path, message)
        { }
        /// <summary>
        /// Initializes a new instance of the DDNodePathAboveRootException class with the default message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="path">path to node</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodePathAboveRootException(string path, Exception innerException)
            : base(path, string.Format(Res.Msg.RISE_ABOVE_ROOT_NODE, path), innerException)
        { }
        /// <summary>
        /// Initializes a new instance of the DDNodePathAboveRootException class with a specified error message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="path">path to node</param>
        /// <param name="message">A message that describes the error.</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodePathAboveRootException(string path, string message, Exception innerException)
            : base(path, message, innerException)
        { }
    }

    /// <summary>
    /// DrData -- node exception -- the exception that is thrown when the node path is incorrect.
    /// </summary>
    public class DDNodePathException : DDNodeException
    {
        /// <summary>
        /// Initializes a new instance of the DDNodePathException class with the default error message.
        /// </summary>
        /// <param name="path">Path to node</param>
        public DDNodePathException(string path)
            : base(string.Format(Res.Msg.INCORRECT_PATH, path))
        { this.Path = path; }
        /// <summary>
        /// Initializes a new instance of the DDNodePathException class with a specified error message.
        /// </summary>
        /// <param name="path">path to node</param>
        /// <param name="message">A message that describes the error</param>
        public DDNodePathException(string path, string message)
            : base(message)
        { this.Path = path; }
        /// <summary>
        /// Initializes a new instance of the DDNodePathException class with the default message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="path">path to node</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodePathException(string path, Exception innerException)
            : base(string.Format(Res.Msg.INCORRECT_PATH, path), innerException)
        { this.Path = path; }
        /// <summary>
        /// Initializes a new instance of the DDNodePathException class with a specified error message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="path">path to node</param>
        /// <param name="message">A message that describes the error.</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodePathException(string path, string message, Exception innerException)
            : base(message, innerException)
        { this.Path = path; }
        /// <summary>
        /// path to node
        /// </summary>
        public virtual string Path { get; private set; }
    }
    #endregion Path

    /// <summary>
    /// DrData -- node exception -- the exception that is thrown when the node name is incorrect.
    /// </summary>
    public class DDNodeMergeNameException : DDNodeIncorrectNameException
    {
        /// <summary>
        /// Initializes a new instance of the DDNodeMergeNameException class with the default error message.
        /// </summary>
        /// <param name="name">Node name</param>
        /// <param name="destinationPath">path to destination node</param>
        public DDNodeMergeNameException(string name, string destinationPath)
            : base(name, string.Format(Res.Msg.CANNOT_MERGE_NODE_WITH_EXIST_NAME, name, destinationPath))
        {
            this.DestinationPath = destinationPath;
        }
        /// <summary>
        /// Initializes a new instance of the DDNodeMergeNameException class with a specified error message.
        /// </summary>
        /// <param name="name">name of node</param>
        /// <param name="destinationPath">path to destination node</param>
        /// <param name="message">A message that describes the error.</param>
        public DDNodeMergeNameException(string name, string destinationPath, string message)
            : base(name, message)
        {
            this.DestinationPath = destinationPath;

        }
        /// <summary>
        /// Initializes a new instance of the DDNodeMergeNameException class with the default message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="name">Node name</param>
        /// <param name="destinationPath">path to destination node</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodeMergeNameException(string name, string destinationPath, Exception innerException)
            : base(name, string.Format(Res.Msg.INCORRECT_NODE_NAME, name), innerException)
        { this.DestinationPath = destinationPath; }
        /// <summary>
        ///  Initializes a new instance of the DDNodeMergeNameException class with a specified error message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="name">Node name</param>
        /// <param name="destinationPath">path to destination node</param>
        /// <param name="message">A message that describes the error.</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodeMergeNameException(string name, string destinationPath, string message, Exception innerException)
            : base(name, message, innerException)
        { this.DestinationPath = destinationPath; }
        /// <summary>
        /// destination path to node
        /// </summary>
        public virtual string DestinationPath { get; private set; }
    }

    /// <summary>
    /// DrData -- node exception -- the exception that is thrown when the node name is incorrect.
    /// </summary>
    public class DDNodeIncorrectNameException : DDNodeException
    {
        /// <summary>
        /// Initializes a new instance of the DDNodeIncorrectNameException class with the default error message.
        /// </summary>
        /// <param name="name">Node name</param>
        public DDNodeIncorrectNameException(string name)
            : base(string.Format(Res.Msg.INCORRECT_NODE_NAME, name))
        { this.Name = name; }
        /// <summary>
        /// Initializes a new instance of the DDNodeIncorrectNameException class with a specified error message.
        /// </summary>
        /// <param name="name">name of node</param>
        /// <param name="message">A message that describes the error.</param>
        public DDNodeIncorrectNameException(string name, string message)
            : base(message)
        { this.Name = name; }
        /// <summary>
        /// Initializes a new instance of the DDNodeIncorrectNameException class with the default message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="name">Node name</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodeIncorrectNameException(string name, Exception innerException)
            : base(string.Format(Res.Msg.INCORRECT_NODE_NAME, name), innerException)
        { this.Name = name; }
        /// <summary>
        ///  Initializes a new instance of the DDNodeIncorrectNameException class with a specified error message and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="name">Node name</param>
        /// <param name="message">A message that describes the error.</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodeIncorrectNameException(string name, string message, Exception innerException)
            : base(message, innerException)
        { this.Name = name; }
        /// <summary>
        /// Node name
        /// </summary>
        public virtual string Name { get; private set; }
    }
    /// <summary>
    /// DrData -- node with same name already exist exception
    /// </summary>
    public class DDNodeExistsException : DDNodeException
    {
        /// <summary>
        /// Initializes a new instance of the DDNodeExistsException class with the default error message.
        /// <param name="name">Node name</param>
        /// </summary>
        public DDNodeExistsException(string name)
            : base(string.Format(Res.Msg.NODE_EXISTS, name)) { this.Name = name; }
        /// <summary>
        /// Initializes a new instance of the DDNodeExistsException class with the specified error message.
        /// </summary>
        /// <param name="name">Node name</param>
        /// <param name="message">A message that describes the error.</param>
        public DDNodeExistsException(string name, string message)
            : base(message) { this.Name = name; }

        /// <summary>
        /// Initializes a new instance of the DDNodeExistsException class with the default error message.
        /// </summary>
        /// <param name="name">Node name</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodeExistsException(string name, Exception innerException)
            : base(string.Format(Res.Msg.NODE_EXISTS, name), innerException) { this.Name = name; }

        /// <summary>
        /// Initializes a new instance of the DDNodeExistsException class with the specified error message.
        /// </summary>
        /// <param name="name">Node name</param>
        /// <param name="message">A message that describes the error.</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodeExistsException(string name, string message, Exception innerException)
            : base(message, innerException) { this.Name = name; }

        /// <summary>
        /// Node name
        /// </summary>
        public virtual string Name { get; private set; }
    }
    /// <summary>
    /// DrData -- nodes belong to the different trees
    /// </summary>
    public class DDNodesBelongDifferentTrees: DDNodeException
    {
        /// <summary>
        /// Initializes a new instance of the DDNodesBelongDifferentTrees class with the default error message.
        /// <param name="name">Node name</param>
        /// </summary>
        public DDNodesBelongDifferentTrees(params string[] names)
            : base(string.Format(Res.Msg.NODE_EXISTS, String.Join(", ",  names))) { this.Names = names; }
        /// <summary>
        /// Initializes a new instance of the DDNodesBelongDifferentTrees class with the specified error message.
        /// </summary>
        /// <param name="name">Node name</param>
        /// <param name="message">A message that describes the error.</param>
        public DDNodesBelongDifferentTrees(string[] names, string message)
            : base(message) { this.Names = names; }

        /// <summary>
        /// Initializes a new instance of the DDNodesBelongDifferentTrees class with the default error message.
        /// </summary>
        /// <param name="name">Node name</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodesBelongDifferentTrees(string[] names, Exception innerException)
            : base(string.Format(Res.Msg.NODE_EXISTS, String.Join(", ",  names)), innerException) { this.Names = names; }

        /// <summary>
        /// Initializes a new instance of the DDNodesBelongDifferentTrees class with the specified error message.
        /// </summary>
        /// <param name="name">Nodes names</param>
        /// <param name="message">A message that describes the error.</param>
        /// <param name="innerException">The exception that is the cause of the current exception. If the innerException parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception.</param>
        public DDNodesBelongDifferentTrees(string[] names, string message, Exception innerException)
            : base(message, innerException) { this.Names = names; }

        /// <summary>
        /// Node name
        /// </summary>
        public virtual string[] Names { get; private set; }
    }
}

license: Zlib

repository: sintthr/DrCommon

repo_name: sintthr/DrCommon

extension: cs


text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="6.5.0">
<drawing>
<settings>
<setting alwaysvectorfont="no"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.25" unitdist="mm" unit="mm" style="lines" multiple="1" display="yes" altdistance="0.025" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
<layer number="20" name="Dimension" color="15" fill="1" visible="yes" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="yes" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="yes" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="yes" active="yes"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="yes" active="yes"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="yes" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="yes" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="yes" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="no" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="yes" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="yes" active="yes"/>
<layer number="50" name="dxf" color="7" fill="1" visible="no" active="no"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="53" name="tGND_GNDA" color="7" fill="9" visible="no" active="no"/>
<layer number="54" name="bGND_GNDA" color="1" fill="9" visible="no" active="no"/>
<layer number="56" name="wert" color="7" fill="1" visible="no" active="no"/>
<layer number="91" name="Nets" color="2" fill="1" visible="no" active="no"/>
<layer number="92" name="Busses" color="1" fill="1" visible="no" active="no"/>
<layer number="93" name="Pins" color="2" fill="1" visible="no" active="no"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="no" active="no"/>
<layer number="95" name="Names" color="7" fill="1" visible="no" active="no"/>
<layer number="96" name="Values" color="7" fill="1" visible="no" active="no"/>
<layer number="97" name="Info" color="7" fill="1" visible="no" active="no"/>
<layer number="98" name="Guide" color="6" fill="1" visible="no" active="no"/>
<layer number="100" name="Muster" color="7" fill="1" visible="no" active="no"/>
<layer number="101" name="Patch_Top" color="12" fill="4" visible="yes" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="yes" active="yes"/>
<layer number="103" name="tMap" color="7" fill="1" visible="yes" active="yes"/>
<layer number="104" name="Name" color="16" fill="1" visible="yes" active="yes"/>
<layer number="105" name="tPlate" color="7" fill="1" visible="yes" active="yes"/>
<layer number="106" name="bPlate" color="7" fill="1" visible="yes" active="yes"/>
<layer number="107" name="Crop" color="7" fill="1" visible="yes" active="yes"/>
<layer number="108" name="fp8" color="7" fill="1" visible="no" active="yes"/>
<layer number="109" name="fp9" color="7" fill="1" visible="no" active="yes"/>
<layer number="110" name="fp0" color="7" fill="1" visible="no" active="yes"/>
<layer number="111" name="LPC17xx" color="7" fill="1" visible="yes" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="113" name="IDFDebug" color="7" fill="1" visible="yes" active="yes"/>
<layer number="116" name="Patch_BOT" color="9" fill="4" visible="yes" active="yes"/>
<layer number="121" name="_tsilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="122" name="_bsilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="123" name="tTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="125" name="_tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="126" name="_bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="127" name="_tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="128" name="_bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="131" name="tAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="132" name="bAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="yes" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="yes" active="yes"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="199" name="Contour" color="7" fill="1" visible="yes" active="yes"/>
<layer number="200" name="200bmp" color="1" fill="10" visible="yes" active="yes"/>
<layer number="201" name="201bmp" color="2" fill="10" visible="yes" active="yes"/>
<layer number="202" name="202bmp" color="3" fill="10" visible="yes" active="yes"/>
<layer number="203" name="203bmp" color="4" fill="10" visible="yes" active="yes"/>
<layer number="204" name="204bmp" color="5" fill="10" visible="yes" active="yes"/>
<layer number="205" name="205bmp" color="6" fill="10" visible="yes" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="10" visible="yes" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="10" visible="yes" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="10" visible="yes" active="yes"/>
<layer number="209" name="209bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="210" name="210bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="211" name="211bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="212" name="212bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="213" name="213bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="214" name="214bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="215" name="215bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="216" name="216bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
<layer number="248" name="Housing" color="7" fill="1" visible="yes" active="yes"/>
<layer number="249" name="Edge" color="7" fill="1" visible="yes" active="yes"/>
<layer number="250" name="Descript" color="3" fill="1" visible="no" active="no"/>
<layer number="251" name="SMDround" color="12" fill="11" visible="no" active="no"/>
<layer number="254" name="cooling" color="7" fill="1" visible="yes" active="yes"/>
</layers>
<board>
<plain>
<wire x1="0" y1="0" x2="25" y2="0" width="0" layer="20"/>
<wire x1="25" y1="0" x2="25" y2="40" width="0" layer="20"/>
<wire x1="25" y1="40" x2="0" y2="40" width="0" layer="20"/>
<wire x1="0" y1="40" x2="0" y2="0" width="0" layer="20"/>
<rectangle x1="0.5" y1="31.5" x2="24.5" y2="39.5" layer="41"/>
<rectangle x1="0.5" y1="31.5" x2="24.5" y2="39.5" layer="42"/>
<circle x="5.5" y="29.25" radius="0.2" width="0.4" layer="29"/>
<wire x1="18" y1="8.25" x2="20" y2="8.25" width="0.4" layer="29"/>
<text x="1.75" y="25.5" size="1" layer="29" font="vector" ratio="16" rot="R90">BMP180</text>
</plain>
<libraries>
<library name="NordicSemi">
<packages>
<package name="QFN48">
<smd name="1" x="-3.17" y="2.2" dx="1.3" dy="0.2257" layer="1"/>
<smd name="GND" x="0" y="0" dx="4.66" dy="4.66" layer="1"/>
<smd name="2" x="-3.17" y="1.8" dx="1.3" dy="0.2257" layer="1"/>
<smd name="3" x="-3.17" y="1.4" dx="1.3" dy="0.2257" layer="1"/>
<smd name="4" x="-3.17" y="1" dx="1.3" dy="0.2257" layer="1"/>
<smd name="5" x="-3.17" y="0.6" dx="1.3" dy="0.2257" layer="1"/>
<smd name="6" x="-3.17" y="0.2" dx="1.3" dy="0.2257" layer="1"/>
<smd name="7" x="-3.17" y="-0.2" dx="1.3" dy="0.2257" layer="1"/>
<smd name="8" x="-3.17" y="-0.6" dx="1.3" dy="0.2257" layer="1"/>
<smd name="9" x="-3.17" y="-1" dx="1.3" dy="0.2257" layer="1"/>
<smd name="10" x="-3.17" y="-1.4" dx="1.3" dy="0.2257" layer="1"/>
<smd name="11" x="-3.17" y="-1.8" dx="1.3" dy="0.2257" layer="1"/>
<smd name="12" x="-3.17" y="-2.2" dx="1.3" dy="0.2257" layer="1"/>
<smd name="13" x="-2.2" y="-3.17" dx="1.3" dy="0.2257" layer="1" rot="R90"/>
<smd name="14" x="-1.8" y="-3.17" dx="1.3" dy="0.2257" layer="1" rot="R90"/>
<smd name="15" x="-1.4" y="-3.17" dx="1.3" dy="0.2257" layer="1" rot="R90"/>
<smd name="16" x="-1" y="-3.17" dx="1.3" dy="0.2257" layer="1" rot="R90"/>
<smd name="17" x="-0.6" y="-3.17" dx="1.3" dy="0.2257" layer="1" rot="R90"/>
<smd name="18" x="-0.2" y="-3.17" dx="1.3" dy="0.2257" layer="1" rot="R90"/>
<smd name="19" x="0.2" y="-3.17" dx="1.3" dy="0.2257" layer="1" rot="R90"/>
<smd name="20" x="0.6" y="-3.17" dx="1.3" dy="0.2257" layer="1" rot="R90"/>
<smd name="21" x="1" y="-3.17" dx="1.3" dy="0.2257" layer="1" rot="R90"/>
<smd name="22" x="1.4" y="-3.17" dx="1.3" dy="0.2257" layer="1" rot="R90"/>
<smd name="23" x="1.8" y="-3.17" dx="1.3" dy="0.2257" layer="1" rot="R90"/>
<smd name="24" x="2.2" y="-3.17" dx="1.3" dy="0.2257" layer="1" rot="R90"/>
<smd name="25" x="3.17" y="-2.2" dx="1.3" dy="0.2257" layer="1" rot="R180"/>
<smd name="26" x="3.17" y="-1.8" dx="1.3" dy="0.2257" layer="1" rot="R180"/>
<smd name="27" x="3.17" y="-1.4" dx="1.3" dy="0.2257" layer="1" rot="R180"/>
<smd name="28" x="3.17" y="-1" dx="1.3" dy="0.2257" layer="1" rot="R180"/>
<smd name="29" x="3.17" y="-0.6" dx="1.3" dy="0.2257" layer="1" rot="R180"/>
<smd name="30" x="3.17" y="-0.2" dx="1.3" dy="0.2257" layer="1" rot="R180"/>
<smd name="31" x="3.17" y="0.2" dx="1.3" dy="0.2257" layer="1" rot="R180"/>
<smd name="32" x="3.17" y="0.6" dx="1.3" dy="0.2257" layer="1" rot="R180"/>
<smd name="33" x="3.17" y="1" dx="1.3" dy="0.2257" layer="1" rot="R180"/>
<smd name="34" x="3.17" y="1.4" dx="1.3" dy="0.2257" layer="1" rot="R180"/>
<smd name="35" x="3.17" y="1.8" dx="1.3" dy="0.2257" layer="1" rot="R180"/>
<smd name="36" x="3.17" y="2.2" dx="1.3" dy="0.2257" layer="1" rot="R180"/>
<smd name="37" x="2.2" y="3.17" dx="1.3" dy="0.2257" layer="1" rot="R270"/>
<smd name="38" x="1.8" y="3.17" dx="1.3" dy="0.2257" layer="1" rot="R270"/>
<smd name="39" x="1.4" y="3.17" dx="1.3" dy="0.2257" layer="1" rot="R270"/>
<smd name="40" x="1" y="3.17" dx="1.3" dy="0.2257" layer="1" rot="R270"/>
<smd name="41" x="0.6" y="3.17" dx="1.3" dy="0.2257" layer="1" rot="R270"/>
<smd name="42" x="0.2" y="3.17" dx="1.3" dy="0.2257" layer="1" rot="R270"/>
<smd name="43" x="-0.2" y="3.17" dx="1.3" dy="0.2257" layer="1" rot="R270"/>
<smd name="44" x="-0.6" y="3.17" dx="1.3" dy="0.2257" layer="1" rot="R270"/>
<smd name="45" x="-1" y="3.17" dx="1.3" dy="0.2257" layer="1" rot="R270"/>
<smd name="46" x="-1.4" y="3.17" dx="1.3" dy="0.2257" layer="1" rot="R270"/>
<smd name="47" x="-1.8" y="3.17" dx="1.3" dy="0.2257" layer="1" rot="R270"/>
<smd name="48" x="-2.2" y="3.17" dx="1.3" dy="0.2257" layer="1" rot="R270"/>
<text x="-2.54" y="5.08" size="1.27" layer="25">>NAME</text>
<text x="-2.54" y="-6.35" size="1.27" layer="27">>VALUE</text>
<circle x="-2.64" y="2.45" radius="0.0206125" width="0.127" layer="21"/>
<wire x1="-2.999740625" y1="2.415540625" x2="-2.999740625" y2="2.999740625" width="0.127" layer="21"/>
<wire x1="-2.999740625" y1="2.999740625" x2="-2.41808125" y2="2.999740625" width="0.127" layer="21"/>
<wire x1="2.999740625" y1="2.415540625" x2="2.999740625" y2="3.00228125" width="0.127" layer="21"/>
<wire x1="2.999740625" y1="-2.999740625" x2="2.415540625" y2="-2.999740625" width="0.127" layer="21"/>
<wire x1="-2.999740625" y1="-2.415540625" x2="-2.999740625" y2="-2.999740625" width="0.127" layer="21"/>
<wire x1="2.418078125" y1="3.002278125" x2="2.9997375" y2="3.002278125" width="0.127" layer="21"/>
<wire x1="2.99974375" y1="-2.99974375" x2="2.99974375" y2="-2.418084375" width="0.127" layer="21"/>
<wire x1="-2.418078125" y1="-2.999734375" x2="-2.9997375" y2="-2.999734375" width="0.127" layer="21"/>
</package>
<package name="2.5X2MM">
<smd name="X1" x="-0.85" y="-0.65" dx="1.2" dy="1" layer="1"/>
<smd name="GND" x="0.85" y="-0.65" dx="1.2" dy="1" layer="1"/>
<smd name="X2" x="0.85" y="0.65" dx="1.2" dy="1" layer="1"/>
<smd name="GND2" x="-0.85" y="0.65" dx="1.2" dy="1" layer="1"/>
<wire x1="-1.25" y1="-1" x2="1.25" y2="-1" width="0.127" layer="51"/>
<wire x1="1.25" y1="-1" x2="1.25" y2="1" width="0.127" layer="51"/>
<wire x1="1.25" y1="1" x2="-1.25" y2="1" width="0.127" layer="51"/>
<wire x1="-1.25" y1="1" x2="-1.25" y2="-1" width="0.127" layer="51"/>
<circle x="-0.1134" y="-0.777" radius="0.05" width="0.127" layer="51"/>
<text x="-2.54" y="2.54" size="1.27" layer="25">>NAME</text>
<text x="-2.54" y="-3.81" size="1.27" layer="27">>VALUE</text>
<wire x1="-0.1879625" y1="1.000759375" x2="0.187959375" y2="1.000759375" width="0.127" layer="21"/>
<wire x1="-0.1879625" y1="-1.0007625" x2="0.187959375" y2="-1.0007625" width="0.127" layer="21"/>
<wire x1="-1.24968125" y1="0.086359375" x2="-1.24968125" y2="-0.086359375" width="0.127" layer="21"/>
<wire x1="1.249678125" y1="0.086359375" x2="1.249678125" y2="-0.086359375" width="0.127" layer="21"/>
</package>
</packages>
</library>
<library name="microbuilder_v3">
<description>
microBuilder.eu Eagle Footprint Library

Footprints for common components used in our projects and products.  This is the same library that we use internally, and it is regularly updated.  The newest version can always be found at www.microBuilder.eu.  If you find this library useful, please feel free to purchase something from our online store. Please also note that all holes are optimised for metric drill bits!

Obligatory Warning

While it probably goes without saying, there are no guarantees that the footprints or schematic symbols in this library are flawless, and we make no promises of fitness for production, prototyping or any other purpose. These libraries are provided for information puposes only, and are used at your own discretion.  While we make every effort to produce accurate footprints, and many of the items found in this library have be proven in production, we can't make any promises of suitability for a specific purpose. If you do find any errors, though, please feel free to contact us at www.microbuilder.eu to let us know about it so that we can update the library accordingly!

License

This work is placed in the public domain, and may be freely used for commercial and non-commercial work with the following conditions:

THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

</description>
<packages>
<package name="2X05_1.27MM_SMT">
<description>
2x05 1.27mm Headers SMT (2.0mm Height)

4UConnector: 16846</description>
<wire x1="-3.365" y1="3.5" x2="3.365" y2="3.5" width="0.2032" layer="21"/>
<wire x1="3.365" y1="3.5" x2="3.365" y2="-3.5" width="0.2032" layer="21"/>
<wire x1="3.365" y1="-3.5" x2="1" y2="-3.5" width="0.2032" layer="21"/>
<wire x1="1" y1="-3.5" x2="-1" y2="-3.5" width="0.2032" layer="21"/>
<wire x1="-1" y1="-3.5" x2="-3.365" y2="-3.5" width="0.2032" layer="21"/>
<wire x1="-3.365" y1="-3.5" x2="-3.365" y2="3.5" width="0.2032" layer="21"/>
<wire x1="-1" y1="-3.5" x2="-1" y2="-4" width="0.2032" layer="21"/>
<wire x1="-1" y1="-4" x2="1" y2="-4" width="0.2032" layer="21"/>
<wire x1="1" y1="-4" x2="1" y2="-3.5" width="0.2032" layer="21"/>
<smd name="2" x="-2.54" y="1.85" dx="0.65" dy="2.6" layer="1"/>
<smd name="4" x="-1.27" y="1.85" dx="0.65" dy="2.6" layer="1"/>
<smd name="6" x="0" y="1.85" dx="0.65" dy="2.6" layer="1"/>
<smd name="8" x="1.27" y="1.85" dx="0.65" dy="2.6" layer="1"/>
<smd name="10" x="2.54" y="1.85" dx="0.65" dy="2.6" layer="1"/>
<smd name="1" x="-2.54" y="-1.85" dx="0.65" dy="2.6" layer="1"/>
<smd name="3" x="-1.27" y="-1.85" dx="0.65" dy="2.6" layer="1"/>
<smd name="5" x="0" y="-1.85" dx="0.65" dy="2.6" layer="1"/>
<smd name="7" x="1.27" y="-1.85" dx="0.65" dy="2.6" layer="1"/>
<smd name="9" x="2.54" y="-1.85" dx="0.65" dy="2.6" layer="1"/>
<text x="-5.199" y="3.806" size="0.8128" layer="25" ratio="18">>NAME</text>
<text x="-5.199" y="-4.2465" size="0.4064" layer="27" ratio="10">>VALUE</text>
<polygon width="0.127" layer="21">
<vertex x="1.016" y="-3.556"/>
<vertex x="1.016" y="-3.937"/>
<vertex x="-1.016" y="-3.937"/>
<vertex x="-1.016" y="-3.556"/>
</polygon>
</package>
<package name="_0402">
<description> 0402</description>
<wire x1="-0.245" y1="0.174" x2="0.245" y2="0.174" width="0.1016" layer="51"/>
<wire x1="0.245" y1="-0.174" x2="-0.245" y2="-0.174" width="0.1016" layer="51"/>
<smd name="1" x="-0.508" y="0" dx="0.6" dy="0.6" layer="1"/>
<smd name="2" x="0.508" y="0" dx="0.6" dy="0.6" layer="1"/>
<text x="-0.9525" y="0.7939" size="0.8128" layer="25" ratio="18">>NAME</text>
<text x="-0.9525" y="-1.3336" size="0.4064" layer="27" ratio="10">>VALUE</text>
<rectangle x1="-0.0794" y1="-0.2381" x2="0.0794" y2="0.2381" layer="35"/>
<rectangle x1="0.25" y1="-0.25" x2="0.5" y2="0.25" layer="51"/>
<rectangle x1="-0.5" y1="-0.25" x2="-0.25" y2="0.25" layer="51"/>
</package>
</packages>
</library>
<library name="SparkFun">
<description>
SparkFun Electronics' preferred foot prints

We've spent an enormous amount of time creating and checking these footprints and parts. If you enjoy using this library, please buy one of our products at www.sparkfun.com.

Licensing: CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="SOT23-5">
<description>Small Outline Transistor</description>
<wire x1="1.4224" y1="0.4294" x2="1.4224" y2="-0.4294" width="0.2032" layer="21"/>
<wire x1="1.4" y1="-0.8" x2="-1.4" y2="-0.8" width="0.1524" layer="51"/>
<wire x1="-1.4224" y1="-0.4294" x2="-1.4224" y2="0.4294" width="0.2032" layer="21"/>
<wire x1="-1.4" y1="0.8" x2="1.4" y2="0.8" width="0.1524" layer="51"/>
<wire x1="-0.2684" y1="0.8104" x2="0.2684" y2="0.8104" width="0.2032" layer="21"/>
<wire x1="1.4" y1="0.8" x2="1.4" y2="-0.8" width="0.1524" layer="51"/>
<wire x1="-1.4" y1="0.8" x2="-1.4" y2="-0.8" width="0.1524" layer="51"/>
<smd name="1" x="-0.95" y="-1.3001" dx="0.55" dy="1.2" layer="1"/>
<smd name="2" x="0" y="-1.3001" dx="0.55" dy="1.2" layer="1"/>
<smd name="3" x="0.95" y="-1.3001" dx="0.55" dy="1.2" layer="1"/>
<smd name="4" x="0.95" y="1.3001" dx="0.55" dy="1.2" layer="1"/>
<smd name="5" x="-0.95" y="1.3001" dx="0.55" dy="1.2" layer="1"/>
<text x="-0.889" y="2.159" size="0.4064" layer="25">>NAME</text>
<text x="-0.9525" y="-0.1905" size="0.4064" layer="27">>VALUE</text>
<rectangle x1="-1.2" y1="-1.5" x2="-0.7" y2="-0.85" layer="51"/>
<rectangle x1="-0.25" y1="-1.5" x2="0.25" y2="-0.85" layer="51"/>
<rectangle x1="0.7" y1="-1.5" x2="1.2" y2="-0.85" layer="51"/>
<rectangle x1="0.7" y1="0.85" x2="1.2" y2="1.5" layer="51"/>
<rectangle x1="-1.2" y1="0.85" x2="-0.7" y2="1.5" layer="51"/>
</package>
<package name="USB-MICROB">
<description>Micro USB Package</description>
<wire x1="-3.4" y1="-2.15" x2="-3" y2="-2.15" width="0.127" layer="51"/>
<wire x1="3" y1="-2.15" x2="3.4" y2="-2.15" width="0.127" layer="51"/>
<wire x1="-3.4" y1="-2.15" x2="-3.4" y2="-1.45" width="0.127" layer="51"/>
<wire x1="-3.4" y1="-1.45" x2="-3.4" y2="2.85" width="0.127" layer="51"/>
<wire x1="3.4" y1="2.85" x2="2.2" y2="2.85" width="0.127" layer="51"/>
<wire x1="3.4" y1="2.85" x2="3.4" y2="-1.45" width="0.127" layer="51"/>
<wire x1="3.4" y1="-1.45" x2="3.4" y2="-2.15" width="0.127" layer="51"/>
<wire x1="-3.4" y1="-1.45" x2="3.4" y2="-1.45" width="0.127" layer="51"/>
<wire x1="-3.4" y1="1.25" x2="-3.4" y2="2.85" width="0.2032" layer="21"/>
<wire x1="-3.4" y1="2.85" x2="-2.2" y2="2.85" width="0.2032" layer="21"/>
<wire x1="3.4" y1="2.85" x2="2.2" y2="2.85" width="0.2032" layer="21"/>
<wire x1="3.4" y1="1.25" x2="3.4" y2="2.85" width="0.2032" layer="21"/>
<wire x1="-3.4" y1="-1.45" x2="3.4" y2="-1.45" width="0.2032" layer="21"/>
<wire x1="-2.2" y1="1.45" x2="2.2" y2="1.45" width="0.127" layer="51"/>
<wire x1="2.2" y1="1.45" x2="2.2" y2="2.85" width="0.127" layer="51"/>
<wire x1="-2.2" y1="1.45" x2="-2.2" y2="2.85" width="0.127" layer="51"/>
<wire x1="-3.4" y1="2.85" x2="-2.2" y2="2.85" width="0.127" layer="51"/>
<wire x1="-2.2" y1="2.85" x2="-2.2" y2="1.45" width="0.2032" layer="21"/>
<wire x1="-2.2" y1="1.45" x2="2.2" y2="1.45" width="0.2032" layer="21"/>
<wire x1="2.2" y1="1.45" x2="2.2" y2="2.85" width="0.2032" layer="21"/>
<wire x1="-3.4" y1="-2.15" x2="-4" y2="-2.75" width="0.2032" layer="51"/>
<wire x1="3.4" y1="-2.15" x2="4" y2="-2.75" width="0.2032" layer="51"/>
<wire x1="-3" y1="-2.15" x2="-3" y2="-2.55" width="0.127" layer="51"/>
<wire x1="-2.8" y1="-2.8" x2="2.75" y2="-2.8" width="0.127" layer="51"/>
<wire x1="3" y1="-2.6" x2="3" y2="-2.15" width="0.127" layer="51"/>
<wire x1="-3" y1="-2.55" x2="-2.8" y2="-2.8" width="0.127" layer="51" curve="84.547378"/>
<wire x1="2.75" y1="-2.8" x2="3" y2="-2.6" width="0.127" layer="51" curve="84.547378"/>
<smd name="VBUS" x="-1.3" y="2.65" dx="1.4" dy="0.35" layer="1" rot="R90"/>
<smd name="GND" x="1.3" y="2.65" dx="1.4" dy="0.35" layer="1" rot="R90"/>
<smd name="D-" x="-0.65" y="2.65" dx="1.4" dy="0.35" layer="1" rot="R90"/>
<smd name="D+" x="0" y="2.65" dx="1.4" dy="0.35" layer="1" rot="R90"/>
<smd name="ID" x="0.65" y="2.65" dx="1.4" dy="0.35" layer="1" rot="R90"/>
<smd name="MT1" x="-4" y="0" dx="1.8" dy="1.9" layer="1"/>
<smd name="MT2" x="4" y="0" dx="1.8" dy="1.9" layer="1"/>
<text x="-1.6" y="-0.35" size="0.762" layer="25">>NAME</text>
<text x="-1.905" y="-3.175" size="0.762" layer="27">>VALUE</text>
</package>
</packages>
</library>
<library name="tlv700">
<packages>
<package name="SC70-5L">
<description>SC-70 Package</description>
<wire x1="1.1" y1="-0.5" x2="-1.1" y2="-0.5" width="0.2032" layer="51"/>
<wire x1="-1.1" y1="-0.5" x2="-1.1" y2="0.5" width="0.2032" layer="21"/>
<wire x1="-1.1" y1="0.5" x2="1.1" y2="0.5" width="0.2032" layer="51"/>
<wire x1="1.1" y1="0.5" x2="1.1" y2="-0.5" width="0.2032" layer="21"/>
<circle x="-0.65" y="-0.2" radius="0.15" width="0" layer="21"/>
<smd name="4" x="0.65" y="0.85" dx="0.35" dy="0.8" layer="1"/>
<smd name="5" x="-0.65" y="0.85" dx="0.35" dy="0.8" layer="1"/>
<smd name="1" x="-0.65" y="-0.85" dx="0.35" dy="0.8" layer="1"/>
<smd name="2" x="0" y="-0.85" dx="0.35" dy="0.8" layer="1"/>
<smd name="3" x="0.65" y="-0.85" dx="0.35" dy="0.8" layer="1"/>
<text x="-1.2" y="1.35" size="1.016" layer="25">>NAME</text>
<text x="-1.2" y="-2.35" size="1.016" layer="27">>VALUE</text>
<rectangle x1="0.5" y1="0.6" x2="0.8" y2="1.1" layer="51"/>
<rectangle x1="-0.8" y1="0.6" x2="-0.5" y2="1.1" layer="51"/>
<rectangle x1="-0.8" y1="-1.1" x2="-0.5" y2="-0.6" layer="51"/>
<rectangle x1="-0.15" y1="-1.1" x2="0.15" y2="-0.6" layer="51"/>
<rectangle x1="0.5" y1="-1.1" x2="0.8" y2="-0.6" layer="51"/>
</package>
</packages>
</library>
<library name="resistor">
<packages>
<package name="C0603K">
<description>Ceramic Chip Capacitor KEMET 0603 Reflow solder

Metric Code Size 1608</description>
<wire x1="-0.725" y1="0.35" x2="0.725" y2="0.35" width="0.1016" layer="51"/>
<wire x1="0.725" y1="-0.35" x2="-0.725" y2="-0.35" width="0.1016" layer="51"/>
<smd name="1" x="-0.875" y="0" dx="1.05" dy="1.08" layer="1" cream="no"/>
<smd name="2" x="0.875" y="0" dx="1.05" dy="1.08" layer="1" cream="no"/>
<text x="-0.8" y="0.65" size="1.016" layer="25">>NAME</text>
<text x="-0.8" y="-1.65" size="1.016" layer="27">>VALUE</text>
<rectangle x1="-0.8" y1="-0.4" x2="-0.45" y2="0.4" layer="51"/>
<rectangle x1="0.45" y1="-0.4" x2="0.8" y2="0.4" layer="51"/>
<rectangle x1="-1.0825" y1="-0.4763" x2="-0.4475" y2="0.4763" layer="31"/>
<rectangle x1="0.4475" y1="-0.4763" x2="1.0825" y2="0.4763" layer="31"/>
</package>
</packages>
</library>
<library name="microbuilder">
<packages>
<package name="JSTPH2">
<description>2-Pin JST PH Series Right-Angle Connector (+/- for batteries)</description>
<wire x1="-4" y1="3" x2="4" y2="3" width="0.2032" layer="51"/>
<wire x1="4" y1="3" x2="4" y2="-4.5" width="0.2032" layer="51"/>
<wire x1="-4" y1="-4.5" x2="-4" y2="3" width="0.2032" layer="51"/>
<wire x1="3.2" y1="-2" x2="-3.2" y2="-2" width="0.2032" layer="51"/>
<wire x1="-3.2" y1="-2" x2="-3.2" y2="-4.5" width="0.2032" layer="51"/>
<wire x1="-3.2" y1="-4.5" x2="-4" y2="-4.5" width="0.2032" layer="51"/>
<wire x1="4" y1="-4.5" x2="3.2" y2="-4.5" width="0.2032" layer="51"/>
<wire x1="3.2" y1="-4.5" x2="3.2" y2="-2" width="0.2032" layer="51"/>
<wire x1="-2.25" y1="3" x2="2.25" y2="3" width="0.127" layer="21"/>
<wire x1="4" y1="-0.5" x2="4" y2="-4.5" width="0.127" layer="21"/>
<wire x1="4" y1="-4.5" x2="3.15" y2="-4.5" width="0.127" layer="21"/>
<wire x1="3.15" y1="-4.5" x2="3.15" y2="-2" width="0.127" layer="21"/>
<wire x1="3.15" y1="-2" x2="1.75" y2="-2" width="0.127" layer="21"/>
<wire x1="-1.75" y1="-2" x2="-3.15" y2="-2" width="0.127" layer="21"/>
<wire x1="-3.15" y1="-2" x2="-3.15" y2="-4.5" width="0.127" layer="21"/>
<wire x1="-3.15" y1="-4.5" x2="-4" y2="-4.5" width="0.127" layer="21"/>
<wire x1="-4" y1="-4.5" x2="-4" y2="-0.5" width="0.127" layer="21"/>
<smd name="1" x="-1" y="-3.7" dx="1" dy="4.6" layer="1"/>
<smd name="2" x="1" y="-3.7" dx="1" dy="4.6" layer="1"/>
<smd name="NC1" x="-3.4" y="1.5" dx="3.4" dy="1.6" layer="1" rot="R90"/>
<smd name="NC2" x="3.4" y="1.5" dx="3.4" dy="1.6" layer="1" rot="R90"/>
<text x="-2.2225" y="2.2225" size="0.4064" layer="25">>Name</text>
<text x="-2.2225" y="1.524" size="0.4064" layer="27">>Value</text>
<text x="2.286" y="-6.096" size="1.4224" layer="21" ratio="12">+</text>
<text x="-3.429" y="-6.096" size="1.4224" layer="21" ratio="12">-</text>
</package>
</packages>
</library>
<library name="led">
<packages>
<package name="CHIPLED_0603">
<description>CHIPLED

Source: http://www.osram.convergy.de/ ... LG_LY Q971.pdf</description>
<wire x1="-0.3" y1="0.8" x2="0.3" y2="0.8" width="0.1016" layer="51" curve="170.055574"/>
<wire x1="-0.275" y1="-0.825" x2="0.275" y2="-0.825" width="0.0508" layer="51" curve="-180"/>
<wire x1="-0.4" y1="0.375" x2="-0.4" y2="-0.35" width="0.1016" layer="51"/>
<wire x1="0.4" y1="0.35" x2="0.4" y2="-0.35" width="0.1016" layer="51"/>
<circle x="-0.35" y="0.625" radius="0.075" width="0.0508" layer="51"/>
<smd name="C" x="0" y="0.75" dx="0.8" dy="0.8" layer="1"/>
<smd name="A" x="0" y="-0.75" dx="0.8" dy="0.8" layer="1"/>
<text x="-0.635" y="-1.27" size="1.27" layer="25" rot="R90">>NAME</text>
<text x="1.905" y="-1.27" size="1.27" layer="27" rot="R90">>VALUE</text>
<rectangle x1="-0.45" y1="0.7" x2="-0.25" y2="0.85" layer="51"/>
<rectangle x1="-0.275" y1="0.55" x2="-0.225" y2="0.6" layer="51"/>
<rectangle x1="-0.45" y1="0.35" x2="-0.4" y2="0.725" layer="51"/>
<rectangle x1="0.25" y1="0.55" x2="0.45" y2="0.85" layer="51"/>
<rectangle x1="-0.45" y1="0.35" x2="0.45" y2="0.575" layer="51"/>
<rectangle x1="-0.45" y1="-0.85" x2="-0.25" y2="-0.35" layer="51"/>
<rectangle x1="0.25" y1="-0.85" x2="0.45" y2="-0.35" layer="51"/>
<rectangle x1="-0.275" y1="-0.575" x2="0.275" y2="-0.35" layer="51"/>
<rectangle x1="-0.275" y1="-0.65" x2="-0.175" y2="-0.55" layer="51"/>
<rectangle x1="0.175" y1="-0.65" x2="0.275" y2="-0.55" layer="51"/>
<rectangle x1="-0.125" y1="0" x2="0.125" y2="0.25" layer="21"/>
</package>
</packages>
</library>
<library name="SparkFun-Sensors">
<description>
SparkFun Electronics' preferred foot prints

In this library you'll find sensors- accelerometers, gyros, compasses, magnetometers, light sensors, imagers, temp sensors, etc.

We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="BMP180">
<smd name="1" x="1.5" y="1.45" dx="0.5" dy="0.6" layer="1" rot="R90"/>
<smd name="2" x="0" y="1.45" dx="0.5" dy="0.6" layer="1" rot="R90"/>
<smd name="3" x="-1.5" y="1.45" dx="0.5" dy="0.6" layer="1" rot="R90"/>
<smd name="4" x="-1.5" y="-1.45" dx="0.5" dy="0.6" layer="1" rot="R90"/>
<smd name="5" x="0" y="-1.45" dx="0.5" dy="0.6" layer="1" rot="R90"/>
<smd name="6" x="1.5" y="-1.45" dx="0.5" dy="0.6" layer="1" rot="R90"/>
<smd name="7" x="1.5" y="0" dx="0.5" dy="0.6" layer="1" rot="R180"/>
<wire x1="-1.9" y1="1.8" x2="-1.9" y2="-1.8" width="0.127" layer="51"/>
<wire x1="-1.9" y1="-1.8" x2="1.9" y2="-1.8" width="0.127" layer="51"/>
<wire x1="1.9" y1="-1.8" x2="1.9" y2="1.8" width="0.127" layer="51"/>
<wire x1="1.9" y1="1.8" x2="-1.9" y2="1.8" width="0.127" layer="51"/>
<circle x="0.75" y="0.75" radius="0.125" width="0.6096" layer="21"/>
<wire x1="-1.5" y1="1" x2="-1.5" y2="-1" width="0.127" layer="51"/>
<wire x1="-1.5" y1="-1" x2="-1" y2="-1.5" width="0.127" layer="51" curve="90"/>
<wire x1="-1" y1="-1.5" x2="1" y2="-1.5" width="0.127" layer="51"/>
<wire x1="1" y1="-1.5" x2="1.5" y2="-1" width="0.127" layer="51" curve="90"/>
<wire x1="1.5" y1="-1" x2="1.5" y2="1" width="0.127" layer="51"/>
<wire x1="1.5" y1="1" x2="1" y2="1.5" width="0.127" layer="51" curve="90"/>
<wire x1="1" y1="1.5" x2="-1" y2="1.5" width="0.127" layer="51"/>
<wire x1="-1" y1="1.5" x2="-1.5" y2="1" width="0.127" layer="51" curve="90"/>
<wire x1="-2" y1="1.875" x2="-2" y2="-1.875" width="0.127" layer="21"/>
<wire x1="-2" y1="-1.875" x2="2" y2="-1.875" width="0.127" layer="21"/>
<wire x1="2" y1="-1.875" x2="2" y2="1.875" width="0.127" layer="21"/>
<wire x1="2" y1="1.875" x2="-2" y2="1.875" width="0.127" layer="21"/>
<circle x="0.75" y="0.75" radius="0.125" width="0.6096" layer="21"/>
<text x="-2" y="2" size="1.27" layer="25">>NAME</text>
<text x="-2" y="-3.375" size="1.27" layer="27">>VALUE</text>
<circle x="0.75" y="0.75" radius="0.125" width="0.6096" layer="51"/>
</package>
</packages>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0" drill="0">
</class>
</classes>
<designrules name="PCB-POOL Standard">
<description language="de">EAGLE Design Rules Prototypen  für PCB-POOL(R)

Wir haben in diesem DRU File alle notwendigen Design Einstellungen vorgenommen, damit Sie Ihre Leiterplatte
gemäß unseren Mindestanforderungen im Standard bestellen können. Die Optionen Shapes und Misc sind dabei nicht relevant.
Der minimale und maximale Wert für Roundness Shapes kann frei gewählt werden.
Bitte beachten Sie, daß die Mindesteinstellungen nicht geändert werden, da ansonsten keine Gewährleistung für eine
fehlerfreie Produktion übernommen werden kann.

Abzudeckende Vias können in Masks (unter Limit) eingestellt werden.

Ihr Beta LAYOUT Team

EAGLE Design Rules Prototypes to use with PCB-POOL(R)

The design rules in this DRU file have been set to cover our minimum standard requirements, the options Shapes and  Misc are not
relevant. Values for Roundness (Shapes) can be chosen freely. Please do not change these minimum
requirements to avoid problems during production.

Covered vias can be set in Masks (Limit).

Your Beta LAYOUT Team</description>
<param name="layerSetup" value="(1*16)"/>
<param name="mtCopper" value="0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm"/>
<param name="mtIsolate" value="1.5mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm"/>
<param name="mdWireWire" value="0.15mm"/>
<param name="mdWirePad" value="0.15mm"/>
<param name="mdWireVia" value="0.15mm"/>
<param name="mdPadPad" value="0.15mm"/>
<param name="mdPadVia" value="0.15mm"/>
<param name="mdViaVia" value="0.15mm"/>
<param name="mdSmdPad" value="0.15mm"/>
<param name="mdSmdVia" value="0.15mm"/>
<param name="mdSmdSmd" value="0.15mm"/>
<param name="mdViaViaSameLayer" value="0.2mm"/>
<param name="mnLayersViaInSmd" value="2"/>
<param name="mdCopperDimension" value="0.3mm"/>
<param name="mdDrill" value="0.2mm"/>
<param name="mdSmdStop" value="0mil"/>
<param name="msWidth" value="0.15mm"/>
<param name="msDrill" value="0.3mm"/>
<param name="msMicroVia" value="25mm"/>
<param name="msBlindViaRatio" value="0.5"/>
<param name="rvPadTop" value="0"/>
<param name="rvPadInner" value="0"/>
<param name="rvPadBottom" value="0"/>
<param name="rvViaOuter" value="0"/>
<param name="rvViaInner" value="0"/>
<param name="rvMicroViaOuter" value="0"/>
<param name="rvMicroViaInner" value="0"/>
<param name="rlMinPadTop" value="0.2mm"/>
<param name="rlMaxPadTop" value="2.5mm"/>
<param name="rlMinPadInner" value="0.2mm"/>
<param name="rlMaxPadInner" value="2.5mm"/>
<param name="rlMinPadBottom" value="0.2mm"/>
<param name="rlMaxPadBottom" value="2.5mm"/>
<param name="rlMinViaOuter" value="0.15mm"/>
<param name="rlMaxViaOuter" value="2.5mm"/>
<param name="rlMinViaInner" value="0.2mm"/>
<param name="rlMaxViaInner" value="2.5mm"/>
<param name="rlMinMicroViaOuter" value="2.5mm"/>
<param name="rlMaxMicroViaOuter" value="25mm"/>
<param name="rlMinMicroViaInner" value="2.5mm"/>
<param name="rlMaxMicroViaInner" value="25mm"/>
<param name="psTop" value="-1"/>
<param name="psBottom" value="-1"/>
<param name="psFirst" value="-1"/>
<param name="psElongationLong" value="100"/>
<param name="psElongationOffset" value="100"/>
<param name="mvStopFrame" value="0"/>
<param name="mvCreamFrame" value="0"/>
<param name="mlMinStopFrame" value="0.075mm"/>
<param name="mlMaxStopFrame" value="0.2mm"/>
<param name="mlMinCreamFrame" value="0mil"/>
<param name="mlMaxCreamFrame" value="0.2mm"/>
<param name="mlViaStopLimit" value="0mil"/>
<param name="srRoundness" value="0"/>
<param name="srMinRoundness" value="0mil"/>
<param name="srMaxRoundness" value="0mil"/>
<param name="slThermalIsolate" value="0.2mm"/>
<param name="slThermalsForVias" value="0"/>
<param name="dpMaxLengthDifference" value="10mm"/>
<param name="dpGapFactor" value="2.5"/>
<param name="checkGrid" value="0"/>
<param name="checkAngle" value="0"/>
<param name="checkFont" value="1"/>
<param name="checkRestrict" value="1"/>
<param name="useDiameter" value="13"/>
<param name="maxErrors" value="50"/>
</designrules>
<autorouter>
<pass name="Default">
<param name="RoutingGrid" value="50mil"/>
<param name="tpViaShape" value="round"/>
<param name="PrefDir.1" value="|"/>
<param name="PrefDir.2" value="0"/>
<param name="PrefDir.3" value="0"/>
<param name="PrefDir.4" value="0"/>
<param name="PrefDir.5" value="0"/>
<param name="PrefDir.6" value="0"/>
<param name="PrefDir.7" value="0"/>
<param name="PrefDir.8" value="0"/>
<param name="PrefDir.9" value="0"/>
<param name="PrefDir.10" value="0"/>
<param name="PrefDir.11" value="0"/>
<param name="PrefDir.12" value="0"/>
<param name="PrefDir.13" value="0"/>
<param name="PrefDir.14" value="0"/>
<param name="PrefDir.15" value="0"/>
<param name="PrefDir.16" value="-"/>
<param name="cfVia" value="8"/>
<param name="cfNonPref" value="5"/>
<param name="cfChangeDir" value="2"/>
<param name="cfOrthStep" value="2"/>
<param name="cfDiagStep" value="3"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="1"/>
<param name="cfMalusStep" value="1"/>
<param name="cfPadImpact" value="4"/>
<param name="cfSmdImpact" value="4"/>
<param name="cfBusImpact" value="0"/>
<param name="cfHugging" value="3"/>
<param name="cfAvoid" value="4"/>
<param name="cfPolygon" value="10"/>
<param name="cfBase.1" value="0"/>
<param name="cfBase.2" value="1"/>
<param name="cfBase.3" value="1"/>
<param name="cfBase.4" value="1"/>
<param name="cfBase.5" value="1"/>
<param name="cfBase.6" value="1"/>
<param name="cfBase.7" value="1"/>
<param name="cfBase.8" value="1"/>
<param name="cfBase.9" value="1"/>
<param name="cfBase.10" value="1"/>
<param name="cfBase.11" value="1"/>
<param name="cfBase.12" value="1"/>
<param name="cfBase.13" value="1"/>
<param name="cfBase.14" value="1"/>
<param name="cfBase.15" value="1"/>
<param name="cfBase.16" value="0"/>
<param name="mnVias" value="20"/>
<param name="mnSegments" value="9999"/>
<param name="mnExtdSteps" value="9999"/>
<param name="mnRipupLevel" value="10"/>
<param name="mnRipupSteps" value="100"/>
<param name="mnRipupTotal" value="100"/>
</pass>
<pass name="Follow-me" refer="Default" active="yes">
</pass>
<pass name="Busses" refer="Default" active="yes">
<param name="cfNonPref" value="4"/>
<param name="cfBusImpact" value="4"/>
<param name="cfHugging" value="0"/>
<param name="mnVias" value="0"/>
</pass>
<pass name="Route" refer="Default" active="yes">
</pass>
<pass name="Optimize1" refer="Default" active="yes">
<param name="cfVia" value="99"/>
<param name="cfExtdStep" value="10"/>
<param name="cfHugging" value="1"/>
<param name="mnExtdSteps" value="1"/>
<param name="mnRipupLevel" value="0"/>
</pass>
<pass name="Optimize2" refer="Optimize1" active="yes">
<param name="cfNonPref" value="0"/>
<param name="cfChangeDir" value="6"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="2"/>
<param name="cfMalusStep" value="2"/>
<param name="cfPadImpact" value="2"/>
<param name="cfSmdImpact" value="2"/>
<param name="cfHugging" value="0"/>
</pass>
<pass name="Optimize3" refer="Optimize2" active="yes">
<param name="cfChangeDir" value="8"/>
<param name="cfPadImpact" value="0"/>
<param name="cfSmdImpact" value="0"/>
</pass>
<pass name="Optimize4" refer="Optimize3" active="yes">
<param name="cfChangeDir" value="25"/>
</pass>
</autorouter>
<elements>
<element name="IC3" library="NordicSemi" package="QFN48" value="NRF51822" x="16" y="20"/>
<element name="JTAG1" library="microbuilder_v3" package="2X05_1.27MM_SMT" value="" x="19" y="12"/>
<element name="C15" library="microbuilder_v3" package="_0402" value="100nF" x="20.5" y="23.375" rot="R90"/>
<element name="C1" library="microbuilder_v3" package="_0402" value="47nF" x="23.75" y="18.875"/>
<element name="C2" library="microbuilder_v3" package="_0402" value="100nF" x="16.25" y="26" rot="R135"/>
<element name="L2" library="microbuilder_v3" package="_0402" value="10nH" x="22.375" y="19.875" rot="R270"/>
<element name="C3" library="microbuilder_v3" package="_0402" value="2.2nF" x="23.25" y="20.40625" rot="R90"/>
<element name="L1" library="microbuilder_v3" package="_0402" value="4.7nH" x="21.5" y="20.40625" rot="R90"/>
<element name="C4" library="microbuilder_v3" package="_0402" value="0.8pF" x="22.125" y="23.875"/>
<element name="C5" library="microbuilder_v3" package="_0402" value="2.2pF" x="21.5" y="22.5" rot="R90"/>
<element name="C6" library="microbuilder_v3" package="_0402" value="1.5pF" x="23" y="25.75"/>
<element name="C7" library="microbuilder_v3" package="_0402" value="1.5pF" x="23" y="26.75"/>
<element name="L3" library="microbuilder_v3" package="_0402" value="3.3nF" x="21.5" y="25.25" rot="R90"/>
<element name="L4" library="microbuilder_v3" package="_0402" value="10µH" x="9.75" y="22.75"/>
<element name="L5" library="microbuilder_v3" package="_0402" value="15nH" x="11.5" y="22.25" rot="R270"/>
<element name="C8" library="microbuilder_v3" package="_0402" value="1.0µF" x="8.75" y="23.75" rot="R180"/>
<element name="C9" library="microbuilder_v3" package="_0402" value="4.7µF" x="11.625" y="23.75" rot="R180"/>
<element name="C10" library="microbuilder_v3" package="_0402" value="100nF" x="10.25" y="18" rot="R90"/>
<element name="Y1" library="NordicSemi" package="2.5X2MM" value="CRYSTAL2.5X2" x="18.5" y="27.5" rot="R135"/>
<element name="C11" library="microbuilder_v3" package="_0402" value="12pF" x="17.75" y="25.75" rot="R135"/>
<element name="C12" library="microbuilder_v3" package="_0402" value="12pF" x="19.25" y="29.25" rot="R135"/>
<element name="IC4" library="tlv700" package="SC70-5L" value="TLV70033DCK" x="7.5" y="13.5"/>
<element name="C14" library="resistor" package="C0603K" value="1µF" x="9" y="17.5" rot="R90"/>
<element name="IC5" library="SparkFun" package="SOT23-5" value="MAX1555" x="14" y="6.75" rot="R270"/>
<element name="CN1" library="microbuilder" package="JSTPH2" value="" x="7.5" y="3.75" rot="R180"/>
<element name="C19" library="resistor" package="C0603K" value="1µF" x="7.5" y="10.75"/>
<element name="C20" library="resistor" package="C0603K" value="1µF" x="19" y="7.25"/>
<element name="LED1" library="led" package="CHIPLED_0603" value="" x="13.25" y="1.75"/>
<element name="X1" library="SparkFun" package="USB-MICROB" value="USB-MICROB" x="19" y="2.25"/>
<element name="R2" library="microbuilder_v3" package="_0402" value="1kΩ" x="13.25" y="4.25" rot="R270"/>
<element name="LED2" library="led" package="CHIPLED_0603" value="" x="14" y="12.5" rot="R180"/>
<element name="R1" library="microbuilder_v3" package="_0402" value="1kΩ" x="14" y="15" rot="R90"/>
<element name="U1" library="SparkFun-Sensors" package="BMP180" value="BMP180" x="8" y="27.75" rot="R90"/>
<element name="C13" library="microbuilder_v3" package="_0402" value="100nF" x="5" y="26.25" rot="R180"/>
<element name="C16" library="microbuilder_v3" package="_0402" value="4.7µF" x="5" y="27.75" rot="R180"/>
<element name="R3" library="microbuilder_v3" package="_0402" value="1kΩ" x="12.75" y="25.5" rot="R270"/>
<element name="R4" library="microbuilder_v3" package="_0402" value="1kΩ" x="11.5" y="25.5" rot="R270"/>
</elements>
<signals>
<signal name="GND">
<contactref element="IC3" pad="GND"/>
<contactref element="JTAG1" pad="3"/>
<contactref element="JTAG1" pad="5"/>
<contactref element="IC3" pad="34"/>
<contactref element="IC3" pad="33"/>
<contactref element="C15" pad="2"/>
<contactref element="C1" pad="2"/>
<contactref element="C2" pad="2"/>
<contactref element="IC3" pad="13"/>
<contactref element="C3" pad="2"/>
<contactref element="C4" pad="2"/>
<contactref element="C6" pad="2"/>
<contactref element="C7" pad="2"/>
<contactref element="C9" pad="2"/>
<contactref element="C8" pad="2"/>
<contactref element="C10" pad="2"/>
<polygon width="0.4" layer="1" isolate="0.2">
<vertex x="0" y="40"/>
<vertex x="25" y="40"/>
<vertex x="25" y="0"/>
<vertex x="0" y="0"/>
</polygon>
<polygon width="0.4" layer="16" isolate="0.2">
<vertex x="0" y="40"/>
<vertex x="25" y="40"/>
<vertex x="25" y="0"/>
<vertex x="0" y="0"/>
</polygon>
<via x="14.5" y="21.5" extent="1-16" drill="0.3"/>
<via x="17.5" y="21.5" extent="1-16" drill="0.3"/>
<via x="17.5" y="18.5" extent="1-16" drill="0.3"/>
<via x="14.5" y="18.5" extent="1-16" drill="0.3"/>
<via x="23.25" y="21.75" extent="1-16" drill="0.3"/>
<via x="24.25" y="19.75" extent="1-16" drill="0.3"/>
<via x="23.5" y="23.875" extent="1-16" drill="0.3"/>
<via x="24.375" y="25.75" extent="1-16" drill="0.3"/>
<via x="24.375" y="26.75" extent="1-16" drill="0.3"/>
<via x="20.5" y="26.625" extent="1-16" drill="0.3"/>
<via x="20.5" y="28.5" extent="1-16" drill="0.3"/>
<via x="20.5" y="30.25" extent="1-16" drill="0.3"/>
<via x="23.5" y="30.25" extent="1-16" drill="0.3"/>
<via x="23.5" y="28.5" extent="1-16" drill="0.3"/>
<contactref element="Y1" pad="GND2"/>
<contactref element="Y1" pad="GND"/>
<contactref element="C11" pad="1"/>
<contactref element="C12" pad="2"/>
<via x="18.75" y="24.75" extent="1-16" drill="0.3"/>
<wire x1="18.109209375" y1="25.3907875" x2="18.64141875" y2="25.922996875" width="0.4" layer="1"/>
<wire x1="18.64141875" y1="25.922996875" x2="18.64141875" y2="26.4393375" width="0.4" layer="1"/>
<via x="16.5" y="27" extent="1-16" drill="0.3"/>
<via x="18.25" y="30.25" extent="1-16" drill="0.3"/>
<via x="20.5" y="24.75" extent="1-16" drill="0.3"/>
<wire x1="19.17" y1="21.4" x2="17.5" y2="21.4" width="0.2" layer="1"/>
<wire x1="17.5" y1="21.4" x2="17.5" y2="21.5" width="0.2" layer="1"/>
<via x="10.25" y="23.75" extent="1-16" drill="0.3"/>
<via x="7.25" y="23.75" extent="1-16" drill="0.3"/>
<contactref element="IC4" pad="2"/>
<contactref element="C14" pad="2"/>
<contactref element="IC5" pad="2"/>
<contactref element="C19" pad="2"/>
<contactref element="C20" pad="2"/>
<contactref element="CN1" pad="1"/>
<contactref element="X1" pad="GND"/>
<via x="8.5" y="4.5" extent="1-16" drill="0.3"/>
<via x="21.5" y="4.75" extent="1-16" drill="0.3"/>
<contactref element="LED2" pad="C"/>
<via x="11.5" y="6.75" extent="1-16" drill="0.3"/>
<via x="21" y="7.25" extent="1-16" drill="0.3"/>
<via x="14" y="10.75" extent="1-16" drill="0.3"/>
<via x="7.5" y="13.5" extent="1-16" drill="0.3"/>
<via x="10.25" y="19.5" extent="1-16" drill="0.3"/>
<wire x1="17.5" y1="21.4" x2="17.4" y2="21.4" width="0.4" layer="1"/>
<wire x1="17.4" y1="21.4" x2="16" y2="20" width="0.4" layer="1"/>
<contactref element="U1" pad="7"/>
<contactref element="U1" pad="7"/>
<contactref element="C13" pad="2"/>
<contactref element="C16" pad="2"/>
<via x="8.75" y="30.25" extent="1-16" drill="0.3"/>
<via x="3.5" y="27.75" extent="1-16" drill="0.3"/>
<via x="3.5" y="26.25" extent="1-16" drill="0.3"/>
<via x="9" y="19.5" extent="1-16" drill="0.3"/>
<via x="10.5" y="26.75" extent="1-16" drill="0.3"/>
<via x="7.25" y="30.25" extent="1-16" drill="0.3"/>
<via x="17.75" y="12" extent="1-16" drill="0.3"/>
<via x="19" y="12" extent="1-16" drill="0.3"/>
<via x="9.5" y="10.75" extent="1-16" drill="0.3"/>
</signal>
<signal name="SWDCLK">
<contactref element="IC3" pad="24"/>
<contactref element="JTAG1" pad="4"/>
<wire x1="18.2" y1="16.83" x2="18.2" y2="15.7" width="0.2" layer="1"/>
<wire x1="18.2" y1="15.7" x2="17.75" y2="15.25" width="0.2" layer="1"/>
<wire x1="17.75" y1="15.25" x2="17.75" y2="13.87" width="0.2" layer="1"/>
<wire x1="17.75" y1="13.87" x2="17.73" y2="13.85" width="0.2" layer="1"/>
</signal>
<signal name="SWDIO">
<contactref element="IC3" pad="23"/>
<contactref element="JTAG1" pad="2"/>
<wire x1="17.8" y1="16.83" x2="17.8" y2="16.05" width="0.2" layer="1"/>
<wire x1="17.8" y1="16.05" x2="17.5" y2="15.75" width="0.2" layer="1"/>
<wire x1="17.5" y1="15.75" x2="16.75" y2="15.75" width="0.2" layer="1"/>
<wire x1="16.75" y1="15.75" x2="16.5" y2="15.5" width="0.2" layer="1"/>
<wire x1="16.5" y1="15.5" x2="16.5" y2="13.89" width="0.2" layer="1"/>
<wire x1="16.5" y1="13.89" x2="16.46" y2="13.85" width="0.2" layer="1"/>
</signal>
<signal name="AVDD">
<contactref element="IC3" pad="35"/>
<contactref element="IC3" pad="36"/>
<contactref element="C15" pad="1"/>
<contactref element="L4" pad="1"/>
<contactref element="C8" pad="1"/>
<via x="9.25" y="21.75" extent="1-16" drill="0.3"/>
<wire x1="9.258" y1="23.75" x2="9.242" y2="23.5" width="0.4" layer="1"/>
<wire x1="9.242" y1="23.5" x2="9.242" y2="22.75" width="0.4" layer="1"/>
<wire x1="9.25" y1="21.75" x2="9.242" y2="21.75" width="0.4" layer="1"/>
<wire x1="9.242" y1="21.75" x2="9.242" y2="22.75" width="0.4" layer="1"/>
<via x="19.25" y="22.875" extent="1-16" drill="0.3"/>
<wire x1="20.5" y1="22.867" x2="19.25" y2="22.867" width="0.4" layer="1"/>
<wire x1="19.25" y1="22.867" x2="19.25" y2="22.875" width="0.4" layer="1"/>
<wire x1="19.17" y1="21.8" x2="19.25" y2="21.8" width="0.2" layer="1"/>
<wire x1="19.25" y1="21.8" x2="19.25" y2="22.875" width="0.2" layer="1"/>
<wire x1="19.17" y1="22.2" x2="19.17" y2="21.8" width="0.2" layer="1"/>
<wire x1="9.25" y1="21.75" x2="11.5" y2="24" width="0.4" layer="16"/>
<wire x1="11.5" y1="24" x2="18.125" y2="24" width="0.4" layer="16"/>
<wire x1="18.125" y1="24" x2="19.25" y2="22.875" width="0.4" layer="16"/>
</signal>
<signal name="DEC2">
<contactref element="IC3" pad="29"/>
<contactref element="C1" pad="1"/>
<wire x1="19.17" y1="19.4" x2="20.225" y2="19.4" width="0.15" layer="1"/>
<wire x1="20.225" y1="19.4" x2="20.875" y2="18.75" width="0.15" layer="1"/>
<wire x1="20.875" y1="18.75" x2="23.25" y2="18.75" width="0.15" layer="1"/>
<wire x1="23.25" y1="18.75" x2="23.25" y2="18.875" width="0.15" layer="1"/>
<wire x1="23.25" y1="18.875" x2="23.242" y2="18.875" width="0.15" layer="1"/>
</signal>
<signal name="DEC1">
<contactref element="IC3" pad="39"/>
<contactref element="C2" pad="1"/>
<wire x1="17.4" y1="23.17" x2="17.4" y2="24.6" width="0.2" layer="1"/>
<wire x1="17.4" y1="24.6" x2="16.609209375" y2="25.390790625" width="0.2" layer="1"/>
<wire x1="16.609209375" y1="25.390790625" x2="16.609209375" y2="25.6407875" width="0.2" layer="1"/>
</signal>
<signal name="3.3V">
<contactref element="JTAG1" pad="1"/>
<contactref element="IC3" pad="1"/>
<contactref element="C9" pad="1"/>
<contactref element="IC3" pad="12"/>
<contactref element="C10" pad="1"/>
<contactref element="IC4" pad="5"/>
<contactref element="C14" pad="1"/>
<wire x1="8.6" y1="16.275" x2="9" y2="16.625" width="0.4" layer="1"/>
<via x="11.5" y="20.75" extent="1-16" drill="0.3"/>
<via x="12.5" y="23" extent="1-16" drill="0.3"/>
<wire x1="12.83" y1="22.2" x2="12.5" y2="22.2" width="0.2" layer="1"/>
<wire x1="12.5" y1="22.2" x2="12.5" y2="23" width="0.2" layer="1"/>
<wire x1="12.133" y1="23.75" x2="12.5" y2="23.383" width="0.4" layer="1"/>
<wire x1="12.5" y1="23.383" x2="12.5" y2="23" width="0.4" layer="1"/>
<wire x1="11.5" y1="20.75" x2="11.5" y2="22" width="0.4" layer="16"/>
<wire x1="11.5" y1="22" x2="12.5" y2="23" width="0.4" layer="16"/>
<wire x1="10.25" y1="17.492" x2="11.242" y2="17.492" width="0.4" layer="1"/>
<wire x1="11.242" y1="17.492" x2="11.5" y2="17.75" width="0.4" layer="1"/>
<wire x1="11.5" y1="17.75" x2="11.5" y2="20.75" width="0.4" layer="1"/>
<wire x1="12.83" y1="17.8" x2="11.55" y2="17.8" width="0.2" layer="1"/>
<wire x1="11.55" y1="17.8" x2="11.5" y2="17.75" width="0.2" layer="1"/>
<wire x1="8.6" y1="16.275" x2="9.35" y2="16.65" width="0.4" layer="1"/>
<wire x1="9.35" y1="16.65" x2="9.25" y2="16.75" width="0.4" layer="1"/>
<wire x1="9.25" y1="16.75" x2="9.992" y2="17.492" width="0.4" layer="1"/>
<wire x1="9.992" y1="17.492" x2="10.25" y2="17.492" width="0.4" layer="1"/>
<contactref element="U1" pad="2"/>
<contactref element="C13" pad="1"/>
<contactref element="C16" pad="1"/>
<contactref element="U1" pad="3"/>
<contactref element="R3" pad="2"/>
<contactref element="R4" pad="2"/>
<wire x1="8.6" y1="16.275" x2="8.525" y2="16.275" width="0.4" layer="1"/>
<wire x1="8.525" y1="16.275" x2="6.85" y2="14.6" width="0.4" layer="1"/>
<wire x1="6.85" y1="14.6" x2="6.85" y2="14.35" width="0.4" layer="1"/>
<wire x1="16.46" y1="10.15" x2="16.31" y2="10" width="0.4" layer="1"/>
<wire x1="16.31" y1="10" x2="13" y2="10" width="0.4" layer="1"/>
<wire x1="13" y1="10" x2="11.242" y2="11.758" width="0.4" layer="1"/>
<wire x1="11.242" y1="11.758" x2="11.242" y2="17.492" width="0.4" layer="1"/>
<wire x1="6.55" y1="27.75" x2="5.508" y2="27.75" width="0.4" layer="1"/>
<wire x1="6.55" y1="26.25" x2="5.508" y2="26.25" width="0.4" layer="1"/>
<wire x1="5.508" y1="27.75" x2="5.508" y2="26.25" width="0.4" layer="1"/>
<wire x1="12.133" y1="23.75" x2="12.133" y2="24.883" width="0.4" layer="1"/>
<wire x1="12.133" y1="24.883" x2="12.25" y2="25" width="0.4" layer="1"/>
<wire x1="12.25" y1="25" x2="12.742" y2="25" width="0.4" layer="1"/>
<wire x1="12.742" y1="25" x2="12.75" y2="24.992" width="0.4" layer="1"/>
<wire x1="11.5" y1="24.992" x2="12.024" y2="24.992" width="0.4" layer="1"/>
<wire x1="12.024" y1="24.992" x2="12.133" y2="24.883" width="0.4" layer="1"/>
<wire x1="11.5" y1="24.992" x2="7.808" y2="24.992" width="0.4" layer="1"/>
<wire x1="7.808" y1="24.992" x2="6.55" y2="26.25" width="0.4" layer="1"/>
</signal>
<signal name="VDD_PA">
<contactref element="IC3" pad="30"/>
<contactref element="C3" pad="1"/>
<contactref element="L2" pad="2"/>
<wire x1="19.17" y1="19.8" x2="20.45" y2="19.8" width="0.2" layer="1"/>
<wire x1="20.45" y1="19.8" x2="21.125" y2="19.125" width="0.2" layer="1"/>
<wire x1="21.125" y1="19.125" x2="22.133" y2="19.125" width="0.2" layer="1"/>
<wire x1="22.133" y1="19.125" x2="22.375" y2="19.367" width="0.2" layer="1"/>
<wire x1="22.375" y1="19.367" x2="22.633" y2="19.625" width="0.2" layer="1"/>
<wire x1="22.633" y1="19.625" x2="22.97675" y2="19.625" width="0.2" layer="1"/>
<wire x1="22.97675" y1="19.625" x2="23.25" y2="19.89825" width="0.2" layer="1"/>
</signal>
<signal name="ANT2">
<contactref element="IC3" pad="32"/>
<contactref element="L1" pad="2"/>
<contactref element="C5" pad="1"/>
<wire x1="19.17" y1="20.6" x2="21.18575" y2="20.6" width="0.2" layer="1"/>
<wire x1="21.18575" y1="20.6" x2="21.5" y2="20.91425" width="0.2" layer="1"/>
<wire x1="21.5" y1="20.91425" x2="21.5" y2="21.992" width="0.4" layer="1"/>
</signal>
<signal name="ANT1">
<contactref element="IC3" pad="31"/>
<contactref element="L1" pad="1"/>
<contactref element="L2" pad="1"/>
<wire x1="19.17" y1="20.2" x2="21.19825" y2="20.2" width="0.2" layer="1"/>
<wire x1="21.19825" y1="20.2" x2="21.5" y2="19.89825" width="0.2" layer="1"/>
<wire x1="21.5" y1="19.89825" x2="21.72675" y2="20.125" width="0.2" layer="1"/>
<wire x1="21.72675" y1="20.125" x2="22.117" y2="20.125" width="0.2" layer="1"/>
<wire x1="22.117" y1="20.125" x2="22.375" y2="20.383" width="0.2" layer="1"/>
</signal>
<signal name="UNBAL">
<contactref element="C5" pad="2"/>
<contactref element="C4" pad="1"/>
<contactref element="L3" pad="1"/>
<wire x1="21.5" y1="23.008" x2="21.5" y2="23.875" width="0.4" layer="1"/>
<wire x1="21.5" y1="23.875" x2="21.5" y2="24.742" width="0.4" layer="1"/>
<wire x1="21.617" y1="23.875" x2="21.5" y2="23.875" width="0.4" layer="1"/>
</signal>
<signal name="ANT">
<contactref element="L3" pad="2"/>
<contactref element="C7" pad="1"/>
<contactref element="C6" pad="1"/>
<wire x1="22" y1="26.25" x2="22" y2="26.5" width="1.2" layer="1"/>
<wire x1="22" y1="26.5" x2="22" y2="34.5" width="1.2" layer="1"/>
<wire x1="22" y1="34.5" x2="20" y2="36.5" width="1.2" layer="1"/>
<wire x1="20" y1="36.5" x2="2" y2="36.5" width="1.2" layer="1"/>
<wire x1="22.492" y1="26.75" x2="22.25" y2="26.75" width="0.2" layer="1"/>
<wire x1="22.25" y1="26.75" x2="22" y2="26.5" width="0.2" layer="1"/>
<wire x1="22.492" y1="25.75" x2="22.492" y2="25.758" width="0.2" layer="1"/>
<wire x1="22.492" y1="25.758" x2="22" y2="26.25" width="0.2" layer="1"/>
<wire x1="21.5" y1="25.758" x2="21.508" y2="25.758" width="0.2" layer="1"/>
<wire x1="21.508" y1="25.758" x2="22" y2="26.25" width="0.2" layer="1"/>
</signal>
<signal name="N$1">
<contactref element="L4" pad="2"/>
<contactref element="L5" pad="1"/>
<wire x1="11.5" y1="22.758" x2="10.508" y2="22.758" width="0.4" layer="1"/>
<wire x1="10.508" y1="22.758" x2="10.258" y2="22.75" width="0.4" layer="1"/>
</signal>
<signal name="DCC">
<contactref element="L5" pad="2"/>
<contactref element="IC3" pad="2"/>
<wire x1="12.83" y1="21.8" x2="11.558" y2="21.8" width="0.2" layer="1"/>
<wire x1="11.558" y1="21.8" x2="11.5" y2="21.742" width="0.2" layer="1"/>
</signal>
<signal name="X2">
<contactref element="IC3" pad="38"/>
<contactref element="Y1" pad="X2"/>
<contactref element="C11" pad="2"/>
<wire x1="17.8" y1="23.17" x2="17.8" y2="24.825" width="0.2" layer="1"/>
<wire x1="17.8" y1="24.825" x2="17.3907875" y2="25.2342125" width="0.2" layer="1"/>
<wire x1="17.3907875" y1="25.2342125" x2="17.3907875" y2="26.109209375" width="0.2" layer="1"/>
<wire x1="17.3907875" y1="26.109209375" x2="17.3907875" y2="27.59286875" width="0.4" layer="1"/>
<wire x1="17.3907875" y1="27.59286875" x2="17.4393375" y2="27.64141875" width="0.4" layer="1"/>
</signal>
<signal name="1A">
<contactref element="IC3" pad="25"/>
</signal>
<signal name="1B">
<contactref element="IC3" pad="28"/>
</signal>
<signal name="1C">
<contactref element="IC3" pad="27"/>
</signal>
<signal name="1D">
<contactref element="IC3" pad="26"/>
</signal>
<signal name="2A">
<contactref element="IC3" pad="4"/>
</signal>
<signal name="2B">
<contactref element="IC3" pad="7"/>
</signal>
<signal name="2C">
<contactref element="IC3" pad="6"/>
</signal>
<signal name="2D">
<contactref element="IC3" pad="5"/>
</signal>
<signal name="1C1">
<contactref element="IC3" pad="22"/>
</signal>
<signal name="1C2">
<contactref element="IC3" pad="21"/>
</signal>
<signal name="1C3">
<contactref element="IC3" pad="20"/>
</signal>
<signal name="1C4">
<contactref element="IC3" pad="19"/>
</signal>
<signal name="1C5">
<contactref element="IC3" pad="18"/>
</signal>
<signal name="1C6">
<contactref element="IC3" pad="17"/>
</signal>
<signal name="1C7">
<contactref element="IC3" pad="16"/>
</signal>
<signal name="1C8">
<contactref element="IC3" pad="15"/>
</signal>
<signal name="2C3">
<contactref element="IC3" pad="46"/>
</signal>
<signal name="2C4">
<contactref element="IC3" pad="45"/>
</signal>
<signal name="2C5">
<contactref element="IC3" pad="44"/>
</signal>
<signal name="2C6">
<contactref element="IC3" pad="43"/>
</signal>
<signal name="2C7">
<contactref element="IC3" pad="42"/>
</signal>
<signal name="2C8">
<contactref element="IC3" pad="41"/>
</signal>
<signal name="X1">
<contactref element="IC3" pad="37"/>
<contactref element="Y1" pad="X1"/>
<contactref element="C12" pad="1"/>
<wire x1="18.2" y1="23.17" x2="18.2" y2="23.2" width="0.2" layer="1"/>
<wire x1="18.2" y1="23.2" x2="19.75" y2="24.75" width="0.2" layer="1"/>
<wire x1="19.75" y1="24.75" x2="19.75" y2="27.1692375" width="0.2" layer="1"/>
<wire x1="19.75" y1="27.1692375" x2="19.560659375" y2="27.358578125" width="0.2" layer="1"/>
<wire x1="19.560659375" y1="27.358578125" x2="19.75" y2="27.54791875" width="0.4" layer="1"/>
<wire x1="19.75" y1="27.54791875" x2="19.75" y2="28.749996875" width="0.4" layer="1"/>
<wire x1="19.75" y1="28.749996875" x2="19.609209375" y2="28.8907875" width="0.4" layer="1"/>
</signal>
<signal name="5.0V">
<contactref element="IC5" pad="4"/>
<contactref element="C20" pad="1"/>
<contactref element="X1" pad="VBUS"/>
<wire x1="18.125" y1="7.25" x2="17.7" y2="6.825" width="0.4" layer="1"/>
<wire x1="17.7" y1="6.825" x2="17.7" y2="5.75" width="0.4" layer="1"/>
<wire x1="17.7" y1="5.75" x2="17.7" y2="4.9" width="0.4" layer="1"/>
<wire x1="15.3001" y1="5.8" x2="15.3501" y2="5.75" width="0.4" layer="1"/>
<wire x1="15.3501" y1="5.75" x2="17.7" y2="5.75" width="0.4" layer="1"/>
</signal>
<signal name="BATT">
<contactref element="C19" pad="1"/>
<contactref element="IC5" pad="5"/>
<contactref element="CN1" pad="2"/>
<contactref element="LED1" pad="A"/>
<contactref element="IC4" pad="1"/>
<contactref element="IC4" pad="3"/>
<via x="14" y="4.25" extent="1-16" drill="0.3"/>
<via x="12.25" y="1.5" extent="1-16" drill="0.3"/>
<via x="9.5" y="1.5" extent="1-16" drill="0.3"/>
<wire x1="15.3001" y1="7.7" x2="14.45" y2="7.7" width="0.4" layer="1"/>
<wire x1="14.45" y1="7.7" x2="14" y2="7.25" width="0.4" layer="1"/>
<wire x1="14" y1="7.25" x2="14" y2="4.25" width="0.4" layer="1"/>
<wire x1="9.5" y1="1.5" x2="7.5" y2="1.5" width="0.4" layer="1"/>
<wire x1="7.5" y1="1.5" x2="6.5" y2="2.5" width="0.4" layer="1"/>
<wire x1="6.5" y1="2.5" x2="6.5" y2="7.45" width="0.4" layer="1"/>
<wire x1="6.5" y1="7.45" x2="6.65" y2="7.6" width="0.4" layer="1"/>
<wire x1="6.65" y1="7.6" x2="6.65" y2="10.775" width="0.4" layer="1"/>
<wire x1="6.625" y1="10.75" x2="6.65" y2="10.775" width="0.4" layer="1"/>
<wire x1="12.25" y1="1.5" x2="12.75" y2="1.5" width="0.4" layer="1"/>
<wire x1="12.75" y1="1.5" x2="13.25" y2="1" width="0.4" layer="1"/>
<wire x1="14" y1="4.25" x2="14" y2="3.25" width="0.4" layer="16"/>
<wire x1="14" y1="3.25" x2="12.25" y2="1.5" width="0.4" layer="16"/>
<wire x1="9.5" y1="1.5" x2="12.25" y2="1.5" width="0.4" layer="16"/>
<wire x1="6.65" y1="10.775" x2="6.85" y2="10.975" width="0.4" layer="1"/>
<wire x1="6.85" y1="10.975" x2="6.85" y2="11.5" width="0.4" layer="1"/>
<wire x1="6.85" y1="11.5" x2="6.85" y2="12.65" width="0.4" layer="1"/>
<wire x1="8.15" y1="12.65" x2="8.15" y2="11.9" width="0.4" layer="1"/>
<wire x1="8.15" y1="11.9" x2="8" y2="11.75" width="0.4" layer="1"/>
<wire x1="8" y1="11.75" x2="7.1" y2="11.75" width="0.4" layer="1"/>
<wire x1="7.1" y1="11.75" x2="6.85" y2="11.5" width="0.4" layer="1"/>
</signal>
<signal name="CHG">
<contactref element="R2" pad="1"/>
<contactref element="IC5" pad="3"/>
<wire x1="13.25" y1="4.758" x2="13.25" y2="5.5" width="0.4" layer="1"/>
<wire x1="13.25" y1="5.5" x2="12.95" y2="5.8" width="0.4" layer="1"/>
<wire x1="12.95" y1="5.8" x2="12.6999" y2="5.8" width="0.4" layer="1"/>
</signal>
<signal name="LED">
<contactref element="LED1" pad="C"/>
<contactref element="R2" pad="2"/>
<wire x1="13.25" y1="2.5" x2="13.25" y2="3.742" width="0.4" layer="1"/>
</signal>
<signal name="N$6">
<contactref element="IC3" pad="14"/>
<contactref element="R1" pad="2"/>
<wire x1="14.2" y1="16.83" x2="14.2" y2="15.708" width="0.2" layer="1"/>
<wire x1="14.2" y1="15.708" x2="14" y2="15.508" width="0.2" layer="1"/>
</signal>
<signal name="N$8">
<contactref element="R1" pad="1"/>
<contactref element="LED2" pad="A"/>
<wire x1="14" y1="14.492" x2="14" y2="13.25" width="0.4" layer="1"/>
</signal>
<signal name="SDA">
<contactref element="U1" pad="6"/>
<contactref element="IC3" pad="47"/>
<contactref element="R3" pad="1"/>
<wire x1="9.45" y1="29.25" x2="10.5" y2="29.25" width="0.4" layer="1"/>
<wire x1="10.5" y1="29.25" x2="12.75" y2="27" width="0.4" layer="1"/>
<wire x1="12.75" y1="27" x2="12.75" y2="26.008" width="0.4" layer="1"/>
<wire x1="12.75" y1="26.008" x2="12.758" y2="26" width="0.15" layer="1"/>
<wire x1="12.75" y1="26.008" x2="13.492" y2="26.008" width="0.2" layer="1"/>
<wire x1="13.492" y1="26.008" x2="14.2" y2="25.3" width="0.2" layer="1"/>
<wire x1="14.2" y1="25.3" x2="14.2" y2="23.17" width="0.2" layer="1"/>
</signal>
<signal name="SCL">
<contactref element="U1" pad="5"/>
<contactref element="IC3" pad="48"/>
<contactref element="R4" pad="1"/>
<wire x1="9.45" y1="27.75" x2="10.75" y2="27.75" width="0.4" layer="1"/>
<wire x1="10.75" y1="27.75" x2="11.5" y2="27" width="0.4" layer="1"/>
<wire x1="11.5" y1="27" x2="11.5"

license: MIT

repository: bristol-seds/pressure

license_type: permissive

repo_name: bristol-seds/pressure

branch_name: refs/heads/master

extension: brd