summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjaseg <git@jaseg.net>2018-11-17 11:35:25 +0900
committerjaseg <git@jaseg.net>2018-11-17 11:35:25 +0900
commit194bd7fdb9c0ffd66f7c574c2854f396c2a8ab93 (patch)
tree56b6a754a8d67c254d52c4bba2f66f2dca1c09fc
parent155a29ce08fc019faefbf4ee3bfa0ea82c8501c3 (diff)
downloadsecure-hid-194bd7fdb9c0ffd66f7c574c2854f396c2a8ab93.tar.gz
secure-hid-194bd7fdb9c0ffd66f7c574c2854f396c2a8ab93.tar.bz2
secure-hid-194bd7fdb9c0ffd66f7c574c2854f396c2a8ab93.zip
Initial schematic commit
-rw-r--r--Makefile75
-rw-r--r--build/.git_keep0
-rw-r--r--keyboard.c73
-rw-r--r--main.c247
-rw-r--r--main.h97
-rw-r--r--mapparse.py129
-rw-r--r--mapvis.py25
-rw-r--r--menu.c110
-rw-r--r--openocd.cfg14
-rw-r--r--pcb/components.bck3
-rw-r--r--pcb/components.dcm3
-rw-r--r--pcb/components.lib44
-rw-r--r--pcb/securehid-cache.lib732
-rw-r--r--pcb/securehid.bak2310
-rw-r--r--pcb/securehid.kicad_pcb1
-rw-r--r--pcb/securehid.pro30
-rw-r--r--pcb/securehid.sch2336
-rw-r--r--pcb/sym-lib-table41
-rw-r--r--startup_stm32f407xx.s523
-rw-r--r--stm32_flash.ld158
-rw-r--r--stm32f4xx_hal_conf.h154
-rw-r--r--stm32f4xx_it.c72
-rw-r--r--stm32f4xx_it.h44
-rw-r--r--syscalls.c190
-rw-r--r--system_stm32f4xx.c143
-rw-r--r--usbh_conf.c434
-rw-r--r--usbh_conf.h114
27 files changed, 5500 insertions, 2602 deletions
diff --git a/Makefile b/Makefile
deleted file mode 100644
index ab1ca8d..0000000
--- a/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
-# put your *.o targets here, make should handle the rest!
-CUBE_PATH ?= $(wildcard ~)/resource/STM32CubeF4
-CMSIS_PATH ?= $(CUBE_PATH)/Drivers/CMSIS
-CMSIS_DEV_PATH ?= $(CMSIS_PATH)/Device/ST/STM32F4xx
-HAL_PATH ?= $(CUBE_PATH)/Drivers/STM32F4xx_HAL_Driver
-USB_PATH ?= $(CUBE_PATH)/Middlewares/ST/STM32_USB_Host_Library
-OUT ?= out
-
-VPATH = .:$(HAL_PATH)/Src:$(USB_PATH)/Core/Src:$(USB_PATH)/Class/HID/Src
-
-CC := arm-none-eabi-gcc
-LD := arm-none-eabi-ld
-OBJCOPY := arm-none-eabi-objcopy
-OBJDUMP := arm-none-eabi-objdump
-SIZE := arm-none-eabi-size
-
-CFLAGS = -g -Wall -std=gnu11 -Os -fdump-rtl-expand
-CFLAGS += -mlittle-endian -mcpu=cortex-m4 -mthumb
-#CFLAGS += -ffunction-sections -fdata-sections
-LDFLAGS = -nostartfiles
-LDFLAGS += -g -Wl,-Map=main.map -nostdlib
-#LDFLAGS += -Wl,--gc-sections
-LIBS = -lgcc
-
-CFLAGS += -DSTM32F407xx
-
-LDFLAGS += -Tstm32_flash.ld
-CFLAGS += -I$(CMSIS_DEV_PATH)/Include -I$(CMSIS_PATH)/Include -I$(HAL_PATH)/Inc -I. -Iconfig
-LDFLAGS += -L$(CMSIS_PATH)/Lib/GCC
-
-SOURCES = main.c keyboard.c menu.c usbh_conf.c startup_stm32f407xx.s system_stm32f4xx.c syscalls.c stm32f4xx_it.c
-SOURCES_C = $(filter %.c,$(SOURCES))
-SOURCES_ASM = $(filter %.s,$(SOURCES))
-
-CFLAGS += -I$(USB_PATH)/Core/Inc -I$(USB_PATH)/Class/HID/Inc
-USB_SOURCES := $(notdir $(wildcard $(USB_PATH)/Core/Src/*.c)) $(notdir $(wildcard $(USB_PATH)/Class/HID/Src/*.c))
-USB_SOURCES := $(filter-out usbh_conf_template.c,$(USB_SOURCES))
-
-HAL_SOURCES = stm32f4xx_hal.c
-HAL_SOURCES += stm32f4xx_hal_rcc.c stm32f4xx_hal_flash.c stm32f4xx_hal_flash_ex.c stm32f4xx_hal_dma.c
-HAL_SOURCES += stm32f4xx_hal_usart.c stm32f4xx_hal_pwr.c
-HAL_SOURCES += stm32f4xx_hal_hcd.c stm32f4xx_hal_gpio.c stm32f4xx_hal_cortex.c
-HAL_SOURCES += stm32f4xx_ll_usb.c
-
-################################################################################
-
-.PHONY: program clean
-
-all: main.elf main.pdf
-
-%.o: %.c
- $(CC) -c $(CFLAGS) -o $@ $^
-
-%.o: %.s
- $(CC) -c $(CFLAGS) -o $@ $^
-
-%.dot: %.elf
- r2 -a arm -qc 'aa;agC' $< 2>/dev/null >$@
-
-#$(HAL_PATH)/Src/stm32f4xx_ll_utils.o
-main.elf: $(SOURCES_ASM:.s=.o) $(SOURCES_C:.c=.o) $(USB_SOURCES:.c=.o) $(HAL_SOURCES:.c=.o)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
- $(OBJCOPY) -O ihex $@ $(@:.elf=.hex)
- $(OBJCOPY) -O binary $@ $(@:.elf=.bin)
- $(OBJDUMP) -St $@ >$(@:.elf=.lst)
- $(SIZE) $@
-
-program: main.elf openocd.cfg
- openocd -f openocd.cfg -c "program $< verify reset exit"
-
-clean:
- rm -f **.o
- rm -f main.elf main.hex main.bin main.map main.lst
- rm -f **.expand
-
diff --git a/build/.git_keep b/build/.git_keep
deleted file mode 100644
index e69de29..0000000
--- a/build/.git_keep
+++ /dev/null
diff --git a/keyboard.c b/keyboard.c
deleted file mode 100644
index 6a3f44a..0000000
--- a/keyboard.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- ******************************************************************************
- * @file USB_Host/HID_Standalone/Src/keyboard.c
- * @author MCD Application Team
- * @version V1.1.0
- * @date 17-February-2017
- * @brief This file implements the HID keyboard functions
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics International N.V.
- * All rights reserved.</center></h2>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted, provided that the following conditions are met:
- *
- * 1. Redistribution of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of other
- * contributors to this software may be used to endorse or promote products
- * derived from this software without specific written permission.
- * 4. This software, including modifications and/or derivative works of this
- * software, must execute solely and exclusively on microcontroller or
- * microprocessor devices manufactured by or for STMicroelectronics.
- * 5. Redistribution and use of this software other than as permitted under
- * this license is void and will automatically terminate your rights under
- * this license.
- *
- * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
- * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT
- * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-#include "main.h"
-
-#define KYBRD_FIRST_COLUMN (uint16_t)7
-#define KYBRD_LAST_COLUMN (uint16_t)479
-#define KYBRD_FIRST_LINE (uint8_t)90
-#define SMALL_FONT_COLUMN_WIDTH 8
-#define SMALL_FONT_LINE_WIDTH 15
-#define KYBRD_LAST_LINE (uint16_t)200
-
-extern HID_DEMO_StateMachine hid_demo;
-uint8_t KeybrdCharXpos = 0;
-uint16_t KeybrdCharYpos = 0;
-
-static void USR_KEYBRD_Init(void);
-
-void HID_KeyboardMenuProcess(void) { USR_KEYBRD_Init(); }
-
-static void USR_KEYBRD_Init(void)
-{
- uart_print("Keyboard initialized\n");
-}
-
-void USR_KEYBRD_ProcessData(uint8_t data)
-{
- uart_putc(data);
-}
-
diff --git a/main.c b/main.c
deleted file mode 100644
index 8b7b5c0..0000000
--- a/main.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/**
- ******************************************************************************
- * @file USB_Host/HID_Standalone/Src/main.c
- * @author MCD Application Team
- * @version V1.1.0
- * @date 17-February-2017
- * @brief USB host HID Mouse and Keyboard demo main file
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics International N.V.
- * All rights reserved.</center></h2>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted, provided that the following conditions are met:
- *
- * 1. Redistribution of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of other
- * contributors to this software may be used to endorse or promote products
- * derived from this software without specific written permission.
- * 4. This software, including modifications and/or derivative works of this
- * software, must execute solely and exclusively on microcontroller or
- * microprocessor devices manufactured by or for STMicroelectronics.
- * 5. Redistribution and use of this software other than as permitted under
- * this license is void and will automatically terminate your rights under
- * this license.
- *
- * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
- * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT
- * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-
-#include "main.h"
-
-SCB_Type *scb = SCB;
-GPIO_TypeDef *gpioa = GPIOA;
-
-USBH_HandleTypeDef hUSBHost;
-HID_ApplicationTypeDef Appli_state = APPLICATION_IDLE;
-
-USART_HandleTypeDef console_uart;
-
-static void SystemClock_Config(void);
-static void USBH_UserProcess(USBH_HandleTypeDef* phost, uint8_t id);
-static void HID_InitApplication(void);
-static void Error_Handler(void);
-
-void WWDG_IRQHandler()
-{
- while (1);
-}
-
-void uart_print(char *s)
-{
- /* Like, there is millions of lines of perfectly useless pseudo-comments in the HAL driver. But don't think they'd
- * say what unit that timeout parameter has in any obvious place. I'll just go with milliseconds here -.- */
- HAL_USART_Transmit(&console_uart, (uint8_t*)s, strlen(s), 1000);
-}
-
-void uart_putc(char c)
-{
- /* See above. */
- HAL_USART_Transmit(&console_uart, (uint8_t*)&c, 1, 1000);
-}
-
-void HAL_USART_MspInit(USART_HandleTypeDef *narf)
-{
- __HAL_RCC_GPIOA_CLK_ENABLE();
-
- /* TX */
- GPIO_InitTypeDef pa9 = {
- .Pin = GPIO_PIN_9,
- .Mode = GPIO_MODE_AF_PP,
- .Pull = GPIO_PULLUP,
- .Speed = GPIO_SPEED_FREQ_LOW,
- .Alternate = GPIO_AF7_USART1
- };
- HAL_GPIO_Init(GPIOA, &pa9);
-
- /* RX */
- GPIO_InitTypeDef pa10 = {
- .Pin = GPIO_PIN_10,
- .Mode = GPIO_MODE_AF_PP,
- .Pull = GPIO_PULLUP,
- .Speed = GPIO_SPEED_FREQ_LOW,
- .Alternate = GPIO_AF7_USART1
- };
- HAL_GPIO_Init(GPIOA, &pa10);
-}
-
-int main(void)
-{
- HAL_Init();
- SystemClock_Config();
- /* FIXME
- HID_InitApplication();
- USBH_Init(&hUSBHost, USBH_UserProcess, 0);
- USBH_RegisterClass(&hUSBHost, USBH_HID_CLASS);
- USBH_Start(&hUSBHost);
- */
-
- /* LEDs */
- __HAL_RCC_GPIOA_CLK_ENABLE();
- __HAL_RCC_USART1_CLK_ENABLE();
- RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;
- GPIOA->MODER |=
- (1<<GPIO_MODER_MODER6_Pos)|
- (1<<GPIO_MODER_MODER7_Pos);
-
- GPIOA->OSPEEDR |=
- (2<<GPIO_OSPEEDR_OSPEED6_Pos)|
- (2<<GPIO_OSPEEDR_OSPEED7_Pos);
-
- USART_HandleTypeDef foo = {
- .Instance = USART1,
- .Init = {
- .BaudRate = 115200,
- .WordLength = USART_WORDLENGTH_8B,
- .StopBits = USART_STOPBITS_1,
- .Parity = USART_PARITY_NONE,
- .Mode = USART_MODE_TX_RX
- }
- };
- console_uart = foo;
- HAL_USART_Init(&console_uart);
-
- static int ticks = 0;
- while (1) {
- /* FIXME USBH_Process(&hUSBHost); */
- /* FIXME HID_MenuProcess(); */
- Toggle_Leds();
- if (ticks++ == 1000000) {
- uart_print("This is a test\r\n");
- ticks = 0;
- }
- }
-}
-
-static void HID_InitApplication(void)
-{
- HID_MenuInit();
-}
-
-static void USBH_UserProcess(USBH_HandleTypeDef* phost, uint8_t id)
-{
- switch (id) {
- case HOST_USER_SELECT_CONFIGURATION:
- break;
-
- case HOST_USER_DISCONNECTION:
- Appli_state = APPLICATION_DISCONNECT;
- break;
-
- case HOST_USER_CLASS_ACTIVE:
- Appli_state = APPLICATION_READY;
- break;
-
- case HOST_USER_CONNECTION:
- Appli_state = APPLICATION_START;
- break;
-
- default:
- break;
- }
-}
-
-void Toggle_Leds(void) {
- static uint32_t ticks;
-
- if (ticks++ == 1000000) {
- GPIOA->ODR ^= GPIO_ODR_OD6;
- GPIOA->ODR ^= GPIO_ODR_OD7;
- ticks = 0;
- }
-}
-
-static void SystemClock_Config(void)
-{
- /* Enable Power Control clock */
- __HAL_RCC_PWR_CLK_ENABLE();
-
- /* Enable HSE Oscillator and activate PLL with HSE as source */
- RCC_OscInitTypeDef foo = {
- .OscillatorType = RCC_OSCILLATORTYPE_HSE,
- .HSEState = RCC_HSE_ON,
- .PLL.PLLState = RCC_PLL_ON,
- .PLL.PLLSource = RCC_PLLSOURCE_HSE,
- /* HSE input: 8MHz */
- .PLL.PLLM = 8, /* VCO in: 1MHz = 8MHz / 8 */
- .PLL.PLLN = 336, /* VCO out: 336MHz = 1MHz * 336 */
- .PLL.PLLP = RCC_PLLP_DIV2, /* System: 168MHz = 336Mhz / 2 */
- .PLL.PLLQ = 7 /* USB: 48MHz = 336MHz / 7 */
- };
- if (HAL_RCC_OscConfig(&foo) != HAL_OK)
- Error_Handler();
-
- /* FIXME does this require configuration?
- RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;
- PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_CK48;
- PeriphClkInitStruct.Clk48ClockSelection = RCC_CK48CLKSOURCE_PLLSAIP;
- HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
- */
-
- /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
- clocks dividers */
- RCC_ClkInitTypeDef bar = {
- .ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2),
- .SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK, /* See above */
- .AHBCLKDivider = RCC_SYSCLK_DIV1, /* 168MHz = 168MHz / 1 */
- .APB1CLKDivider = RCC_HCLK_DIV4, /* 42MHz = 168MHz / 4 */
- .APB2CLKDivider = RCC_HCLK_DIV2 /* 84Mhz = 168MHz / 2 */
- };
- if (HAL_RCC_ClockConfig(&bar, FLASH_LATENCY_5) != HAL_OK)
- Error_Handler();
-}
-
-void HAL_Delay(__IO uint32_t Delay)
-{
- while (Delay) {
- if (SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk)
- Delay--;
- }
-}
-
-static void Error_Handler(void)
-{
- while (1)
- ;
-}
-
-void _init(void) {}
-
diff --git a/main.h b/main.h
deleted file mode 100644
index 4b52c38..0000000
--- a/main.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- ******************************************************************************
- * @file USB_Host/HID_Standalone/Inc/main.h
- * @author MCD Application Team
- * @version V1.1.0
- * @date 17-February-2017
- * @brief Header for main.c module
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics International N.V.
- * All rights reserved.</center></h2>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted, provided that the following conditions are met:
- *
- * 1. Redistribution of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of other
- * contributors to this software may be used to endorse or promote products
- * derived from this software without specific written permission.
- * 4. This software, including modifications and/or derivative works of this
- * software, must execute solely and exclusively on microcontroller or
- * microprocessor devices manufactured by or for STMicroelectronics.
- * 5. Redistribution and use of this software other than as permitted under
- * this license is void and will automatically terminate your rights under
- * this license.
- *
- * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
- * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT
- * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-#ifndef __MAIN_H
-#define __MAIN_H
-
-#include "usbh_core.h"
-#include "usbh_hid.h"
-#include "usbh_hid_parser.h"
-
-#include "stdio.h"
-
-typedef enum {
- HID_DEMO_START = 0,
- HID_DEMO_KEYBOARD,
-} HID_Demo_State;
-
-typedef enum {
- HID_KEYBOARD_IDLE = 0,
- HID_KEYBOARD_WAIT,
- HID_KEYBOARD_START,
-} HID_keyboard_State;
-
-typedef struct _DemoStateMachine {
- __IO HID_Demo_State state;
- __IO HID_keyboard_State keyboard_state;
- __IO uint8_t select;
- __IO uint8_t lock;
-} HID_DEMO_StateMachine;
-
-typedef enum {
- APPLICATION_IDLE = 0,
- APPLICATION_DISCONNECT,
- APPLICATION_START,
- APPLICATION_READY,
- APPLICATION_RUNNING,
-} HID_ApplicationTypeDef;
-
-extern USBH_HandleTypeDef hUSBHost;
-extern HID_ApplicationTypeDef Appli_state;
-extern HID_DEMO_StateMachine hid_demo;
-extern USART_HandleTypeDef console_uart;
-
-void Toggle_Leds(void);
-void HID_SelectItem(uint8_t** menu, uint8_t item);
-void HID_MenuInit(void);
-void HID_MenuProcess(void);
-void HID_KeyboardMenuProcess(void);
-void USR_KEYBRD_ProcessData(uint8_t data);
-
-void uart_print(char *s);
-void uart_putc(char c);
-
-#endif
diff --git a/mapparse.py b/mapparse.py
deleted file mode 100644
index c1f460a..0000000
--- a/mapparse.py
+++ /dev/null
@@ -1,129 +0,0 @@
-
-import re
-from collections import defaultdict, namedtuple
-
-Section = namedtuple('Section', ['name', 'offset', 'objects'])
-ObjectEntry = namedtuple('ObjectEntry', ['filename', 'object', 'offset', 'size'])
-FileEntry = namedtuple('FileEntry', ['section', 'object', 'offset', 'length'])
-
-class Memory:
- def __init__(self, name, origin, length, attrs=''):
- self.name, self.origin, self.length, self.attrs = name, origin, length, attrs
- self.sections = {}
- self.files = defaultdict(lambda: [])
- self.totals = defaultdict(lambda: 0)
-
- def add_toplevel(self, name, offx, length):
- self.sections[name] = Section(offx, length, [])
-
- def add_obj(self, name, offx, length, fn, obj):
- base_section, sep, subsec = name[1:].partition('.')
- base_section = '.'+base_section
- if base_section in self.sections:
- sec = secname, secoffx, secobjs = self.sections[base_section]
- secobjs.append(ObjectEntry(fn, obj, offx, length))
- else:
- sec = None
- self.files[fn].append(FileEntry(sec, obj, offx, length))
- self.totals[fn] += length
-
-class MapFile:
- def __init__(self, s):
- self._lines = s.splitlines()
- self.memcfg = {}
- self.defaultmem = Memory('default', 0, 0xffffffffffffffff)
- self._parse()
-
- def __getitem__(self, offx_or_name):
- ''' Lookup a memory area by name or address '''
- if offx_or_name in self.memcfg:
- return self.memcfg[offx_or_name]
-
- elif isinstance(offx_or_name, int):
- for mem in self.memcfg.values():
- if mem.origin <= offx_or_name < mem.origin+mem.length:
- return mem
- else:
- return self.defaultmem
-
- raise ValueError('Invalid argument type for indexing')
-
- def _skip(self, regex):
- matcher = re.compile(regex)
- for l in self:
- if matcher.match(l):
- break
-
- def __iter__(self):
- while self._lines:
- yield self._lines.pop(0)
-
- def _parse(self):
- self._skip('^Memory Configuration')
-
- # Parse memory segmentation info
- self._skip('^Name')
- for l in self:
- if not l:
- break
- name, origin, length, *attrs = l.split()
- if not name.startswith('*'):
- self.memcfg[name] = Memory(name, int(origin, 16), int(length, 16), attrs[0] if attrs else '')
-
- # Parse section information
- toplevel_m = re.compile('^(\.[a-zA-Z0-9_.]+)\s+(0x[0-9a-fA-F]+)\s+(0x[0-9a-fA-F]+)')
- secondlevel_m = re.compile('^ (\.[a-zA-Z0-9_.]+)\s+(0x[0-9a-fA-F]+)\s+(0x[0-9a-fA-F]+)\s+(.*)$')
- secondlevel_linebreak_m = re.compile('^ (\.[a-zA-Z0-9_.]+)\n')
- filelike = re.compile('^(/?[^()]*\.[a-zA-Z0-9-_]+)(\(.*\))?')
- linebreak_section = None
- for l in self:
- # Toplevel section
- match = toplevel_m.match(l)
- if match:
- name, offx, length = match.groups()
- offx, length = int(offx, 16), int(length, 16)
- self[offx].add_toplevel(name, offx, length)
-
- match = secondlevel_linebreak_m.match(l)
- if match:
- linebreak_section, = match.groups()
- continue
-
- if linebreak_section:
- l = ' {} {}'.format(linebreak_section, l)
- linebreak_section = None
-
- # Second-level section
- match = secondlevel_m.match(l)
- if match:
- name, offx, length, misc = match.groups()
- match = filelike.match(misc)
- if match:
- fn, obj = match.groups()
- obj = obj.strip('()') if obj else None
- offx, length = int(offx, 16), int(length, 16)
- self[offx].add_obj(name, offx, length, fn, obj)
-
-
-if __name__ == '__main__':
- import argparse
- parser = argparse.ArgumentParser(description='Parser GCC map file')
- parser.add_argument('mapfile', type=argparse.FileType('r'), help='The GCC .map file to parse')
- parser.add_argument('-m', '--memory', type=str, help='The memory segments to print, comma-separated')
- args = parser.parse_args()
- mf = MapFile(args.mapfile.read())
- args.mapfile.close()
-
- mems = args.memory.split(',') if args.memory else mf.memcfg.keys()
-
- for name in mems:
- mem = mf.memcfg[name]
- print('Symbols by file for memory', name)
- for tot, fn in reversed(sorted( (tot, fn) for fn, tot in mem.totals.items() )):
- print(' {:>8} {}'.format(tot, fn))
- for length, offx, sec, obj in reversed(sorted(( (length, offx, sec, obj) for sec, obj, offx, length in
- mem.files[fn] ), key=lambda e: e[0] )):
- name = sec.name if sec else None
- print(' {:>8} {:>#08x} {}'.format(length, offx, obj))
- #print('{:>16} 0x{:016x} 0x{:016x} ({:>24}) {}'.format(name, origin, length, length, attrs))
-
diff --git a/mapvis.py b/mapvis.py
deleted file mode 100644
index 4a71222..0000000
--- a/mapvis.py
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env python3
-
-from matplotlib import pyplot as plt
-
-f, ax = plt.subplots(1, figsize=(3, 8))
-bar_width = 1
-
-ax.bar([-bar_width/2], top, bottom=bottom, width=bar_width, label='foo')
-ax.set_xticks([0], [filename])
-ax.set_ylabel('Memory usage (B)')
-ax.set_xlabel('')
-
-ax.set_xlim([-bar_width/2, bar_width/2])
-ax.set_ylim([0, mem_max])
-
-if __name__ == '__main__':
- import argparse
- import mapparse
- parser = argparse.ArgumentParser(description='Visualize program memory usage using GCC map file')
- parser.add_argument('mapfile', type=argparse.FileType('r'), description='Input GCC .map file')
- args = parser.parse_args()
-
- mapping = mapparse.MapFile(args.mapfile.read())
- mapping.
-
diff --git a/menu.c b/menu.c
deleted file mode 100644
index 60a59e9..0000000
--- a/menu.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/**
- ******************************************************************************
- * @file USB_Host/HID_Standalone/Src/menu.c
- * @author MCD Application Team
- * @version V1.1.0
- * @date 17-February-2017
- * @brief This file implements Menu Functions
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics International N.V.
- * All rights reserved.</center></h2>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted, provided that the following conditions are met:
- *
- * 1. Redistribution of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of other
- * contributors to this software may be used to endorse or promote products
- * derived from this software without specific written permission.
- * 4. This software, including modifications and/or derivative works of this
- * software, must execute solely and exclusively on microcontroller or
- * microprocessor devices manufactured by or for STMicroelectronics.
- * 5. Redistribution and use of this software other than as permitted under
- * this license is void and will automatically terminate your rights under
- * this license.
- *
- * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
- * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT
- * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-/* Includes ------------------------------------------------------------------*/
-#include "main.h"
-
-HID_DEMO_StateMachine hid_demo;
-
-static void USBH_KeybdDemo(USBH_HandleTypeDef* phost);
-
-void HID_MenuInit(void)
-{
- uart_print("Starting HID Demo");
- hid_demo.state = HID_DEMO_START;
- HID_MenuProcess();
-}
-
-void HID_MenuProcess(void)
-{
- switch (hid_demo.state) {
- case HID_DEMO_START:
- if (Appli_state == APPLICATION_READY) {
- if (USBH_HID_GetDeviceType(&hUSBHost) == HID_KEYBOARD) {
- hid_demo.keyboard_state = HID_KEYBOARD_IDLE;
- hid_demo.state = HID_DEMO_KEYBOARD;
-
- uart_print("HID initialized");
-
- HID_KeyboardMenuProcess();
- } else {
- uart_print("Unsupported HID device!\n");
- hid_demo.state = HID_DEMO_START;
- }
- }
- break;
-
- case HID_DEMO_KEYBOARD:
- if (Appli_state == APPLICATION_READY) {
- USBH_KeybdDemo(&hUSBHost);
- }
- break;
-
- default:
- break;
- }
-
- if (Appli_state == APPLICATION_DISCONNECT) {
- Appli_state = APPLICATION_IDLE;
- uart_print("HID device disconnected\n");
- hid_demo.state = HID_DEMO_START;
- hid_demo.select = 0;
- }
-}
-
-static void USBH_KeybdDemo(USBH_HandleTypeDef* phost)
-{
- HID_KEYBD_Info_TypeDef* k_pinfo;
- char c;
- k_pinfo = USBH_HID_GetKeybdInfo(phost);
-
- if (k_pinfo != NULL) {
- c = USBH_HID_GetASCIICode(k_pinfo);
- if (c != 0) {
- USR_KEYBRD_ProcessData(c);
- }
- }
-}
diff --git a/openocd.cfg b/openocd.cfg
deleted file mode 100644
index 91a1deb..0000000
--- a/openocd.cfg
+++ /dev/null
@@ -1,14 +0,0 @@
-telnet_port 4444
-gdb_port 3333
-
-interface jlink
-
-adapter_khz 1000
-transport select swd
-
-source /usr/share/openocd/scripts/target/stm32f4x.cfg
-
-init
-#arm semihosting enable
-
-#flash bank sysflash.alias stm32f0x 0x00000000 0 0 0 $_TARGETNAME
diff --git a/pcb/components.bck b/pcb/components.bck
new file mode 100644
index 0000000..5f3ed79
--- /dev/null
+++ b/pcb/components.bck
@@ -0,0 +1,3 @@
+EESchema-DOCLIB Version 2.0
+#
+#End Doc Library
diff --git a/pcb/components.dcm b/pcb/components.dcm
new file mode 100644
index 0000000..5f3ed79
--- /dev/null
+++ b/pcb/components.dcm
@@ -0,0 +1,3 @@
+EESchema-DOCLIB Version 2.0
+#
+#End Doc Library
diff --git a/pcb/components.lib b/pcb/components.lib
new file mode 100644
index 0000000..4d25317
--- /dev/null
+++ b/pcb/components.lib
@@ -0,0 +1,44 @@
+EESchema-LIBRARY Version 2.4
+#encoding utf-8
+#
+# FE1.1s
+#
+DEF FE1.1s U 0 40 Y Y 1 F N
+F0 "U" -750 650 50 H V C CNN
+F1 "FE1.1s" 550 650 50 H V C CNN
+F2 "" 0 0 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+DRAW
+S -800 600 800 -700 0 1 0 f
+X VSS 1 1000 -300 200 L 50 50 1 1 I
+X DM1 10 -400 -900 200 U 50 50 1 1 I
+X DP1 11 -500 -900 200 U 50 50 1 1 I
+X VD18_O 12 1000 0 200 L 50 50 1 1 I
+X VD33 13 1000 100 200 L 50 50 1 1 I
+X REXT 14 -1000 100 200 R 50 50 1 1 I
+X DMU 15 100 800 200 D 50 50 1 1 I
+X DPU 16 0 800 200 D 50 50 1 1 I
+X XRSTJ 17 -1000 -500 200 R 50 50 1 1 I
+X VBUSM 18 1000 400 200 L 50 50 1 1 I
+X BUSJ 19 -1000 -400 200 R 50 50 1 1 I
+X XOUT 2 -1000 400 200 R 50 50 1 1 I
+X VDD5 20 1000 300 200 L 50 50 1 1 I
+X VDD33_O 21 1000 200 200 L 50 50 1 1 I
+X DRV 22 -200 800 200 D 50 50 1 1 I
+X LED1 23 -300 800 200 D 50 50 1 1 I
+X LED2 24 -400 800 200 D 50 50 1 1 I
+X PWRJ 25 -1000 -300 200 R 50 50 1 1 I
+X OVCJ 26 -1000 -200 200 R 50 50 1 1 I
+X TESTJ 27 -1000 -100 200 R 50 50 1 1 I
+X VD18 28 1000 -100 200 L 50 50 1 1 I
+X XIN 3 -1000 300 200 R 50 50 1 1 I
+X DM4 4 500 -900 200 U 50 50 1 1 I
+X DP4 5 400 -900 200 U 50 50 1 1 I
+X DM3 6 200 -900 200 U 50 50 1 1 I
+X DP3 7 100 -900 200 U 50 50 1 1 I
+X DM2 8 -100 -900 200 U 50 50 1 1 I
+X DP2 9 -200 -900 200 U 50 50 1 1 I
+ENDDRAW
+ENDDEF
+#
+#End Library
diff --git a/pcb/securehid-cache.lib b/pcb/securehid-cache.lib
new file mode 100644
index 0000000..3fe54b3
--- /dev/null
+++ b/pcb/securehid-cache.lib
@@ -0,0 +1,732 @@
+EESchema-LIBRARY Version 2.4
+#encoding utf-8
+#
+# Connector_Generic_Conn_01x04
+#
+DEF Connector_Generic_Conn_01x04 J 0 40 Y N 1 F N
+F0 "J" 0 200 50 H V C CNN
+F1 "Connector_Generic_Conn_01x04" 0 -300 50 H V C CNN
+F2 "" 0 0 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+$FPLIST
+ Connector*:*_1x??_*
+$ENDFPLIST
+DRAW
+S -50 -195 0 -205 1 1 6 N
+S -50 -95 0 -105 1 1 6 N
+S -50 5 0 -5 1 1 6 N
+S -50 105 0 95 1 1 6 N
+S -50 150 50 -250 1 1 10 f
+X Pin_1 1 -200 100 150 R 50 50 1 1 P
+X Pin_2 2 -200 0 150 R 50 50 1 1 P
+X Pin_3 3 -200 -100 150 R 50 50 1 1 P
+X Pin_4 4 -200 -200 150 R 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# Connector_Generic_Conn_02x05_Odd_Even
+#
+DEF Connector_Generic_Conn_02x05_Odd_Even J 0 40 Y N 1 F N
+F0 "J" 50 300 50 H V C CNN
+F1 "Connector_Generic_Conn_02x05_Odd_Even" 50 -300 50 H V C CNN
+F2 "" 0 0 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+$FPLIST
+ Connector*:*_2x??_*
+$ENDFPLIST
+DRAW
+S -50 -195 0 -205 1 1 6 N
+S -50 -95 0 -105 1 1 6 N
+S -50 5 0 -5 1 1 6 N
+S -50 105 0 95 1 1 6 N
+S -50 205 0 195 1 1 6 N
+S -50 250 150 -250 1 1 10 f
+S 150 -195 100 -205 1 1 6 N
+S 150 -95 100 -105 1 1 6 N
+S 150 5 100 -5 1 1 6 N
+S 150 105 100 95 1 1 6 N
+S 150 205 100 195 1 1 6 N
+X Pin_1 1 -200 200 150 R 50 50 1 1 P
+X Pin_10 10 300 -200 150 L 50 50 1 1 P
+X Pin_2 2 300 200 150 L 50 50 1 1 P
+X Pin_3 3 -200 100 150 R 50 50 1 1 P
+X Pin_4 4 300 100 150 L 50 50 1 1 P
+X Pin_5 5 -200 0 150 R 50 50 1 1 P
+X Pin_6 6 300 0 150 L 50 50 1 1 P
+X Pin_7 7 -200 -100 150 R 50 50 1 1 P
+X Pin_8 8 300 -100 150 L 50 50 1 1 P
+X Pin_9 9 -200 -200 150 R 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# Connector_USB_B_Micro
+#
+DEF Connector_USB_B_Micro J 0 40 Y Y 1 F N
+F0 "J" -200 450 50 H V L CNN
+F1 "Connector_USB_B_Micro" -200 350 50 H V L CNN
+F2 "" 150 -50 50 H I C CNN
+F3 "" 150 -50 50 H I C CNN
+ALIAS USB_B_Mini
+$FPLIST
+ USB*
+$ENDFPLIST
+DRAW
+C -150 85 25 0 1 10 F
+C -25 135 15 0 1 10 F
+S -200 -300 200 300 0 1 10 f
+S -5 -300 5 -270 0 1 0 N
+S 10 50 -20 20 0 1 10 F
+S 200 -205 170 -195 0 1 0 N
+S 200 -105 170 -95 0 1 0 N
+S 200 -5 170 5 0 1 0 N
+S 200 195 170 205 0 1 0 N
+P 2 0 1 10 -75 85 25 85 N
+P 4 0 1 10 -125 85 -100 85 -50 135 -25 135 N
+P 4 0 1 10 -100 85 -75 85 -50 35 0 35 N
+P 4 0 1 10 25 110 25 60 75 85 25 110 F
+P 5 0 1 0 -170 220 -70 220 -80 190 -160 190 -170 220 F
+P 9 0 1 0 -185 230 -185 220 -175 190 -175 180 -65 180 -65 190 -55 220 -55 230 -185 230 N
+X VBUS 1 300 200 100 L 50 50 1 1 w
+X D- 2 300 -100 100 L 50 50 1 1 P
+X D+ 3 300 0 100 L 50 50 1 1 P
+X ID 4 300 -200 100 L 50 50 1 1 P
+X GND 5 0 -400 100 U 50 50 1 1 w
+X Shield 6 -100 -400 100 U 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# MCU_ST_STM32F1_STM32F103C8Tx
+#
+DEF MCU_ST_STM32F1_STM32F103C8Tx U 0 20 Y Y 1 F N
+F0 "U" -600 1450 50 H V L CNN
+F1 "MCU_ST_STM32F1_STM32F103C8Tx" 300 1450 50 H V L CNN
+F2 "Package_QFP:LQFP-48_7x7mm_P0.5mm" -600 -1400 50 H I R CNN
+F3 "" 0 0 50 H I C CNN
+ALIAS STM32F103CBTx
+$FPLIST
+ LQFP*7x7mm*P0.5mm*
+$ENDFPLIST
+DRAW
+S -600 -1400 500 1400 0 1 10 f
+X VBAT 1 -200 1500 100 D 50 50 1 1 W
+X PA0 10 600 200 100 L 50 50 1 1 B
+X PA1 11 600 100 100 L 50 50 1 1 B
+X PA2 12 600 0 100 L 50 50 1 1 B
+X PA3 13 600 -100 100 L 50 50 1 1 B
+X PA4 14 600 -200 100 L 50 50 1 1 B
+X PA5 15 600 -300 100 L 50 50 1 1 B
+X PA6 16 600 -400 100 L 50 50 1 1 B
+X PA7 17 600 -500 100 L 50 50 1 1 B
+X PB0 18 -700 200 100 R 50 50 1 1 B
+X PB1 19 -700 100 100 R 50 50 1 1 B
+X PC13 2 -700 600 100 R 50 50 1 1 B
+X PB2 20 -700 0 100 R 50 50 1 1 B
+X PB10 21 -700 -800 100 R 50 50 1 1 B
+X PB11 22 -700 -900 100 R 50 50 1 1 B
+X VSS 23 -200 -1500 100 U 50 50 1 1 W
+X VDD 24 -100 1500 100 D 50 50 1 1 W
+X PB12 25 -700 -1000 100 R 50 50 1 1 B
+X PB13 26 -700 -1100 100 R 50 50 1 1 B
+X PB14 27 -700 -1200 100 R 50 50 1 1 B
+X PB15 28 -700 -1300 100 R 50 50 1 1 B
+X PA8 29 600 -600 100 L 50 50 1 1 B
+X PC14 3 -700 500 100 R 50 50 1 1 B
+X PA9 30 600 -700 100 L 50 50 1 1 B
+X PA10 31 600 -800 100 L 50 50 1 1 B
+X PA11 32 600 -900 100 L 50 50 1 1 B
+X PA12 33 600 -1000 100 L 50 50 1 1 B
+X PA13 34 600 -1100 100 L 50 50 1 1 B
+X VSS 35 -100 -1500 100 U 50 50 1 1 W
+X VDD 36 0 1500 100 D 50 50 1 1 W
+X PA14 37 600 -1200 100 L 50 50 1 1 B
+X PA15 38 600 -1300 100 L 50 50 1 1 B
+X PB3 39 -700 -100 100 R 50 50 1 1 B
+X PC15 4 -700 400 100 R 50 50 1 1 B
+X PB4 40 -700 -200 100 R 50 50 1 1 B
+X PB5 41 -700 -300 100 R 50 50 1 1 B
+X PB6 42 -700 -400 100 R 50 50 1 1 B
+X PB7 43 -700 -500 100 R 50 50 1 1 B
+X BOOT0 44 -700 1100 100 R 50 50 1 1 I
+X PB8 45 -700 -600 100 R 50 50 1 1 B
+X PB9 46 -700 -700 100 R 50 50 1 1 B
+X VSS 47 0 -1500 100 U 50 50 1 1 W
+X VDD 48 100 1500 100 D 50 50 1 1 W
+X PD0 5 -700 900 100 R 50 50 1 1 I
+X PD1 6 -700 800 100 R 50 50 1 1 I
+X NRST 7 -700 1300 100 R 50 50 1 1 I
+X VSSA 8 100 -1500 100 U 50 50 1 1 W
+X VDDA 9 200 1500 100 D 50 50 1 1 W
+ENDDRAW
+ENDDEF
+#
+# MCU_ST_STM32F4_STM32F407VETx
+#
+DEF MCU_ST_STM32F4_STM32F407VETx U 0 20 Y Y 1 F N
+F0 "U" -700 2550 50 H V L CNN
+F1 "MCU_ST_STM32F4_STM32F407VETx" 500 2550 50 H V L CNN
+F2 "Package_QFP:LQFP-100_14x14mm_P0.5mm" -700 -2600 50 H I R CNN
+F3 "" 0 0 50 H I C CNN
+ALIAS STM32F407VGTx
+$FPLIST
+ LQFP*14x14mm*P0.5mm*
+$ENDFPLIST
+DRAW
+S -700 -2600 700 2500 0 1 10 f
+X PE2 1 -900 500 200 R 50 50 1 1 B
+X VSS 10 -200 -2800 200 U 50 50 1 1 W
+X VDD 100 300 2700 200 D 50 50 1 1 W
+X VDD 11 -200 2700 200 D 50 50 1 1 W
+X PH0 12 -900 1000 200 R 50 50 1 1 I
+X PH1 13 -900 900 200 R 50 50 1 1 I
+X NRST 14 -900 2400 200 R 50 50 1 1 I
+X PC0 15 900 -1000 200 L 50 50 1 1 B
+X PC1 16 900 -1100 200 L 50 50 1 1 B
+X PC2 17 900 -1200 200 L 50 50 1 1 B
+X PC3 18 900 -1300 200 L 50 50 1 1 B
+X VDD 19 -100 2700 200 D 50 50 1 1 W
+X PE3 2 -900 400 200 R 50 50 1 1 B
+X VSSA 20 200 -2800 200 U 50 50 1 1 W
+X VREF+ 21 -900 1800 200 R 50 50 1 1 W
+X VDDA 22 400 2700 200 D 50 50 1 1 W
+X PA0 23 900 2400 200 L 50 50 1 1 B
+X PA1 24 900 2300 200 L 50 50 1 1 B
+X PA2 25 900 2200 200 L 50 50 1 1 B
+X PA3 26 900 2100 200 L 50 50 1 1 B
+X VSS 27 -100 -2800 200 U 50 50 1 1 W
+X VDD 28 0 2700 200 D 50 50 1 1 W
+X PA4 29 900 2000 200 L 50 50 1 1 B
+X PE4 3 -900 300 200 R 50 50 1 1 B
+X PA5 30 900 1900 200 L 50 50 1 1 B
+X PA6 31 900 1800 200 L 50 50 1 1 B
+X PA7 32 900 1700 200 L 50 50 1 1 B
+X PC4 33 900 -1400 200 L 50 50 1 1 B
+X PC5 34 900 -1500 200 L 50 50 1 1 B
+X PB0 35 900 700 200 L 50 50 1 1 B
+X PB1 36 900 600 200 L 50 50 1 1 B
+X PB2 37 900 500 200 L 50 50 1 1 B
+X PE7 38 -900 0 200 R 50 50 1 1 B
+X PE8 39 -900 -100 200 R 50 50 1 1 B
+X PE5 4 -900 200 200 R 50 50 1 1 B
+X PE9 40 -900 -200 200 R 50 50 1 1 B
+X PE10 41 -900 -300 200 R 50 50 1 1 B
+X PE11 42 -900 -400 200 R 50 50 1 1 B
+X PE12 43 -900 -500 200 R 50 50 1 1 B
+X PE13 44 -900 -600 200 R 50 50 1 1 B
+X PE14 45 -900 -700 200 R 50 50 1 1 B
+X PE15 46 -900 -800 200 R 50 50 1 1 B
+X PB10 47 900 -300 200 L 50 50 1 1 B
+X PB11 48 900 -400 200 L 50 50 1 1 B
+X VCAP_1 49 -900 2000 200 R 50 50 1 1 W
+X PE6 5 -900 100 200 R 50 50 1 1 B
+X VDD 50 100 2700 200 D 50 50 1 1 W
+X PB12 51 900 -500 200 L 50 50 1 1 B
+X PB13 52 900 -600 200 L 50 50 1 1 B
+X PB14 53 900 -700 200 L 50 50 1 1 B
+X PB15 54 900 -800 200 L 50 50 1 1 B
+X PD8 55 -900 -1800 200 R 50 50 1 1 B
+X PD9 56 -900 -1900 200 R 50 50 1 1 B
+X PD10 57 -900 -2000 200 R 50 50 1 1 B
+X PD11 58 -900 -2100 200 R 50 50 1 1 B
+X PD12 59 -900 -2200 200 R 50 50 1 1 B
+X VBAT 6 -300 2700 200 D 50 50 1 1 W
+X PD13 60 -900 -2300 200 R 50 50 1 1 B
+X PD14 61 -900 -2400 200 R 50 50 1 1 B
+X PD15 62 -900 -2500 200 R 50 50 1 1 B
+X PC6 63 900 -1600 200 L 50 50 1 1 B
+X PC7 64 900 -1700 200 L 50 50 1 1 B
+X PC8 65 900 -1800 200 L 50 50 1 1 B
+X PC9 66 900 -1900 200 L 50 50 1 1 B
+X PA8 67 900 1600 200 L 50 50 1 1 B
+X PA9 68 900 1500 200 L 50 50 1 1 B
+X PA10 69 900 1400 200 L 50 50 1 1 B
+X PC13 7 900 -2300 200 L 50 50 1 1 B
+X PA11 70 900 1300 200 L 50 50 1 1 B
+X PA12 71 900 1200 200 L 50 50 1 1 B
+X PA13 72 900 1100 200 L 50 50 1 1 B
+X VCAP_2 73 -900 1900 200 R 50 50 1 1 W
+X VSS 74 0 -2800 200 U 50 50 1 1 W
+X VDD 75 200 2700 200 D 50 50 1 1 W
+X PA14 76 900 1000 200 L 50 50 1 1 B
+X PA15 77 900 900 200 L 50 50 1 1 B
+X PC10 78 900 -2000 200 L 50 50 1 1 B
+X PC11 79 900 -2100 200 L 50 50 1 1 B
+X PC14 8 900 -2400 200 L 50 50 1 1 B
+X PC12 80 900 -2200 200 L 50 50 1 1 B
+X PD0 81 -900 -1000 200 R 50 50 1 1 B
+X PD1 82 -900 -1100 200 R 50 50 1 1 B
+X PD2 83 -900 -1200 200 R 50 50 1 1 B
+X PD3 84 -900 -1300 200 R 50 50 1 1 B
+X PD4 85 -900 -1400 200 R 50 50 1 1 B
+X PD5 86 -900 -1500 200 R 50 50 1 1 B
+X PD6 87 -900 -1600 200 R 50 50 1 1 B
+X PD7 88 -900 -1700 200 R 50 50 1 1 B
+X PB3 89 900 400 200 L 50 50 1 1 B
+X PC15 9 900 -2500 200 L 50 50 1 1 B
+X PB4 90 900 300 200 L 50 50 1 1 B
+X PB5 91 900 200 200 L 50 50 1 1 B
+X PB6 92 900 100 200 L 50 50 1 1 B
+X PB7 93 900 0 200 L 50 50 1 1 B
+X BOOT0 94 -900 2200 200 R 50 50 1 1 I
+X PB8 95 900 -100 200 L 50 50 1 1 B
+X PB9 96 900 -200 200 L 50 50 1 1 B
+X PE0 97 -900 700 200 R 50 50 1 1 B
+X PE1 98 -900 600 200 R 50 50 1 1 B
+X VSS 99 100 -2800 200 U 50 50 1 1 W
+ENDDRAW
+ENDDEF
+#
+# components_FE1.1s
+#
+DEF components_FE1.1s U 0 40 Y Y 1 F N
+F0 "U" -750 650 50 H V C CNN
+F1 "components_FE1.1s" 550 650 50 H V C CNN
+F2 "" 0 0 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+DRAW
+S -800 600 800 -700 0 1 0 f
+X VSS 1 1000 -300 200 L 50 50 1 1 I
+X DM1 10 -400 -900 200 U 50 50 1 1 I
+X DP1 11 -500 -900 200 U 50 50 1 1 I
+X VD18_O 12 1000 0 200 L 50 50 1 1 I
+X VD33 13 1000 100 200 L 50 50 1 1 I
+X REXT 14 -1000 100 200 R 50 50 1 1 I
+X DMU 15 100 800 200 D 50 50 1 1 I
+X DPU 16 0 800 200 D 50 50 1 1 I
+X XRSTJ 17 -1000 -500 200 R 50 50 1 1 I
+X VBUSM 18 1000 400 200 L 50 50 1 1 I
+X BUSJ 19 -1000 -400 200 R 50 50 1 1 I
+X XOUT 2 -1000 400 200 R 50 50 1 1 I
+X VDD5 20 1000 300 200 L 50 50 1 1 I
+X VDD33_O 21 1000 200 200 L 50 50 1 1 I
+X DRV 22 -200 800 200 D 50 50 1 1 I
+X LED1 23 -300 800 200 D 50 50 1 1 I
+X LED2 24 -400 800 200 D 50 50 1 1 I
+X PWRJ 25 -1000 -300 200 R 50 50 1 1 I
+X OVCJ 26 -1000 -200 200 R 50 50 1 1 I
+X TESTJ 27 -1000 -100 200 R 50 50 1 1 I
+X VD18 28 1000 -100 200 L 50 50 1 1 I
+X XIN 3 -1000 300 200 R 50 50 1 1 I
+X DM4 4 500 -900 200 U 50 50 1 1 I
+X DP4 5 400 -900 200 U 50 50 1 1 I
+X DM3 6 200 -900 200 U 50 50 1 1 I
+X DP3 7 100 -900 200 U 50 50 1 1 I
+X DM2 8 -100 -900 200 U 50 50 1 1 I
+X DP2 9 -200 -900 200 U 50 50 1 1 I
+ENDDRAW
+ENDDEF
+#
+# conn_USB_A
+#
+DEF conn_USB_A J 0 40 Y Y 1 F N
+F0 "J" -200 450 50 H V L CNN
+F1 "conn_USB_A" -200 350 50 H V L CNN
+F2 "" 150 -50 50 H I C CNN
+F3 "" 150 -50 50 H I C CNN
+$FPLIST
+ USB*
+$ENDFPLIST
+DRAW
+C -150 85 25 0 1 10 F
+C -25 135 15 0 1 10 F
+S -200 -300 200 300 0 1 10 f
+S -60 190 -170 210 0 1 0 F
+S -50 180 -180 230 0 1 0 N
+S -5 -300 5 -270 0 1 0 N
+S 10 50 -20 20 0 1 10 F
+S 200 -105 170 -95 0 1 0 N
+S 200 -5 170 5 0 1 0 N
+S 200 195 170 205 0 1 0 N
+P 4 0 1 10 -125 85 -100 85 -50 135 -25 135 N
+P 4 0 1 10 -100 85 -75 85 -50 35 0 35 N
+P 4 0 1 10 25 110 25 60 75 85 25 110 F
+P 2 1 1 10 -75 85 25 85 N
+X VBUS 1 300 200 100 L 50 50 1 1 W
+X D- 2 300 -100 100 L 50 50 1 1 P
+X D+ 3 300 0 100 L 50 50 1 1 P
+X GND 4 0 -400 100 U 50 50 1 1 W
+X Shield 5 -100 -400 100 U 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# device_Battery_Cell
+#
+DEF device_Battery_Cell BT 0 0 N N 1 F N
+F0 "BT" 100 100 50 H V L CNN
+F1 "device_Battery_Cell" 100 0 50 H V L CNN
+F2 "" 0 60 50 V I C CNN
+F3 "" 0 60 50 V I C CNN
+DRAW
+S -90 70 90 60 0 1 0 F
+S -62 47 58 27 0 1 0 F
+P 2 0 1 0 0 30 0 0 N
+P 2 0 1 0 0 70 0 100 N
+P 2 0 1 10 20 135 60 135 N
+P 2 0 1 10 40 155 40 115 N
+X + 1 0 200 100 D 50 50 1 1 P
+X - 2 0 -100 100 U 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# device_C
+#
+DEF device_C C 0 10 N Y 1 F N
+F0 "C" 25 100 50 H V L CNN
+F1 "device_C" 25 -100 50 H V L CNN
+F2 "" 38 -150 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+$FPLIST
+ C_*
+$ENDFPLIST
+DRAW
+P 2 0 1 20 -80 -30 80 -30 N
+P 2 0 1 20 -80 30 80 30 N
+X ~ 1 0 150 110 D 50 50 1 1 P
+X ~ 2 0 -150 110 U 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# device_CP
+#
+DEF device_CP C 0 10 N Y 1 F N
+F0 "C" 25 100 50 H V L CNN
+F1 "device_CP" 25 -100 50 H V L CNN
+F2 "" 38 -150 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+$FPLIST
+ CP_*
+$ENDFPLIST
+DRAW
+S -90 20 -90 40 0 1 0 N
+S -90 20 90 20 0 1 0 N
+S 90 -20 -90 -40 0 1 0 F
+S 90 40 -90 40 0 1 0 N
+S 90 40 90 20 0 1 0 N
+P 2 0 1 0 -70 90 -30 90 N
+P 2 0 1 0 -50 110 -50 70 N
+X ~ 1 0 150 110 D 50 50 1 1 P
+X ~ 2 0 -150 110 U 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# device_CP_Small
+#
+DEF device_CP_Small C 0 10 N N 1 F N
+F0 "C" 10 70 50 H V L CNN
+F1 "device_CP_Small" 10 -80 50 H V L CNN
+F2 "" 0 0 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+$FPLIST
+ CP_*
+$ENDFPLIST
+DRAW
+S -60 -12 60 -27 0 1 0 F
+S -60 27 60 12 0 1 0 N
+P 2 0 1 0 -50 60 -30 60 N
+P 2 0 1 0 -40 50 -40 70 N
+X ~ 1 0 100 73 D 50 50 1 1 P
+X ~ 2 0 -100 73 U 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# device_C_Small
+#
+DEF device_C_Small C 0 10 N N 1 F N
+F0 "C" 10 70 50 H V L CNN
+F1 "device_C_Small" 10 -80 50 H V L CNN
+F2 "" 0 0 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+$FPLIST
+ C_*
+$ENDFPLIST
+DRAW
+P 2 0 1 13 -60 -20 60 -20 N
+P 2 0 1 12 -60 20 60 20 N
+X ~ 1 0 100 80 D 50 50 1 1 P
+X ~ 2 0 -100 80 U 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# device_Crystal_GND24_Small
+#
+DEF device_Crystal_GND24_Small Y 0 40 Y N 1 F N
+F0 "Y" 50 175 50 H V L CNN
+F1 "device_Crystal_GND24_Small" 50 100 50 H V L CNN
+F2 "" 0 0 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+$FPLIST
+ Crystal*
+$ENDFPLIST
+DRAW
+S -30 -60 30 60 0 1 0 N
+P 2 0 1 15 -50 -30 -50 30 N
+P 2 0 1 15 50 -30 50 30 N
+P 4 0 1 0 -50 -50 -50 -75 50 -75 50 -50 N
+P 4 0 1 0 -50 50 -50 75 50 75 50 50 N
+X 1 1 -100 0 50 R 50 50 1 1 P
+X 2 2 0 -125 50 U 50 50 1 1 P
+X 3 3 100 0 50 L 50 50 1 1 P
+X 4 4 0 125 50 D 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# device_LED
+#
+DEF device_LED D 0 40 Y N 1 F N
+F0 "D" 0 100 50 H V C CNN
+F1 "device_LED" 0 -100 50 H V C CNN
+F2 "" 0 0 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+$FPLIST
+ LED*
+$ENDFPLIST
+DRAW
+P 2 0 1 8 -50 -50 -50 50 N
+P 2 0 1 0 -50 0 50 0 N
+P 4 0 1 8 50 -50 50 50 -50 0 50 -50 N
+P 5 0 1 0 -120 -30 -180 -90 -150 -90 -180 -90 -180 -60 N
+P 5 0 1 0 -70 -30 -130 -90 -100 -90 -130 -90 -130 -60 N
+X K 1 -150 0 100 R 50 50 1 1 P
+X A 2 150 0 100 L 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# device_LED_Small
+#
+DEF device_LED_Small D 0 10 N N 1 F N
+F0 "D" -50 125 50 H V L CNN
+F1 "device_LED_Small" -175 -100 50 H V L CNN
+F2 "" 0 0 50 V I C CNN
+F3 "" 0 0 50 V I C CNN
+$FPLIST
+ LED-*
+ LED_*
+$ENDFPLIST
+DRAW
+P 2 0 1 0 -30 -40 -30 40 N
+P 2 0 1 0 40 0 -30 0 N
+P 4 0 1 0 30 -40 -30 0 30 40 30 -40 N
+P 5 0 1 0 0 30 -20 50 -10 50 -20 50 -20 40 N
+P 5 0 1 0 20 50 0 70 10 70 0 70 0 60 N
+X K 1 -100 0 70 R 50 50 1 1 P
+X A 2 100 0 70 L 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# device_R_Pack04
+#
+DEF device_R_Pack04 RN 0 0 Y N 1 F N
+F0 "RN" -300 0 50 V V C CNN
+F1 "device_R_Pack04" 200 0 50 V V C CNN
+F2 "" 275 0 50 V I C CNN
+F3 "" 0 0 50 H I C CNN
+$FPLIST
+ DIP*
+ SOIC*
+$ENDFPLIST
+DRAW
+S -250 -95 150 95 0 1 10 f
+S -225 75 -175 -75 0 1 10 N
+S -125 75 -75 -75 0 1 10 N
+S -25 75 25 -75 0 1 10 N
+S 75 75 125 -75 0 1 10 N
+P 2 0 1 0 -200 -100 -200 -75 N
+P 2 0 1 0 -200 75 -200 100 N
+P 2 0 1 0 -100 -100 -100 -75 N
+P 2 0 1 0 -100 75 -100 100 N
+P 2 0 1 0 0 -100 0 -75 N
+P 2 0 1 0 0 75 0 100 N
+P 2 0 1 0 100 -100 100 -75 N
+P 2 0 1 0 100 75 100 100 N
+X R1.1 1 -200 -200 100 U 50 50 1 1 P
+X R2.1 2 -100 -200 100 U 50 50 1 1 P
+X R3.1 3 0 -200 100 U 50 50 1 1 P
+X R4.1 4 100 -200 100 U 50 50 1 1 P
+X R4.2 5 100 200 100 D 50 50 1 1 P
+X R3.2 6 0 200 100 D 50 50 1 1 P
+X R2.2 7 -100 200 100 D 50 50 1 1 P
+X R1.2 8 -200 200 100 D 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# device_R_Small
+#
+DEF device_R_Small R 0 10 N N 1 F N
+F0 "R" 30 20 50 H V L CNN
+F1 "device_R_Small" 30 -40 50 H V L CNN
+F2 "" 0 0 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+$FPLIST
+ R_*
+$ENDFPLIST
+DRAW
+S -30 70 30 -70 0 1 8 N
+X ~ 1 0 100 30 D 50 50 1 1 P
+X ~ 2 0 -100 30 U 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# device_Speaker_Crystal
+#
+DEF device_Speaker_Crystal LS 0 0 Y N 1 F N
+F0 "LS" 25 225 50 H V R CNN
+F1 "device_Speaker_Crystal" 25 150 50 H V R CNN
+F2 "" -35 -50 50 H I C CNN
+F3 "" -35 -50 50 H I C CNN
+ALIAS Speaker_Ultrasound
+DRAW
+S -100 50 45 -150 0 0 10 N
+S -80 -25 25 -75 0 0 10 N
+P 2 0 0 0 -65 -90 15 -90 N
+P 2 0 0 0 -65 -10 15 -10 N
+P 2 0 0 0 -25 -90 -25 -120 N
+P 2 0 0 0 -25 -10 -25 20 N
+P 4 0 0 10 45 50 145 150 145 -250 45 -150 N
+X 1 1 -200 0 100 R 50 50 1 1 I
+X 2 2 -200 -100 100 R 50 50 1 1 I
+ENDDRAW
+ENDDEF
+#
+# power_+3.3V
+#
+DEF power_+3.3V #PWR 0 0 Y Y 1 F P
+F0 "#PWR" 0 -150 50 H I C CNN
+F1 "power_+3.3V" 0 140 50 H V C CNN
+F2 "" 0 0 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+ALIAS +3.3V
+DRAW
+P 2 0 1 0 -30 50 0 100 N
+P 2 0 1 0 0 0 0 100 N
+P 2 0 1 0 0 100 30 50 N
+X +3V3 1 0 0 0 U 50 50 1 1 W N
+ENDDRAW
+ENDDEF
+#
+# power_GND
+#
+DEF power_GND #PWR 0 0 Y Y 1 F P
+F0 "#PWR" 0 -250 50 H I C CNN
+F1 "power_GND" 0 -150 50 H V C CNN
+F2 "" 0 0 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+DRAW
+P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N
+X GND 1 0 0 0 D 50 50 1 1 W N
+ENDDRAW
+ENDDEF
+#
+# power_VBUS
+#
+DEF power_VBUS #PWR 0 0 Y Y 1 F P
+F0 "#PWR" 0 -150 50 H I C CNN
+F1 "power_VBUS" 0 150 50 H V C CNN
+F2 "" 0 0 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+DRAW
+P 2 0 1 0 -30 50 0 100 N
+P 2 0 1 0 0 0 0 100 N
+P 2 0 1 0 0 100 30 50 N
+X VBUS 1 0 0 0 U 50 50 1 1 W N
+ENDDRAW
+ENDDEF
+#
+# power_VDDA
+#
+DEF power_VDDA #PWR 0 0 Y Y 1 F P
+F0 "#PWR" 0 -150 50 H I C CNN
+F1 "power_VDDA" 0 150 50 H V C CNN
+F2 "" 0 0 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+DRAW
+C 0 75 25 0 1 0 N
+P 2 0 1 0 0 0 0 50 N
+X VDDA 1 0 0 0 U 50 50 1 1 W N
+ENDDRAW
+ENDDEF
+#
+# power_VSSA
+#
+DEF power_VSSA #PWR 0 0 Y Y 1 F P
+F0 "#PWR" 0 -150 50 H I C CNN
+F1 "power_VSSA" 0 150 50 H V C CNN
+F2 "" 0 0 50 H I C CNN
+F3 "" 0 0 50 H I C CNN
+DRAW
+C 0 75 25 0 1 0 N
+P 2 0 1 0 0 0 0 50 N
+X VSSA 1 0 0 0 U 50 50 1 1 W N
+ENDDRAW
+ENDDEF
+#
+# regul_AP1117-33
+#
+DEF regul_AP1117-33 U 0 10 Y Y 1 F N
+F0 "U" -150 125 50 H V C CNN
+F1 "regul_AP1117-33" 0 125 50 H V L CNN
+F2 "TO_SOT_Packages_SMD:SOT-223-3Lead_TabPin2" 0 200 50 H I C CNN
+F3 "" 100 -250 50 H I C CNN
+ALIAS AP1117-18 AP1117-25 AP1117-33 AP1117-50 LD1117S33TR_SOT223 LD1117S12TR_SOT223 LD1117S18TR_SOT223 LD1117S25TR_SOT223 LD1117S50TR_SOT223 NCP1117-12_SOT223 NCP1117-1.5_SOT223 NCP1117-1.8_SOT223 NCP1117-2.0_SOT223 NCP1117-2.5_SOT223 NCP1117-2.85_SOT223 NCP1117-3.3_SOT223 NCP1117-5.0_SOT223
+$FPLIST
+ SOT?223*TabPin2*
+$ENDFPLIST
+DRAW
+S -200 -200 200 75 0 1 10 f
+X GND 1 0 -300 100 U 50 50 1 1 W
+X VO 2 300 0 100 L 50 50 1 1 P
+X VI 3 -300 0 100 R 50 50 1 1 W
+ENDDRAW
+ENDDEF
+#
+# switches_SW_Push
+#
+DEF switches_SW_Push SW 0 40 N N 1 F N
+F0 "SW" 50 100 50 H V L CNN
+F1 "switches_SW_Push" 0 -60 50 H V C CNN
+F2 "" 0 200 50 H I C CNN
+F3 "" 0 200 50 H I C CNN
+DRAW
+C -80 0 20 0 1 0 N
+C 80 0 20 0 1 0 N
+P 2 0 1 0 0 50 0 120 N
+P 2 0 1 0 100 50 -100 50 N
+X 1 1 -200 0 100 R 50 50 0 1 P
+X 2 2 200 0 100 L 50 50 0 1 P
+ENDDRAW
+ENDDEF
+#
+# transistors_2N7002
+#
+DEF transistors_2N7002 Q 0 0 Y N 1 F N
+F0 "Q" 200 75 50 H V L CNN
+F1 "transistors_2N7002" 200 0 50 H V L CNN
+F2 "TO_SOT_Packages_SMD:SOT-23" 200 -75 50 H I L CIN
+F3 "" 0 0 50 H I L CNN
+ALIAS 2N7002 MMBF170
+$FPLIST
+ SOT?23*
+$ENDFPLIST
+DRAW
+C 65 0 111 0 1 10 N
+C 100 -70 11 0 1 0 F
+C 100 70 11 0 1 0 F
+P 2 0 1 0 30 -70 100 -70 N
+P 2 0 1 10 30 -50 30 -90 N
+P 2 0 1 0 30 0 100 0 N
+P 2 0 1 10 30 20 30 -20 N
+P 2 0 1 0 30 70 100 70 N
+P 2 0 1 10 30 90 30 50 N
+P 2 0 1 0 100 -70 100 -100 N
+P 2 0 1 0 100 -70 100 0 N
+P 2 0 1 0 100 100 100 70 N
+P 3 0 1 10 10 75 10 -75 10 -75 N
+P 4 0 1 0 40 0 80 15 80 -15 40 0 F
+P 4 0 1 0 100 -70 130 -70 130 70 100 70 N
+P 4 0 1 0 110 20 115 15 145 15 150 10 N
+P 4 0 1 0 130 15 115 -10 145 -10 130 15 N
+X G 1 -200 0 210 R 50 50 1 1 I
+X S 2 100 -200 100 U 50 50 1 1 P
+X D 3 100 200 100 D 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+#End Library
diff --git a/pcb/securehid.bak b/pcb/securehid.bak
new file mode 100644
index 0000000..73893eb
--- /dev/null
+++ b/pcb/securehid.bak
@@ -0,0 +1,2310 @@
+EESchema Schematic File Version 4
+LIBS:securehid-cache
+EELAYER 26 0
+EELAYER END
+$Descr A3 16535 11693
+encoding utf-8
+Sheet 1 1
+Title ""
+Date ""
+Rev ""
+Comp ""
+Comment1 ""
+Comment2 ""
+Comment3 ""
+Comment4 ""
+$EndDescr
+$Comp
+L MCU_ST_STM32F1:STM32F103C8Tx U?
+U 1 1 5BEEAD06
+P 12850 3550
+F 0 "U?" H 12250 5000 50 0000 L CNN
+F 1 "STM32F103C8Tx" H 13150 5000 50 0000 L CNN
+F 2 "Package_QFP:LQFP-48_7x7mm_P0.5mm" H 12250 2150 50 0001 R CNN
+F 3 "" H 12850 3550 50 0001 C CNN
+ 1 12850 3550
+ 1 0 0 -1
+$EndComp
+$Comp
+L Connector:USB_B_Micro J?
+U 1 1 5BEEADC1
+P 1700 3650
+F 0 "J?" H 1500 4100 50 0000 L CNN
+F 1 "USB_B_Micro" H 1500 4000 50 0000 L CNN
+F 2 "" H 1850 3600 50 0001 C CNN
+F 3 "" H 1850 3600 50 0001 C CNN
+ 1 1700 3650
+ 1 0 0 -1
+$EndComp
+$Comp
+L conn:USB_A J?
+U 1 1 5BEEAE66
+P 1700 9200
+F 0 "J?" H 1500 9650 50 0000 L CNN
+F 1 "USB_A" H 1500 9550 50 0000 L CNN
+F 2 "" H 1850 9150 50 0001 C CNN
+F 3 "" H 1850 9150 50 0001 C CNN
+ 1 1700 9200
+ 1 0 0 -1
+$EndComp
+$Comp
+L regul:AP1117-33 U?
+U 1 1 5BEF631A
+P 2650 2200
+F 0 "U?" H 2650 2442 50 0000 C CNN
+F 1 "AP1117-33" H 2650 2351 50 0000 C CNN
+F 2 "TO_SOT_Packages_SMD:SOT-223-3Lead_TabPin2" H 2650 2400 50 0001 C CNN
+F 3 "http://www.diodes.com/datasheets/AP1117.pdf" H 2750 1950 50 0001 C CNN
+ 1 2650 2200
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C C?
+U 1 1 5BEF660D
+P 2050 2350
+F 0 "C?" H 2165 2396 50 0000 L CNN
+F 1 "100n" H 2165 2305 50 0000 L CNN
+F 2 "" H 2088 2200 50 0001 C CNN
+F 3 "" H 2050 2350 50 0001 C CNN
+ 1 2050 2350
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:CP C?
+U 1 1 5BEF69F7
+P 1550 2350
+F 0 "C?" H 1668 2396 50 0000 L CNN
+F 1 "220u" H 1668 2305 50 0000 L CNN
+F 2 "" H 1588 2200 50 0001 C CNN
+F 3 "" H 1550 2350 50 0001 C CNN
+ 1 1550 2350
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:CP C?
+U 1 1 5BEF6DE0
+P 3600 2350
+F 0 "C?" H 3718 2396 50 0000 L CNN
+F 1 "47u" H 3718 2305 50 0000 L CNN
+F 2 "" H 3638 2200 50 0001 C CNN
+F 3 "" H 3600 2350 50 0001 C CNN
+ 1 3600 2350
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C C?
+U 1 1 5BEF7098
+P 3100 2350
+F 0 "C?" H 3215 2396 50 0000 L CNN
+F 1 "100n" H 3215 2305 50 0000 L CNN
+F 2 "" H 3138 2200 50 0001 C CNN
+F 3 "" H 3100 2350 50 0001 C CNN
+ 1 3100 2350
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5BEF78F8
+P 2650 2650
+F 0 "#PWR?" H 2650 2400 50 0001 C CNN
+F 1 "GND" H 2655 2477 50 0000 C CNN
+F 2 "" H 2650 2650 50 0001 C CNN
+F 3 "" H 2650 2650 50 0001 C CNN
+ 1 2650 2650
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:VBUS #PWR?
+U 1 1 5BEF7D0E
+P 1550 2050
+F 0 "#PWR?" H 1550 1900 50 0001 C CNN
+F 1 "VBUS" H 1565 2223 50 0000 C CNN
+F 2 "" H 1550 2050 50 0001 C CNN
+F 3 "" H 1550 2050 50 0001 C CNN
+ 1 1550 2050
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:+3.3V #PWR?
+U 1 1 5BEF8091
+P 3600 2050
+F 0 "#PWR?" H 3600 1900 50 0001 C CNN
+F 1 "+3.3V" H 3615 2223 50 0000 C CNN
+F 2 "" H 3600 2050 50 0001 C CNN
+F 3 "" H 3600 2050 50 0001 C CNN
+ 1 3600 2050
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 1550 2050 1550 2200
+Wire Wire Line
+ 1550 2200 2050 2200
+Connection ~ 1550 2200
+Connection ~ 2050 2200
+Wire Wire Line
+ 2050 2200 2350 2200
+Wire Wire Line
+ 2950 2200 3100 2200
+Wire Wire Line
+ 3600 2200 3600 2050
+Connection ~ 3600 2200
+Connection ~ 3100 2200
+Wire Wire Line
+ 3100 2200 3600 2200
+Wire Wire Line
+ 3600 2500 3100 2500
+Connection ~ 2050 2500
+Wire Wire Line
+ 2050 2500 1550 2500
+Connection ~ 2650 2500
+Wire Wire Line
+ 2650 2500 2050 2500
+Connection ~ 3100 2500
+Wire Wire Line
+ 2650 2500 2650 2650
+Wire Wire Line
+ 2100 8600 2100 8750
+Wire Wire Line
+ 2100 9000 2000 9000
+Wire Wire Line
+ 1600 9600 1700 9600
+Wire Wire Line
+ 1700 9700 1700 9600
+Connection ~ 1700 9600
+$Comp
+L power:GND #PWR?
+U 1 1 5BEFC201
+P 1700 9700
+F 0 "#PWR?" H 1700 9450 50 0001 C CNN
+F 1 "GND" H 1705 9527 50 0000 C CNN
+F 2 "" H 1700 9700 50 0001 C CNN
+F 3 "" H 1700 9700 50 0001 C CNN
+ 1 1700 9700
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:VBUS #PWR?
+U 1 1 5BEFC5C0
+P 2100 8600
+F 0 "#PWR?" H 2100 8450 50 0001 C CNN
+F 1 "VBUS" H 2115 8773 50 0000 C CNN
+F 2 "" H 2100 8600 50 0001 C CNN
+F 3 "" H 2100 8600 50 0001 C CNN
+ 1 2100 8600
+ 1 0 0 -1
+$EndComp
+Text Label 3600 6300 3 50 ~ 0
+USBH_DM
+Text Label 3500 6300 3 50 ~ 0
+USBH_DP
+Text Label 10100 3300 2 50 ~ 0
+USBH_DM
+Text Label 10100 3400 2 50 ~ 0
+USBH_DP
+Wire Wire Line
+ 10100 3400 9350 3400
+Wire Wire Line
+ 10100 3300 9350 3300
+$Comp
+L power:VBUS #PWR?
+U 1 1 5BF01EF8
+P 2100 3350
+F 0 "#PWR?" H 2100 3200 50 0001 C CNN
+F 1 "VBUS" H 2115 3523 50 0000 C CNN
+F 2 "" H 2100 3350 50 0001 C CNN
+F 3 "" H 2100 3350 50 0001 C CNN
+ 1 2100 3350
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5BF022FC
+P 1700 4150
+F 0 "#PWR?" H 1700 3900 50 0001 C CNN
+F 1 "GND" H 1705 3977 50 0000 C CNN
+F 2 "" H 1700 4150 50 0001 C CNN
+F 3 "" H 1700 4150 50 0001 C CNN
+ 1 1700 4150
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 1700 4150 1700 4050
+Wire Wire Line
+ 1600 4050 1700 4050
+Connection ~ 1700 4050
+Wire Wire Line
+ 2000 3450 2100 3450
+Wire Wire Line
+ 2100 3450 2100 3350
+Text Label 3200 3650 2 50 ~ 0
+USBD_DP
+Text Label 3200 3750 2 50 ~ 0
+USBD_DM
+$Comp
+L device:R_Small R?
+U 1 1 5BF05F40
+P 2700 3750
+F 0 "R?" V 2500 3750 50 0000 C CNN
+F 1 "22" V 2600 3750 50 0000 C CNN
+F 2 "" H 2700 3750 50 0001 C CNN
+F 3 "" H 2700 3750 50 0001 C CNN
+ 1 2700 3750
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5BF06DFB
+P 2700 3650
+F 0 "R?" V 2504 3650 50 0000 C CNN
+F 1 "22" V 2595 3650 50 0000 C CNN
+F 2 "" H 2700 3650 50 0001 C CNN
+F 3 "" H 2700 3650 50 0001 C CNN
+ 1 2700 3650
+ 0 1 1 0
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5BF07F6E
+P 2300 3450
+F 0 "R?" H 2359 3496 50 0000 L CNN
+F 1 "1k5" H 2359 3405 50 0000 L CNN
+F 2 "" H 2300 3450 50 0001 C CNN
+F 3 "" H 2300 3450 50 0001 C CNN
+ 1 2300 3450
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:+3.3V #PWR?
+U 1 1 5BF08B1C
+P 2300 3350
+F 0 "#PWR?" H 2300 3200 50 0001 C CNN
+F 1 "+3.3V" H 2315 3523 50 0000 C CNN
+F 2 "" H 2300 3350 50 0001 C CNN
+F 3 "" H 2300 3350 50 0001 C CNN
+ 1 2300 3350
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 2300 3550 2300 3650
+Connection ~ 2300 3650
+Wire Wire Line
+ 2300 3650 2000 3650
+Wire Wire Line
+ 2300 3650 2600 3650
+Wire Wire Line
+ 2000 3750 2600 3750
+Wire Wire Line
+ 3200 3750 2800 3750
+Wire Wire Line
+ 2800 3650 3200 3650
+$Comp
+L device:Crystal_GND24_Small Y?
+U 1 1 5BF102A6
+P 6600 3650
+F 0 "Y?" V 6554 3816 50 0000 L CNN
+F 1 "8MHz" V 6645 3816 50 0000 L CNN
+F 2 "" H 6600 3650 50 0001 C CNN
+F 3 "" H 6600 3650 50 0001 C CNN
+ 1 6600 3650
+ 0 1 1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF11861
+P 6350 3450
+F 0 "C?" V 6579 3450 50 0000 C CNN
+F 1 "12p" V 6488 3450 50 0000 C CNN
+F 2 "" H 6350 3450 50 0001 C CNN
+F 3 "" H 6350 3450 50 0001 C CNN
+ 1 6350 3450
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF125C0
+P 6350 3850
+F 0 "C?" V 6579 3850 50 0000 C CNN
+F 1 "12p" V 6488 3850 50 0000 C CNN
+F 2 "" H 6350 3850 50 0001 C CNN
+F 3 "" H 6350 3850 50 0001 C CNN
+ 1 6350 3850
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5BF1348D
+P 7050 3650
+F 0 "R?" H 7109 3696 50 0000 L CNN
+F 1 "1M" H 7109 3605 50 0000 L CNN
+F 2 "" H 7050 3650 50 0001 C CNN
+F 3 "" H 7050 3650 50 0001 C CNN
+ 1 7050 3650
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 6450 3450 6600 3450
+Wire Wire Line
+ 6600 3450 6600 3550
+Wire Wire Line
+ 2650 2500 3100 2500
+Wire Wire Line
+ 6600 3450 7050 3450
+Wire Wire Line
+ 7050 3450 7050 3550
+Connection ~ 6600 3450
+Wire Wire Line
+ 7550 3600 7300 3600
+Wire Wire Line
+ 7300 3600 7300 3450
+Wire Wire Line
+ 7300 3450 7050 3450
+Connection ~ 7050 3450
+Wire Wire Line
+ 6450 3850 6600 3850
+Wire Wire Line
+ 7300 3850 7300 3700
+Wire Wire Line
+ 7300 3700 7550 3700
+Wire Wire Line
+ 7050 3750 7050 3850
+Connection ~ 7050 3850
+Wire Wire Line
+ 7050 3850 7300 3850
+Wire Wire Line
+ 6600 3750 6600 3850
+Connection ~ 6600 3850
+Wire Wire Line
+ 6600 3850 7050 3850
+Wire Wire Line
+ 6150 3450 6150 3650
+Wire Wire Line
+ 6150 3850 6250 3850
+Wire Wire Line
+ 6150 3450 6250 3450
+$Comp
+L power:GND #PWR?
+U 1 1 5BF18330
+P 6150 3950
+F 0 "#PWR?" H 6150 3700 50 0001 C CNN
+F 1 "GND" H 6155 3777 50 0000 C CNN
+F 2 "" H 6150 3950 50 0001 C CNN
+F 3 "" H 6150 3950 50 0001 C CNN
+ 1 6150 3950
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 6150 3950 6150 3850
+Connection ~ 6150 3850
+Wire Wire Line
+ 6475 3650 6425 3650
+Connection ~ 6150 3650
+Wire Wire Line
+ 6150 3650 6150 3850
+Wire Wire Line
+ 6725 3650 6725 3800
+Wire Wire Line
+ 6725 3800 6425 3800
+Wire Wire Line
+ 6425 3800 6425 3650
+Connection ~ 6425 3650
+Wire Wire Line
+ 6425 3650 6150 3650
+$Comp
+L device:C_Small C?
+U 1 1 5BF1E83A
+P 7150 2600
+F 0 "C?" V 6921 2600 50 0000 C CNN
+F 1 "10u" V 7012 2600 50 0000 C CNN
+F 2 "" H 7150 2600 50 0001 C CNN
+F 3 "" H 7150 2600 50 0001 C CNN
+ 1 7150 2600
+ 0 1 1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF1FBEB
+P 6900 2700
+F 0 "C?" V 6671 2700 50 0000 C CNN
+F 1 "10u" V 6762 2700 50 0000 C CNN
+F 2 "" H 6900 2700 50 0001 C CNN
+F 3 "" H 6900 2700 50 0001 C CNN
+ 1 6900 2700
+ 0 1 1 0
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5BF210DF
+P 6700 2800
+F 0 "#PWR?" H 6700 2550 50 0001 C CNN
+F 1 "GND" H 6705 2627 50 0000 C CNN
+F 2 "" H 6700 2800 50 0001 C CNN
+F 3 "" H 6700 2800 50 0001 C CNN
+ 1 6700 2800
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 6700 2800 6700 2700
+Wire Wire Line
+ 6700 2600 7050 2600
+Wire Wire Line
+ 6800 2700 6700 2700
+Connection ~ 6700 2700
+Wire Wire Line
+ 6700 2700 6700 2600
+Wire Wire Line
+ 7000 2700 7550 2700
+Wire Wire Line
+ 7550 2600 7250 2600
+$Comp
+L device:R_Small R?
+U 1 1 5BF2746F
+P 9500 1300
+F 0 "R?" H 9350 1350 50 0000 L CNN
+F 1 "0" H 9350 1250 50 0000 L CNN
+F 2 "" H 9500 1300 50 0001 C CNN
+F 3 "" H 9500 1300 50 0001 C CNN
+ 1 9500 1300
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:VSSA #PWR?
+U 1 1 5BF2A251
+P 8650 7500
+F 0 "#PWR?" H 8650 7350 50 0001 C CNN
+F 1 "VSSA" H 8668 7673 50 0000 C CNN
+F 2 "" H 8650 7500 50 0001 C CNN
+F 3 "" H 8650 7500 50 0001 C CNN
+ 1 8650 7500
+ -1 0 0 1
+$EndComp
+Wire Wire Line
+ 8650 7500 8650 7400
+$Comp
+L power:GND #PWR?
+U 1 1 5BF2BAF5
+P 8400 7500
+F 0 "#PWR?" H 8400 7250 50 0001 C CNN
+F 1 "GND" H 8405 7327 50 0000 C CNN
+F 2 "" H 8400 7500 50 0001 C CNN
+F 3 "" H 8400 7500 50 0001 C CNN
+ 1 8400 7500
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 8400 7500 8400 7400
+Connection ~ 8400 7400
+$Comp
+L power:VDDA #PWR?
+U 1 1 5BF3003A
+P 8850 1500
+F 0 "#PWR?" H 8850 1350 50 0001 C CNN
+F 1 "VDDA" H 8867 1673 50 0000 C CNN
+F 2 "" H 8850 1500 50 0001 C CNN
+F 3 "" H 8850 1500 50 0001 C CNN
+ 1 8850 1500
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:+3.3V #PWR?
+U 1 1 5BF32616
+P 8250 1800
+F 0 "#PWR?" H 8250 1650 50 0001 C CNN
+F 1 "+3.3V" H 8265 1973 50 0000 C CNN
+F 2 "" H 8250 1800 50 0001 C CNN
+F 3 "" H 8250 1800 50 0001 C CNN
+ 1 8250 1800
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 8250 1800 8250 1900
+$Comp
+L power:+3.3V #PWR?
+U 1 1 5BF35844
+P 9500 1100
+F 0 "#PWR?" H 9500 950 50 0001 C CNN
+F 1 "+3.3V" H 9515 1273 50 0000 C CNN
+F 2 "" H 9500 1100 50 0001 C CNN
+F 3 "" H 9500 1100 50 0001 C CNN
+ 1 9500 1100
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 9500 1100 9500 1200
+$Comp
+L device:C_Small C?
+U 1 1 5BF38053
+P 9100 1600
+F 0 "C?" H 9008 1554 50 0000 R CNN
+F 1 "100n" H 9008 1645 50 0000 R CNN
+F 2 "" H 9100 1600 50 0001 C CNN
+F 3 "" H 9100 1600 50 0001 C CNN
+ 1 9100 1600
+ -1 0 0 1
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF395B5
+P 9500 1600
+F 0 "C?" H 9592 1646 50 0000 L CNN
+F 1 "10u" H 9592 1555 50 0000 L CNN
+F 2 "" H 9500 1600 50 0001 C CNN
+F 3 "" H 9500 1600 50 0001 C CNN
+ 1 9500 1600
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 9500 1400 9500 1500
+Connection ~ 9500 1500
+Connection ~ 8850 1500
+Wire Wire Line
+ 9100 1500 9500 1500
+Connection ~ 9100 1500
+Wire Wire Line
+ 8850 1500 9100 1500
+$Comp
+L power:VSSA #PWR?
+U 1 1 5BF4D7F0
+P 9500 1800
+F 0 "#PWR?" H 9500 1650 50 0001 C CNN
+F 1 "VSSA" H 9518 1973 50 0000 C CNN
+F 2 "" H 9500 1800 50 0001 C CNN
+F 3 "" H 9500 1800 50 0001 C CNN
+ 1 9500 1800
+ -1 0 0 1
+$EndComp
+Wire Wire Line
+ 9500 1800 9500 1700
+Wire Wire Line
+ 8450 7400 8550 7400
+Wire Wire Line
+ 8400 7400 8450 7400
+Connection ~ 8450 7400
+Wire Wire Line
+ 8350 7400 8250 7400
+Wire Wire Line
+ 8400 7400 8350 7400
+Connection ~ 8350 7400
+Wire Wire Line
+ 8750 1900 8650 1900
+Connection ~ 8650 1900
+Wire Wire Line
+ 8650 1900 8550 1900
+Connection ~ 8550 1900
+Wire Wire Line
+ 8550 1900 8450 1900
+Connection ~ 8450 1900
+Wire Wire Line
+ 8450 1900 8350 1900
+Wire Wire Line
+ 8350 1900 8250 1900
+Connection ~ 8350 1900
+Connection ~ 8250 1900
+$Comp
+L MCU_ST_STM32F4:STM32F407VETx U?
+U 1 1 5BEEABF3
+P 8450 4600
+F 0 "U?" H 7750 7150 50 0000 L CNN
+F 1 "STM32F407VETx" H 8950 7150 50 0000 L CNN
+F 2 "Package_QFP:LQFP-100_14x14mm_P0.5mm" H 7750 2000 50 0001 R CNN
+F 3 "" H 8450 4600 50 0001 C CNN
+ 1 8450 4600
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 9500 1700 9100 1700
+Connection ~ 9500 1700
+Wire Wire Line
+ 8850 1500 8850 1900
+$Comp
+L power:VDDA #PWR?
+U 1 1 5BF5AE28
+P 7300 2800
+F 0 "#PWR?" H 7300 2650 50 0001 C CNN
+F 1 "VDDA" V 7318 2928 50 0000 L CNN
+F 2 "" H 7300 2800 50 0001 C CNN
+F 3 "" H 7300 2800 50 0001 C CNN
+ 1 7300 2800
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5BF5BB39
+P 7400 2800
+F 0 "R?" V 7500 2750 50 0000 C CNN
+F 1 "0" V 7500 2900 50 0000 C CNN
+F 2 "" H 7400 2800 50 0001 C CNN
+F 3 "" H 7400 2800 50 0001 C CNN
+ 1 7400 2800
+ 0 1 1 0
+$EndComp
+Wire Wire Line
+ 7500 2800 7550 2800
+$Comp
+L power:+3.3V #PWR?
+U 1 1 5BF610A9
+P 1550 1050
+F 0 "#PWR?" H 1550 900 50 0001 C CNN
+F 1 "+3.3V" H 1565 1223 50 0000 C CNN
+F 2 "" H 1550 1050 50 0001 C CNN
+F 3 "" H 1550 1050 50 0001 C CNN
+ 1 1550 1050
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5BF617B4
+P 1550 1250
+F 0 "#PWR?" H 1550 1000 50 0001 C CNN
+F 1 "GND" H 1555 1077 50 0000 C CNN
+F 2 "" H 1550 1250 50 0001 C CNN
+F 3 "" H 1550 1250 50 0001 C CNN
+ 1 1550 1250
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF62211
+P 1550 1150
+F 0 "C?" H 1642 1196 50 0000 L CNN
+F 1 "100n" H 1642 1105 50 0000 L CNN
+F 2 "" H 1550 1150 50 0001 C CNN
+F 3 "" H 1550 1150 50 0001 C CNN
+ 1 1550 1150
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF6342B
+P 1950 1150
+F 0 "C?" H 2042 1196 50 0000 L CNN
+F 1 "100n" H 2042 1105 50 0000 L CNN
+F 2 "" H 1950 1150 50 0001 C CNN
+F 3 "" H 1950 1150 50 0001 C CNN
+ 1 1950 1150
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF645FD
+P 2350 1150
+F 0 "C?" H 2442 1196 50 0000 L CNN
+F 1 "100n" H 2442 1105 50 0000 L CNN
+F 2 "" H 2350 1150 50 0001 C CNN
+F 3 "" H 2350 1150 50 0001 C CNN
+ 1 2350 1150
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF6483B
+P 2750 1150
+F 0 "C?" H 2842 1196 50 0000 L CNN
+F 1 "100n" H 2842 1105 50 0000 L CNN
+F 2 "" H 2750 1150 50 0001 C CNN
+F 3 "" H 2750 1150 50 0001 C CNN
+ 1 2750 1150
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF65555
+P 3150 1150
+F 0 "C?" H 3242 1196 50 0000 L CNN
+F 1 "100n" H 3242 1105 50 0000 L CNN
+F 2 "" H 3150 1150 50 0001 C CNN
+F 3 "" H 3150 1150 50 0001 C CNN
+ 1 3150 1150
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF65AAF
+P 3550 1150
+F 0 "C?" H 3642 1196 50 0000 L CNN
+F 1 "100n" H 3642 1105 50 0000 L CNN
+F 2 "" H 3550 1150 50 0001 C CNN
+F 3 "" H 3550 1150 50 0001 C CNN
+ 1 3550 1150
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 3550 1050 3150 1050
+Connection ~ 1550 1050
+Connection ~ 1950 1050
+Wire Wire Line
+ 1950 1050 1550 1050
+Connection ~ 2350 1050
+Wire Wire Line
+ 2350 1050 1950 1050
+Connection ~ 2750 1050
+Wire Wire Line
+ 2750 1050 2350 1050
+Connection ~ 3150 1050
+Wire Wire Line
+ 3150 1050 2750 1050
+Wire Wire Line
+ 1550 1250 1950 1250
+Connection ~ 1550 1250
+Connection ~ 1950 1250
+Wire Wire Line
+ 1950 1250 2350 1250
+Connection ~ 2350 1250
+Wire Wire Line
+ 2350 1250 2750 1250
+Connection ~ 2750 1250
+Wire Wire Line
+ 2750 1250 3150 1250
+Connection ~ 3150 1250
+Wire Wire Line
+ 3150 1250 3550 1250
+$Comp
+L device:Battery_Cell BT?
+U 1 1 5BF6C982
+P 7750 1650
+F 0 "BT?" H 7500 1750 50 0000 L CNN
+F 1 "CR2032" H 7300 1650 50 0000 L CNN
+F 2 "" V 7750 1710 50 0001 C CNN
+F 3 "" V 7750 1710 50 0001 C CNN
+ 1 7750 1650
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5BF6E562
+P 7750 1750
+F 0 "#PWR?" H 7750 1500 50 0001 C CNN
+F 1 "GND" H 7755 1577 50 0000 C CNN
+F 2 "" H 7750 1750 50 0001 C CNN
+F 3 "" H 7750 1750 50 0001 C CNN
+ 1 7750 1750
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 7750 1450 8150 1450
+Wire Wire Line
+ 8150 1450 8150 1900
+Text Label 10100 3500 2 50 ~ 0
+SWDIO
+Text Label 10100 3600 2 50 ~ 0
+SWCLK
+Wire Wire Line
+ 10100 3600 9350 3600
+Wire Wire Line
+ 10100 3500 9350 3500
+$Comp
+L Connector_Generic:Conn_01x04 J?
+U 1 1 5BF8388D
+P 1550 4800
+F 0 "J?" H 1470 5117 50 0000 C CNN
+F 1 "SWD" H 1470 5026 50 0000 C CNN
+F 2 "" H 1550 4800 50 0001 C CNN
+F 3 "~" H 1550 4800 50 0001 C CNN
+ 1 1550 4800
+ -1 0 0 -1
+$EndComp
+Text Label 2100 5000 2 50 ~ 0
+SWDIO
+Text Label 2100 4800 2 50 ~ 0
+SWCLK
+$Comp
+L power:GND #PWR?
+U 1 1 5BF9410F
+P 2200 4900
+F 0 "#PWR?" H 2200 4650 50 0001 C CNN
+F 1 "GND" V 2205 4772 50 0000 R CNN
+F 2 "" H 2200 4900 50 0001 C CNN
+F 3 "" H 2200 4900 50 0001 C CNN
+ 1 2200 4900
+ 0 -1 -1 0
+$EndComp
+Wire Wire Line
+ 2200 4900 1750 4900
+Wire Wire Line
+ 1750 4800 2100 4800
+Wire Wire Line
+ 2200 4700 1750 4700
+Wire Wire Line
+ 1750 5000 2100 5000
+Text Label 10100 3100 2 50 ~ 0
+DBGH_TX
+Text Label 10100 3200 2 50 ~ 0
+DBGH_RX
+Wire Wire Line
+ 10100 3200 9350 3200
+Wire Wire Line
+ 10100 3100 9350 3100
+$Comp
+L Connector_Generic:Conn_01x04 J?
+U 1 1 5BFBEF9F
+P 2750 4800
+F 0 "J?" H 2670 5117 50 0000 C CNN
+F 1 "UART_HOST" H 2670 5026 50 0000 C CNN
+F 2 "" H 2750 4800 50 0001 C CNN
+F 3 "~" H 2750 4800 50 0001 C CNN
+ 1 2750 4800
+ -1 0 0 -1
+$EndComp
+$Comp
+L power:VBUS #PWR?
+U 1 1 5BFC1836
+P 3450 4700
+F 0 "#PWR?" H 3450 4550 50 0001 C CNN
+F 1 "VBUS" V 3465 4828 50 0000 L CNN
+F 2 "" H 3450 4700 50 0001 C CNN
+F 3 "" H 3450 4700 50 0001 C CNN
+ 1 3450 4700
+ 0 1 1 0
+$EndComp
+$Comp
+L power:+3.3V #PWR?
+U 1 1 5BF8F4B2
+P 2200 4700
+F 0 "#PWR?" H 2200 4550 50 0001 C CNN
+F 1 "+3.3V" V 2215 4828 50 0000 L CNN
+F 2 "" H 2200 4700 50 0001 C CNN
+F 3 "" H 2200 4700 50 0001 C CNN
+ 1 2200 4700
+ 0 1 1 0
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5BFC580C
+P 3450 4800
+F 0 "#PWR?" H 3450 4550 50 0001 C CNN
+F 1 "GND" V 3455 4672 50 0000 R CNN
+F 2 "" H 3450 4800 50 0001 C CNN
+F 3 "" H 3450 4800 50 0001 C CNN
+ 1 3450 4800
+ 0 -1 -1 0
+$EndComp
+Wire Wire Line
+ 3450 4800 2950 4800
+Wire Wire Line
+ 3450 4700 2950 4700
+$Comp
+L Connector_Generic:Conn_01x04 J?
+U 1 1 5BFCCF0F
+P 3950 4800
+F 0 "J?" H 3870 5117 50 0000 C CNN
+F 1 "UART_DEVICE" H 3870 5026 50 0000 C CNN
+F 2 "" H 3950 4800 50 0001 C CNN
+F 3 "~" H 3950 4800 50 0001 C CNN
+ 1 3950 4800
+ -1 0 0 -1
+$EndComp
+$Comp
+L power:VBUS #PWR?
+U 1 1 5BFD18DB
+P 4650 4700
+F 0 "#PWR?" H 4650 4550 50 0001 C CNN
+F 1 "VBUS" V 4665 4828 50 0000 L CNN
+F 2 "" H 4650 4700 50 0001 C CNN
+F 3 "" H 4650 4700 50 0001 C CNN
+ 1 4650 4700
+ 0 1 1 0
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5BFD27A6
+P 4650 4800
+F 0 "#PWR?" H 4650 4550 50 0001 C CNN
+F 1 "GND" V 4655 4672 50 0000 R CNN
+F 2 "" H 4650 4800 50 0001 C CNN
+F 3 "" H 4650 4800 50 0001 C CNN
+ 1 4650 4800
+ 0 -1 -1 0
+$EndComp
+Wire Wire Line
+ 4650 4800 4150 4800
+Wire Wire Line
+ 4150 4700 4650 4700
+Text Label 3300 4900 2 50 ~ 0
+DBGH_RX
+Text Label 3300 5000 2 50 ~ 0
+DBGH_TX
+Text Label 4500 4900 2 50 ~ 0
+DBGD_RX
+Text Label 4500 5000 2 50 ~ 0
+DBGD_TX
+Wire Wire Line
+ 4500 5000 4150 5000
+Wire Wire Line
+ 4150 4900 4500 4900
+Wire Wire Line
+ 3300 5000 2950 5000
+Wire Wire Line
+ 2950 4900 3300 4900
+$Comp
+L components:FE1.1s U?
+U 1 1 5BFFC98A
+P 3500 7500
+F 0 "U?" H 2750 8150 50 0000 C CNN
+F 1 "FE1.1s" H 4150 8150 50 0000 C CNN
+F 2 "" H 3500 7500 50 0001 C CNN
+F 3 "" H 3500 7500 50 0001 C CNN
+ 1 3500 7500
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 3600 6300 3600 6700
+Wire Wire Line
+ 3500 6300 3500 6700
+Wire Wire Line
+ 3000 9200 3000 8400
+Wire Wire Line
+ 2000 9200 3000 9200
+Wire Wire Line
+ 3100 8400 3100 9300
+Wire Wire Line
+ 2000 9300 3100 9300
+$Comp
+L conn:USB_A J?
+U 1 1 5C01D6A6
+P 1700 10400
+F 0 "J?" H 1500 10850 50 0000 L CNN
+F 1 "USB_A" H 1500 10750 50 0000 L CNN
+F 2 "" H 1850 10350 50 0001 C CNN
+F 3 "" H 1850 10350 50 0001 C CNN
+ 1 1700 10400
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5C01EA78
+P 1700 10900
+F 0 "#PWR?" H 1700 10650 50 0001 C CNN
+F 1 "GND" H 1705 10727 50 0000 C CNN
+F 2 "" H 1700 10900 50 0001 C CNN
+F 3 "" H 1700 10900 50 0001 C CNN
+ 1 1700 10900
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 1700 10900 1700 10800
+Wire Wire Line
+ 1600 10800 1700 10800
+Connection ~ 1700 10800
+Wire Wire Line
+ 2000 10400 3300 10400
+Wire Wire Line
+ 3300 10400 3300 8400
+Wire Wire Line
+ 2000 10500 3400 10500
+Wire Wire Line
+ 3400 10500 3400 8400
+Wire Wire Line
+ 4500 7300 4500 7400
+Wire Wire Line
+ 4500 7500 4500 7600
+$Comp
+L device:C_Small C?
+U 1 1 5C047824
+P 5050 7600
+F 0 "C?" V 5100 7700 50 0000 C CNN
+F 1 "10u" V 4912 7600 50 0000 C CNN
+F 2 "" H 5050 7600 50 0001 C CNN
+F 3 "" H 5050 7600 50 0001 C CNN
+ 1 5050 7600
+ 0 1 1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5C048AFF
+P 5200 7400
+F 0 "C?" V 4971 7400 50 0000 C CNN
+F 1 "10u" V 5062 7400 50 0000 C CNN
+F 2 "" H 5200 7400 50 0001 C CNN
+F 3 "" H 5200 7400 50 0001 C CNN
+ 1 5200 7400
+ 0 1 1 0
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5C049AB0
+P 5300 7800
+F 0 "#PWR?" H 5300 7550 50 0001 C CNN
+F 1 "GND" H 5305 7627 50 0000 C CNN
+F 2 "" H 5300 7800 50 0001 C CNN
+F 3 "" H 5300 7800 50 0001 C CNN
+ 1 5300 7800
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 5300 7800 4500 7800
+Wire Wire Line
+ 5300 7800 5300 7600
+Connection ~ 5300 7800
+Wire Wire Line
+ 5150 7600 5300 7600
+Connection ~ 5300 7600
+Wire Wire Line
+ 5300 7600 5300 7400
+Wire Wire Line
+ 4950 7600 4500 7600
+Connection ~ 4500 7600
+Wire Wire Line
+ 4500 7400 5100 7400
+Connection ~ 4500 7400
+Wire Wire Line
+ 4500 7200 4500 7100
+$Comp
+L power:VBUS #PWR?
+U 1 1 5C06BD77
+P 4500 7000
+F 0 "#PWR?" H 4500 6850 50 0001 C CNN
+F 1 "VBUS" H 4515 7173 50 0000 C CNN
+F 2 "" H 4500 7000 50 0001 C CNN
+F 3 "" H 4500 7000 50 0001 C CNN
+ 1 4500 7000
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 4500 7000 4500 7100
+Connection ~ 4500 7100
+$Comp
+L device:Crystal_GND24_Small Y?
+U 1 1 5C073CEB
+P 2000 7100
+F 0 "Y?" V 1954 7266 50 0000 L CNN
+F 1 "12MHz" V 2045 7266 50 0000 L CNN
+F 2 "" H 2000 7100 50 0001 C CNN
+F 3 "" H 2000 7100 50 0001 C CNN
+ 1 2000 7100
+ 0 1 1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5C07723C
+P 1650 7200
+F 0 "C?" V 1750 7300 50 0000 C CNN
+F 1 "22p" V 1800 7200 50 0000 C CNN
+F 2 "" H 1650 7200 50 0001 C CNN
+F 3 "" H 1650 7200 50 0001 C CNN
+ 1 1650 7200
+ 0 1 1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5C079071
+P 1650 7000
+F 0 "C?" V 1550 7100 50 0000 C CNN
+F 1 "22p" V 1512 7000 50 0000 C CNN
+F 2 "" H 1650 7000 50 0001 C CNN
+F 3 "" H 1650 7000 50 0001 C CNN
+ 1 1650 7000
+ 0 1 1 0
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5C07C20B
+P 1450 7500
+F 0 "#PWR?" H 1450 7250 50 0001 C CNN
+F 1 "GND" H 1455 7327 50 0000 C CNN
+F 2 "" H 1450 7500 50 0001 C CNN
+F 3 "" H 1450 7500 50 0001 C CNN
+ 1 1450 7500
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 1450 7500 1450 7400
+Wire Wire Line
+ 1450 7000 1550 7000
+Wire Wire Line
+ 1550 7200 1450 7200
+Connection ~ 1450 7200
+Wire Wire Line
+ 1450 7200 1450 7000
+Wire Wire Line
+ 1750 7200 2000 7200
+Connection ~ 2000 7200
+Wire Wire Line
+ 2000 7200 2500 7200
+Wire Wire Line
+ 2500 7100 2300 7100
+Wire Wire Line
+ 2300 7100 2300 7000
+Wire Wire Line
+ 2300 7000 2000 7000
+Connection ~ 2000 7000
+Wire Wire Line
+ 2000 7000 1750 7000
+$Comp
+L device:R_Small R?
+U 1 1 5C095FA0
+P 2300 7400
+F 0 "R?" V 2400 7400 50 0000 C CNN
+F 1 "2k7" V 2195 7400 50 0000 C CNN
+F 2 "" H 2300 7400 50 0001 C CNN
+F 3 "" H 2300 7400 50 0001 C CNN
+ 1 2300 7400
+ 0 1 1 0
+$EndComp
+Wire Wire Line
+ 2200 7400 2000 7400
+Connection ~ 1450 7400
+Wire Wire Line
+ 1450 7400 1450 7200
+Wire Wire Line
+ 2500 7400 2400 7400
+Wire Wire Line
+ 2500 7600 2000 7600
+Wire Wire Line
+ 2000 7600 2000 7400
+Connection ~ 2000 7400
+Wire Wire Line
+ 2000 7400 1450 7400
+Text Label 4600 7400 0 50 ~ 0
+3V3_HUB
+Text Label 2100 7700 0 50 ~ 0
+3V3_HUB
+Wire Wire Line
+ 2100 7700 2500 7700
+NoConn ~ 2500 7800
+Wire Wire Line
+ 2000 7600 2000 7900
+Wire Wire Line
+ 2000 7900 2500 7900
+Connection ~ 2000 7600
+$Comp
+L device:R_Small R?
+U 1 1 5C0F41D6
+P 1900 8000
+F 0 "R?" V 2000 8000 50 0000 C CNN
+F 1 "10k" V 1795 8000 50 0000 C CNN
+F 2 "" H 1900 8000 50 0001 C CNN
+F 3 "" H 1900 8000 50 0001 C CNN
+ 1 1900 8000
+ 0 1 1 0
+$EndComp
+Text Label 1450 8000 0 50 ~ 0
+3V3_HUB
+Wire Wire Line
+ 1450 8000 1800 8000
+Wire Wire Line
+ 2000 8000 2200 8000
+Text Label 1700 8250 0 50 ~ 0
+HUB_NRST
+Wire Wire Line
+ 1700 8250 2200 8250
+Wire Wire Line
+ 2200 8250 2200 8000
+Connection ~ 2200 8000
+Wire Wire Line
+ 2200 8000 2500 8000
+Text Label 10100 2700 2 50 ~ 0
+HUB_NRST
+Wire Wire Line
+ 10100 2700 9350 2700
+$Comp
+L Connector_Generic:Conn_02x05_Odd_Even J?
+U 1 1 5C134723
+P 4150 9550
+F 0 "J?" H 4200 9967 50 0000 C CNN
+F 1 "USB_SPARE" H 4200 9876 50 0000 C CNN
+F 2 "" H 4150 9550 50 0001 C CNN
+F 3 "~" H 4150 9550 50 0001 C CNN
+ 1 4150 9550
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:VBUS #PWR?
+U 1 1 5C17F16B
+P 4200 9000
+F 0 "#PWR?" H 4200 8850 50 0001 C CNN
+F 1 "VBUS" H 4215 9173 50 0000 C CNN
+F 2 "" H 4200 9000 50 0001 C CNN
+F 3 "" H 4200 9000 50 0001 C CNN
+ 1 4200 9000
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 4200 9000 3950 9000
+Wire Wire Line
+ 3950 9000 3950 9350
+Wire Wire Line
+ 4200 9000 4450 9000
+Wire Wire Line
+ 4450 9000 4450 9350
+Connection ~ 4200 9000
+$Comp
+L power:GND #PWR?
+U 1 1 5C18FF7C
+P 4200 9950
+F 0 "#PWR?" H 4200 9700 50 0001 C CNN
+F 1 "GND" H 4205 9777 50 0000 C CNN
+F 2 "" H 4200 9950 50 0001 C CNN
+F 3 "" H 4200 9950 50 0001 C CNN
+ 1 4200 9950
+ 1 0 0 -1
+$EndComp
+NoConn ~ 3950 9750
+NoConn ~ 4450 9750
+Wire Wire Line
+ 3950 9650 3850 9650
+Wire Wire Line
+ 3850 9650 3850 9950
+Wire Wire Line
+ 3850 9950 4200 9950
+Wire Wire Line
+ 4550 9950 4550 9650
+Wire Wire Line
+ 4550 9650 4450 9650
+Connection ~ 4200 9950
+Wire Wire Line
+ 4200 9950 4550 9950
+Wire Wire Line
+ 3950 9450 3700 9450
+Wire Wire Line
+ 3700 9450 3700 8400
+Wire Wire Line
+ 3600 8400 3600 9550
+Wire Wire Line
+ 3600 9550 3950 9550
+Wire Wire Line
+ 4450 9450 4650 9450
+Wire Wire Line
+ 4650 9450 4650 8500
+Wire Wire Line
+ 4650 8500 4000 8500
+Wire Wire Line
+ 4000 8500 4000 8400
+Wire Wire Line
+ 3900 8400 3900 8600
+Wire Wire Line
+ 3900 8600 4550 8600
+Wire Wire Line
+ 4550 8600 4550 9550
+Wire Wire Line
+ 4550 9550 4450 9550
+$Comp
+L device:Speaker_Crystal LS?
+U 1 1 5C238571
+P 7650 10250
+F 0 "LS?" H 7617 9833 50 0000 C CNN
+F 1 "12mm passive piezo" H 7617 9924 50 0000 C CNN
+F 2 "" H 7615 10200 50 0001 C CNN
+F 3 "" H 7615 10200 50 0001 C CNN
+ 1 7650 10250
+ -1 0 0 1
+$EndComp
+$Comp
+L transistors:2N7002 Q?
+U 1 1 5C23FA3A
+P 9350 9700
+F 0 "Q?" H 9556 9654 50 0000 L CNN
+F 1 "AO3400" H 9556 9745 50 0000 L CNN
+F 2 "TO_SOT_Packages_SMD:SOT-23" H 9550 9625 50 0001 L CIN
+F 3 "https://www.fairchildsemi.com/datasheets/2N/2N7002.pdf" H 9350 9700 50 0001 L CNN
+ 1 9350 9700
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C249B1C
+P 7500 9250
+F 0 "D?" V 7492 9132 50 0000 R CNN
+F 1 "Ice blue" V 7447 9133 50 0001 R CNN
+F 2 "" H 7500 9250 50 0001 C CNN
+F 3 "" H 7500 9250 50 0001 C CNN
+ 1 7500 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C25931E
+P 7850 9250
+F 0 "D?" V 7842 9132 50 0000 R CNN
+F 1 "Ice blue" V 7797 9133 50 0001 R CNN
+F 2 "" H 7850 9250 50 0001 C CNN
+F 3 "" H 7850 9250 50 0001 C CNN
+ 1 7850 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C25AEAB
+P 8200 9250
+F 0 "D?" V 8192 9132 50 0000 R CNN
+F 1 "Ice blue" V 8147 9133 50 0001 R CNN
+F 2 "" H 8200 9250 50 0001 C CNN
+F 3 "" H 8200 9250 50 0001 C CNN
+ 1 8200 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C25B671
+P 8550 9250
+F 0 "D?" V 8542 9132 50 0000 R CNN
+F 1 "Ice blue" V 8497 9133 50 0001 R CNN
+F 2 "" H 8550 9250 50 0001 C CNN
+F 3 "" H 8550 9250 50 0001 C CNN
+ 1 8550 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C25C2E7
+P 8900 9250
+F 0 "D?" V 8892 9132 50 0000 R CNN
+F 1 "Ice blue" V 8847 9133 50 0001 R CNN
+F 2 "" H 8900 9250 50 0001 C CNN
+F 3 "" H 8900 9250 50 0001 C CNN
+ 1 8900 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C25CA14
+P 9250 9250
+F 0 "D?" V 9288 9132 50 0000 R CNN
+F 1 "ice blue" V 9197 9132 50 0000 R CNN
+F 2 "" H 9250 9250 50 0001 C CNN
+F 3 "" H 9250 9250 50 0001 C CNN
+ 1 9250 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C25E0F0
+P 7500 8900
+F 0 "R?" H 7559 8946 50 0000 L CNN
+F 1 "100" H 7559 8855 50 0000 L CNN
+F 2 "" H 7500 8900 50 0001 C CNN
+F 3 "" H 7500 8900 50 0001 C CNN
+ 1 7500 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C25EB0C
+P 7850 8900
+F 0 "R?" H 7909 8946 50 0000 L CNN
+F 1 "100" H 7909 8855 50 0000 L CNN
+F 2 "" H 7850 8900 50 0001 C CNN
+F 3 "" H 7850 8900 50 0001 C CNN
+ 1 7850 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C25EC8A
+P 8200 8900
+F 0 "R?" H 8259 8946 50 0000 L CNN
+F 1 "100" H 8259 8855 50 0000 L CNN
+F 2 "" H 8200 8900 50 0001 C CNN
+F 3 "" H 8200 8900 50 0001 C CNN
+ 1 8200 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C25F0FB
+P 8550 8900
+F 0 "R?" H 8609 8946 50 0000 L CNN
+F 1 "100" H 8609 8855 50 0000 L CNN
+F 2 "" H 8550 8900 50 0001 C CNN
+F 3 "" H 8550 8900 50 0001 C CNN
+ 1 8550 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C25F439
+P 8900 8900
+F 0 "R?" H 8959 8946 50 0000 L CNN
+F 1 "100" H 8959 8855 50 0000 L CNN
+F 2 "" H 8900 8900 50 0001 C CNN
+F 3 "" H 8900 8900 50 0001 C CNN
+ 1 8900 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C26016A
+P 9250 8900
+F 0 "R?" H 9309 8946 50 0000 L CNN
+F 1 "100" H 9309 8855 50 0000 L CNN
+F 2 "" H 9250 8900 50 0001 C CNN
+F 3 "" H 9250 8900 50 0001 C CNN
+ 1 9250 8900
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 9250 9500 9250 9400
+Wire Wire Line
+ 9250 9400 8900 9400
+Connection ~ 9250 9400
+Connection ~ 7850 9400
+Wire Wire Line
+ 7850 9400 7500 9400
+Connection ~ 8200 9400
+Wire Wire Line
+ 8200 9400 7850 9400
+Connection ~ 8550 9400
+Wire Wire Line
+ 8550 9400 8200 9400
+Connection ~ 8900 9400
+Wire Wire Line
+ 8900 9400 8550 9400
+Wire Wire Line
+ 7500 9100 7500 9000
+Wire Wire Line
+ 7850 9000 7850 9100
+Wire Wire Line
+ 8200 9000 8200 9100
+Wire Wire Line
+ 8550 9000 8550 9100
+Wire Wire Line
+ 8900 9000 8900 9100
+Wire Wire Line
+ 9250 9000 9250 9100
+$Comp
+L power:VBUS #PWR?
+U 1 1 5C2C37A2
+P 9250 8700
+F 0 "#PWR?" H 9250 8550 50 0001 C CNN
+F 1 "VBUS" H 9265 8873 50 0000 C CNN
+F 2 "" H 9250 8700 50 0001 C CNN
+F 3 "" H 9250 8700 50 0001 C CNN
+ 1 9250 8700
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 9250 8700 9250 8800
+Wire Wire Line
+ 9250 8800 8900 8800
+Connection ~ 9250 8800
+Connection ~ 7850 8800
+Wire Wire Line
+ 7850 8800 7500 8800
+Connection ~ 8200 8800
+Wire Wire Line
+ 8200 8800 7850 8800
+Connection ~ 8550 8800
+Wire Wire Line
+ 8550 8800 8200 8800
+Connection ~ 8900 8800
+Wire Wire Line
+ 8900 8800 8550 8800
+$Comp
+L power:GND #PWR?
+U 1 1 5C2D1E2D
+P 9250 10000
+F 0 "#PWR?" H 9250 9750 50 0001 C CNN
+F 1 "GND" H 9255 9827 50 0000 C CNN
+F 2 "" H 9250 10000 50 0001 C CNN
+F 3 "" H 9250 10000 50 0001 C CNN
+ 1 9250 10000
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 9250 10000 9250 9900
+$Comp
+L transistors:2N7002 Q?
+U 1 1 5C2E1C85
+P 11650 9700
+F 0 "Q?" H 11856 9654 50 0000 L CNN
+F 1 "AO3400" H 11856 9745 50 0000 L CNN
+F 2 "TO_SOT_Packages_SMD:SOT-23" H 11850 9625 50 0001 L CIN
+F 3 "https://www.fairchildsemi.com/datasheets/2N/2N7002.pdf" H 11650 9700 50 0001 L CNN
+ 1 11650 9700
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C2E1C8C
+P 9800 9250
+F 0 "D?" V 9792 9132 50 0000 R CNN
+F 1 "pink" V 9747 9133 50 0001 R CNN
+F 2 "" H 9800 9250 50 0001 C CNN
+F 3 "" H 9800 9250 50 0001 C CNN
+ 1 9800 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C2E1C93
+P 10150 9250
+F 0 "D?" V 10142 9132 50 0000 R CNN
+F 1 "pink" V 10097 9133 50 0001 R CNN
+F 2 "" H 10150 9250 50 0001 C CNN
+F 3 "" H 10150 9250 50 0001 C CNN
+ 1 10150 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C2E1C9A
+P 10500 9250
+F 0 "D?" V 10492 9132 50 0000 R CNN
+F 1 "pink" V 10447 9133 50 0001 R CNN
+F 2 "" H 10500 9250 50 0001 C CNN
+F 3 "" H 10500 9250 50 0001 C CNN
+ 1 10500 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C2E1CA1
+P 10850 9250
+F 0 "D?" V 10842 9132 50 0000 R CNN
+F 1 "pink" V 10797 9133 50 0001 R CNN
+F 2 "" H 10850 9250 50 0001 C CNN
+F 3 "" H 10850 9250 50 0001 C CNN
+ 1 10850 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C2E1CA8
+P 11200 9250
+F 0 "D?" V 11192 9132 50 0000 R CNN
+F 1 "pink" V 11147 9133 50 0001 R CNN
+F 2 "" H 11200 9250 50 0001 C CNN
+F 3 "" H 11200 9250 50 0001 C CNN
+ 1 11200 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C2E1CAF
+P 11550 9250
+F 0 "D?" V 11588 9132 50 0000 R CNN
+F 1 "pink" V 11497 9132 50 0000 R CNN
+F 2 "" H 11550 9250 50 0001 C CNN
+F 3 "" H 11550 9250 50 0001 C CNN
+ 1 11550 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C2E1CB6
+P 9800 8900
+F 0 "R?" H 9859 8946 50 0000 L CNN
+F 1 "100" H 9859 8855 50 0000 L CNN
+F 2 "" H 9800 8900 50 0001 C CNN
+F 3 "" H 9800 8900 50 0001 C CNN
+ 1 9800 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C2E1CBD
+P 10150 8900
+F 0 "R?" H 10209 8946 50 0000 L CNN
+F 1 "100" H 10209 8855 50 0000 L CNN
+F 2 "" H 10150 8900 50 0001 C CNN
+F 3 "" H 10150 8900 50 0001 C CNN
+ 1 10150 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C2E1CC4
+P 10500 8900
+F 0 "R?" H 10559 8946 50 0000 L CNN
+F 1 "100" H 10559 8855 50 0000 L CNN
+F 2 "" H 10500 8900 50 0001 C CNN
+F 3 "" H 10500 8900 50 0001 C CNN
+ 1 10500 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C2E1CCB
+P 10850 8900
+F 0 "R?" H 10909 8946 50 0000 L CNN
+F 1 "100" H 10909 8855 50 0000 L CNN
+F 2 "" H 10850 8900 50 0001 C CNN
+F 3 "" H 10850 8900 50 0001 C CNN
+ 1 10850 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C2E1CD2
+P 11200 8900
+F 0 "R?" H 11259 8946 50 0000 L CNN
+F 1 "100" H 11259 8855 50 0000 L CNN
+F 2 "" H 11200 8900 50 0001 C CNN
+F 3 "" H 11200 8900 50 0001 C CNN
+ 1 11200 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C2E1CD9
+P 11550 8900
+F 0 "R?" H 11609 8946 50 0000 L CNN
+F 1 "100" H 11609 8855 50 0000 L CNN
+F 2 "" H 11550 8900 50 0001 C CNN
+F 3 "" H 11550 8900 50 0001 C CNN
+ 1 11550 8900
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 11550 9500 11550 9400
+Wire Wire Line
+ 11550 9400 11200 9400
+Connection ~ 11550 9400
+Connection ~ 10150 9400
+Wire Wire Line
+ 10150 9400 9800 9400
+Connection ~ 10500 9400
+Wire Wire Line
+ 10500 9400 10150 9400
+Connection ~ 10850 9400
+Wire Wire Line
+ 10850 9400 10500 9400
+Connection ~ 11200 9400
+Wire Wire Line
+ 11200 9400 10850 9400
+Wire Wire Line
+ 9800 9100 9800 9000
+Wire Wire Line
+ 10150 9000 10150 9100
+Wire Wire Line
+ 10500 9000 10500 9100
+Wire Wire Line
+ 10850 9000 10850 9100
+Wire Wire Line
+ 11200 9000 11200 9100
+Wire Wire Line
+ 11550 9000 11550 9100
+$Comp
+L power:VBUS #PWR?
+U 1 1 5C2E1CF1
+P 11550 8700
+F 0 "#PWR?" H 11550 8550 50 0001 C CNN
+F 1 "VBUS" H 11565 8873 50 0000 C CNN
+F 2 "" H 11550 8700 50 0001 C CNN
+F 3 "" H 11550 8700 50 0001 C CNN
+ 1 11550 8700
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 11550 8700 11550 8800
+Wire Wire Line
+ 11550 8800 11200 8800
+Connection ~ 11550 8800
+Connection ~ 10150 8800
+Wire Wire Line
+ 10150 8800 9800 8800
+Connection ~ 10500 8800
+Wire Wire Line
+ 10500 8800 10150 8800
+Connection ~ 10850 8800
+Wire Wire Line
+ 10850 8800 10500 8800
+Connection ~ 11200 8800
+Wire Wire Line
+ 11200 8800 10850 8800
+$Comp
+L power:GND #PWR?
+U 1 1 5C2E1D02
+P 11550 10000
+F 0 "#PWR?" H 11550 9750 50 0001 C CNN
+F 1 "GND" H 11555 9827 50 0000 C CNN
+F 2 "" H 11550 10000 50 0001 C CNN
+F 3 "" H 11550 10000 50 0001 C CNN
+ 1 11550 10000
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 11550 10000 11550 9900
+Text Label 10250 9700 2 50 ~ 0
+ALARM_LED_BLUE
+Wire Wire Line
+ 10250 9700 9550 9700
+Text Label 12550 9700 2 50 ~ 0
+ALARM_LED_PINK
+Wire Wire Line
+ 12550 9700 11850 9700
+Text Label 10100 2800 2 50 ~ 0
+ALARM_LED_BLUE
+Text Label 10100 2900 2 50 ~ 0
+ALARM_LED_PINK
+Wire Wire Line
+ 10100 2900 9350 2900
+Wire Wire Line
+ 9350 2800 10100 2800
+$Comp
+L transistors:2N7002 Q?
+U 1 1 5C35C82C
+P 8050 10550
+F 0 "Q?" H 8256 10504 50 0000 L CNN
+F 1 "AO3400" H 8256 10595 50 0000 L CNN
+F 2 "TO_SOT_Packages_SMD:SOT-23" H 8250 10475 50 0001 L CIN
+F 3 "https://www.fairchildsemi.com/datasheets/2N/2N7002.pdf" H 8050 10550 50 0001 L CNN
+ 1 8050 10550
+ -1 0 0 1
+$EndComp
+Wire Wire Line
+ 7950 10350 7950 10300
+Wire Wire Line
+ 7950 10250 7850 10250
+$Comp
+L device:C_Small C?
+U 1 1 5C36E3E6
+P 8500 10650
+F 0 "C?" H 8592 10696 50 0000 L CNN
+F 1 "100p" H 8592 10605 50 0000 L CNN
+F 2 "" H 8500 10650 50 0001 C CNN
+F 3 "" H 8500 10650 50 0001 C CNN
+ 1 8500 10650
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:VBUS #PWR?
+U 1 1 5C3825D2
+P 7950 10050
+F 0 "#PWR?" H 7950 9900 50 0001 C CNN
+F 1 "VBUS" H 7965 10223 50 0000 C CNN
+F 2 "" H 7950 10050 50 0001 C CNN
+F 3 "" H 7950 10050 50 0001 C CNN
+ 1 7950 10050
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 7850 10150 7950 10150
+Wire Wire Line
+ 7950 10150 7950 10100
+$Comp
+L device:R_Small R?
+U 1 1 5C39507D
+P 8150 10200
+F 0 "R?" H 8209 10246 50 0000 L CNN
+F 1 "100" H 8209 10155 50 0000 L CNN
+F 2 "" H 8150 10200 50 0001 C CNN
+F 3 "" H 8150 10200 50 0001 C CNN
+ 1 8150 10200
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 8150 10100 7950 10100
+Connection ~ 7950 10100
+Wire Wire Line
+ 7950 10100 7950 10050
+Wire Wire Line
+ 8150 10300 7950 10300
+Connection ~ 7950 10300
+Wire Wire Line
+ 7950 10300 7950 10250
+$Comp
+L power:GND #PWR?
+U 1 1 5C3B929C
+P 7950 10850
+F 0 "#PWR?" H 7950 10600 50 0001 C CNN
+F 1 "GND" H 7955 10677 50 0000 C CNN
+F 2 "" H 7950 10850 50 0001 C CNN
+F 3 "" H 7950 10850 50 0001 C CNN
+ 1 7950 10850
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C3BA02E
+P 8800 10550
+F 0 "R?" V 8604 10550 50 0000 C CNN
+F 1 "1k" V 8695 10550 50 0000 C CNN
+F 2 "" H 8800 10550 50 0001 C CNN
+F 3 "" H 8800 10550 50 0001 C CNN
+ 1 8800 10550
+ 0 1 1 0
+$EndComp
+Wire Wire Line
+ 8700 10550 8500 10550
+Connection ~ 8500 10550
+Wire Wire Line
+ 8500 10550 8250 10550
+Wire Wire Line
+ 7950 10750 7950 10850
+Wire Wire Line
+ 7950 10750 8500 10750
+Connection ~ 7950 10750
+Wire Wire Line
+ 8900 10550 9400 10550
+Text Label 9400 10550 2 50 ~ 0
+PIEZO_OUT
+Text Label 10100 4900 2 50 ~ 0
+PIEZO_OUT
+Wire Wire Line
+ 10100 4900 9350 4900
+$Comp
+L device:CP_Small C?
+U 1 1 5C51704D
+P 2350 8750
+F 0 "C?" V 2250 8600 50 0000 C CNN
+F 1 "47u" V 2216 8750 50 0000 C CNN
+F 2 "" H 2350 8750 50 0001 C CNN
+F 3 "" H 2350 8750 50 0001 C CNN
+ 1 2350 8750
+ 0 1 1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5C51BE00
+P 2350 9000
+F 0 "C?" V 2250 8850 50 0000 C CNN
+F 1 "100n" V 2500 9000 50 0000 C CNN
+F 2 "" H 2350 9000 50 0001 C CNN
+F 3 "" H 2350 9000 50 0001 C CNN
+ 1 2350 9000
+ 0 1 1 0
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5C5297AC
+P 2550 9000
+F 0 "#PWR?" H 2550 8750 50 0001 C CNN
+F 1 "GND" H 2700 8950 50 0000 C CNN
+F 2 "" H 2550 9000 50 0001 C CNN
+F 3 "" H 2550 9000 50 0001 C CNN
+ 1 2550 9000
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 2550 9000 2450 9000
+Wire Wire Line
+ 2450 9000 2450 8750
+Connection ~ 2450 9000
+Wire Wire Line
+ 2250 9000 2100 9000
+Connection ~ 2100 9000
+Wire Wire Line
+ 2250 8750 2100 8750
+Connection ~ 2100 8750
+Wire Wire Line
+ 2100 8750 2100 9000
+Wire Wire Line
+ 2100 9800 2100 9950
+Wire Wire Line
+ 2100 10200 2000 10200
+$Comp
+L power:VBUS #PWR?
+U 1 1 5C562857
+P 2100 9800
+F 0 "#PWR?" H 2100 9650 50 0001 C CNN
+F 1 "VBUS" H 2115 9973 50 0000 C CNN
+F 2 "" H 2100 9800 50 0001 C CNN
+F 3 "" H 2100 9800 50 0001 C CNN
+ 1 2100 9800
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:CP_Small C?
+U 1 1 5C56285D
+P 2350 9950
+F 0 "C?" V 2250 9800 50 0000 C CNN
+F 1 "47u" V 2216 9950 50 0000 C CNN
+F 2 "" H 2350 9950 50 0001 C CNN
+F 3 "" H 2350 9950 50 0001 C CNN
+ 1 2350 9950
+ 0 1 1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5C562864
+P 2350 10200
+F 0 "C?" V 2250 10050 50 0000 C CNN
+F 1 "100n" V 2500 10200 50 0000 C CNN
+F 2 "" H 2350 10200 50 0001 C CNN
+F 3 "" H 2350 10200 50 0001 C CNN
+ 1 2350 10200
+ 0 1 1 0
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5C56286B
+P 2550 10200
+F 0 "#PWR?" H 2550 9950 50 0001 C CNN
+F 1 "GND" H 2700 10150 50 0000 C CNN
+F 2 "" H 2550 10200 50 0001 C CNN
+F 3 "" H 2550 10200 50 0001 C CNN
+ 1 2550 10200
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 2550 10200 2450 10200
+Wire Wire Line
+ 2450 10200 2450 9950
+Connection ~ 2450 10200
+Wire Wire Line
+ 2250 10200 2100 10200
+Connection ~ 2100 10200
+Wire Wire Line
+ 2250 9950 2100 9950
+Connection ~ 2100 9950
+Wire Wire Line
+ 2100 9950 2100 10200
+Text Label 10100 2400 2 50 ~ 0
+SECURE_IF_F4TX
+Text Label 10100 2500 2 50 ~ 0
+SECURE_IF_F4RX
+Wire Wire Line
+ 10100 2500 9350 2500
+Wire Wire Line
+ 10100 2400 9350 2400
+$Comp
+L device:LED_Small D?
+U 1 1 5C5B8E64
+P 6600 8950
+F 0 "D?" H 6500 8900 50 0000 C CNN
+F 1 "red" H 6700 8900 50 0000 C CNN
+F 2 "" V 6600 8950 50 0001 C CNN
+F 3 "" V 6600 8950 50 0001 C CNN
+ 1 6600 8950
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5C2170
+P 6600 9100
+F 0 "D?" H 6500 9050 50 0000 C CNN
+F 1 "red" H 6700 9050 50 0000 C CNN
+F 2 "" V 6600 9100 50 0001 C CNN
+F 3 "" V 6600 9100 50 0001 C CNN
+ 1 6600 9100
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5C4C69
+P 6600 9250
+F 0 "D?" H 6500 9200 50 0000 C CNN
+F 1 "red" H 6700 9200 50 0000 C CNN
+F 2 "" V 6600 9250 50 0001 C CNN
+F 3 "" V 6600 9250 50 0001 C CNN
+ 1 6600 9250
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5C8AAB
+P 6600 9400
+F 0 "D?" H 6500 9350 50 0000 C CNN
+F 1 "red" H 6700 9350 50 0000 C CNN
+F 2 "" V 6600 9400 50 0001 C CNN
+F 3 "" V 6600 9400 50 0001 C CNN
+ 1 6600 9400
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5CCC8D
+P 6600 9550
+F 0 "D?" H 6500 9500 50 0000 C CNN
+F 1 "red" H 6700 9500 50 0000 C CNN
+F 2 "" V 6600 9550 50 0001 C CNN
+F 3 "" V 6600 9550 50 0001 C CNN
+ 1 6600 9550
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5CF123
+P 6600 9700
+F 0 "D?" H 6500 9650 50 0000 C CNN
+F 1 "red" H 6700 9650 50 0000 C CNN
+F 2 "" V 6600 9700 50 0001 C CNN
+F 3 "" V 6600 9700 50 0001 C CNN
+ 1 6600 9700
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5CFFD0
+P 6600 9850
+F 0 "D?" H 6500 9800 50 0000 C CNN
+F 1 "red" H 6700 9800 50 0000 C CNN
+F 2 "" V 6600 9850 50 0001 C CNN
+F 3 "" V 6600 9850 50 0001 C CNN
+ 1 6600 9850
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5D158A
+P 6600 10000
+F 0 "D?" H 6500 9950 50 0000 C CNN
+F 1 "red" H 6700 9950 50 0000 C CNN
+F 2 "" V 6600 10000 50 0001 C CNN
+F 3 "" V 6600 10000 50 0001 C CNN
+ 1 6600 10000
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5D3F1F
+P 6600 10150
+F 0 "D?" H 6500 10100 50 0000 C CNN
+F 1 "red" H 6700 10100 50 0000 C CNN
+F 2 "" V 6600 10150 50 0001 C CNN
+F 3 "" V 6600 10150 50 0001 C CNN
+ 1 6600 10150
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5D4845
+P 6600 10300
+F 0 "D?" H 6500 10250 50 0000 C CNN
+F 1 "red" H 6700 10250 50 0000 C CNN
+F 2 "" V 6600 10300 50 0001 C CNN
+F 3 "" V 6600 10300 50 0001 C CNN
+ 1 6600 10300
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5D5CC9
+P 6600 10450
+F 0 "D?" H 6500 10400 50 0000 C CNN
+F 1 "red" H 6700 10400 50 0000 C CNN
+F 2 "" V 6600 10450 50 0001 C CNN
+F 3 "" V 6600 10450 50 0001 C CNN
+ 1 6600 10450
+ -1 0 0 1
+$EndComp
+$Comp
+L device:R_Pack04 RN?
+U 1 1 5C5DE49D
+P 6150 9150
+F 0 "RN?" V 5733 9150 50 0000 C CNN
+F 1 "4*620" V 5824 9150 50 0000 C CNN
+F 2 "" V 6425 9150 50 0001 C CNN
+F 3 "" H 6150 9150 50 0001 C CNN
+ 1 6150 9150
+ 0 1 1 0
+$EndComp
+Wire Wire Line
+ 6500 8950 6350 8950
+Wire Wire Line
+ 6500 9100 6400 9100
+Wire Wire Line
+ 6400 9100 6400 9050
+Wire Wire Line
+ 6400 9050 6350 9050
+Wire Wire Line
+ 6350 9150 6400 9150
+Wire Wire Line
+ 6400 9150 6400 9250
+Wire Wire Line
+ 6400 9250 6500 9250
+Wire Wire Line
+ 6350 9250 6350 9400
+Wire Wire Line
+ 6350 9400 6500 9400
+$Comp
+L device:R_Pack04 RN?
+U 1 1 5C63187D
+P 6150 9750
+F 0 "RN?" V 5733 9750 50 0000 C CNN
+F 1 "4*620" V 5824 9750 50 0000 C CNN
+F 2 "" V 6425 9750 50 0001 C CNN
+F 3 "" H 6150 9750 50 0001 C CNN
+ 1 6150 9750
+ 0 1 1 0
+$EndComp
+$Comp
+L device:R_Pack04 RN?
+U 1 1 5C63296F
+P 6150 10350
+F 0 "RN?" V 5733 10350 50 0000 C CNN
+F 1 "4*620" V 5824 10350 50 0000 C CNN
+F 2 "" V 6425 10350 50 0001 C CNN
+F 3 "" H 6150 10350 50 0001 C CNN
+ 1 6150 10350
+ 0 1 1 0
+$EndComp
+Wire Wire Line
+ 6500 9550 6350 9550
+Wire Wire Line
+ 6350 9650 6400 9650
+Wire Wire Line
+ 6400 9650 6400 9700
+Wire Wire Line
+ 6400 9700 6500 9700
+Wire Wire Line
+ 6500 9850 6400 9850
+Wire Wire Line
+ 6400 9850 6400 9750
+Wire Wire Line
+ 6400 9750 6350 9750
+Wire Wire Line
+ 6350 9850 6350 10000
+Wire Wire Line
+ 6350 10000 6500 10000
+Wire Wire Line
+ 6500 10150 6350 10150
+Wire Wire Line
+ 6350 10250 6400 10250
+Wire Wire Line
+ 6400 10250 6400 10300
+Wire Wire Line
+ 6400 10300 6500 10300
+Wire Wire Line
+ 6500 10450 6400 10450
+Wire Wire Line
+ 6400 10450 6400 10350
+Wire Wire Line
+ 6400 10350 6350 10350
+$Comp
+L device:LED_Small D?
+U 1 1 5C6C0DF6
+P 6600 10600
+F 0 "D?" H 6500 10550 50 0000 C CNN
+F 1 "red" H 6700 10550 50 0000 C CNN
+F 2 "" V 6600 10600 50 0001 C CNN
+F 3 "" V 6600 10600 50 0001 C CNN
+ 1 6600 10600
+ -1 0 0 1
+$EndComp
+Wire Wire Line
+ 6500 10600 6350 10600
+Wire Wire Line
+ 6350 10600 6350 10450
+Connection ~ 5950 9050
+Wire Wire Line
+ 5950 9050 5950 8950
+Connection ~ 5950 9150
+Wire Wire Line
+ 5950 9150 5950 9050
+Connection ~ 5950 9250
+Wire Wire Line
+ 5950 9250 5950 9150
+Connection ~ 5950 9550
+Wire Wire Line
+ 5950 9550 5950 9250
+Connection ~ 5950 9650
+Wire Wire Line
+ 5950 9650 5950 9550
+Connection ~ 5950 9750
+Wire Wire Line
+ 5950 9750 5950 9650
+Connection ~ 5950 9850
+Wire Wire Line
+ 5950 9850 5950 9750
+Connection ~ 5950 10150
+Wire Wire Line
+ 5950 10150 5950 9850
+Connection ~ 5950 10250
+Wire Wire Line
+ 5950 10250 5950 10150
+Connection ~ 5950 10350
+Wire Wire Line
+ 5950 10350 5950 10250
+Wire Wire Line
+ 5950 10450 5950 10350
+Text Label 7000 9100 2 50 ~ 0
+LED1
+Text Label 7000 9250 2 50 ~ 0
+LED2
+Text Label 7000 9400 2 50 ~ 0
+LED3
+Text Label 7000 9550 2 50 ~ 0
+LED4
+Text Label 7000 9700 2 50 ~ 0
+LED5
+Text Label 7000 9850 2 50 ~ 0
+LED6
+Text Label 7000 10000 2 50 ~ 0
+LED7
+Text Label 7000 8950 2 50 ~ 0
+LED0
+Text Label 7000 10150 2 50 ~ 0
+LED8
+Text Label 7000 10300 2 50 ~ 0
+LED9
+Text Label 7000 10450 2 50 ~ 0
+LED10
+Text Label 7000 10600 2 50 ~ 0
+LED11
+Wire Wire Line
+ 7000 8950 6700 8950
+Wire Wire Line
+ 6700 9100 7000 9100
+Wire Wire Line
+ 7000 9250 6700 9250
+Wire Wire Line
+ 6700 9400 7000 9400
+Wire Wire Line
+ 7000 9550 6700 9550
+Wire Wire Line
+ 6700 9700 7000 9700
+Wire Wire Line
+ 7000 9850 6700 9850
+Wire Wire Line
+ 6700 10000 7000 10000
+Wire Wire Line
+ 7000 10150 6700 10150
+Wire Wire Line
+ 6700 10300 7000 10300
+Wire Wire Line
+ 7000 10450 6700 10450
+Wire Wire Line
+ 6700 10600 7000 10600
+$Comp
+L power:VBUS #PWR?
+U 1 1 5C8558D2
+P 5950 8850
+F 0 "#PWR?" H 5950 8700 50 0001 C CNN
+F 1 "VBUS" H 5965 9023 50 0000 C CNN
+F 2 "" H 5950 8850 50 0001 C CNN
+F 3 "" H 5950 8850 50 0001 C CNN
+ 1 5950 8850
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 5950 8850 5950 8950
+Connection ~ 5950 8950
+Text Label 7200 4300 0 50 ~ 0
+LED0
+Text Label 7200 4400 0 50 ~ 0
+LED1
+Text Label 7200 4500 0 50 ~ 0
+LED2
+Text Label 7200 4600 0 50 ~ 0
+LED3
+Text Label 7200 4700 0 50 ~ 0
+LED4
+Text Label 7200 4800 0 50 ~ 0
+LED5
+Text Label 7200 4900 0 50 ~ 0
+LED6
+Text Label 7200 5000 0 50 ~ 0
+LED7
+Text Label 7200 5100 0 50 ~ 0
+LED8
+Text Label 7200 5200 0 50 ~ 0
+LED9
+Text Label 7200 5300 0 50 ~ 0
+LED10
+Text Label 7200 5400 0 50 ~ 0
+LED11
+Wire Wire Line
+ 7200 5400 7550 5400
+Wire Wire Line
+ 7200 5300 7550 5300
+Wire Wire Line
+ 7200 5200 7550 5200
+Wire Wire Line
+ 7550 5100 7200 5100
+Wire Wire Line
+ 7200 5000 7550 5000
+Wire Wire Line
+ 7550 4900 7200 4900
+Wire Wire Line
+ 7200 4800 7550 4800
+Wire Wire Line
+ 7550 4700 7200 4700
+Wire Wire Line
+ 7200 4600 7550 4600
+Wire Wire Line
+ 7550 4500 7200 4500
+Wire Wire Line
+ 7200 4400 7550 4400
+Wire Wire Line
+ 7550 4300 7200 4300
+$EndSCHEMATC
diff --git a/pcb/securehid.kicad_pcb b/pcb/securehid.kicad_pcb
new file mode 100644
index 0000000..02c8ecb
--- /dev/null
+++ b/pcb/securehid.kicad_pcb
@@ -0,0 +1 @@
+(kicad_pcb (version 4) (host kicad "dummy file") )
diff --git a/pcb/securehid.pro b/pcb/securehid.pro
new file mode 100644
index 0000000..0ee4f36
--- /dev/null
+++ b/pcb/securehid.pro
@@ -0,0 +1,30 @@
+update=Sat Nov 17 08:52:10 2018
+version=1
+last_client=kicad
+[pcbnew]
+version=1
+LastNetListRead=
+UseCmpFile=1
+PadDrill=0.600000000000
+PadDrillOvalY=0.600000000000
+PadSizeH=1.500000000000
+PadSizeV=1.500000000000
+PcbTextSizeV=1.500000000000
+PcbTextSizeH=1.500000000000
+PcbTextThickness=0.300000000000
+ModuleTextSizeV=1.000000000000
+ModuleTextSizeH=1.000000000000
+ModuleTextSizeThickness=0.150000000000
+SolderMaskClearance=0.000000000000
+SolderMaskMinWidth=0.000000000000
+DrawSegmentWidth=0.200000000000
+BoardOutlineThickness=0.100000000000
+ModuleOutlineThickness=0.150000000000
+[cvpcb]
+version=1
+NetIExt=net
+[general]
+version=1
+[eeschema]
+version=1
+LibDir=
diff --git a/pcb/securehid.sch b/pcb/securehid.sch
new file mode 100644
index 0000000..6bb4c71
--- /dev/null
+++ b/pcb/securehid.sch
@@ -0,0 +1,2336 @@
+EESchema Schematic File Version 4
+LIBS:securehid-cache
+EELAYER 26 0
+EELAYER END
+$Descr A3 16535 11693
+encoding utf-8
+Sheet 1 1
+Title ""
+Date ""
+Rev ""
+Comp ""
+Comment1 ""
+Comment2 ""
+Comment3 ""
+Comment4 ""
+$EndDescr
+$Comp
+L MCU_ST_STM32F1:STM32F103C8Tx U?
+U 1 1 5BEEAD06
+P 12850 3550
+F 0 "U?" H 12250 5000 50 0000 L CNN
+F 1 "STM32F103C8Tx" H 13150 5000 50 0000 L CNN
+F 2 "Package_QFP:LQFP-48_7x7mm_P0.5mm" H 12250 2150 50 0001 R CNN
+F 3 "" H 12850 3550 50 0001 C CNN
+ 1 12850 3550
+ 1 0 0 -1
+$EndComp
+$Comp
+L Connector:USB_B_Micro J?
+U 1 1 5BEEADC1
+P 1700 3650
+F 0 "J?" H 1500 4100 50 0000 L CNN
+F 1 "USB_B_Micro" H 1500 4000 50 0000 L CNN
+F 2 "" H 1850 3600 50 0001 C CNN
+F 3 "" H 1850 3600 50 0001 C CNN
+ 1 1700 3650
+ 1 0 0 -1
+$EndComp
+$Comp
+L conn:USB_A J?
+U 1 1 5BEEAE66
+P 1700 9200
+F 0 "J?" H 1500 9650 50 0000 L CNN
+F 1 "USB_A" H 1500 9550 50 0000 L CNN
+F 2 "" H 1850 9150 50 0001 C CNN
+F 3 "" H 1850 9150 50 0001 C CNN
+ 1 1700 9200
+ 1 0 0 -1
+$EndComp
+$Comp
+L regul:AP1117-33 U?
+U 1 1 5BEF631A
+P 2650 2200
+F 0 "U?" H 2650 2442 50 0000 C CNN
+F 1 "AP1117-33" H 2650 2351 50 0000 C CNN
+F 2 "TO_SOT_Packages_SMD:SOT-223-3Lead_TabPin2" H 2650 2400 50 0001 C CNN
+F 3 "http://www.diodes.com/datasheets/AP1117.pdf" H 2750 1950 50 0001 C CNN
+ 1 2650 2200
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C C?
+U 1 1 5BEF660D
+P 2050 2350
+F 0 "C?" H 2165 2396 50 0000 L CNN
+F 1 "100n" H 2165 2305 50 0000 L CNN
+F 2 "" H 2088 2200 50 0001 C CNN
+F 3 "" H 2050 2350 50 0001 C CNN
+ 1 2050 2350
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:CP C?
+U 1 1 5BEF69F7
+P 1550 2350
+F 0 "C?" H 1668 2396 50 0000 L CNN
+F 1 "220u" H 1668 2305 50 0000 L CNN
+F 2 "" H 1588 2200 50 0001 C CNN
+F 3 "" H 1550 2350 50 0001 C CNN
+ 1 1550 2350
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:CP C?
+U 1 1 5BEF6DE0
+P 3600 2350
+F 0 "C?" H 3718 2396 50 0000 L CNN
+F 1 "47u" H 3718 2305 50 0000 L CNN
+F 2 "" H 3638 2200 50 0001 C CNN
+F 3 "" H 3600 2350 50 0001 C CNN
+ 1 3600 2350
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C C?
+U 1 1 5BEF7098
+P 3100 2350
+F 0 "C?" H 3215 2396 50 0000 L CNN
+F 1 "100n" H 3215 2305 50 0000 L CNN
+F 2 "" H 3138 2200 50 0001 C CNN
+F 3 "" H 3100 2350 50 0001 C CNN
+ 1 3100 2350
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5BEF78F8
+P 2650 2650
+F 0 "#PWR?" H 2650 2400 50 0001 C CNN
+F 1 "GND" H 2655 2477 50 0000 C CNN
+F 2 "" H 2650 2650 50 0001 C CNN
+F 3 "" H 2650 2650 50 0001 C CNN
+ 1 2650 2650
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:VBUS #PWR?
+U 1 1 5BEF7D0E
+P 1550 2050
+F 0 "#PWR?" H 1550 1900 50 0001 C CNN
+F 1 "VBUS" H 1565 2223 50 0000 C CNN
+F 2 "" H 1550 2050 50 0001 C CNN
+F 3 "" H 1550 2050 50 0001 C CNN
+ 1 1550 2050
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:+3.3V #PWR?
+U 1 1 5BEF8091
+P 3600 2050
+F 0 "#PWR?" H 3600 1900 50 0001 C CNN
+F 1 "+3.3V" H 3615 2223 50 0000 C CNN
+F 2 "" H 3600 2050 50 0001 C CNN
+F 3 "" H 3600 2050 50 0001 C CNN
+ 1 3600 2050
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 1550 2050 1550 2200
+Wire Wire Line
+ 1550 2200 2050 2200
+Connection ~ 1550 2200
+Connection ~ 2050 2200
+Wire Wire Line
+ 2050 2200 2350 2200
+Wire Wire Line
+ 2950 2200 3100 2200
+Wire Wire Line
+ 3600 2200 3600 2050
+Connection ~ 3600 2200
+Connection ~ 3100 2200
+Wire Wire Line
+ 3100 2200 3600 2200
+Wire Wire Line
+ 3600 2500 3100 2500
+Connection ~ 2050 2500
+Wire Wire Line
+ 2050 2500 1550 2500
+Connection ~ 2650 2500
+Wire Wire Line
+ 2650 2500 2050 2500
+Connection ~ 3100 2500
+Wire Wire Line
+ 2650 2500 2650 2650
+Wire Wire Line
+ 2100 8600 2100 8750
+Wire Wire Line
+ 2100 9000 2000 9000
+Wire Wire Line
+ 1600 9600 1700 9600
+Wire Wire Line
+ 1700 9700 1700 9600
+Connection ~ 1700 9600
+$Comp
+L power:GND #PWR?
+U 1 1 5BEFC201
+P 1700 9700
+F 0 "#PWR?" H 1700 9450 50 0001 C CNN
+F 1 "GND" H 1705 9527 50 0000 C CNN
+F 2 "" H 1700 9700 50 0001 C CNN
+F 3 "" H 1700 9700 50 0001 C CNN
+ 1 1700 9700
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:VBUS #PWR?
+U 1 1 5BEFC5C0
+P 2100 8600
+F 0 "#PWR?" H 2100 8450 50 0001 C CNN
+F 1 "VBUS" H 2115 8773 50 0000 C CNN
+F 2 "" H 2100 8600 50 0001 C CNN
+F 3 "" H 2100 8600 50 0001 C CNN
+ 1 2100 8600
+ 1 0 0 -1
+$EndComp
+Text Label 3600 6300 3 50 ~ 0
+USBH_DM
+Text Label 3500 6300 3 50 ~ 0
+USBH_DP
+Text Label 10100 3300 2 50 ~ 0
+USBH_DM
+Text Label 10100 3400 2 50 ~ 0
+USBH_DP
+Wire Wire Line
+ 10100 3400 9350 3400
+Wire Wire Line
+ 10100 3300 9350 3300
+$Comp
+L power:VBUS #PWR?
+U 1 1 5BF01EF8
+P 2100 3350
+F 0 "#PWR?" H 2100 3200 50 0001 C CNN
+F 1 "VBUS" H 2115 3523 50 0000 C CNN
+F 2 "" H 2100 3350 50 0001 C CNN
+F 3 "" H 2100 3350 50 0001 C CNN
+ 1 2100 3350
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5BF022FC
+P 1700 4150
+F 0 "#PWR?" H 1700 3900 50 0001 C CNN
+F 1 "GND" H 1705 3977 50 0000 C CNN
+F 2 "" H 1700 4150 50 0001 C CNN
+F 3 "" H 1700 4150 50 0001 C CNN
+ 1 1700 4150
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 1700 4150 1700 4050
+Wire Wire Line
+ 1600 4050 1700 4050
+Connection ~ 1700 4050
+Wire Wire Line
+ 2000 3450 2100 3450
+Wire Wire Line
+ 2100 3450 2100 3350
+Text Label 3200 3650 2 50 ~ 0
+USBD_DP
+Text Label 3200 3750 2 50 ~ 0
+USBD_DM
+$Comp
+L device:R_Small R?
+U 1 1 5BF05F40
+P 2700 3750
+F 0 "R?" V 2500 3750 50 0000 C CNN
+F 1 "22" V 2600 3750 50 0000 C CNN
+F 2 "" H 2700 3750 50 0001 C CNN
+F 3 "" H 2700 3750 50 0001 C CNN
+ 1 2700 3750
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5BF06DFB
+P 2700 3650
+F 0 "R?" V 2504 3650 50 0000 C CNN
+F 1 "22" V 2595 3650 50 0000 C CNN
+F 2 "" H 2700 3650 50 0001 C CNN
+F 3 "" H 2700 3650 50 0001 C CNN
+ 1 2700 3650
+ 0 1 1 0
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5BF07F6E
+P 2300 3450
+F 0 "R?" H 2359 3496 50 0000 L CNN
+F 1 "1k5" H 2359 3405 50 0000 L CNN
+F 2 "" H 2300 3450 50 0001 C CNN
+F 3 "" H 2300 3450 50 0001 C CNN
+ 1 2300 3450
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:+3.3V #PWR?
+U 1 1 5BF08B1C
+P 2300 3350
+F 0 "#PWR?" H 2300 3200 50 0001 C CNN
+F 1 "+3.3V" H 2315 3523 50 0000 C CNN
+F 2 "" H 2300 3350 50 0001 C CNN
+F 3 "" H 2300 3350 50 0001 C CNN
+ 1 2300 3350
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 2300 3550 2300 3650
+Connection ~ 2300 3650
+Wire Wire Line
+ 2300 3650 2000 3650
+Wire Wire Line
+ 2300 3650 2600 3650
+Wire Wire Line
+ 2000 3750 2600 3750
+Wire Wire Line
+ 3200 3750 2800 3750
+Wire Wire Line
+ 2800 3650 3200 3650
+$Comp
+L device:Crystal_GND24_Small Y?
+U 1 1 5BF102A6
+P 6600 3650
+F 0 "Y?" V 6554 3816 50 0000 L CNN
+F 1 "8MHz" V 6645 3816 50 0000 L CNN
+F 2 "" H 6600 3650 50 0001 C CNN
+F 3 "" H 6600 3650 50 0001 C CNN
+ 1 6600 3650
+ 0 1 1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF11861
+P 6350 3450
+F 0 "C?" V 6579 3450 50 0000 C CNN
+F 1 "12p" V 6488 3450 50 0000 C CNN
+F 2 "" H 6350 3450 50 0001 C CNN
+F 3 "" H 6350 3450 50 0001 C CNN
+ 1 6350 3450
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF125C0
+P 6350 3850
+F 0 "C?" V 6579 3850 50 0000 C CNN
+F 1 "12p" V 6488 3850 50 0000 C CNN
+F 2 "" H 6350 3850 50 0001 C CNN
+F 3 "" H 6350 3850 50 0001 C CNN
+ 1 6350 3850
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5BF1348D
+P 7050 3650
+F 0 "R?" H 7109 3696 50 0000 L CNN
+F 1 "1M" H 7109 3605 50 0000 L CNN
+F 2 "" H 7050 3650 50 0001 C CNN
+F 3 "" H 7050 3650 50 0001 C CNN
+ 1 7050 3650
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 6450 3450 6600 3450
+Wire Wire Line
+ 6600 3450 6600 3550
+Wire Wire Line
+ 2650 2500 3100 2500
+Wire Wire Line
+ 6600 3450 7050 3450
+Wire Wire Line
+ 7050 3450 7050 3550
+Connection ~ 6600 3450
+Wire Wire Line
+ 7550 3600 7300 3600
+Wire Wire Line
+ 7300 3600 7300 3450
+Wire Wire Line
+ 7300 3450 7050 3450
+Connection ~ 7050 3450
+Wire Wire Line
+ 6450 3850 6600 3850
+Wire Wire Line
+ 7300 3850 7300 3700
+Wire Wire Line
+ 7300 3700 7550 3700
+Wire Wire Line
+ 7050 3750 7050 3850
+Connection ~ 7050 3850
+Wire Wire Line
+ 7050 3850 7300 3850
+Wire Wire Line
+ 6600 3750 6600 3850
+Connection ~ 6600 3850
+Wire Wire Line
+ 6600 3850 7050 3850
+Wire Wire Line
+ 6150 3450 6150 3650
+Wire Wire Line
+ 6150 3850 6250 3850
+Wire Wire Line
+ 6150 3450 6250 3450
+$Comp
+L power:GND #PWR?
+U 1 1 5BF18330
+P 6150 3950
+F 0 "#PWR?" H 6150 3700 50 0001 C CNN
+F 1 "GND" H 6155 3777 50 0000 C CNN
+F 2 "" H 6150 3950 50 0001 C CNN
+F 3 "" H 6150 3950 50 0001 C CNN
+ 1 6150 3950
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 6150 3950 6150 3850
+Connection ~ 6150 3850
+Wire Wire Line
+ 6475 3650 6425 3650
+Connection ~ 6150 3650
+Wire Wire Line
+ 6150 3650 6150 3850
+Wire Wire Line
+ 6725 3650 6725 3800
+Wire Wire Line
+ 6725 3800 6425 3800
+Wire Wire Line
+ 6425 3800 6425 3650
+Connection ~ 6425 3650
+Wire Wire Line
+ 6425 3650 6150 3650
+$Comp
+L device:C_Small C?
+U 1 1 5BF1E83A
+P 7150 2600
+F 0 "C?" V 6921 2600 50 0000 C CNN
+F 1 "10u" V 7012 2600 50 0000 C CNN
+F 2 "" H 7150 2600 50 0001 C CNN
+F 3 "" H 7150 2600 50 0001 C CNN
+ 1 7150 2600
+ 0 1 1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF1FBEB
+P 6900 2700
+F 0 "C?" V 6671 2700 50 0000 C CNN
+F 1 "10u" V 6762 2700 50 0000 C CNN
+F 2 "" H 6900 2700 50 0001 C CNN
+F 3 "" H 6900 2700 50 0001 C CNN
+ 1 6900 2700
+ 0 1 1 0
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5BF210DF
+P 6700 2800
+F 0 "#PWR?" H 6700 2550 50 0001 C CNN
+F 1 "GND" H 6705 2627 50 0000 C CNN
+F 2 "" H 6700 2800 50 0001 C CNN
+F 3 "" H 6700 2800 50 0001 C CNN
+ 1 6700 2800
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 6700 2800 6700 2700
+Wire Wire Line
+ 6700 2600 7050 2600
+Wire Wire Line
+ 6800 2700 6700 2700
+Connection ~ 6700 2700
+Wire Wire Line
+ 6700 2700 6700 2600
+Wire Wire Line
+ 7000 2700 7550 2700
+Wire Wire Line
+ 7550 2600 7250 2600
+$Comp
+L device:R_Small R?
+U 1 1 5BF2746F
+P 9500 1300
+F 0 "R?" H 9350 1350 50 0000 L CNN
+F 1 "0" H 9350 1250 50 0000 L CNN
+F 2 "" H 9500 1300 50 0001 C CNN
+F 3 "" H 9500 1300 50 0001 C CNN
+ 1 9500 1300
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:VSSA #PWR?
+U 1 1 5BF2A251
+P 8650 7500
+F 0 "#PWR?" H 8650 7350 50 0001 C CNN
+F 1 "VSSA" H 8668 7673 50 0000 C CNN
+F 2 "" H 8650 7500 50 0001 C CNN
+F 3 "" H 8650 7500 50 0001 C CNN
+ 1 8650 7500
+ -1 0 0 1
+$EndComp
+Wire Wire Line
+ 8650 7500 8650 7400
+$Comp
+L power:GND #PWR?
+U 1 1 5BF2BAF5
+P 8400 7500
+F 0 "#PWR?" H 8400 7250 50 0001 C CNN
+F 1 "GND" H 8405 7327 50 0000 C CNN
+F 2 "" H 8400 7500 50 0001 C CNN
+F 3 "" H 8400 7500 50 0001 C CNN
+ 1 8400 7500
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 8400 7500 8400 7400
+Connection ~ 8400 7400
+$Comp
+L power:VDDA #PWR?
+U 1 1 5BF3003A
+P 8850 1500
+F 0 "#PWR?" H 8850 1350 50 0001 C CNN
+F 1 "VDDA" H 8867 1673 50 0000 C CNN
+F 2 "" H 8850 1500 50 0001 C CNN
+F 3 "" H 8850 1500 50 0001 C CNN
+ 1 8850 1500
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:+3.3V #PWR?
+U 1 1 5BF32616
+P 8250 1800
+F 0 "#PWR?" H 8250 1650 50 0001 C CNN
+F 1 "+3.3V" H 8265 1973 50 0000 C CNN
+F 2 "" H 8250 1800 50 0001 C CNN
+F 3 "" H 8250 1800 50 0001 C CNN
+ 1 8250 1800
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 8250 1800 8250 1900
+$Comp
+L power:+3.3V #PWR?
+U 1 1 5BF35844
+P 9500 1100
+F 0 "#PWR?" H 9500 950 50 0001 C CNN
+F 1 "+3.3V" H 9515 1273 50 0000 C CNN
+F 2 "" H 9500 1100 50 0001 C CNN
+F 3 "" H 9500 1100 50 0001 C CNN
+ 1 9500 1100
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 9500 1100 9500 1200
+$Comp
+L device:C_Small C?
+U 1 1 5BF38053
+P 9100 1600
+F 0 "C?" H 9008 1554 50 0000 R CNN
+F 1 "100n" H 9008 1645 50 0000 R CNN
+F 2 "" H 9100 1600 50 0001 C CNN
+F 3 "" H 9100 1600 50 0001 C CNN
+ 1 9100 1600
+ -1 0 0 1
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF395B5
+P 9500 1600
+F 0 "C?" H 9592 1646 50 0000 L CNN
+F 1 "10u" H 9592 1555 50 0000 L CNN
+F 2 "" H 9500 1600 50 0001 C CNN
+F 3 "" H 9500 1600 50 0001 C CNN
+ 1 9500 1600
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 9500 1400 9500 1500
+Connection ~ 9500 1500
+Connection ~ 8850 1500
+Wire Wire Line
+ 9100 1500 9500 1500
+Connection ~ 9100 1500
+Wire Wire Line
+ 8850 1500 9100 1500
+$Comp
+L power:VSSA #PWR?
+U 1 1 5BF4D7F0
+P 9500 1800
+F 0 "#PWR?" H 9500 1650 50 0001 C CNN
+F 1 "VSSA" H 9518 1973 50 0000 C CNN
+F 2 "" H 9500 1800 50 0001 C CNN
+F 3 "" H 9500 1800 50 0001 C CNN
+ 1 9500 1800
+ -1 0 0 1
+$EndComp
+Wire Wire Line
+ 9500 1800 9500 1700
+Wire Wire Line
+ 8450 7400 8550 7400
+Wire Wire Line
+ 8400 7400 8450 7400
+Connection ~ 8450 7400
+Wire Wire Line
+ 8350 7400 8250 7400
+Wire Wire Line
+ 8400 7400 8350 7400
+Connection ~ 8350 7400
+Wire Wire Line
+ 8750 1900 8650 1900
+Connection ~ 8650 1900
+Wire Wire Line
+ 8650 1900 8550 1900
+Connection ~ 8550 1900
+Wire Wire Line
+ 8550 1900 8450 1900
+Connection ~ 8450 1900
+Wire Wire Line
+ 8450 1900 8350 1900
+Wire Wire Line
+ 8350 1900 8250 1900
+Connection ~ 8350 1900
+Connection ~ 8250 1900
+$Comp
+L MCU_ST_STM32F4:STM32F407VETx U?
+U 1 1 5BEEABF3
+P 8450 4600
+F 0 "U?" H 7750 7150 50 0000 L CNN
+F 1 "STM32F407VETx" H 8950 7150 50 0000 L CNN
+F 2 "Package_QFP:LQFP-100_14x14mm_P0.5mm" H 7750 2000 50 0001 R CNN
+F 3 "" H 8450 4600 50 0001 C CNN
+ 1 8450 4600
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 9500 1700 9100 1700
+Connection ~ 9500 1700
+Wire Wire Line
+ 8850 1500 8850 1900
+$Comp
+L power:VDDA #PWR?
+U 1 1 5BF5AE28
+P 7300 2800
+F 0 "#PWR?" H 7300 2650 50 0001 C CNN
+F 1 "VDDA" V 7318 2928 50 0000 L CNN
+F 2 "" H 7300 2800 50 0001 C CNN
+F 3 "" H 7300 2800 50 0001 C CNN
+ 1 7300 2800
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5BF5BB39
+P 7400 2800
+F 0 "R?" V 7500 2750 50 0000 C CNN
+F 1 "0" V 7500 2900 50 0000 C CNN
+F 2 "" H 7400 2800 50 0001 C CNN
+F 3 "" H 7400 2800 50 0001 C CNN
+ 1 7400 2800
+ 0 1 1 0
+$EndComp
+Wire Wire Line
+ 7500 2800 7550 2800
+$Comp
+L power:+3.3V #PWR?
+U 1 1 5BF610A9
+P 1550 1050
+F 0 "#PWR?" H 1550 900 50 0001 C CNN
+F 1 "+3.3V" H 1565 1223 50 0000 C CNN
+F 2 "" H 1550 1050 50 0001 C CNN
+F 3 "" H 1550 1050 50 0001 C CNN
+ 1 1550 1050
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5BF617B4
+P 1550 1250
+F 0 "#PWR?" H 1550 1000 50 0001 C CNN
+F 1 "GND" H 1555 1077 50 0000 C CNN
+F 2 "" H 1550 1250 50 0001 C CNN
+F 3 "" H 1550 1250 50 0001 C CNN
+ 1 1550 1250
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF62211
+P 1550 1150
+F 0 "C?" H 1642 1196 50 0000 L CNN
+F 1 "100n" H 1642 1105 50 0000 L CNN
+F 2 "" H 1550 1150 50 0001 C CNN
+F 3 "" H 1550 1150 50 0001 C CNN
+ 1 1550 1150
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF6342B
+P 1950 1150
+F 0 "C?" H 2042 1196 50 0000 L CNN
+F 1 "100n" H 2042 1105 50 0000 L CNN
+F 2 "" H 1950 1150 50 0001 C CNN
+F 3 "" H 1950 1150 50 0001 C CNN
+ 1 1950 1150
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF645FD
+P 2350 1150
+F 0 "C?" H 2442 1196 50 0000 L CNN
+F 1 "100n" H 2442 1105 50 0000 L CNN
+F 2 "" H 2350 1150 50 0001 C CNN
+F 3 "" H 2350 1150 50 0001 C CNN
+ 1 2350 1150
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF6483B
+P 2750 1150
+F 0 "C?" H 2842 1196 50 0000 L CNN
+F 1 "100n" H 2842 1105 50 0000 L CNN
+F 2 "" H 2750 1150 50 0001 C CNN
+F 3 "" H 2750 1150 50 0001 C CNN
+ 1 2750 1150
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF65555
+P 3150 1150
+F 0 "C?" H 3242 1196 50 0000 L CNN
+F 1 "100n" H 3242 1105 50 0000 L CNN
+F 2 "" H 3150 1150 50 0001 C CNN
+F 3 "" H 3150 1150 50 0001 C CNN
+ 1 3150 1150
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5BF65AAF
+P 3550 1150
+F 0 "C?" H 3642 1196 50 0000 L CNN
+F 1 "100n" H 3642 1105 50 0000 L CNN
+F 2 "" H 3550 1150 50 0001 C CNN
+F 3 "" H 3550 1150 50 0001 C CNN
+ 1 3550 1150
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 3550 1050 3150 1050
+Connection ~ 1550 1050
+Connection ~ 1950 1050
+Wire Wire Line
+ 1950 1050 1550 1050
+Connection ~ 2350 1050
+Wire Wire Line
+ 2350 1050 1950 1050
+Connection ~ 2750 1050
+Wire Wire Line
+ 2750 1050 2350 1050
+Connection ~ 3150 1050
+Wire Wire Line
+ 3150 1050 2750 1050
+Wire Wire Line
+ 1550 1250 1950 1250
+Connection ~ 1550 1250
+Connection ~ 1950 1250
+Wire Wire Line
+ 1950 1250 2350 1250
+Connection ~ 2350 1250
+Wire Wire Line
+ 2350 1250 2750 1250
+Connection ~ 2750 1250
+Wire Wire Line
+ 2750 1250 3150 1250
+Connection ~ 3150 1250
+Wire Wire Line
+ 3150 1250 3550 1250
+$Comp
+L device:Battery_Cell BT?
+U 1 1 5BF6C982
+P 7750 1650
+F 0 "BT?" H 7500 1750 50 0000 L CNN
+F 1 "CR2032" H 7300 1650 50 0000 L CNN
+F 2 "" V 7750 1710 50 0001 C CNN
+F 3 "" V 7750 1710 50 0001 C CNN
+ 1 7750 1650
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5BF6E562
+P 7750 1750
+F 0 "#PWR?" H 7750 1500 50 0001 C CNN
+F 1 "GND" H 7755 1577 50 0000 C CNN
+F 2 "" H 7750 1750 50 0001 C CNN
+F 3 "" H 7750 1750 50 0001 C CNN
+ 1 7750 1750
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 7750 1450 8150 1450
+Wire Wire Line
+ 8150 1450 8150 1900
+Text Label 10100 3500 2 50 ~ 0
+SWDIO
+Text Label 10100 3600 2 50 ~ 0
+SWCLK
+Wire Wire Line
+ 10100 3600 9350 3600
+Wire Wire Line
+ 10100 3500 9350 3500
+$Comp
+L Connector_Generic:Conn_01x04 J?
+U 1 1 5BF8388D
+P 1550 4800
+F 0 "J?" H 1470 5117 50 0000 C CNN
+F 1 "SWD" H 1470 5026 50 0000 C CNN
+F 2 "" H 1550 4800 50 0001 C CNN
+F 3 "~" H 1550 4800 50 0001 C CNN
+ 1 1550 4800
+ -1 0 0 -1
+$EndComp
+Text Label 2100 5000 2 50 ~ 0
+SWDIO
+Text Label 2100 4800 2 50 ~ 0
+SWCLK
+$Comp
+L power:GND #PWR?
+U 1 1 5BF9410F
+P 2200 4900
+F 0 "#PWR?" H 2200 4650 50 0001 C CNN
+F 1 "GND" V 2205 4772 50 0000 R CNN
+F 2 "" H 2200 4900 50 0001 C CNN
+F 3 "" H 2200 4900 50 0001 C CNN
+ 1 2200 4900
+ 0 -1 -1 0
+$EndComp
+Wire Wire Line
+ 2200 4900 1750 4900
+Wire Wire Line
+ 1750 4800 2100 4800
+Wire Wire Line
+ 2200 4700 1750 4700
+Wire Wire Line
+ 1750 5000 2100 5000
+Text Label 10100 3100 2 50 ~ 0
+DBGH_TX
+Text Label 10100 3200 2 50 ~ 0
+DBGH_RX
+Wire Wire Line
+ 10100 3200 9350 3200
+Wire Wire Line
+ 10100 3100 9350 3100
+$Comp
+L Connector_Generic:Conn_01x04 J?
+U 1 1 5BFBEF9F
+P 2750 4800
+F 0 "J?" H 2670 5117 50 0000 C CNN
+F 1 "UART_HOST" H 2670 5026 50 0000 C CNN
+F 2 "" H 2750 4800 50 0001 C CNN
+F 3 "~" H 2750 4800 50 0001 C CNN
+ 1 2750 4800
+ -1 0 0 -1
+$EndComp
+$Comp
+L power:VBUS #PWR?
+U 1 1 5BFC1836
+P 3450 4700
+F 0 "#PWR?" H 3450 4550 50 0001 C CNN
+F 1 "VBUS" V 3465 4828 50 0000 L CNN
+F 2 "" H 3450 4700 50 0001 C CNN
+F 3 "" H 3450 4700 50 0001 C CNN
+ 1 3450 4700
+ 0 1 1 0
+$EndComp
+$Comp
+L power:+3.3V #PWR?
+U 1 1 5BF8F4B2
+P 2200 4700
+F 0 "#PWR?" H 2200 4550 50 0001 C CNN
+F 1 "+3.3V" V 2215 4828 50 0000 L CNN
+F 2 "" H 2200 4700 50 0001 C CNN
+F 3 "" H 2200 4700 50 0001 C CNN
+ 1 2200 4700
+ 0 1 1 0
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5BFC580C
+P 3450 4800
+F 0 "#PWR?" H 3450 4550 50 0001 C CNN
+F 1 "GND" V 3455 4672 50 0000 R CNN
+F 2 "" H 3450 4800 50 0001 C CNN
+F 3 "" H 3450 4800 50 0001 C CNN
+ 1 3450 4800
+ 0 -1 -1 0
+$EndComp
+Wire Wire Line
+ 3450 4800 2950 4800
+Wire Wire Line
+ 3450 4700 2950 4700
+$Comp
+L Connector_Generic:Conn_01x04 J?
+U 1 1 5BFCCF0F
+P 3950 4800
+F 0 "J?" H 3870 5117 50 0000 C CNN
+F 1 "UART_DEVICE" H 3870 5026 50 0000 C CNN
+F 2 "" H 3950 4800 50 0001 C CNN
+F 3 "~" H 3950 4800 50 0001 C CNN
+ 1 3950 4800
+ -1 0 0 -1
+$EndComp
+$Comp
+L power:VBUS #PWR?
+U 1 1 5BFD18DB
+P 4650 4700
+F 0 "#PWR?" H 4650 4550 50 0001 C CNN
+F 1 "VBUS" V 4665 4828 50 0000 L CNN
+F 2 "" H 4650 4700 50 0001 C CNN
+F 3 "" H 4650 4700 50 0001 C CNN
+ 1 4650 4700
+ 0 1 1 0
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5BFD27A6
+P 4650 4800
+F 0 "#PWR?" H 4650 4550 50 0001 C CNN
+F 1 "GND" V 4655 4672 50 0000 R CNN
+F 2 "" H 4650 4800 50 0001 C CNN
+F 3 "" H 4650 4800 50 0001 C CNN
+ 1 4650 4800
+ 0 -1 -1 0
+$EndComp
+Wire Wire Line
+ 4650 4800 4150 4800
+Wire Wire Line
+ 4150 4700 4650 4700
+Text Label 3300 4900 2 50 ~ 0
+DBGH_RX
+Text Label 3300 5000 2 50 ~ 0
+DBGH_TX
+Text Label 4500 4900 2 50 ~ 0
+DBGD_RX
+Text Label 4500 5000 2 50 ~ 0
+DBGD_TX
+Wire Wire Line
+ 4500 5000 4150 5000
+Wire Wire Line
+ 4150 4900 4500 4900
+Wire Wire Line
+ 3300 5000 2950 5000
+Wire Wire Line
+ 2950 4900 3300 4900
+$Comp
+L components:FE1.1s U?
+U 1 1 5BFFC98A
+P 3500 7500
+F 0 "U?" H 2750 8150 50 0000 C CNN
+F 1 "FE1.1s" H 4150 8150 50 0000 C CNN
+F 2 "" H 3500 7500 50 0001 C CNN
+F 3 "" H 3500 7500 50 0001 C CNN
+ 1 3500 7500
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 3600 6300 3600 6700
+Wire Wire Line
+ 3500 6300 3500 6700
+Wire Wire Line
+ 3000 9200 3000 8400
+Wire Wire Line
+ 2000 9200 3000 9200
+Wire Wire Line
+ 3100 8400 3100 9300
+Wire Wire Line
+ 2000 9300 3100 9300
+$Comp
+L conn:USB_A J?
+U 1 1 5C01D6A6
+P 1700 10400
+F 0 "J?" H 1500 10850 50 0000 L CNN
+F 1 "USB_A" H 1500 10750 50 0000 L CNN
+F 2 "" H 1850 10350 50 0001 C CNN
+F 3 "" H 1850 10350 50 0001 C CNN
+ 1 1700 10400
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5C01EA78
+P 1700 10900
+F 0 "#PWR?" H 1700 10650 50 0001 C CNN
+F 1 "GND" H 1705 10727 50 0000 C CNN
+F 2 "" H 1700 10900 50 0001 C CNN
+F 3 "" H 1700 10900 50 0001 C CNN
+ 1 1700 10900
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 1700 10900 1700 10800
+Wire Wire Line
+ 1600 10800 1700 10800
+Connection ~ 1700 10800
+Wire Wire Line
+ 2000 10400 3300 10400
+Wire Wire Line
+ 3300 10400 3300 8400
+Wire Wire Line
+ 2000 10500 3400 10500
+Wire Wire Line
+ 3400 10500 3400 8400
+Wire Wire Line
+ 4500 7300 4500 7400
+Wire Wire Line
+ 4500 7500 4500 7600
+$Comp
+L device:C_Small C?
+U 1 1 5C047824
+P 5050 7600
+F 0 "C?" V 5100 7700 50 0000 C CNN
+F 1 "10u" V 4912 7600 50 0000 C CNN
+F 2 "" H 5050 7600 50 0001 C CNN
+F 3 "" H 5050 7600 50 0001 C CNN
+ 1 5050 7600
+ 0 1 1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5C048AFF
+P 5200 7400
+F 0 "C?" V 4971 7400 50 0000 C CNN
+F 1 "10u" V 5062 7400 50 0000 C CNN
+F 2 "" H 5200 7400 50 0001 C CNN
+F 3 "" H 5200 7400 50 0001 C CNN
+ 1 5200 7400
+ 0 1 1 0
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5C049AB0
+P 5300 7800
+F 0 "#PWR?" H 5300 7550 50 0001 C CNN
+F 1 "GND" H 5305 7627 50 0000 C CNN
+F 2 "" H 5300 7800 50 0001 C CNN
+F 3 "" H 5300 7800 50 0001 C CNN
+ 1 5300 7800
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 5300 7800 4500 7800
+Wire Wire Line
+ 5300 7800 5300 7600
+Connection ~ 5300 7800
+Wire Wire Line
+ 5150 7600 5300 7600
+Connection ~ 5300 7600
+Wire Wire Line
+ 5300 7600 5300 7400
+Wire Wire Line
+ 4950 7600 4500 7600
+Connection ~ 4500 7600
+Wire Wire Line
+ 4500 7400 5100 7400
+Connection ~ 4500 7400
+Wire Wire Line
+ 4500 7200 4500 7100
+$Comp
+L power:VBUS #PWR?
+U 1 1 5C06BD77
+P 4500 7000
+F 0 "#PWR?" H 4500 6850 50 0001 C CNN
+F 1 "VBUS" H 4515 7173 50 0000 C CNN
+F 2 "" H 4500 7000 50 0001 C CNN
+F 3 "" H 4500 7000 50 0001 C CNN
+ 1 4500 7000
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 4500 7000 4500 7100
+Connection ~ 4500 7100
+$Comp
+L device:Crystal_GND24_Small Y?
+U 1 1 5C073CEB
+P 2000 7100
+F 0 "Y?" V 1954 7266 50 0000 L CNN
+F 1 "12MHz" V 2045 7266 50 0000 L CNN
+F 2 "" H 2000 7100 50 0001 C CNN
+F 3 "" H 2000 7100 50 0001 C CNN
+ 1 2000 7100
+ 0 1 1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5C07723C
+P 1650 7200
+F 0 "C?" V 1750 7300 50 0000 C CNN
+F 1 "22p" V 1800 7200 50 0000 C CNN
+F 2 "" H 1650 7200 50 0001 C CNN
+F 3 "" H 1650 7200 50 0001 C CNN
+ 1 1650 7200
+ 0 1 1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5C079071
+P 1650 7000
+F 0 "C?" V 1550 7100 50 0000 C CNN
+F 1 "22p" V 1512 7000 50 0000 C CNN
+F 2 "" H 1650 7000 50 0001 C CNN
+F 3 "" H 1650 7000 50 0001 C CNN
+ 1 1650 7000
+ 0 1 1 0
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5C07C20B
+P 1450 7500
+F 0 "#PWR?" H 1450 7250 50 0001 C CNN
+F 1 "GND" H 1455 7327 50 0000 C CNN
+F 2 "" H 1450 7500 50 0001 C CNN
+F 3 "" H 1450 7500 50 0001 C CNN
+ 1 1450 7500
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 1450 7500 1450 7400
+Wire Wire Line
+ 1450 7000 1550 7000
+Wire Wire Line
+ 1550 7200 1450 7200
+Connection ~ 1450 7200
+Wire Wire Line
+ 1450 7200 1450 7000
+Wire Wire Line
+ 1750 7200 2000 7200
+Connection ~ 2000 7200
+Wire Wire Line
+ 2000 7200 2500 7200
+Wire Wire Line
+ 2500 7100 2300 7100
+Wire Wire Line
+ 2300 7100 2300 7000
+Wire Wire Line
+ 2300 7000 2000 7000
+Connection ~ 2000 7000
+Wire Wire Line
+ 2000 7000 1750 7000
+$Comp
+L device:R_Small R?
+U 1 1 5C095FA0
+P 2300 7400
+F 0 "R?" V 2400 7400 50 0000 C CNN
+F 1 "2k7" V 2195 7400 50 0000 C CNN
+F 2 "" H 2300 7400 50 0001 C CNN
+F 3 "" H 2300 7400 50 0001 C CNN
+ 1 2300 7400
+ 0 1 1 0
+$EndComp
+Wire Wire Line
+ 2200 7400 2000 7400
+Connection ~ 1450 7400
+Wire Wire Line
+ 1450 7400 1450 7200
+Wire Wire Line
+ 2500 7400 2400 7400
+Wire Wire Line
+ 2500 7600 2000 7600
+Wire Wire Line
+ 2000 7600 2000 7400
+Connection ~ 2000 7400
+Wire Wire Line
+ 2000 7400 1450 7400
+Text Label 4600 7400 0 50 ~ 0
+3V3_HUB
+Text Label 2100 7700 0 50 ~ 0
+3V3_HUB
+Wire Wire Line
+ 2100 7700 2500 7700
+NoConn ~ 2500 7800
+Wire Wire Line
+ 2000 7600 2000 7900
+Wire Wire Line
+ 2000 7900 2500 7900
+Connection ~ 2000 7600
+$Comp
+L device:R_Small R?
+U 1 1 5C0F41D6
+P 1900 8000
+F 0 "R?" V 2000 8000 50 0000 C CNN
+F 1 "10k" V 1795 8000 50 0000 C CNN
+F 2 "" H 1900 8000 50 0001 C CNN
+F 3 "" H 1900 8000 50 0001 C CNN
+ 1 1900 8000
+ 0 1 1 0
+$EndComp
+Text Label 1450 8000 0 50 ~ 0
+3V3_HUB
+Wire Wire Line
+ 1450 8000 1800 8000
+Wire Wire Line
+ 2000 8000 2200 8000
+Text Label 1700 8250 0 50 ~ 0
+HUB_NRST
+Wire Wire Line
+ 1700 8250 2200 8250
+Wire Wire Line
+ 2200 8250 2200 8000
+Connection ~ 2200 8000
+Wire Wire Line
+ 2200 8000 2500 8000
+Text Label 10100 2700 2 50 ~ 0
+HUB_NRST
+Wire Wire Line
+ 10100 2700 9350 2700
+$Comp
+L Connector_Generic:Conn_02x05_Odd_Even J?
+U 1 1 5C134723
+P 4150 9550
+F 0 "J?" H 4200 9967 50 0000 C CNN
+F 1 "USB_SPARE" H 4200 9876 50 0000 C CNN
+F 2 "" H 4150 9550 50 0001 C CNN
+F 3 "~" H 4150 9550 50 0001 C CNN
+ 1 4150 9550
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:VBUS #PWR?
+U 1 1 5C17F16B
+P 4200 9000
+F 0 "#PWR?" H 4200 8850 50 0001 C CNN
+F 1 "VBUS" H 4215 9173 50 0000 C CNN
+F 2 "" H 4200 9000 50 0001 C CNN
+F 3 "" H 4200 9000 50 0001 C CNN
+ 1 4200 9000
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 4200 9000 3950 9000
+Wire Wire Line
+ 3950 9000 3950 9350
+Wire Wire Line
+ 4200 9000 4450 9000
+Wire Wire Line
+ 4450 9000 4450 9350
+Connection ~ 4200 9000
+$Comp
+L power:GND #PWR?
+U 1 1 5C18FF7C
+P 4200 9950
+F 0 "#PWR?" H 4200 9700 50 0001 C CNN
+F 1 "GND" H 4205 9777 50 0000 C CNN
+F 2 "" H 4200 9950 50 0001 C CNN
+F 3 "" H 4200 9950 50 0001 C CNN
+ 1 4200 9950
+ 1 0 0 -1
+$EndComp
+NoConn ~ 3950 9750
+NoConn ~ 4450 9750
+Wire Wire Line
+ 3950 9650 3850 9650
+Wire Wire Line
+ 3850 9650 3850 9950
+Wire Wire Line
+ 3850 9950 4200 9950
+Wire Wire Line
+ 4550 9950 4550 9650
+Wire Wire Line
+ 4550 9650 4450 9650
+Connection ~ 4200 9950
+Wire Wire Line
+ 4200 9950 4550 9950
+Wire Wire Line
+ 3950 9450 3700 9450
+Wire Wire Line
+ 3700 9450 3700 8400
+Wire Wire Line
+ 3600 8400 3600 9550
+Wire Wire Line
+ 3600 9550 3950 9550
+Wire Wire Line
+ 4450 9450 4650 9450
+Wire Wire Line
+ 4650 9450 4650 8500
+Wire Wire Line
+ 4650 8500 4000 8500
+Wire Wire Line
+ 4000 8500 4000 8400
+Wire Wire Line
+ 3900 8400 3900 8600
+Wire Wire Line
+ 3900 8600 4550 8600
+Wire Wire Line
+ 4550 8600 4550 9550
+Wire Wire Line
+ 4550 9550 4450 9550
+$Comp
+L device:Speaker_Crystal LS?
+U 1 1 5C238571
+P 7650 10250
+F 0 "LS?" H 7617 9833 50 0000 C CNN
+F 1 "12mm passive piezo" H 7617 9924 50 0000 C CNN
+F 2 "" H 7615 10200 50 0001 C CNN
+F 3 "" H 7615 10200 50 0001 C CNN
+ 1 7650 10250
+ -1 0 0 1
+$EndComp
+$Comp
+L transistors:2N7002 Q?
+U 1 1 5C23FA3A
+P 9350 9700
+F 0 "Q?" H 9556 9654 50 0000 L CNN
+F 1 "AO3400" H 9556 9745 50 0000 L CNN
+F 2 "TO_SOT_Packages_SMD:SOT-23" H 9550 9625 50 0001 L CIN
+F 3 "https://www.fairchildsemi.com/datasheets/2N/2N7002.pdf" H 9350 9700 50 0001 L CNN
+ 1 9350 9700
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C249B1C
+P 7500 9250
+F 0 "D?" V 7492 9132 50 0000 R CNN
+F 1 "Ice blue" V 7447 9133 50 0001 R CNN
+F 2 "" H 7500 9250 50 0001 C CNN
+F 3 "" H 7500 9250 50 0001 C CNN
+ 1 7500 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C25931E
+P 7850 9250
+F 0 "D?" V 7842 9132 50 0000 R CNN
+F 1 "Ice blue" V 7797 9133 50 0001 R CNN
+F 2 "" H 7850 9250 50 0001 C CNN
+F 3 "" H 7850 9250 50 0001 C CNN
+ 1 7850 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C25AEAB
+P 8200 9250
+F 0 "D?" V 8192 9132 50 0000 R CNN
+F 1 "Ice blue" V 8147 9133 50 0001 R CNN
+F 2 "" H 8200 9250 50 0001 C CNN
+F 3 "" H 8200 9250 50 0001 C CNN
+ 1 8200 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C25B671
+P 8550 9250
+F 0 "D?" V 8542 9132 50 0000 R CNN
+F 1 "Ice blue" V 8497 9133 50 0001 R CNN
+F 2 "" H 8550 9250 50 0001 C CNN
+F 3 "" H 8550 9250 50 0001 C CNN
+ 1 8550 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C25C2E7
+P 8900 9250
+F 0 "D?" V 8892 9132 50 0000 R CNN
+F 1 "Ice blue" V 8847 9133 50 0001 R CNN
+F 2 "" H 8900 9250 50 0001 C CNN
+F 3 "" H 8900 9250 50 0001 C CNN
+ 1 8900 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C25CA14
+P 9250 9250
+F 0 "D?" V 9288 9132 50 0000 R CNN
+F 1 "ice blue" V 9197 9132 50 0000 R CNN
+F 2 "" H 9250 9250 50 0001 C CNN
+F 3 "" H 9250 9250 50 0001 C CNN
+ 1 9250 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C25E0F0
+P 7500 8900
+F 0 "R?" H 7559 8946 50 0000 L CNN
+F 1 "100" H 7559 8855 50 0000 L CNN
+F 2 "" H 7500 8900 50 0001 C CNN
+F 3 "" H 7500 8900 50 0001 C CNN
+ 1 7500 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C25EB0C
+P 7850 8900
+F 0 "R?" H 7909 8946 50 0000 L CNN
+F 1 "100" H 7909 8855 50 0000 L CNN
+F 2 "" H 7850 8900 50 0001 C CNN
+F 3 "" H 7850 8900 50 0001 C CNN
+ 1 7850 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C25EC8A
+P 8200 8900
+F 0 "R?" H 8259 8946 50 0000 L CNN
+F 1 "100" H 8259 8855 50 0000 L CNN
+F 2 "" H 8200 8900 50 0001 C CNN
+F 3 "" H 8200 8900 50 0001 C CNN
+ 1 8200 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C25F0FB
+P 8550 8900
+F 0 "R?" H 8609 8946 50 0000 L CNN
+F 1 "100" H 8609 8855 50 0000 L CNN
+F 2 "" H 8550 8900 50 0001 C CNN
+F 3 "" H 8550 8900 50 0001 C CNN
+ 1 8550 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C25F439
+P 8900 8900
+F 0 "R?" H 8959 8946 50 0000 L CNN
+F 1 "100" H 8959 8855 50 0000 L CNN
+F 2 "" H 8900 8900 50 0001 C CNN
+F 3 "" H 8900 8900 50 0001 C CNN
+ 1 8900 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C26016A
+P 9250 8900
+F 0 "R?" H 9309 8946 50 0000 L CNN
+F 1 "100" H 9309 8855 50 0000 L CNN
+F 2 "" H 9250 8900 50 0001 C CNN
+F 3 "" H 9250 8900 50 0001 C CNN
+ 1 9250 8900
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 9250 9500 9250 9400
+Wire Wire Line
+ 9250 9400 8900 9400
+Connection ~ 9250 9400
+Connection ~ 7850 9400
+Wire Wire Line
+ 7850 9400 7500 9400
+Connection ~ 8200 9400
+Wire Wire Line
+ 8200 9400 7850 9400
+Connection ~ 8550 9400
+Wire Wire Line
+ 8550 9400 8200 9400
+Connection ~ 8900 9400
+Wire Wire Line
+ 8900 9400 8550 9400
+Wire Wire Line
+ 7500 9100 7500 9000
+Wire Wire Line
+ 7850 9000 7850 9100
+Wire Wire Line
+ 8200 9000 8200 9100
+Wire Wire Line
+ 8550 9000 8550 9100
+Wire Wire Line
+ 8900 9000 8900 9100
+Wire Wire Line
+ 9250 9000 9250 9100
+$Comp
+L power:VBUS #PWR?
+U 1 1 5C2C37A2
+P 9250 8700
+F 0 "#PWR?" H 9250 8550 50 0001 C CNN
+F 1 "VBUS" H 9265 8873 50 0000 C CNN
+F 2 "" H 9250 8700 50 0001 C CNN
+F 3 "" H 9250 8700 50 0001 C CNN
+ 1 9250 8700
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 9250 8700 9250 8800
+Wire Wire Line
+ 9250 8800 8900 8800
+Connection ~ 9250 8800
+Connection ~ 7850 8800
+Wire Wire Line
+ 7850 8800 7500 8800
+Connection ~ 8200 8800
+Wire Wire Line
+ 8200 8800 7850 8800
+Connection ~ 8550 8800
+Wire Wire Line
+ 8550 8800 8200 8800
+Connection ~ 8900 8800
+Wire Wire Line
+ 8900 8800 8550 8800
+$Comp
+L power:GND #PWR?
+U 1 1 5C2D1E2D
+P 9250 10000
+F 0 "#PWR?" H 9250 9750 50 0001 C CNN
+F 1 "GND" H 9255 9827 50 0000 C CNN
+F 2 "" H 9250 10000 50 0001 C CNN
+F 3 "" H 9250 10000 50 0001 C CNN
+ 1 9250 10000
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 9250 10000 9250 9900
+$Comp
+L transistors:2N7002 Q?
+U 1 1 5C2E1C85
+P 11650 9700
+F 0 "Q?" H 11856 9654 50 0000 L CNN
+F 1 "AO3400" H 11856 9745 50 0000 L CNN
+F 2 "TO_SOT_Packages_SMD:SOT-23" H 11850 9625 50 0001 L CIN
+F 3 "https://www.fairchildsemi.com/datasheets/2N/2N7002.pdf" H 11650 9700 50 0001 L CNN
+ 1 11650 9700
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C2E1C8C
+P 9800 9250
+F 0 "D?" V 9792 9132 50 0000 R CNN
+F 1 "pink" V 9747 9133 50 0001 R CNN
+F 2 "" H 9800 9250 50 0001 C CNN
+F 3 "" H 9800 9250 50 0001 C CNN
+ 1 9800 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C2E1C93
+P 10150 9250
+F 0 "D?" V 10142 9132 50 0000 R CNN
+F 1 "pink" V 10097 9133 50 0001 R CNN
+F 2 "" H 10150 9250 50 0001 C CNN
+F 3 "" H 10150 9250 50 0001 C CNN
+ 1 10150 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C2E1C9A
+P 10500 9250
+F 0 "D?" V 10492 9132 50 0000 R CNN
+F 1 "pink" V 10447 9133 50 0001 R CNN
+F 2 "" H 10500 9250 50 0001 C CNN
+F 3 "" H 10500 9250 50 0001 C CNN
+ 1 10500 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C2E1CA1
+P 10850 9250
+F 0 "D?" V 10842 9132 50 0000 R CNN
+F 1 "pink" V 10797 9133 50 0001 R CNN
+F 2 "" H 10850 9250 50 0001 C CNN
+F 3 "" H 10850 9250 50 0001 C CNN
+ 1 10850 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C2E1CA8
+P 11200 9250
+F 0 "D?" V 11192 9132 50 0000 R CNN
+F 1 "pink" V 11147 9133 50 0001 R CNN
+F 2 "" H 11200 9250 50 0001 C CNN
+F 3 "" H 11200 9250 50 0001 C CNN
+ 1 11200 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:LED D?
+U 1 1 5C2E1CAF
+P 11550 9250
+F 0 "D?" V 11588 9132 50 0000 R CNN
+F 1 "pink" V 11497 9132 50 0000 R CNN
+F 2 "" H 11550 9250 50 0001 C CNN
+F 3 "" H 11550 9250 50 0001 C CNN
+ 1 11550 9250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C2E1CB6
+P 9800 8900
+F 0 "R?" H 9859 8946 50 0000 L CNN
+F 1 "100" H 9859 8855 50 0000 L CNN
+F 2 "" H 9800 8900 50 0001 C CNN
+F 3 "" H 9800 8900 50 0001 C CNN
+ 1 9800 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C2E1CBD
+P 10150 8900
+F 0 "R?" H 10209 8946 50 0000 L CNN
+F 1 "100" H 10209 8855 50 0000 L CNN
+F 2 "" H 10150 8900 50 0001 C CNN
+F 3 "" H 10150 8900 50 0001 C CNN
+ 1 10150 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C2E1CC4
+P 10500 8900
+F 0 "R?" H 10559 8946 50 0000 L CNN
+F 1 "100" H 10559 8855 50 0000 L CNN
+F 2 "" H 10500 8900 50 0001 C CNN
+F 3 "" H 10500 8900 50 0001 C CNN
+ 1 10500 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C2E1CCB
+P 10850 8900
+F 0 "R?" H 10909 8946 50 0000 L CNN
+F 1 "100" H 10909 8855 50 0000 L CNN
+F 2 "" H 10850 8900 50 0001 C CNN
+F 3 "" H 10850 8900 50 0001 C CNN
+ 1 10850 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C2E1CD2
+P 11200 8900
+F 0 "R?" H 11259 8946 50 0000 L CNN
+F 1 "100" H 11259 8855 50 0000 L CNN
+F 2 "" H 11200 8900 50 0001 C CNN
+F 3 "" H 11200 8900 50 0001 C CNN
+ 1 11200 8900
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C2E1CD9
+P 11550 8900
+F 0 "R?" H 11609 8946 50 0000 L CNN
+F 1 "100" H 11609 8855 50 0000 L CNN
+F 2 "" H 11550 8900 50 0001 C CNN
+F 3 "" H 11550 8900 50 0001 C CNN
+ 1 11550 8900
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 11550 9500 11550 9400
+Wire Wire Line
+ 11550 9400 11200 9400
+Connection ~ 11550 9400
+Connection ~ 10150 9400
+Wire Wire Line
+ 10150 9400 9800 9400
+Connection ~ 10500 9400
+Wire Wire Line
+ 10500 9400 10150 9400
+Connection ~ 10850 9400
+Wire Wire Line
+ 10850 9400 10500 9400
+Connection ~ 11200 9400
+Wire Wire Line
+ 11200 9400 10850 9400
+Wire Wire Line
+ 9800 9100 9800 9000
+Wire Wire Line
+ 10150 9000 10150 9100
+Wire Wire Line
+ 10500 9000 10500 9100
+Wire Wire Line
+ 10850 9000 10850 9100
+Wire Wire Line
+ 11200 9000 11200 9100
+Wire Wire Line
+ 11550 9000 11550 9100
+$Comp
+L power:VBUS #PWR?
+U 1 1 5C2E1CF1
+P 11550 8700
+F 0 "#PWR?" H 11550 8550 50 0001 C CNN
+F 1 "VBUS" H 11565 8873 50 0000 C CNN
+F 2 "" H 11550 8700 50 0001 C CNN
+F 3 "" H 11550 8700 50 0001 C CNN
+ 1 11550 8700
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 11550 8700 11550 8800
+Wire Wire Line
+ 11550 8800 11200 8800
+Connection ~ 11550 8800
+Connection ~ 10150 8800
+Wire Wire Line
+ 10150 8800 9800 8800
+Connection ~ 10500 8800
+Wire Wire Line
+ 10500 8800 10150 8800
+Connection ~ 10850 8800
+Wire Wire Line
+ 10850 8800 10500 8800
+Connection ~ 11200 8800
+Wire Wire Line
+ 11200 8800 10850 8800
+$Comp
+L power:GND #PWR?
+U 1 1 5C2E1D02
+P 11550 10000
+F 0 "#PWR?" H 11550 9750 50 0001 C CNN
+F 1 "GND" H 11555 9827 50 0000 C CNN
+F 2 "" H 11550 10000 50 0001 C CNN
+F 3 "" H 11550 10000 50 0001 C CNN
+ 1 11550 10000
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 11550 10000 11550 9900
+Text Label 10250 9700 2 50 ~ 0
+ALARM_LED_BLUE
+Wire Wire Line
+ 10250 9700 9550 9700
+Text Label 12550 9700 2 50 ~ 0
+ALARM_LED_PINK
+Wire Wire Line
+ 12550 9700 11850 9700
+Text Label 10100 2800 2 50 ~ 0
+ALARM_LED_BLUE
+Text Label 10100 2900 2 50 ~ 0
+ALARM_LED_PINK
+Wire Wire Line
+ 10100 2900 9350 2900
+Wire Wire Line
+ 9350 2800 10100 2800
+$Comp
+L transistors:2N7002 Q?
+U 1 1 5C35C82C
+P 8050 10550
+F 0 "Q?" H 8256 10504 50 0000 L CNN
+F 1 "AO3400" H 8256 10595 50 0000 L CNN
+F 2 "TO_SOT_Packages_SMD:SOT-23" H 8250 10475 50 0001 L CIN
+F 3 "https://www.fairchildsemi.com/datasheets/2N/2N7002.pdf" H 8050 10550 50 0001 L CNN
+ 1 8050 10550
+ -1 0 0 1
+$EndComp
+Wire Wire Line
+ 7950 10350 7950 10300
+Wire Wire Line
+ 7950 10250 7850 10250
+$Comp
+L device:C_Small C?
+U 1 1 5C36E3E6
+P 8500 10650
+F 0 "C?" H 8592 10696 50 0000 L CNN
+F 1 "100p" H 8592 10605 50 0000 L CNN
+F 2 "" H 8500 10650 50 0001 C CNN
+F 3 "" H 8500 10650 50 0001 C CNN
+ 1 8500 10650
+ 1 0 0 -1
+$EndComp
+$Comp
+L power:VBUS #PWR?
+U 1 1 5C3825D2
+P 7950 10050
+F 0 "#PWR?" H 7950 9900 50 0001 C CNN
+F 1 "VBUS" H 7965 10223 50 0000 C CNN
+F 2 "" H 7950 10050 50 0001 C CNN
+F 3 "" H 7950 10050 50 0001 C CNN
+ 1 7950 10050
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 7850 10150 7950 10150
+Wire Wire Line
+ 7950 10150 7950 10100
+$Comp
+L device:R_Small R?
+U 1 1 5C39507D
+P 8150 10200
+F 0 "R?" H 8209 10246 50 0000 L CNN
+F 1 "100" H 8209 10155 50 0000 L CNN
+F 2 "" H 8150 10200 50 0001 C CNN
+F 3 "" H 8150 10200 50 0001 C CNN
+ 1 8150 10200
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 8150 10100 7950 10100
+Connection ~ 7950 10100
+Wire Wire Line
+ 7950 10100 7950 10050
+Wire Wire Line
+ 8150 10300 7950 10300
+Connection ~ 7950 10300
+Wire Wire Line
+ 7950 10300 7950 10250
+$Comp
+L power:GND #PWR?
+U 1 1 5C3B929C
+P 7950 10850
+F 0 "#PWR?" H 7950 10600 50 0001 C CNN
+F 1 "GND" H 7955 10677 50 0000 C CNN
+F 2 "" H 7950 10850 50 0001 C CNN
+F 3 "" H 7950 10850 50 0001 C CNN
+ 1 7950 10850
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:R_Small R?
+U 1 1 5C3BA02E
+P 8800 10550
+F 0 "R?" V 8604 10550 50 0000 C CNN
+F 1 "1k" V 8695 10550 50 0000 C CNN
+F 2 "" H 8800 10550 50 0001 C CNN
+F 3 "" H 8800 10550 50 0001 C CNN
+ 1 8800 10550
+ 0 1 1 0
+$EndComp
+Wire Wire Line
+ 8700 10550 8500 10550
+Connection ~ 8500 10550
+Wire Wire Line
+ 8500 10550 8250 10550
+Wire Wire Line
+ 7950 10750 7950 10850
+Wire Wire Line
+ 7950 10750 8500 10750
+Connection ~ 7950 10750
+Wire Wire Line
+ 8900 10550 9400 10550
+Text Label 9400 10550 2 50 ~ 0
+PIEZO_OUT
+Text Label 10100 4900 2 50 ~ 0
+PIEZO_OUT
+Wire Wire Line
+ 10100 4900 9350 4900
+$Comp
+L device:CP_Small C?
+U 1 1 5C51704D
+P 2350 8750
+F 0 "C?" V 2250 8600 50 0000 C CNN
+F 1 "47u" V 2216 8750 50 0000 C CNN
+F 2 "" H 2350 8750 50 0001 C CNN
+F 3 "" H 2350 8750 50 0001 C CNN
+ 1 2350 8750
+ 0 1 1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5C51BE00
+P 2350 9000
+F 0 "C?" V 2250 8850 50 0000 C CNN
+F 1 "100n" V 2500 9000 50 0000 C CNN
+F 2 "" H 2350 9000 50 0001 C CNN
+F 3 "" H 2350 9000 50 0001 C CNN
+ 1 2350 9000
+ 0 1 1 0
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5C5297AC
+P 2550 9000
+F 0 "#PWR?" H 2550 8750 50 0001 C CNN
+F 1 "GND" H 2700 8950 50 0000 C CNN
+F 2 "" H 2550 9000 50 0001 C CNN
+F 3 "" H 2550 9000 50 0001 C CNN
+ 1 2550 9000
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 2550 9000 2450 9000
+Wire Wire Line
+ 2450 9000 2450 8750
+Connection ~ 2450 9000
+Wire Wire Line
+ 2250 9000 2100 9000
+Connection ~ 2100 9000
+Wire Wire Line
+ 2250 8750 2100 8750
+Connection ~ 2100 8750
+Wire Wire Line
+ 2100 8750 2100 9000
+Wire Wire Line
+ 2100 9800 2100 9950
+Wire Wire Line
+ 2100 10200 2000 10200
+$Comp
+L power:VBUS #PWR?
+U 1 1 5C562857
+P 2100 9800
+F 0 "#PWR?" H 2100 9650 50 0001 C CNN
+F 1 "VBUS" H 2115 9973 50 0000 C CNN
+F 2 "" H 2100 9800 50 0001 C CNN
+F 3 "" H 2100 9800 50 0001 C CNN
+ 1 2100 9800
+ 1 0 0 -1
+$EndComp
+$Comp
+L device:CP_Small C?
+U 1 1 5C56285D
+P 2350 9950
+F 0 "C?" V 2250 9800 50 0000 C CNN
+F 1 "47u" V 2216 9950 50 0000 C CNN
+F 2 "" H 2350 9950 50 0001 C CNN
+F 3 "" H 2350 9950 50 0001 C CNN
+ 1 2350 9950
+ 0 1 1 0
+$EndComp
+$Comp
+L device:C_Small C?
+U 1 1 5C562864
+P 2350 10200
+F 0 "C?" V 2250 10050 50 0000 C CNN
+F 1 "100n" V 2500 10200 50 0000 C CNN
+F 2 "" H 2350 10200 50 0001 C CNN
+F 3 "" H 2350 10200 50 0001 C CNN
+ 1 2350 10200
+ 0 1 1 0
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5C56286B
+P 2550 10200
+F 0 "#PWR?" H 2550 9950 50 0001 C CNN
+F 1 "GND" H 2700 10150 50 0000 C CNN
+F 2 "" H 2550 10200 50 0001 C CNN
+F 3 "" H 2550 10200 50 0001 C CNN
+ 1 2550 10200
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 2550 10200 2450 10200
+Wire Wire Line
+ 2450 10200 2450 9950
+Connection ~ 2450 10200
+Wire Wire Line
+ 2250 10200 2100 10200
+Connection ~ 2100 10200
+Wire Wire Line
+ 2250 9950 2100 9950
+Connection ~ 2100 9950
+Wire Wire Line
+ 2100 9950 2100 10200
+Text Label 10100 2400 2 50 ~ 0
+SECURE_IF_F4TX
+Text Label 10100 2500 2 50 ~ 0
+SECURE_IF_F4RX
+Wire Wire Line
+ 10100 2500 9350 2500
+Wire Wire Line
+ 10100 2400 9350 2400
+$Comp
+L device:LED_Small D?
+U 1 1 5C5B8E64
+P 6600 8950
+F 0 "D?" H 6500 8900 50 0000 C CNN
+F 1 "red" H 6700 8900 50 0000 C CNN
+F 2 "" V 6600 8950 50 0001 C CNN
+F 3 "" V 6600 8950 50 0001 C CNN
+ 1 6600 8950
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5C2170
+P 6600 9100
+F 0 "D?" H 6500 9050 50 0000 C CNN
+F 1 "red" H 6700 9050 50 0000 C CNN
+F 2 "" V 6600 9100 50 0001 C CNN
+F 3 "" V 6600 9100 50 0001 C CNN
+ 1 6600 9100
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5C4C69
+P 6600 9250
+F 0 "D?" H 6500 9200 50 0000 C CNN
+F 1 "red" H 6700 9200 50 0000 C CNN
+F 2 "" V 6600 9250 50 0001 C CNN
+F 3 "" V 6600 9250 50 0001 C CNN
+ 1 6600 9250
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5C8AAB
+P 6600 9400
+F 0 "D?" H 6500 9350 50 0000 C CNN
+F 1 "red" H 6700 9350 50 0000 C CNN
+F 2 "" V 6600 9400 50 0001 C CNN
+F 3 "" V 6600 9400 50 0001 C CNN
+ 1 6600 9400
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5CCC8D
+P 6600 9550
+F 0 "D?" H 6500 9500 50 0000 C CNN
+F 1 "red" H 6700 9500 50 0000 C CNN
+F 2 "" V 6600 9550 50 0001 C CNN
+F 3 "" V 6600 9550 50 0001 C CNN
+ 1 6600 9550
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5CF123
+P 6600 9700
+F 0 "D?" H 6500 9650 50 0000 C CNN
+F 1 "red" H 6700 9650 50 0000 C CNN
+F 2 "" V 6600 9700 50 0001 C CNN
+F 3 "" V 6600 9700 50 0001 C CNN
+ 1 6600 9700
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5CFFD0
+P 6600 9850
+F 0 "D?" H 6500 9800 50 0000 C CNN
+F 1 "red" H 6700 9800 50 0000 C CNN
+F 2 "" V 6600 9850 50 0001 C CNN
+F 3 "" V 6600 9850 50 0001 C CNN
+ 1 6600 9850
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5D158A
+P 6600 10000
+F 0 "D?" H 6500 9950 50 0000 C CNN
+F 1 "red" H 6700 9950 50 0000 C CNN
+F 2 "" V 6600 10000 50 0001 C CNN
+F 3 "" V 6600 10000 50 0001 C CNN
+ 1 6600 10000
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5D3F1F
+P 6600 10150
+F 0 "D?" H 6500 10100 50 0000 C CNN
+F 1 "red" H 6700 10100 50 0000 C CNN
+F 2 "" V 6600 10150 50 0001 C CNN
+F 3 "" V 6600 10150 50 0001 C CNN
+ 1 6600 10150
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5D4845
+P 6600 10300
+F 0 "D?" H 6500 10250 50 0000 C CNN
+F 1 "red" H 6700 10250 50 0000 C CNN
+F 2 "" V 6600 10300 50 0001 C CNN
+F 3 "" V 6600 10300 50 0001 C CNN
+ 1 6600 10300
+ -1 0 0 1
+$EndComp
+$Comp
+L device:LED_Small D?
+U 1 1 5C5D5CC9
+P 6600 10450
+F 0 "D?" H 6500 10400 50 0000 C CNN
+F 1 "red" H 6700 10400 50 0000 C CNN
+F 2 "" V 6600 10450 50 0001 C CNN
+F 3 "" V 6600 10450 50 0001 C CNN
+ 1 6600 10450
+ -1 0 0 1
+$EndComp
+$Comp
+L device:R_Pack04 RN?
+U 1 1 5C5DE49D
+P 6150 9150
+F 0 "RN?" V 5733 9150 50 0000 C CNN
+F 1 "4*620" V 5824 9150 50 0000 C CNN
+F 2 "" V 6425 9150 50 0001 C CNN
+F 3 "" H 6150 9150 50 0001 C CNN
+ 1 6150 9150
+ 0 1 1 0
+$EndComp
+Wire Wire Line
+ 6500 8950 6350 8950
+Wire Wire Line
+ 6500 9100 6400 9100
+Wire Wire Line
+ 6400 9100 6400 9050
+Wire Wire Line
+ 6400 9050 6350 9050
+Wire Wire Line
+ 6350 9150 6400 9150
+Wire Wire Line
+ 6400 9150 6400 9250
+Wire Wire Line
+ 6400 9250 6500 9250
+Wire Wire Line
+ 6350 9250 6350 9400
+Wire Wire Line
+ 6350 9400 6500 9400
+$Comp
+L device:R_Pack04 RN?
+U 1 1 5C63187D
+P 6150 9750
+F 0 "RN?" V 5733 9750 50 0000 C CNN
+F 1 "4*620" V 5824 9750 50 0000 C CNN
+F 2 "" V 6425 9750 50 0001 C CNN
+F 3 "" H 6150 9750 50 0001 C CNN
+ 1 6150 9750
+ 0 1 1 0
+$EndComp
+$Comp
+L device:R_Pack04 RN?
+U 1 1 5C63296F
+P 6150 10350
+F 0 "RN?" V 5733 10350 50 0000 C CNN
+F 1 "4*620" V 5824 10350 50 0000 C CNN
+F 2 "" V 6425 10350 50 0001 C CNN
+F 3 "" H 6150 10350 50 0001 C CNN
+ 1 6150 10350
+ 0 1 1 0
+$EndComp
+Wire Wire Line
+ 6500 9550 6350 9550
+Wire Wire Line
+ 6350 9650 6400 9650
+Wire Wire Line
+ 6400 9650 6400 9700
+Wire Wire Line
+ 6400 9700 6500 9700
+Wire Wire Line
+ 6500 9850 6400 9850
+Wire Wire Line
+ 6400 9850 6400 9750
+Wire Wire Line
+ 6400 9750 6350 9750
+Wire Wire Line
+ 6350 9850 6350 10000
+Wire Wire Line
+ 6350 10000 6500 10000
+Wire Wire Line
+ 6500 10150 6350 10150
+Wire Wire Line
+ 6350 10250 6400 10250
+Wire Wire Line
+ 6400 10250 6400 10300
+Wire Wire Line
+ 6400 10300 6500 10300
+Wire Wire Line
+ 6500 10450 6400 10450
+Wire Wire Line
+ 6400 10450 6400 10350
+Wire Wire Line
+ 6400 10350 6350 10350
+$Comp
+L device:LED_Small D?
+U 1 1 5C6C0DF6
+P 6600 10600
+F 0 "D?" H 6500 10550 50 0000 C CNN
+F 1 "red" H 6700 10550 50 0000 C CNN
+F 2 "" V 6600 10600 50 0001 C CNN
+F 3 "" V 6600 10600 50 0001 C CNN
+ 1 6600 10600
+ -1 0 0 1
+$EndComp
+Wire Wire Line
+ 6500 10600 6350 10600
+Wire Wire Line
+ 6350 10600 6350 10450
+Connection ~ 5950 9050
+Wire Wire Line
+ 5950 9050 5950 8950
+Connection ~ 5950 9150
+Wire Wire Line
+ 5950 9150 5950 9050
+Connection ~ 5950 9250
+Wire Wire Line
+ 5950 9250 5950 9150
+Connection ~ 5950 9550
+Wire Wire Line
+ 5950 9550 5950 9250
+Connection ~ 5950 9650
+Wire Wire Line
+ 5950 9650 5950 9550
+Connection ~ 5950 9750
+Wire Wire Line
+ 5950 9750 5950 9650
+Connection ~ 5950 9850
+Wire Wire Line
+ 5950 9850 5950 9750
+Connection ~ 5950 10150
+Wire Wire Line
+ 5950 10150 5950 9850
+Connection ~ 5950 10250
+Wire Wire Line
+ 5950 10250 5950 10150
+Connection ~ 5950 10350
+Wire Wire Line
+ 5950 10350 5950 10250
+Wire Wire Line
+ 5950 10450 5950 10350
+Text Label 7000 9100 2 50 ~ 0
+LED1
+Text Label 7000 9250 2 50 ~ 0
+LED2
+Text Label 7000 9400 2 50 ~ 0
+LED3
+Text Label 7000 9550 2 50 ~ 0
+LED4
+Text Label 7000 9700 2 50 ~ 0
+LED5
+Text Label 7000 9850 2 50 ~ 0
+LED6
+Text Label 7000 10000 2 50 ~ 0
+LED7
+Text Label 7000 8950 2 50 ~ 0
+LED0
+Text Label 7000 10150 2 50 ~ 0
+LED8
+Text Label 7000 10300 2 50 ~ 0
+LED9
+Text Label 7000 10450 2 50 ~ 0
+LED10
+Text Label 7000 10600 2 50 ~ 0
+LED11
+Wire Wire Line
+ 7000 8950 6700 8950
+Wire Wire Line
+ 6700 9100 7000 9100
+Wire Wire Line
+ 7000 9250 6700 9250
+Wire Wire Line
+ 6700 9400 7000 9400
+Wire Wire Line
+ 7000 9550 6700 9550
+Wire Wire Line
+ 6700 9700 7000 9700
+Wire Wire Line
+ 7000 9850 6700 9850
+Wire Wire Line
+ 6700 10000 7000 10000
+Wire Wire Line
+ 7000 10150 6700 10150
+Wire Wire Line
+ 6700 10300 7000 10300
+Wire Wire Line
+ 7000 10450 6700 10450
+Wire Wire Line
+ 6700 10600 7000 10600
+$Comp
+L power:VBUS #PWR?
+U 1 1 5C8558D2
+P 5950 8850
+F 0 "#PWR?" H 5950 8700 50 0001 C CNN
+F 1 "VBUS" H 5965 9023 50 0000 C CNN
+F 2 "" H 5950 8850 50 0001 C CNN
+F 3 "" H 5950 8850 50 0001 C CNN
+ 1 5950 8850
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 5950 8850 5950 8950
+Connection ~ 5950 8950
+Text Label 7200 4300 0 50 ~ 0
+LED0
+Text Label 7200 4400 0 50 ~ 0
+LED1
+Text Label 7200 4500 0 50 ~ 0
+LED2
+Text Label 7200 4600 0 50 ~ 0
+LED3
+Text Label 7200 4700 0 50 ~ 0
+LED4
+Text Label 7200 4800 0 50 ~ 0
+LED5
+Text Label 7200 4900 0 50 ~ 0
+LED6
+Text Label 7200 5000 0 50 ~ 0
+LED7
+Text Label 7200 5100 0 50 ~ 0
+LED8
+Text Label 7200 5200 0 50 ~ 0
+LED9
+Text Label 7200 5300 0 50 ~ 0
+LED10
+Text Label 7200 5400 0 50 ~ 0
+LED11
+Wire Wire Line
+ 7200 5400 7550 5400
+Wire Wire Line
+ 7200 5300 7550 5300
+Wire Wire Line
+ 7200 5200 7550 5200
+Wire Wire Line
+ 7550 5100 7200 5100
+Wire Wire Line
+ 7200 5000 7550 5000
+Wire Wire Line
+ 7550 4900 7200 4900
+Wire Wire Line
+ 7200 4800 7550 4800
+Wire Wire Line
+ 7550 4700 7200 4700
+Wire Wire Line
+ 7200 4600 7550 4600
+Wire Wire Line
+ 7550 4500 7200 4500
+Wire Wire Line
+ 7200 4400 7550 4400
+Wire Wire Line
+ 7550 4300 7200 4300
+$Comp
+L switches:SW_Push SW?
+U 1 1 5CA5E99A
+P 6700 4500
+F 0 "SW?" V 6746 4452 50 0000 R CNN
+F 1 "SW_Push" V 6655 4452 50 0000 R CNN
+F 2 "" H 6700 4700 50 0001 C CNN
+F 3 "" H 6700 4700 50 0001 C CNN
+ 1 6700 4500
+ 0 -1 -1 0
+$EndComp
+$Comp
+L power:GND #PWR?
+U 1 1 5CA644DC
+P 6700 4700
+F 0 "#PWR?" H 6700 4450 50 0001 C CNN
+F 1 "GND" H 6705 4527 50 0000 C CNN
+F 2 "" H 6700 4700 50 0001 C CNN
+F 3 "" H 6700 4700 50 0001 C CNN
+ 1 6700 4700
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 6700 4300 6700 4200
+Wire Wire Line
+ 6700 4200 7550 4200
+$EndSCHEMATC
diff --git a/pcb/sym-lib-table b/pcb/sym-lib-table
new file mode 100644
index 0000000..5eca1a3
--- /dev/null
+++ b/pcb/sym-lib-table
@@ -0,0 +1,41 @@
+(sym_lib_table
+ (lib (name power)(type Legacy)(uri /usr/share/kicad/library/power.lib)(options "")(descr ""))
+ (lib (name device)(type Legacy)(uri /usr/share/kicad/library/device.lib)(options "")(descr ""))
+ (lib (name switches)(type Legacy)(uri /usr/share/kicad/library/switches.lib)(options "")(descr ""))
+ (lib (name relays)(type Legacy)(uri /usr/share/kicad/library/relays.lib)(options "")(descr ""))
+ (lib (name motors)(type Legacy)(uri /usr/share/kicad/library/motors.lib)(options "")(descr ""))
+ (lib (name transistors)(type Legacy)(uri /usr/share/kicad/library/transistors.lib)(options "")(descr ""))
+ (lib (name conn)(type Legacy)(uri /usr/share/kicad/library/conn.lib)(options "")(descr ""))
+ (lib (name linear)(type Legacy)(uri /usr/share/kicad/library/linear.lib)(options "")(descr ""))
+ (lib (name regul)(type Legacy)(uri /usr/share/kicad/library/regul.lib)(options "")(descr ""))
+ (lib (name 74xx)(type Legacy)(uri /usr/share/kicad/library/74xx.lib)(options "")(descr ""))
+ (lib (name cmos4000)(type Legacy)(uri /usr/share/kicad/library/cmos4000.lib)(options "")(descr ""))
+ (lib (name adc-dac)(type Legacy)(uri /usr/share/kicad/library/adc-dac.lib)(options "")(descr ""))
+ (lib (name memory)(type Legacy)(uri /usr/share/kicad/library/memory.lib)(options "")(descr ""))
+ (lib (name xilinx)(type Legacy)(uri /usr/share/kicad/library/xilinx.lib)(options "")(descr ""))
+ (lib (name microcontrollers)(type Legacy)(uri /usr/share/kicad/library/microcontrollers.lib)(options "")(descr ""))
+ (lib (name dsp)(type Legacy)(uri /usr/share/kicad/library/dsp.lib)(options "")(descr ""))
+ (lib (name microchip)(type Legacy)(uri /usr/share/kicad/library/microchip.lib)(options "")(descr ""))
+ (lib (name analog_switches)(type Legacy)(uri /usr/share/kicad/library/analog_switches.lib)(options "")(descr ""))
+ (lib (name motorola)(type Legacy)(uri /usr/share/kicad/library/motorola.lib)(options "")(descr ""))
+ (lib (name texas)(type Legacy)(uri /usr/share/kicad/library/texas.lib)(options "")(descr ""))
+ (lib (name intel)(type Legacy)(uri /usr/share/kicad/library/intel.lib)(options "")(descr ""))
+ (lib (name audio)(type Legacy)(uri /usr/share/kicad/library/audio.lib)(options "")(descr ""))
+ (lib (name interface)(type Legacy)(uri /usr/share/kicad/library/interface.lib)(options "")(descr ""))
+ (lib (name digital-audio)(type Legacy)(uri /usr/share/kicad/library/digital-audio.lib)(options "")(descr ""))
+ (lib (name philips)(type Legacy)(uri /usr/share/kicad/library/philips.lib)(options "")(descr ""))
+ (lib (name display)(type Legacy)(uri /usr/share/kicad/library/display.lib)(options "")(descr ""))
+ (lib (name cypress)(type Legacy)(uri /usr/share/kicad/library/cypress.lib)(options "")(descr ""))
+ (lib (name siliconi)(type Legacy)(uri /usr/share/kicad/library/siliconi.lib)(options "")(descr ""))
+ (lib (name opto)(type Legacy)(uri /usr/share/kicad/library/opto.lib)(options "")(descr ""))
+ (lib (name atmel)(type Legacy)(uri /usr/share/kicad/library/atmel.lib)(options "")(descr ""))
+ (lib (name contrib)(type Legacy)(uri /usr/share/kicad/library/contrib.lib)(options "")(descr ""))
+ (lib (name valves)(type Legacy)(uri /usr/share/kicad/library/valves.lib)(options "")(descr ""))
+ (lib (name MCU_ST_STM32F4)(type Legacy)(uri /home/user/ref/kicad-symbols/MCU_ST_STM32F4.lib)(options "")(descr ""))
+ (lib (name MCU_ST_STM32F1)(type Legacy)(uri /home/user/ref/kicad-symbols/MCU_ST_STM32F1.lib)(options "")(descr ""))
+ (lib (name Connector)(type Legacy)(uri /home/user/ref/kicad-symbols/Connector.lib)(options "")(descr ""))
+ (lib (name Connector_Generic)(type Legacy)(uri /home/user/ref/kicad-symbols/Connector_Generic.lib)(options "")(descr ""))
+ (lib (name Connector_Generic_MountingPin)(type Legacy)(uri /home/user/ref/kicad-symbols/Connector_Generic_MountingPin.lib)(options "")(descr ""))
+ (lib (name Connector_Generic_Shielded)(type Legacy)(uri /home/user/ref/kicad-symbols/Connector_Generic_Shielded.lib)(options "")(descr ""))
+ (lib (name components)(type Legacy)(uri /home/user/research/secureHID/pcb/components.lib)(options "")(descr ""))
+)
diff --git a/startup_stm32f407xx.s b/startup_stm32f407xx.s
deleted file mode 100644
index b9c68ed..0000000
--- a/startup_stm32f407xx.s
+++ /dev/null
@@ -1,523 +0,0 @@
-/**
- ******************************************************************************
- * @file startup_stm32f407xx.s
- * @author MCD Application Team
- * @version V1.4.4
- * @date 17-February-2017
- * @brief STM32F407xx Devices vector table for GCC based toolchain.
- * This module performs:
- * - Set the initial SP
- * - Set the initial PC == Reset_Handler,
- * - Set the vector table entries with the exceptions ISR address
- * - Branches to main in the C library (which eventually
- * calls main()).
- * After Reset the Cortex-M4 processor is in Thread mode,
- * priority is Privileged, and the Stack is set to Main.
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; COPYRIGHT 2017 STMicroelectronics</center></h2>
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-
- .syntax unified
- .cpu cortex-m4
- .fpu softvfp
- .thumb
-
-.global g_pfnVectors
-.global Default_Handler
-
-/* start address for the initialization values of the .data section.
-defined in linker script */
-.word _sidata
-/* start address for the .data section. defined in linker script */
-.word _sdata
-/* end address for the .data section. defined in linker script */
-.word _edata
-/* start address for the .bss section. defined in linker script */
-.word _sbss
-/* end address for the .bss section. defined in linker script */
-.word _ebss
-/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
-
-/**
- * @brief This is the code that gets called when the processor first
- * starts execution following a reset event. Only the absolutely
- * necessary set is performed, after which the application
- * supplied main() routine is called.
- * @param None
- * @retval : None
-*/
-
- .section .text.Reset_Handler
- .weak Reset_Handler
- .type Reset_Handler, %function
-Reset_Handler:
- ldr sp, =_estack /* set stack pointer */
-
-/* Copy the data segment initializers from flash to SRAM */
- movs r1, #0
- b LoopCopyDataInit
-
-CopyDataInit:
- ldr r3, =_sidata
- ldr r3, [r3, r1]
- str r3, [r0, r1]
- adds r1, r1, #4
-
-LoopCopyDataInit:
- ldr r0, =_sdata
- ldr r3, =_edata
- adds r2, r0, r1
- cmp r2, r3
- bcc CopyDataInit
- ldr r2, =_sbss
- b LoopFillZerobss
-/* Zero fill the bss segment. */
-FillZerobss:
- movs r3, #0
- str r3, [r2], #4
-
-LoopFillZerobss:
- ldr r3, = _ebss
- cmp r2, r3
- bcc FillZerobss
-
-/* Call the clock system intitialization function.*/
- bl SystemInit
-/* Call static constructors */
- bl __libc_init_array
-/* Call the application's entry point.*/
- bl main
- bx lr
-.size Reset_Handler, .-Reset_Handler
-
-/**
- * @brief This is the code that gets called when the processor receives an
- * unexpected interrupt. This simply enters an infinite loop, preserving
- * the system state for examination by a debugger.
- * @param None
- * @retval None
-*/
- .section .text.Default_Handler,"ax",%progbits
-Default_Handler:
-Infinite_Loop:
- b Infinite_Loop
- .size Default_Handler, .-Default_Handler
-/******************************************************************************
-*
-* The minimal vector table for a Cortex M3. Note that the proper constructs
-* must be placed on this to ensure that it ends up at physical address
-* 0x0000.0000.
-*
-*******************************************************************************/
- .section .isr_vector,"a",%progbits
- .type g_pfnVectors, %object
- .size g_pfnVectors, .-g_pfnVectors
-
-
-g_pfnVectors:
- .word _estack
- .word Reset_Handler
- .word NMI_Handler
- .word HardFault_Handler
- .word MemManage_Handler
- .word BusFault_Handler
- .word UsageFault_Handler
- .word 0
- .word 0
- .word 0
- .word 0
- .word SVC_Handler
- .word DebugMon_Handler
- .word 0
- .word PendSV_Handler
- .word SysTick_Handler
-
- /* External Interrupts */
- .word WWDG_IRQHandler /* Window WatchDog */
- .word PVD_IRQHandler /* PVD through EXTI Line detection */
- .word TAMP_STAMP_IRQHandler /* Tamper and TimeStamps through the EXTI line */
- .word RTC_WKUP_IRQHandler /* RTC Wakeup through the EXTI line */
- .word FLASH_IRQHandler /* FLASH */
- .word RCC_IRQHandler /* RCC */
- .word EXTI0_IRQHandler /* EXTI Line0 */
- .word EXTI1_IRQHandler /* EXTI Line1 */
- .word EXTI2_IRQHandler /* EXTI Line2 */
- .word EXTI3_IRQHandler /* EXTI Line3 */
- .word EXTI4_IRQHandler /* EXTI Line4 */
- .word DMA1_Stream0_IRQHandler /* DMA1 Stream 0 */
- .word DMA1_Stream1_IRQHandler /* DMA1 Stream 1 */
- .word DMA1_Stream2_IRQHandler /* DMA1 Stream 2 */
- .word DMA1_Stream3_IRQHandler /* DMA1 Stream 3 */
- .word DMA1_Stream4_IRQHandler /* DMA1 Stream 4 */
- .word DMA1_Stream5_IRQHandler /* DMA1 Stream 5 */
- .word DMA1_Stream6_IRQHandler /* DMA1 Stream 6 */
- .word ADC_IRQHandler /* ADC1, ADC2 and ADC3s */
- .word CAN1_TX_IRQHandler /* CAN1 TX */
- .word CAN1_RX0_IRQHandler /* CAN1 RX0 */
- .word CAN1_RX1_IRQHandler /* CAN1 RX1 */
- .word CAN1_SCE_IRQHandler /* CAN1 SCE */
- .word EXTI9_5_IRQHandler /* External Line[9:5]s */
- .word TIM1_BRK_TIM9_IRQHandler /* TIM1 Break and TIM9 */
- .word TIM1_UP_TIM10_IRQHandler /* TIM1 Update and TIM10 */
- .word TIM1_TRG_COM_TIM11_IRQHandler /* TIM1 Trigger and Commutation and TIM11 */
- .word TIM1_CC_IRQHandler /* TIM1 Capture Compare */
- .word TIM2_IRQHandler /* TIM2 */
- .word TIM3_IRQHandler /* TIM3 */
- .word TIM4_IRQHandler /* TIM4 */
- .word I2C1_EV_IRQHandler /* I2C1 Event */
- .word I2C1_ER_IRQHandler /* I2C1 Error */
- .word I2C2_EV_IRQHandler /* I2C2 Event */
- .word I2C2_ER_IRQHandler /* I2C2 Error */
- .word SPI1_IRQHandler /* SPI1 */
- .word SPI2_IRQHandler /* SPI2 */
- .word USART1_IRQHandler /* USART1 */
- .word USART2_IRQHandler /* USART2 */
- .word USART3_IRQHandler /* USART3 */
- .word EXTI15_10_IRQHandler /* External Line[15:10]s */
- .word RTC_Alarm_IRQHandler /* RTC Alarm (A and B) through EXTI Line */
- .word OTG_FS_WKUP_IRQHandler /* USB OTG FS Wakeup through EXTI line */
- .word TIM8_BRK_TIM12_IRQHandler /* TIM8 Break and TIM12 */
- .word TIM8_UP_TIM13_IRQHandler /* TIM8 Update and TIM13 */
- .word TIM8_TRG_COM_TIM14_IRQHandler /* TIM8 Trigger and Commutation and TIM14 */
- .word TIM8_CC_IRQHandler /* TIM8 Capture Compare */
- .word DMA1_Stream7_IRQHandler /* DMA1 Stream7 */
- .word FSMC_IRQHandler /* FSMC */
- .word SDIO_IRQHandler /* SDIO */
- .word TIM5_IRQHandler /* TIM5 */
- .word SPI3_IRQHandler /* SPI3 */
- .word UART4_IRQHandler /* UART4 */
- .word UART5_IRQHandler /* UART5 */
- .word TIM6_DAC_IRQHandler /* TIM6 and DAC1&2 underrun errors */
- .word TIM7_IRQHandler /* TIM7 */
- .word DMA2_Stream0_IRQHandler /* DMA2 Stream 0 */
- .word DMA2_Stream1_IRQHandler /* DMA2 Stream 1 */
- .word DMA2_Stream2_IRQHandler /* DMA2 Stream 2 */
- .word DMA2_Stream3_IRQHandler /* DMA2 Stream 3 */
- .word DMA2_Stream4_IRQHandler /* DMA2 Stream 4 */
- .word ETH_IRQHandler /* Ethernet */
- .word ETH_WKUP_IRQHandler /* Ethernet Wakeup through EXTI line */
- .word CAN2_TX_IRQHandler /* CAN2 TX */
- .word CAN2_RX0_IRQHandler /* CAN2 RX0 */
- .word CAN2_RX1_IRQHandler /* CAN2 RX1 */
- .word CAN2_SCE_IRQHandler /* CAN2 SCE */
- .word OTG_FS_IRQHandler /* USB OTG FS */
- .word DMA2_Stream5_IRQHandler /* DMA2 Stream 5 */
- .word DMA2_Stream6_IRQHandler /* DMA2 Stream 6 */
- .word DMA2_Stream7_IRQHandler /* DMA2 Stream 7 */
- .word USART6_IRQHandler /* USART6 */
- .word I2C3_EV_IRQHandler /* I2C3 event */
- .word I2C3_ER_IRQHandler /* I2C3 error */
- .word OTG_HS_EP1_OUT_IRQHandler /* USB OTG HS End Point 1 Out */
- .word OTG_HS_EP1_IN_IRQHandler /* USB OTG HS End Point 1 In */
- .word OTG_HS_WKUP_IRQHandler /* USB OTG HS Wakeup through EXTI */
- .word OTG_HS_IRQHandler /* USB OTG HS */
- .word DCMI_IRQHandler /* DCMI */
- .word 0 /* CRYP crypto */
- .word HASH_RNG_IRQHandler /* Hash and Rng */
- .word FPU_IRQHandler /* FPU */
-
-
-/*******************************************************************************
-*
-* Provide weak aliases for each Exception handler to the Default_Handler.
-* As they are weak aliases, any function with the same name will override
-* this definition.
-*
-*******************************************************************************/
- .weak NMI_Handler
- .thumb_set NMI_Handler,Default_Handler
-
- .weak HardFault_Handler
- .thumb_set HardFault_Handler,Default_Handler
-
- .weak MemManage_Handler
- .thumb_set MemManage_Handler,Default_Handler
-
- .weak BusFault_Handler
- .thumb_set BusFault_Handler,Default_Handler
-
- .weak UsageFault_Handler
- .thumb_set UsageFault_Handler,Default_Handler
-
- .weak SVC_Handler
- .thumb_set SVC_Handler,Default_Handler
-
- .weak DebugMon_Handler
- .thumb_set DebugMon_Handler,Default_Handler
-
- .weak PendSV_Handler
- .thumb_set PendSV_Handler,Default_Handler
-
- .weak SysTick_Handler
- .thumb_set SysTick_Handler,Default_Handler
-
- .weak WWDG_IRQHandler
- .thumb_set WWDG_IRQHandler,Default_Handler
-
- .weak PVD_IRQHandler
- .thumb_set PVD_IRQHandler,Default_Handler
-
- .weak TAMP_STAMP_IRQHandler
- .thumb_set TAMP_STAMP_IRQHandler,Default_Handler
-
- .weak RTC_WKUP_IRQHandler
- .thumb_set RTC_WKUP_IRQHandler,Default_Handler
-
- .weak FLASH_IRQHandler
- .thumb_set FLASH_IRQHandler,Default_Handler
-
- .weak RCC_IRQHandler
- .thumb_set RCC_IRQHandler,Default_Handler
-
- .weak EXTI0_IRQHandler
- .thumb_set EXTI0_IRQHandler,Default_Handler
-
- .weak EXTI1_IRQHandler
- .thumb_set EXTI1_IRQHandler,Default_Handler
-
- .weak EXTI2_IRQHandler
- .thumb_set EXTI2_IRQHandler,Default_Handler
-
- .weak EXTI3_IRQHandler
- .thumb_set EXTI3_IRQHandler,Default_Handler
-
- .weak EXTI4_IRQHandler
- .thumb_set EXTI4_IRQHandler,Default_Handler
-
- .weak DMA1_Stream0_IRQHandler
- .thumb_set DMA1_Stream0_IRQHandler,Default_Handler
-
- .weak DMA1_Stream1_IRQHandler
- .thumb_set DMA1_Stream1_IRQHandler,Default_Handler
-
- .weak DMA1_Stream2_IRQHandler
- .thumb_set DMA1_Stream2_IRQHandler,Default_Handler
-
- .weak DMA1_Stream3_IRQHandler
- .thumb_set DMA1_Stream3_IRQHandler,Default_Handler
-
- .weak DMA1_Stream4_IRQHandler
- .thumb_set DMA1_Stream4_IRQHandler,Default_Handler
-
- .weak DMA1_Stream5_IRQHandler
- .thumb_set DMA1_Stream5_IRQHandler,Default_Handler
-
- .weak DMA1_Stream6_IRQHandler
- .thumb_set DMA1_Stream6_IRQHandler,Default_Handler
-
- .weak ADC_IRQHandler
- .thumb_set ADC_IRQHandler,Default_Handler
-
- .weak CAN1_TX_IRQHandler
- .thumb_set CAN1_TX_IRQHandler,Default_Handler
-
- .weak CAN1_RX0_IRQHandler
- .thumb_set CAN1_RX0_IRQHandler,Default_Handler
-
- .weak CAN1_RX1_IRQHandler
- .thumb_set CAN1_RX1_IRQHandler,Default_Handler
-
- .weak CAN1_SCE_IRQHandler
- .thumb_set CAN1_SCE_IRQHandler,Default_Handler
-
- .weak EXTI9_5_IRQHandler
- .thumb_set EXTI9_5_IRQHandler,Default_Handler
-
- .weak TIM1_BRK_TIM9_IRQHandler
- .thumb_set TIM1_BRK_TIM9_IRQHandler,Default_Handler
-
- .weak TIM1_UP_TIM10_IRQHandler
- .thumb_set TIM1_UP_TIM10_IRQHandler,Default_Handler
-
- .weak TIM1_TRG_COM_TIM11_IRQHandler
- .thumb_set TIM1_TRG_COM_TIM11_IRQHandler,Default_Handler
-
- .weak TIM1_CC_IRQHandler
- .thumb_set TIM1_CC_IRQHandler,Default_Handler
-
- .weak TIM2_IRQHandler
- .thumb_set TIM2_IRQHandler,Default_Handler
-
- .weak TIM3_IRQHandler
- .thumb_set TIM3_IRQHandler,Default_Handler
-
- .weak TIM4_IRQHandler
- .thumb_set TIM4_IRQHandler,Default_Handler
-
- .weak I2C1_EV_IRQHandler
- .thumb_set I2C1_EV_IRQHandler,Default_Handler
-
- .weak I2C1_ER_IRQHandler
- .thumb_set I2C1_ER_IRQHandler,Default_Handler
-
- .weak I2C2_EV_IRQHandler
- .thumb_set I2C2_EV_IRQHandler,Default_Handler
-
- .weak I2C2_ER_IRQHandler
- .thumb_set I2C2_ER_IRQHandler,Default_Handler
-
- .weak SPI1_IRQHandler
- .thumb_set SPI1_IRQHandler,Default_Handler
-
- .weak SPI2_IRQHandler
- .thumb_set SPI2_IRQHandler,Default_Handler
-
- .weak USART1_IRQHandler
- .thumb_set USART1_IRQHandler,Default_Handler
-
- .weak USART2_IRQHandler
- .thumb_set USART2_IRQHandler,Default_Handler
-
- .weak USART3_IRQHandler
- .thumb_set USART3_IRQHandler,Default_Handler
-
- .weak EXTI15_10_IRQHandler
- .thumb_set EXTI15_10_IRQHandler,Default_Handler
-
- .weak RTC_Alarm_IRQHandler
- .thumb_set RTC_Alarm_IRQHandler,Default_Handler
-
- .weak OTG_FS_WKUP_IRQHandler
- .thumb_set OTG_FS_WKUP_IRQHandler,Default_Handler
-
- .weak TIM8_BRK_TIM12_IRQHandler
- .thumb_set TIM8_BRK_TIM12_IRQHandler,Default_Handler
-
- .weak TIM8_UP_TIM13_IRQHandler
- .thumb_set TIM8_UP_TIM13_IRQHandler,Default_Handler
-
- .weak TIM8_TRG_COM_TIM14_IRQHandler
- .thumb_set TIM8_TRG_COM_TIM14_IRQHandler,Default_Handler
-
- .weak TIM8_CC_IRQHandler
- .thumb_set TIM8_CC_IRQHandler,Default_Handler
-
- .weak DMA1_Stream7_IRQHandler
- .thumb_set DMA1_Stream7_IRQHandler,Default_Handler
-
- .weak FSMC_IRQHandler
- .thumb_set FSMC_IRQHandler,Default_Handler
-
- .weak SDIO_IRQHandler
- .thumb_set SDIO_IRQHandler,Default_Handler
-
- .weak TIM5_IRQHandler
- .thumb_set TIM5_IRQHandler,Default_Handler
-
- .weak SPI3_IRQHandler
- .thumb_set SPI3_IRQHandler,Default_Handler
-
- .weak UART4_IRQHandler
- .thumb_set UART4_IRQHandler,Default_Handler
-
- .weak UART5_IRQHandler
- .thumb_set UART5_IRQHandler,Default_Handler
-
- .weak TIM6_DAC_IRQHandler
- .thumb_set TIM6_DAC_IRQHandler,Default_Handler
-
- .weak TIM7_IRQHandler
- .thumb_set TIM7_IRQHandler,Default_Handler
-
- .weak DMA2_Stream0_IRQHandler
- .thumb_set DMA2_Stream0_IRQHandler,Default_Handler
-
- .weak DMA2_Stream1_IRQHandler
- .thumb_set DMA2_Stream1_IRQHandler,Default_Handler
-
- .weak DMA2_Stream2_IRQHandler
- .thumb_set DMA2_Stream2_IRQHandler,Default_Handler
-
- .weak DMA2_Stream3_IRQHandler
- .thumb_set DMA2_Stream3_IRQHandler,Default_Handler
-
- .weak DMA2_Stream4_IRQHandler
- .thumb_set DMA2_Stream4_IRQHandler,Default_Handler
-
- .weak ETH_IRQHandler
- .thumb_set ETH_IRQHandler,Default_Handler
-
- .weak ETH_WKUP_IRQHandler
- .thumb_set ETH_WKUP_IRQHandler,Default_Handler
-
- .weak CAN2_TX_IRQHandler
- .thumb_set CAN2_TX_IRQHandler,Default_Handler
-
- .weak CAN2_RX0_IRQHandler
- .thumb_set CAN2_RX0_IRQHandler,Default_Handler
-
- .weak CAN2_RX1_IRQHandler
- .thumb_set CAN2_RX1_IRQHandler,Default_Handler
-
- .weak CAN2_SCE_IRQHandler
- .thumb_set CAN2_SCE_IRQHandler,Default_Handler
-
- .weak OTG_FS_IRQHandler
- .thumb_set OTG_FS_IRQHandler,Default_Handler
-
- .weak DMA2_Stream5_IRQHandler
- .thumb_set DMA2_Stream5_IRQHandler,Default_Handler
-
- .weak DMA2_Stream6_IRQHandler
- .thumb_set DMA2_Stream6_IRQHandler,Default_Handler
-
- .weak DMA2_Stream7_IRQHandler
- .thumb_set DMA2_Stream7_IRQHandler,Default_Handler
-
- .weak USART6_IRQHandler
- .thumb_set USART6_IRQHandler,Default_Handler
-
- .weak I2C3_EV_IRQHandler
- .thumb_set I2C3_EV_IRQHandler,Default_Handler
-
- .weak I2C3_ER_IRQHandler
- .thumb_set I2C3_ER_IRQHandler,Default_Handler
-
- .weak OTG_HS_EP1_OUT_IRQHandler
- .thumb_set OTG_HS_EP1_OUT_IRQHandler,Default_Handler
-
- .weak OTG_HS_EP1_IN_IRQHandler
- .thumb_set OTG_HS_EP1_IN_IRQHandler,Default_Handler
-
- .weak OTG_HS_WKUP_IRQHandler
- .thumb_set OTG_HS_WKUP_IRQHandler,Default_Handler
-
- .weak OTG_HS_IRQHandler
- .thumb_set OTG_HS_IRQHandler,Default_Handler
-
- .weak DCMI_IRQHandler
- .thumb_set DCMI_IRQHandler,Default_Handler
-
- .weak HASH_RNG_IRQHandler
- .thumb_set HASH_RNG_IRQHandler,Default_Handler
-
- .weak FPU_IRQHandler
- .thumb_set FPU_IRQHandler,Default_Handler
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stm32_flash.ld b/stm32_flash.ld
deleted file mode 100644
index c54a3b8..0000000
--- a/stm32_flash.ld
+++ /dev/null
@@ -1,158 +0,0 @@
-
-ENTRY(Reset_Handler)
-
-/* Highest address of the user mode stack */
-_estack = 0x20020000; /* end of RAM */
-/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x200;; /* required amount of heap */
-_Min_Stack_Size = 0x400;; /* required amount of stack */
-
-/* Specify the memory areas */
-MEMORY
-{
-FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 1024K
-RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K
-CCMRAM (rw) : ORIGIN = 0x10000000, LENGTH = 64K
-}
-
-/* Define output sections */
-SECTIONS
-{
- /* The startup code goes first into FLASH */
- .isr_vector :
- {
- . = ALIGN(4);
- KEEP(*(.isr_vector)) /* Startup code */
- . = ALIGN(4);
- } >FLASH
-
- /* The program code and other data goes into FLASH */
- .text :
- {
- . = ALIGN(4);
- *(.text) /* .text sections (code) */
- *(.text*) /* .text* sections (code) */
- *(.glue_7) /* glue arm to thumb code */
- *(.glue_7t) /* glue thumb to arm code */
- *(.eh_frame)
-
- KEEP (*(.init))
- KEEP (*(.fini))
-
- . = ALIGN(4);
- _etext = .; /* define a global symbols at end of code */
- } >FLASH
-
- /* Constant data goes into FLASH */
- .rodata :
- {
- . = ALIGN(4);
- *(.rodata) /* .rodata sections (constants, strings, etc.) */
- *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
- . = ALIGN(4);
- } >FLASH
-
- .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
- .ARM : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >FLASH
-
- .preinit_array :
- {
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP (*(.preinit_array*))
- PROVIDE_HIDDEN (__preinit_array_end = .);
- } >FLASH
- .init_array :
- {
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array*))
- PROVIDE_HIDDEN (__init_array_end = .);
- } >FLASH
- .fini_array :
- {
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP (*(SORT(.fini_array.*)))
- KEEP (*(.fini_array*))
- PROVIDE_HIDDEN (__fini_array_end = .);
- } >FLASH
-
- /* used by the startup to initialize data */
- _sidata = LOADADDR(.data);
-
- /* Initialized data sections goes into RAM, load LMA copy after code */
- .data :
- {
- . = ALIGN(4);
- _sdata = .; /* create a global symbol at data start */
- *(.data) /* .data sections */
- *(.data*) /* .data* sections */
-
- . = ALIGN(4);
- _edata = .; /* define a global symbol at data end */
- } >RAM AT> FLASH
-
- _siccmram = LOADADDR(.ccmram);
-
- /* CCM-RAM section
- *
- * IMPORTANT NOTE!
- * If initialized variables will be placed in this section,
- * the startup code needs to be modified to copy the init-values.
- */
- .ccmram :
- {
- . = ALIGN(4);
- _sccmram = .; /* create a global symbol at ccmram start */
- *(.ccmram)
- *(.ccmram*)
-
- . = ALIGN(4);
- _eccmram = .; /* create a global symbol at ccmram end */
- } >CCMRAM AT> FLASH
-
-
- /* Uninitialized data section */
- . = ALIGN(4);
- .bss :
- {
- /* This is used by the startup in order to initialize the .bss secion */
- _sbss = .; /* define a global symbol at bss start */
- __bss_start__ = _sbss;
- *(.bss)
- *(.bss*)
- *(COMMON)
-
- . = ALIGN(4);
- _ebss = .; /* define a global symbol at bss end */
- __bss_end__ = _ebss;
- } >RAM
-
- /* User_heap_stack section, used to check that there is enough RAM left */
- ._user_heap_stack :
- {
- . = ALIGN(4);
- PROVIDE ( end = . );
- PROVIDE ( _end = . );
- . = . + _Min_Heap_Size;
- . = . + _Min_Stack_Size;
- . = ALIGN(4);
- } >RAM
-
-
-
- /* Remove information from the standard libraries */
- /DISCARD/ :
- {
- libc.a ( * )
- libm.a ( * )
- libgcc.a ( * )
- }
-
- .ARM.attributes 0 : { *(.ARM.attributes) }
-}
-
-
diff --git a/stm32f4xx_hal_conf.h b/stm32f4xx_hal_conf.h
deleted file mode 100644
index 16ffadd..0000000
--- a/stm32f4xx_hal_conf.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/**
- ******************************************************************************
- * @file USB_Host/HID_Standalone/Inc/stm32f4xx_hal_conf.h
- * @author MCD Application Team
- * @version V1.1.0
- * @date 17-February-2017
- * @brief HAL configuration file.
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
- *
- * Redistribution and use in source and binary forms, with or without
- *modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *notice,
- * this list of conditions and the following disclaimer in the
- *documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its
- *contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- *ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- *LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- *USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-
-#ifndef __STM32F4xx_HAL_CONF_H
-#define __STM32F4xx_HAL_CONF_H
-
-#define HAL_MODULE_ENABLED
-
-#include "stm32f4xx_hal_def.h"
-
-#define HAL_RCC_MODULE_ENABLED
-#include "stm32f4xx_hal_rcc.h"
-
-#define HAL_FLASH_MODULE_ENABLED
-#include "stm32f4xx_hal_flash.h"
-
-#define HAL_DMA_MODULE_ENABLED
-#include "stm32f4xx_hal_dma.h"
-
-#define HAL_USART_MODULE_ENABLED
-#include "stm32f4xx_hal_usart.h"
-
-#define HAL_PWR_MODULE_ENABLED
-#include "stm32f4xx_hal_pwr.h"
-
-/* USB host controller foo */
-#define HAL_HCD_MODULE_ENABLED
-#include "stm32f4xx_hal_hcd.h"
-
-/* Whoever needs a HAL for GPIOs... */
-#define HAL_GPIO_MODULE_ENABLED
-#include "stm32f4xx_hal_gpio.h"
-
-/* Why not wrap the wrapper? */
-#define HAL_CORTEX_MODULE_ENABLED
-#include "stm32f4xx_hal_cortex.h"
-
-/*
-#define HAL_DMA2D_MODULE_ENABLED
-#include "stm32f4xx_hal_dma2d.h"
-
-#define HAL_SRAM_MODULE_ENABLED
-#include "stm32f4xx_hal_sram.h"
-
-#define HAL_SDRAM_MODULE_ENABLED
-#include "stm32f4xx_hal_sdram.h"
-
-#define HAL_I2C_MODULE_ENABLED
-#include "stm32f4xx_hal_i2c.h"
-
-#define HAL_LTDC_MODULE_ENABLED
-#include "stm32f4xx_hal_ltdc.h"
-
-#define HAL_DSI_MODULE_ENABLED
-#include "stm32f4xx_hal_dsi.h"
-
-#define HAL_FMPI2C_MODULE_ENABLED
-#include "stm32f4xx_hal_fmpi2c.h"
-*/
-
-#if !defined(HSE_VALUE)
-#if defined(USE_STM32469I_DISCO_REVA)
-#define HSE_VALUE \
- 25000000U /*!< Default value of the External oscillator in Hz */
-#else
-#define HSE_VALUE \
- 8000000U /*!< Default value of the External oscillator in Hz */
-#endif /* USE_STM32469I_DISCO_REVA */
-#endif /* HSE_VALUE */
-
-#if !defined(HSE_STARTUP_TIMEOUT)
-#define HSE_STARTUP_TIMEOUT 100U /*!< Time out for HSE start up, in ms */
-#endif
-
-/* Internal High Speed oscillator (HSI) value. This value is used by the RCC HAL module to compute the system frequency
- * (when HSI is used as system clock source, directly or through the PLL). */
-#if !defined(HSI_VALUE)
-#define HSI_VALUE 16000000U
-#endif
-
-/* Internal Low Speed oscillator (LSI) value. */
-#if !defined(LSI_VALUE)
-#define LSI_VALUE 32000U
-#endif
-
-/* External Low Speed oscillator (LSE) value. */
-#if !defined(LSE_VALUE)
-#define LSE_VALUE 32768U
-#endif
-
-#if !defined(LSE_STARTUP_TIMEOUT)
-#define LSE_STARTUP_TIMEOUT 5000U
-#endif
-
-/* External clock source for I2S peripheral This value is used by the I2S HAL module to compute the I2S clock source
- * frequency, this source is inserted directly through I2S_CKIN pad. */
-#if !defined(EXTERNAL_CLOCK_VALUE)
-#define EXTERNAL_CLOCK_VALUE 12288000U
-#endif
-
-/* For the HAL */
-#define VDD_VALUE 3300U
-#define TICK_INT_PRIORITY 0x00U
-#define USE_RTOS 0
-#define PREFETCH_ENABLE 1
-#define INSTRUCTION_CACHE_ENABLE 1
-#define DATA_CACHE_ENABLE 1
-
-#define USE_SPI_CRC 1U
-
-#define assert_param(expr) ((void)0U)
-
-#endif
diff --git a/stm32f4xx_it.c b/stm32f4xx_it.c
deleted file mode 100644
index cbbc7fd..0000000
--- a/stm32f4xx_it.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- ******************************************************************************
- * @file USB_Host/HID_Standalone/Src/stm32f4xx_it.c
- * @author MCD Application Team
- * @version V1.1.0
- * @date 17-February-2017
- * @brief Main Interrupt Service Routines.
- * This file provides template for all exceptions handler and
- * peripherals interrupt service routine.
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
- *
- * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
- * You may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.st.com/software_license_agreement_liberty_v2
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ******************************************************************************
- */
-
-#include "stm32f4xx_it.h"
-
-extern HCD_HandleTypeDef hhcd;
-
-void NMI_Handler(void) {}
-
-void HardFault_Handler(void)
-{
- while (1)
- ;
-}
-
-void MemManage_Handler(void)
-{
- while (1)
- ;
-}
-
-void BusFault_Handler(void)
-{
- while (1)
- ;
-}
-
-void UsageFault_Handler(void)
-{
- while (1)
- ;
-}
-
-void SVC_Handler(void) {}
-
-void DebugMon_Handler(void) {}
-
-void PendSV_Handler(void) {}
-
-void SysTick_Handler(void) {
- HAL_IncTick();
-}
-
-void OTG_FS_IRQHandler(void) {
- HAL_HCD_IRQHandler(&hhcd);
-}
diff --git a/stm32f4xx_it.h b/stm32f4xx_it.h
deleted file mode 100644
index eec1994..0000000
--- a/stm32f4xx_it.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- ******************************************************************************
- * @file USB_Host/HID_Standalone/Inc/stm32f4xx_it.h
- * @author MCD Application Team
- * @version V1.1.0
- * @date 17-February-2017
- * @brief This file contains the headers of the interrupt handlers.
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
- *
- * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
- * You may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.st.com/software_license_agreement_liberty_v2
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ******************************************************************************
- */
-
-#ifndef __STM32F4xx_IT_H
-#define __STM32F4xx_IT_H
-
-#include "main.h"
-
-void NMI_Handler(void);
-void HardFault_Handler(void);
-void MemManage_Handler(void);
-void BusFault_Handler(void);
-void UsageFault_Handler(void);
-void SVC_Handler(void);
-void DebugMon_Handler(void);
-void PendSV_Handler(void);
-void SysTick_Handler(void);
-void OTG_FS_IRQHandler(void);
-
-#endif
diff --git a/syscalls.c b/syscalls.c
deleted file mode 100644
index 023cac3..0000000
--- a/syscalls.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/* Support files for GNU libc. Files in the system namespace go here.
- Files in the C namespace (ie those that do not start with an
- underscore) go in .c. */
-
-#include <_ansi.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/fcntl.h>
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-#include <sys/time.h>
-#include <sys/times.h>
-#include <sys/errno.h>
-#include <reent.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-#define FreeRTOS
-#define MAX_STACK_SIZE 0x200
-
-extern int __io_putchar(int ch) __attribute__((weak));
-extern int __io_getchar(void) __attribute__((weak));
-
-#ifndef FreeRTOS
- register char * stack_ptr asm("sp");
-#endif
-
-
-
-
-caddr_t _sbrk(int incr)
-{
- extern char end asm("end");
- static char *heap_end;
- char *prev_heap_end,*min_stack_ptr;
-
- if (heap_end == 0)
- heap_end = &end;
-
- prev_heap_end = heap_end;
-
-#ifdef FreeRTOS
- /* Use the NVIC offset register to locate the main stack pointer. */
- min_stack_ptr = (char*)(*(unsigned int *)*(unsigned int *)0xE000ED08);
- /* Locate the STACK bottom address */
- min_stack_ptr -= MAX_STACK_SIZE;
-
- if (heap_end + incr > min_stack_ptr)
-#else
- if (heap_end + incr > stack_ptr)
-#endif
- {
-// write(1, "Heap and stack collision\n", 25);
-// abort();
- errno = ENOMEM;
- return (caddr_t) -1;
- }
-
- heap_end += incr;
-
- return (caddr_t) prev_heap_end;
-}
-
-/*
- * _gettimeofday primitive (Stub function)
- * */
-int _gettimeofday (struct timeval * tp, struct timezone * tzp)
-{
- /* Return fixed data for the timezone. */
- if (tzp)
- {
- tzp->tz_minuteswest = 0;
- tzp->tz_dsttime = 0;
- }
-
- return 0;
-}
-void initialise_monitor_handles()
-{
-}
-
-int _getpid(void)
-{
- return 1;
-}
-
-int _kill(int pid, int sig)
-{
- errno = EINVAL;
- return -1;
-}
-
-void _exit (int status)
-{
- _kill(status, -1);
- while (1) {}
-}
-
-int _write(int file, char *ptr, int len)
-{
- int DataIdx;
-
- for (DataIdx = 0; DataIdx < len; DataIdx++)
- {
- __io_putchar( *ptr++ );
- }
- return len;
-}
-
-int _close(int file)
-{
- return -1;
-}
-
-int _fstat(int file, struct stat *st)
-{
- st->st_mode = S_IFCHR;
- return 0;
-}
-
-int _isatty(int file)
-{
- return 1;
-}
-
-int _lseek(int file, int ptr, int dir)
-{
- return 0;
-}
-
-int _read(int file, char *ptr, int len)
-{
- int DataIdx;
-
- for (DataIdx = 0; DataIdx < len; DataIdx++)
- {
- *ptr++ = __io_getchar();
- }
-
- return len;
-}
-
-int _open(char *path, int flags, ...)
-{
- /* Pretend like we always fail */
- return -1;
-}
-
-int _wait(int *status)
-{
- errno = ECHILD;
- return -1;
-}
-
-int _unlink(char *name)
-{
- errno = ENOENT;
- return -1;
-}
-
-int _times(struct tms *buf)
-{
- return -1;
-}
-
-int _stat(char *file, struct stat *st)
-{
- st->st_mode = S_IFCHR;
- return 0;
-}
-
-int _link(char *old, char *new)
-{
- errno = EMLINK;
- return -1;
-}
-
-int _fork(void)
-{
- errno = EAGAIN;
- return -1;
-}
-
-int _execve(char *name, char **argv, char **env)
-{
- errno = ENOMEM;
- return -1;
-}
diff --git a/system_stm32f4xx.c b/system_stm32f4xx.c
deleted file mode 100644
index fc979ef..0000000
--- a/system_stm32f4xx.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/**
- ******************************************************************************
- * @file system_stm32f4xx.c
- * @author MCD Application Team
- * @version V1.1.0
- * @date 17-February-2017
- * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File.
- *
- * This file provides two functions and one global variable to be called from
- * user application:
- * - SystemInit(): This function is called at startup just after reset and
- * before branch to main program. This call is made inside
- * the "startup_stm32f4xx.s" file.
- *
- * - SystemCoreClock variable: Contains the core clock (HCLK), it can be
- *used
- * by the user application to setup the
- *SysTick
- * timer or configure other parameters.
- *
- * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and
- *must
- * be called whenever the core clock is changed
- * during program execution.
- *
- *
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; COPYRIGHT 2017 STMicroelectronics</center></h2>
- *
- * Redistribution and use in source and binary forms, with or without
- *modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *notice,
- * this list of conditions and the following disclaimer in the
- *documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its
- *contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- *ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- *LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- *USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-
-#include "stm32f4xx.h"
-
-#if !defined(HSE_VALUE)
-#if defined(USE_STM32469I_DISCO_REVA)
-#define HSE_VALUE \
- ((uint32_t)25000000) /*!< Default value of the External oscillator in Hz */
-#else
-#define HSE_VALUE \
- ((uint32_t)8000000) /*!< Default value of the External oscillator in Hz */
-#endif /* USE_STM32469I_DISCO_REVA */
-#endif /* HSE_VALUE */
-
-#if !defined(HSI_VALUE)
-#define HSI_VALUE \
- ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/
-#endif /* HSI_VALUE */
-
-#define VECT_TAB_OFFSET 0x00 /* This value must be a multiple of 0x200. */
-
-/* The following variable is updated in three ways:
- 1) by calling CMSIS function SystemCoreClockUpdate()
- 2) by calling HAL API function HAL_RCC_GetHCLKFreq()
- 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
- Note: If you use this function to configure the system clock; then there is no need to call the 2 first functions
- listed above, since the SystemCoreClock variable is updated automatically. */
-uint32_t SystemCoreClock = 16000000;
-const uint8_t AHBPrescTable[16] = { 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 4, 6, 7, 8, 9 };
-const uint8_t APBPrescTable[8] = { 0, 0, 0, 0, 1, 2, 3, 4 };
-
-/* Setup the microcontroller system: Initialize the FPU setting, vector table location and External memory configuration. */
-void SystemInit(void)
-{
-#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
- SCB->CPACR |= ((3UL << 10 * 2) | (3UL << 11 * 2)); /* set CP10 and CP11 Full Access */
-#endif
- /* Reset the RCC clock configuration to the default reset state */
- RCC->CR |= (uint32_t)0x00000001; /* Set HSION bit */
- RCC->CFGR = 0x00000000; /* Reset CFGR register */
- RCC->CR &= (uint32_t)0xFEF6FFFF; /* Reset HSEON, CSSON and PLLON bits */
- RCC->PLLCFGR = 0x24003010; /* Reset PLLCFGR register */
- RCC->CR &= (uint32_t)0xFFFBFFFF; /* Reset HSEBYP bit */
- RCC->CIR = 0x00000000; /* Disable all interrupts */
-
- SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
-}
-
-/* Update SystemCoreClock variable according to Clock Register Values. The SystemCoreClock variable contains the core
- * clock (HCLK), it can be used by the user application to setup the SysTick timer or configure other parameters. */
-void SystemCoreClockUpdate(void)
-{
- switch (RCC->CFGR & RCC_CFGR_SWS) {
- case 0x00: /* HSI */
- SystemCoreClock = HSI_VALUE;
- break;
- case 0x04: /* HSE */
- SystemCoreClock = HSE_VALUE;
- break;
- case 0x08: {/* PLL */
- /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
- SYSCLK = PLL_VCO / PLL_P */
- uint32_t pllvco;
- uint32_t pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
- uint32_t pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22;
- if (pllsource != 0) /* HSE */
- pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
- else /* HSI */
- pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
-
- uint32_t pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >> 16) + 1) * 2;
- SystemCoreClock = pllvco / pllp;
- break; }
- default:
- SystemCoreClock = HSI_VALUE;
- break;
- }
- /* Compute HCLK frequency */
- SystemCoreClock >>= AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)];
-}
-
diff --git a/usbh_conf.c b/usbh_conf.c
deleted file mode 100644
index 851c4ff..0000000
--- a/usbh_conf.c
+++ /dev/null
@@ -1,434 +0,0 @@
-/**
- ******************************************************************************
- * @file USB_Host/HID_Standalone/Src/usbh_conf.c
- * @author MCD Application Team
- * @version V1.1.0
- * @date 17-February-2017
- * @brief USB Host configuration file.
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics International N.V.
- * All rights reserved.</center></h2>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted, provided that the following conditions are met:
- *
- * 1. Redistribution of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of other
- * contributors to this software may be used to endorse or promote products
- * derived from this software without specific written permission.
- * 4. This software, including modifications and/or derivative works of this
- * software, must execute solely and exclusively on microcontroller or
- * microprocessor devices manufactured by or for STMicroelectronics.
- * 5. Redistribution and use of this software other than as permitted under
- * this license is void and will automatically terminate your rights under
- * this license.
- *
- * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
- * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT
- * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f4xx_hal.h"
-#include "usbh_core.h"
-
-HCD_HandleTypeDef hhcd;
-
-/*******************************************************************************
- HCD BSP Routines
-*******************************************************************************/
-/**
- * @brief Initializes the HCD MSP.
- * @param hhcd: HCD handle
- * @retval None
- */
-void HAL_HCD_MspInit(HCD_HandleTypeDef* hhcd)
-{
- GPIO_InitTypeDef GPIO_InitStruct;
-
- /* Configure USB FS GPIOs */
- __HAL_RCC_GPIOA_CLK_ENABLE();
-
- GPIO_InitStruct.Pin = (GPIO_PIN_11 | GPIO_PIN_12);
- GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
- GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
- HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
-
- GPIO_InitStruct.Pin = GPIO_PIN_10;
- GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
- GPIO_InitStruct.Pull = GPIO_PULLUP;
- GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
- HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
-
- /* Configure POWER_SWITCH IO pin */
- __HAL_RCC_GPIOB_CLK_ENABLE();
- GPIO_InitStruct.Pin = GPIO_PIN_2;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
-
- /* Enable USB FS Clocks */
- __HAL_RCC_USB_OTG_FS_CLK_ENABLE();
-
- /* Set USBFS Interrupt priority */
- HAL_NVIC_SetPriority(OTG_FS_IRQn, 6, 0);
-
- /* Enable USBFS Interrupt */
- HAL_NVIC_EnableIRQ(OTG_FS_IRQn);
-}
-
-/**
- * @brief DeInitializes the HCD MSP.
- * @param hhcd: HCD handle
- * @retval None
- */
-void HAL_HCD_MspDeInit(HCD_HandleTypeDef* hhcd)
-{
- /* Disable USB FS Clocks */
- __HAL_RCC_USB_OTG_FS_CLK_DISABLE();
-}
-
-/*******************************************************************************
- LL Driver Callbacks (HCD -> USB Host Library)
-*******************************************************************************/
-
-/**
- * @brief SOF callback.
- * @param hhcd: HCD handle
- * @retval None
- */
-void HAL_HCD_SOF_Callback(HCD_HandleTypeDef* hhcd)
-{
- USBH_LL_IncTimer(hhcd->pData);
-}
-
-/**
- * @brief Connect callback.
- * @param hhcd: HCD handle
- * @retval None
- */
-void HAL_HCD_Connect_Callback(HCD_HandleTypeDef* hhcd)
-{
- USBH_LL_Connect(hhcd->pData);
-}
-
-/**
- * @brief Disconnect callback.
- * @param hhcd: HCD handle
- * @retval None
- */
-void HAL_HCD_Disconnect_Callback(HCD_HandleTypeDef* hhcd)
-{
- USBH_LL_Disconnect(hhcd->pData);
-}
-
-/**
- * @brief Notify URB state change callback.
- * @param hhcd: HCD handle
- * @param chnum: Channel number
- * @param urb_state: URB State
- * @retval None
- */
-void HAL_HCD_HC_NotifyURBChange_Callback(HCD_HandleTypeDef* hhcd, uint8_t chnum,
- HCD_URBStateTypeDef urb_state)
-{
- /* To be used with OS to sync URB state with the global state machine */
-}
-
-/*******************************************************************************
- LL Driver Interface (USB Host Library --> HCD)
-*******************************************************************************/
-/**
- * @brief USBH_LL_Init
- * Initialize the Low Level portion of the Host driver.
- * @param phost: Host handle
- * @retval USBH Status
- */
-USBH_StatusTypeDef USBH_LL_Init(USBH_HandleTypeDef* phost)
-{
- /* Set the LL Driver parameters */
- hhcd.Instance = USB_OTG_FS;
- hhcd.Init.Host_channels = 11;
- hhcd.Init.dma_enable = 0;
- hhcd.Init.low_power_enable = 0;
- hhcd.Init.phy_itface = HCD_PHY_EMBEDDED;
- hhcd.Init.Sof_enable = 0;
- hhcd.Init.speed = HCD_SPEED_FULL;
- hhcd.Init.vbus_sensing_enable = 0;
- hhcd.Init.lpm_enable = 0;
-
- /* Link the driver to the stack */
- hhcd.pData = phost;
- phost->pData = &hhcd;
-
- /* Initialize the LL Driver */
- HAL_HCD_Init(&hhcd);
-
- USBH_LL_SetTimer(phost, HAL_HCD_GetCurrentFrame(&hhcd));
-
- return USBH_OK;
-}
-
-/**
- * @brief De-Initializes the Low Level portion of the Host driver.
- * @param phost: Host handle
- * @retval USBH Status
- */
-USBH_StatusTypeDef USBH_LL_DeInit(USBH_HandleTypeDef* phost)
-{
- HAL_HCD_DeInit(phost->pData);
- return USBH_OK;
-}
-
-/**
- * @brief Starts the Low Level portion of the Host driver.
- * @param phost: Host handle
- * @retval USBH Status
- */
-USBH_StatusTypeDef USBH_LL_Start(USBH_HandleTypeDef* phost)
-{
- HAL_HCD_Start(phost->pData);
- return USBH_OK;
-}
-
-/**
- * @brief Stops the Low Level portion of the Host driver.
- * @param phost: Host handle
- * @retval USBH Status
- */
-USBH_StatusTypeDef USBH_LL_Stop(USBH_HandleTypeDef* phost)
-{
- HAL_HCD_Stop(phost->pData);
- return USBH_OK;
-}
-
-/**
- * @brief Returns the USB Host Speed from the Low Level Driver.
- * @param phost: Host handle
- * @retval USBH Speeds
- */
-USBH_SpeedTypeDef USBH_LL_GetSpeed(USBH_HandleTypeDef* phost)
-{
- USBH_SpeedTypeDef speed = USBH_SPEED_FULL;
-
- switch (HAL_HCD_GetCurrentSpeed(phost->pData)) {
- case 0:
- speed = USBH_SPEED_HIGH;
- break;
-
- case 1:
- speed = USBH_SPEED_FULL;
- break;
-
- case 2:
- speed = USBH_SPEED_LOW;
- break;
-
- default:
- speed = USBH_SPEED_FULL;
- break;
- }
- return speed;
-}
-
-/**
- * @brief Resets the Host Port of the Low Level Driver.
- * @param phost: Host handle
- * @retval USBH Status
- */
-USBH_StatusTypeDef USBH_LL_ResetPort(USBH_HandleTypeDef* phost)
-{
- HAL_HCD_ResetPort(phost->pData);
- return USBH_OK;
-}
-
-/**
- * @brief Returns the last transferred packet size.
- * @param phost: Host handle
- * @param pipe: Pipe index
- * @retval Packet Size
- */
-uint32_t USBH_LL_GetLastXferSize(USBH_HandleTypeDef* phost, uint8_t pipe)
-{
- return HAL_HCD_HC_GetXferCount(phost->pData, pipe);
-}
-
-/**
- * @brief Opens a pipe of the Low Level Driver.
- * @param phost: Host handle
- * @param pipe: Pipe index
- * @param epnum: Endpoint Number
- * @param dev_address: Device USB address
- * @param speed: Device Speed
- * @param ep_type: Endpoint Type
- * @param mps: Endpoint Max Packet Size
- * @retval USBH Status
- */
-USBH_StatusTypeDef USBH_LL_OpenPipe(USBH_HandleTypeDef* phost, uint8_t pipe,
- uint8_t epnum, uint8_t dev_address,
- uint8_t speed, uint8_t ep_type,
- uint16_t mps)
-{
- HAL_HCD_HC_Init(phost->pData, pipe, epnum, dev_address, speed, ep_type, mps);
- return USBH_OK;
-}
-
-/**
- * @brief Closes a pipe of the Low Level Driver.
- * @param phost: Host handle
- * @param pipe: Pipe index
- * @retval USBH Status
- */
-USBH_StatusTypeDef USBH_LL_ClosePipe(USBH_HandleTypeDef* phost, uint8_t pipe)
-{
- HAL_HCD_HC_Halt(phost->pData, pipe);
- return USBH_OK;
-}
-
-/**
- * @brief Submits a new URB to the low level driver.
- * @param phost: Host handle
- * @param pipe: Pipe index
- * This parameter can be a value from 1 to 15
- * @param direction: Channel number
- * This parameter can be one of these values:
- * 0: Output
- * 1: Input
- * @param ep_type: Endpoint Type
- * This parameter can be one of these values:
- * @arg EP_TYPE_CTRL: Control type
- * @arg EP_TYPE_ISOC: Isochronous type
- * @arg EP_TYPE_BULK: Bulk type
- * @arg EP_TYPE_INTR: Interrupt type
- * @param token: Endpoint Type
- * This parameter can be one of these values:
- * @arg 0: PID_SETUP
- * @arg 1: PID_DATA
- * @param pbuff: pointer to URB data
- * @param length: length of URB data
- * @param do_ping: activate do ping protocol (for high speed only)
- * This parameter can be one of these values:
- * 0: do ping inactive
- * 1: do ping active
- * @retval USBH Status
- */
-USBH_StatusTypeDef USBH_LL_SubmitURB(USBH_HandleTypeDef* phost, uint8_t pipe,
- uint8_t direction, uint8_t ep_type,
- uint8_t token, uint8_t* pbuff,
- uint16_t length, uint8_t do_ping)
-{
- HAL_HCD_HC_SubmitRequest(phost->pData, pipe, direction, ep_type, token, pbuff,
- length, do_ping);
- return USBH_OK;
-}
-
-/**
- * @brief Gets a URB state from the low level driver.
- * @param phost: Host handle
- * @param pipe: Pipe index
- * This parameter can be a value from 1 to 15
- * @retval URB state
- * This parameter can be one of these values:
- * @arg URB_IDLE
- * @arg URB_DONE
- * @arg URB_NOTREADY
- * @arg URB_NYET
- * @arg URB_ERROR
- * @arg URB_STALL
- */
-USBH_URBStateTypeDef USBH_LL_GetURBState(USBH_HandleTypeDef* phost,
- uint8_t pipe)
-{
- return (USBH_URBStateTypeDef)HAL_HCD_HC_GetURBState(phost->pData, pipe);
-}
-
-/**
- * @brief Drives VBUS.
- * @param phost: Host handle
- * @param state: VBUS state
- * This parameter can be one of these values:
- * 0: VBUS Active
- * 1: VBUS Inactive
- * @retval USBH Status
- */
-USBH_StatusTypeDef USBH_LL_DriverVBUS(USBH_HandleTypeDef* phost,
- uint8_t state)
-{
- if (state == 0) {
- HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET);
- } else {
- HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_SET);
- }
- HAL_Delay(200);
- return USBH_OK;
-}
-
-/**
- * @brief Sets toggle for a pipe.
- * @param phost: Host handle
- * @param pipe: Pipe index
- * @param toggle: toggle (0/1)
- * @retval USBH Status
- */
-USBH_StatusTypeDef USBH_LL_SetToggle(USBH_HandleTypeDef* phost, uint8_t pipe,
- uint8_t toggle)
-{
- if (hhcd.hc[pipe].ep_is_in) {
- hhcd.hc[pipe].toggle_in = toggle;
- } else {
- hhcd.hc[pipe].toggle_out = toggle;
- }
- return USBH_OK;
-}
-
-/**
- * @brief Returns the current toggle of a pipe.
- * @param phost: Host handle
- * @param pipe: Pipe index
- * @retval toggle (0/1)
- */
-uint8_t USBH_LL_GetToggle(USBH_HandleTypeDef* phost, uint8_t pipe)
-{
- uint8_t toggle = 0;
-
- if (hhcd.hc[pipe].ep_is_in) {
- toggle = hhcd.hc[pipe].toggle_in;
- } else {
- toggle = hhcd.hc[pipe].toggle_out;
- }
- return toggle;
-}
-
-/**
- * @brief Delay routine for the USB Host Library
- * @param Delay: Delay in ms
- * @retval None
- */
-void USBH_Delay(uint32_t Delay)
-{
-#if (USBH_USE_OS == 1)
- osDelay(Delay);
-#else
- HAL_Delay(Delay);
-#endif
-}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/usbh_conf.h b/usbh_conf.h
deleted file mode 100644
index da91b6e..0000000
--- a/usbh_conf.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
- ******************************************************************************
- * @file USB_Host/HID_Standalone/Inc/usbh_conf.h
- * @author MCD Application Team
- * @version V1.1.0
- * @date 17-February-2017
- * @brief General low level driver configuration
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics International N.V.
- * All rights reserved.</center></h2>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted, provided that the following conditions are met:
- *
- * 1. Redistribution of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of other
- * contributors to this software may be used to endorse or promote products
- * derived from this software without specific written permission.
- * 4. This software, including modifications and/or derivative works of this
- * software, must execute solely and exclusively on microcontroller or
- * microprocessor devices manufactured by or for STMicroelectronics.
- * 5. Redistribution and use of this software other than as permitted under
- * this license is void and will automatically terminate your rights under
- * this license.
- *
- * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
- * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT
- * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __USBH_CONF_H
-#define __USBH_CONF_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f4xx_hal.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* Exported types ------------------------------------------------------------*/
-#define USBH_MAX_NUM_ENDPOINTS 2
-#define USBH_MAX_NUM_INTERFACES 2
-#define USBH_MAX_NUM_CONFIGURATION 1
-#define USBH_MAX_NUM_SUPPORTED_CLASS 1
-#define USBH_KEEP_CFG_DESCRIPTOR 0
-#define USBH_MAX_SIZE_CONFIGURATION 0x200
-#define USBH_MAX_DATA_BUFFER 0x200
-#define USBH_DEBUG_LEVEL 2
-#define USBH_USE_OS 0
-
-/* Exported constants --------------------------------------------------------*/
-/* Exported macro ------------------------------------------------------------*/
-/* CMSIS OS macros */
-#if (USBH_USE_OS == 1)
-#include "cmsis_os.h"
-#define USBH_PROCESS_PRIO osPriorityNormal
-#endif
-
-/* Memory management macros */
-#define USBH_malloc malloc
-#define USBH_free free
-#define USBH_memset memset
-#define USBH_memcpy memcpy
-
-/* DEBUG macros */
-#if (USBH_DEBUG_LEVEL > 0)
-#define USBH_UsrLog(...) \
- printf(__VA_ARGS__); \
- printf("\n");
-#else
-#define USBH_UsrLog(...)
-#endif
-
-#if (USBH_DEBUG_LEVEL > 1)
-
-#define USBH_ErrLog(...) \
- printf("ERROR: "); \
- printf(__VA_ARGS__); \
- printf("\n");
-#else
-#define USBH_ErrLog(...)
-#endif
-
-#if (USBH_DEBUG_LEVEL > 2)
-#define USBH_DbgLog(...) \
- printf("DEBUG : "); \
- printf(__VA_ARGS__); \
- printf("\n");
-#else
-#define USBH_DbgLog(...)
-#endif
-
-/* Exported functions ------------------------------------------------------- */
-
-#endif /* __USBH_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/