summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--.gitmodules3
-rw-r--r--CMakeLists.txt8
-rw-r--r--README.md54
-rw-r--r--cmake/kicad.cmake50
l---------compile_commands.json1
-rw-r--r--fw/CMakeLists.txt37
-rw-r--r--fw/README.md6
-rw-r--r--fw/app/Kconfig4
-rw-r--r--fw/app/meson.build45
-rw-r--r--fw/app/src/syslog.c8
-rw-r--r--fw/btl/meson.build28
-rw-r--r--fw/meson.build9
-rwxr-xr-xfw/nucleo.sh38
-rw-r--r--fw/rtos/CMakeLists.txt16
-rw-r--r--fw/rtos/meson.build3
-rw-r--r--fw/rtos/modules/meson.build10
-rw-r--r--fw/sim/meson.build27
-rw-r--r--meson.build20
-rw-r--r--pcb/.gitignore2
-rw-r--r--pcb/CMakeLists.txt21
-rw-r--r--pcb/iot-contact.kicad_sch907
-rw-r--r--pcb/meson.build49
-rw-r--r--pcb/processor.kicad_sch2739
m---------simple.css0
-rw-r--r--tools/LICENSE.txt (renamed from cmake/LICENSE.txt)0
-rwxr-xr-xtools/build_zephyr.py48
-rwxr-xr-xtools/configure_zephyr.py52
-rwxr-xr-xtools/deploy.py58
-rw-r--r--tools/meson.build2
-rw-r--r--web/.gitignore2
-rw-r--r--web/LICENSE.txt428
-rw-r--r--web/index.html28
-rw-r--r--web/meson.build6
34 files changed, 3738 insertions, 972 deletions
diff --git a/.gitignore b/.gitignore
index 60fd437..14f1e78 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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)
diff --git a/README.md b/README.md
index 8b39597..3d81e83 100644
--- a/README.md
+++ b/README.md
@@ -3,61 +3,41 @@
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
+cd build
+ninja
+meson install --destdir artifacts
```
-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 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 artifacts/index.html
```
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/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/meson.build b/fw/app/meson.build
new file mode 100644
index 0000000..8d84209
--- /dev/null
+++ b/fw/app/meson.build
@@ -0,0 +1,45 @@
+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(
+ 'application',
+ output: ['application.bin'],
+ command: [
+ build_zephyr,
+ '--build-tree', meson.current_build_dir() / 'build',
+ '--binary-name', 'zephyr.bin',
+ '--target-name', 'application.bin',
+ ],
+)
+
+application_signed = custom_target(
+ 'application_signed',
+ output: ['application.signed.bin'],
+ command: [
+ imgtool,
+ 'sign',
+ '--version', '0.0.0',
+ '--header-size', '0x200',
+ '--slot-size', '0xc0000',
+ '--key', signing_key,
+ meson.current_build_dir() / 'application.bin',
+ meson.current_build_dir() / 'application.signed.bin',
+ ],
+ build_by_default: true,
+ depends: application,
+ install: true,
+ install_dir: '/',
+)
diff --git a/fw/app/src/syslog.c b/fw/app/src/syslog.c
index edc2839..e19a196 100644
--- a/fw/app/src/syslog.c
+++ b/fw/app/src/syslog.c
@@ -14,7 +14,10 @@
#include <zephyr/logging/log_ctrl.h>
#include <zephyr/logging/log_core.h>
#include <zephyr/net/conn_mgr_connectivity.h>
+
+#ifdef CONFIG_IOT_CONTACT_NETWORK_HACK
#include <zephyr/sys/reboot.h>
+#endif // CONFIG_IOT_CONTACT_NETWORK_HACK
LOG_MODULE_REGISTER(syslog);
@@ -58,12 +61,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();
diff --git a/fw/btl/meson.build b/fw/btl/meson.build
new file mode 100644
index 0000000..c22ba3c
--- /dev/null
+++ b/fw/btl/meson.build
@@ -0,0 +1,28 @@
+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('bootloader',
+ output: ['bootloader.bin'],
+ command: [
+ build_zephyr,
+ '--build-tree', meson.current_build_dir() / 'build',
+ '--binary-name', 'zephyr.bin',
+ '--target-name', 'bootloader.bin',
+ ],
+ build_by_default: true,
+ install: true,
+ install_dir: '/',
+)
diff --git a/fw/meson.build b/fw/meson.build
new file mode 100644
index 0000000..8194827
--- /dev/null
+++ b/fw/meson.build
@@ -0,0 +1,9 @@
+board = 'nucleo_f767zi'
+
+fs = import('fs')
+signing_key = fs.expanduser('~') / 'mcuboot' / 'key.pem'
+
+subdir('rtos')
+subdir('app')
+subdir('btl')
+subdir('sim')
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..7667f9b
--- /dev/null
+++ b/fw/sim/meson.build
@@ -0,0 +1,27 @@
+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(
+ 'simulation',
+ 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,
+ install: true,
+ install_dir: '/',
+)
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..eb7f9ad
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,20 @@
+project(
+ 'iot-contact',
+ default_options: {
+ 'prefix': '/',
+ },
+)
+
+subdir('tools')
+
+fs = import('fs')
+css = fs.copyfile(
+ meson.current_source_dir() / 'simple.css' / 'simple.css',
+ 'simple.css',
+ install: true,
+ install_dir: '/',
+)
+
+subdir('fw')
+subdir('pcb')
+subdir('web')
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/iot-contact.kicad_sch b/pcb/iot-contact.kicad_sch
index 77ac199..9eee96f 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,47 +85,11 @@
(hide yes)
)
)
- (symbol "Conn_01x02_Socket_1_1"
- (polyline
- (pts
- (xy -1.27 0) (xy -0.508 0)
- )
- (stroke
- (width 0.1524)
- (type default)
- )
- (fill
- (type none)
- )
- )
+ (symbol "Conn_01x05_Socket_1_1"
(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)
+ (xy -1.27 5.08) (xy -0.508 5.08)
)
- )
- (arc
- (start 0 -3.048)
- (mid -0.5058 -2.54)
- (end 0 -2.032)
(stroke
(width 0.1524)
(type default)
@@ -134,123 +98,6 @@
(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)
@@ -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)
)
@@ -2610,6 +2280,16 @@
)
(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
@@ -2660,16 +2340,6 @@
)
(wire
(pts
- (xy 241.3 102.87) (xy 243.84 102.87)
- )
- (stroke
- (width 0)
- (type default)
- )
- (uuid "1d27dae0-43b8-4c5d-8a53-0e780a7d9beb")
- )
- (wire
- (pts
(xy 170.18 58.42) (xy 166.37 58.42)
)
(stroke
@@ -2770,16 +2440,6 @@
)
(wire
(pts
- (xy 241.3 97.79) (xy 243.84 97.79)
- )
- (stroke
- (width 0)
- (type default)
- )
- (uuid "3c7e0cc7-91bf-41c2-99bc-b56fabfb0484")
- )
- (wire
- (pts
(xy 158.75 114.3) (xy 158.75 142.24)
)
(stroke
@@ -2820,6 +2480,16 @@
)
(wire
(pts
+ (xy 241.3 91.44) (xy 245.11 91.44)
+ )
+ (stroke
+ (width 0)
+ (type default)
+ )
+ (uuid "5434de51-f264-4d32-9a62-d6f617624c67")
+ )
+ (wire
+ (pts
(xy 114.3 53.34) (xy 116.84 53.34)
)
(stroke
@@ -2880,6 +2550,16 @@
)
(wire
(pts
+ (xy 241.3 83.82) (xy 245.11 83.82)
+ )
+ (stroke
+ (width 0)
+ (type default)
+ )
+ (uuid "6c5416b3-8486-43d2-a4ce-6a4be340559a")
+ )
+ (wire
+ (pts
(xy 170.18 53.34) (xy 170.18 58.42)
)
(stroke
@@ -2890,43 +2570,43 @@
)
(wire
(pts
- (xy 91.44 97.79) (xy 109.22 97.79)
+ (xy 241.3 86.36) (xy 245.11 86.36)
)
(stroke
(width 0)
(type default)
)
- (uuid "7cacf695-e4dd-4107-81df-54e2713a513b")
+ (uuid "7bb55973-3d84-4ee7-b6b9-e5fc95e4fe2f")
)
(wire
(pts
- (xy 133.35 130.81) (xy 133.35 128.27)
+ (xy 91.44 97.79) (xy 109.22 97.79)
)
(stroke
(width 0)
(type default)
)
- (uuid "7e8208d1-8e17-44cb-a01e-27f145506f19")
+ (uuid "7cacf695-e4dd-4107-81df-54e2713a513b")
)
(wire
(pts
- (xy 129.54 43.18) (xy 135.89 43.18)
+ (xy 133.35 130.81) (xy 133.35 128.27)
)
(stroke
(width 0)
(type default)
)
- (uuid "7e82e63a-c2f1-41da-91fb-37e7590a34ee")
+ (uuid "7e8208d1-8e17-44cb-a01e-27f145506f19")
)
(wire
(pts
- (xy 241.3 74.93) (xy 243.84 74.93)
+ (xy 129.54 43.18) (xy 135.89 43.18)
)
(stroke
(width 0)
(type default)
)
- (uuid "7ff4d5b8-9eb4-4129-ab5e-fcfe279a3d60")
+ (uuid "7e82e63a-c2f1-41da-91fb-37e7590a34ee")
)
(wire
(pts
@@ -2940,13 +2620,13 @@
)
(wire
(pts
- (xy 241.3 91.44) (xy 243.84 91.44)
+ (xy 241.3 88.9) (xy 245.11 88.9)
)
(stroke
(width 0)
(type default)
)
- (uuid "82e76253-9dad-4e06-890b-3c6580d4271c")
+ (uuid "830105cb-b7a4-486c-9905-375b2ac42ebe")
)
(wire
(pts
@@ -3120,26 +2800,6 @@
)
(wire
(pts
- (xy 241.3 88.9) (xy 243.84 88.9)
- )
- (stroke
- (width 0)
- (type default)
- )
- (uuid "bd32fc53-2d64-4e5b-bfb7-6ff41106e415")
- )
- (wire
- (pts
- (xy 241.3 100.33) (xy 243.84 100.33)
- )
- (stroke
- (width 0)
- (type default)
- )
- (uuid "c0f3e087-4d08-45ef-bd3a-8c6f528a7689")
- )
- (wire
- (pts
(xy 135.89 43.18) (xy 135.89 63.5)
)
(stroke
@@ -3220,16 +2880,6 @@
)
(wire
(pts
- (xy 241.3 77.47) (xy 243.84 77.47)
- )
- (stroke
- (width 0)
- (type default)
- )
- (uuid "d7acbacc-050b-4c59-a5d3-449739214648")
- )
- (wire
- (pts
(xy 29.21 69.85) (xy 29.21 82.55)
)
(stroke
@@ -3260,16 +2910,6 @@
)
(wire
(pts
- (xy 241.3 105.41) (xy 243.84 105.41)
- )
- (stroke
- (width 0)
- (type default)
- )
- (uuid "ea53adc0-baa4-40d7-a0b3-640d08b56738")
- )
- (wire
- (pts
(xy 55.88 90.17) (xy 66.04 90.17)
)
(stroke
@@ -3290,16 +2930,6 @@
)
(wire
(pts
- (xy 241.3 86.36) (xy 243.84 86.36)
- )
- (stroke
- (width 0)
- (type default)
- )
- (uuid "f3dd7834-6263-40f4-9340-5f1c1a44fa6f")
- )
- (wire
- (pts
(xy 33.02 95.25) (xy 35.56 95.25)
)
(stroke
@@ -4107,26 +3737,25 @@
)
)
(symbol
- (lib_id "power:+3V3")
- (at 166.37 58.42 90)
+ (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)
- (fields_autoplaced yes)
- (uuid "8dc38ef5-ad5d-4198-87b9-50e0c72e169c")
- (property "Reference" "#PWR06"
- (at 170.18 58.42 0)
+ (uuid "8abbe99b-a4dc-440e-9eca-761a29b3f878")
+ (property "Reference" "J5"
+ (at 251.46 87.6299 0)
(effects
(font
(size 1.27 1.27)
)
- (hide yes)
+ (justify left)
)
)
- (property "Value" "+3V3"
- (at 162.56 58.4199 90)
+ (property "Value" "Conn_01x05_Socket"
+ (at 251.46 90.1699 0)
(effects
(font
(size 1.27 1.27)
@@ -4134,8 +3763,8 @@
(justify left)
)
)
- (property "Footprint" ""
- (at 166.37 58.42 0)
+ (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)
@@ -4143,8 +3772,8 @@
(hide yes)
)
)
- (property "Datasheet" ""
- (at 166.37 58.42 0)
+ (property "Datasheet" "~"
+ (at 250.19 88.9 0)
(effects
(font
(size 1.27 1.27)
@@ -4152,8 +3781,8 @@
(hide yes)
)
)
- (property "Description" "Power symbol creates a global label with name \"+3V3\""
- (at 166.37 58.42 0)
+ (property "Description" "Generic connector, single row, 01x05, script generated"
+ (at 250.19 88.9 0)
(effects
(font
(size 1.27 1.27)
@@ -4161,117 +3790,58 @@
(hide yes)
)
)
- (pin "1"
- (uuid "79de4807-fb45-4a6c-8f72-b7beada5fb9e")
- )
- (instances
- (project ""
- (path "/5defd195-0277-4d04-9f5f-69e505c9845c"
- (reference "#PWR06")
- (unit 1)
- )
- )
- )
- )
- (symbol
- (lib_id "Device:LED")
- (at 194.31 129.54 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)
- (effects
- (font
- (size 1.27 1.27)
- )
- (justify right)
- )
- )
- (property "Value" "green"
- (at 198.12 132.3974 90)
- (effects
- (font
- (size 1.27 1.27)
- )
- (justify right)
- )
- )
- (property "Footprint" "LED_SMD:LED_1206_3216Metric"
- (at 194.31 129.54 0)
+ (property "MPN" "236-405"
+ (at 260.35 96.012 0)
(effects
(font
(size 1.27 1.27)
)
- (hide yes)
)
)
- (property "Datasheet" "https://s3-us-west-2.amazonaws.com/catsy.557/Dialight_CBI_data_598-1206_Apr2018.pdf"
- (at 194.31 129.54 0)
+ (property "Manufacturer" "WAGO Corporation"
+ (at 260.604 93.218 0)
(effects
(font
(size 1.27 1.27)
)
- (hide yes)
)
)
- (property "Description" "LED_ACT: Firmware active"
- (at 185.166 143.764 90)
- (effects
- (font
- (size 1.27 1.27)
- )
- (justify right)
- )
+ (pin "3"
+ (uuid "f6371d9a-5e12-449a-b54a-fae342c0ad08")
)
- (property "MPN" "598-8270-107F"
- (at 194.31 129.54 0)
- (effects
- (font
- (size 1.27 1.27)
- )
- (hide yes)
- )
+ (pin "4"
+ (uuid "2ed21cf7-6b19-4337-ba57-0d86f2172d6a")
)
- (property "Manufacturer" "Dialight"
- (at 194.31 129.54 0)
- (effects
- (font
- (size 1.27 1.27)
- )
- (hide yes)
- )
+ (pin "5"
+ (uuid "54231faf-ba13-48ef-9437-f0bd433787d0")
)
(pin "2"
- (uuid "93474e55-5fe8-4dd1-9634-063f4d85bf3b")
+ (uuid "cbcad884-9c06-4de9-a8e1-86ef47db1684")
)
(pin "1"
- (uuid "50ab0127-dc13-43a3-8f87-157c61e57591")
+ (uuid "6edee8d4-ba9a-4079-87be-d50c29ed3fbd")
)
(instances
- (project "iot-contact"
+ (project ""
(path "/5defd195-0277-4d04-9f5f-69e505c9845c"
- (reference "D3")
+ (reference "J5")
(unit 1)
)
)
)
)
(symbol
- (lib_id "power:GND")
- (at 116.84 53.34 0)
+ (lib_id "power:+3V3")
+ (at 166.37 58.42 90)
(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 "8dc38ef5-ad5d-4198-87b9-50e0c72e169c")
+ (property "Reference" "#PWR06"
+ (at 170.18 58.42 0)
(effects
(font
(size 1.27 1.27)
@@ -4279,16 +3849,17 @@
(hide yes)
)
)
- (property "Value" "GND"
- (at 116.84 58.42 0)
+ (property "Value" "+3V3"
+ (at 162.56 58.4199 90)
(effects
(font
(size 1.27 1.27)
)
+ (justify left)
)
)
(property "Footprint" ""
- (at 116.84 53.34 0)
+ (at 166.37 58.42 0)
(effects
(font
(size 1.27 1.27)
@@ -4297,7 +3868,7 @@
)
)
(property "Datasheet" ""
- (at 116.84 53.34 0)
+ (at 166.37 58.42 0)
(effects
(font
(size 1.27 1.27)
@@ -4305,8 +3876,8 @@
(hide yes)
)
)
- (property "Description" "Power symbol creates a global label with name \"GND\" , ground"
- (at 116.84 53.34 0)
+ (property "Description" "Power symbol creates a global label with name \"+3V3\""
+ (at 166.37 58.42 0)
(effects
(font
(size 1.27 1.27)
@@ -4315,46 +3886,46 @@
)
)
(pin "1"
- (uuid "dbac907f-00ce-4688-80a3-aa16c1570783")
+ (uuid "79de4807-fb45-4a6c-8f72-b7beada5fb9e")
)
(instances
(project ""
(path "/5defd195-0277-4d04-9f5f-69e505c9845c"
- (reference "#PWR02")
+ (reference "#PWR06")
(unit 1)
)
)
)
)
(symbol
- (lib_id "Connector:Conn_01x02_Socket")
- (at 248.92 74.93 0)
+ (lib_id "Device:LED")
+ (at 194.31 129.54 90)
(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)
+ (uuid "a18015d1-4ba3-4469-b302-93bb256ec205")
+ (property "Reference" "D3"
+ (at 198.12 129.8574 90)
(effects
(font
(size 1.27 1.27)
)
- (justify left)
+ (justify right)
)
)
- (property "Value" "Conn_01x02_Socket"
- (at 250.19 77.4699 0)
+ (property "Value" "green"
+ (at 198.12 132.3974 90)
(effects
(font
(size 1.27 1.27)
)
- (justify left)
+ (justify right)
)
)
- (property "Footprint" "TerminalBlock_WAGO:TerminalBlock_WAGO_236-402_1x02_P5.00mm_45Degree"
- (at 248.92 74.93 0)
+ (property "Footprint" "LED_SMD:LED_1206_3216Metric"
+ (at 194.31 129.54 0)
(effects
(font
(size 1.27 1.27)
@@ -4362,8 +3933,8 @@
(hide yes)
)
)
- (property "Datasheet" "~"
- (at 248.92 74.93 0)
+ (property "Datasheet" "https://s3-us-west-2.amazonaws.com/catsy.557/Dialight_CBI_data_598-1206_Apr2018.pdf"
+ (at 194.31 129.54 0)
(effects
(font
(size 1.27 1.27)
@@ -4371,16 +3942,17 @@
(hide yes)
)
)
- (property "Description" "normally closed contact"
- (at 262.128 79.756 0)
+ (property "Description" "LED_ACT: Firmware active"
+ (at 185.166 143.764 90)
(effects
(font
(size 1.27 1.27)
)
+ (justify right)
)
)
- (property "MPN" "236-402"
- (at 248.92 74.93 0)
+ (property "MPN" "598-8270-107F"
+ (at 194.31 129.54 0)
(effects
(font
(size 1.27 1.27)
@@ -4388,8 +3960,8 @@
(hide yes)
)
)
- (property "Manufacturer" "WAGO Corporation"
- (at 248.92 74.93 0)
+ (property "Manufacturer" "Dialight"
+ (at 194.31 129.54 0)
(effects
(font
(size 1.27 1.27)
@@ -4398,49 +3970,32 @@
)
)
(pin "2"
- (uuid "9c8b6afb-bb3d-404f-967e-581c812b3355")
+ (uuid "93474e55-5fe8-4dd1-9634-063f4d85bf3b")
)
(pin "1"
- (uuid "428b547f-53a8-4158-9a2a-ed056b73bc0a")
+ (uuid "50ab0127-dc13-43a3-8f87-157c61e57591")
)
(instances
- (project ""
+ (project "iot-contact"
(path "/5defd195-0277-4d04-9f5f-69e505c9845c"
- (reference "J5")
+ (reference "D3")
(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)
- (effects
- (font
- (size 1.27 1.27)
- )
- (justify left)
- )
- )
- (property "Value" "Conn_01x03_Socket"
- (at 250.19 90.1699 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)
+ (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)
@@ -4448,25 +4003,25 @@
(hide yes)
)
)
- (property "Datasheet" "~"
- (at 248.92 88.9 0)
+ (property "Value" "GND"
+ (at 116.84 58.42 0)
(effects
(font
(size 1.27 1.27)
)
- (hide yes)
)
)
- (property "Description" "AC voltage supply"
- (at 259.08 92.71 0)
+ (property "Footprint" ""
+ (at 116.84 53.34 0)
(effects
(font
(size 1.27 1.27)
)
+ (hide yes)
)
)
- (property "MPN" "236-403"
- (at 248.92 88.9 0)
+ (property "Datasheet" ""
+ (at 116.84 53.34 0)
(effects
(font
(size 1.27 1.27)
@@ -4474,8 +4029,8 @@
(hide yes)
)
)
- (property "Manufacturer" "WAGO Corporation"
- (at 248.92 88.9 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)
@@ -4483,19 +4038,13 @@
(hide yes)
)
)
- (pin "3"
- (uuid "2d15e7e0-56e4-496b-a237-9cd8ed4fd444")
- )
- (pin "2"
- (uuid "fa05bfdf-dde9-46a5-b86a-16de418107e2")
- )
(pin "1"
- (uuid "ab74c3af-f504-4aaa-80da-750726060fa7")
+ (uuid "dbac907f-00ce-4688-80a3-aa16c1570783")
)
(instances
(project ""
(path "/5defd195-0277-4d04-9f5f-69e505c9845c"
- (reference "J6")
+ (reference "#PWR02")
(unit 1)
)
)
@@ -4788,98 +4337,6 @@
)
)
(symbol
- (lib_id "Connector:Conn_01x04_Socket")
- (at 248.92 100.33 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)
- (effects
- (font
- (size 1.27 1.27)
- )
- (justify left)
- )
- )
- (property "Value" "Conn_01x04_Socket"
- (at 250.19 102.8699 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)
- (effects
- (font
- (size 1.27 1.27)
- )
- (hide yes)
- )
- )
- (property "Datasheet" "~"
- (at 248.92 100.33 0)
- (effects
- (font
- (size 1.27 1.27)
- )
- (hide yes)
- )
- )
- (property "Description" "motor connector"
- (at 258.318 105.41 0)
- (effects
- (font
- (size 1.27 1.27)
- )
- )
- )
- (property "MPN" "236-404"
- (at 248.92 100.33 0)
- (effects
- (font
- (size 1.27 1.27)
- )
- (hide yes)
- )
- )
- (property "Manufacturer" "WAGO Corporation"
- (at 248.92 100.33 0)
- (effects
- (font
- (size 1.27 1.27)
- )
- (hide yes)
- )
- )
- (pin "1"
- (uuid "dd173b75-bf5d-418c-900b-22588dbf6f8e")
- )
- (pin "4"
- (uuid "d08e74f4-7939-4c87-985a-5c55f3282a4e")
- )
- (pin "3"
- (uuid "4fa4265e-7a54-4aee-91ee-fc3e359ec77e")
- )
- (pin "2"
- (uuid "889f97b8-0784-45ed-82f3-d450f0dfd89d")
- )
- (instances
- (project ""
- (path "/5defd195-0277-4d04-9f5f-69e505c9845c"
- (reference "J7")
- (unit 1)
- )
- )
- )
- )
- (symbol
(lib_id "power:GND")
(at 33.02 78.74 180)
(unit 1)
@@ -5141,28 +4598,8 @@
(justify left top)
)
)
- (pin "AC_EARTH" bidirectional
- (at 241.3 86.36 0)
- (uuid "d38d9ad1-0808-4eb3-8f04-f5d375279cad")
- (effects
- (font
- (size 1.27 1.27)
- )
- (justify right)
- )
- )
- (pin "AC_NEUTRAL" bidirectional
- (at 241.3 88.9 0)
- (uuid "9f1bb5d9-5f27-4b27-8b9b-3c5279d0e3fd")
- (effects
- (font
- (size 1.27 1.27)
- )
- (justify right)
- )
- )
(pin "AC_PHASE" bidirectional
- (at 241.3 91.44 0)
+ (at 241.3 88.9 0)
(uuid "b45797bb-cca3-49c0-86c4-955a6b44d60c")
(effects
(font
@@ -5171,28 +4608,8 @@
(justify right)
)
)
- (pin "MOT_EARTH" bidirectional
- (at 241.3 97.79 0)
- (uuid "a3defca1-3eed-4b57-ab0a-f16f59fee2c7")
- (effects
- (font
- (size 1.27 1.27)
- )
- (justify right)
- )
- )
- (pin "MOT_NEUTRAL" bidirectional
- (at 241.3 100.33 0)
- (uuid "3b66624d-b956-4a77-a1d2-be8580699a49")
- (effects
- (font
- (size 1.27 1.27)
- )
- (justify right)
- )
- )
(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 +4619,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 +4629,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 +4639,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
diff --git a/pcb/meson.build b/pcb/meson.build
new file mode 100644
index 0000000..2c73e57
--- /dev/null
+++ b/pcb/meson.build
@@ -0,0 +1,49 @@
+schematic_files = [
+ 'iot-contact.kicad_sch',
+ 'contacts.kicad_sch',
+ 'ethernet.kicad_sch',
+ 'io.kicad_sch',
+ 'power.kicad_sch',
+ 'processor.kicad_sch',
+]
+
+schematic = custom_target('schematic',
+ 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,
+ install: true,
+ install_dir: '/',
+)
+
+bom = custom_target('bom',
+ 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,
+ install: true,
+ install_dir: '/',
+)
+
+fs = import('fs')
+kicad_pcb = fs.copyfile(
+ meson.current_source_dir() / 'iot-contact.kicad_pcb',
+ install: true,
+ install_dir: '/',
+)
diff --git a/pcb/processor.kicad_sch b/pcb/processor.kicad_sch
index 41b29b9..9b6b558 100644
--- a/pcb/processor.kicad_sch
+++ b/pcb/processor.kicad_sch
@@ -7,10 +7,2343 @@
(title_block
(title "iot-contact")
)
- (lib_symbols)
+ (lib_symbols
+ (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)
+ )
+ )
+ (text "See AN4488 to get started"
+ (exclude_from_sim no)
+ (at 184.15 34.544 0)
+ (effects
+ (font
+ (size 1.27 1.27)
+ )
+ )
+ (uuid "82f61e74-c865-4393-826a-066e2a341f3e")
+ )
(hierarchical_label "BTN_REBOOT"
(shape input)
- (at 114.3 139.7 270)
+ (at 105.41 179.07 270)
(effects
(font
(size 1.27 1.27)
@@ -21,7 +2354,7 @@
)
(hierarchical_label "~{JTAG_RESET}"
(shape input)
- (at 114.3 38.1 90)
+ (at 34.29 35.56 90)
(effects
(font
(size 1.27 1.27)
@@ -43,7 +2376,7 @@
)
(hierarchical_label "UART_TX"
(shape output)
- (at 142.24 38.1 90)
+ (at 62.23 35.56 90)
(effects
(font
(size 1.27 1.27)
@@ -54,7 +2387,7 @@
)
(hierarchical_label "LED_UPD"
(shape output)
- (at 142.24 139.7 270)
+ (at 154.94 179.07 270)
(effects
(font
(size 1.27 1.27)
@@ -65,7 +2398,7 @@
)
(hierarchical_label "JTAG_TMS"
(shape bidirectional)
- (at 119.38 38.1 90)
+ (at 39.37 35.56 90)
(effects
(font
(size 1.27 1.27)
@@ -76,7 +2409,7 @@
)
(hierarchical_label "BTN_WIPE"
(shape input)
- (at 116.84 139.7 270)
+ (at 107.95 179.07 270)
(effects
(font
(size 1.27 1.27)
@@ -87,7 +2420,7 @@
)
(hierarchical_label "JTAG_TDI"
(shape input)
- (at 124.46 38.1 90)
+ (at 44.45 35.56 90)
(effects
(font
(size 1.27 1.27)
@@ -98,7 +2431,7 @@
)
(hierarchical_label "LED_PWR"
(shape output)
- (at 139.7 139.7 270)
+ (at 152.4 179.07 270)
(effects
(font
(size 1.27 1.27)
@@ -109,7 +2442,7 @@
)
(hierarchical_label "LED_ACT"
(shape output)
- (at 144.78 139.7 270)
+ (at 157.48 179.07 270)
(effects
(font
(size 1.27 1.27)
@@ -131,7 +2464,7 @@
)
(hierarchical_label "JTAG_TCK"
(shape input)
- (at 116.84 38.1 90)
+ (at 36.83 35.56 90)
(effects
(font
(size 1.27 1.27)
@@ -142,7 +2475,7 @@
)
(hierarchical_label "JTAG_TDO"
(shape output)
- (at 121.92 38.1 90)
+ (at 41.91 35.56 90)
(effects
(font
(size 1.27 1.27)
@@ -153,7 +2486,7 @@
)
(hierarchical_label "UART_RX"
(shape input)
- (at 139.7 38.1 90)
+ (at 59.69 35.56 90)
(effects
(font
(size 1.27 1.27)
@@ -173,4 +2506,384 @@
)
(uuid "fa84533f-5191-4139-bd31-6669d829fda6")
)
+ (symbol
+ (lib_id "MCU_ST_STM32F4:STM32F427VITx")
+ (at 120.65 102.87 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 125.3333 171.45 0)
+ (effects
+ (font
+ (size 1.27 1.27)
+ )
+ (justify left)
+ )
+ )
+ (property "Value" "STM32F427VITx"
+ (at 125.3333 173.99 0)
+ (effects
+ (font
+ (size 1.27 1.27)
+ )
+ (justify left)
+ )
+ )
+ (property "Footprint" "Package_QFP:LQFP-100_14x14mm_P0.5mm"
+ (at 100.33 168.91 0)
+ (effects
+ (font
+ (size 1.27 1.27)
+ )
+ (justify right)
+ (hide yes)
+ )
+ )
+ (property "Datasheet" "https://www.st.com/resource/en/datasheet/stm32f427vi.pdf"
+ (at 120.65 102.87 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 120.65 102.87 0)
+ (effects
+ (font
+ (size 1.27 1.27)
+ )
+ (hide yes)
+ )
+ )
+ (property "MPN" "STM32F427VIT6TR"
+ (at 120.65 105.41 0)
+ (effects
+ (font
+ (size 1.27 1.27)
+ )
+ )
+ )
+ (property "Manufacturer" "STMicroelectronics"
+ (at 120.65 102.87 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")
+ )
+ (pin "8"
+ (uuid "02fcc468-73a3-4047-beda-87bebeeba025")
+ )
+ (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")
+ )
+ (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")
+ )
+ (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")
+ )
+ (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")
+ )
+ (pin "3"
+ (uuid "4f229d09-ada9-4e8c-b176-f6d36f45264f")
+ )
+ (pin "30"
+ (uuid "1e6bae45-5e01-4bf0-a18d-5d2ec8709808")
+ )
+ (pin "69"
+ (uuid "d59137af-158e-41f0-983a-86e714f0aad7")
+ )
+ (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")
+ )
+ (pin "98"
+ (uuid "1e8cfcf6-cc76-4680-a5a1-6c8f76564755")
+ )
+ (pin "97"
+ (uuid "f68fa204-b9f2-4bc5-b296-2da3b7b41264")
+ )
+ (pin "13"
+ (uuid "1c2cba00-bf11-4091-9dfc-149eb9bb8817")
+ )
+ (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")
+ )
+ (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")
+ )
+ (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)
+ )
+ )
+ )
+ )
)
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..1d9e783
--- /dev/null
+++ b/tools/build_zephyr.py
@@ -0,0 +1,48 @@
+#!/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..e709063
--- /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/meson.build b/tools/meson.build
new file mode 100644
index 0000000..85ddbb3
--- /dev/null
+++ b/tools/meson.build
@@ -0,0 +1,2 @@
+configure_zephyr = meson.current_source_dir() / 'configure_zephyr.py'
+build_zephyr = meson.current_source_dir() / 'build_zephyr.py'
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..b31dcea
--- /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="application.signed.bin">application.signed.bin</a></li>
+ <li><a href="bootloader.bin">bootloader.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..f8c2024
--- /dev/null
+++ b/web/meson.build
@@ -0,0 +1,6 @@
+website = fs.copyfile(
+ meson.current_source_dir() / 'index.html',
+ 'index.html',
+ install: true,
+ install_dir: '/',
+)