diff options
49 files changed, 15631 insertions, 1074 deletions
@@ -1,3 +1,4 @@ .cache build log.txt +compile_commands.json diff --git a/.gitmodules b/.gitmodules index 755d4f6..8fcd4bb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,3 +13,6 @@ [submodule "fw/zephyrproject/bootloader/mcuboot"] path = fw/rtos/modules/mcuboot url = https://github.com/zephyrproject-rtos/mcuboot.git +[submodule "simple.css"] + path = simple.css + url = https://github.com/kevquirk/simple.css.git diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index a21c5d0..0000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -project(iot-contact LANGUAGES NONE) - -set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) - -add_subdirectory(fw) -add_subdirectory(pcb) @@ -3,61 +3,39 @@ iot-contact is an IoT device to check if doors and windows are closed or open. Furthermore roller shutter motors should be controlled. -Currently two boards are supported: - -- `native_sim/native/64` without bootloader -- `nucleo_f767zi` with bootloader - ## Usage -To build the device repository a firmware signing key is required. It is -generated with the `imgtool.py`. - -``` -mkdir ~/mcuboot -./imgtool.py keygen --key ~/mcuboot/key.pem --type ed25519 -``` - -The content of this repository can be build with CMake and Ninja. The -application firmware will be built for the simulation board to easily use it -without special hardware. - -The bootloader is built for `nucleo_f767zi` since the simulation board is -currently not supported. +The source code can be retrieved with `git`. ``` -cmake -Bbuild -GNinja -ninja -C build +git clone https://cgit.xengineering.eu/iot-contact +cd iot-contact +git submodule update --init ``` -A custom key location can be set by providing `-DKEY=/path/to/key` to the CMake -call. - -To run the simulated firmware a virtual network interface `zeth` and a router -advertisement daemon have to be provided with an embedded script. Root rights -are required for that (prefix e.g. with `sudo`). +To sign the application firmware and thus to build the project a cryptographic +signing key is required. It can be generated with `imgtool.py`. ``` -./fw/simulate-network.sh +mkdir ~/mcuboot +./imgtool.py keygen --key ~/mcuboot/key.pem --type ed25519 ``` -With the firmware built and the network being prepared the simulated firmware -can be run. +The project is built with the Meson build system. ``` -./build/fw/app/zephyr/zephyr.exe +meson setup build +ninja -C build ``` -To build the firmware in a clean `nucleo` build folder, flash it and open a -serial interface another script can be used for convenience. +The resulting artifacts can be listed with `tree`. ``` -./fw/nucleo.sh +tree build/artifacts ``` -Next to the firmware artifacts the exported files related to the printed -circuit board (PCB) can be found in the build folder. +These artifacts are organized as static website. It can be opened with Firefox. ``` -tree build/pcb +firefox build/artifacts/index.html ``` diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000..80f0879 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,10 @@ +This is a mandatory release checklist. + +- select a version string with pattern `v<major>.<minor>.<patch>` optionally + with a `-pre<count>` suffix (e.g. `v1.2.45-pre67`) +- reserve resistor combination in `pcb/versions.tsv` by adding version string +- set values of `R1` and `R2` in root schematic according to `pcb/versions.tsv` +- write version string to PCB silk screen +- commit all changes +- execute all automated and manual tests +- create release tag diff --git a/artifacts/meson.build b/artifacts/meson.build new file mode 100644 index 0000000..ac15661 --- /dev/null +++ b/artifacts/meson.build @@ -0,0 +1,23 @@ +artifacts = [ + index_html, + css, + schematic, + bom, + simulation, + update_image, + factory_image, + kicad_pcb, +] + +foreach artifact : artifacts + custom_target( + output: [fs.name(artifact.full_path())], + command: [ + cp, + artifact.full_path(), + meson.current_build_dir(), + ], + depends: artifact, + build_by_default: true, + ) +endforeach diff --git a/cmake/kicad.cmake b/cmake/kicad.cmake deleted file mode 100644 index 0feac80..0000000 --- a/cmake/kicad.cmake +++ /dev/null @@ -1,50 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at https://mozilla.org/MPL/2.0/. - -function(kicad_schematic_pdf target sink source) - add_custom_target( - "${target}" - ALL - DEPENDS - ${sink} - ) - - add_custom_command( - OUTPUT - ${sink} - COMMAND - kicad-cli sch export pdf --output ${sink} ${source} - COMMAND - echo "Exported schematic: ${sink}" - DEPENDS - ${source} - JOB_POOL - kicad - ) -endfunction() - -function(kicad_bom_csv target sink source) - add_custom_target( - "${target}" - ALL - DEPENDS - ${sink} - ) - - add_custom_command( - OUTPUT - ${sink} - COMMAND - kicad-cli sch export bom - --fields 'Reference,Description,Value,Footprint,Manufacturer,MPN,Datasheet' - --output ${sink} - ${source} - COMMAND - echo "Exported BOM: ${sink}" - DEPENDS - ${source} - JOB_POOL - kicad - ) -endfunction() diff --git a/compile_commands.json b/compile_commands.json deleted file mode 120000 index f0312d6..0000000 --- a/compile_commands.json +++ /dev/null @@ -1 +0,0 @@ -build/fw/app/compile_commands.json
\ No newline at end of file diff --git a/fw/CMakeLists.txt b/fw/CMakeLists.txt deleted file mode 100644 index 2affe92..0000000 --- a/fw/CMakeLists.txt +++ /dev/null @@ -1,37 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public License, -# v. 2.0. If a copy of the MPL was not distributed with this file, You can -# obtain one at https://mozilla.org/MPL/2.0/. - -cmake_minimum_required(VERSION 3.20.0) - -include(ExternalProject) - -set(KEY_DEFAULT "$ENV{HOME}/mcuboot/key.pem") -set(KEY ${KEY_DEFAULT} CACHE STRING "Firmware signing key path") -message(STATUS "Firmware signing key path: ${KEY}") - -set(BOARD_DEFAULT "native_sim/native/64") -set(BOARD ${BOARD_DEFAULT} CACHE STRING "Zephyr board identifier") -message(STATUS "Selected board: ${BOARD}") - -add_subdirectory(rtos) -string(REPLACE ";" "," ZEPHYR_MODULES_COMMA "${ZEPHYR_MODULES}") - -if(BOARD STREQUAL "nucleo_f767zi") - ExternalProject_Add( - btl - PREFIX btl - SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/rtos/modules/mcuboot/boot/zephyr" - BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/btl" - INSTALL_COMMAND "" - LIST_SEPARATOR "," - CMAKE_ARGS - "-DBOARD=${BOARD}" - "-DZEPHYR_BASE=${ZEPHYR_BASE}" - "-DZEPHYR_MODULES=${ZEPHYR_MODULES_COMMA}" - "-DEXTRA_CONF_FILE=${CMAKE_CURRENT_SOURCE_DIR}/btl/bootloader.conf" - -DCONFIG_BOOT_SIGNATURE_KEY_FILE="${KEY}" - ) -endif() - -add_subdirectory(app) diff --git a/fw/README.md b/fw/README.md deleted file mode 100644 index 9883b2d..0000000 --- a/fw/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# iot-contact Firmware - -This is the firmware for iot-contact. It is based on the Zephyr real time -operating system [1]. - -[1]: https://zephyrproject.org diff --git a/fw/app/CMakeLists.txt b/fw/app/CMakeLists.txt index 1a9d1cf..de1c418 100644 --- a/fw/app/CMakeLists.txt +++ b/fw/app/CMakeLists.txt @@ -19,6 +19,7 @@ target_sources(app "${CMAKE_CURRENT_SOURCE_DIR}/src/http.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/ws.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/heart.c" + "${CMAKE_CURRENT_SOURCE_DIR}/src/settings.c" ) target_sources_ifdef( @@ -42,6 +43,13 @@ generate_inc_file_for_target( generate_inc_file_for_target( app + src/simple.css + ${ZEPHYR_BINARY_DIR}/include/generated/simple.css.gz.inc + --gzip +) + +generate_inc_file_for_target( + app src/iot-contact.js ${ZEPHYR_BINARY_DIR}/include/generated/iot-contact.js.gz.inc --gzip diff --git a/fw/app/Kconfig b/fw/app/Kconfig index 5393e05..3481340 100644 --- a/fw/app/Kconfig +++ b/fw/app/Kconfig @@ -2,4 +2,8 @@ config IOT_CONTACT_REMOTE_UPDATE bool "Enable the remote update system" default n +config IOT_CONTACT_NETWORK_HACK + bool "Reboots after a fixed timeout if network connection cannot be established" + default n + source "Kconfig.zephyr" diff --git a/fw/app/boards/nucleo_f767zi.conf b/fw/app/boards/nucleo_f767zi.conf index 7f92421..ca69a03 100644 --- a/fw/app/boards/nucleo_f767zi.conf +++ b/fw/app/boards/nucleo_f767zi.conf @@ -3,6 +3,7 @@ # obtain one at https://mozilla.org/MPL/2.0/. CONFIG_IOT_CONTACT_REMOTE_UPDATE=y +CONFIG_IOT_CONTACT_NETWORK_HACK=y CONFIG_BOOTLOADER_MCUBOOT=y diff --git a/fw/app/meson.build b/fw/app/meson.build new file mode 100644 index 0000000..6665fe4 --- /dev/null +++ b/fw/app/meson.build @@ -0,0 +1,60 @@ +external_project = import('unstable-external_project') + +application_source = meson.current_source_dir() + +external_project.add_project( + configure_zephyr, + configure_options: [ + '--source-tree', application_source, + '--build-tree', meson.current_build_dir() / 'build', + '--board', board, + '--zephyr-base', zephyr, + '--zephyr-modules', ';'.join(zephyr_modules), + ], + verbose: true, +) + +application = custom_target( + output: ['application.bin'], + command: [ + build_zephyr, + '--build-tree', meson.current_build_dir() / 'build', + '--binary-name', 'zephyr.bin', + '--target-name', 'application.bin', + ], +) + +version = '0.0.0' +header_size = '0x200' +slot_size = '0xc0000' + +update_image = custom_target( + output: ['update-image.bin'], + command: [ + imgtool, + 'sign', + '--version', version, + '--header-size', header_size, + '--slot-size', slot_size, + '--key', signing_key, + application, + '@OUTPUT@', + ], + depends: application, +) + +application_signed_confirmed = custom_target( + output: ['application.signed.confirmed.bin'], + command: [ + imgtool, + 'sign', + '--version', version, + '--header-size', header_size, + '--slot-size', slot_size, + '--key', signing_key, + '--confirm', + application, + '@OUTPUT@', + ], + depends: application, +) diff --git a/fw/app/prj.conf b/fw/app/prj.conf index 11dc04f..6589ec0 100644 --- a/fw/app/prj.conf +++ b/fw/app/prj.conf @@ -21,7 +21,6 @@ CONFIG_NET_IF_UNICAST_IPV6_ADDR_COUNT=4 CONFIG_LOG=y CONFIG_LOG_BACKEND_NET=y -CONFIG_LOG_BACKEND_NET_SERVER="[2001:db8::2]:514" CONFIG_LOG_BACKEND_NET_AUTOSTART=n CONFIG_LOG_MODE_DEFERRED=y @@ -43,3 +42,20 @@ CONFIG_ZVFS_POLL_MAX=32 CONFIG_ZBUS=y CONFIG_ZBUS_MSG_SUBSCRIBER=y CONFIG_HEAP_MEM_POOL_SIZE=2048 + +CONFIG_FLASH=y +CONFIG_FLASH_MAP=y + +CONFIG_MPU_ALLOW_FLASH_WRITE=y + +CONFIG_NVS=y +CONFIG_NVS_DATA_CRC=y + +CONFIG_SETTINGS=y +CONFIG_SETTINGS_RUNTIME=y +CONFIG_SETTINGS_NVS=y +CONFIG_SETTINGS_SHELL=y + +CONFIG_GNU_C_EXTENSIONS=y + +CONFIG_JSON_LIBRARY=y diff --git a/fw/app/src/http.c b/fw/app/src/http.c index e206f86..f9016c1 100644 --- a/fw/app/src/http.c +++ b/fw/app/src/http.c @@ -5,6 +5,7 @@ */ +#include <errno.h> #include <stdint.h> #include <zephyr/init.h> @@ -13,6 +14,7 @@ #include <zephyr/net/http/service.h> #include <zephyr/net/http/status.h> +#include "settings.h" #include "ws.h" @@ -34,6 +36,21 @@ struct http_resource_detail_static index_resource_detail = { .static_data_len = sizeof(index_html_gz), }; +static const uint8_t css_gz[] = { + #include "simple.css.gz.inc" +}; + +struct http_resource_detail_static css_resource_detail = { + .common = { + .type = HTTP_RESOURCE_TYPE_STATIC, + .bitmask_of_supported_http_methods = BIT(HTTP_GET), + .content_encoding = "gzip", + .content_type = "text/css", + }, + .static_data = css_gz, + .static_data_len = sizeof(css_gz), +}; + static const uint8_t js_html_gz[] = { #include "iot-contact.js.gz.inc" }; @@ -76,6 +93,54 @@ static struct http_resource_detail_dynamic favicon_resource_detail = { .user_data = NULL, }; +static int settings_handler( + struct http_client_ctx *client, + enum http_data_status status, + const struct http_request_ctx *request_ctx, + struct http_response_ctx *response_ctx, + void *user_data +) { + static char buffer[SETTINGS_JSON_MAX_LEN]; + + int ret = settings_to_json(buffer, sizeof(buffer)); + if (ret < 0) { + LOG_ERR("Could not serialize payload for settings request"); + return ret; + } + + size_t len = strnlen(buffer, sizeof(buffer)); + if (len >= sizeof(buffer)) { + LOG_ERR("End of settings JSON string not found (strnlen returned %d)", + sizeof(buffer)); + return -ENOMEM; + } + + if (sizeof(buffer) < len + 2) { + LOG_ERR("Settings JSON buffer too small to hold \\n and \\0"); + return -ENOMEM; + } + buffer[len + 0] = '\n'; + buffer[len + 1] = '\0'; + len += 1; + + response_ctx->body = (const uint8_t *)buffer; + response_ctx->body_len = len; + response_ctx->final_chunk = true; + response_ctx->status = HTTP_200_OK; + + return 0; +} + +static struct http_resource_detail_dynamic settings_resource_detail = { + .common = { + .type = HTTP_RESOURCE_TYPE_DYNAMIC, + .bitmask_of_supported_http_methods = BIT(HTTP_GET), + .content_type = "text/json", + }, + .cb = settings_handler, + .user_data = NULL, +}; + static uint8_t websocket_read_buffer[1024]; struct http_resource_detail_websocket websocket_resource_detail = { @@ -95,7 +160,9 @@ HTTP_SERVICE_DEFINE(http_service, NULL, &http_port, 1, 10, NULL, NULL); HTTP_RESOURCE_DEFINE(index_resource, http_service, "/", &index_resource_detail); HTTP_RESOURCE_DEFINE(websocket_resource, http_service, "/", &websocket_resource_detail); HTTP_RESOURCE_DEFINE(favicon_resource, http_service, "/favicon.ico", &favicon_resource_detail); +HTTP_RESOURCE_DEFINE(css_resource, http_service, "/simple.css", &css_resource_detail); HTTP_RESOURCE_DEFINE(js_resource, http_service, "/iot-contact.js", &js_resource_detail); +HTTP_RESOURCE_DEFINE(settings_resource, http_service, "/settings.json", &settings_resource_detail); int init_http_server(void) { LOG_DBG("Starting HTTP server"); diff --git a/fw/app/src/index.html b/fw/app/src/index.html index 5817818..d4ccd45 100644 --- a/fw/app/src/index.html +++ b/fw/app/src/index.html @@ -8,14 +8,19 @@ <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> - <title>iot-contact</title> + <title>IoT contact</title> + <link rel="stylesheet" type="text/css" href="simple.css"> <script type="text/javascript" src="/iot-contact.js"></script> </head> <body> - <h4>iot-contact</h4> - <p> - <label for="heartbeat">Heartbeat</label> - <meter id="heartbeat" min="0" max="1" value="0"></meter> - </p> + <header> + <h1>IoT contact</h1> + </header> + <main> + <p class="notice"> + <label for="heartbeat">Heartbeat</label> + <meter id="heartbeat" min="0" max="1" value="0"></meter> + </p> + </main> </body> </html> diff --git a/fw/app/src/settings.c b/fw/app/src/settings.c new file mode 100644 index 0000000..4b2c248 --- /dev/null +++ b/fw/app/src/settings.c @@ -0,0 +1,77 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at https://mozilla.org/MPL/2.0/. + */ + +#include <string.h> + +#include <zephyr/data/json.h> +#include <zephyr/init.h> +#include <zephyr/logging/log.h> +#include <zephyr/settings/settings.h> + +#include "settings.h" + + +LOG_MODULE_DECLARE(settings); + + +int init_settings(void) { + int ret = settings_subsys_init(); + if (ret < 0) { + LOG_ERR("Subsystem init failed (%d)", ret); + return ret; + } + LOG_INF("Subsystem initialized"); + + ret = settings_load(); + if (ret < 0) { + LOG_ERR("Failed to load settings (%d)", ret); + return ret; + } + LOG_INF("Loaded settings"); + + return 0; +} +SYS_INIT(init_settings, APPLICATION, 50); + +static const struct json_obj_descr settings_syslog_target_descr[] = { + JSON_OBJ_DESCR_PRIM(struct settings_syslog_target, ip, JSON_TOK_STRING), +}; + +static const struct json_obj_descr settings_syslog_descr[] = { + JSON_OBJ_DESCR_OBJECT(struct settings_syslog, target, settings_syslog_target_descr), +}; + +static const struct json_obj_descr settings_descr[] = { + JSON_OBJ_DESCR_OBJECT(struct settings, syslog, settings_syslog_descr), +}; + +int settings_to_json(void *buffer, size_t len) +{ + struct settings settings = {0,}; + settings.syslog.target.ip = (char *)settings.syslog.target.ip_array; + + int ret = settings_runtime_get("syslog/target/ip", + settings.syslog.target.ip_array, + sizeof(settings.syslog.target.ip_array)); + if (ret < 0) { + LOG_ERR("Failed to get runtime setting syslog/target/ip (%d)", ret); + return ret; + } + + ret = json_obj_encode_buf( + settings_descr, + ARRAY_SIZE(settings_descr), + &settings, + buffer, + len + ); + if (ret < 0) { + LOG_ERR("Failed to serialize settings as JSON"); + return ret; + } + + return 0; +} diff --git a/fw/app/src/settings.h b/fw/app/src/settings.h new file mode 100644 index 0000000..8c7b4e3 --- /dev/null +++ b/fw/app/src/settings.h @@ -0,0 +1,33 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at https://mozilla.org/MPL/2.0/. + */ + +#ifndef SRC_SETTINGS_H +#define SRC_SETTINGS_H + +#include <stddef.h> + +#include <zephyr/data/json.h> + +#define IPV6_STRLEN_MAX 39 // excluding '\0' +#define SETTINGS_JSON_MAX_LEN (IPV6_STRLEN_MAX + 50) + + +struct settings_syslog_target { + char ip_array[IPV6_STRLEN_MAX]; + char *ip; /* Zephyr's JSON lib does not work with arrays directly */ +}; + +struct settings_syslog { + struct settings_syslog_target target; +}; + +struct settings { + struct settings_syslog syslog; +}; + +int settings_to_json(void *buffer, size_t data); + +#endif // !SRC_SETTINGS_H diff --git a/fw/app/src/simple.css b/fw/app/src/simple.css new file mode 120000 index 0000000..5483eb1 --- /dev/null +++ b/fw/app/src/simple.css @@ -0,0 +1 @@ +../../../simple.css/simple.css
\ No newline at end of file diff --git a/fw/app/src/syslog.c b/fw/app/src/syslog.c index edc2839..22aa034 100644 --- a/fw/app/src/syslog.c +++ b/fw/app/src/syslog.c @@ -4,8 +4,12 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ +#include <errno.h> #include <stdbool.h> +#include <stdio.h> +#include <string.h> +#include <string.h> #include <zephyr/init.h> #include <zephyr/kernel.h> #include <zephyr/logging/log.h> @@ -14,15 +18,24 @@ #include <zephyr/logging/log_ctrl.h> #include <zephyr/logging/log_core.h> #include <zephyr/net/conn_mgr_connectivity.h> +#include <zephyr/settings/settings.h> +#include <zephyr/sys/util.h> + +#ifdef CONFIG_IOT_CONTACT_NETWORK_HACK #include <zephyr/sys/reboot.h> +#endif // CONFIG_IOT_CONTACT_NETWORK_HACK + +#include "settings.h" LOG_MODULE_REGISTER(syslog); #define NETWORK_BUG_DELAY K_MSEC(4000) #define L4_EVENT_MASK (NET_EVENT_L4_CONNECTED | NET_EVENT_L4_DISCONNECTED) +#define SYSLOG_TARGET_PORT 514 struct net_mgmt_event_callback l4_cb; static K_SEM_DEFINE(network_connected, 0, 1); +static char target_ip[IPV6_STRLEN_MAX + 1] = "2001:db8::2"; void l4_event_handler( struct net_mgmt_event_callback *cb, @@ -58,12 +71,17 @@ int init_syslog(void) LOG_DBG("Initializing syslog logging backend"); LOG_INF("Waiting for network ..."); + +#ifdef CONFIG_IOT_CONTACT_NETWORK_HACK int ret = k_sem_take(&network_connected, NETWORK_BUG_DELAY); if (ret == -EAGAIN) { LOG_ERR("Could not connect to network - rebooting system"); log_flush(); sys_reboot(SYS_REBOOT_COLD); } +#else + k_sem_take(&network_connected, K_FOREVER); +#endif // CONFIG_IOT_CONTACT_NETWORK_HACK LOG_INF("Enabling syslog backend"); const struct log_backend *backend = log_backend_net_get(); @@ -79,4 +97,71 @@ int init_syslog(void) return 0; } -SYS_INIT(init_syslog, APPLICATION, 50); +SYS_INIT(init_syslog, APPLICATION, 40); + +int syslog_handle_set(const char *name, size_t len, settings_read_cb read_cb, + void *cb_arg) +{ + const char* next = NULL; + + if (settings_name_steq(name, "target/ip", &next) && !next) { + memset(target_ip, '\0', sizeof(target_ip)); + ssize_t ret = read_cb(cb_arg, target_ip, MIN(sizeof(target_ip) - 1, len)); + if (ret < 0) { + LOG_ERR("Failed to set target IP (%d)", ret); + return (int)ret; + } + LOG_INF("Set target IP to '%s'", target_ip); + return 0; + } + + return 0; +} + +int syslog_handle_commit(void) +{ + char target[IPV6_STRLEN_MAX + 9]; // 9 for brackets, colon, port and \0 + + int ret = snprintf(target, sizeof(target), "[%s]:%d", target_ip, + SYSLOG_TARGET_PORT); + if (ret < 0) { + LOG_ERR("Failed to format target based on ip and port (%d)", ret); + return ret; + } + + if (log_backend_net_set_addr(target) == false) { + LOG_ERR("Could not commit settings"); + return -EINVAL; + } + LOG_INF("Committed settings"); + + return 0; +} + +int syslog_handle_export(int (*cb)(const char *name, const void *value, + size_t val_len)) +{ + LOG_WRN("Settings export not implemented"); + return 0; +} + +int syslog_handle_get(const char *name, char *val, int val_len_max) +{ + const char* next = NULL; + + if (settings_name_steq(name, "target/ip", &next) && !next) { + size_t len = strnlen(target_ip, sizeof(target_ip)); + memcpy(val, target_ip, MIN(len, val_len_max)); + } + + return 0; +} + +SETTINGS_STATIC_HANDLER_DEFINE( + syslog_settings_handler, + "syslog", + syslog_handle_get, + syslog_handle_set, + syslog_handle_commit, + syslog_handle_export +); diff --git a/fw/btl/meson.build b/fw/btl/meson.build new file mode 100644 index 0000000..204fe20 --- /dev/null +++ b/fw/btl/meson.build @@ -0,0 +1,25 @@ +external_project = import('unstable-external_project') + +external_project.add_project( + configure_zephyr, + configure_options: [ + '--source-tree', bootloader_firmware, + '--build-tree', meson.current_build_dir() / 'build', + '--board', board, + '--zephyr-base', zephyr, + '--zephyr-modules', ';'.join(zephyr_modules), + '--extra-config', meson.current_source_dir() / 'bootloader.conf', + '--signing-key', signing_key, + ], + verbose: true, +) + +bootloader = custom_target( + output: ['bootloader.bin'], + command: [ + build_zephyr, + '--build-tree', meson.current_build_dir() / 'build', + '--binary-name', 'zephyr.bin', + '--target-name', 'bootloader.bin', + ], +) diff --git a/fw/meson.build b/fw/meson.build new file mode 100644 index 0000000..8f45d5b --- /dev/null +++ b/fw/meson.build @@ -0,0 +1,23 @@ +board = 'nucleo_f767zi' + +fs = import('fs') +signing_key = fs.expanduser('~') / 'mcuboot' / 'key.pem' + +subdir('rtos') +subdir('app') +subdir('btl') +subdir('sim') + +factory_image = custom_target( + output: ['factory-image.bin'], + command: [ + make_factory_image, + '--bootloader', bootloader, + '--application', application_signed_confirmed, + '--factory-image', '@OUTPUT@', + ], + depends: [ + bootloader, + application_signed_confirmed, + ], +) diff --git a/fw/nucleo.sh b/fw/nucleo.sh deleted file mode 100755 index ad0467b..0000000 --- a/fw/nucleo.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh - - -# This Source Code Form is subject to the terms of the Mozilla Public License, -# v. 2.0. If a copy of the MPL was not distributed with this file, You can -# obtain one at https://mozilla.org/MPL/2.0/. - - -set -euf - - -SCRIPT="$(realpath "$0")" -FW="$(dirname "$SCRIPT")" -ROOT="$(dirname "$FW")" -BUILD="${ROOT}/build" -BOOTLOADER_FIRMWARE="${BUILD}/fw/btl/zephyr/zephyr.bin" -APPLICATION_FIRMWARE="${BUILD}/fw/app/zephyr/zephyr.bin" -APPLICATION_FIRMWARE_SIGNED="${BUILD}/fw/app/zephyr/zephyr.signed.bin" -BOOTLOADER_FLASH_ADDRESS='0x8000000' -APPLICATION_FLASH_ADDRESS='0x8040000' -IMGTOOL="${ROOT}/imgtool.py" -KEY="${HOME}/mcuboot/key.pem" -BOARD='nucleo_f767zi' - - -set -x - -python "$IMGTOOL" sign \ - --version 0.0.0 \ - --header-size 0x200 \ - --slot-size 0xc0000 \ - --key "$KEY" \ - "$APPLICATION_FIRMWARE" \ - "$APPLICATION_FIRMWARE_SIGNED" -st-flash --connect-under-reset write "$BOOTLOADER_FIRMWARE" \ - "$BOOTLOADER_FLASH_ADDRESS" -st-flash --connect-under-reset write "$APPLICATION_FIRMWARE_SIGNED" \ - "$APPLICATION_FLASH_ADDRESS" diff --git a/fw/rtos/CMakeLists.txt b/fw/rtos/CMakeLists.txt deleted file mode 100644 index d9f116c..0000000 --- a/fw/rtos/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public License, -# v. 2.0. If a copy of the MPL was not distributed with this file, You can -# obtain one at https://mozilla.org/MPL/2.0/. - -set(ZEPHYR_MODULES - "${CMAKE_CURRENT_SOURCE_DIR}/modules/cmsis" - "${CMAKE_CURRENT_SOURCE_DIR}/modules/hal_stm32" - "${CMAKE_CURRENT_SOURCE_DIR}/modules/mbedtls" - "${CMAKE_CURRENT_SOURCE_DIR}/modules/mcuboot" - PARENT_SCOPE -) - -set(ZEPHYR_BASE - "${CMAKE_CURRENT_SOURCE_DIR}/zephyr" - PARENT_SCOPE -) diff --git a/fw/rtos/meson.build b/fw/rtos/meson.build new file mode 100644 index 0000000..800153d --- /dev/null +++ b/fw/rtos/meson.build @@ -0,0 +1,3 @@ +subdir('modules') + +zephyr = meson.current_source_dir() / 'zephyr' diff --git a/fw/rtos/modules/meson.build b/fw/rtos/modules/meson.build new file mode 100644 index 0000000..14b14f5 --- /dev/null +++ b/fw/rtos/modules/meson.build @@ -0,0 +1,10 @@ +zephyr_modules = [ + meson.current_source_dir() / 'cmsis', + meson.current_source_dir() / 'hal_stm32', + meson.current_source_dir() / 'mbedtls', + meson.current_source_dir() / 'mcuboot', +] + +mcuboot = meson.current_source_dir() / 'mcuboot' +bootloader_firmware = mcuboot / 'boot' / 'zephyr' +imgtool = mcuboot / 'scripts' / 'imgtool.py' diff --git a/fw/sim/meson.build b/fw/sim/meson.build new file mode 100644 index 0000000..5edcad9 --- /dev/null +++ b/fw/sim/meson.build @@ -0,0 +1,24 @@ +external_project = import('unstable-external_project') + +external_project.add_project( + configure_zephyr, + configure_options: [ + '--source-tree', application_source, + '--build-tree', meson.current_build_dir() / 'build', + '--board', 'native_sim/native/64', + '--zephyr-base', zephyr, + '--zephyr-modules', ';'.join(zephyr_modules), + ], + verbose: true, +) + +simulation = custom_target( + output: ['simulation-linux-amd64.exe'], + command: [ + build_zephyr, + '--build-tree', meson.current_build_dir() / 'build', + '--binary-name', 'zephyr.exe', + '--target-name', 'simulation-linux-amd64.exe', + ], + build_by_default: true, +) diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..9b7d7c1 --- /dev/null +++ b/meson.build @@ -0,0 +1,13 @@ +project('iot-contact') + +cp = find_program('cp', required : true) + +fs = import('fs') + +css = fs.copyfile(meson.current_source_dir() / 'simple.css' / 'simple.css') + +subdir('tools') +subdir('fw') +subdir('pcb') +subdir('web') +subdir('artifacts') diff --git a/pcb/.gitignore b/pcb/.gitignore index 8d6124a..7132856 100644 --- a/pcb/.gitignore +++ b/pcb/.gitignore @@ -2,3 +2,5 @@ fp-info-cache *.lck *auto_saved_files* +*-backups +_autosave*kicad* diff --git a/pcb/CMakeLists.txt b/pcb/CMakeLists.txt deleted file mode 100644 index 8d2c49a..0000000 --- a/pcb/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -project(iot-contact-pcb LANGUAGES NONE) - -include(kicad) - -set_property(GLOBAL PROPERTY JOB_POOLS kicad=1) - -set(schematic "${CMAKE_CURRENT_SOURCE_DIR}/iot-contact.kicad_sch") - -kicad_schematic_pdf( - "schematic" - "${CMAKE_CURRENT_BINARY_DIR}/schematic.pdf" - "${schematic}" -) - -kicad_bom_csv( - "bom" - "${CMAKE_CURRENT_BINARY_DIR}/bom.csv" - "${schematic}" -) diff --git a/pcb/ethernet.kicad_sch b/pcb/ethernet.kicad_sch index 748e1d9..2d21abd 100644 --- a/pcb/ethernet.kicad_sch +++ b/pcb/ethernet.kicad_sch @@ -7,10 +7,4437 @@ (title_block (title "iot-contact") ) - (lib_symbols) + (lib_symbols + (symbol "Device:C" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0.254) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "C" + (at 0.635 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "C" + (at 0.635 -2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 0.9652 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "cap capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "C_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "C_0_1" + (polyline + (pts + (xy -2.032 0.762) (xy 2.032 0.762) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -2.032 -0.762) (xy 2.032 -0.762) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "C_1_1" + (pin passive line + (at 0 3.81 270) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Device:D_Bridge_+-AA" + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "D" + (at 2.54 6.985 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "D_Bridge_+-AA" + (at 2.54 5.08 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Diode bridge, +ve/-ve/AC/AC" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "rectifier ACDC" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "D*Bridge* D*Rectifier*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "D_Bridge_+-AA_0_1" + (circle + (center -5.08 0) + (radius 0.254) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + (polyline + (pts + (xy -5.08 0) (xy 0 -5.08) (xy 5.08 0) (xy 0 5.08) (xy -5.08 0) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -3.81 2.54) (xy -2.54 1.27) (xy -1.905 3.175) (xy -3.81 2.54) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -2.54 3.81) (xy -1.27 2.54) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -2.54 -1.27) (xy -3.81 -2.54) (xy -1.905 -3.175) (xy -2.54 -1.27) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -2.54) (xy -2.54 -3.81) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 0 5.08) + (radius 0.254) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + (circle + (center 0 -5.08) + (radius 0.254) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + (polyline + (pts + (xy 1.27 2.54) (xy 2.54 3.81) (xy 3.175 1.905) (xy 1.27 2.54) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 2.54 1.27) (xy 3.81 2.54) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 2.54 -1.27) (xy 3.81 -2.54) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 3.175 -1.905) (xy 1.27 -2.54) (xy 2.54 -3.81) (xy 3.175 -1.905) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 5.08 0) + (radius 0.254) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + ) + (symbol "D_Bridge_+-AA_1_1" + (pin passive line + (at -7.62 0 0) + (length 2.54) + (name "-" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 7.62 270) + (length 2.54) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -7.62 90) + (length 2.54) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 7.62 0 180) + (length 2.54) + (name "+" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Device:R" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "R" + (at 2.032 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "R" + (at 0 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at -1.778 0 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "R res resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "R_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "R_0_1" + (rectangle + (start -1.016 -2.54) + (end 1.016 2.54) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "R_1_1" + (pin passive line + (at 0 3.81 270) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Diode:SMAJ58A" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 1.016) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "D" + (at 0 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SMAJ58A" + (at 0 -2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Diode_SMD:D_SMA" + (at 0 -5.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://www.littelfuse.com/media?resourcetype=datasheets&itemid=75e32973-b177-4ee3-a0ff-cedaf1abdb93&filename=smaj-datasheet" + (at -1.27 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "400W unidirectional Transient Voltage Suppressor, 58.0Vr, SMA(DO-214AC)" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "unidirectional diode TVS voltage suppressor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "D*SMA*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "SMAJ58A_0_1" + (polyline + (pts + (xy -0.762 1.27) (xy -1.27 1.27) (xy -1.27 -1.27) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 1.27) (xy 1.27 -1.27) (xy -1.27 0) (xy 1.27 1.27) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "SMAJ58A_1_1" + (pin passive line + (at -3.81 0 0) + (length 2.54) + (name "A1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 3.81 0 180) + (length 2.54) + (name "A2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Interface_Ethernet:KSZ8081RND" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "U" + (at -15.24 26.035 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + ) + (property "Value" "KSZ8081RND" + (at 3.81 26.035 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + ) + (property "Footprint" "Package_DFN_QFN:QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mm" + (at 35.56 -25.4 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "http://ww1.microchip.com/downloads/en/DeviceDoc/00002199A.pdf" + (at -57.15 5.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "10BASE-T/100BASE-TX PHY with RMII Support, 50 MHz input clock, QFN-24" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "ETH PHY RMII" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "QFN*1EP*4x4mm*P0.5mm*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "KSZ8081RND_0_1" + (rectangle + (start -15.24 25.4) + (end 15.24 -22.86) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + ) + (symbol "KSZ8081RND_1_1" + (pin input line + (at -17.78 22.86 0) + (length 2.54) + (name "TXEN" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "19" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -17.78 20.32 0) + (length 2.54) + (name "TXD0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "20" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -17.78 17.78 0) + (length 2.54) + (name "TXD1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "21" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin output line + (at -17.78 12.7 0) + (length 2.54) + (name "RXD0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin output line + (at -17.78 10.16 0) + (length 2.54) + (name "RXD1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin output line + (at -17.78 7.62 0) + (length 2.54) + (name "CRS_DV/PHYAD[1:0]" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin output line + (at -17.78 5.08 0) + (length 2.54) + (name "REF_CLK" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "16" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin output line + (at -17.78 2.54 0) + (length 2.54) + (name "RXER" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "17" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -17.78 -2.54 0) + (length 2.54) + (name "MDIO" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -17.78 -5.08 0) + (length 2.54) + (name "MDC" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -17.78 -10.16 0) + (length 2.54) + (name "INTRP" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "18" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -17.78 -12.7 0) + (length 2.54) + (name "~{RST}" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "24" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin output line + (at -17.78 -17.78 0) + (length 2.54) + (name "XO" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -17.78 -20.32 0) + (length 2.54) + (name "XI" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_out line + (at -2.54 27.94 270) + (length 2.54) + (name "VDD_1.2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 27.94 270) + (length 2.54) + (name "VDDA_3.3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 -25.4 90) + (length 2.54) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "22" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -25.4 90) + (length 2.54) + (hide yes) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "25" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 2.54 27.94 270) + (length 2.54) + (name "VDDIO" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 17.78 20.32 180) + (length 2.54) + (name "RXM" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 17.78 17.78 180) + (length 2.54) + (name "RXP" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 17.78 12.7 180) + (length 2.54) + (name "TXM" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 17.78 10.16 180) + (length 2.54) + (name "TXP" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin output line + (at 17.78 -5.08 180) + (length 2.54) + (name "LED0/ANEN_SPEED" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "23" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 17.78 -10.16 180) + (length 2.54) + (name "REXT" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Oscillator:ECS-2520MV-xxx-xx" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "Y" + (at -5.08 6.35 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "ECS-2520MV-xxx-xx" + (at 1.27 -6.35 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Oscillator:Oscillator_SMD_ECS_2520MV-xxx-xx-4Pin_2.5x2.0mm" + (at 11.43 -8.89 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://www.ecsxtal.com/store/pdf/ECS-2520MV.pdf" + (at -4.445 3.175 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "HCMOS Crystal Clock Oscillator, 2.5x2.0 mm SMD" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "Crystal Clock Oscillator ECS SMD" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "Oscillator*SMD*ECS*2520MV*2.5x2.0mm*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "ECS-2520MV-xxx-xx_0_1" + (rectangle + (start -7.62 5.08) + (end 7.62 -5.08) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + (polyline + (pts + (xy -4.445 2.54) (xy -3.81 2.54) (xy -3.81 3.81) (xy -3.175 3.81) (xy -3.175 2.54) (xy -2.54 2.54) + (xy -2.54 3.81) (xy -1.905 3.81) (xy -1.905 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "ECS-2520MV-xxx-xx_1_1" + (pin input line + (at -10.16 0 0) + (length 2.54) + (name "Tri-State" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 7.62 270) + (length 2.54) + (name "VDD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 -7.62 90) + (length 2.54) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin output line + (at 10.16 0 180) + (length 2.54) + (name "OUT" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Regulator_Controller:TPS2375-1" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "U" + (at 2.54 -8.89 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "TPS2375-1" + (at 7.62 -11.43 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Package_SO:TSSOP-8_4.4x3mm_P0.65mm" + (at 0 -20.32 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://www.ti.com/lit/gpn/tps2375-1" + (at 0 20.32 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "IEEE802.3af PoE Controller, Auto-Retry" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "IEEE802.3af PoE" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "TSSOP*4.4x3mm*P0.65mm*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "TPS2375-1_0_1" + (rectangle + (start -7.62 7.62) + (end 7.62 -7.62) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + ) + (symbol "TPS2375-1_1_1" + (pin passive line + (at -10.16 2.54 0) + (length 2.54) + (name "DET" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -10.16 0 0) + (length 2.54) + (name "ILIM" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -10.16 -2.54 0) + (length 2.54) + (name "CLASS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 10.16 270) + (length 2.54) + (name "VDD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 -10.16 90) + (length 2.54) + (name "VSS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin no_connect line + (at 7.62 0 180) + (length 2.54) + (hide yes) + (name "NC" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin open_collector line + (at 10.16 2.54 180) + (length 2.54) + (name "PG" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_out line + (at 10.16 -2.54 180) + (length 2.54) + (name "RTN" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Transformer:PT61017PEL" + (pin_names + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "TR" + (at 0 10.795 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "PT61017PEL" + (at 0 -10.795 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Transformer_SMD:Transformer_Ethernet_Bourns_PT61017PEL" + (at 0 -12.7 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://www.bourns.com/docs/Product-Datasheets/PT61017PEL.pdf" + (at 0 -15.24 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Ethernet LAN 10/100 Base-Tx Transformer with Center Taps" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "single port ethernet transformer poe center-tap" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "Transformer*Ethernet*Bourns*PT61017PEL*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "PT61017PEL_0_1" + (rectangle + (start -7.62 10.16) + (end 7.62 -10.16) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + (circle + (center -5.207 3.175) + (radius 0.1778) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -5.08 7.62) + (mid -4.4477 6.985) + (end -5.08 6.35) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -5.08 7.62) (xy -7.62 7.62) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -5.08 5.08) (xy -7.62 5.08) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -5.08 2.54) (xy -7.62 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -3.556 2.54) (xy -3.556 7.62) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -3.556 -2.54) (xy -3.556 -7.62) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -2.794 7.62) (xy -2.794 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -2.794 -7.62) (xy -2.794 -2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 5.08) (xy 0 5.08) (xy 0 8.89) (xy 6.35 8.89) (xy 6.35 5.08) (xy 7.62 5.08) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 2.54) (xy 1.27 2.54) (xy 1.27 3.175) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 6.985) (xy 1.27 7.62) (xy -1.27 7.62) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 5.461) (xy 5.08 5.461) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 4.699) (xy 5.08 4.699) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 5.08 6.985) (xy 5.08 7.62) (xy 7.62 7.62) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 5.08 3.175) (xy 5.08 2.54) (xy 7.62 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "PT61017PEL_1_1" + (circle + (center -5.207 -6.985) + (radius 0.1778) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -5.08 6.35) + (mid -4.4477 5.715) + (end -5.08 5.08) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -5.08 5.08) + (mid -4.4477 4.445) + (end -5.08 3.81) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -5.08 3.81) + (mid -4.4477 3.175) + (end -5.08 2.54) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -5.08 -2.54) + (mid -4.4477 -3.175) + (end -5.08 -3.81) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -5.08 -3.81) + (mid -4.4477 -4.445) + (end -5.08 -5.08) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -5.08 -5.08) + (mid -4.4477 -5.715) + (end -5.08 -6.35) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -5.08 -6.35) + (mid -4.4477 -6.985) + (end -5.08 -7.62) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -5.08 -2.54) (xy -7.62 -2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -5.08 -5.08) (xy -7.62 -5.08) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -5.08 -7.62) (xy -7.62 -7.62) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -7.62) (xy 1.27 -7.62) (xy 1.27 -6.985) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -1.27 6.35) + (mid -1.9023 6.985) + (end -1.27 7.62) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -1.27 5.08) + (mid -1.9023 5.715) + (end -1.27 6.35) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -1.27 3.81) + (mid -1.9023 4.445) + (end -1.27 5.08) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -1.27 2.54) + (mid -1.9023 3.175) + (end -1.27 3.81) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -1.27 -3.81) + (mid -1.9023 -3.175) + (end -1.27 -2.54) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -1.27 -5.08) + (mid -1.9023 -4.445) + (end -1.27 -3.81) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -1.27 -6.35) + (mid -1.9023 -5.715) + (end -1.27 -5.08) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -1.27 -7.62) + (mid -1.9023 -6.985) + (end -1.27 -6.35) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center -1.143 3.175) + (radius 0.1778) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center -1.143 -6.985) + (radius 0.1778) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 -3.175) (xy 1.27 -2.54) (xy -1.27 -2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 -4.699) (xy 5.08 -4.699) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 -5.461) (xy 5.08 -5.461) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 1.905 7.112) + (radius 0.1778) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 2.54 6.985) + (mid 1.905 6.3527) + (end 1.27 6.985) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 1.27 3.175) + (mid 1.905 3.8073) + (end 2.54 3.175) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 1.905 3.048) + (radius 0.1778) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 1.905 -3.048) + (radius 0.1778) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 2.54 -3.175) + (mid 1.905 -3.8073) + (end 1.27 -3.175) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 1.27 -6.985) + (mid 1.905 -6.3527) + (end 2.54 -6.985) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 1.905 -7.112) + (radius 0.1778) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 3.81 6.985) + (mid 3.175 6.3527) + (end 2.54 6.985) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 2.54 3.175) + (mid 3.175 3.8073) + (end 3.81 3.175) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 3.81 -3.175) + (mid 3.175 -3.8073) + (end 2.54 -3.175) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 2.54 -6.985) + (mid 3.175 -6.3527) + (end 3.81 -6.985) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 5.08 6.985) + (mid 4.445 6.3527) + (end 3.81 6.985) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 3.81 3.175) + (mid 4.445 3.8073) + (end 5.08 3.175) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 5.08 -3.175) + (mid 4.445 -3.8073) + (end 3.81 -3.175) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 3.81 -6.985) + (mid 4.445 -6.3527) + (end 5.08 -6.985) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 5.08 -3.175) (xy 5.08 -2.54) (xy 7.62 -2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 5.08 -6.985) (xy 5.08 -7.62) (xy 7.62 -7.62) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 7.62 -5.08) (xy 6.35 -5.08) (xy 6.35 -8.89) (xy 0 -8.89) (xy 0 -5.08) (xy -1.27 -5.08) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (pin passive line + (at -10.16 7.62 0) + (length 2.54) + (name "RD-" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -10.16 5.08 0) + (length 2.54) + (name "C_RD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -10.16 2.54 0) + (length 2.54) + (name "RD+" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -10.16 -2.54 0) + (length 2.54) + (name "TD-" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -10.16 -5.08 0) + (length 2.54) + (name "C_TD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -10.16 -7.62 0) + (length 2.54) + (name "TD+" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 10.16 7.62 180) + (length 2.54) + (name "RX-" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 10.16 5.08 180) + (length 2.54) + (name "C_RX" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 10.16 2.54 180) + (length 2.54) + (name "RX+" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 10.16 -2.54 180) + (length 2.54) + (name "TX-" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 10.16 -5.08 180) + (length 2.54) + (name "C_TX" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 10.16 -7.62 180) + (length 2.54) + (name "TX+" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "16" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "power:+3V3" + (power) + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+3V3" + (at 0 3.556 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+3V3\"" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "+3V3_0_1" + (polyline + (pts + (xy -0.762 1.27) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 2.54) (xy 0.762 1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 0) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "+3V3_1_1" + (pin power_in line + (at 0 0 90) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "power:GND" + (power) + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -6.35 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "GND_1_1" + (pin power_in line + (at 0 0 270) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + ) + (junction + (at 152.4 111.76) + (diameter 0) + (color 0 0 0 0) + (uuid "20a5d32b-ec02-4dc2-b44e-59e5f9953e6b") + ) + (junction + (at 139.7 137.16) + (diameter 0) + (color 0 0 0 0) + (uuid "322c4ade-1439-4a17-adc1-4c88b07e33df") + ) + (junction + (at 214.63 121.92) + (diameter 0) + (color 0 0 0 0) + (uuid "426e9c83-9204-4623-a55c-c607b4bdbf13") + ) + (junction + (at 214.63 111.76) + (diameter 0) + (color 0 0 0 0) + (uuid "759f8fe0-3987-422a-86f6-56e1a1c36de4") + ) + (junction + (at 226.06 127) + (diameter 0) + (color 0 0 0 0) + (uuid "78b724d9-af79-4943-a398-b66b765b1be0") + ) + (junction + (at 55.88 74.93) + (diameter 0) + (color 0 0 0 0) + (uuid "7a2081d7-6e2a-4b4f-8a3f-561532e8e735") + ) + (junction + (at 166.37 137.16) + (diameter 0) + (color 0 0 0 0) + (uuid "8b8f0faa-702d-44d9-93bf-cec92e2b6bbc") + ) + (junction + (at 152.4 137.16) + (diameter 0) + (color 0 0 0 0) + (uuid "95ac118d-f775-4c37-a2a2-cd3e6c069597") + ) + (junction + (at 246.38 68.58) + (diameter 0) + (color 0 0 0 0) + (uuid "9e099d5b-a945-4015-8102-4a4df27e0322") + ) + (junction + (at 226.06 111.76) + (diameter 0) + (color 0 0 0 0) + (uuid "9ed1ef92-54ad-4d0c-9c2c-45950a4b3096") + ) + (junction + (at 246.38 82.55) + (diameter 0) + (color 0 0 0 0) + (uuid "a9653517-dbfe-4256-8dbb-d99c9aa070e6") + ) + (junction + (at 139.7 111.76) + (diameter 0) + (color 0 0 0 0) + (uuid "b23a79f3-972d-4b3b-9be3-e600b020965b") + ) + (junction + (at 176.53 111.76) + (diameter 0) + (color 0 0 0 0) + (uuid "b3de773a-80c4-42df-ac2d-f42703ae8954") + ) + (junction + (at 120.65 86.36) + (diameter 0) + (color 0 0 0 0) + (uuid "b9af5b7d-6cfd-4424-aec7-faa16e120a85") + ) + (junction + (at 55.88 67.31) + (diameter 0) + (color 0 0 0 0) + (uuid "c0a13092-cf49-48c7-8961-ca136189a2c9") + ) + (junction + (at 176.53 137.16) + (diameter 0) + (color 0 0 0 0) + (uuid "c0d1d99b-6757-4de3-b91c-d7aaba6bb5c8") + ) + (junction + (at 129.54 121.92) + (diameter 0) + (color 0 0 0 0) + (uuid "c465ceb9-3f61-4880-9c46-0bec0aa78908") + ) + (junction + (at 182.88 100.33) + (diameter 0) + (color 0 0 0 0) + (uuid "f07734c2-5a86-48ea-8698-03fbe656b5f5") + ) + (junction + (at 261.62 99.06) + (diameter 0) + (color 0 0 0 0) + (uuid "f6dc47af-d7ee-48df-837b-70f1a1ada021") + ) + (junction + (at 196.85 111.76) + (diameter 0) + (color 0 0 0 0) + (uuid "f7bc173e-7d9e-4922-ae05-89a05054bbd4") + ) + (junction + (at 132.08 137.16) + (diameter 0) + (color 0 0 0 0) + (uuid "f85789b6-ce45-4ee9-9090-92b9fa42ac71") + ) + (no_connect + (at 214.63 87.63) + (uuid "c02411bb-b60a-4898-9dd0-08900850561b") + ) + (wire + (pts + (xy 107.95 59.69) (xy 127 59.69) + ) + (stroke + (width 0) + (type default) + ) + (uuid "001425a2-cf7b-4cdc-b6f1-f9cf0a9e3c21") + ) + (wire + (pts + (xy 55.88 74.93) (xy 55.88 72.39) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0387ab1c-d831-4b34-8e9d-181ec1695a7e") + ) + (wire + (pts + (xy 196.85 100.33) (xy 196.85 95.25) + ) + (stroke + (width 0) + (type default) + ) + (uuid "05181a77-f9b3-46de-b0db-59f726001221") + ) + (wire + (pts + (xy 93.98 121.92) (xy 93.98 137.16) + ) + (stroke + (width 0) + (type default) + ) + (uuid "059f6068-8769-4a3a-a0bc-c56944ec03fe") + ) + (wire + (pts + (xy 226.06 111.76) (xy 233.68 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "08e074d4-fe0b-4fe7-b552-6635474a6591") + ) + (wire + (pts + (xy 55.88 72.39) (xy 53.34 72.39) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0ee7d31b-36f5-4a9e-a83e-d5bbcf518f92") + ) + (wire + (pts + (xy 120.65 86.36) (xy 120.65 88.9) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0faf840a-e2e8-4edb-8ed8-8a8d632db154") + ) + (wire + (pts + (xy 82.55 130.81) (xy 101.6 130.81) + ) + (stroke + (width 0) + (type default) + ) + (uuid "12ca0559-531b-433e-a4bc-17c923c992ba") + ) + (wire + (pts + (xy 85.09 113.03) (xy 101.6 113.03) + ) + (stroke + (width 0) + (type default) + ) + (uuid "149e529d-db4e-4a56-ab73-6df6c4051732") + ) + (wire + (pts + (xy 271.78 109.22) (xy 274.32 109.22) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1764bd04-16c4-40d6-a855-9fe008fc6d52") + ) + (wire + (pts + (xy 53.34 64.77) (xy 55.88 64.77) + ) + (stroke + (width 0) + (type default) + ) + (uuid "18c23236-9b75-4a85-83af-d83391856c5c") + ) + (wire + (pts + (xy 170.18 62.23) (xy 170.18 57.15) + ) + (stroke + (width 0) + (type default) + ) + (uuid "19a74a8c-3790-4eb2-988a-475eccb49f61") + ) + (wire + (pts + (xy 237.49 69.85) (xy 237.49 68.58) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1a53b5e4-e3a5-4688-812c-507bb306f28d") + ) + (wire + (pts + (xy 214.63 46.99) (xy 215.9 46.99) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1b033b44-4495-4fe2-a28e-1e6f3ecb4ef9") + ) + (wire + (pts + (xy 274.32 99.06) (xy 261.62 99.06) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1b805645-821c-4f14-b813-7993a1dc2d5f") + ) + (wire + (pts + (xy 162.56 57.15) (xy 162.56 59.69) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1ddfc1a6-ca0a-4cd8-b00e-c97ae8784202") + ) + (wire + (pts + (xy 214.63 72.39) (xy 215.9 72.39) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1ffa00c2-ff11-463a-94ad-6e53fa678a37") + ) + (wire + (pts + (xy 72.39 62.23) (xy 87.63 62.23) + ) + (stroke + (width 0) + (type default) + ) + (uuid "20a31e16-62c6-425e-a338-bf84dfcd0fa4") + ) + (wire + (pts + (xy 64.77 156.21) (xy 101.6 156.21) + ) + (stroke + (width 0) + (type default) + ) + (uuid "20f50310-1e3c-4a7a-ab3c-e07aec17c983") + ) + (wire + (pts + (xy 168.91 90.17) (xy 168.91 100.33) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2144d20f-4b71-44d0-bd55-c0b25144f910") + ) + (wire + (pts + (xy 55.88 67.31) (xy 55.88 64.77) + ) + (stroke + (width 0) + (type default) + ) + (uuid "25c59b86-5849-487e-acc1-29ed0529ceae") + ) + (wire + (pts + (xy 214.63 52.07) (xy 215.9 52.07) + ) + (stroke + (width 0) + (type default) + ) + (uuid "268cdcd8-7752-4bac-bef8-7f8f0aba3b05") + ) + (wire + (pts + (xy 246.38 77.47) (xy 246.38 82.55) + ) + (stroke + (width 0) + (type default) + ) + (uuid "269ddd2d-0425-49ac-a6df-cfe6dfcadd86") + ) + (wire + (pts + (xy 166.37 128.27) (xy 166.37 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "274a8e0d-6532-43a4-80b6-2443593fe2a6") + ) + (wire + (pts + (xy 101.6 113.03) (xy 101.6 114.3) + ) + (stroke + (width 0) + (type default) + ) + (uuid "28c09656-10f1-4fbb-83f7-57606711275d") + ) + (wire + (pts + (xy 109.22 121.92) (xy 129.54 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2a66763f-a670-4796-9621-60aaa55d1512") + ) + (wire + (pts + (xy 55.88 74.93) (xy 64.77 74.93) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2c351fd0-5006-4cf8-8d1d-3b1104d55aba") + ) + (wire + (pts + (xy 53.34 62.23) (xy 69.85 62.23) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2ddba869-8d87-4434-86fe-d3bbbf621aa4") + ) + (wire + (pts + (xy 261.62 96.52) (xy 261.62 99.06) + ) + (stroke + (width 0) + (type default) + ) + (uuid "30a970dd-fcc7-4934-b27c-919a150b4095") + ) + (wire + (pts + (xy 246.38 105.41) (xy 223.52 105.41) + ) + (stroke + (width 0) + (type default) + ) + (uuid "30b82fb5-b109-4243-9b2a-47fa63f8f79b") + ) + (wire + (pts + (xy 69.85 62.23) (xy 69.85 67.31) + ) + (stroke + (width 0) + (type default) + ) + (uuid "346afca1-9aa8-4ece-bdbe-fbb7356f7bec") + ) + (wire + (pts + (xy 214.63 59.69) (xy 215.9 59.69) + ) + (stroke + (width 0) + (type default) + ) + (uuid "35b19490-cf05-45ed-82f7-1b0cfeacf394") + ) + (wire + (pts + (xy 72.39 69.85) (xy 72.39 72.39) + ) + (stroke + (width 0) + (type default) + ) + (uuid "35cade91-06ea-4c7f-b3d8-2ab6f2e2c33a") + ) + (wire + (pts + (xy 196.85 137.16) (xy 196.85 134.62) + ) + (stroke + (width 0) + (type default) + ) + (uuid "35ed4693-0012-4dc9-b196-d040c862bcbc") + ) + (wire + (pts + (xy 165.1 49.53) (xy 179.07 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "36a15c85-4c18-4b8d-b50f-da1e48dd2905") + ) + (wire + (pts + (xy 165.1 72.39) (xy 165.1 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3aff1f52-5491-4ab2-9d48-df147d705813") + ) + (wire + (pts + (xy 251.46 109.22) (xy 246.38 109.22) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3b374fb8-165a-4943-8fae-2cfa9568cb21") + ) + (wire + (pts + (xy 132.08 137.16) (xy 139.7 137.16) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3d2020c6-3d99-4e3c-ab76-a8dca1d64cfa") + ) + (wire + (pts + (xy 55.88 67.31) (xy 67.31 67.31) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3dfdd18c-7708-495b-b956-713919dc1686") + ) + (wire + (pts + (xy 152.4 111.76) (xy 152.4 120.65) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3f2c114e-8d59-4b22-bbe9-ffee853384bf") + ) + (wire + (pts + (xy 274.32 99.06) (xy 274.32 100.33) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3f7116cc-8386-4bc6-afc1-12a961fb619b") + ) + (wire + (pts + (xy 176.53 121.92) (xy 186.69 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "42fa0aad-bcec-4276-a419-0ed3bb36b283") + ) + (wire + (pts + (xy 107.95 72.39) (xy 165.1 72.39) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4bea6d70-8a29-4d6a-96cd-47e7b4cef44b") + ) + (wire + (pts + (xy 176.53 127) (xy 186.69 127) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4cdbca05-ad7b-4f06-b97f-b03066b2129e") + ) + (wire + (pts + (xy 167.64 52.07) (xy 179.07 52.07) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4fcbfdf0-ae10-4d17-a5f7-9935d73287dd") + ) + (wire + (pts + (xy 101.6 156.21) (xy 101.6 154.94) + ) + (stroke + (width 0) + (type default) + ) + (uuid "503e5940-0f17-4928-b54a-850f980d35c0") + ) + (wire + (pts + (xy 87.63 59.69) (xy 82.55 59.69) + ) + (stroke + (width 0) + (type default) + ) + (uuid "50bb1a10-d042-4a50-90cf-4675bbac6978") + ) + (wire + (pts + (xy 168.91 80.01) (xy 179.07 80.01) + ) + (stroke + (width 0) + (type default) + ) + (uuid "51074387-93c5-496b-83e5-82f27ecb7d9d") + ) + (wire + (pts + (xy 207.01 127) (xy 226.06 127) + ) + (stroke + (width 0) + (type default) + ) + (uuid "52ed8b29-627d-4406-b97b-1deb47b801c7") + ) + (wire + (pts + (xy 246.38 82.55) (xy 246.38 85.09) + ) + (stroke + (width 0) + (type default) + ) + (uuid "57deac11-d387-41bf-9003-c97ae5bd7a03") + ) + (wire + (pts + (xy 214.63 111.76) (xy 226.06 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5940b328-2856-49b8-9f5c-dd73f9afd5a4") + ) + (wire + (pts + (xy 214.63 49.53) (xy 215.9 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5a4a8e9f-d45b-48df-bd30-1e22bd662624") + ) + (wire + (pts + (xy 166.37 135.89) (xy 166.37 137.16) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5e51af26-9e32-44a6-8613-0c0696248492") + ) + (wire + (pts + (xy 152.4 111.76) (xy 176.53 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "60c017d0-1d64-40e2-9a88-ea4d166c1a7d") + ) + (wire + (pts + (xy 53.34 59.69) (xy 72.39 59.69) + ) + (stroke + (width 0) + (type default) + ) + (uuid "60c61406-7ec9-4498-aa21-4e8462b7f4be") + ) + (wire + (pts + (xy 207.01 121.92) (xy 214.63 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "61054c76-e771-4e30-81f4-e4a80a355163") + ) + (wire + (pts + (xy 82.55 59.69) (xy 82.55 130.81) + ) + (stroke + (width 0) + (type default) + ) + (uuid "61d23469-6c9c-40f0-b3a4-45ed8cbe6186") + ) + (wire + (pts + (xy 214.63 120.65) (xy 214.63 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "62541b09-1d5c-484e-8e98-03e55f1ff60e") + ) + (wire + (pts + (xy 214.63 111.76) (xy 214.63 113.03) + ) + (stroke + (width 0) + (type default) + ) + (uuid "630eb93a-46ee-498f-8e6b-ddba4eae1175") + ) + (wire + (pts + (xy 87.63 69.85) (xy 85.09 69.85) + ) + (stroke + (width 0) + (type default) + ) + (uuid "691cbefc-c23e-474e-b60e-b4be586fdea8") + ) + (wire + (pts + (xy 226.06 120.65) (xy 226.06 127) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6c6227cf-fffa-45ca-ae23-3929ac1f4369") + ) + (wire + (pts + (xy 176.53 120.65) (xy 176.53 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6e013b39-1919-48c3-b554-33bd826d1121") + ) + (wire + (pts + (xy 107.95 57.15) (xy 162.56 57.15) + ) + (stroke + (width 0) + (type default) + ) + (uuid "71f8f924-cbb7-4526-85f8-54bd20b853af") + ) + (wire + (pts + (xy 226.06 127) (xy 233.68 127) + ) + (stroke + (width 0) + (type default) + ) + (uuid "74c6464b-9105-4044-989a-d9d66e3e11b3") + ) + (wire + (pts + (xy 101.6 138.43) (xy 101.6 139.7) + ) + (stroke + (width 0) + (type default) + ) + (uuid "78f51824-4574-4e87-b7a0-a6915b34cb5d") + ) + (wire + (pts + (xy 114.3 86.36) (xy 120.65 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7a6078c6-beab-4eaa-8426-9fde194407c1") + ) + (wire + (pts + (xy 72.39 72.39) (xy 87.63 72.39) + ) + (stroke + (width 0) + (type default) + ) + (uuid "806c562b-458d-47c4-a0af-594faab936d8") + ) + (wire + (pts + (xy 196.85 111.76) (xy 214.63 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "84270e14-267f-4233-8d9e-2a355195dafc") + ) + (wire + (pts + (xy 107.95 62.23) (xy 170.18 62.23) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8743342d-5360-4b60-b32f-fef4b8d30701") + ) + (wire + (pts + (xy 127 83.82) (xy 127 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "880b78a1-5bc7-46b7-b5e5-4aec522c6b0f") + ) + (wire + (pts + (xy 261.62 116.84) (xy 261.62 119.38) + ) + (stroke + (width 0) + (type default) + ) + (uuid "88617c37-1cad-4a2e-b417-8f087922e64e") + ) + (wire + (pts + (xy 214.63 82.55) (xy 246.38 82.55) + ) + (stroke + (width 0) + (type default) + ) + (uuid "89852d74-9924-458e-bd4e-9cef0ceca60e") + ) + (wire + (pts + (xy 72.39 59.69) (xy 72.39 62.23) + ) + (stroke + (width 0) + (type default) + ) + (uuid "89ba6387-ade2-4fc3-b6ab-fcaa8217679c") + ) + (wire + (pts + (xy 176.53 135.89) (xy 176.53 137.16) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8c9f004c-432e-4bf4-99f2-250aba2f3a59") + ) + (wire + (pts + (xy 166.37 137.16) (xy 176.53 137.16) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8f25ebcf-148f-4788-aa8a-b347ed1f85d6") + ) + (wire + (pts + (xy 114.3 76.2) (xy 114.3 69.85) + ) + (stroke + (width 0) + (type default) + ) + (uuid "92a9736e-628c-4185-b7b9-b6248777f781") + ) + (wire + (pts + (xy 139.7 111.76) (xy 139.7 120.65) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9328b888-4621-4814-aa98-ce680a8f6ace") + ) + (wire + (pts + (xy 246.38 82.55) (xy 266.7 82.55) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9575f8d0-34d1-4331-be4a-7818ee9648a3") + ) + (wire + (pts + (xy 67.31 138.43) (xy 101.6 138.43) + ) + (stroke + (width 0) + (type default) + ) + (uuid "95cb65bb-feb7-40f0-989e-a64765d44a89") + ) + (wire + (pts + (xy 214.63 57.15) (xy 215.9 57.15) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9adcaa42-91b9-4657-8634-084350108748") + ) + (wire + (pts + (xy 139.7 137.16) (xy 152.4 137.16) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9d335c94-3f9e-4de5-998a-87e8d50d05e7") + ) + (wire + (pts + (xy 176.53 111.76) (xy 196.85 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9da89ef3-f324-427a-9b3e-5346c986c1b7") + ) + (wire + (pts + (xy 101.6 130.81) (xy 101.6 129.54) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9de28071-2f83-43d5-aaa1-b4d9ae07a1dc") + ) + (wire + (pts + (xy 214.63 121.92) (xy 233.68 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9f03f709-f378-4ffc-9070-16dbd1c339df") + ) + (wire + (pts + (xy 93.98 137.16) (xy 132.08 137.16) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a4c7a47f-4468-4e65-940f-d727978904e2") + ) + (wire + (pts + (xy 214.63 62.23) (xy 215.9 62.23) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a6018286-012e-4058-b65c-74479dc8920e") + ) + (wire + (pts + (xy 214.63 74.93) (xy 215.9 74.93) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a86bfc74-2e43-4650-ae85-2ebc8239b17c") + ) + (wire + (pts + (xy 85.09 69.85) (xy 85.09 113.03) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a9ad3a8e-e1ca-4943-95a5-98142d478d8d") + ) + (wire + (pts + (xy 223.52 105.41) (xy 223.52 90.17) + ) + (stroke + (width 0) + (type default) + ) + (uuid "aa3417a1-1c82-43a8-be56-63f596609e53") + ) + (wire + (pts + (xy 168.91 82.55) (xy 168.91 80.01) + ) + (stroke + (width 0) + (type default) + ) + (uuid "abfb912b-9117-45d5-9686-d27d96bbd2aa") + ) + (wire + (pts + (xy 182.88 100.33) (xy 182.88 102.87) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b04e2c59-f170-4668-b4ea-8606c8dc7bd6") + ) + (wire + (pts + (xy 53.34 69.85) (xy 72.39 69.85) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b093af77-3822-4f21-be42-a46438ffa1e7") + ) + (wire + (pts + (xy 53.34 57.15) (xy 87.63 57.15) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b15094d9-eeac-41e1-9e84-8ce84b0aab41") + ) + (wire + (pts + (xy 223.52 90.17) (xy 214.63 90.17) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b3ad56f0-8a9d-471a-9383-5dccebbadf27") + ) + (wire + (pts + (xy 226.06 111.76) (xy 226.06 113.03) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b3b05ae8-c6cc-4e79-92f8-8dd80ccf9960") + ) + (wire + (pts + (xy 129.54 147.32) (xy 129.54 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b48216e5-121a-464c-bdf0-c85d717cd930") + ) + (wire + (pts + (xy 93.98 157.48) (xy 132.08 157.48) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b86d485b-c6bb-4936-9819-03bc8b3290ac") + ) + (wire + (pts + (xy 261.62 99.06) (xy 261.62 101.6) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b8e8b8aa-986d-40f4-a71d-dc05eca07969") + ) + (wire + (pts + (xy 64.77 74.93) (xy 64.77 156.21) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b9155bf8-0591-4757-a0d5-2acc8b344f22") + ) + (wire + (pts + (xy 196.85 111.76) (xy 196.85 114.3) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b9efe9b0-59f3-4335-86f2-164a17f8b3cc") + ) + (wire + (pts + (xy 162.56 59.69) (xy 179.07 59.69) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b9ff9d56-565b-4172-b37c-fc9b484e67b1") + ) + (wire + (pts + (xy 246.38 92.71) (xy 246.38 95.25) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bb1a6e8c-aed8-4dab-b3b1-1ad7e8207fd5") + ) + (wire + (pts + (xy 170.18 57.15) (xy 179.07 57.15) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bc8eb176-cd47-4622-bbae-089c77f22498") + ) + (wire + (pts + (xy 237.49 80.01) (xy 237.49 77.47) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bd8b46d3-de28-4417-8b8a-dd494e74bce3") + ) + (wire + (pts + (xy 246.38 109.22) (xy 246.38 105.41) + ) + (stroke + (width 0) + (type default) + ) + (uuid "be75c457-a41a-4e38-a92a-e352e150e408") + ) + (wire + (pts + (xy 139.7 111.76) (xy 152.4 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c3c32227-4c90-4133-b3db-f39251c8e9fa") + ) + (wire + (pts + (xy 109.22 147.32) (xy 129.54 147.32) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c4470489-6eb2-49f8-8913-c4550d4966ae") + ) + (wire + (pts + (xy 53.34 67.31) (xy 55.88 67.31) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c49eb036-8bfd-4170-96a7-757fe7541f7b") + ) + (wire + (pts + (xy 114.3 83.82) (xy 114.3 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c50bde7c-280d-4bf7-82a6-5eb6d1813a74") + ) + (wire + (pts + (xy 139.7 128.27) (xy 139.7 137.16) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ca52c7ac-3d21-42f5-9740-4869a287c3e3") + ) + (wire + (pts + (xy 93.98 147.32) (xy 93.98 157.48) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cf293f5a-8511-4d01-b0cd-e66438b03453") + ) + (wire + (pts + (xy 69.85 67.31) (xy 87.63 67.31) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d0da8b73-e1da-425d-8c52-7236f41d28e8") + ) + (wire + (pts + (xy 214.63 67.31) (xy 215.9 67.31) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d3a30c70-0226-4ae5-9f70-ef3b2215c246") + ) + (wire + (pts + (xy 246.38 67.31) (xy 246.38 68.58) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d670d29c-e7b8-420b-a3fd-af36113322b7") + ) + (wire + (pts + (xy 127 59.69) (xy 127 76.2) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d7c207ef-2eb2-43a3-a54b-84660b1e719e") + ) + (wire + (pts + (xy 182.88 100.33) (xy 196.85 100.33) + ) + (stroke + (width 0) + (type default) + ) + (uuid "daa8e7af-35d2-40d4-9e4a-51f85eb04dac") + ) + (wire + (pts + (xy 237.49 68.58) (xy 246.38 68.58) + ) + (stroke + (width 0) + (type default) + ) + (uuid "dae3aba8-1c72-478e-8d85-aa6fbbf0d045") + ) + (wire + (pts + (xy 176.53 111.76) (xy 176.53 113.03) + ) + (stroke + (width 0) + (type default) + ) + (uuid "dc0333ff-f6b2-4752-9601-0ea37c89e366") + ) + (wire + (pts + (xy 152.4 137.16) (xy 166.37 137.16) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ddb4bd35-2915-497a-989a-c47a060d10f3") + ) + (wire + (pts + (xy 274.32 109.22) (xy 274.32 107.95) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e01c857a-b5cb-473d-acdc-4cc6a1ccc7fa") + ) + (wire + (pts + (xy 129.54 121.92) (xy 129.54 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e1be14a7-e3e6-409f-bdae-70e505f3f392") + ) + (wire + (pts + (xy 176.53 128.27) (xy 176.53 127) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e25bfe69-7e77-4c19-9ab0-5a5da8ff2e44") + ) + (wire + (pts + (xy 152.4 128.27) (xy 152.4 137.16) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e4762afb-1ab2-4849-8497-63e98cbec327") + ) + (wire + (pts + (xy 107.95 67.31) (xy 167.64 67.31) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e499137b-24fc-4a57-9cb1-6471eb0cfbd7") + ) + (wire + (pts + (xy 129.54 111.76) (xy 139.7 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e86f5ad6-45ca-4f68-9ccd-5ea0f652fd6b") + ) + (wire + (pts + (xy 176.53 137.16) (xy 196.85 137.16) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e918c0de-9497-4438-9a99-934b460127a2") + ) + (wire + (pts + (xy 168.91 100.33) (xy 182.88 100.33) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ee955060-6bfb-4269-937b-4e86269767bd") + ) + (wire + (pts + (xy 67.31 67.31) (xy 67.31 138.43) + ) + (stroke + (width 0) + (type default) + ) + (uuid "eedc7379-1c4c-4973-b211-20948448a88e") + ) + (wire + (pts + (xy 167.64 67.31) (xy 167.64 52.07) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f034d978-69c5-49d8-8ca8-2421cca80014") + ) + (wire + (pts + (xy 166.37 124.46) (xy 186.69 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f3a839f7-4dec-4007-9a66-f58ea93480c2") + ) + (wire + (pts + (xy 127 86.36) (xy 120.65 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f868911e-e9b9-4b52-a3d8-ee22a629ccc7") + ) + (wire + (pts + (xy 214.63 80.01) (xy 237.49 80.01) + ) + (stroke + (width 0) + (type default) + ) + (uuid "fa0cd6f8-d235-4000-bd83-1e1e50fc95c3") + ) + (wire + (pts + (xy 214.63 64.77) (xy 215.9 64.77) + ) + (stroke + (width 0) + (type default) + ) + (uuid "fc2b45f9-3629-4161-b0e9-98ef94a8a633") + ) + (wire + (pts + (xy 246.38 68.58) (xy 246.38 69.85) + ) + (stroke + (width 0) + (type default) + ) + (uuid "fc59d54f-bea3-4450-aeda-7cc839ec6b8a") + ) + (wire + (pts + (xy 53.34 74.93) (xy 55.88 74.93) + ) + (stroke + (width 0) + (type default) + ) + (uuid "fc8328f4-3919-49a0-81fc-1dbb1fca7975") + ) + (wire + (pts + (xy 132.08 157.48) (xy 132.08 137.16) + ) + (stroke + (width 0) + (type default) + ) + (uuid "feefe386-a9c8-4d44-93ba-33ddaeb3525c") + ) + (wire + (pts + (xy 114.3 69.85) (xy 107.95 69.85) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ff9c2036-8ba2-4d17-b6fa-473fedcc94eb") + ) + (hierarchical_label "RMII_REF_CLK" + (shape output) + (at 215.9 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "00af6822-d677-4a53-8f63-b9d777863d55") + ) + (hierarchical_label "~{PHY_RST}" + (shape input) + (at 266.7 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "01a71140-3105-4797-8f2e-71c609da3dd1") + ) + (hierarchical_label "RMII_TXEN" + (shape input) + (at 215.9 46.99 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "01a88cde-342a-4138-9556-3ac636d33e54") + ) + (hierarchical_label "MDC" + (shape input) + (at 215.9 74.93 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "057de9a6-809c-426f-92b4-ee5e67077ef5") + ) + (hierarchical_label "RMII_RXER" + (shape output) + (at 215.9 67.31 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "0b994f5e-1104-41bc-b95d-b2cd80c2b954") + ) (hierarchical_label "RJ45_7" (shape bidirectional) - (at 50.8 91.44 180) + (at 53.34 72.39 180) (effects (font (size 1.27 1.27) @@ -19,9 +4446,31 @@ ) (uuid "24344bbc-b6f0-4c3f-aa44-ad58f3c24866") ) + (hierarchical_label "RMII_TXD0" + (shape input) + (at 215.9 49.53 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "2d25c9a7-da35-4273-b444-d1a4af5db3cf") + ) + (hierarchical_label "MDIO" + (shape bidirectional) + (at 215.9 72.39 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "38ce9a71-3c54-423f-8361-68df1c791572") + ) (hierarchical_label "POE_VIN" (shape output) - (at 241.3 101.6 0) + (at 233.68 111.76 0) (effects (font (size 1.27 1.27) @@ -32,7 +4481,7 @@ ) (hierarchical_label "RJ45_LED1" (shape output) - (at 50.8 96.52 180) + (at 53.34 77.47 180) (effects (font (size 1.27 1.27) @@ -41,9 +4490,20 @@ ) (uuid "538ba01d-e48f-40ae-b7f6-8f1e631445d5") ) + (hierarchical_label "RMII_TXD1" + (shape bidirectional) + (at 215.9 52.07 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "61401b04-5c48-40de-906c-c43991ceaf06") + ) (hierarchical_label "RJ45_2" (shape bidirectional) - (at 50.8 78.74 180) + (at 53.34 59.69 180) (effects (font (size 1.27 1.27) @@ -54,7 +4514,7 @@ ) (hierarchical_label "RJ45_3" (shape bidirectional) - (at 50.8 81.28 180) + (at 53.34 62.23 180) (effects (font (size 1.27 1.27) @@ -65,7 +4525,7 @@ ) (hierarchical_label "POE_GND" (shape output) - (at 241.3 104.14 0) + (at 233.68 121.92 0) (effects (font (size 1.27 1.27) @@ -76,7 +4536,7 @@ ) (hierarchical_label "RJ45_1" (shape bidirectional) - (at 50.8 76.2 180) + (at 53.34 57.15 180) (effects (font (size 1.27 1.27) @@ -87,7 +4547,7 @@ ) (hierarchical_label "RJ45_5" (shape bidirectional) - (at 50.8 86.36 180) + (at 53.34 67.31 180) (effects (font (size 1.27 1.27) @@ -96,9 +4556,20 @@ ) (uuid "9217d991-e2f7-4369-acc1-81b435782ac4") ) + (hierarchical_label "RMII_CRS_DV" + (shape output) + (at 215.9 62.23 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "a330dba7-136a-4fcc-be96-ae15e2d135ac") + ) (hierarchical_label "RJ45_4" (shape bidirectional) - (at 50.8 83.82 180) + (at 53.34 64.77 180) (effects (font (size 1.27 1.27) @@ -107,9 +4578,31 @@ ) (uuid "a534ea0c-688b-4367-96c2-75bae174303d") ) + (hierarchical_label "RMII_RXD1" + (shape output) + (at 215.9 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "a9334cbf-cac8-4948-92a0-08181338bac8") + ) + (hierarchical_label "RMII_RXD0" + (shape output) + (at 215.9 57.15 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "ad112d6d-2d68-4585-810f-d0ddd37d7f74") + ) (hierarchical_label "RJ45_8" (shape bidirectional) - (at 50.8 93.98 180) + (at 53.34 74.93 180) (effects (font (size 1.27 1.27) @@ -118,26 +4611,1966 @@ ) (uuid "c5bd6cbc-0a40-4383-bdb8-66c43c369248") ) - (hierarchical_label "RJ45_6" - (shape bidirectional) - (at 50.8 88.9 180) + (hierarchical_label "POE_PG" + (shape output) + (at 233.68 127 0) (effects (font (size 1.27 1.27) ) - (justify right) + (justify left) ) - (uuid "fadfaae1-425d-4347-9798-f729361c2cb0") + (uuid "ed4764d7-7202-45b9-b999-79fe184b1923") ) - (hierarchical_label "RJ45_LED2" - (shape output) - (at 50.8 99.06 180) + (hierarchical_label "RJ45_6" + (shape bidirectional) + (at 53.34 69.85 180) (effects (font (size 1.27 1.27) ) (justify right) ) - (uuid "fe4392a0-b5ff-4466-8f04-5b1917eec368") + (uuid "fadfaae1-425d-4347-9798-f729361c2cb0") + ) + (symbol + (lib_id "Device:C") + (at 139.7 124.46 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "09832fd1-9faa-43bf-ad3c-94643849a9b1") + (property "Reference" "C7" + (at 143.51 123.1899 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "0.1uF" + (at 143.51 125.7299 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 140.6652 128.27 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 139.7 124.46 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 139.7 124.46 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "f4ddeea3-23ca-482c-bec5-42b054916e46") + ) + (pin "2" + (uuid "09a3999a-b3d3-4607-9d64-9b052c377dbc") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "C7") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 214.63 116.84 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "0b65e9ed-af7d-404d-961c-5e3e722e4b20") + (property "Reference" "R15" + (at 217.17 115.5699 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "100k" + (at 217.17 118.1099 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 212.852 116.84 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 214.63 116.84 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 214.63 116.84 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "39918077-3408-4a8c-9c6b-7254059ce7ab") + ) + (pin "1" + (uuid "3f34a4ca-bd01-4ba4-9bdd-2100ce11fc0f") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "R15") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Transformer:PT61017PEL") + (at 97.79 64.77 0) + (mirror y) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "17c84f26-f13f-4b18-8bd8-b9b7912b8fa0") + (property "Reference" "TR1" + (at 97.79 49.53 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "PT61017PEL" + (at 97.79 52.07 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Transformer_SMD:Transformer_Ethernet_Bourns_PT61017PEL" + (at 97.79 77.47 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://www.bourns.com/docs/Product-Datasheets/PT61017PEL.pdf" + (at 97.79 80.01 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Ethernet LAN 10/100 Base-Tx Transformer with Center Taps" + (at 97.79 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "16" + (uuid "6902e1b9-a505-40d2-8392-09f5d1379d08") + ) + (pin "2" + (uuid "8bc9255e-10d0-43c5-bd74-205bc981c08e") + ) + (pin "10" + (uuid "9f1bcbba-eaeb-4676-bc7f-6441057b4171") + ) + (pin "14" + (uuid "09974c30-2c77-4e9e-aa24-0722651c4712") + ) + (pin "11" + (uuid "7564c387-0fb9-4c88-bda2-5d257e360688") + ) + (pin "15" + (uuid "5e78ad1c-4085-4f2c-b2be-07bc3aab786b") + ) + (pin "3" + (uuid "d68acf3d-6d2b-4d9f-b9e5-f2adef651d1b") + ) + (pin "6" + (uuid "57ca2c1f-f6f9-40bb-9420-0eac1930b81c") + ) + (pin "7" + (uuid "ac83a0e0-d60f-4e1a-b78e-6af7194c68d7") + ) + (pin "8" + (uuid "47c2098c-1897-4855-ac70-c1abb1e97576") + ) + (pin "9" + (uuid "9531cc96-e053-4730-954c-63ec7ea5ab3a") + ) + (pin "1" + (uuid "28e633be-c515-4871-b614-f6f0f8bc77ea") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "TR1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Regulator_Controller:TPS2375-1") + (at 196.85 124.46 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "1f116afb-a0dc-442e-a85a-f0ff5431383f") + (property "Reference" "U2" + (at 198.9933 111.76 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "TPS2375-1" + (at 198.9933 114.3 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Package_SO:TSSOP-8_4.4x3mm_P0.65mm" + (at 196.85 144.78 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://www.ti.com/lit/gpn/tps2375-1" + (at 196.85 104.14 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "IEEE802.3af PoE Controller, Auto-Retry" + (at 196.85 124.46 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "5" + (uuid "18600904-56f1-4522-af0f-d789a585c856") + ) + (pin "7" + (uuid "52dc1f21-571c-4cec-adbc-91166c59c48e") + ) + (pin "6" + (uuid "df1190d9-2b5b-4e51-9653-8d7c587e0b73") + ) + (pin "3" + (uuid "b5f409bd-0ca4-44d3-813f-eddb61602edf") + ) + (pin "2" + (uuid "7e9f972e-baff-4a47-8591-786aa81a8291") + ) + (pin "1" + (uuid "d8ffac93-5c51-4883-9b24-d4151f9c312d") + ) + (pin "4" + (uuid "990c725a-5ea9-4020-b74f-68a6a115159f") + ) + (pin "8" + (uuid "9b2bac92-6f49-4c34-a2ab-949184e76fa1") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "U2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Oscillator:ECS-2520MV-xxx-xx") + (at 261.62 109.22 0) + (mirror y) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "28b5e8dd-7484-42e4-9329-03881eadc79c") + (property "Reference" "Y3" + (at 273.558 115.316 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "ECS-2520MV-xxx-xx" + (at 273.558 117.856 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Oscillator:Oscillator_SMD_ECS_2520MV-xxx-xx-4Pin_2.5x2.0mm" + (at 250.19 118.11 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://www.ecsxtal.com/store/pdf/ECS-2520MV.pdf" + (at 266.065 106.045 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "HCMOS Crystal Clock Oscillator, 2.5x2.0 mm SMD" + (at 261.62 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "MPN" "ECS-2520MV-500-BN-TR" + (at 261.62 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Manufacturer" "ECS Inc." + (at 261.62 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "4" + (uuid "272785d5-fca1-4d1a-91bc-276de93c724e") + ) + (pin "1" + (uuid "3a9a76ec-ce99-4f39-a60b-f3f8c0569d96") + ) + (pin "3" + (uuid "a2ac1cce-06e8-4e52-a8ef-327f9cf5ed4b") + ) + (pin "2" + (uuid "20b3c457-0b53-4eaa-8e91-4bf3ec6310c7") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "Y3") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 176.53 132.08 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "359dab41-efb3-402f-8c2a-2a515d758d9e") + (property "Reference" "R12" + (at 179.07 130.8099 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "357" + (at 179.07 133.3499 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 174.752 132.08 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 176.53 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 176.53 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "7602c6ce-fb16-41b8-be0d-74f70ae1fe29") + ) + (pin "1" + (uuid "92d22809-f07d-41cc-b06f-5159b2ef884c") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "R12") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 237.49 73.66 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "38572243-b301-42cb-9be7-0d721cdc00e4") + (property "Reference" "R18" + (at 240.03 72.3899 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "1k" + (at 240.03 74.9299 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 235.712 73.66 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 237.49 73.66 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 237.49 73.66 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "118ce2ef-d14f-469d-b38c-c343fcc4ed3d") + ) + (pin "2" + (uuid "5bfc8e25-4b88-4bba-bab6-f6c0b2c60855") + ) + (instances + (project "iot-contact" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "R18") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 182.88 102.87 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "4463c71b-ff4d-41a2-b467-8f60bd82a1a3") + (property "Reference" "#PWR020" + (at 182.88 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 182.88 107.95 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 182.88 102.87 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 182.88 102.87 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 182.88 102.87 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "5cd6d40a-2b17-4dc8-a485-19a9521dbe79") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "#PWR020") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+3V3") + (at 246.38 67.31 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "452e0bea-8b52-499f-a0c8-010d83c6a30d") + (property "Reference" "#PWR021" + (at 246.38 71.12 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+3V3" + (at 246.38 62.23 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 246.38 67.31 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 246.38 67.31 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+3V3\"" + (at 246.38 67.31 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "5a197264-22cc-4e96-8744-29e1d834b1b8") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "#PWR021") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 274.32 104.14 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "486b16b8-db26-4a0c-bfd0-f00e49922f99") + (property "Reference" "R19" + (at 276.86 102.8699 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "10k" + (at 276.86 105.4099 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 272.542 104.14 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 274.32 104.14 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 274.32 104.14 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "d6a71fdd-93a7-4dac-b698-5f2d86e28215") + ) + (pin "2" + (uuid "08866fec-d46f-451d-b1c5-32f4e2e35218") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "R19") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Diode:SMAJ58A") + (at 152.4 124.46 270) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "51605eb4-ff81-4a2e-aa8f-37d8b3c9ca16") + (property "Reference" "D6" + (at 154.94 123.1899 90) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "SMAJ58A" + (at 154.94 125.7299 90) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Diode_SMD:D_SMA" + (at 147.32 124.46 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://www.littelfuse.com/media?resourcetype=datasheets&itemid=75e32973-b177-4ee3-a0ff-cedaf1abdb93&filename=smaj-datasheet" + (at 152.4 123.19 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "400W unidirectional Transient Voltage Suppressor, 58.0Vr, SMA(DO-214AC)" + (at 152.4 124.46 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "424995d1-588f-4226-aa56-09282556d3d2") + ) + (pin "1" + (uuid "418e4a44-56cb-4c17-8cf5-b0b55aa12f67") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "D6") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 246.38 88.9 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "5293c53c-ba60-465c-93ee-0fb50470e577") + (property "Reference" "C11" + (at 250.19 87.6299 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "10uF" + (at 250.19 90.1699 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 247.3452 92.71 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 246.38 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 246.38 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "b9b1dfec-9821-43a7-80e6-3533b82746cc") + ) + (pin "1" + (uuid "fbc95a2b-6e71-4cd2-9bd9-4a95e7144c03") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "C11") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 168.91 86.36 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "60e00fb0-3b07-43de-b505-714f61859e97") + (property "Reference" "R16" + (at 171.45 85.0899 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "6.49k" + (at 171.45 87.6299 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 167.132 86.36 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 168.91 86.36 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 168.91 86.36 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "edaffca1-3784-406f-92cc-f0f25c3ad214") + ) + (pin "2" + (uuid "67cd4e05-83a7-45f6-820b-332734869a22") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "R16") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:D_Bridge_+-AA") + (at 101.6 147.32 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "6766d137-7f41-400d-a06c-48718ea9e37c") + (property "Reference" "D5" + (at 115.57 140.8998 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "D_Bridge_+-AA" + (at 115.57 143.4398 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 101.6 147.32 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 101.6 147.32 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Diode bridge, +ve/-ve/AC/AC" + (at 101.6 147.32 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "88bf1000-6fd5-46b5-a832-493b23314995") + ) + (pin "4" + (uuid "2ac91ec1-1752-43d8-9c76-3dc3f96665de") + ) + (pin "3" + (uuid "b02e70e0-e615-4723-8371-ca4696645864") + ) + (pin "1" + (uuid "e4115d13-b1ec-40dc-a853-004af4f03843") + ) + (instances + (project "iot-contact" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "D5") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Interface_Ethernet:KSZ8081RND") + (at 196.85 69.85 0) + (mirror y) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "6e9de5a4-d5c1-490b-bfe5-db98925db6d4") + (property "Reference" "U3" + (at 194.7067 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "KSZ8081RND" + (at 194.7067 97.79 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Package_DFN_QFN:QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mm" + (at 161.29 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "http://ww1.microchip.com/downloads/en/DeviceDoc/00002199A.pdf" + (at 254 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "10BASE-T/100BASE-TX PHY with RMII Support, 50 MHz input clock, QFN-24" + (at 196.85 69.85 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "921e32b8-b348-4176-9c2a-69cb04342724") + ) + (pin "9" + (uuid "6aa6fa35-56d9-41c9-af13-c296f4e9bf7c") + ) + (pin "5" + (uuid "c517937c-c528-4e61-9ac9-5312b71841b7") + ) + (pin "10" + (uuid "d50344bb-9c81-4754-9d23-ef12e474bb77") + ) + (pin "17" + (uuid "a0ff57b2-ecd2-49df-bd95-006fe07dee82") + ) + (pin "7" + (uuid "317b30c2-e34f-4c84-8942-6b611a064e46") + ) + (pin "6" + (uuid "1b628e21-0b30-47cd-af3a-1e70fa9c3616") + ) + (pin "14" + (uuid "649fc67e-e8c9-45db-925d-e2bfbcefb09d") + ) + (pin "11" + (uuid "a2c8240c-94fc-4991-8df4-686e08f4835e") + ) + (pin "18" + (uuid "cff22c0c-0df3-48e7-9c29-c0b9e767d06f") + ) + (pin "4" + (uuid "2bf23509-a5a5-4a1f-ac99-6f6d0089f958") + ) + (pin "3" + (uuid "19531850-84d0-4dbb-b9d8-53c47ba185c2") + ) + (pin "23" + (uuid "4672b89e-ec8b-4331-a649-b56441e4f90c") + ) + (pin "22" + (uuid "a2946d04-c213-4bb2-8309-8d3b4c1de301") + ) + (pin "16" + (uuid "af2b361b-7fc3-4a7e-9dbd-61d7b1d2206c") + ) + (pin "8" + (uuid "063428a5-0a24-4d2f-a5fe-c1e5885a8bd0") + ) + (pin "24" + (uuid "cc96f634-787d-4211-87ff-b0b465036117") + ) + (pin "25" + (uuid "192026a4-1e8e-43bc-a8c4-a64570f46908") + ) + (pin "15" + (uuid "aeeed153-4c0f-42e9-897c-602f57080d0d") + ) + (pin "12" + (uuid "c7250e8c-4985-4cf0-b8a3-0b14168074e2") + ) + (pin "13" + (uuid "2d7fe3bd-7ac5-45d2-a8cb-0d72b3013d50") + ) + (pin "21" + (uuid "87b0cb59-d4aa-4663-ba9b-9502819fb458") + ) + (pin "20" + (uuid "1146f040-c5d5-4073-b2b5-8e2ca5a3b764") + ) + (pin "19" + (uuid "e97a09e4-d22d-4c57-8d43-0abf98787d21") + ) + (pin "1" + (uuid "17c8ee75-829f-4d68-8384-47d12f26dcb1") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "U3") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 246.38 95.25 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "8477ac45-a10f-416d-82d2-da5468cd1e86") + (property "Reference" "#PWR022" + (at 246.38 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 246.38 100.33 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 246.38 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 246.38 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 246.38 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "8e962866-cb4b-42ad-b222-d79775975129") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "#PWR022") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:D_Bridge_+-AA") + (at 101.6 121.92 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "9e552cc1-084b-47b0-9cc8-888ff5377d6b") + (property "Reference" "D4" + (at 115.57 115.4998 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "D_Bridge_+-AA" + (at 115.57 118.0398 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 101.6 121.92 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 101.6 121.92 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Diode bridge, +ve/-ve/AC/AC" + (at 101.6 121.92 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "8303e4e6-ec27-43a0-9cc4-7685b6aa7b10") + ) + (pin "4" + (uuid "f2c63dba-d591-4507-bfe5-1ce2a3fa2552") + ) + (pin "3" + (uuid "a2d988e6-b020-4da3-b806-d6215f3b0010") + ) + (pin "1" + (uuid "46ae637d-3332-4e98-a4d5-64bb1e9a639a") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "D4") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 127 80.01 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "a87d0280-5f25-4967-b04f-baa3b1db8b7b") + (property "Reference" "C10" + (at 130.81 78.7399 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "0.1uF" + (at 130.81 81.2799 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 127.9652 83.82 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 127 80.01 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 127 80.01 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "a234df04-c126-4459-9669-0c7b6bb5bfc5") + ) + (pin "2" + (uuid "6ec8bda2-1d68-40fc-aefd-3c10841368c8") + ) + (instances + (project "iot-contact" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "C10") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 114.3 80.01 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "b9bf9d4d-17f8-49e4-b7bc-5c8b7fb32868") + (property "Reference" "C9" + (at 118.11 78.7399 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "0.1uF" + (at 118.11 81.2799 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 115.2652 83.82 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 114.3 80.01 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 114.3 80.01 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "62d087d1-a823-442b-9f81-15218506a82c") + ) + (pin "2" + (uuid "041826f9-517a-40c6-afc3-495f38fa1d3c") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "C9") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 120.65 88.9 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "bdedfa00-4703-4787-abc3-b7e56a44c0a5") + (property "Reference" "#PWR019" + (at 120.65 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 120.65 93.98 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 120.65 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 120.65 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 120.65 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "0b82d5a9-290a-485f-8a05-897fba6b1fdb") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "#PWR019") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 246.38 73.66 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "bf5178e7-09ca-4586-af83-daa7b90177e4") + (property "Reference" "R17" + (at 248.92 72.3899 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "10k" + (at 248.92 74.9299 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 244.602 73.66 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 246.38 73.66 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 246.38 73.66 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "d7296f1f-44c4-4612-a0ca-aaf7a6c9b94d") + ) + (pin "2" + (uuid "f6605440-6ce9-4919-b615-e42cc8485c38") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "R17") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 166.37 132.08 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "cefcaacf-e3ca-45ca-beeb-e1d5e6151737") + (property "Reference" "R13" + (at 168.91 130.8099 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "178k" + (at 168.91 133.3499 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 164.592 132.08 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 166.37 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 166.37 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "ea881172-a121-442d-8285-298694a0edba") + ) + (pin "1" + (uuid "ee44a94d-d59b-4bfd-bbe2-c66406ed1d61") + ) + (instances + (project "iot-contact" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "R13") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 176.53 116.84 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "e4629025-774a-4c77-9f54-8b40861974e4") + (property "Reference" "R14" + (at 179.07 115.5699 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "24.9k" + (at 179.07 118.1099 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 174.752 116.84 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 176.53 116.84 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 176.53 116.84 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "2d70c03f-72d6-47fe-a313-a0bdcfdf3605") + ) + (pin "1" + (uuid "abfa1e44-b53a-454f-bd4d-142dba7ff457") + ) + (instances + (project "iot-contact" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "R14") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 226.06 116.84 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "e488888d-b996-49c9-8955-65269e65f4da") + (property "Reference" "C8" + (at 229.87 115.5699 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "47uF" + (at 229.87 118.1099 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 227.0252 120.65 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 226.06 116.84 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 226.06 116.84 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "83cbffa2-a628-4860-b8fa-6d3bbbb5c0ec") + ) + (pin "2" + (uuid "eec268ed-76c6-478c-9d89-0157f462023d") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "C8") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+3V3") + (at 261.62 96.52 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "f729a25e-f2b6-49cb-9749-3993e5ffac18") + (property "Reference" "#PWR024" + (at 261.62 100.33 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+3V3" + (at 261.62 91.44 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 261.62 96.52 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 261.62 96.52 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+3V3\"" + (at 261.62 96.52 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "6c1ddbb5-f98d-4114-bab5-fc12c7873ee7") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "#PWR024") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 261.62 119.38 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "fbb6eaca-3a36-445c-8932-243454b154d7") + (property "Reference" "#PWR023" + (at 261.62 125.73 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 261.62 124.46 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 261.62 119.38 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 261.62 119.38 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 261.62 119.38 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "ab77cc88-9d23-4bd3-8a11-927d9622fd64") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/3f49bcfb-bae6-46ff-af40-a6657170aa94" + (reference "#PWR023") + (unit 1) + ) + ) + ) ) ) diff --git a/pcb/iot-contact.kicad_sch b/pcb/iot-contact.kicad_sch index 77ac199..2efb764 100644 --- a/pcb/iot-contact.kicad_sch +++ b/pcb/iot-contact.kicad_sch @@ -8,7 +8,7 @@ (title "iot-contact") ) (lib_symbols - (symbol "Connector:Conn_01x02_Socket" + (symbol "Connector:Conn_01x05_Socket" (pin_names (offset 1.016) (hide yes) @@ -17,15 +17,15 @@ (in_bom yes) (on_board yes) (property "Reference" "J" - (at 0 2.54 0) + (at 0 7.62 0) (effects (font (size 1.27 1.27) ) ) ) - (property "Value" "Conn_01x02_Socket" - (at 0 -5.08 0) + (property "Value" "Conn_01x05_Socket" + (at 0 -7.62 0) (effects (font (size 1.27 1.27) @@ -50,7 +50,7 @@ (hide yes) ) ) - (property "Description" "Generic connector, single row, 01x02, script generated" + (property "Description" "Generic connector, single row, 01x05, script generated" (at 0 0 0) (effects (font @@ -85,10 +85,10 @@ (hide yes) ) ) - (symbol "Conn_01x02_Socket_1_1" + (symbol "Conn_01x05_Socket_1_1" (polyline (pts - (xy -1.27 0) (xy -0.508 0) + (xy -1.27 5.08) (xy -0.508 5.08) ) (stroke (width 0.1524) @@ -100,159 +100,6 @@ ) (polyline (pts - (xy -1.27 -2.54) (xy -0.508 -2.54) - ) - (stroke - (width 0.1524) - (type default) - ) - (fill - (type none) - ) - ) - (arc - (start 0 -0.508) - (mid -0.5058 0) - (end 0 0.508) - (stroke - (width 0.1524) - (type default) - ) - (fill - (type none) - ) - ) - (arc - (start 0 -3.048) - (mid -0.5058 -2.54) - (end 0 -2.032) - (stroke - (width 0.1524) - (type default) - ) - (fill - (type none) - ) - ) - (pin passive line - (at -5.08 0 0) - (length 3.81) - (name "Pin_1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at -5.08 -2.54 0) - (length 3.81) - (name "Pin_2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - (embedded_fonts no) - ) - (symbol "Connector:Conn_01x03_Socket" - (pin_names - (offset 1.016) - (hide yes) - ) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "J" - (at 0 5.08 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "Conn_01x03_Socket" - (at 0 -5.08 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Generic connector, single row, 01x03, script generated" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_locked" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "ki_keywords" "connector" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "Connector*:*_1x??_*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "Conn_01x03_Socket_1_1" - (polyline - (pts (xy -1.27 2.54) (xy -0.508 2.54) ) (stroke @@ -287,204 +134,9 @@ (type none) ) ) - (arc - (start 0 2.032) - (mid -0.5058 2.54) - (end 0 3.048) - (stroke - (width 0.1524) - (type default) - ) - (fill - (type none) - ) - ) - (arc - (start 0 -0.508) - (mid -0.5058 0) - (end 0 0.508) - (stroke - (width 0.1524) - (type default) - ) - (fill - (type none) - ) - ) - (arc - (start 0 -3.048) - (mid -0.5058 -2.54) - (end 0 -2.032) - (stroke - (width 0.1524) - (type default) - ) - (fill - (type none) - ) - ) - (pin passive line - (at -5.08 2.54 0) - (length 3.81) - (name "Pin_1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at -5.08 0 0) - (length 3.81) - (name "Pin_2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at -5.08 -2.54 0) - (length 3.81) - (name "Pin_3" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "3" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - (embedded_fonts no) - ) - (symbol "Connector:Conn_01x04_Socket" - (pin_names - (offset 1.016) - (hide yes) - ) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "J" - (at 0 5.08 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "Conn_01x04_Socket" - (at 0 -7.62 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Generic connector, single row, 01x04, script generated" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_locked" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "ki_keywords" "connector" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "Connector*:*_1x??_*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "Conn_01x04_Socket_1_1" - (polyline - (pts - (xy -1.27 2.54) (xy -0.508 2.54) - ) - (stroke - (width 0.1524) - (type default) - ) - (fill - (type none) - ) - ) (polyline (pts - (xy -1.27 0) (xy -0.508 0) - ) - (stroke - (width 0.1524) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -1.27 -2.54) (xy -0.508 -2.54) + (xy -1.27 -5.08) (xy -0.508 -5.08) ) (stroke (width 0.1524) @@ -494,10 +146,10 @@ (type none) ) ) - (polyline - (pts - (xy -1.27 -5.08) (xy -0.508 -5.08) - ) + (arc + (start 0 4.572) + (mid -0.5058 5.08) + (end 0 5.588) (stroke (width 0.1524) (type default) @@ -555,7 +207,7 @@ ) ) (pin passive line - (at -5.08 2.54 0) + (at -5.08 5.08 0) (length 3.81) (name "Pin_1" (effects @@ -573,7 +225,7 @@ ) ) (pin passive line - (at -5.08 0 0) + (at -5.08 2.54 0) (length 3.81) (name "Pin_2" (effects @@ -591,7 +243,7 @@ ) ) (pin passive line - (at -5.08 -2.54 0) + (at -5.08 0 0) (length 3.81) (name "Pin_3" (effects @@ -609,7 +261,7 @@ ) ) (pin passive line - (at -5.08 -5.08 0) + (at -5.08 -2.54 0) (length 3.81) (name "Pin_4" (effects @@ -626,6 +278,24 @@ ) ) ) + (pin passive line + (at -5.08 -5.08 0) + (length 3.81) + (name "Pin_5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) ) (embedded_fonts no) ) @@ -1999,6 +1669,145 @@ ) (embedded_fonts no) ) + (symbol "Device:C" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0.254) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "C" + (at 0.635 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "C" + (at 0.635 -2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 0.9652 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "cap capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "C_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "C_0_1" + (polyline + (pts + (xy -2.032 0.762) (xy 2.032 0.762) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -2.032 -0.762) (xy 2.032 -0.762) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "C_1_1" + (pin passive line + (at 0 3.81 270) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) (symbol "Device:LED" (pin_numbers (hide yes) @@ -2173,6 +1982,130 @@ ) (embedded_fonts no) ) + (symbol "Device:R" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "R" + (at 2.032 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "R" + (at 0 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at -1.778 0 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "R res resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "R_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "R_0_1" + (rectangle + (start -1.016 -2.54) + (end 1.016 2.54) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "R_1_1" + (pin passive line + (at 0 3.81 270) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) (symbol "Switch:SW_Push" (pin_numbers (hide yes) @@ -2552,7 +2485,7 @@ ) (text "NEVER use together with PoE!" (exclude_from_sim no) - (at 104.394 180.594 0) + (at 84.836 169.164 0) (effects (font (size 1.27 1.27) @@ -2560,27 +2493,61 @@ ) (uuid "56f4af8c-1572-4497-98f2-10a81ab55e1d") ) - (text "TODO: RMII connection" + (text "PCB versioning" (exclude_from_sim no) - (at 109.474 82.55 0) + (at 116.332 122.174 0) (effects (font (size 1.27 1.27) ) ) - (uuid "c3f58124-5291-4425-bdfa-bb0107db73cc") + (uuid "8ffab84b-2909-4547-976c-9674893a87fe") + ) + (text "TODO: Reduce ESD / EMC by resistors?" + (exclude_from_sim no) + (at 122.174 15.494 0) + (effects + (font + (size 1.27 1.27) + ) + ) + (uuid "b13334ab-fc44-4178-95ea-9327d0ca6d3d") ) (junction - (at 181.61 135.89) + (at 120.65 172.72) + (diameter 0) + (color 0 0 0 0) + (uuid "189c037d-87e6-4632-a2b6-8730223eefc5") + ) + (junction + (at 120.65 163.83) + (diameter 0) + (color 0 0 0 0) + (uuid "298d87a2-b8b0-4e53-a733-e330d8851396") + ) + (junction + (at 204.47 152.4) (diameter 0) (color 0 0 0 0) (uuid "2ae0afa4-05df-4c1f-8fce-9e70d44fa58c") ) (junction - (at 133.35 130.81) + (at 120.65 139.7) (diameter 0) (color 0 0 0 0) - (uuid "339686e0-bcb6-47c9-8375-f2246251856d") + (uuid "6f44ab61-1c8f-443e-b54a-05558acaa55d") + ) + (junction + (at 158.75 163.83) + (diameter 0) + (color 0 0 0 0) + (uuid "724f0699-6e99-4c5f-a95b-4fb06bb9adc0") + ) + (junction + (at 115.57 104.14) + (diameter 0) + (color 0 0 0 0) + (uuid "d7a5ded7-cab0-44bc-bcb3-51d295ef17c4") ) (junction (at 116.84 53.34) @@ -2588,9 +2555,17 @@ (color 0 0 0 0) (uuid "ef781e7b-a406-48a3-94cb-c394198204f7") ) + (no_connect + (at 35.56 95.25) + (uuid "94f04d99-4f3c-43ef-ba03-23e8105a8b5e") + ) + (no_connect + (at 35.56 97.79) + (uuid "9b1443d8-9d56-422c-bf0a-3e08dc75ba68") + ) (wire (pts - (xy 181.61 135.89) (xy 181.61 138.43) + (xy 204.47 152.4) (xy 204.47 154.94) ) (stroke (width 0) @@ -2610,6 +2585,26 @@ ) (wire (pts + (xy 175.26 57.15) (xy 175.26 63.5) + ) + (stroke + (width 0) + (type default) + ) + (uuid "06844ad7-7ce7-4073-bbef-94a7941faa95") + ) + (wire + (pts + (xy 241.3 93.98) (xy 245.11 93.98) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0718babd-5e61-41eb-8188-33c1e5c2c2c4") + ) + (wire + (pts (xy 29.21 82.55) (xy 35.56 82.55) ) (stroke @@ -2620,13 +2615,43 @@ ) (wire (pts - (xy 181.61 133.35) (xy 181.61 135.89) + (xy 120.65 163.83) (xy 137.16 163.83) ) (stroke (width 0) (type default) ) - (uuid "0c6acda6-3218-49fa-bfb0-4421586fc9bb") + (uuid "0acd4d08-ef1c-46de-9f84-9d0ea54dc388") + ) + (wire + (pts + (xy 96.52 107.95) (xy 96.52 151.13) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0c208708-f154-48fe-9e9b-9f41663709e0") + ) + (wire + (pts + (xy 120.65 163.83) (xy 120.65 172.72) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0f02b6fd-c585-4a01-8cc2-e9c2e9a3b7ef") + ) + (wire + (pts + (xy 115.57 102.87) (xy 115.57 104.14) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1020a578-763e-4bf0-98ef-3e843e6e7cd5") ) (wire (pts @@ -2650,53 +2675,53 @@ ) (wire (pts - (xy 111.76 165.1) (xy 134.62 165.1) + (xy 146.05 139.7) (xy 156.21 139.7) ) (stroke (width 0) (type default) ) - (uuid "197c97bd-cbfb-422f-8d15-a5cc6533f28d") + (uuid "216e059d-3b89-4fb4-ac25-bfce53375139") ) (wire (pts - (xy 241.3 102.87) (xy 243.84 102.87) + (xy 170.18 48.26) (xy 166.37 48.26) ) (stroke (width 0) (type default) ) - (uuid "1d27dae0-43b8-4c5d-8a53-0e780a7d9beb") + (uuid "2556a4da-62e7-4d72-a63e-d153c8052108") ) (wire (pts - (xy 170.18 58.42) (xy 166.37 58.42) + (xy 158.75 172.72) (xy 158.75 163.83) ) (stroke (width 0) (type default) ) - (uuid "2556a4da-62e7-4d72-a63e-d153c8052108") + (uuid "2a4841e1-43eb-487d-8ec7-ee68eda97b01") ) (wire (pts - (xy 109.22 97.79) (xy 109.22 167.64) + (xy 147.32 163.83) (xy 158.75 163.83) ) (stroke (width 0) (type default) ) - (uuid "289e429d-0cd9-4bba-b7f1-689983198970") + (uuid "2d696566-81ab-4a8b-8276-e7ddc28da217") ) (wire (pts - (xy 111.76 95.25) (xy 111.76 165.1) + (xy 191.77 148.59) (xy 191.77 152.4) ) (stroke (width 0) (type default) ) - (uuid "2b3758f3-0eda-499d-9041-0ef19043d336") + (uuid "2d705708-5662-4fb8-8522-2a22a5c1d827") ) (wire (pts @@ -2710,13 +2735,13 @@ ) (wire (pts - (xy 181.61 121.92) (xy 181.61 125.73) + (xy 165.1 163.83) (xy 158.75 163.83) ) (stroke (width 0) (type default) ) - (uuid "3691123d-c2c3-4dbb-b33f-6eec64bfe3bb") + (uuid "34297e68-aa91-42c2-a937-63cc85299e7b") ) (wire (pts @@ -2750,17 +2775,17 @@ ) (wire (pts - (xy 156.21 114.3) (xy 156.21 130.81) + (xy 158.75 114.3) (xy 158.75 163.83) ) (stroke (width 0) (type default) ) - (uuid "3a828654-b06b-40d8-9489-ba9a60aefb30") + (uuid "3b263f89-4b70-4d1d-a71f-84959b27269e") ) (wire (pts - (xy 133.35 130.81) (xy 133.35 142.24) + (xy 120.65 130.81) (xy 120.65 139.7) ) (stroke (width 0) @@ -2770,117 +2795,157 @@ ) (wire (pts - (xy 241.3 97.79) (xy 243.84 97.79) + (xy 55.88 85.09) (xy 66.04 85.09) ) (stroke (width 0) (type default) ) - (uuid "3c7e0cc7-91bf-41c2-99bc-b56fabfb0484") + (uuid "401dae51-0601-4d58-a934-6d966ee866c8") ) (wire (pts - (xy 158.75 114.3) (xy 158.75 142.24) + (xy 191.77 152.4) (xy 204.47 152.4) ) (stroke (width 0) (type default) ) - (uuid "3d0233b2-2c0b-4af4-b8e4-d31b44b7c104") + (uuid "42d7122a-ad24-4a57-bdaa-c27d241a57a6") ) (wire (pts - (xy 55.88 85.09) (xy 66.04 85.09) + (xy 241.3 91.44) (xy 245.11 91.44) ) (stroke (width 0) (type default) ) - (uuid "401dae51-0601-4d58-a934-6d966ee866c8") + (uuid "5434de51-f264-4d32-9a62-d6f617624c67") ) (wire (pts - (xy 168.91 135.89) (xy 181.61 135.89) + (xy 91.44 102.87) (xy 101.6 102.87) ) (stroke (width 0) (type default) ) - (uuid "42d7122a-ad24-4a57-bdaa-c27d241a57a6") + (uuid "57041f49-b950-4188-93d9-1d6167b1dea5") ) (wire (pts - (xy 33.02 93.98) (xy 33.02 95.25) + (xy 114.3 53.34) (xy 116.84 53.34) ) (stroke (width 0) (type default) ) - (uuid "493290ea-35d3-49d1-9fa1-0ea5e2af02df") + (uuid "584b7d6b-4418-43d4-a07f-a4efc132f068") ) (wire (pts - (xy 114.3 53.34) (xy 116.84 53.34) + (xy 173.99 114.3) (xy 173.99 119.38) ) (stroke (width 0) (type default) ) - (uuid "584b7d6b-4418-43d4-a07f-a4efc132f068") + (uuid "5d20fa74-a6e9-4bb6-bb8a-77646993e0ad") ) (wire (pts - (xy 168.91 114.3) (xy 168.91 125.73) + (xy 129.54 40.64) (xy 138.43 40.64) ) (stroke (width 0) (type default) ) - (uuid "5beb5fa2-276f-4e79-9ce9-aa937fc03a00") + (uuid "5d47f02b-a32e-47be-aeae-7bb752985db5") ) (wire (pts - (xy 173.99 114.3) (xy 173.99 119.38) + (xy 166.37 44.45) (xy 167.64 44.45) ) (stroke (width 0) (type default) ) - (uuid "5d20fa74-a6e9-4bb6-bb8a-77646993e0ad") + (uuid "6202abf4-a107-49fb-81ba-92fea3003088") ) (wire (pts - (xy 129.54 40.64) (xy 138.43 40.64) + (xy 172.72 57.15) (xy 172.72 63.5) ) (stroke (width 0) (type default) ) - (uuid "5d47f02b-a32e-47be-aeae-7bb752985db5") + (uuid "648002e0-e967-4d8e-b5f2-79b3f2a136e2") ) (wire (pts - (xy 137.16 142.24) (xy 133.35 142.24) + (xy 115.57 104.14) (xy 115.57 105.41) ) (stroke (width 0) (type default) ) - (uuid "5eba176c-1055-4968-95d3-4939b07c40be") + (uuid "668ac295-8e98-4bec-8a6a-9e0f9977aa67") ) (wire (pts - (xy 166.37 54.61) (xy 167.64 54.61) + (xy 241.3 83.82) (xy 245.11 83.82) ) (stroke (width 0) (type default) ) - (uuid "6202abf4-a107-49fb-81ba-92fea3003088") + (uuid "6c5416b3-8486-43d2-a4ce-6a4be340559a") ) (wire (pts - (xy 170.18 53.34) (xy 170.18 58.42) + (xy 120.65 139.7) (xy 120.65 163.83) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6cd45cde-be23-4265-b0e4-582e739670cd") + ) + (wire + (pts + (xy 115.57 104.14) (xy 127 104.14) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6ecbd238-9a11-40af-a479-f3c1c33f4443") + ) + (wire + (pts + (xy 115.57 113.03) (xy 115.57 114.3) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6f33808b-14aa-42f0-bfaf-5d5d041eda6f") + ) + (wire + (pts + (xy 168.91 124.46) (xy 168.91 114.3) + ) + (stroke + (width 0) + (type default) + ) + (uuid "71a11a8b-03eb-49e1-94d6-fa1e5b6c6052") + ) + (wire + (pts + (xy 170.18 43.18) (xy 170.18 48.26) ) (stroke (width 0) @@ -2890,23 +2955,33 @@ ) (wire (pts - (xy 91.44 97.79) (xy 109.22 97.79) + (xy 101.6 156.21) (xy 54.61 156.21) ) (stroke (width 0) (type default) ) - (uuid "7cacf695-e4dd-4107-81df-54e2713a513b") + (uuid "78207ce3-8ddd-4091-a36b-e74abc736708") ) (wire (pts - (xy 133.35 130.81) (xy 133.35 128.27) + (xy 241.3 86.36) (xy 245.11 86.36) ) (stroke (width 0) (type default) ) - (uuid "7e8208d1-8e17-44cb-a01e-27f145506f19") + (uuid "7bb55973-3d84-4ee7-b6b9-e5fc95e4fe2f") + ) + (wire + (pts + (xy 217.17 135.89) (xy 217.17 140.97) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7d3040fb-a98e-42fd-a788-9afd91309303") ) (wire (pts @@ -2920,13 +2995,13 @@ ) (wire (pts - (xy 241.3 74.93) (xy 243.84 74.93) + (xy 120.65 139.7) (xy 138.43 139.7) ) (stroke (width 0) (type default) ) - (uuid "7ff4d5b8-9eb4-4129-ab5e-fcfe279a3d60") + (uuid "7ed7700d-5c46-43f7-9f65-5f33be214e6a") ) (wire (pts @@ -2940,153 +3015,163 @@ ) (wire (pts - (xy 241.3 91.44) (xy 243.84 91.44) + (xy 165.1 152.4) (xy 165.1 153.67) ) (stroke (width 0) (type default) ) - (uuid "82e76253-9dad-4e06-890b-3c6580d4271c") + (uuid "81b9ec61-d651-4c98-a8de-59b4af84f22f") ) (wire (pts - (xy 55.88 97.79) (xy 66.04 97.79) + (xy 172.72 43.18) (xy 172.72 49.53) ) (stroke (width 0) (type default) ) - (uuid "86d37364-ddfa-417a-938b-30e5655238cb") + (uuid "82000f6a-6da7-4030-9412-8816e0cd1ec9") ) (wire (pts - (xy 167.64 54.61) (xy 167.64 53.34) + (xy 165.1 161.29) (xy 165.1 163.83) ) (stroke (width 0) (type default) ) - (uuid "88ebc652-66e4-45f8-8991-0d1e409dc380") + (uuid "829bfcfa-2805-442d-ac4c-72092c7ec070") ) (wire (pts - (xy 140.97 38.1) (xy 140.97 63.5) + (xy 241.3 88.9) (xy 245.11 88.9) ) (stroke (width 0) (type default) ) - (uuid "8bdada26-2df5-443e-ac18-341d8e9a9bfc") + (uuid "830105cb-b7a4-486c-9905-375b2ac42ebe") ) (wire (pts - (xy 33.02 78.74) (xy 33.02 80.01) + (xy 115.57 93.98) (xy 115.57 95.25) ) (stroke (width 0) (type default) ) - (uuid "91164886-a559-4190-a143-58c5301f4d31") + (uuid "863152a8-b32a-4cee-ac15-5a3388895411") ) (wire (pts - (xy 173.99 119.38) (xy 194.31 119.38) + (xy 55.88 97.79) (xy 66.04 97.79) ) (stroke (width 0) (type default) ) - (uuid "975f6649-56f7-4433-8234-df8dbb65e405") + (uuid "86d37364-ddfa-417a-938b-30e5655238cb") ) (wire (pts - (xy 194.31 119.38) (xy 194.31 125.73) + (xy 167.64 44.45) (xy 167.64 43.18) ) (stroke (width 0) (type default) ) - (uuid "992693f8-31ee-4fd0-843b-88c21bac739e") + (uuid "88ebc652-66e4-45f8-8991-0d1e409dc380") ) (wire (pts - (xy 194.31 133.35) (xy 194.31 135.89) + (xy 120.65 172.72) (xy 120.65 179.07) ) (stroke (width 0) (type default) ) - (uuid "9e174432-fd73-4fef-b6ad-f04cfaeca7ce") + (uuid "8944715c-f302-4ee9-82fb-c2922e31a3ec") ) (wire (pts - (xy 177.8 91.44) (xy 204.47 91.44) + (xy 140.97 38.1) (xy 140.97 63.5) ) (stroke (width 0) (type default) ) - (uuid "9eb53c37-eda0-4d31-98f9-9476c751f478") + (uuid "8bdada26-2df5-443e-ac18-341d8e9a9bfc") ) (wire (pts - (xy 194.31 135.89) (xy 181.61 135.89) + (xy 33.02 78.74) (xy 33.02 80.01) ) (stroke (width 0) (type default) ) - (uuid "a096538d-85a0-4b56-b181-2d29b14608dc") + (uuid "91164886-a559-4190-a143-58c5301f4d31") ) (wire (pts - (xy 29.21 97.79) (xy 35.56 97.79) + (xy 173.99 119.38) (xy 217.17 119.38) ) (stroke (width 0) (type default) ) - (uuid "a4877d78-0d28-4186-8d1c-7e1cc76575d5") + (uuid "975f6649-56f7-4433-8234-df8dbb65e405") ) (wire (pts - (xy 168.91 133.35) (xy 168.91 135.89) + (xy 99.06 153.67) (xy 54.61 153.67) ) (stroke (width 0) (type default) ) - (uuid "a6f8b930-c3a7-43f4-83bb-ce36e676f140") + (uuid "994301b4-aca8-45f2-b1aa-298fc8e19227") ) (wire (pts - (xy 158.75 142.24) (xy 147.32 142.24) + (xy 175.26 43.18) (xy 175.26 49.53) ) (stroke (width 0) (type default) ) - (uuid "aa0ccb81-0609-4983-b95e-b81b828cd7ef") + (uuid "9d139bb7-919b-48e1-a25f-a800a2682db7") ) (wire (pts - (xy 143.51 35.56) (xy 143.51 63.5) + (xy 177.8 91.44) (xy 204.47 91.44) ) (stroke (width 0) (type default) ) - (uuid "aa87b050-edb2-4b64-ba80-36f0814def44") + (uuid "9eb53c37-eda0-4d31-98f9-9476c751f478") + ) + (wire + (pts + (xy 217.17 152.4) (xy 204.47 152.4) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a096538d-85a0-4b56-b181-2d29b14608dc") ) (wire (pts - (xy 172.72 53.34) (xy 172.72 63.5) + (xy 143.51 35.56) (xy 143.51 63.5) ) (stroke (width 0) (type default) ) - (uuid "ac7fcbac-50e7-47ec-bc5e-ac6c3acb8b62") + (uuid "aa87b050-edb2-4b64-ba80-36f0814def44") ) (wire (pts @@ -3120,23 +3205,33 @@ ) (wire (pts - (xy 241.3 88.9) (xy 243.84 88.9) + (xy 191.77 124.46) (xy 191.77 128.27) ) (stroke (width 0) (type default) ) - (uuid "bd32fc53-2d64-4e5b-bfb7-6ff41106e415") + (uuid "c07558a5-6046-4396-badd-7d9f962b8ba4") ) (wire (pts - (xy 241.3 100.33) (xy 243.84 100.33) + (xy 204.47 135.89) (xy 204.47 140.97) ) (stroke (width 0) (type default) ) - (uuid "c0f3e087-4d08-45ef-bd3a-8c6f528a7689") + (uuid "c1317260-fdbe-43cd-b336-20e124ba5533") + ) + (wire + (pts + (xy 204.47 121.92) (xy 204.47 128.27) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c17ee871-4945-4c0d-92e8-f73eeb35aa3a") ) (wire (pts @@ -3150,7 +3245,7 @@ ) (wire (pts - (xy 171.45 121.92) (xy 181.61 121.92) + (xy 171.45 121.92) (xy 204.47 121.92) ) (stroke (width 0) @@ -3170,7 +3265,7 @@ ) (wire (pts - (xy 128.27 177.8) (xy 134.62 177.8) + (xy 60.96 166.37) (xy 54.61 166.37) ) (stroke (width 0) @@ -3180,7 +3275,7 @@ ) (wire (pts - (xy 137.16 130.81) (xy 133.35 130.81) + (xy 120.65 130.81) (xy 137.16 130.81) ) (stroke (width 0) @@ -3190,7 +3285,17 @@ ) (wire (pts - (xy 128.27 180.34) (xy 134.62 180.34) + (xy 217.17 119.38) (xy 217.17 128.27) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cc586199-fef6-4243-93bc-fbf4cebb4a5f") + ) + (wire + (pts + (xy 60.96 168.91) (xy 54.61 168.91) ) (stroke (width 0) @@ -3210,23 +3315,43 @@ ) (wire (pts - (xy 175.26 53.34) (xy 175.26 63.5) + (xy 191.77 124.46) (xy 168.91 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d471a012-4831-44a6-a1f9-de3b351e8b20") + ) + (wire + (pts + (xy 99.06 105.41) (xy 99.06 153.67) ) (stroke (width 0) (type default) ) - (uuid "d5728e8f-78fc-453f-bcba-7211b9336bc9") + (uuid "d59c8ecc-07cb-4b37-8650-525bc0a219c3") ) (wire (pts - (xy 241.3 77.47) (xy 243.84 77.47) + (xy 191.77 135.89) (xy 191.77 140.97) ) (stroke (width 0) (type default) ) - (uuid "d7acbacc-050b-4c59-a5d3-449739214648") + (uuid "d8461182-9ed1-4662-bda4-5f88a45fed33") + ) + (wire + (pts + (xy 204.47 148.59) (xy 204.47 152.4) + ) + (stroke + (width 0) + (type default) + ) + (uuid "dcf138b2-e78e-4dea-a38b-3d1a8a00c33d") ) (wire (pts @@ -3240,7 +3365,7 @@ ) (wire (pts - (xy 156.21 130.81) (xy 147.32 130.81) + (xy 147.32 130.81) (xy 156.21 130.81) ) (stroke (width 0) @@ -3250,83 +3375,93 @@ ) (wire (pts - (xy 91.44 95.25) (xy 111.76 95.25) + (xy 146.05 172.72) (xy 158.75 172.72) ) (stroke (width 0) (type default) ) - (uuid "e7bd0f5e-f3c8-4bf0-a013-e09ae059898a") + (uuid "e814e761-04fc-46cc-9644-995ec8cd6c6f") ) (wire (pts - (xy 241.3 105.41) (xy 243.84 105.41) + (xy 96.52 151.13) (xy 54.61 151.13) ) (stroke (width 0) (type default) ) - (uuid "ea53adc0-baa4-40d7-a0b3-640d08b56738") + (uuid "e8b45063-617c-4fa5-9aa3-9883e162cdb6") ) (wire (pts - (xy 55.88 90.17) (xy 66.04 90.17) + (xy 91.44 105.41) (xy 99.06 105.41) ) (stroke (width 0) (type default) ) - (uuid "f265f902-612e-41f5-95bf-3758fb46d6e8") + (uuid "eb7f0b3b-8de6-4070-a3aa-3e0d975d5853") ) (wire (pts - (xy 109.22 167.64) (xy 134.62 167.64) + (xy 91.44 107.95) (xy 96.52 107.95) ) (stroke (width 0) (type default) ) - (uuid "f365ee14-2602-4555-a058-1147e8f0a066") + (uuid "efafd5d2-329c-4991-ac11-6e7944ef34d3") ) (wire (pts - (xy 241.3 86.36) (xy 243.84 86.36) + (xy 55.88 90.17) (xy 66.04 90.17) ) (stroke (width 0) (type default) ) - (uuid "f3dd7834-6263-40f4-9340-5f1c1a44fa6f") + (uuid "f265f902-612e-41f5-95bf-3758fb46d6e8") ) (wire (pts - (xy 33.02 95.25) (xy 35.56 95.25) + (xy 101.6 102.87) (xy 101.6 156.21) ) (stroke (width 0) (type default) ) - (uuid "f50c425b-c542-4a4a-bfdf-a274398d27f8") + (uuid "f273b1d5-a4ec-42a0-832f-d39b0ba4068a") ) (wire (pts - (xy 55.88 92.71) (xy 66.04 92.71) + (xy 217.17 148.59) (xy 217.17 152.4) ) (stroke (width 0) (type default) ) - (uuid "f7c66ad8-a260-4415-8e01-926edbc6126d") + (uuid "f70a87d6-19a6-4103-ae2b-0087e84e0027") ) (wire (pts - (xy 29.21 106.68) (xy 29.21 97.79) + (xy 138.43 172.72) (xy 120.65 172.72) ) (stroke (width 0) (type default) ) - (uuid "f9eb8ea0-4fb5-42ee-9080-a4c260634ab7") + (uuid "f70df2e3-9b89-4513-89a7-ca95d8c62c90") + ) + (wire + (pts + (xy 55.88 92.71) (xy 66.04 92.71) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f7c66ad8-a260-4415-8e01-926edbc6126d") ) (wire (pts @@ -3340,43 +3475,64 @@ ) (wire (pts - (xy 66.04 106.68) (xy 29.21 106.68) + (xy 156.21 139.7) (xy 156.21 130.81) ) (stroke (width 0) (type default) ) - (uuid "fc01db24-5887-4a05-9623-ad9b7e580703") + (uuid "fd78589c-da42-4338-8fda-f110ff8f348a") + ) + (label "~{RESET}" + (at 146.05 30.48 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "308eac3d-9a2b-4ec7-9297-a8970bb2ec55") + ) + (label "~{RESET}" + (at 156.21 130.81 180) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "e29d4ba8-0105-4adb-bfda-0df60b298f19") ) (symbol - (lib_id "power:GND") - (at 33.02 93.98 180) + (lib_id "Device:R") + (at 217.17 144.78 0) (unit 1) (exclude_from_sim no) (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced yes) - (uuid "05df8344-2c23-4647-bcf2-b4c12ca0cfec") - (property "Reference" "#PWR08" - (at 33.02 87.63 0) + (uuid "029ca11d-23bd-4632-b04e-52d99654ea0d") + (property "Reference" "R11" + (at 219.71 143.5099 0) (effects (font (size 1.27 1.27) ) - (hide yes) + (justify left) ) ) - (property "Value" "GND" - (at 33.02 88.9 0) + (property "Value" "10" + (at 219.71 146.0499 0) (effects (font (size 1.27 1.27) ) + (justify left) ) ) (property "Footprint" "" - (at 33.02 93.98 0) + (at 215.392 144.78 90) (effects (font (size 1.27 1.27) @@ -3384,8 +3540,8 @@ (hide yes) ) ) - (property "Datasheet" "" - (at 33.02 93.98 0) + (property "Datasheet" "~" + (at 217.17 144.78 0) (effects (font (size 1.27 1.27) @@ -3393,8 +3549,8 @@ (hide yes) ) ) - (property "Description" "Power symbol creates a global label with name \"GND\" , ground" - (at 33.02 93.98 0) + (property "Description" "Resistor" + (at 217.17 144.78 0) (effects (font (size 1.27 1.27) @@ -3402,13 +3558,16 @@ (hide yes) ) ) + (pin "2" + (uuid "4af94cd3-6429-4973-8a2b-bec029cb46d5") + ) (pin "1" - (uuid "1386efec-52e4-402d-9578-648563707219") + (uuid "2083d801-8d92-44d7-ad59-bb6dbde6fce8") ) (instances - (project "iot-contact" + (project "" (path "/5defd195-0277-4d04-9f5f-69e505c9845c" - (reference "#PWR08") + (reference "R11") (unit 1) ) ) @@ -3458,8 +3617,8 @@ (hide yes) ) ) - (property "Description" "BTN_REBOOT: Reset MCU" - (at 129.794 145.288 0) + (property "Description" "REBOOT: Reset MCU" + (at 132.588 134.112 0) (effects (font (size 1.27 1.27) @@ -3618,8 +3777,147 @@ ) ) (symbol + (lib_id "Device:R") + (at 115.57 109.22 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "25ff6048-df12-4801-a5fa-10858ec580ea") + (property "Reference" "R2" + (at 118.11 107.9499 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "180R" + (at 118.11 110.4899 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 113.792 109.22 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 115.57 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 115.57 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "4594fa96-7bf7-4a55-b5cf-06cd56d16577") + ) + (pin "2" + (uuid "b8ec48f2-d366-4783-a0c0-ce6e9d04ad8c") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c" + (reference "R2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 175.26 53.34 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "377b3703-a590-4a55-8b48-a5300fe32ee3") + (property "Reference" "R7" + (at 177.8 52.0699 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "330" + (at 177.8 54.6099 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 173.482 53.34 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 175.26 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 175.26 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "1f88bc05-2d8a-4c86-ac21-91926d89c7d3") + ) + (pin "1" + (uuid "e609463d-5bd0-45e5-9305-86632f1944b7") + ) + (instances + (project "iot-contact" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c" + (reference "R7") + (unit 1) + ) + ) + ) + ) + (symbol (lib_id "Switch:SW_Push") - (at 142.24 142.24 0) + (at 142.24 163.83 0) (mirror y) (unit 1) (exclude_from_sim no) @@ -3628,7 +3926,7 @@ (dnp no) (uuid "4208718d-0b0e-478e-a1d4-d0fead52cb02") (property "Reference" "SW2" - (at 142.24 134.62 0) + (at 142.24 156.21 0) (effects (font (size 1.27 1.27) @@ -3636,7 +3934,7 @@ ) ) (property "Value" "SW_Push" - (at 142.24 137.16 0) + (at 142.24 158.75 0) (effects (font (size 1.27 1.27) @@ -3644,7 +3942,7 @@ ) ) (property "Footprint" "Button_Switch_SMD:SW_SPST_TL3305B" - (at 142.24 137.16 0) + (at 142.24 158.75 0) (effects (font (size 1.27 1.27) @@ -3653,7 +3951,7 @@ ) ) (property "Datasheet" "https://www.e-switch.com/wp-content/uploads/2024/08/TL3305.pdf" - (at 142.24 137.16 0) + (at 142.24 158.75 0) (effects (font (size 1.27 1.27) @@ -3661,8 +3959,8 @@ (hide yes) ) ) - (property "Description" "BTN_WIPE: Long press for factory reset" - (at 129.794 147.828 0) + (property "Description" "WIPE: Long press for factory reset" + (at 123.698 166.624 0) (effects (font (size 1.27 1.27) @@ -3671,7 +3969,7 @@ ) ) (property "MPN" "TL3305BF260QG" - (at 142.24 142.24 0) + (at 142.24 163.83 0) (effects (font (size 1.27 1.27) @@ -3680,7 +3978,7 @@ ) ) (property "Manufacturer" "E-Switch" - (at 142.24 142.24 0) + (at 142.24 163.83 0) (effects (font (size 1.27 1.27) @@ -3704,16 +4002,86 @@ ) ) (symbol + (lib_id "Device:R") + (at 115.57 99.06 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "44194e8c-d4ca-4f3b-8f0c-38d2daec1648") + (property "Reference" "R1" + (at 118.11 97.7899 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "75k" + (at 118.11 100.3299 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 113.792 99.06 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 115.57 99.06 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 115.57 99.06 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "4c288ead-2ab6-4e25-a3f0-01cafd4880ac") + ) + (pin "1" + (uuid "28fc83dd-c36e-444e-9a1b-af275a24160b") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c" + (reference "R1") + (unit 1) + ) + ) + ) + ) + (symbol (lib_id "Device:LED") - (at 181.61 129.54 90) + (at 217.17 132.08 90) (unit 1) (exclude_from_sim no) (in_bom yes) (on_board yes) (dnp no) (uuid "44379c08-0720-4714-96ff-16a0e520c9f5") - (property "Reference" "D2" - (at 185.42 129.8574 90) + (property "Reference" "D3" + (at 220.98 132.3974 90) (effects (font (size 1.27 1.27) @@ -3722,7 +4090,7 @@ ) ) (property "Value" "blue" - (at 185.42 132.3974 90) + (at 220.98 134.9374 90) (effects (font (size 1.27 1.27) @@ -3731,7 +4099,7 @@ ) ) (property "Footprint" "LED_SMD:LED_1206_3216Metric" - (at 181.61 129.54 0) + (at 217.17 132.08 0) (effects (font (size 1.27 1.27) @@ -3740,7 +4108,7 @@ ) ) (property "Datasheet" "https://s3-us-west-2.amazonaws.com/catsy.557/Dialight_CBI_data_598-1206_Apr2018.pdf" - (at 181.61 129.54 0) + (at 217.17 132.08 0) (effects (font (size 1.27 1.27) @@ -3748,8 +4116,8 @@ (hide yes) ) ) - (property "Description" "LED_UPD: Update in progress" - (at 185.166 141.478 90) + (property "Description" "UPD" + (at 220.98 137.414 90) (effects (font (size 1.27 1.27) @@ -3758,7 +4126,7 @@ ) ) (property "MPN" "598-8291-107F" - (at 181.61 129.54 0) + (at 217.17 132.08 0) (effects (font (size 1.27 1.27) @@ -3767,7 +4135,7 @@ ) ) (property "Manufacturer" "Dialight" - (at 181.61 129.54 0) + (at 217.17 132.08 0) (effects (font (size 1.27 1.27) @@ -3784,7 +4152,7 @@ (instances (project "iot-contact" (path "/5defd195-0277-4d04-9f5f-69e505c9845c" - (reference "D2") + (reference "D3") (unit 1) ) ) @@ -3792,7 +4160,7 @@ ) (symbol (lib_id "Connector_Generic:Conn_01x04") - (at 170.18 48.26 90) + (at 170.18 38.1 90) (unit 1) (exclude_from_sim no) (in_bom yes) @@ -3800,7 +4168,7 @@ (dnp no) (uuid "49185865-8dde-467a-80cc-a57e398314bd") (property "Reference" "J2" - (at 171.45 41.91 90) + (at 171.45 31.75 90) (effects (font (size 1.27 1.27) @@ -3808,7 +4176,7 @@ ) ) (property "Value" "Conn_01x04" - (at 171.45 44.45 90) + (at 171.45 34.29 90) (effects (font (size 1.27 1.27) @@ -3816,7 +4184,7 @@ ) ) (property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical" - (at 170.18 48.26 0) + (at 170.18 38.1 0) (effects (font (size 1.27 1.27) @@ -3825,7 +4193,7 @@ ) ) (property "Datasheet" "~" - (at 170.18 48.26 0) + (at 170.18 38.1 0) (effects (font (size 1.27 1.27) @@ -3834,7 +4202,7 @@ ) ) (property "Description" "3V3 UART connector" - (at 186.944 48.26 90) + (at 186.944 38.1 90) (effects (font (size 1.27 1.27) @@ -3863,35 +4231,35 @@ ) ) (symbol - (lib_id "power:+3V3") - (at 133.35 128.27 0) - (mirror y) + (lib_id "Device:R") + (at 165.1 157.48 0) (unit 1) (exclude_from_sim no) (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced yes) - (uuid "73b82ebf-51d1-4351-9ef8-e821f2bb51fc") - (property "Reference" "#PWR04" - (at 133.35 132.08 0) + (uuid "63293c6f-725f-4a3a-82ff-3e20957566c9") + (property "Reference" "R8" + (at 167.64 156.2099 0) (effects (font (size 1.27 1.27) ) - (hide yes) + (justify left) ) ) - (property "Value" "+3V3" - (at 133.35 123.19 0) + (property "Value" "10k" + (at 167.64 158.7499 0) (effects (font (size 1.27 1.27) ) + (justify left) ) ) (property "Footprint" "" - (at 133.35 128.27 0) + (at 163.322 157.48 90) (effects (font (size 1.27 1.27) @@ -3899,8 +4267,8 @@ (hide yes) ) ) - (property "Datasheet" "" - (at 133.35 128.27 0) + (property "Datasheet" "~" + (at 165.1 157.48 0) (effects (font (size 1.27 1.27) @@ -3908,8 +4276,8 @@ (hide yes) ) ) - (property "Description" "Power symbol creates a global label with name \"+3V3\"" - (at 133.35 128.27 0) + (property "Description" "Resistor" + (at 165.1 157.48 0) (effects (font (size 1.27 1.27) @@ -3917,13 +4285,16 @@ (hide yes) ) ) + (pin "2" + (uuid "a8ec9569-8a23-4870-a944-c1bbfe2027eb") + ) (pin "1" - (uuid "21725f84-8d25-45a0-a597-104450bf5d9f") + (uuid "7c90c553-386b-462a-adab-3068c8acdb28") ) (instances (project "" (path "/5defd195-0277-4d04-9f5f-69e505c9845c" - (reference "#PWR04") + (reference "R8") (unit 1) ) ) @@ -4041,8 +4412,7 @@ ) (symbol (lib_id "Connector_Generic:Conn_01x02") - (at 123.19 177.8 0) - (mirror y) + (at 66.04 166.37 0) (unit 1) (exclude_from_sim no) (in_bom yes) @@ -4050,7 +4420,7 @@ (dnp no) (uuid "82545faa-f3c8-4796-a053-beafee983540") (property "Reference" "J3" - (at 123.19 171.45 0) + (at 66.04 160.02 0) (effects (font (size 1.27 1.27) @@ -4058,7 +4428,7 @@ ) ) (property "Value" "Conn_01x02" - (at 123.19 173.99 0) + (at 66.04 162.56 0) (effects (font (size 1.27 1.27) @@ -4066,7 +4436,7 @@ ) ) (property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" - (at 123.19 177.8 0) + (at 66.04 166.37 0) (effects (font (size 1.27 1.27) @@ -4075,7 +4445,7 @@ ) ) (property "Datasheet" "~" - (at 123.19 177.8 0) + (at 66.04 166.37 0) (effects (font (size 1.27 1.27) @@ -4084,7 +4454,7 @@ ) ) (property "Description" "Non-PoE 5V power input" - (at 104.394 177.8 0) + (at 84.836 166.37 0) (effects (font (size 1.27 1.27) @@ -4107,8 +4477,167 @@ ) ) (symbol + (lib_id "power:GND") + (at 120.65 179.07 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "896bf6c9-1959-4e54-9ee3-0afb3af23951") + (property "Reference" "#PWR04" + (at 120.65 185.42 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 120.65 184.15 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 120.65 179.07 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 120.65 179.07 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 120.65 179.07 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "cf37e434-0987-4eb9-99b4-3eed1b644059") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c" + (reference "#PWR04") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Connector:Conn_01x05_Socket") + (at 250.19 88.9 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "8abbe99b-a4dc-440e-9eca-761a29b3f878") + (property "Reference" "J5" + (at 251.46 87.6299 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "Conn_01x05_Socket" + (at 251.46 90.1699 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "TerminalBlock_WAGO:TerminalBlock_WAGO_236-405_1x05_P5.00mm_45Degree" + (at 250.19 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 250.19 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Generic connector, single row, 01x05, script generated" + (at 250.19 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "MPN" "236-405" + (at 260.35 96.012 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Manufacturer" "WAGO Corporation" + (at 260.604 93.218 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (pin "3" + (uuid "f6371d9a-5e12-449a-b54a-fae342c0ad08") + ) + (pin "4" + (uuid "2ed21cf7-6b19-4337-ba57-0d86f2172d6a") + ) + (pin "5" + (uuid "54231faf-ba13-48ef-9437-f0bd433787d0") + ) + (pin "2" + (uuid "cbcad884-9c06-4de9-a8e1-86ef47db1684") + ) + (pin "1" + (uuid "6edee8d4-ba9a-4079-87be-d50c29ed3fbd") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c" + (reference "J5") + (unit 1) + ) + ) + ) + ) + (symbol (lib_id "power:+3V3") - (at 166.37 58.42 90) + (at 166.37 48.26 90) (unit 1) (exclude_from_sim no) (in_bom yes) @@ -4117,7 +4646,7 @@ (fields_autoplaced yes) (uuid "8dc38ef5-ad5d-4198-87b9-50e0c72e169c") (property "Reference" "#PWR06" - (at 170.18 58.42 0) + (at 170.18 48.26 0) (effects (font (size 1.27 1.27) @@ -4126,7 +4655,7 @@ ) ) (property "Value" "+3V3" - (at 162.56 58.4199 90) + (at 162.56 48.2599 90) (effects (font (size 1.27 1.27) @@ -4135,7 +4664,7 @@ ) ) (property "Footprint" "" - (at 166.37 58.42 0) + (at 166.37 48.26 0) (effects (font (size 1.27 1.27) @@ -4144,7 +4673,7 @@ ) ) (property "Datasheet" "" - (at 166.37 58.42 0) + (at 166.37 48.26 0) (effects (font (size 1.27 1.27) @@ -4153,7 +4682,7 @@ ) ) (property "Description" "Power symbol creates a global label with name \"+3V3\"" - (at 166.37 58.42 0) + (at 166.37 48.26 0) (effects (font (size 1.27 1.27) @@ -4174,16 +4703,82 @@ ) ) (symbol + (lib_id "power:+3V3") + (at 165.1 152.4 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "8f4b4a57-a16b-4ad3-a450-89fb98fde342") + (property "Reference" "#PWR013" + (at 165.1 156.21 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+3V3" + (at 165.1 147.32 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 165.1 152.4 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 165.1 152.4 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+3V3\"" + (at 165.1 152.4 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "d5e63d39-a3d9-40d0-bd7b-b18dd26043aa") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c" + (reference "#PWR013") + (unit 1) + ) + ) + ) + ) + (symbol (lib_id "Device:LED") - (at 194.31 129.54 90) + (at 204.47 132.08 90) (unit 1) (exclude_from_sim no) (in_bom yes) (on_board yes) (dnp no) (uuid "a18015d1-4ba3-4469-b302-93bb256ec205") - (property "Reference" "D3" - (at 198.12 129.8574 90) + (property "Reference" "D2" + (at 208.28 132.3974 90) (effects (font (size 1.27 1.27) @@ -4192,7 +4787,7 @@ ) ) (property "Value" "green" - (at 198.12 132.3974 90) + (at 208.28 134.9374 90) (effects (font (size 1.27 1.27) @@ -4201,7 +4796,7 @@ ) ) (property "Footprint" "LED_SMD:LED_1206_3216Metric" - (at 194.31 129.54 0) + (at 204.47 132.08 0) (effects (font (size 1.27 1.27) @@ -4210,7 +4805,7 @@ ) ) (property "Datasheet" "https://s3-us-west-2.amazonaws.com/catsy.557/Dialight_CBI_data_598-1206_Apr2018.pdf" - (at 194.31 129.54 0) + (at 204.47 132.08 0) (effects (font (size 1.27 1.27) @@ -4218,8 +4813,8 @@ (hide yes) ) ) - (property "Description" "LED_ACT: Firmware active" - (at 185.166 143.764 90) + (property "Description" "ACT" + (at 208.788 137.668 90) (effects (font (size 1.27 1.27) @@ -4228,7 +4823,7 @@ ) ) (property "MPN" "598-8270-107F" - (at 194.31 129.54 0) + (at 204.47 132.08 0) (effects (font (size 1.27 1.27) @@ -4237,7 +4832,7 @@ ) ) (property "Manufacturer" "Dialight" - (at 194.31 129.54 0) + (at 204.47 132.08 0) (effects (font (size 1.27 1.27) @@ -4254,41 +4849,42 @@ (instances (project "iot-contact" (path "/5defd195-0277-4d04-9f5f-69e505c9845c" - (reference "D3") + (reference "D2") (unit 1) ) ) ) ) (symbol - (lib_id "power:GND") - (at 116.84 53.34 0) + (lib_id "Device:R") + (at 191.77 144.78 0) (unit 1) (exclude_from_sim no) (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced yes) - (uuid "a9fdb3b7-e62e-4e35-b95e-2b5451d40781") - (property "Reference" "#PWR02" - (at 116.84 59.69 0) + (uuid "a297cf7f-e0d5-4c97-a498-814a9549ef9a") + (property "Reference" "R9" + (at 194.31 143.5099 0) (effects (font (size 1.27 1.27) ) - (hide yes) + (justify left) ) ) - (property "Value" "GND" - (at 116.84 58.42 0) + (property "Value" "130" + (at 194.31 146.0499 0) (effects (font (size 1.27 1.27) ) + (justify left) ) ) (property "Footprint" "" - (at 116.84 53.34 0) + (at 189.992 144.78 90) (effects (font (size 1.27 1.27) @@ -4296,8 +4892,8 @@ (hide yes) ) ) - (property "Datasheet" "" - (at 116.84 53.34 0) + (property "Datasheet" "~" + (at 191.77 144.78 0) (effects (font (size 1.27 1.27) @@ -4305,8 +4901,8 @@ (hide yes) ) ) - (property "Description" "Power symbol creates a global label with name \"GND\" , ground" - (at 116.84 53.34 0) + (property "Description" "Resistor" + (at 191.77 144.78 0) (effects (font (size 1.27 1.27) @@ -4315,28 +4911,33 @@ ) ) (pin "1" - (uuid "dbac907f-00ce-4688-80a3-aa16c1570783") + (uuid "b391f087-b828-46a4-b30b-41a4ad41710b") + ) + (pin "2" + (uuid "2ea26649-0d0a-489f-b36a-a33f5d72c923") ) (instances (project "" (path "/5defd195-0277-4d04-9f5f-69e505c9845c" - (reference "#PWR02") + (reference "R9") (unit 1) ) ) ) ) (symbol - (lib_id "Connector:Conn_01x02_Socket") - (at 248.92 74.93 0) + (lib_id "Device:R") + (at 172.72 53.34 0) + (mirror y) (unit 1) (exclude_from_sim no) (in_bom yes) (on_board yes) (dnp no) - (uuid "ab915a24-5892-4750-b69f-bf601f5b3660") - (property "Reference" "J5" - (at 250.19 74.9299 0) + (fields_autoplaced yes) + (uuid "a6fe88c6-33d3-4141-98ed-a653df0815e9") + (property "Reference" "R6" + (at 170.18 52.0699 0) (effects (font (size 1.27 1.27) @@ -4344,8 +4945,8 @@ (justify left) ) ) - (property "Value" "Conn_01x02_Socket" - (at 250.19 77.4699 0) + (property "Value" "330" + (at 170.18 54.6099 0) (effects (font (size 1.27 1.27) @@ -4353,8 +4954,8 @@ (justify left) ) ) - (property "Footprint" "TerminalBlock_WAGO:TerminalBlock_WAGO_236-402_1x02_P5.00mm_45Degree" - (at 248.92 74.93 0) + (property "Footprint" "" + (at 174.498 53.34 90) (effects (font (size 1.27 1.27) @@ -4363,7 +4964,7 @@ ) ) (property "Datasheet" "~" - (at 248.92 74.93 0) + (at 172.72 53.34 0) (effects (font (size 1.27 1.27) @@ -4371,25 +4972,8 @@ (hide yes) ) ) - (property "Description" "normally closed contact" - (at 262.128 79.756 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "MPN" "236-402" - (at 248.92 74.93 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Manufacturer" "WAGO Corporation" - (at 248.92 74.93 0) + (property "Description" "Resistor" + (at 172.72 53.34 0) (effects (font (size 1.27 1.27) @@ -4398,49 +4982,49 @@ ) ) (pin "2" - (uuid "9c8b6afb-bb3d-404f-967e-581c812b3355") + (uuid "f84990f4-066a-4857-9f3d-2752dd610f2d") ) (pin "1" - (uuid "428b547f-53a8-4158-9a2a-ed056b73bc0a") + (uuid "97d50174-8922-4c51-a138-8c23a74f8115") ) (instances (project "" (path "/5defd195-0277-4d04-9f5f-69e505c9845c" - (reference "J5") + (reference "R6") (unit 1) ) ) ) ) (symbol - (lib_id "Connector:Conn_01x03_Socket") - (at 248.92 88.9 0) + (lib_id "power:GND") + (at 116.84 53.34 0) (unit 1) (exclude_from_sim no) (in_bom yes) (on_board yes) (dnp no) - (uuid "b8e7e67c-4ba1-45c3-949c-ed1de34a8889") - (property "Reference" "J6" - (at 250.19 87.6299 0) + (fields_autoplaced yes) + (uuid "a9fdb3b7-e62e-4e35-b95e-2b5451d40781") + (property "Reference" "#PWR02" + (at 116.84 59.69 0) (effects (font (size 1.27 1.27) ) - (justify left) + (hide yes) ) ) - (property "Value" "Conn_01x03_Socket" - (at 250.19 90.1699 0) + (property "Value" "GND" + (at 116.84 58.42 0) (effects (font (size 1.27 1.27) ) - (justify left) ) ) - (property "Footprint" "TerminalBlock_WAGO:TerminalBlock_WAGO_236-403_1x03_P5.00mm_45Degree" - (at 248.92 88.9 0) + (property "Footprint" "" + (at 116.84 53.34 0) (effects (font (size 1.27 1.27) @@ -4448,8 +5032,8 @@ (hide yes) ) ) - (property "Datasheet" "~" - (at 248.92 88.9 0) + (property "Datasheet" "" + (at 116.84 53.34 0) (effects (font (size 1.27 1.27) @@ -4457,16 +5041,39 @@ (hide yes) ) ) - (property "Description" "AC voltage supply" - (at 259.08 92.71 0) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 116.84 53.34 0) (effects (font (size 1.27 1.27) ) + (hide yes) + ) + ) + (pin "1" + (uuid "dbac907f-00ce-4688-80a3-aa16c1570783") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c" + (reference "#PWR02") + (unit 1) + ) ) ) - (property "MPN" "236-403" - (at 248.92 88.9 0) + ) + (symbol + (lib_id "power:+3V3") + (at 115.57 93.98 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "b8d6d94c-727e-456b-b826-af3fd7c72013") + (property "Reference" "#PWR09" + (at 115.57 97.79 0) (effects (font (size 1.27 1.27) @@ -4474,8 +5081,16 @@ (hide yes) ) ) - (property "Manufacturer" "WAGO Corporation" - (at 248.92 88.9 0) + (property "Value" "+3V3" + (at 115.57 88.9 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 115.57 93.98 0) (effects (font (size 1.27 1.27) @@ -4483,19 +5098,31 @@ (hide yes) ) ) - (pin "3" - (uuid "2d15e7e0-56e4-496b-a237-9cd8ed4fd444") + (property "Datasheet" "" + (at 115.57 93.98 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) ) - (pin "2" - (uuid "fa05bfdf-dde9-46a5-b86a-16de418107e2") + (property "Description" "Power symbol creates a global label with name \"+3V3\"" + (at 115.57 93.98 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) ) (pin "1" - (uuid "ab74c3af-f504-4aaa-80da-750726060fa7") + (uuid "4c5e5d17-e7b8-4575-85c6-050868f487a2") ) (instances (project "" (path "/5defd195-0277-4d04-9f5f-69e505c9845c" - (reference "J6") + (reference "#PWR09") (unit 1) ) ) @@ -4503,7 +5130,7 @@ ) (symbol (lib_id "power:GND") - (at 181.61 138.43 0) + (at 204.47 154.94 0) (unit 1) (exclude_from_sim no) (in_bom yes) @@ -4512,7 +5139,7 @@ (fields_autoplaced yes) (uuid "c23cc26f-8dc0-476d-b468-5b450765c3d0") (property "Reference" "#PWR03" - (at 181.61 144.78 0) + (at 204.47 161.29 0) (effects (font (size 1.27 1.27) @@ -4521,7 +5148,7 @@ ) ) (property "Value" "GND" - (at 181.61 143.51 0) + (at 204.47 160.02 0) (effects (font (size 1.27 1.27) @@ -4529,7 +5156,7 @@ ) ) (property "Footprint" "" - (at 181.61 138.43 0) + (at 204.47 154.94 0) (effects (font (size 1.27 1.27) @@ -4538,7 +5165,7 @@ ) ) (property "Datasheet" "" - (at 181.61 138.43 0) + (at 204.47 154.94 0) (effects (font (size 1.27 1.27) @@ -4547,7 +5174,7 @@ ) ) (property "Description" "Power symbol creates a global label with name \"GND\" , ground" - (at 181.61 138.43 0) + (at 204.47 154.94 0) (effects (font (size 1.27 1.27) @@ -4569,7 +5196,7 @@ ) (symbol (lib_id "power:GND") - (at 166.37 54.61 270) + (at 166.37 44.45 270) (unit 1) (exclude_from_sim no) (in_bom yes) @@ -4578,7 +5205,7 @@ (fields_autoplaced yes) (uuid "d5dadfd3-4ade-4ee5-9ef5-635033cf0c0d") (property "Reference" "#PWR05" - (at 160.02 54.61 0) + (at 160.02 44.45 0) (effects (font (size 1.27 1.27) @@ -4587,7 +5214,7 @@ ) ) (property "Value" "GND" - (at 162.56 54.6099 90) + (at 162.56 44.4499 90) (effects (font (size 1.27 1.27) @@ -4596,7 +5223,7 @@ ) ) (property "Footprint" "" - (at 166.37 54.61 0) + (at 166.37 44.45 0) (effects (font (size 1.27 1.27) @@ -4605,7 +5232,7 @@ ) ) (property "Datasheet" "" - (at 166.37 54.61 0) + (at 166.37 44.45 0) (effects (font (size 1.27 1.27) @@ -4614,7 +5241,7 @@ ) ) (property "Description" "Power symbol creates a global label with name \"GND\" , ground" - (at 166.37 54.61 0) + (at 166.37 44.45 0) (effects (font (size 1.27 1.27) @@ -4635,17 +5262,87 @@ ) ) (symbol - (lib_id "power:+3V3") - (at 116.84 22.86 0) + (lib_id "Device:C") + (at 142.24 139.7 90) + (mirror x) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "d705a598-6fc5-4ff3-a652-f1cb0a1717f9") + (property "Reference" "C1" + (at 140.9699 143.51 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "100nF" + (at 143.5099 143.51 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 146.05 140.6652 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 142.24 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 142.24 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "1afea25a-92b2-4d05-a5c9-0d8fc8552174") + ) + (pin "1" + (uuid "8ac86c8f-52da-4689-9c90-eb60cbff77fe") + ) + (instances + (project "iot-contact" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c" + (reference "C1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 115.57 114.3 0) (unit 1) (exclude_from_sim no) (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced yes) - (uuid "f07314fe-7b09-49cf-b467-c72e0210cbc0") - (property "Reference" "#PWR01" - (at 116.84 26.67 0) + (uuid "dd045ace-112c-424a-ad3b-982fb4c768f7") + (property "Reference" "#PWR010" + (at 115.57 120.65 0) (effects (font (size 1.27 1.27) @@ -4653,8 +5350,8 @@ (hide yes) ) ) - (property "Value" "+3V3" - (at 116.84 17.78 0) + (property "Value" "GND" + (at 115.57 119.38 0) (effects (font (size 1.27 1.27) @@ -4662,7 +5359,7 @@ ) ) (property "Footprint" "" - (at 116.84 22.86 0) + (at 115.57 114.3 0) (effects (font (size 1.27 1.27) @@ -4671,7 +5368,7 @@ ) ) (property "Datasheet" "" - (at 116.84 22.86 0) + (at 115.57 114.3 0) (effects (font (size 1.27 1.27) @@ -4679,8 +5376,8 @@ (hide yes) ) ) - (property "Description" "Power symbol creates a global label with name \"+3V3\"" - (at 116.84 22.86 0) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 115.57 114.3 0) (effects (font (size 1.27 1.27) @@ -4689,46 +5386,47 @@ ) ) (pin "1" - (uuid "54048577-5e4a-4485-9da1-9075022f4eb1") + (uuid "1a4096b2-db22-464d-b040-d8134123dfb5") ) (instances (project "" (path "/5defd195-0277-4d04-9f5f-69e505c9845c" - (reference "#PWR01") + (reference "#PWR010") (unit 1) ) ) ) ) (symbol - (lib_id "Device:LED") - (at 168.91 129.54 90) + (lib_id "Device:C") + (at 142.24 172.72 90) + (mirror x) (unit 1) (exclude_from_sim no) (in_bom yes) (on_board yes) (dnp no) - (uuid "f84af62e-f45c-446e-99ce-43d73a894ddb") - (property "Reference" "D1" - (at 172.72 129.8574 90) + (uuid "dd7b1e56-d454-41d0-bc1c-229823e3ec0e") + (property "Reference" "C6" + (at 140.9699 176.53 0) (effects (font (size 1.27 1.27) ) - (justify right) + (justify left) ) ) - (property "Value" "red" - (at 172.72 132.3974 90) + (property "Value" "100nF" + (at 143.5099 176.53 0) (effects (font (size 1.27 1.27) ) - (justify right) + (justify left) ) ) - (property "Footprint" "LED_SMD:LED_1206_3216Metric" - (at 168.91 129.54 0) + (property "Footprint" "" + (at 146.05 173.6852 0) (effects (font (size 1.27 1.27) @@ -4736,8 +5434,8 @@ (hide yes) ) ) - (property "Datasheet" "https://s3-us-west-2.amazonaws.com/catsy.557/Dialight_CBI_data_598-1206_Apr2018.pdf" - (at 168.91 129.54 0) + (property "Datasheet" "~" + (at 142.24 172.72 0) (effects (font (size 1.27 1.27) @@ -4745,17 +5443,60 @@ (hide yes) ) ) - (property "Description" "LED_PWR: Board powered" - (at 185.166 139.192 90) + (property "Description" "Unpolarized capacitor" + (at 142.24 172.72 0) (effects (font (size 1.27 1.27) ) - (justify right) + (hide yes) ) ) - (property "MPN" "598-8210-107F" - (at 168.91 129.54 0) + (pin "2" + (uuid "6b1033b0-71fe-4c4d-9f3f-f4427f6bf2fc") + ) + (pin "1" + (uuid "bc31d558-e23e-43a2-aec4-24d09511209c") + ) + (instances + (project "iot-contact" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c" + (reference "C6") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 204.47 144.78 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "e20f2e66-8c0d-4714-b7ab-5530e73bc5aa") + (property "Reference" "R10" + (at 207.01 143.5099 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "130" + (at 207.01 146.0499 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 202.692 144.78 90) (effects (font (size 1.27 1.27) @@ -4763,8 +5504,17 @@ (hide yes) ) ) - (property "Manufacturer" "Dialight" - (at 168.91 129.54 0) + (property "Datasheet" "~" + (at 204.47 144.78 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 204.47 144.78 0) (effects (font (size 1.27 1.27) @@ -4773,49 +5523,49 @@ ) ) (pin "2" - (uuid "ffad62d9-6a3f-484f-8d55-647f82592de4") + (uuid "87a9143a-930b-4e28-a65e-c909015bc64d") ) (pin "1" - (uuid "d679efbf-334d-4daf-8f40-2fd6fb31a0fa") + (uuid "c7f3495c-292f-403c-9db7-1669ab5270ec") ) (instances (project "" (path "/5defd195-0277-4d04-9f5f-69e505c9845c" - (reference "D1") + (reference "R10") (unit 1) ) ) ) ) (symbol - (lib_id "Connector:Conn_01x04_Socket") - (at 248.92 100.33 0) + (lib_id "power:+3V3") + (at 116.84 22.86 0) (unit 1) (exclude_from_sim no) (in_bom yes) (on_board yes) (dnp no) - (uuid "f86d0087-ccb7-44bf-be0e-e6c0a5836284") - (property "Reference" "J7" - (at 250.19 100.3299 0) + (fields_autoplaced yes) + (uuid "f07314fe-7b09-49cf-b467-c72e0210cbc0") + (property "Reference" "#PWR01" + (at 116.84 26.67 0) (effects (font (size 1.27 1.27) ) - (justify left) + (hide yes) ) ) - (property "Value" "Conn_01x04_Socket" - (at 250.19 102.8699 0) + (property "Value" "+3V3" + (at 116.84 17.78 0) (effects (font (size 1.27 1.27) ) - (justify left) ) ) - (property "Footprint" "TerminalBlock_WAGO:TerminalBlock_WAGO_236-404_1x04_P5.00mm_45Degree" - (at 248.92 100.33 0) + (property "Footprint" "" + (at 116.84 22.86 0) (effects (font (size 1.27 1.27) @@ -4823,8 +5573,8 @@ (hide yes) ) ) - (property "Datasheet" "~" - (at 248.92 100.33 0) + (property "Datasheet" "" + (at 116.84 22.86 0) (effects (font (size 1.27 1.27) @@ -4832,16 +5582,56 @@ (hide yes) ) ) - (property "Description" "motor connector" - (at 258.318 105.41 0) + (property "Description" "Power symbol creates a global label with name \"+3V3\"" + (at 116.84 22.86 0) (effects (font (size 1.27 1.27) ) + (hide yes) ) ) - (property "MPN" "236-404" - (at 248.92 100.33 0) + (pin "1" + (uuid "54048577-5e4a-4485-9da1-9075022f4eb1") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c" + (reference "#PWR01") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:LED") + (at 191.77 132.08 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "f84af62e-f45c-446e-99ce-43d73a894ddb") + (property "Reference" "D1" + (at 195.58 132.3974 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "red" + (at 195.58 134.9374 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "LED_SMD:LED_1206_3216Metric" + (at 191.77 132.08 0) (effects (font (size 1.27 1.27) @@ -4849,8 +5639,8 @@ (hide yes) ) ) - (property "Manufacturer" "WAGO Corporation" - (at 248.92 100.33 0) + (property "Datasheet" "https://s3-us-west-2.amazonaws.com/catsy.557/Dialight_CBI_data_598-1206_Apr2018.pdf" + (at 191.77 132.08 0) (effects (font (size 1.27 1.27) @@ -4858,22 +5648,43 @@ (hide yes) ) ) - (pin "1" - (uuid "dd173b75-bf5d-418c-900b-22588dbf6f8e") + (property "Description" "PWR" + (at 195.58 137.668 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) ) - (pin "4" - (uuid "d08e74f4-7939-4c87-985a-5c55f3282a4e") + (property "MPN" "598-8210-107F" + (at 191.77 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) ) - (pin "3" - (uuid "4fa4265e-7a54-4aee-91ee-fc3e359ec77e") + (property "Manufacturer" "Dialight" + (at 191.77 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) ) (pin "2" - (uuid "889f97b8-0784-45ed-82f3-d450f0dfd89d") + (uuid "ffad62d9-6a3f-484f-8d55-647f82592de4") + ) + (pin "1" + (uuid "d679efbf-334d-4daf-8f40-2fd6fb31a0fa") ) (instances (project "" (path "/5defd195-0277-4d04-9f5f-69e505c9845c" - (reference "J7") + (reference "D1") (unit 1) ) ) @@ -5069,19 +5880,19 @@ (justify left) ) ) - (pin "RJ45_LED2" output - (at 66.04 106.68 180) - (uuid "077dbbca-8cb5-454f-b4ba-208a8720678f") + (pin "POE_GND" output + (at 91.44 102.87 0) + (uuid "6c770162-6936-4729-b598-10f0375ecc24") (effects (font (size 1.27 1.27) ) - (justify left) + (justify right) ) ) - (pin "POE_GND" output - (at 91.44 97.79 0) - (uuid "6c770162-6936-4729-b598-10f0375ecc24") + (pin "POE_VIN" output + (at 91.44 105.41 0) + (uuid "1863d617-dc5e-4005-9116-05e2cde6d04b") (effects (font (size 1.27 1.27) @@ -5089,9 +5900,9 @@ (justify right) ) ) - (pin "POE_VIN" output - (at 91.44 95.25 0) - (uuid "1863d617-dc5e-4005-9116-05e2cde6d04b") + (pin "POE_PG" output + (at 91.44 107.95 0) + (uuid "d5cab830-e820-4ea2-bbf8-f0e957a12b32") (effects (font (size 1.27 1.27) @@ -5099,51 +5910,59 @@ (justify right) ) ) - (instances - (project "iot-contact" - (path "/5defd195-0277-4d04-9f5f-69e505c9845c" - (page "2") + (pin "RMII_RXD0" output + (at 91.44 67.31 0) + (uuid "ecfc54d5-429b-4052-90b8-8473a68ffa76") + (effects + (font + (size 1.27 1.27) ) + (justify right) ) ) - ) - (sheet - (at 204.47 63.5) - (size 36.83 50.8) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (stroke - (width 0.1524) - (type solid) + (pin "RMII_RXD1" output + (at 91.44 69.85 0) + (uuid "174e373a-d18a-42b2-8a6d-526435ebec58") + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) ) - (fill - (color 0 0 0 0.0000) + (pin "RMII_TXD0" input + (at 91.44 72.39 0) + (uuid "3b128c8b-bae2-4997-8760-99fd5ea20985") + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) ) - (uuid "774a1163-9519-4c75-bf10-cefc947dd50a") - (property "Sheetname" "io" - (at 204.47 62.7884 0) + (pin "RMII_TXD1" bidirectional + (at 91.44 74.93 0) + (uuid "cae42dff-e613-42b3-abf1-cd2c4de89422") (effects (font (size 1.27 1.27) ) - (justify left bottom) + (justify right) ) ) - (property "Sheetfile" "io.kicad_sch" - (at 204.47 114.8846 0) + (pin "RMII_TXEN" input + (at 91.44 77.47 0) + (uuid "48d5d8ce-06cc-472c-8e5f-2925738ee3e0") (effects (font (size 1.27 1.27) ) - (justify left top) + (justify right) ) ) - (pin "AC_EARTH" bidirectional - (at 241.3 86.36 0) - (uuid "d38d9ad1-0808-4eb3-8f04-f5d375279cad") + (pin "~{PHY_RST}" input + (at 91.44 97.79 0) + (uuid "a788684c-88e1-46de-abb7-ef914e56faa5") (effects (font (size 1.27 1.27) @@ -5151,9 +5970,9 @@ (justify right) ) ) - (pin "AC_NEUTRAL" bidirectional - (at 241.3 88.9 0) - (uuid "9f1bb5d9-5f27-4b27-8b9b-3c5279d0e3fd") + (pin "RMII_RXER" output + (at 91.44 80.01 0) + (uuid "ba7b1ea0-ca94-469d-86a9-64aa3dcf4b81") (effects (font (size 1.27 1.27) @@ -5161,9 +5980,19 @@ (justify right) ) ) - (pin "AC_PHASE" bidirectional - (at 241.3 91.44 0) - (uuid "b45797bb-cca3-49c0-86c4-955a6b44d60c") + (pin "RMII_CRS_DV" output + (at 91.44 82.55 0) + (uuid "23e1d8fc-14c2-48aa-b120-7a87199be7e7") + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (pin "RMII_REF_CLK" output + (at 91.44 85.09 0) + (uuid "c75d92bb-8145-4fa1-9e13-53ec11cc9718") (effects (font (size 1.27 1.27) @@ -5171,9 +6000,9 @@ (justify right) ) ) - (pin "MOT_EARTH" bidirectional - (at 241.3 97.79 0) - (uuid "a3defca1-3eed-4b57-ab0a-f16f59fee2c7") + (pin "MDC" input + (at 91.44 90.17 0) + (uuid "84d6bf19-ad6b-465b-8c59-32bd8d44b6a2") (effects (font (size 1.27 1.27) @@ -5181,9 +6010,61 @@ (justify right) ) ) - (pin "MOT_NEUTRAL" bidirectional - (at 241.3 100.33 0) - (uuid "3b66624d-b956-4a77-a1d2-be8580699a49") + (pin "MDIO" bidirectional + (at 91.44 92.71 0) + (uuid "17d35c8a-6c12-4603-8c6c-262f2a123754") + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (instances + (project "iot-contact" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c" + (page "2") + ) + ) + ) + ) + (sheet + (at 204.47 63.5) + (size 36.83 50.8) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (color 0 0 0 0.0000) + ) + (uuid "774a1163-9519-4c75-bf10-cefc947dd50a") + (property "Sheetname" "io" + (at 204.47 62.7884 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + ) + (property "Sheetfile" "io.kicad_sch" + (at 204.47 114.8846 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + ) + ) + (pin "AC_PHASE" bidirectional + (at 241.3 88.9 0) + (uuid "b45797bb-cca3-49c0-86c4-955a6b44d60c") (effects (font (size 1.27 1.27) @@ -5192,7 +6073,7 @@ ) ) (pin "MOT_PHASE_1" bidirectional - (at 241.3 102.87 0) + (at 241.3 91.44 0) (uuid "ead288da-2d52-42f6-b402-c382468e36d4") (effects (font @@ -5202,7 +6083,7 @@ ) ) (pin "MOT_PHASE_2" bidirectional - (at 241.3 105.41 0) + (at 241.3 93.98 0) (uuid "e9687363-d732-4f1b-99ef-f6609013c187") (effects (font @@ -5212,7 +6093,7 @@ ) ) (pin "CONTACT_1" bidirectional - (at 241.3 74.93 0) + (at 241.3 83.82 0) (uuid "45229719-3224-4355-bc91-87ebcb939c01") (effects (font @@ -5222,7 +6103,7 @@ ) ) (pin "CONTACT_2" bidirectional - (at 241.3 77.47 0) + (at 241.3 86.36 0) (uuid "b1fc0b36-ff3b-4224-9ca0-41809406e0d1") (effects (font @@ -5324,16 +6205,6 @@ (justify right) ) ) - (pin "~{JTAG_RESET}" input - (at 146.05 63.5 90) - (uuid "f2ff1c71-789c-460a-9357-101a7df15ffe") - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) (pin "JTAG_TMS" bidirectional (at 140.97 63.5 90) (uuid "0c7de78a-5236-4739-9d97-7135d8778045") @@ -5394,26 +6265,6 @@ (justify left) ) ) - (pin "BTN_REBOOT" input - (at 156.21 114.3 270) - (uuid "25cdef05-d216-4465-af84-0c3bcab2af5a") - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (pin "BTN_WIPE" input - (at 158.75 114.3 270) - (uuid "6ad16868-63a8-44e1-a096-87e22852f914") - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) (pin "LED_ACT" output (at 173.99 114.3 270) (uuid "c6d0305a-4e79-4cb1-88dd-2bc3b4bd5355") @@ -5454,6 +6305,36 @@ (justify right) ) ) + (pin "VVERSION" input + (at 127 104.14 180) + (uuid "cc6082cf-6e1b-4529-a830-c6a9254ad3b1") + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (pin "~{BTN_WIPE}" input + (at 158.75 114.3 270) + (uuid "a3c81ecf-25b7-4d55-bb41-ea32fa2b6812") + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (pin "~{RESET}" input + (at 146.05 63.5 90) + (uuid "c28fce53-3088-49a6-a35c-932402637531") + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) (instances (project "iot-contact" (path "/5defd195-0277-4d04-9f5f-69e505c9845c" @@ -5463,7 +6344,7 @@ ) ) (sheet - (at 134.62 160.02) + (at 29.21 148.59) (size 25.4 25.4) (exclude_from_sim no) (in_bom yes) @@ -5479,7 +6360,7 @@ ) (uuid "beb75790-f0de-47e4-906f-fee3b6a2625b") (property "Sheetname" "power" - (at 134.62 159.3084 0) + (at 29.21 147.8784 0) (effects (font (size 1.27 1.27) @@ -5488,7 +6369,7 @@ ) ) (property "Sheetfile" "power.kicad_sch" - (at 134.62 186.0046 0) + (at 29.21 174.5746 0) (effects (font (size 1.27 1.27) @@ -5497,43 +6378,53 @@ ) ) (pin "EXT_5V" input - (at 134.62 180.34 180) + (at 54.61 168.91 0) (uuid "11dd0a29-5492-4d6f-9acc-6ab015287d8c") (effects (font (size 1.27 1.27) ) - (justify left) + (justify right) ) ) (pin "EXT_GND" input - (at 134.62 177.8 180) + (at 54.61 166.37 0) (uuid "9a44079c-d24e-41f2-8229-98b9bddeee4a") (effects (font (size 1.27 1.27) ) - (justify left) + (justify right) ) ) (pin "POE_VIN" input - (at 134.62 165.1 180) + (at 54.61 153.67 0) (uuid "d4171910-9a3e-4a25-9fbf-66e6c04f97f4") (effects (font (size 1.27 1.27) ) - (justify left) + (justify right) ) ) (pin "POE_GND" input - (at 134.62 167.64 180) + (at 54.61 156.21 0) (uuid "f26f9d44-739a-4944-be9c-d5a789e50e87") (effects (font (size 1.27 1.27) ) - (justify left) + (justify right) + ) + ) + (pin "POE_PG" input + (at 54.61 151.13 0) + (uuid "3b86b838-cb09-495a-a453-b74cd7ecb267") + (effects + (font + (size 1.27 1.27) + ) + (justify right) ) ) (instances diff --git a/pcb/meson.build b/pcb/meson.build new file mode 100644 index 0000000..4feecce --- /dev/null +++ b/pcb/meson.build @@ -0,0 +1,41 @@ +schematic_files = [ + 'iot-contact.kicad_sch', + 'contacts.kicad_sch', + 'ethernet.kicad_sch', + 'io.kicad_sch', + 'power.kicad_sch', + 'processor.kicad_sch', +] + +schematic = custom_target( + output: ['schematic.pdf'], + command: [ + 'kicad-cli', + 'sch', + 'export', + 'pdf', + '--output', meson.current_build_dir() / 'schematic.pdf', + meson.current_source_dir() / 'iot-contact.kicad_sch', + ], + depend_files: schematic_files, + build_by_default: true, +) + +bom = custom_target( + output: ['bill-of-materials.csv'], + command: [ + 'kicad-cli', + 'sch', + 'export', + 'bom', + '--fields', + 'Reference,Description,Value,Footprint,Manufacturer,MPN,Datasheet', + '--output', meson.current_build_dir() / 'bill-of-materials.csv', + meson.current_source_dir() / 'iot-contact.kicad_sch', + ], + depend_files: schematic_files, + build_by_default: true, +) + +fs = import('fs') +kicad_pcb = fs.copyfile(meson.current_source_dir() / 'iot-contact.kicad_pcb') diff --git a/pcb/power.kicad_sch b/pcb/power.kicad_sch index 3470e2e..d23e99a 100644 --- a/pcb/power.kicad_sch +++ b/pcb/power.kicad_sch @@ -41,6 +41,17 @@ ) (uuid "c603889f-a252-47f2-a949-32058b61158a") ) + (hierarchical_label "POE_PG" + (shape input) + (at 50.8 99.06 180) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "dd015bab-89f0-45ad-a6b7-aad64f7a9ff6") + ) (hierarchical_label "EXT_5V" (shape input) (at 50.8 114.3 180) diff --git a/pcb/processor.kicad_sch b/pcb/processor.kicad_sch index 41b29b9..b705643 100644 --- a/pcb/processor.kicad_sch +++ b/pcb/processor.kicad_sch @@ -7,43 +7,4212 @@ (title_block (title "iot-contact") ) - (lib_symbols) - (hierarchical_label "BTN_REBOOT" - (shape input) - (at 114.3 139.7 270) + (lib_symbols + (symbol "Device:C" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0.254) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "C" + (at 0.635 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "C" + (at 0.635 -2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 0.9652 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "cap capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "C_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "C_0_1" + (polyline + (pts + (xy -2.032 0.762) (xy 2.032 0.762) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -2.032 -0.762) (xy 2.032 -0.762) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "C_1_1" + (pin passive line + (at 0 3.81 270) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Device:Crystal" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 1.016) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "Y" + (at 0 3.81 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "Crystal" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Two pin crystal" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "quartz ceramic resonator oscillator" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "Crystal*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "Crystal_0_1" + (polyline + (pts + (xy -2.54 0) (xy -1.905 0) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.905 -1.27) (xy -1.905 1.27) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -1.143 2.54) + (end 1.143 -2.54) + (stroke + (width 0.3048) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.905 -1.27) (xy 1.905 1.27) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 2.54 0) (xy 1.905 0) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "Crystal_1_1" + (pin passive line + (at -3.81 0 0) + (length 1.27) + (name "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 3.81 0 180) + (length 1.27) + (name "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Device:FerriteBead" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "FB" + (at -3.81 0.635 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "FerriteBead" + (at 3.81 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at -1.778 0 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Ferrite bead" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "L ferrite bead inductor filter" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "Inductor_* L_* *Ferrite*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "FerriteBead_0_1" + (polyline + (pts + (xy -2.7686 0.4064) (xy -1.7018 2.2606) (xy 2.7686 -0.3048) (xy 1.6764 -2.159) (xy -2.7686 0.4064) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 1.27) (xy 0 1.2954) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 -1.27) (xy 0 -1.2192) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "FerriteBead_1_1" + (pin passive line + (at 0 3.81 270) + (length 2.54) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 2.54) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Device:R" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "R" + (at 2.032 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "R" + (at 0 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at -1.778 0 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "R res resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "R_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "R_0_1" + (rectangle + (start -1.016 -2.54) + (end 1.016 2.54) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "R_1_1" + (pin passive line + (at 0 3.81 270) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "MCU_ST_STM32F4:STM32F427VITx" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "U" + (at -20.32 69.85 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "STM32F427VITx" + (at 12.7 69.85 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Package_QFP:LQFP-100_14x14mm_P0.5mm" + (at -20.32 -66.04 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + (property "Datasheet" "https://www.st.com/resource/en/datasheet/stm32f427vi.pdf" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "STMicroelectronics Arm Cortex-M4 MCU, 2048KB flash, 256KB RAM, 180 MHz, 1.8-3.6V, 82 GPIO, LQFP100" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "Arm Cortex-M4 STM32F4 STM32F427/437" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "LQFP*14x14mm*P0.5mm*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "STM32F427VITx_0_1" + (rectangle + (start -20.32 -66.04) + (end 20.32 68.58) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + ) + (symbol "STM32F427VITx_1_1" + (pin input line + (at -25.4 63.5 0) + (length 5.08) + (name "NRST" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -25.4 58.42 0) + (length 5.08) + (name "BOOT0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "94" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -25.4 53.34 0) + (length 5.08) + (name "VREF+" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "21" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -25.4 48.26 0) + (length 5.08) + (name "PH0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "RCC_OSC_IN" bidirectional line) + ) + (pin bidirectional line + (at -25.4 45.72 0) + (length 5.08) + (name "PH1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "RCC_OSC_OUT" bidirectional line) + ) + (pin bidirectional line + (at -25.4 40.64 0) + (length 5.08) + (name "PE0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "97" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DCMI_D2" bidirectional line) + (alternate "FMC_NBL0" bidirectional line) + (alternate "TIM4_ETR" bidirectional line) + (alternate "UART8_RX" bidirectional line) + ) + (pin bidirectional line + (at -25.4 38.1 0) + (length 5.08) + (name "PE1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "98" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DCMI_D3" bidirectional line) + (alternate "FMC_NBL1" bidirectional line) + (alternate "UART8_TX" bidirectional line) + ) + (pin bidirectional line + (at -25.4 35.56 0) + (length 5.08) + (name "PE2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ETH_TXD3" bidirectional line) + (alternate "FMC_A23" bidirectional line) + (alternate "SAI1_MCLK_A" bidirectional line) + (alternate "SPI4_SCK" bidirectional line) + (alternate "SYS_TRACECLK" bidirectional line) + ) + (pin bidirectional line + (at -25.4 33.02 0) + (length 5.08) + (name "PE3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "FMC_A19" bidirectional line) + (alternate "SAI1_SD_B" bidirectional line) + (alternate "SYS_TRACED0" bidirectional line) + ) + (pin bidirectional line + (at -25.4 30.48 0) + (length 5.08) + (name "PE4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DCMI_D4" bidirectional line) + (alternate "FMC_A20" bidirectional line) + (alternate "SAI1_FS_A" bidirectional line) + (alternate "SPI4_NSS" bidirectional line) + (alternate "SYS_TRACED1" bidirectional line) + ) + (pin bidirectional line + (at -25.4 27.94 0) + (length 5.08) + (name "PE5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DCMI_D6" bidirectional line) + (alternate "FMC_A21" bidirectional line) + (alternate "SAI1_SCK_A" bidirectional line) + (alternate "SPI4_MISO" bidirectional line) + (alternate "SYS_TRACED2" bidirectional line) + (alternate "TIM9_CH1" bidirectional line) + ) + (pin bidirectional line + (at -25.4 25.4 0) + (length 5.08) + (name "PE6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DCMI_D7" bidirectional line) + (alternate "FMC_A22" bidirectional line) + (alternate "SAI1_SD_A" bidirectional line) + (alternate "SPI4_MOSI" bidirectional line) + (alternate "SYS_TRACED3" bidirectional line) + (alternate "TIM9_CH2" bidirectional line) + ) + (pin bidirectional line + (at -25.4 22.86 0) + (length 5.08) + (name "PE7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "38" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "FMC_D4" bidirectional line) + (alternate "FMC_DA4" bidirectional line) + (alternate "TIM1_ETR" bidirectional line) + (alternate "UART7_RX" bidirectional line) + ) + (pin bidirectional line + (at -25.4 20.32 0) + (length 5.08) + (name "PE8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "39" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "FMC_D5" bidirectional line) + (alternate "FMC_DA5" bidirectional line) + (alternate "TIM1_CH1N" bidirectional line) + (alternate "UART7_TX" bidirectional line) + ) + (pin bidirectional line + (at -25.4 17.78 0) + (length 5.08) + (name "PE9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "40" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DAC_EXTI9" bidirectional line) + (alternate "FMC_D6" bidirectional line) + (alternate "FMC_DA6" bidirectional line) + (alternate "TIM1_CH1" bidirectional line) + ) + (pin bidirectional line + (at -25.4 15.24 0) + (length 5.08) + (name "PE10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "41" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "FMC_D7" bidirectional line) + (alternate "FMC_DA7" bidirectional line) + (alternate "TIM1_CH2N" bidirectional line) + ) + (pin bidirectional line + (at -25.4 12.7 0) + (length 5.08) + (name "PE11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "42" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_EXTI11" bidirectional line) + (alternate "ADC2_EXTI11" bidirectional line) + (alternate "ADC3_EXTI11" bidirectional line) + (alternate "FMC_D8" bidirectional line) + (alternate "FMC_DA8" bidirectional line) + (alternate "SPI4_NSS" bidirectional line) + (alternate "TIM1_CH2" bidirectional line) + ) + (pin bidirectional line + (at -25.4 10.16 0) + (length 5.08) + (name "PE12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "43" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "FMC_D9" bidirectional line) + (alternate "FMC_DA9" bidirectional line) + (alternate "SPI4_SCK" bidirectional line) + (alternate "TIM1_CH3N" bidirectional line) + ) + (pin bidirectional line + (at -25.4 7.62 0) + (length 5.08) + (name "PE13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "44" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "FMC_D10" bidirectional line) + (alternate "FMC_DA10" bidirectional line) + (alternate "SPI4_MISO" bidirectional line) + (alternate "TIM1_CH3" bidirectional line) + ) + (pin bidirectional line + (at -25.4 5.08 0) + (length 5.08) + (name "PE14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "45" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "FMC_D11" bidirectional line) + (alternate "FMC_DA11" bidirectional line) + (alternate "SPI4_MOSI" bidirectional line) + (alternate "TIM1_CH4" bidirectional line) + ) + (pin bidirectional line + (at -25.4 2.54 0) + (length 5.08) + (name "PE15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "46" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_EXTI15" bidirectional line) + (alternate "ADC2_EXTI15" bidirectional line) + (alternate "ADC3_EXTI15" bidirectional line) + (alternate "FMC_D12" bidirectional line) + (alternate "FMC_DA12" bidirectional line) + (alternate "TIM1_BKIN" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -2.54 0) + (length 5.08) + (name "PD0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "81" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "CAN1_RX" bidirectional line) + (alternate "FMC_D2" bidirectional line) + (alternate "FMC_DA2" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -5.08 0) + (length 5.08) + (name "PD1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "82" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "CAN1_TX" bidirectional line) + (alternate "FMC_D3" bidirectional line) + (alternate "FMC_DA3" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -7.62 0) + (length 5.08) + (name "PD2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "83" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DCMI_D11" bidirectional line) + (alternate "SDIO_CMD" bidirectional line) + (alternate "TIM3_ETR" bidirectional line) + (alternate "UART5_RX" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -10.16 0) + (length 5.08) + (name "PD3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "84" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DCMI_D5" bidirectional line) + (alternate "FMC_CLK" bidirectional line) + (alternate "I2S2_CK" bidirectional line) + (alternate "SPI2_SCK" bidirectional line) + (alternate "USART2_CTS" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -12.7 0) + (length 5.08) + (name "PD4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "85" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "FMC_NOE" bidirectional line) + (alternate "USART2_RTS" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -15.24 0) + (length 5.08) + (name "PD5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "86" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "FMC_NWE" bidirectional line) + (alternate "USART2_TX" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -17.78 0) + (length 5.08) + (name "PD6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "87" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DCMI_D10" bidirectional line) + (alternate "FMC_NWAIT" bidirectional line) + (alternate "I2S3_SD" bidirectional line) + (alternate "SAI1_SD_A" bidirectional line) + (alternate "SPI3_MOSI" bidirectional line) + (alternate "USART2_RX" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -20.32 0) + (length 5.08) + (name "PD7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "88" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "FMC_NCE2" bidirectional line) + (alternate "FMC_NE1" bidirectional line) + (alternate "USART2_CK" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -22.86 0) + (length 5.08) + (name "PD8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "55" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "FMC_D13" bidirectional line) + (alternate "FMC_DA13" bidirectional line) + (alternate "USART3_TX" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -25.4 0) + (length 5.08) + (name "PD9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "56" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DAC_EXTI9" bidirectional line) + (alternate "FMC_D14" bidirectional line) + (alternate "FMC_DA14" bidirectional line) + (alternate "USART3_RX" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -27.94 0) + (length 5.08) + (name "PD10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "57" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "FMC_D15" bidirectional line) + (alternate "FMC_DA15" bidirectional line) + (alternate "USART3_CK" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -30.48 0) + (length 5.08) + (name "PD11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "58" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_EXTI11" bidirectional line) + (alternate "ADC2_EXTI11" bidirectional line) + (alternate "ADC3_EXTI11" bidirectional line) + (alternate "FMC_A16" bidirectional line) + (alternate "FMC_CLE" bidirectional line) + (alternate "USART3_CTS" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -33.02 0) + (length 5.08) + (name "PD12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "59" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "FMC_A17" bidirectional line) + (alternate "FMC_ALE" bidirectional line) + (alternate "TIM4_CH1" bidirectional line) + (alternate "USART3_RTS" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -35.56 0) + (length 5.08) + (name "PD13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "60" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "FMC_A18" bidirectional line) + (alternate "TIM4_CH2" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -38.1 0) + (length 5.08) + (name "PD14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "61" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "FMC_D0" bidirectional line) + (alternate "FMC_DA0" bidirectional line) + (alternate "TIM4_CH3" bidirectional line) + ) + (pin bidirectional line + (at -25.4 -40.64 0) + (length 5.08) + (name "PD15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "62" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_EXTI15" bidirectional line) + (alternate "ADC2_EXTI15" bidirectional line) + (alternate "ADC3_EXTI15" bidirectional line) + (alternate "FMC_D1" bidirectional line) + (alternate "FMC_DA1" bidirectional line) + (alternate "TIM4_CH4" bidirectional line) + ) + (pin power_out line + (at -25.4 -45.72 0) + (length 5.08) + (name "VCAP_1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "49" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_out line + (at -25.4 -48.26 0) + (length 5.08) + (name "VCAP_2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "73" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at -7.62 73.66 270) + (length 5.08) + (name "VBAT" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at -5.08 73.66 270) + (length 5.08) + (name "VDD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at -2.54 73.66 270) + (length 5.08) + (name "VDD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "19" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 73.66 270) + (length 5.08) + (name "VDD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "28" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 -71.12 90) + (length 5.08) + (name "VSS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -71.12 90) + (length 5.08) + (hide yes) + (name "VSS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "27" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -71.12 90) + (length 5.08) + (hide yes) + (name "VSS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "74" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -71.12 90) + (length 5.08) + (hide yes) + (name "VSS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "99" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 2.54 73.66 270) + (length 5.08) + (name "VDD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "50" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 2.54 -71.12 90) + (length 5.08) + (name "VSSA" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "20" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 5.08 73.66 270) + (length 5.08) + (name "VDD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "75" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 7.62 73.66 270) + (length 5.08) + (name "VDD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "100" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 10.16 73.66 270) + (length 5.08) + (name "VDDA" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "22" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 25.4 63.5 180) + (length 5.08) + (name "PA0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "23" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN0" bidirectional line) + (alternate "ADC2_IN0" bidirectional line) + (alternate "ADC3_IN0" bidirectional line) + (alternate "ETH_CRS" bidirectional line) + (alternate "SYS_WKUP" bidirectional line) + (alternate "TIM2_CH1" bidirectional line) + (alternate "TIM2_ETR" bidirectional line) + (alternate "TIM5_CH1" bidirectional line) + (alternate "TIM8_ETR" bidirectional line) + (alternate "UART4_TX" bidirectional line) + (alternate "USART2_CTS" bidirectional line) + ) + (pin bidirectional line + (at 25.4 60.96 180) + (length 5.08) + (name "PA1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "24" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN1" bidirectional line) + (alternate "ADC2_IN1" bidirectional line) + (alternate "ADC3_IN1" bidirectional line) + (alternate "ETH_REF_CLK" bidirectional line) + (alternate "ETH_RX_CLK" bidirectional line) + (alternate "TIM2_CH2" bidirectional line) + (alternate "TIM5_CH2" bidirectional line) + (alternate "UART4_RX" bidirectional line) + (alternate "USART2_RTS" bidirectional line) + ) + (pin bidirectional line + (at 25.4 58.42 180) + (length 5.08) + (name "PA2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "25" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN2" bidirectional line) + (alternate "ADC2_IN2" bidirectional line) + (alternate "ADC3_IN2" bidirectional line) + (alternate "ETH_MDIO" bidirectional line) + (alternate "TIM2_CH3" bidirectional line) + (alternate "TIM5_CH3" bidirectional line) + (alternate "TIM9_CH1" bidirectional line) + (alternate "USART2_TX" bidirectional line) + ) + (pin bidirectional line + (at 25.4 55.88 180) + (length 5.08) + (name "PA3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "26" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN3" bidirectional line) + (alternate "ADC2_IN3" bidirectional line) + (alternate "ADC3_IN3" bidirectional line) + (alternate "ETH_COL" bidirectional line) + (alternate "TIM2_CH4" bidirectional line) + (alternate "TIM5_CH4" bidirectional line) + (alternate "TIM9_CH2" bidirectional line) + (alternate "USART2_RX" bidirectional line) + (alternate "USB_OTG_HS_ULPI_D0" bidirectional line) + ) + (pin bidirectional line + (at 25.4 53.34 180) + (length 5.08) + (name "PA4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "29" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN4" bidirectional line) + (alternate "ADC2_IN4" bidirectional line) + (alternate "DAC_OUT1" bidirectional line) + (alternate "DCMI_HSYNC" bidirectional line) + (alternate "I2S3_WS" bidirectional line) + (alternate "SPI1_NSS" bidirectional line) + (alternate "SPI3_NSS" bidirectional line) + (alternate "USART2_CK" bidirectional line) + (alternate "USB_OTG_HS_SOF" bidirectional line) + ) + (pin bidirectional line + (at 25.4 50.8 180) + (length 5.08) + (name "PA5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "30" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN5" bidirectional line) + (alternate "ADC2_IN5" bidirectional line) + (alternate "DAC_OUT2" bidirectional line) + (alternate "SPI1_SCK" bidirectional line) + (alternate "TIM2_CH1" bidirectional line) + (alternate "TIM2_ETR" bidirectional line) + (alternate "TIM8_CH1N" bidirectional line) + (alternate "USB_OTG_HS_ULPI_CK" bidirectional line) + ) + (pin bidirectional line + (at 25.4 48.26 180) + (length 5.08) + (name "PA6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "31" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN6" bidirectional line) + (alternate "ADC2_IN6" bidirectional line) + (alternate "DCMI_PIXCLK" bidirectional line) + (alternate "SPI1_MISO" bidirectional line) + (alternate "TIM13_CH1" bidirectional line) + (alternate "TIM1_BKIN" bidirectional line) + (alternate "TIM3_CH1" bidirectional line) + (alternate "TIM8_BKIN" bidirectional line) + ) + (pin bidirectional line + (at 25.4 45.72 180) + (length 5.08) + (name "PA7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "32" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN7" bidirectional line) + (alternate "ADC2_IN7" bidirectional line) + (alternate "ETH_CRS_DV" bidirectional line) + (alternate "ETH_RX_DV" bidirectional line) + (alternate "SPI1_MOSI" bidirectional line) + (alternate "TIM14_CH1" bidirectional line) + (alternate "TIM1_CH1N" bidirectional line) + (alternate "TIM3_CH2" bidirectional line) + (alternate "TIM8_CH1N" bidirectional line) + ) + (pin bidirectional line + (at 25.4 43.18 180) + (length 5.08) + (name "PA8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "67" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "I2C3_SCL" bidirectional line) + (alternate "RCC_MCO_1" bidirectional line) + (alternate "TIM1_CH1" bidirectional line) + (alternate "USART1_CK" bidirectional line) + (alternate "USB_OTG_FS_SOF" bidirectional line) + ) + (pin bidirectional line + (at 25.4 40.64 180) + (length 5.08) + (name "PA9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "68" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DAC_EXTI9" bidirectional line) + (alternate "DCMI_D0" bidirectional line) + (alternate "I2C3_SMBA" bidirectional line) + (alternate "TIM1_CH2" bidirectional line) + (alternate "USART1_TX" bidirectional line) + (alternate "USB_OTG_FS_VBUS" bidirectional line) + ) + (pin bidirectional line + (at 25.4 38.1 180) + (length 5.08) + (name "PA10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "69" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DCMI_D1" bidirectional line) + (alternate "TIM1_CH3" bidirectional line) + (alternate "USART1_RX" bidirectional line) + (alternate "USB_OTG_FS_ID" bidirectional line) + ) + (pin bidirectional line + (at 25.4 35.56 180) + (length 5.08) + (name "PA11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "70" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_EXTI11" bidirectional line) + (alternate "ADC2_EXTI11" bidirectional line) + (alternate "ADC3_EXTI11" bidirectional line) + (alternate "CAN1_RX" bidirectional line) + (alternate "TIM1_CH4" bidirectional line) + (alternate "USART1_CTS" bidirectional line) + (alternate "USB_OTG_FS_DM" bidirectional line) + ) + (pin bidirectional line + (at 25.4 33.02 180) + (length 5.08) + (name "PA12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "71" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "CAN1_TX" bidirectional line) + (alternate "TIM1_ETR" bidirectional line) + (alternate "USART1_RTS" bidirectional line) + (alternate "USB_OTG_FS_DP" bidirectional line) + ) + (pin bidirectional line + (at 25.4 30.48 180) + (length 5.08) + (name "PA13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "72" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "SYS_JTMS-SWDIO" bidirectional line) + ) + (pin bidirectional line + (at 25.4 27.94 180) + (length 5.08) + (name "PA14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "76" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "SYS_JTCK-SWCLK" bidirectional line) + ) + (pin bidirectional line + (at 25.4 25.4 180) + (length 5.08) + (name "PA15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "77" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_EXTI15" bidirectional line) + (alternate "ADC2_EXTI15" bidirectional line) + (alternate "ADC3_EXTI15" bidirectional line) + (alternate "I2S3_WS" bidirectional line) + (alternate "SPI1_NSS" bidirectional line) + (alternate "SPI3_NSS" bidirectional line) + (alternate "SYS_JTDI" bidirectional line) + (alternate "TIM2_CH1" bidirectional line) + (alternate "TIM2_ETR" bidirectional line) + ) + (pin bidirectional line + (at 25.4 20.32 180) + (length 5.08) + (name "PB0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "35" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN8" bidirectional line) + (alternate "ADC2_IN8" bidirectional line) + (alternate "ETH_RXD2" bidirectional line) + (alternate "TIM1_CH2N" bidirectional line) + (alternate "TIM3_CH3" bidirectional line) + (alternate "TIM8_CH2N" bidirectional line) + (alternate "USB_OTG_HS_ULPI_D1" bidirectional line) + ) + (pin bidirectional line + (at 25.4 17.78 180) + (length 5.08) + (name "PB1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "36" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN9" bidirectional line) + (alternate "ADC2_IN9" bidirectional line) + (alternate "ETH_RXD3" bidirectional line) + (alternate "TIM1_CH3N" bidirectional line) + (alternate "TIM3_CH4" bidirectional line) + (alternate "TIM8_CH3N" bidirectional line) + (alternate "USB_OTG_HS_ULPI_D2" bidirectional line) + ) + (pin bidirectional line + (at 25.4 15.24 180) + (length 5.08) + (name "PB2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "37" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 25.4 12.7 180) + (length 5.08) + (name "PB3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "89" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "I2S3_CK" bidirectional line) + (alternate "SPI1_SCK" bidirectional line) + (alternate "SPI3_SCK" bidirectional line) + (alternate "SYS_JTDO-SWO" bidirectional line) + (alternate "TIM2_CH2" bidirectional line) + ) + (pin bidirectional line + (at 25.4 10.16 180) + (length 5.08) + (name "PB4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "90" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "I2S3_ext_SD" bidirectional line) + (alternate "SPI1_MISO" bidirectional line) + (alternate "SPI3_MISO" bidirectional line) + (alternate "SYS_JTRST" bidirectional line) + (alternate "TIM3_CH1" bidirectional line) + ) + (pin bidirectional line + (at 25.4 7.62 180) + (length 5.08) + (name "PB5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "91" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "CAN2_RX" bidirectional line) + (alternate "DCMI_D10" bidirectional line) + (alternate "ETH_PPS_OUT" bidirectional line) + (alternate "FMC_SDCKE1" bidirectional line) + (alternate "I2C1_SMBA" bidirectional line) + (alternate "I2S3_SD" bidirectional line) + (alternate "SPI1_MOSI" bidirectional line) + (alternate "SPI3_MOSI" bidirectional line) + (alternate "TIM3_CH2" bidirectional line) + (alternate "USB_OTG_HS_ULPI_D7" bidirectional line) + ) + (pin bidirectional line + (at 25.4 5.08 180) + (length 5.08) + (name "PB6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "92" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "CAN2_TX" bidirectional line) + (alternate "DCMI_D5" bidirectional line) + (alternate "FMC_SDNE1" bidirectional line) + (alternate "I2C1_SCL" bidirectional line) + (alternate "TIM4_CH1" bidirectional line) + (alternate "USART1_TX" bidirectional line) + ) + (pin bidirectional line + (at 25.4 2.54 180) + (length 5.08) + (name "PB7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "93" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DCMI_VSYNC" bidirectional line) + (alternate "FMC_NL" bidirectional line) + (alternate "I2C1_SDA" bidirectional line) + (alternate "TIM4_CH2" bidirectional line) + (alternate "USART1_RX" bidirectional line) + ) + (pin bidirectional line + (at 25.4 0 180) + (length 5.08) + (name "PB8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "95" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "CAN1_RX" bidirectional line) + (alternate "DCMI_D6" bidirectional line) + (alternate "ETH_TXD3" bidirectional line) + (alternate "I2C1_SCL" bidirectional line) + (alternate "SDIO_D4" bidirectional line) + (alternate "TIM10_CH1" bidirectional line) + (alternate "TIM4_CH3" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -2.54 180) + (length 5.08) + (name "PB9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "96" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "CAN1_TX" bidirectional line) + (alternate "DAC_EXTI9" bidirectional line) + (alternate "DCMI_D7" bidirectional line) + (alternate "I2C1_SDA" bidirectional line) + (alternate "I2S2_WS" bidirectional line) + (alternate "SDIO_D5" bidirectional line) + (alternate "SPI2_NSS" bidirectional line) + (alternate "TIM11_CH1" bidirectional line) + (alternate "TIM4_CH4" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -5.08 180) + (length 5.08) + (name "PB10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "47" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ETH_RX_ER" bidirectional line) + (alternate "I2C2_SCL" bidirectional line) + (alternate "I2S2_CK" bidirectional line) + (alternate "SPI2_SCK" bidirectional line) + (alternate "TIM2_CH3" bidirectional line) + (alternate "USART3_TX" bidirectional line) + (alternate "USB_OTG_HS_ULPI_D3" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -7.62 180) + (length 5.08) + (name "PB11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "48" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_EXTI11" bidirectional line) + (alternate "ADC2_EXTI11" bidirectional line) + (alternate "ADC3_EXTI11" bidirectional line) + (alternate "ETH_TX_EN" bidirectional line) + (alternate "I2C2_SDA" bidirectional line) + (alternate "TIM2_CH4" bidirectional line) + (alternate "USART3_RX" bidirectional line) + (alternate "USB_OTG_HS_ULPI_D4" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -10.16 180) + (length 5.08) + (name "PB12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "51" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "CAN2_RX" bidirectional line) + (alternate "ETH_TXD0" bidirectional line) + (alternate "I2C2_SMBA" bidirectional line) + (alternate "I2S2_WS" bidirectional line) + (alternate "SPI2_NSS" bidirectional line) + (alternate "TIM1_BKIN" bidirectional line) + (alternate "USART3_CK" bidirectional line) + (alternate "USB_OTG_HS_ID" bidirectional line) + (alternate "USB_OTG_HS_ULPI_D5" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -12.7 180) + (length 5.08) + (name "PB13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "52" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "CAN2_TX" bidirectional line) + (alternate "ETH_TXD1" bidirectional line) + (alternate "I2S2_CK" bidirectional line) + (alternate "SPI2_SCK" bidirectional line) + (alternate "TIM1_CH1N" bidirectional line) + (alternate "USART3_CTS" bidirectional line) + (alternate "USB_OTG_HS_ULPI_D6" bidirectional line) + (alternate "USB_OTG_HS_VBUS" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -15.24 180) + (length 5.08) + (name "PB14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "53" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "I2S2_ext_SD" bidirectional line) + (alternate "SPI2_MISO" bidirectional line) + (alternate "TIM12_CH1" bidirectional line) + (alternate "TIM1_CH2N" bidirectional line) + (alternate "TIM8_CH2N" bidirectional line) + (alternate "USART3_RTS" bidirectional line) + (alternate "USB_OTG_HS_DM" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -17.78 180) + (length 5.08) + (name "PB15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "54" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_EXTI15" bidirectional line) + (alternate "ADC2_EXTI15" bidirectional line) + (alternate "ADC3_EXTI15" bidirectional line) + (alternate "I2S2_SD" bidirectional line) + (alternate "RTC_REFIN" bidirectional line) + (alternate "SPI2_MOSI" bidirectional line) + (alternate "TIM12_CH2" bidirectional line) + (alternate "TIM1_CH3N" bidirectional line) + (alternate "TIM8_CH3N" bidirectional line) + (alternate "USB_OTG_HS_DP" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -22.86 180) + (length 5.08) + (name "PC0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN10" bidirectional line) + (alternate "ADC2_IN10" bidirectional line) + (alternate "ADC3_IN10" bidirectional line) + (alternate "FMC_SDNWE" bidirectional line) + (alternate "USB_OTG_HS_ULPI_STP" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -25.4 180) + (length 5.08) + (name "PC1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "16" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN11" bidirectional line) + (alternate "ADC2_IN11" bidirectional line) + (alternate "ADC3_IN11" bidirectional line) + (alternate "ETH_MDC" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -27.94 180) + (length 5.08) + (name "PC2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "17" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN12" bidirectional line) + (alternate "ADC2_IN12" bidirectional line) + (alternate "ADC3_IN12" bidirectional line) + (alternate "ETH_TXD2" bidirectional line) + (alternate "FMC_SDNE0" bidirectional line) + (alternate "I2S2_ext_SD" bidirectional line) + (alternate "SPI2_MISO" bidirectional line) + (alternate "USB_OTG_HS_ULPI_DIR" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -30.48 180) + (length 5.08) + (name "PC3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "18" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN13" bidirectional line) + (alternate "ADC2_IN13" bidirectional line) + (alternate "ADC3_IN13" bidirectional line) + (alternate "ETH_TX_CLK" bidirectional line) + (alternate "FMC_SDCKE0" bidirectional line) + (alternate "I2S2_SD" bidirectional line) + (alternate "SPI2_MOSI" bidirectional line) + (alternate "USB_OTG_HS_ULPI_NXT" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -33.02 180) + (length 5.08) + (name "PC4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "33" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN14" bidirectional line) + (alternate "ADC2_IN14" bidirectional line) + (alternate "ETH_RXD0" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -35.56 180) + (length 5.08) + (name "PC5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "34" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_IN15" bidirectional line) + (alternate "ADC2_IN15" bidirectional line) + (alternate "ETH_RXD1" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -38.1 180) + (length 5.08) + (name "PC6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "63" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DCMI_D0" bidirectional line) + (alternate "I2S2_MCK" bidirectional line) + (alternate "SDIO_D6" bidirectional line) + (alternate "TIM3_CH1" bidirectional line) + (alternate "TIM8_CH1" bidirectional line) + (alternate "USART6_TX" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -40.64 180) + (length 5.08) + (name "PC7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "64" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DCMI_D1" bidirectional line) + (alternate "I2S3_MCK" bidirectional line) + (alternate "SDIO_D7" bidirectional line) + (alternate "TIM3_CH2" bidirectional line) + (alternate "TIM8_CH2" bidirectional line) + (alternate "USART6_RX" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -43.18 180) + (length 5.08) + (name "PC8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "65" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DCMI_D2" bidirectional line) + (alternate "SDIO_D0" bidirectional line) + (alternate "TIM3_CH3" bidirectional line) + (alternate "TIM8_CH3" bidirectional line) + (alternate "USART6_CK" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -45.72 180) + (length 5.08) + (name "PC9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "66" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DAC_EXTI9" bidirectional line) + (alternate "DCMI_D3" bidirectional line) + (alternate "I2C3_SDA" bidirectional line) + (alternate "I2S_CKIN" bidirectional line) + (alternate "RCC_MCO_2" bidirectional line) + (alternate "SDIO_D1" bidirectional line) + (alternate "TIM3_CH4" bidirectional line) + (alternate "TIM8_CH4" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -48.26 180) + (length 5.08) + (name "PC10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "78" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DCMI_D8" bidirectional line) + (alternate "I2S3_CK" bidirectional line) + (alternate "SDIO_D2" bidirectional line) + (alternate "SPI3_SCK" bidirectional line) + (alternate "UART4_TX" bidirectional line) + (alternate "USART3_TX" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -50.8 180) + (length 5.08) + (name "PC11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "79" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_EXTI11" bidirectional line) + (alternate "ADC2_EXTI11" bidirectional line) + (alternate "ADC3_EXTI11" bidirectional line) + (alternate "DCMI_D4" bidirectional line) + (alternate "I2S3_ext_SD" bidirectional line) + (alternate "SDIO_D3" bidirectional line) + (alternate "SPI3_MISO" bidirectional line) + (alternate "UART4_RX" bidirectional line) + (alternate "USART3_RX" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -53.34 180) + (length 5.08) + (name "PC12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "80" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "DCMI_D9" bidirectional line) + (alternate "I2S3_SD" bidirectional line) + (alternate "SDIO_CK" bidirectional line) + (alternate "SPI3_MOSI" bidirectional line) + (alternate "UART5_TX" bidirectional line) + (alternate "USART3_CK" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -55.88 180) + (length 5.08) + (name "PC13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "RTC_AF1" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -58.42 180) + (length 5.08) + (name "PC14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "RCC_OSC32_IN" bidirectional line) + ) + (pin bidirectional line + (at 25.4 -60.96 180) + (length 5.08) + (name "PC15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (alternate "ADC1_EXTI15" bidirectional line) + (alternate "ADC2_EXTI15" bidirectional line) + (alternate "ADC3_EXTI15" bidirectional line) + (alternate "RCC_OSC32_OUT" bidirectional line) + ) + ) + (embedded_fonts no) + ) + (symbol "power:+3V3" + (power) + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+3V3" + (at 0 3.556 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+3V3\"" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "+3V3_0_1" + (polyline + (pts + (xy -0.762 1.27) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 2.54) (xy 0.762 1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 0) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "+3V3_1_1" + (pin power_in line + (at 0 0 90) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "power:GND" + (power) + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -6.35 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "GND_1_1" + (pin power_in line + (at 0 0 270) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + ) + (text "Based on ST Microelectronics AN4488" + (exclude_from_sim no) + (at 241.808 98.298 0) (effects (font (size 1.27 1.27) ) - (justify right) ) - (uuid "0c6e71a3-ccd4-4f57-aacd-cd48264882d5") + (uuid "82f61e74-c865-4393-826a-066e2a341f3e") + ) + (text "TODO: MAC EEPROM" + (exclude_from_sim no) + (at 207.772 54.61 0) + (effects + (font + (size 1.27 1.27) + ) + ) + (uuid "8dee021f-85f3-415f-a041-18cdbba81fbe") + ) + (junction + (at 130.81 26.67) + (diameter 0) + (color 0 0 0 0) + (uuid "027312a6-6cab-47d4-bd6c-3a7958898883") + ) + (junction + (at 129.54 185.42) + (diameter 0) + (color 0 0 0 0) + (uuid "0289cfda-83f4-4e4d-bbc5-f3cd5349d27c") + ) + (junction + (at 132.08 36.83) + (diameter 0) + (color 0 0 0 0) + (uuid "0de39592-ff68-44b8-aafc-a2211b0f3c5c") + ) + (junction + (at 76.2 68.58) + (diameter 0) + (color 0 0 0 0) + (uuid "40883058-005b-4402-8cb4-5d0f47d4d794") + ) + (junction + (at 177.8 140.97) + (diameter 0) + (color 0 0 0 0) + (uuid "73728a3e-c881-4df2-b5cc-d638e9ab6b6c") + ) + (junction + (at 139.7 36.83) + (diameter 0) + (color 0 0 0 0) + (uuid "7d364f8e-8d6b-478a-b75a-418549521c71") + ) + (junction + (at 177.8 148.59) + (diameter 0) + (color 0 0 0 0) + (uuid "7fc14173-1552-455b-8f5e-60ea163e14d2") + ) + (junction + (at 129.54 36.83) + (diameter 0) + (color 0 0 0 0) + (uuid "8a986717-2c3e-43a5-bb21-2e8445395bcb") + ) + (junction + (at 130.81 36.83) + (diameter 0) + (color 0 0 0 0) + (uuid "966c75b3-b696-4276-9e1c-6478e86f90fc") + ) + (junction + (at 127 36.83) + (diameter 0) + (color 0 0 0 0) + (uuid "b003a233-230f-4653-9cab-6b7dbbefebd7") + ) + (junction + (at 134.62 36.83) + (diameter 0) + (color 0 0 0 0) + (uuid "d691cb68-cd2a-4949-bb6f-4504448c3e62") + ) + (junction + (at 76.2 60.96) + (diameter 0) + (color 0 0 0 0) + (uuid "f9ad95ad-116c-4f42-a5c6-e077cf50488b") + ) + (no_connect + (at 154.94 149.86) + (uuid "034e756f-e5a5-487c-a98a-4302f0025d50") + ) + (no_connect + (at 154.94 147.32) + (uuid "1c28c442-d843-4ee0-b198-8897ed8d7cec") + ) + (no_connect + (at 104.14 88.9) + (uuid "22d8f362-8601-42f0-a8bd-acd4a0c70139") + ) + (no_connect + (at 104.14 152.4) + (uuid "288eb599-dfff-40f3-b371-34137f075726") + ) + (no_connect + (at 154.94 114.3) + (uuid "2d1797cc-c89d-4369-b97f-958e0e08a463") + ) + (no_connect + (at 154.94 109.22) + (uuid "2eedfc43-8d32-4e90-a271-0cc68a99431a") + ) + (no_connect + (at 154.94 142.24) + (uuid "30457d3e-e5b0-4757-9a55-0ccba3a04af9") + ) + (no_connect + (at 104.14 160.02) + (uuid "3060c57d-1fb9-49fe-b7a9-ef49fd38a81d") + ) + (no_connect + (at 154.94 167.64) + (uuid "36e9e720-2f43-4130-9984-c5d2a54c8ee0") + ) + (no_connect + (at 104.14 149.86) + (uuid "3cf61b54-3dc3-4eb9-8d36-698c26ad3a15") + ) + (no_connect + (at 104.14 132.08) + (uuid "4001f45d-56fb-4782-b771-98dd10d8e4b6") + ) + (no_connect + (at 154.94 144.78) + (uuid "485bae6a-b05a-4166-9664-4f8ab6494c60") + ) + (no_connect + (at 104.14 142.24) + (uuid "4b4284b3-3a92-403a-a6c2-398b3ae06f35") + ) + (no_connect + (at 154.94 139.7) + (uuid "4bc76ffc-4a6a-4d38-b795-6141451efc5e") + ) + (no_connect + (at 154.94 127) + (uuid "515d0800-89a5-4b46-9b50-27ed7c3818da") + ) + (no_connect + (at 104.14 101.6) + (uuid "52abe7e3-9811-4c9f-8517-396cebd9bd5b") + ) + (no_connect + (at 154.94 76.2) + (uuid "57dfdfe2-a995-4748-9483-53653cf59a50") + ) + (no_connect + (at 154.94 96.52) + (uuid "59801420-9f08-4430-8826-3d485d945ead") + ) + (no_connect + (at 154.94 119.38) + (uuid "5d5939d5-6c4f-44ca-90ad-45e24290e59a") + ) + (no_connect + (at 104.14 91.44) + (uuid "6ce1eedd-d003-4d30-8f2b-3bbfe8963c25") + ) + (no_connect + (at 154.94 129.54) + (uuid "74d97af9-f00e-412f-a190-a5a343a7bd8f") + ) + (no_connect + (at 104.14 144.78) + (uuid "7bd3fa6d-83be-4580-9586-bed500373970") + ) + (no_connect + (at 154.94 55.88) + (uuid "7ceeb896-902c-47ea-8169-9a2a953b253b") + ) + (no_connect + (at 104.14 137.16) + (uuid "8187ff21-6350-4d4e-9765-695a0251d7aa") + ) + (no_connect + (at 104.14 81.28) + (uuid "83fcb7c1-5b72-41fe-8d23-bd2aa7705b40") + ) + (no_connect + (at 104.14 139.7) + (uuid "8a0d70ae-1897-4ccb-bd07-5ff95e4e8d4e") + ) + (no_connect + (at 104.14 109.22) + (uuid "8d6da954-09c2-4ff7-bd42-4a9727862339") + ) + (no_connect + (at 154.94 78.74) + (uuid "8e62c90a-449c-42aa-8a48-19190d803198") + ) + (no_connect + (at 154.94 66.04) + (uuid "8effecb6-6ec0-4b0b-8e63-9819162ee191") + ) + (no_connect + (at 154.94 91.44) + (uuid "92208e34-6824-4568-aace-665046be0a73") + ) + (no_connect + (at 104.14 134.62) + (uuid "93764dd6-574b-4e0b-8f3e-5e35b21569e4") + ) + (no_connect + (at 154.94 134.62) + (uuid "96b8683d-5ad7-465f-b685-dcbaf975c169") + ) + (no_connect + (at 104.14 76.2) + (uuid "99e64c85-61a3-4eb6-8fc4-0e487c7c3337") + ) + (no_connect + (at 104.14 157.48) + (uuid "9a2a06f9-c560-4876-aa92-fa0139c9dbd5") + ) + (no_connect + (at 154.94 106.68) + (uuid "9aa7f53c-7b72-495d-8c5c-2b5c69f4a9bf") + ) + (no_connect + (at 154.94 162.56) + (uuid "a0e2dce2-5d42-407e-a363-58c437fb9e7d") + ) + (no_connect + (at 104.14 93.98) + (uuid "a9a446a3-66fb-4465-849f-50f24285c0bd") + ) + (no_connect + (at 154.94 157.48) + (uuid "a9dcfd0f-b775-48fd-86ef-eaa55fa3f7e4") + ) + (no_connect + (at 154.94 93.98) + (uuid "ac138692-d909-4bc5-a428-bcfa0e5e65f3") + ) + (no_connect + (at 154.94 60.96) + (uuid "ac7e7d61-f8e3-4a82-944e-a35faf030afc") + ) + (no_connect + (at 154.94 104.14) + (uuid "b42a8e7e-8676-43ff-b412-f43b4069bf65") + ) + (no_connect + (at 154.94 101.6) + (uuid "bd12f165-9515-4d18-b019-671bda0176ea") + ) + (no_connect + (at 154.94 124.46) + (uuid "bd73e49b-e294-444a-b81b-2e9ae82f50ed") + ) + (no_connect + (at 154.94 121.92) + (uuid "c82bc3ee-d60c-4796-b2aa-0cc1a145ac9d") + ) + (no_connect + (at 104.14 147.32) + (uuid "ca1a388b-6ed9-4595-8ff6-5c255fb65b78") + ) + (no_connect + (at 154.94 50.8) + (uuid "d1889729-f391-4170-bd7f-f5ec788e98db") + ) + (no_connect + (at 154.94 63.5) + (uuid "d494c20c-fa4f-4e6b-b618-b032049a6ac3") + ) + (no_connect + (at 104.14 86.36) + (uuid "d74e3cd8-a2cd-45dd-8044-423ee47d4a9e") + ) + (no_connect + (at 104.14 83.82) + (uuid "d9577b15-55cd-4de3-9a56-4130e101e3be") + ) + (no_connect + (at 104.14 104.14) + (uuid "dd1e1899-cca4-441a-bd65-674b2ee788ee") + ) + (no_connect + (at 154.94 160.02) + (uuid "dd948678-a263-41da-8d9a-0b063a319f1f") + ) + (no_connect + (at 154.94 68.58) + (uuid "dda45570-9b2a-475c-be74-314626eae951") + ) + (no_connect + (at 154.94 154.94) + (uuid "dedd1e1e-2c65-49cd-8c4c-e3ee4071a37b") + ) + (no_connect + (at 154.94 48.26) + (uuid "df1b2544-24bb-446c-adaf-a6aada0f37f8") + ) + (no_connect + (at 154.94 111.76) + (uuid "e32597d5-a233-4444-b6ba-c97ea03b12d9") + ) + (no_connect + (at 154.94 137.16) + (uuid "e5037586-b6f7-4028-bfce-1cd64ce00955") + ) + (no_connect + (at 154.94 165.1) + (uuid "e69e7406-aaef-4024-8fed-364fdbadf8b4") + ) + (no_connect + (at 104.14 127) + (uuid "e95d8716-e197-4b7e-beba-c9d125fb2bfd") + ) + (no_connect + (at 104.14 129.54) + (uuid "edbeece1-79ff-4d88-b69c-dfd83538013b") + ) + (no_connect + (at 104.14 78.74) + (uuid "ef881429-02da-4a8a-ac1b-43771e68f67d") + ) + (no_connect + (at 104.14 106.68) + (uuid "f4337925-03ed-4a59-993d-90972172ee04") + ) + (no_connect + (at 104.14 96.52) + (uuid "f459ef16-7622-481a-b76e-b9512e3ff762") + ) + (no_connect + (at 154.94 152.4) + (uuid "f849a56c-107f-46f4-bc4e-d5ae66aa753b") + ) + (no_connect + (at 154.94 116.84) + (uuid "f9ec46bb-b7cd-422e-8bd9-f49ef5a6c71a") + ) + (no_connect + (at 154.94 53.34) + (uuid "fcc8e4f2-e139-4b85-8b1e-efd799f7693b") + ) + (no_connect + (at 104.14 99.06) + (uuid "feb5fe52-f485-432d-8d4b-2d920b9254d2") + ) + (wire + (pts + (xy 134.62 38.1) (xy 134.62 36.83) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0087c8ea-58ae-4937-ba69-73b9ebde291a") + ) + (wire + (pts + (xy 46.99 63.5) (xy 46.99 66.04) + ) + (stroke + (width 0) + (type default) + ) + (uuid "06b2946b-5de9-4130-aae2-d4a1acb6cada") + ) + (wire + (pts + (xy 127 36.83) (xy 127 38.1) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0762358b-619b-4ca4-943b-2eb8ecf8f6af") + ) + (wire + (pts + (xy 137.16 36.83) (xy 134.62 36.83) + ) + (stroke + (width 0) + (type default) + ) + (uuid "12116dac-8ef7-4e42-9099-4c27b08fbd5b") + ) + (wire + (pts + (xy 132.08 182.88) (xy 132.08 185.42) + ) + (stroke + (width 0) + (type default) + ) + (uuid "16888d5f-7f89-4619-8c48-14f7144fd8c3") + ) + (wire + (pts + (xy 167.64 148.59) (xy 167.64 172.72) + ) + (stroke + (width 0) + (type default) + ) + (uuid "17fe758b-31f7-49c9-93f2-9b0363730c4f") + ) + (wire + (pts + (xy 167.64 172.72) (xy 154.94 172.72) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1eb05bb0-f1d9-4f9e-99b3-1eda4a3a77a3") + ) + (wire + (pts + (xy 157.48 36.83) (xy 139.7 36.83) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1ee94c63-01e1-40ea-ab31-6f8067d04512") + ) + (wire + (pts + (xy 165.1 170.18) (xy 165.1 140.97) + ) + (stroke + (width 0) + (type default) + ) + (uuid "208142e5-fdeb-4357-908e-738ac90c70d6") + ) + (wire + (pts + (xy 58.42 68.58) (xy 59.69 68.58) + ) + (stroke + (width 0) + (type default) + ) + (uuid "227e4301-853d-42ff-a005-513759b2b9a3") + ) + (wire + (pts + (xy 137.16 38.1) (xy 137.16 36.83) + ) + (stroke + (width 0) + (type default) + ) + (uuid "26d31721-3db4-4cb2-827d-0a41b2aa4db9") + ) + (wire + (pts + (xy 154.94 99.06) (xy 156.21 99.06) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2bd36d41-d68c-4f66-9c12-2198b03f4e01") + ) + (wire + (pts + (xy 87.63 68.58) (xy 76.2 68.58) + ) + (stroke + (width 0) + (type default) + ) + (uuid "31e1f985-c318-420c-a7fd-759200f0bd23") + ) + (wire + (pts + (xy 200.66 148.59) (xy 201.93 148.59) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3c0da86b-fa67-46ac-abae-89cf3c484ea8") + ) + (wire + (pts + (xy 99.06 58.42) (xy 104.14 58.42) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3f84b8e5-ef6f-42ff-95d6-c3c4e749dc39") + ) + (wire + (pts + (xy 154.94 73.66) (xy 156.21 73.66) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4359c5f9-7c2a-46b4-9e7b-f267da3bad73") + ) + (wire + (pts + (xy 87.63 66.04) (xy 87.63 68.58) + ) + (stroke + (width 0) + (type default) + ) + (uuid "44e53775-6ace-4947-a091-506d54ba60c3") + ) + (wire + (pts + (xy 139.7 36.83) (xy 139.7 38.1) + ) + (stroke + (width 0) + (type default) + ) + (uuid "44f29b23-cd4c-4e47-8dd2-056636ca8156") + ) + (wire + (pts + (xy 177.8 140.97) (xy 193.04 140.97) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4a5c0016-9348-4684-9e56-209f231faf7f") + ) + (wire + (pts + (xy 130.81 26.67) (xy 130.81 25.4) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4acae563-59d6-4c93-bfd4-77a9d70ebc21") + ) + (wire + (pts + (xy 129.54 38.1) (xy 129.54 36.83) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4c7d07e8-6646-4a9e-aae6-4ebcb8f33c8d") + ) + (wire + (pts + (xy 102.87 48.26) (xy 104.14 48.26) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4c95dbfe-f44b-4052-a82b-532bddae3181") + ) + (wire + (pts + (xy 124.46 36.83) (xy 124.46 38.1) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5736d8c9-60fa-4b3c-94d4-af74b64f1ee8") + ) + (wire + (pts + (xy 67.31 68.58) (xy 76.2 68.58) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5ad67582-2601-4b39-aa08-be7ac56a4e5e") + ) + (wire + (pts + (xy 58.42 60.96) (xy 59.69 60.96) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6048c62b-07a4-423e-977c-69be66dc8c1f") + ) + (wire + (pts + (xy 104.14 66.04) (xy 87.63 66.04) + ) + (stroke + (width 0) + (type default) + ) + (uuid "639de281-474c-4db9-a744-a17af15fbec2") + ) + (wire + (pts + (xy 139.7 27.94) (xy 139.7 26.67) + ) + (stroke + (width 0) + (type default) + ) + (uuid "64b480c2-a148-4764-ae7a-ba7cf71c05e9") + ) + (wire + (pts + (xy 102.87 73.66) (xy 104.14 73.66) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6c5d6b18-e6d5-406c-8944-4e1cd7213ec0") + ) + (wire + (pts + (xy 157.48 26.67) (xy 157.48 27.94) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6e100621-a738-43fd-939a-b6471b9ab14f") + ) + (wire + (pts + (xy 129.54 36.83) (xy 130.81 36.83) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6e853f1d-34a1-4f8c-a0dc-25ad952039bc") + ) + (wire + (pts + (xy 130.81 36.83) (xy 132.08 36.83) + ) + (stroke + (width 0) + (type default) + ) + (uuid "72cf3367-9eb9-4606-bc46-7e033d4ff38c") + ) + (wire + (pts + (xy 139.7 35.56) (xy 139.7 36.83) + ) + (stroke + (width 0) + (type default) + ) + (uuid "79247c3e-d727-4667-96de-b4eb8b057ebc") + ) + (wire + (pts + (xy 132.08 36.83) (xy 132.08 38.1) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7fc4ea66-961f-4f86-8514-1501d8cd92ce") + ) + (wire + (pts + (xy 154.94 170.18) (xy 165.1 170.18) + ) + (stroke + (width 0) + (type default) + ) + (uuid "83150887-e301-445d-b394-8489b09ca69a") + ) + (wire + (pts + (xy 157.48 35.56) (xy 157.48 36.83) + ) + (stroke + (width 0) + (type default) + ) + (uuid "83b20e1f-ffaa-4e21-960f-1e9204223f76") + ) + (wire + (pts + (xy 154.94 86.36) (xy 156.21 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "868b630e-d7f0-4f16-a9c1-7627c3447946") + ) + (wire + (pts + (xy 127 36.83) (xy 124.46 36.83) + ) + (stroke + (width 0) + (type default) + ) + (uuid "87d3ba29-502b-4513-99de-9472a177dbec") + ) + (wire + (pts + (xy 102.87 121.92) (xy 104.14 121.92) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8fe09b64-7a4c-4168-aa96-10ddb6e4c4ed") + ) + (wire + (pts + (xy 154.94 81.28) (xy 156.21 81.28) + ) + (stroke + (width 0) + (type default) + ) + (uuid "90196395-2c59-4156-b426-8307e9879387") ) - (hierarchical_label "~{JTAG_RESET}" + (wire + (pts + (xy 67.31 60.96) (xy 76.2 60.96) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9112e96a-73dd-43cf-8813-36a8c9079a6d") + ) + (wire + (pts + (xy 102.87 124.46) (xy 104.14 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "950642e2-90fe-43d9-9442-488bc9f1f206") + ) + (wire + (pts + (xy 134.62 36.83) (xy 132.08 36.83) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9932dd78-84cc-4c4d-88bf-a409adb95c0f") + ) + (wire + (pts + (xy 200.66 140.97) (xy 201.93 140.97) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a6b64170-252f-4c8c-bcd6-b01fc9278a30") + ) + (wire + (pts + (xy 102.87 114.3) (xy 104.14 114.3) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b39e7407-f8c4-43d6-8581-e098d86e6787") + ) + (wire + (pts + (xy 121.92 27.94) (xy 121.92 26.67) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b923d2ab-99f4-42c0-958b-eef810f37bb9") + ) + (wire + (pts + (xy 139.7 26.67) (xy 130.81 26.67) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b939d6b8-4927-49d2-a5db-7153f5c0faa2") + ) + (wire + (pts + (xy 46.99 55.88) (xy 46.99 53.34) + ) + (stroke + (width 0) + (type default) + ) + (uuid "badcac8c-eb27-48b6-9d6a-bf9e2fd904c2") + ) + (wire + (pts + (xy 121.92 26.67) (xy 130.81 26.67) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c137a40f-35d3-4ff1-911a-1a62aff8030b") + ) + (wire + (pts + (xy 104.14 63.5) (xy 87.63 63.5) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c4aad2b5-43d0-4efc-8802-3edeafe35e29") + ) + (wire + (pts + (xy 165.1 140.97) (xy 177.8 140.97) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c6c87a5a-0bdd-4ebb-89f0-91c557b0ea9f") + ) + (wire + (pts + (xy 46.99 53.34) (xy 104.14 53.34) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cac7fea3-7f01-4701-8c7a-b9f6565c348d") + ) + (wire + (pts + (xy 129.54 185.42) (xy 129.54 187.96) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cccaeabd-2095-46be-959b-052383372f41") + ) + (wire + (pts + (xy 129.54 182.88) (xy 129.54 185.42) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d1b1f86d-236a-445f-9f3b-0d65aebe8cf7") + ) + (wire + (pts + (xy 87.63 63.5) (xy 87.63 60.96) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d290e3f7-11a9-41d3-98b6-9f524f27e280") + ) + (wire + (pts + (xy 177.8 148.59) (xy 193.04 148.59) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d3f76545-880a-461e-9727-134dc2396b46") + ) + (wire + (pts + (xy 154.94 58.42) (xy 156.21 58.42) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d5e3a349-0e46-4aed-b37f-23c6f9d62eaa") + ) + (wire + (pts + (xy 130.81 36.83) (xy 130.81 26.67) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d6ef5d29-5d50-4d6d-832a-7a152fa17f4a") + ) + (wire + (pts + (xy 154.94 83.82) (xy 156.21 83.82) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d943581b-6689-42ef-86fc-adeb2e196d28") + ) + (wire + (pts + (xy 102.87 71.12) (xy 104.14 71.12) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e1141760-bc6e-4560-b9e0-82bde4a56212") + ) + (wire + (pts + (xy 154.94 71.12) (xy 156.21 71.12) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e6d3861c-f314-419c-be15-f1506f856dd5") + ) + (wire + (pts + (xy 121.92 35.56) (xy 121.92 38.1) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ec4dadf0-437e-4a0f-b8d1-5602590f897e") + ) + (wire + (pts + (xy 87.63 60.96) (xy 76.2 60.96) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f3777931-72e8-4d51-b4e7-0867ead5b9c6") + ) + (wire + (pts + (xy 129.54 36.83) (xy 127 36.83) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f3923a85-1274-46f8-a08d-9d6701c9c856") + ) + (wire + (pts + (xy 177.8 148.59) (xy 167.64 148.59) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f3b0b536-4359-45ab-bd3d-bd88807c6e3d") + ) + (wire + (pts + (xy 102.87 116.84) (xy 104.14 116.84) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f8e35c35-8d72-4498-9900-abe680ef4695") + ) + (wire + (pts + (xy 132.08 185.42) (xy 129.54 185.42) + ) + (stroke + (width 0) + (type default) + ) + (uuid "fcfe2db4-e17d-450d-bf3a-c568f9fe02f3") + ) + (wire + (pts + (xy 102.87 119.38) (xy 104.14 119.38) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ff5dec64-c2a6-4767-b845-2367e327dfa7") + ) + (label "VREF+" + (at 157.48 26.67 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + (uuid "24c3acf8-694d-4a4b-8845-5274a4a2e0c4") + ) + (label "VREF+" + (at 99.06 58.42 180) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + (uuid "d04c9bb9-e756-48f2-b996-793e7b676b85") + ) + (hierarchical_label "~{RESET}" (shape input) - (at 114.3 38.1 90) + (at 102.87 48.26 180) (effects (font (size 1.27 1.27) ) - (justify left) + (justify right) ) - (uuid "229a3404-2336-45f6-b34e-89bae4bf1f28") + (uuid "0c6e71a3-ccd4-4f57-aacd-cd48264882d5") ) (hierarchical_label "MOT_ENABLE" (shape output) - (at 241.3 78.74 0) + (at 102.87 114.3 180) (effects (font (size 1.27 1.27) ) - (justify left) + (justify right) ) (uuid "2382f107-6b85-49f7-a7f2-b41fe57a6929") ) (hierarchical_label "UART_TX" (shape output) - (at 142.24 38.1 90) + (at 156.21 71.12 0) (effects (font (size 1.27 1.27) @@ -54,7 +4223,7 @@ ) (hierarchical_label "LED_UPD" (shape output) - (at 142.24 139.7 270) + (at 102.87 121.92 180) (effects (font (size 1.27 1.27) @@ -65,7 +4234,7 @@ ) (hierarchical_label "JTAG_TMS" (shape bidirectional) - (at 119.38 38.1 90) + (at 156.21 81.28 0) (effects (font (size 1.27 1.27) @@ -74,9 +4243,9 @@ ) (uuid "617b37ec-b5d3-4e1b-971a-1e543c286c47") ) - (hierarchical_label "BTN_WIPE" + (hierarchical_label "~{BTN_WIPE}" (shape input) - (at 116.84 139.7 270) + (at 102.87 71.12 180) (effects (font (size 1.27 1.27) @@ -87,7 +4256,7 @@ ) (hierarchical_label "JTAG_TDI" (shape input) - (at 124.46 38.1 90) + (at 156.21 86.36 0) (effects (font (size 1.27 1.27) @@ -98,7 +4267,7 @@ ) (hierarchical_label "LED_PWR" (shape output) - (at 139.7 139.7 270) + (at 102.87 119.38 180) (effects (font (size 1.27 1.27) @@ -109,7 +4278,7 @@ ) (hierarchical_label "LED_ACT" (shape output) - (at 144.78 139.7 270) + (at 102.87 124.46 180) (effects (font (size 1.27 1.27) @@ -120,18 +4289,18 @@ ) (hierarchical_label "MOT_DIRECTION" (shape output) - (at 241.3 76.2 0) + (at 102.87 116.84 180) (effects (font (size 1.27 1.27) ) - (justify left) + (justify right) ) (uuid "7cea7323-ae92-4bce-baa0-3ea976745bf9") ) (hierarchical_label "JTAG_TCK" (shape input) - (at 116.84 38.1 90) + (at 156.21 83.82 0) (effects (font (size 1.27 1.27) @@ -140,9 +4309,20 @@ ) (uuid "806823e9-c7ef-45dc-832c-ddb4378c340f") ) + (hierarchical_label "VVERSION" + (shape input) + (at 156.21 58.42 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "919dc185-71c3-4c56-8386-f6c0dc6b4c73") + ) (hierarchical_label "JTAG_TDO" (shape output) - (at 121.92 38.1 90) + (at 156.21 99.06 0) (effects (font (size 1.27 1.27) @@ -153,7 +4333,7 @@ ) (hierarchical_label "UART_RX" (shape input) - (at 139.7 38.1 90) + (at 156.21 73.66 0) (effects (font (size 1.27 1.27) @@ -164,13 +4344,1560 @@ ) (hierarchical_label "CONTACT_CLOSED" (shape input) - (at 241.3 69.85 0) + (at 102.87 73.66 180) (effects (font (size 1.27 1.27) ) - (justify left) + (justify right) ) (uuid "fa84533f-5191-4139-bd31-6669d829fda6") ) + (symbol + (lib_id "Device:C") + (at 63.5 60.96 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "13a682ca-00d8-48ad-8d7d-8083b8d83626") + (property "Reference" "C2" + (at 67.818 56.388 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "20pF" + (at 67.818 58.928 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 67.31 59.9948 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 63.5 60.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 63.5 60.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "cb9324b8-a7c7-49b8-8c25-67dbb82a7a41") + ) + (pin "2" + (uuid "c79d6621-dd7c-4e61-87c7-34aa5c5cad22") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "C2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 46.99 59.69 0) + (mirror y) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "33a376f2-a13a-45df-bc5f-8db3547ccb70") + (property "Reference" "R3" + (at 44.45 58.4199 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "10k" + (at 44.45 60.9599 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 48.768 59.69 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 46.99 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 46.99 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "136cfefe-07af-4524-a375-09e50bddb30e") + ) + (pin "1" + (uuid "169a7df7-1c41-4804-8856-7f70b5614f7b") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "R3") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 58.42 68.58 270) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "3b505941-180c-4fd5-bf7e-1e9b89324671") + (property "Reference" "#PWR016" + (at 52.07 68.58 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 54.61 68.5799 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 58.42 68.58 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 58.42 68.58 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 58.42 68.58 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "3ed83a15-6015-4d5c-8db1-feb068a766f6") + ) + (instances + (project "iot-contact" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "#PWR016") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+3V3") + (at 130.81 25.4 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "46e43b91-7745-4b1f-9749-181cf5d6767c") + (property "Reference" "#PWR012" + (at 130.81 29.21 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+3V3" + (at 130.81 20.32 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 130.81 25.4 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 130.81 25.4 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+3V3\"" + (at 130.81 25.4 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "d018d0ff-30ea-4eee-a9ad-320d9f5fbd22") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "#PWR012") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "MCU_ST_STM32F4:STM32F427VITx") + (at 129.54 111.76 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "492f8748-c9dd-4fe0-bb34-6c5556772be7") + (property "Reference" "U1" + (at 134.2233 180.34 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "STM32F427VITx" + (at 134.2233 182.88 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Package_QFP:LQFP-100_14x14mm_P0.5mm" + (at 109.22 177.8 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + (property "Datasheet" "https://www.st.com/resource/en/datasheet/stm32f427vi.pdf" + (at 129.54 111.76 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "STMicroelectronics Arm Cortex-M4 MCU, 2048KB flash, 256KB RAM, 180 MHz, 1.8-3.6V, 82 GPIO, LQFP100" + (at 129.54 111.76 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "MPN" "STM32F427VIT6TR" + (at 129.54 114.3 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Manufacturer" "STMicroelectronics" + (at 129.54 111.76 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (pin "92" + (uuid "e4c4e477-4df4-4d22-8137-7a3809c6a3a2") + ) + (pin "48" + (uuid "e589f154-9286-4327-906d-cfcbabc2ed20") + ) + (pin "99" + (uuid "447c55fd-f080-44d5-9ade-8e60cbe2c7b0") + ) + (pin "6" + (uuid "bc5ece86-6932-465d-8fb3-96d527622132") + ) + (pin "9" + (uuid "244fae6a-9e98-499a-ace9-1ce09c8e7a0e") + (alternate "RCC_OSC32_OUT") + ) + (pin "8" + (uuid "02fcc468-73a3-4047-beda-87bebeeba025") + (alternate "RCC_OSC32_IN") + ) + (pin "66" + (uuid "d49ec73f-033a-4e20-95bf-39854d574dbf") + ) + (pin "11" + (uuid "70fed43a-7e2a-4b89-ba1f-e09256b7dedd") + ) + (pin "22" + (uuid "e802dfae-c3a2-4b0d-8229-8bb8b8522018") + ) + (pin "76" + (uuid "4c3961b5-f729-4932-bbe0-56280aba52fa") + (alternate "SYS_JTCK-SWCLK") + ) + (pin "70" + (uuid "2903d135-0c3e-4e73-bded-cd59b65e7d5e") + ) + (pin "87" + (uuid "a947f40e-d1a2-4d06-9eb9-f013a0c915f0") + ) + (pin "19" + (uuid "a8b1c0f1-c3af-4402-bade-8c6256f16fa9") + ) + (pin "80" + (uuid "02b9a60d-dfac-43a4-bd6a-5082d897d4a4") + ) + (pin "86" + (uuid "52fbcef4-5dee-4eb1-935d-931b3f04f6b1") + ) + (pin "39" + (uuid "2838effe-cd57-46fc-8d66-296dedf993eb") + ) + (pin "10" + (uuid "88383fd5-5c3b-4ed1-8946-f4dc542ad054") + ) + (pin "59" + (uuid "59092238-689f-4239-aa98-a6d90ca6e83f") + ) + (pin "32" + (uuid "f007a9ff-b969-44ba-b252-2ccc6bb6f0ae") + ) + (pin "58" + (uuid "2961db49-ca2d-4545-bb6a-66b4af18f94d") + ) + (pin "36" + (uuid "251e434d-20b9-4ea5-8dff-4230f7493345") + ) + (pin "27" + (uuid "ce7b188e-a0c1-4270-b6c7-008f03ca1195") + ) + (pin "57" + (uuid "39d4daca-1ba3-4059-8055-da23f2975c6f") + ) + (pin "1" + (uuid "550e6611-fcde-4cb5-9ac9-1642bc900ebd") + ) + (pin "77" + (uuid "e5ff3c99-6188-4806-a6c7-b673e51b68fe") + (alternate "SYS_JTDI") + ) + (pin "18" + (uuid "a47353ca-4018-47d7-90a8-00c875b1259f") + ) + (pin "95" + (uuid "793262f3-13c3-45a3-8faa-9e2400884ac7") + ) + (pin "38" + (uuid "ad433341-962b-4e0a-bf6d-b6fea2c19633") + ) + (pin "63" + (uuid "64d9fce3-4cb0-49c2-afd9-105d338da8c0") + ) + (pin "68" + (uuid "b5661107-f766-4c36-944e-067090eb2f15") + (alternate "USART1_TX") + ) + (pin "78" + (uuid "f62235a3-0419-4c08-9da6-46f639d10a22") + ) + (pin "7" + (uuid "3935ca3c-f812-4727-95e9-dadecd0c0991") + ) + (pin "37" + (uuid "05843a20-ac2f-4dbc-80b2-64dffa0de78c") + ) + (pin "72" + (uuid "0479f1c0-23cd-4067-b96c-e8ddc65c2d2a") + (alternate "SYS_JTMS-SWDIO") + ) + (pin "3" + (uuid "4f229d09-ada9-4e8c-b176-f6d36f45264f") + ) + (pin "30" + (uuid "1e6bae45-5e01-4bf0-a18d-5d2ec8709808") + ) + (pin "69" + (uuid "d59137af-158e-41f0-983a-86e714f0aad7") + (alternate "USART1_RX") + ) + (pin "33" + (uuid "55778e22-5558-4006-82e8-5b0f09e2ff4e") + ) + (pin "61" + (uuid "fae60b9e-5c19-43cd-9b7d-5b3241a97831") + ) + (pin "45" + (uuid "e45b7856-2a64-44c0-be85-2c7bfec51717") + ) + (pin "43" + (uuid "627bfaa0-96e7-4025-a603-ead11fe35601") + ) + (pin "40" + (uuid "4caf1a8c-40fc-4bb3-bf0c-cc4d93ef37f2") + ) + (pin "4" + (uuid "3d9ebefa-f59b-4e06-938d-1dd3806d271c") + ) + (pin "83" + (uuid "d4022d04-6001-46a0-ae6e-459fc0fe3f65") + ) + (pin "53" + (uuid "f0a250e3-4d4d-48b2-a3ae-3f6db2df4b41") + ) + (pin "67" + (uuid "15f8da82-96ee-4dcd-97be-c331c670d09a") + ) + (pin "12" + (uuid "e8cf13e6-5fd0-4750-a95f-c368d18ecb7e") + (alternate "RCC_OSC_IN") + ) + (pin "98" + (uuid "1e8cfcf6-cc76-4680-a5a1-6c8f76564755") + ) + (pin "97" + (uuid "f68fa204-b9f2-4bc5-b296-2da3b7b41264") + ) + (pin "13" + (uuid "1c2cba00-bf11-4091-9dfc-149eb9bb8817") + (alternate "RCC_OSC_OUT") + ) + (pin "21" + (uuid "9c811c3e-e36f-407d-8b65-cc96cfe2efa3") + ) + (pin "94" + (uuid "ae2f126d-8464-403f-9438-0df971e0f204") + ) + (pin "14" + (uuid "5e6686fb-9870-4c13-9418-c9ad8871bf27") + ) + (pin "52" + (uuid "0f3a7e62-c9b9-4ba9-a8be-24cb17048257") + ) + (pin "51" + (uuid "c0bd4607-b468-4695-a75e-4556bb0094f5") + ) + (pin "23" + (uuid "1d346cd4-81d2-4fd3-bee8-1a6ad366a2cb") + ) + (pin "100" + (uuid "fa7de910-9474-4b02-962c-17453a5f154e") + ) + (pin "15" + (uuid "d493a4b5-1d57-4f14-b0cf-73664b02fc10") + ) + (pin "28" + (uuid "1548f5e8-da80-4288-9b2c-a38d4803de1e") + ) + (pin "5" + (uuid "129c2caf-3c43-4437-b059-baecfcab4286") + ) + (pin "60" + (uuid "fe65aed0-c2b8-4f16-a135-ef6b654502d6") + ) + (pin "35" + (uuid "fbf675cc-c3b0-4daa-9dad-25bef691f099") + ) + (pin "96" + (uuid "ebba91a6-f183-426c-8799-c16680169d65") + ) + (pin "55" + (uuid "f805788e-8802-4ab0-9c51-1867b993cf81") + ) + (pin "84" + (uuid "b48c5bb8-28e1-4ab6-a0ec-d94bab6586d9") + ) + (pin "73" + (uuid "35967f2b-6e7c-4aa1-a594-7ad9abc5da85") + ) + (pin "71" + (uuid "88260419-7ff4-495c-a186-1a0e7d3a8c63") + ) + (pin "54" + (uuid "26dcd4ca-b3bf-45b4-b8e7-ccb19970bd9e") + ) + (pin "42" + (uuid "09e62a1b-53ae-4eb8-809c-64e68ed81c69") + ) + (pin "47" + (uuid "c6fc5476-19fd-435e-a463-881c93804e9d") + ) + (pin "91" + (uuid "d02d4056-fe2e-4daa-a143-c204b1bf37ea") + ) + (pin "74" + (uuid "3417c800-b462-438d-a01f-f44f95701fa0") + ) + (pin "46" + (uuid "55e8539e-2e12-4ae9-90f5-e4621301863d") + ) + (pin "62" + (uuid "ac2d1c2f-c9cf-42fd-ac51-839b403c7301") + ) + (pin "88" + (uuid "06c3cf56-13be-412b-a237-a0d81a74776c") + ) + (pin "85" + (uuid "9c60823c-a7d0-40d6-92f7-e004ff5bc1ef") + ) + (pin "56" + (uuid "d594f236-7eb2-40b8-b825-583db410fa20") + ) + (pin "89" + (uuid "38e3a7c2-95eb-4b4a-bc8d-bbf473caa7c6") + (alternate "SYS_JTDO-SWO") + ) + (pin "25" + (uuid "caed367f-2304-4e0b-bc72-91f4230b17e2") + ) + (pin "24" + (uuid "c2e8512b-4396-46fe-b4e2-3f8582201e40") + ) + (pin "90" + (uuid "ec58a3b6-da4c-45f1-ae00-6c0c64654711") + ) + (pin "49" + (uuid "1a055044-8224-4cc3-a1d0-fb096c7514a8") + ) + (pin "34" + (uuid "cc142d85-c151-4d1d-8e47-3063ca34ad65") + ) + (pin "44" + (uuid "29edf8b5-d32e-4513-aecc-97229a7e9b3f") + ) + (pin "93" + (uuid "990e0d4b-69a5-4cc1-83e7-32e0bd3c5d39") + ) + (pin "75" + (uuid "ee6ea2b1-ab95-421e-ae26-ecbd1e522a74") + ) + (pin "64" + (uuid "10658c1a-bb4e-4577-8c91-0415c41c65f3") + ) + (pin "29" + (uuid "e7895fc0-5283-42c4-99d2-cc7b8e7f0f5f") + (alternate "ADC1_IN4") + ) + (pin "20" + (uuid "076f5566-5c99-472d-8f89-7a9f86b5a0a9") + ) + (pin "41" + (uuid "55c5213b-38ac-430e-a202-825f937f1767") + ) + (pin "2" + (uuid "b1f20a59-96d6-4148-b780-935fbe64f61a") + ) + (pin "82" + (uuid "043494cc-e4d2-4aed-bb53-f8e1ea43edb6") + ) + (pin "79" + (uuid "b3520875-78ad-4332-a117-21758f1a696a") + ) + (pin "31" + (uuid "abfa66ef-f9f2-471d-b941-e88366a6554c") + ) + (pin "65" + (uuid "1bc89573-5e09-4c25-bea3-3c6f17a8d2a7") + ) + (pin "81" + (uuid "599b4cd4-767f-43d0-aecd-18b1a328488b") + ) + (pin "16" + (uuid "b4c5a137-2ad8-4076-951c-d7327bff27c8") + ) + (pin "26" + (uuid "536b12dc-aebf-44dd-ac4f-3965f2fb06a4") + ) + (pin "50" + (uuid "ef7cb854-ad7b-4bda-b033-17dd2a7c56a8") + ) + (pin "17" + (uuid "cb873fee-b490-4aef-bbb5-33682c40daaa") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "U1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 196.85 140.97 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "53176832-9d75-483e-9047-22c8fb51ccc8") + (property "Reference" "C4" + (at 200.914 135.89 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "1.5pF" + (at 200.914 138.43 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 200.66 140.0048 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 196.85 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 196.85 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "4ef2c193-acf3-4e23-8c30-4da50581f200") + ) + (pin "2" + (uuid "68e924f2-9c17-4dab-a0c2-4abeef94414a") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "C4") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 58.42 60.96 270) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "79b3a305-a520-40b6-897d-0fd1fac355d1") + (property "Reference" "#PWR015" + (at 52.07 60.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 54.61 60.9599 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 58.42 60.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 58.42 60.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 58.42 60.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "755c0a3a-2758-4af4-b80d-174d3889ab3a") + ) + (instances + (project "iot-contact" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "#PWR015") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:Crystal") + (at 177.8 144.78 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "96986991-648d-4e7f-8857-fad655d34bb8") + (property "Reference" "Y1" + (at 181.61 143.5099 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "32.768kHz" + (at 181.61 146.0499 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 177.8 144.78 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 177.8 144.78 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Two pin crystal" + (at 177.8 144.78 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "7adc3300-d8d1-4a9c-808c-cddd2cebeea3") + ) + (pin "2" + (uuid "658c12d8-7228-459d-91c0-efa6f52c0f66") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "Y1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 46.99 66.04 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "9f2aa664-9c98-4d9d-8c95-cd8b752247b4") + (property "Reference" "#PWR014" + (at 46.99 72.39 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 46.99 71.12 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 46.99 66.04 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 46.99 66.04 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 46.99 66.04 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "62fa6614-b631-41f9-82a4-bcb3488794b6") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "#PWR014") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 121.92 31.75 0) + (mirror y) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "a57e0fa7-64d4-48d7-9aab-9c4fe5e63580") + (property "Reference" "R5" + (at 119.38 30.4799 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "0" + (at 119.38 33.0199 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 123.698 31.75 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 121.92 31.75 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 121.92 31.75 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "b3fba105-eaca-46d3-a087-a7034c87f0ad") + ) + (pin "1" + (uuid "f21ba9f0-3eaf-43a1-8cda-fe1c90f1570c") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "R5") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 196.85 148.59 90) + (mirror x) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "ba1db630-5593-40d7-be06-ae2183222f01") + (property "Reference" "C5" + (at 200.914 154.686 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "1.5pF" + (at 200.914 152.146 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 200.66 149.5552 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 196.85 148.59 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 196.85 148.59 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "29fddef1-cabb-471a-a80e-a68a97e501e0") + ) + (pin "2" + (uuid "37a2dcdc-5361-4ccb-bd68-3c546fee543a") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "C5") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 63.5 68.58 90) + (mirror x) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "c8a22984-60e9-469a-a2f5-6d45567f3ea1") + (property "Reference" "C3" + (at 67.818 72.898 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "20pF" + (at 67.818 70.358 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 67.31 69.5452 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 63.5 68.58 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 63.5 68.58 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "4995fa37-7cf0-42aa-b680-47595e4d7b36") + ) + (pin "2" + (uuid "943e279b-103e-4f47-b9cf-5574aaa642e6") + ) + (instances + (project "iot-contact" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "C3") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:FerriteBead") + (at 139.7 31.75 180) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "cc42b4c5-0560-461f-bff3-be69aab4985d") + (property "Reference" "FB1" + (at 143.51 30.5307 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "FerriteBead" + (at 143.51 33.0707 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 141.478 31.75 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 139.7 31.75 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Ferrite bead" + (at 139.7 31.75 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "5819cbf7-a1d6-413c-82b6-18d54c8eedd1") + ) + (pin "1" + (uuid "e7e5b974-c35f-4a2a-b3e3-99d481857fa9") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "FB1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:Crystal") + (at 76.2 64.77 270) + (mirror x) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "d59e4dd5-5df0-4a29-8754-42a074aba4ec") + (property "Reference" "Y2" + (at 72.39 63.4999 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "25MHz" + (at 72.39 66.0399 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 76.2 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 76.2 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Two pin crystal" + (at 76.2 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "ae540ca3-0608-40f8-a486-c7b40253e25f") + ) + (pin "1" + (uuid "8961ca26-d2ea-450d-8084-08a226c03269") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "Y2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 201.93 148.59 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "de73bd67-0309-410d-b86d-97211b75731b") + (property "Reference" "#PWR017" + (at 208.28 148.59 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 205.74 148.5899 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 201.93 148.59 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 201.93 148.59 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 201.93 148.59 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "da50f0cd-e3ec-4e6b-8c4a-f50d248068f8") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "#PWR017") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 129.54 187.96 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "e57394c6-81b7-484a-a698-5c55c124b2f6") + (property "Reference" "#PWR011" + (at 129.54 194.31 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 129.54 193.04 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 129.54 187.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 129.54 187.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 129.54 187.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "4a93ea34-bc59-414e-bbd6-ab698e4adc33") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "#PWR011") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 201.93 140.97 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "e9136fee-fe1e-4018-820f-ab598eddd041") + (property "Reference" "#PWR018" + (at 208.28 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 205.74 140.9699 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 201.93 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 201.93 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 201.93 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "f1f3b2f8-af20-4ecf-a9cb-821f20813729") + ) + (instances + (project "iot-contact" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "#PWR018") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 157.48 31.75 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "ea2f4cb7-4d78-4193-93bd-e7bb1fbcbdf8") + (property "Reference" "R4" + (at 160.02 30.4799 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "0" + (at 160.02 33.0199 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 155.702 31.75 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 157.48 31.75 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 157.48 31.75 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "d1264e5c-cc15-4c02-9d0a-dfc1c77c28c5") + ) + (pin "2" + (uuid "ae4686b2-4655-4519-932d-522793eeb738") + ) + (instances + (project "" + (path "/5defd195-0277-4d04-9f5f-69e505c9845c/9e600826-010a-409d-9a37-ea8e6fbe6058" + (reference "R4") + (unit 1) + ) + ) + ) + ) ) diff --git a/pcb/versions.tsv b/pcb/versions.tsv new file mode 100644 index 0000000..9d6daa1 --- /dev/null +++ b/pcb/versions.tsv @@ -0,0 +1,120 @@ +Version R1 R2 n_ADC_min n_ADC n_ADC_max power +v0.1.0-pre1 75000.0 Ohm (1.0 %) 180.0 Ohm (1.0 %) 0x00A 0x00A 0x00A 0.000144852 +(unassigned) 20000.0 Ohm (1.0 %) 100.0 Ohm (1.0 %) 0x014 0x014 0x015 0.000541791 +(unassigned) 47000.0 Ohm (1.0 %) 360.0 Ohm (1.0 %) 0x01F 0x01F 0x020 0.000229941 +(unassigned) 15000.0 Ohm (1.0 %) 160.0 Ohm (1.0 %) 0x02A 0x02B 0x02C 0.000718338 +(unassigned) 11000.0 Ohm (1.0 %) 150.0 Ohm (1.0 %) 0x036 0x037 0x038 0.000976682 +(unassigned) 12000.0 Ohm (1.0 %) 200.0 Ohm (1.0 %) 0x042 0x043 0x044 0.000892623 +(unassigned) 91000.0 Ohm (1.0 %) 1800.0 Ohm (1.0 %) 0x04E 0x04F 0x051 0.000117349 +(unassigned) 13000.0 Ohm (1.0 %) 300.0 Ohm (1.0 %) 0x05B 0x05C 0x05E 0.000818797 +(unassigned) 68000.0 Ohm (1.0 %) 1800.0 Ohm (1.0 %) 0x068 0x06A 0x06C 0.000156017 +(unassigned) 43000.0 Ohm (1.0 %) 1300.0 Ohm (1.0 %) 0x076 0x078 0x07B 0.000245824 +(unassigned) 24000.0 Ohm (1.0 %) 820.0 Ohm (1.0 %) 0x085 0x087 0x08A 0.000438759 +(unassigned) 47000.0 Ohm (1.0 %) 1800.0 Ohm (1.0 %) 0x094 0x097 0x09A 0.000223156 +(unassigned) 12000.0 Ohm (1.0 %) 510.0 Ohm (1.0 %) 0x0A4 0x0A7 0x0AA 0.000870504 +(unassigned) 47000.0 Ohm (1.0 %) 2200.0 Ohm (1.0 %) 0x0B4 0x0B7 0x0BB 0.000221341 +(unassigned) 91000.0 Ohm (1.0 %) 4700.0 Ohm (1.0 %) 0x0C5 0x0C9 0x0CD 0.000113793 +(unassigned) 39000.0 Ohm (1.0 %) 2200.0 Ohm (1.0 %) 0x0D7 0x0DB 0x0DF 0.000264320 +(unassigned) 39000.0 Ohm (1.0 %) 2400.0 Ohm (1.0 %) 0x0E9 0x0ED 0x0F2 0.000263043 +(unassigned) 75000.0 Ohm (1.0 %) 5100.0 Ohm (1.0 %) 0x100 0x105 0x10A 0.000135955 +(unassigned) 27000.0 Ohm (1.0 %) 2000.0 Ohm (1.0 %) 0x115 0x11A 0x120 0.000375517 +(unassigned) 15000.0 Ohm (1.0 %) 1200.0 Ohm (1.0 %) 0x12A 0x12F 0x135 0.000672222 +(unassigned) 15000.0 Ohm (1.0 %) 1300.0 Ohm (1.0 %) 0x141 0x147 0x14D 0.000668098 +(unassigned) 16000.0 Ohm (1.0 %) 1500.0 Ohm (1.0 %) 0x159 0x15F 0x165 0.000622286 +(unassigned) 15000.0 Ohm (1.0 %) 1600.0 Ohm (1.0 %) 0x184 0x18B 0x192 0.000656024 +(unassigned) 13000.0 Ohm (1.0 %) 1500.0 Ohm (1.0 %) 0x1A0 0x1A8 0x1AF 0.000751034 +(unassigned) 13000.0 Ohm (1.0 %) 1600.0 Ohm (1.0 %) 0x1B9 0x1C1 0x1C9 0.000745890 +(unassigned) 91000.0 Ohm (1.0 %) 12000.0 Ohm (1.0 %) 0x1D5 0x1DD 0x1E6 0.000105728 +(unassigned) 36000.0 Ohm (1.0 %) 5100.0 Ohm (1.0 %) 0x1F3 0x1FC 0x205 0.000264964 +(unassigned) 13000.0 Ohm (1.0 %) 2000.0 Ohm (1.0 %) 0x219 0x222 0x22C 0.000726 +(unassigned) 11000.0 Ohm (1.0 %) 1800.0 Ohm (1.0 %) 0x236 0x240 0x24A 0.000850781 +(unassigned) 27000.0 Ohm (1.0 %) 4700.0 Ohm (1.0 %) 0x255 0x25F 0x26A 0.000343533 +(unassigned) 30000.0 Ohm (1.0 %) 5600.0 Ohm (1.0 %) 0x279 0x284 0x28F 0.000305899 +(unassigned) 9100.0 Ohm (1.0 %) 1800.0 Ohm (1.0 %) 0x299 0x2A4 0x2B0 0.000999083 +(unassigned) 62000.0 Ohm (1.0 %) 13000.0 Ohm (1.0 %) 0x2BA 0x2C6 0x2D2 0.0001452 +(unassigned) 12000.0 Ohm (1.0 %) 2700.0 Ohm (1.0 %) 0x2E4 0x2F0 0x2FD 0.000740816 +(unassigned) 18000.0 Ohm (1.0 %) 4300.0 Ohm (1.0 %) 0x309 0x316 0x322 0.000488341 +(unassigned) 36000.0 Ohm (1.0 %) 9100.0 Ohm (1.0 %) 0x32D 0x33A 0x348 0.000241463 +(unassigned) 56000.0 Ohm (1.0 %) 15000.0 Ohm (1.0 %) 0x354 0x361 0x36F 0.000153380 +(unassigned) 18000.0 Ohm (1.0 %) 5100.0 Ohm (1.0 %) 0x37A 0x388 0x396 0.000471429 +(unassigned) 10000.0 Ohm (1.0 %) 3000.0 Ohm (1.0 %) 0x3A3 0x3B1 0x3C0 0.000837692 +(unassigned) 16000.0 Ohm (1.0 %) 5100.0 Ohm (1.0 %) 0x3CF 0x3DE 0x3ED 0.000516114 +(unassigned) 27000.0 Ohm (1.0 %) 9100.0 Ohm (1.0 %) 0x3F9 0x408 0x418 0.000301662 +(unassigned) 56000.0 Ohm (1.0 %) 20000.0 Ohm (1.0 %) 0x426 0x436 0x446 0.000143289 +(unassigned) 18000.0 Ohm (1.0 %) 6800.0 Ohm (1.0 %) 0x453 0x463 0x473 0.000439113 +(unassigned) 30000.0 Ohm (1.0 %) 12000.0 Ohm (1.0 %) 0x481 0x492 0x4A3 0.000259286 +(unassigned) 12000.0 Ohm (1.0 %) 5100.0 Ohm (1.0 %) 0x4B4 0x4C5 0x4D7 0.000636842 +(unassigned) 15000.0 Ohm (1.0 %) 6800.0 Ohm (1.0 %) 0x4EC 0x4FD 0x50F 0.000499541 +(unassigned) 13000.0 Ohm (1.0 %) 6200.0 Ohm (1.0 %) 0x519 0x52A 0x53C 0.000567188 +(unassigned) 18000.0 Ohm (1.0 %) 9100.0 Ohm (1.0 %) 0x54D 0x55F 0x571 0.000401845 +(unassigned) 62000.0 Ohm (1.0 %) 33000.0 Ohm (1.0 %) 0x57C 0x58E 0x5A1 0.000114632 +(unassigned) 10000.0 Ohm (1.0 %) 5600.0 Ohm (1.0 %) 0x5AB 0x5BE 0x5D1 0.000698077 +(unassigned) 56000.0 Ohm (1.0 %) 33000.0 Ohm (1.0 %) 0x5DB 0x5EE 0x602 0.000122360 +(unassigned) 10000.0 Ohm (1.0 %) 6200.0 Ohm (1.0 %) 0x60C 0x61F 0x633 0.000672222 +(unassigned) 15000.0 Ohm (1.0 %) 10000.0 Ohm (1.0 %) 0x652 0x666 0x67A 0.0004356 +(unassigned) 47000.0 Ohm (1.0 %) 33000.0 Ohm (1.0 %) 0x685 0x699 0x6AD 0.000136125 +(unassigned) 27000.0 Ohm (1.0 %) 20000.0 Ohm (1.0 %) 0x6BB 0x6CF 0x6E3 0.000231702 +(unassigned) 15000.0 Ohm (1.0 %) 12000.0 Ohm (1.0 %) 0x708 0x71C 0x730 0.000403333 +(unassigned) 51000.0 Ohm (1.0 %) 43000.0 Ohm (1.0 %) 0x73D 0x751 0x766 0.000115851 +(unassigned) 18000.0 Ohm (1.0 %) 16000.0 Ohm (1.0 %) 0x773 0x787 0x79B 0.000320294 +(unassigned) 16000.0 Ohm (1.0 %) 15000.0 Ohm (1.0 %) 0x7A9 0x7BD 0x7D2 0.000351290 +(unassigned) 5600.0 Ohm (1.0 %) 5600.0 Ohm (1.0 %) 0x7EB 0x800 0x814 0.000972321 +(unassigned) 15000.0 Ohm (1.0 %) 16000.0 Ohm (1.0 %) 0x82D 0x842 0x856 0.000351290 +(unassigned) 16000.0 Ohm (1.0 %) 18000.0 Ohm (1.0 %) 0x864 0x878 0x88C 0.000320294 +(unassigned) 11000.0 Ohm (1.0 %) 13000.0 Ohm (1.0 %) 0x896 0x8AA 0x8BE 0.00045375 +(unassigned) 12000.0 Ohm (1.0 %) 15000.0 Ohm (1.0 %) 0x8CF 0x8E3 0x8F7 0.000403333 +(unassigned) 9100.0 Ohm (1.0 %) 12000.0 Ohm (1.0 %) 0x905 0x919 0x92D 0.000516114 +(unassigned) 36000.0 Ohm (1.0 %) 51000.0 Ohm (1.0 %) 0x94D 0x961 0x974 0.000125172 +(unassigned) 10000.0 Ohm (1.0 %) 15000.0 Ohm (1.0 %) 0x985 0x999 0x9AD 0.0004356 +(unassigned) 4300.0 Ohm (1.0 %) 6800.0 Ohm (1.0 %) 0x9B9 0x9CD 0x9E0 0.000981081 +(unassigned) 12000.0 Ohm (1.0 %) 20000.0 Ohm (1.0 %) 0x9EC 0x9FF 0xA13 0.000340312 +(unassigned) 9100.0 Ohm (1.0 %) 16000.0 Ohm (1.0 %) 0xA1F 0xA32 0xA45 0.000433865 +(unassigned) 30000.0 Ohm (1.0 %) 56000.0 Ohm (1.0 %) 0xA58 0xA6B 0xA7D 0.000126628 +(unassigned) 5600.0 Ohm (1.0 %) 11000.0 Ohm (1.0 %) 0xA87 0xA9A 0xAAC 0.000656024 +(unassigned) 30000.0 Ohm (1.0 %) 62000.0 Ohm (1.0 %) 0xAB6 0xAC8 0xADA 0.000118370 +(unassigned) 11000.0 Ohm (1.0 %) 24000.0 Ohm (1.0 %) 0xAE6 0xAF8 0xB0A 0.000311143 +(unassigned) 13000.0 Ohm (1.0 %) 30000.0 Ohm (1.0 %) 0xB18 0xB29 0xB3A 0.000253256 +(unassigned) 16000.0 Ohm (1.0 %) 39000.0 Ohm (1.0 %) 0xB47 0xB58 0xB69 0.000198 +(unassigned) 6200.0 Ohm (1.0 %) 16000.0 Ohm (1.0 %) 0xB77 0xB87 0xB98 0.000490541 +(unassigned) 11000.0 Ohm (1.0 %) 30000.0 Ohm (1.0 %) 0xBA4 0xBB4 0xBC4 0.000265610 +(unassigned) 6200.0 Ohm (1.0 %) 18000.0 Ohm (1.0 %) 0xBD6 0xBE6 0xBF5 0.00045 +(unassigned) 3900.0 Ohm (1.0 %) 12000.0 Ohm (1.0 %) 0xC03 0xC13 0xC22 0.000684906 +(unassigned) 12000.0 Ohm (1.0 %) 39000.0 Ohm (1.0 %) 0xC2D 0xC3B 0xC4A 0.000213529 +(unassigned) 18000.0 Ohm (1.0 %) 62000.0 Ohm (1.0 %) 0xC57 0xC66 0xC74 0.000136125 +(unassigned) 3300.0 Ohm (1.0 %) 12000.0 Ohm (1.0 %) 0xC7E 0xC8C 0xC9A 0.000711765 +(unassigned) 3900.0 Ohm (1.0 %) 15000.0 Ohm (1.0 %) 0xCA5 0xCB2 0xCBF 0.000576190 +(unassigned) 2700.0 Ohm (1.0 %) 11000.0 Ohm (1.0 %) 0xCCB 0xCD8 0xCE5 0.000794891 +(unassigned) 13000.0 Ohm (1.0 %) 56000.0 Ohm (1.0 %) 0xCEF 0xCFB 0xD08 0.000157826 +(unassigned) 18000.0 Ohm (1.0 %) 82000.0 Ohm (1.0 %) 0xD12 0xD1E 0xD2A 0.0001089 +(unassigned) 5600.0 Ohm (1.0 %) 27000.0 Ohm (1.0 %) 0xD34 0xD40 0xD4B 0.000334049 +(unassigned) 4700.0 Ohm (1.0 %) 24000.0 Ohm (1.0 %) 0xD55 0xD60 0xD6C 0.000379443 +(unassigned) 2400.0 Ohm (1.0 %) 13000.0 Ohm (1.0 %) 0xD76 0xD81 0xD8C 0.000707143 +(unassigned) 13000.0 Ohm (1.0 %) 75000.0 Ohm (1.0 %) 0xD98 0xDA2 0xDAC 0.00012375 +(unassigned) 3900.0 Ohm (1.0 %) 24000.0 Ohm (1.0 %) 0xDB9 0xDC3 0xDCC 0.000390323 +(unassigned) 1500.0 Ohm (1.0 %) 10000.0 Ohm (1.0 %) 0xDE0 0xDE9 0xDF2 0.000946957 +(unassigned) 1800.0 Ohm (1.0 %) 13000.0 Ohm (1.0 %) 0xE04 0xE0D 0xE16 0.000735811 +(unassigned) 1500.0 Ohm (1.0 %) 12000.0 Ohm (1.0 %) 0xE30 0xE38 0xE40 0.000806667 +(unassigned) 1500.0 Ohm (1.0 %) 13000.0 Ohm (1.0 %) 0xE50 0xE57 0xE5F 0.000751034 +(unassigned) 1600.0 Ohm (1.0 %) 15000.0 Ohm (1.0 %) 0xE6D 0xE74 0xE7B 0.000656024 +(unassigned) 1500.0 Ohm (1.0 %) 16000.0 Ohm (1.0 %) 0xE9A 0xEA0 0xEA6 0.000622286 +(unassigned) 1300.0 Ohm (1.0 %) 15000.0 Ohm (1.0 %) 0xEB2 0xEB8 0xEBE 0.000668098 +(unassigned) 1200.0 Ohm (1.0 %) 15000.0 Ohm (1.0 %) 0xECA 0xED0 0xED5 0.000672222 +(unassigned) 2000.0 Ohm (1.0 %) 27000.0 Ohm (1.0 %) 0xEDF 0xEE5 0xEEA 0.000375517 +(unassigned) 820.0 Ohm (1.0 %) 12000.0 Ohm (1.0 %) 0xEF4 0xEF9 0xEFE 0.000849454 +(unassigned) 3900.0 Ohm (1.0 %) 62000.0 Ohm (1.0 %) 0xF08 0xF0D 0xF11 0.000165250 +(unassigned) 750.0 Ohm (1.0 %) 13000.0 Ohm (1.0 %) 0xF1B 0xF20 0xF24 0.000792 +(unassigned) 4300.0 Ohm (1.0 %) 82000.0 Ohm (1.0 %) 0xF2F 0xF33 0xF37 0.000126188 +(unassigned) 620.0 Ohm (1.0 %) 13000.0 Ohm (1.0 %) 0xF41 0xF45 0xF48 0.000799559 +(unassigned) 1300.0 Ohm (1.0 %) 30000.0 Ohm (1.0 %) 0xF52 0xF55 0xF58 0.000347923 +(unassigned) 470.0 Ohm (1.0 %) 12000.0 Ohm (1.0 %) 0xF62 0xF65 0xF68 0.000873296 +(unassigned) 560.0 Ohm (1.0 %) 16000.0 Ohm (1.0 %) 0xF72 0xF75 0xF77 0.000657609 +(unassigned) 560.0 Ohm (1.0 %) 18000.0 Ohm (1.0 %) 0xF81 0xF83 0xF86 0.000586746 +(unassigned) 820.0 Ohm (1.0 %) 30000.0 Ohm (1.0 %) 0xF90 0xF92 0xF94 0.000353342 +(unassigned) 430.0 Ohm (1.0 %) 18000.0 Ohm (1.0 %) 0xF9E 0xF9F 0xFA1 0.000590884 +(unassigned) 330.0 Ohm (1.0 %) 16000.0 Ohm (1.0 %) 0xFAB 0xFAC 0xFAE 0.000666871 +(unassigned) 470.0 Ohm (1.0 %) 27000.0 Ohm (1.0 %) 0xFB8 0xFB9 0xFBA 0.000396432 +(unassigned) 390.0 Ohm (1.0 %) 27000.0 Ohm (1.0 %) 0xFC4 0xFC5 0xFC6 0.000397590 +(unassigned) 180.0 Ohm (1.0 %) 16000.0 Ohm (1.0 %) 0xFD1 0xFD1 0xFD2 0.000673053 +(unassigned) 110.0 Ohm (1.0 %) 13000.0 Ohm (1.0 %) 0xFDC 0xFDD 0xFDD 0.000830664 +(unassigned) 330.0 Ohm (1.0 %) 56000.0 Ohm (1.0 %) 0xFE7 0xFE7 0xFE7 0.000193325 +(unassigned) 160.0 Ohm (1.0 %) 47000.0 Ohm (1.0 %) 0xFF1 0xFF1 0xFF1 0.000230916 diff --git a/simple.css b/simple.css new file mode 160000 +Subproject 9f62bf3630812239712693886af032311c2dfa3 diff --git a/cmake/LICENSE.txt b/tools/LICENSE.txt index d0a1fa1..d0a1fa1 100644 --- a/cmake/LICENSE.txt +++ b/tools/LICENSE.txt diff --git a/tools/build_zephyr.py b/tools/build_zephyr.py new file mode 100755 index 0000000..5dd9e47 --- /dev/null +++ b/tools/build_zephyr.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 + + +# This Source Code Form is subject to the terms of the Mozilla Public License, +# v. 2.0. If a copy of the MPL was not distributed with this file, You can +# obtain one at https://mozilla.org/MPL/2.0/. + + +import argparse +import multiprocessing +import shutil +import subprocess +import pathlib + + +def main() -> None: + parser = argparse.ArgumentParser( + description="Build a Zephyr GNU Make build", + ) + + parser.add_argument("-B", "--build-tree", required=True) + parser.add_argument("-b", "--binary-name", required=True) + parser.add_argument("-n", "--target-name", required=True) + + args = parser.parse_args() + + build_tree = pathlib.Path(args.build_tree) + output_dir = build_tree.parent + + subprocess.run( + [ + "make", + f"-j{multiprocessing.cpu_count()}", + "-C", + f"{str(build_tree)}", + ], + shell=False, + check=True, + ) + + shutil.copy(build_tree / "zephyr" / args.binary_name, output_dir / args.target_name) + + +if __name__ == "__main__": + main() diff --git a/tools/configure_zephyr.py b/tools/configure_zephyr.py new file mode 100755 index 0000000..f4707c6 --- /dev/null +++ b/tools/configure_zephyr.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 + + +# This Source Code Form is subject to the terms of the Mozilla Public License, +# v. 2.0. If a copy of the MPL was not distributed with this file, You can +# obtain one at https://mozilla.org/MPL/2.0/. + + +import argparse +import subprocess + + +def main() -> None: + parser = argparse.ArgumentParser( + description="Configure a Zephyr CMake build", + ) + + parser.add_argument("-S", "--source-tree", required=True) + parser.add_argument("-B", "--build-tree", required=True) + parser.add_argument("-b", "--board", required=True) + parser.add_argument("-z", "--zephyr-base", required=True) + parser.add_argument("-m", "--zephyr-modules", required=False) + parser.add_argument("-c", "--extra-config", required=False) + parser.add_argument("-k", "--signing-key", required=False) + parser.add_argument("--prefix", required=False) + parser.add_argument("--libdir", required=False) + parser.add_argument("--bindir", required=False) + + args = parser.parse_args() + + command = [ + "cmake", + f"-S{args.source_tree}", + f"-B{args.build_tree}", + f"-DBOARD={args.board}", + f"-DZEPHYR_BASE={args.zephyr_base}", + ] + + if args.zephyr_modules is not None: + command.append(f"-DZEPHYR_MODULES={args.zephyr_modules}") + + if args.extra_config is not None: + command.append(f"-DEXTRA_CONF_FILE={args.extra_config}") + + if args.signing_key is not None: + command.append(f'-DCONFIG_BOOT_SIGNATURE_KEY_FILE="{args.signing_key}"') + + subprocess.run(command, shell=False, check=True) + + +if __name__ == "__main__": + main() diff --git a/tools/deploy.py b/tools/deploy.py new file mode 100755 index 0000000..26048e8 --- /dev/null +++ b/tools/deploy.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 + + +import argparse +import subprocess +import pathlib + + +SCRIPT = pathlib.Path(__file__) +SOURCE_ROOT = SCRIPT.parent.parent.resolve() +ARTIFACTS_DEFAULT = SOURCE_ROOT / "build" / "artifacts" + + +def main() -> None: + parser = argparse.ArgumentParser( + description="Use OpenSSH and rsync to deploy artifacts", + ) + + parser.add_argument( + "-a", + "--artifacts", + default=ARTIFACTS_DEFAULT, + help="local path to artifacts folder", + ) + parser.add_argument( + "-H", "--host", default="cloud", help="target `Host` name from ~/.ssh/config" + ) + parser.add_argument( + "-p", + "--path", + default="/srv/http/deploy.xengineering.eu/public/git/iot-contact/main/", + help="remote path to destination folder on server", + ) + parser.add_argument( + "-d", + "--dry-run", + action="store_true", + help="do not execute command and instead print it", + ) + + args = parser.parse_args() + + command = [ + "rsync", + "-av", + "--delete", + f"{str(pathlib.Path(args.artifacts).resolve())}/", + f"{args.host}:{args.path}", + ] + + if args.dry_run: + print(command) + else: + subprocess.run(command, shell=False, check=True) + + +if __name__ == "__main__": + main() diff --git a/tools/make_factory_image.py b/tools/make_factory_image.py new file mode 100755 index 0000000..735f657 --- /dev/null +++ b/tools/make_factory_image.py @@ -0,0 +1,95 @@ +#!/usr/bin/env python3 + + +import argparse +import dataclasses +import pathlib + + +PADDING_BYTE: bytes = b"\xff" + + +def main() -> None: + args = Arguments.from_cli() + print(args) + + factory_image: bytes = join( + bootloader=args.bootloader.read_bytes(), + application=args.application.read_bytes(), + offset=args.offset, + ) + + args.factory_image.write_bytes(factory_image) + + +def join(bootloader: bytes, application: bytes, offset: int) -> bytes: + padding = PADDING_BYTE * (offset - len(bootloader)) + + return bootloader + padding + application + + +@dataclasses.dataclass +class Arguments: + bootloader: pathlib.Path + offset: int + application: pathlib.Path + factory_image: pathlib.Path + + def __post_init__(self) -> None: + assert isinstance(self.bootloader, pathlib.Path) + + assert isinstance(self.offset, int) + assert self.offset >= 0 + + assert isinstance(self.application, pathlib.Path) + + assert isinstance(self.factory_image, pathlib.Path) + + def __str__(self) -> str: + return f"""{__file__} \\ + --bootloader {self.bootloader} \\ + --offset 0x{self.offset:X} \\ + --application {self.application} \\ + --factory_image {self.factory_image}""" + + @staticmethod + def from_cli() -> "Arguments": + parser = argparse.ArgumentParser( + description="Join bootloader and application firmware to a factory image" + ) + + parser.add_argument( + "-b", "--bootloader", required=True, help="path to bootloader firmware" + ) + + default_offset = 0x40000 + parser.add_argument( + "-o", + "--offset", + default=default_offset, + help=f"offset in bytes between bootloader and application (default: 0x{default_offset:X})", + ) + + parser.add_argument( + "-a", "--application", required=True, help="path to application firmware" + ) + + parser.add_argument( + "-f", + "--factory-image", + default=pathlib.Path("factory-image.bin"), + help="path to output factory image file", + ) + + args = parser.parse_args() + + return Arguments( + bootloader=pathlib.Path(args.bootloader), + offset=int(args.offset), + application=pathlib.Path(args.application), + factory_image=pathlib.Path(args.factory_image), + ) + + +if __name__ == "__main__": + main() diff --git a/tools/meson.build b/tools/meson.build new file mode 100644 index 0000000..f58c54b --- /dev/null +++ b/tools/meson.build @@ -0,0 +1,3 @@ +configure_zephyr = meson.current_source_dir() / 'configure_zephyr.py' +build_zephyr = meson.current_source_dir() / 'build_zephyr.py' +make_factory_image = meson.current_source_dir() / 'make_factory_image.py' diff --git a/tools/resistor_selector.py b/tools/resistor_selector.py new file mode 100755 index 0000000..1ee51b7 --- /dev/null +++ b/tools/resistor_selector.py @@ -0,0 +1,327 @@ +#!/usr/bin/env python3 + + +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at https://mozilla.org/MPL/2.0/. + + +import argparse +import dataclasses +from decimal import getcontext, Decimal +import pathlib + + +DESCRIPTION = """Help resistor value calculation for hardware version detection""" +# fmt: off +IMPLEMENTED_SERIES = { + 24: (1.0, 1.1, 1.2, 1.3, 1.5, 1.6, 1.8, 2.0, 2.2, 2.4, 2.7, 3.0, 3.3, 3.6, 3.9, 4.3, 4.7, 5.1, 5.6, 6.2, 6.8, 7.5, 8.2, 9.1), +} +"""Series are hardcoded from Wikipedia since they do not follow the formula""" +# fmt: on +MULTIPLIERS = ( + 100.0, + 1000.0, + 10000.0, +) + + +def main() -> None: + getcontext().prec = 6 + + args = Arguments.from_cli() + + resistors: list[Resistor] = [] + for multiplier in MULTIPLIERS: + for value in IMPLEMENTED_SERIES[args.series]: + resistors.append( + Resistor( + resistance=Decimal(multiplier) * Decimal(value), + tolerance=args.tolerance, + ) + ) + + voltage_dividers = [] + for r1 in resistors: + for r2 in resistors: + combination = VoltageDivider(voltage=args.voltage, r1=r1, r2=r2) + voltage_dividers.append(combination) + + sorted_voltage_dividers = sorted(voltage_dividers, key=lambda c: c.v_adc) + + filtered_voltage_dividers = filter( + source=sorted_voltage_dividers, + margin=args.margin, + n_bits_adc=args.n_bits_adc, + power=args.power, + ) + + results = VoltageDividers( + combinations=tuple[VoltageDivider, ...](filtered_voltage_dividers) + ) + + output: str = results.to_tsv( + voltage=args.voltage, + n_bits_adc=args.n_bits_adc, + ) + + if args.output is None: + print(output) + else: + args.output.write_text(output) + + +@dataclasses.dataclass(frozen=True, kw_only=True) +class Arguments: + series: int + voltage: Decimal # volts + n_bits_adc: int # number of bits + output: pathlib.Path | None + margin: int + power: Decimal # watt + tolerance: Decimal # percent + + def __post_init__(self) -> None: + assert isinstance(self.series, int) + assert self.series in IMPLEMENTED_SERIES + + assert isinstance(self.voltage, Decimal) + assert 0.0 < self.voltage + + assert isinstance(self.n_bits_adc, int) + assert self.n_bits_adc > 0 + + if self.output is not None: + assert isinstance(self.output, pathlib.Path) + + assert isinstance(self.margin, int) + assert self.margin >= 0 + + assert isinstance(self.power, Decimal) + assert self.power >= Decimal(0.0) + + assert isinstance(self.tolerance, Decimal) + assert self.tolerance >= Decimal(0.0) + + @staticmethod + def from_cli() -> "Arguments": + parser = argparse.ArgumentParser( + description=DESCRIPTION, + ) + + default_series = 24 + parser.add_argument( + "-s", + "--series", + default=default_series, + help=f"resistor E series (supported: {[k for k in IMPLEMENTED_SERIES]}, default: {default_series})", + ) + + default_voltage = 3.3 + parser.add_argument( + "-v", + "--voltage", + default=default_voltage, + help=f"voltage [V] powering the voltage divider (default: {default_voltage})", + ) + + default_bits = 12 + parser.add_argument( + "-b", + "--bits", + default=default_bits, + help=f"number of ADC bits (default: {default_bits})", + ) + + parser.add_argument( + "-o", + "--output", + default=None, + type=pathlib.Path, + help="output file to write to (default: stdout)", + ) + + default_margin: int = 10 + parser.add_argument( + "-m", + "--margin", + default=default_margin, + help=f"min. ADC value difference between adjacent voltage dividers (default: {default_margin})", + ) + + default_power = 0.001 + parser.add_argument( + "-p", + "--power", + default=default_power, + help=f"max. power [W] consumed by voltage divider (default: {default_power})", + ) + + default_tolerance = 1.0 + parser.add_argument( + "-t", + "--tolerance", + default=default_tolerance, + help=f"resistor tolerance [percent] (default: {default_tolerance})", + ) + + args = parser.parse_args() + + return Arguments( + series=int(args.series), + voltage=Decimal(args.voltage), + n_bits_adc=int(args.bits), + output=args.output, + margin=int(args.margin), + power=Decimal(args.power), + tolerance=Decimal(args.tolerance), + ) + + +@dataclasses.dataclass(frozen=True, kw_only=True) +class Resistor: + resistance: Decimal # ohm + tolerance: Decimal # percent + + def __post_init__(self) -> None: + assert isinstance(self.resistance, Decimal) + assert self.resistance >= Decimal(0.0) + + assert isinstance(self.tolerance, Decimal) + assert self.tolerance >= Decimal(0.0) + + def __str__(self) -> str: + return f"{float(self.resistance)} Ohm ({float(self.tolerance)} %)" + + @property + def resistance_min(self) -> Decimal: + return self.resistance * (Decimal(1.0) - (self.tolerance / Decimal(100.0))) + + @property + def resistance_max(self) -> Decimal: + return self.resistance * (Decimal(1.0) + (self.tolerance / Decimal(100.0))) + + +@dataclasses.dataclass(frozen=True, kw_only=True) +class VoltageDivider: + voltage: Decimal # voltage over both resistors in volts + r1: Resistor # resistor closer to + + r2: Resistor # resistor closer to - + + @property + def power(self) -> Decimal: + return self.voltage**2 / (self.r1.resistance + self.r2.resistance) + + @property + def v_adc_min(self) -> Decimal: + return self.voltage / ( + Decimal(1.0) + self.r1.resistance_max / self.r2.resistance_min + ) + + @property + def v_adc(self) -> Decimal: + return self.voltage / (Decimal(1.0) + self.r1.resistance / self.r2.resistance) + + @property + def v_adc_max(self) -> Decimal: + return self.voltage / ( + Decimal(1.0) + self.r1.resistance_min / self.r2.resistance_max + ) + + @staticmethod + def volts_to_n_adc( + max_voltage: Decimal, voltage_adc: Decimal, n_bits_adc: int + ) -> int: + n_max = 2**n_bits_adc - 1 + continuous = voltage_adc / max_voltage * Decimal(n_max) + discrete = int(continuous + Decimal(0.5)) + return discrete + + def n_adc_min(self, n_bits_adc: int) -> int: + return self.volts_to_n_adc( + max_voltage=self.voltage, + voltage_adc=self.v_adc_min, + n_bits_adc=n_bits_adc, + ) + + def n_adc(self, n_bits_adc: int) -> int: + return self.volts_to_n_adc( + max_voltage=self.voltage, + voltage_adc=self.v_adc, + n_bits_adc=n_bits_adc, + ) + + def n_adc_max(self, n_bits_adc: int) -> int: + return self.volts_to_n_adc( + max_voltage=self.voltage, + voltage_adc=self.v_adc_max, + n_bits_adc=n_bits_adc, + ) + + def to_tsv(self, voltage: Decimal, n_bits_adc: int) -> str: + return ( + f"{self.r1}" + f"\t{self.r2}" + f"\t{self.v_adc_min}" + f"\t{self.v_adc}" + f"\t{self.v_adc_max}" + f"\t0x{self.n_adc_min(n_bits_adc=n_bits_adc):03X}" + f"\t0x{self.n_adc(n_bits_adc=n_bits_adc):03X}" + f"\t0x{self.n_adc_max(n_bits_adc=n_bits_adc):03X}" + f"\t{self.power}" + ) + + +@dataclasses.dataclass(frozen=True, kw_only=True) +class VoltageDividers: + combinations: tuple[VoltageDivider, ...] + + def to_tsv(self, voltage: Decimal, n_bits_adc: int) -> str: + output = ( + "R1" + "\tR2" + "\tV_ADC_min" + "\tV_ADC" + "\tV_ADC_max" + "\tn_ADC_min" + "\tn_ADC" + "\tn_ADC_max" + "\tpower" + ) + for combination in self.combinations: + output += "\n" + combination.to_tsv( + voltage=voltage, + n_bits_adc=n_bits_adc, + ) + return output + + +def filter( + source: list[VoltageDivider], + margin: int, + n_bits_adc: int, + power: Decimal, +) -> list[VoltageDivider]: + sink: list[VoltageDivider] = [] + v_adc_max = Decimal(0.0) + n_adc_max = 0 + + for voltage_divider in source: + if voltage_divider.v_adc_min <= v_adc_max: + continue # overlapping voltage ranges + + if voltage_divider.n_adc_min(n_bits_adc) < n_adc_max + margin: + continue # not enough ADC value margin + + if voltage_divider.power > power: + continue # draws too much power + + sink.append(voltage_divider) + v_adc_max = voltage_divider.v_adc_max + n_adc_max = voltage_divider.n_adc_max(n_bits_adc) + + return sink + + +if __name__ == "__main__": + main() diff --git a/web/.gitignore b/web/.gitignore new file mode 100644 index 0000000..07b5637 --- /dev/null +++ b/web/.gitignore @@ -0,0 +1,2 @@ +public +.hugo_build.lock diff --git a/web/LICENSE.txt b/web/LICENSE.txt new file mode 100644 index 0000000..2d58298 --- /dev/null +++ b/web/LICENSE.txt @@ -0,0 +1,428 @@ +Attribution-ShareAlike 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution-ShareAlike 4.0 International Public +License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-ShareAlike 4.0 International Public License ("Public +License"). To the extent this Public License may be interpreted as a +contract, You are granted the Licensed Rights in consideration of Your +acceptance of these terms and conditions, and the Licensor grants You +such rights in consideration of benefits the Licensor receives from +making the Licensed Material available under these terms and +conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. BY-SA Compatible License means a license listed at + creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. + + d. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + e. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + f. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + g. License Elements means the license attributes listed in the name + of a Creative Commons Public License. The License Elements of this + Public License are Attribution and ShareAlike. + + h. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + i. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + j. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + k. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + l. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + m. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. + + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material, + including for purposes of Section 3(b); and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. + diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..f8d76ed --- /dev/null +++ b/web/index.html @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" type="text/css" href="simple.css"> + <title>IoT contact</title> + </head> + <body> + <main> + <h1>IoT contact</h1> + + <h4>Printed circuit board</h4> + <ul> + <li><a href="iot-contact.kicad_pcb">iot-contact.kicad_pcb</a></li> + <li><a href="schematic.pdf">schematic.pdf</a></li> + <li><a href="bill-of-materials.csv">bill-of-materials.csv</a></li> + </ul> + + <h4>Firmware</h4> + <ul> + <li><a href="factory-image.bin">factory-image.bin</a></li> + <li><a href="update-image.bin">update-image.bin</a></li> + <li><a href="simulation-linux-amd64.exe">simulation-linux-amd64.exe</a></li> + </ul> + </main> + </body> +</html> diff --git a/web/meson.build b/web/meson.build new file mode 100644 index 0000000..19551a5 --- /dev/null +++ b/web/meson.build @@ -0,0 +1 @@ +index_html = fs.copyfile(meson.current_source_dir() / 'index.html') |