diff --git a/firmware/.mxproject b/firmware/.mxproject index e5d8437..9f80190 100644 --- a/firmware/.mxproject +++ b/firmware/.mxproject @@ -1,8 +1,8 @@ [PreviousLibFiles] -LibFiles=Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_bus.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_system.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_utils.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dmamux.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_bus.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_system.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_utils.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dmamux.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f411xe.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Drivers/CMSIS/Include/core_cm85.h;Drivers/CMSIS/Include/cachel1_armv7.h;Drivers/CMSIS/Include/pac_armv81.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/tz_context.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/core_cm35p.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/core_armv81mml.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_cm55.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/pmu_armv8.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_starmc1.h;Drivers/CMSIS/Include/cmsis_armclang_ltm.h; +LibFiles=Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_bus.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_system.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_utils.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dmamux.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_i2c.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_bus.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_system.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_utils.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dmamux.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_i2c.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f411xe.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Drivers/CMSIS/Include/core_cm85.h;Drivers/CMSIS/Include/cachel1_armv7.h;Drivers/CMSIS/Include/pac_armv81.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/tz_context.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/core_cm35p.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/core_armv81mml.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_cm55.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/pmu_armv8.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_starmc1.h;Drivers/CMSIS/Include/cmsis_armclang_ltm.h; [PreviousUsedCubeIDEFiles] -SourceFiles=Core/Src/main.c;Core/Src/stm32f4xx_it.c;Core/Src/stm32f4xx_hal_msp.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Core/Src/system_stm32f4xx.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Core/Src/system_stm32f4xx.c;;; +SourceFiles=Core/Src/main.c;Core/Src/stm32f4xx_it.c;Core/Src/stm32f4xx_hal_msp.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Core/Src/system_stm32f4xx.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Core/Src/system_stm32f4xx.c;;; HeaderPath=Drivers/STM32F4xx_HAL_Driver/Inc;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy;Drivers/CMSIS/Device/ST/STM32F4xx/Include;Drivers/CMSIS/Include;Core/Inc; CDefines=USE_HAL_DRIVER;STM32F411xE;USE_HAL_DRIVER;USE_HAL_DRIVER; diff --git a/firmware/Core/Inc/DRV2605L.h b/firmware/Core/Inc/DRV2605L.h new file mode 100644 index 0000000..1116e28 --- /dev/null +++ b/firmware/Core/Inc/DRV2605L.h @@ -0,0 +1,196 @@ +#ifndef _DRV2605_H +#define _DRV2605_H + +#include + +#define DRV2605_ADDR 0x5A ///< Device I2C address + +#define DRV2605_REG_STATUS 0x00 ///< Status register +#define DRV2605_REG_MODE 0x01 ///< Mode register +#define DRV2605_MODE_INTTRIG 0x00 ///< Internal trigger mode +#define DRV2605_MODE_EXTTRIGEDGE 0x01 ///< External edge trigger mode +#define DRV2605_MODE_EXTTRIGLVL 0x02 ///< External level trigger mode +#define DRV2605_MODE_PWMANALOG 0x03 ///< PWM/Analog input mode +#define DRV2605_MODE_AUDIOVIBE 0x04 ///< Audio-to-vibe mode +#define DRV2605_MODE_REALTIME 0x05 ///< Real-time playback (RTP) mode +#define DRV2605_MODE_DIAGNOS 0x06 ///< Diagnostics mode +#define DRV2605_MODE_AUTOCAL 0x07 ///< Auto calibration mode + +#define DRV2605_REG_RTPIN 0x02 ///< Real-time playback input register +#define DRV2605_REG_LIBRARY 0x03 ///< Waveform library selection register +#define DRV2605_REG_WAVESEQ1 0x04 ///< Waveform sequence register 1 +#define DRV2605_REG_WAVESEQ2 0x05 ///< Waveform sequence register 2 +#define DRV2605_REG_WAVESEQ3 0x06 ///< Waveform sequence register 3 +#define DRV2605_REG_WAVESEQ4 0x07 ///< Waveform sequence register 4 +#define DRV2605_REG_WAVESEQ5 0x08 ///< Waveform sequence register 5 +#define DRV2605_REG_WAVESEQ6 0x09 ///< Waveform sequence register 6 +#define DRV2605_REG_WAVESEQ7 0x0A ///< Waveform sequence register 7 +#define DRV2605_REG_WAVESEQ8 0x0B ///< Waveform sequence register 8 + +#define DRV2605_REG_GO 0x0C ///< Go register +#define DRV2605_REG_OVERDRIVE 0x0D ///< Overdrive time offset register +#define DRV2605_REG_SUSTAINPOS 0x0E ///< Sustain time offset, positive register +#define DRV2605_REG_SUSTAINNEG 0x0F ///< Sustain time offset, negative register +#define DRV2605_REG_BREAK 0x10 ///< Brake time offset register +#define DRV2605_REG_AUDIOCTRL 0x11 ///< Audio-to-vibe control register +#define DRV2605_REG_AUDIOLVL 0x12 ///< Audio-to-vibe minimum input level register +#define DRV2605_REG_AUDIOMAX 0x13 ///< Audio-to-vibe maximum input level register +#define DRV2605_REG_AUDIOOUTMIN 0x14 ///< Audio-to-vibe minimum output drive register +#define DRV2605_REG_AUDIOOUTMAX 0x15 ///< Audio-to-vibe maximum output drive register +#define DRV2605_REG_RATEDV 0x16 ///< Rated voltage register +#define DRV2605_REG_CLAMPV 0x17 ///< Overdrive clamp voltage register +#define DRV2605_REG_AUTOCALCOMP 0x18 ///< Auto-calibration compensation result register +#define DRV2605_REG_AUTOCALEMP 0x19 ///< Auto-calibration back-EMF result register +#define DRV2605_REG_FEEDBACK 0x1A ///< Feedback control register +#define DRV2605_REG_CONTROL1 0x1B ///< Control1 Register +#define DRV2605_REG_CONTROL2 0x1C ///< Control2 Register +#define DRV2605_REG_CONTROL3 0x1D ///< Control3 Register +#define DRV2605_REG_CONTROL4 0x1E ///< Control4 Register +#define DRV2605_REG_VBAT 0x21 ///< Vbat voltage-monitor register +#define DRV2605_REG_LRARESON 0x22 ///< LRA resonance-period register + +// Effects: +// 1 − Strong Click - 100% +// 2 − Strong Click - 60% +// 3 − Strong Click - 30% +// 4 − Sharp Click - 100% +// 5 − Sharp Click - 60% +// 6 − Sharp Click - 30% +// 7 − Soft Bump - 100% +// 8 − Soft Bump - 60% +// 9 − Soft Bump - 30% +// 10 − Double Click - 100% +// 11 − Double Click - 60% +// 12 − Triple Click - 100% +// 13 − Soft Fuzz - 60% +// 14 − Strong Buzz - 100% +// 15 − 750 ms Alert 100% +// 16 − 1000 ms Alert 100% +// 17 − Strong Click 1 - 100% +// 18 − Strong Click 2 - 80% +// 19 − Strong Click 3 - 60% +// 20 − Strong Click 4 - 30% +// 21 − Medium Click 1 - 100% +// 22 − Medium Click 2 - 80% +// 23 − Medium Click 3 - 60% +// 24 − Sharp Tick 1 - 100% +// 25 − Sharp Tick 2 - 80% +// 26 − Sharp Tick 3 – 60% +// 27 − Short Double Click Strong 1 – 100% +// 28 − Short Double Click Strong 2 – 80% +// 29 − Short Double Click Strong 3 – 60% +// 30 − Short Double Click Strong 4 – 30% +// 31 − Short Double Click Medium 1 – 100% +// 32 − Short Double Click Medium 2 – 80% +// 33 − Short Double Click Medium 3 – 60% +// 34 − Short Double Sharp Tick 1 – 100% +// 35 − Short Double Sharp Tick 2 – 80% +// 36 − Short Double Sharp Tick 3 – 60% +// 37 − Long Double Sharp Click Strong 1 – 100% +// 38 − Long Double Sharp Click Strong 2 – 80% +// 39 − Long Double Sharp Click Strong 3 – 60% +// 40 − Long Double Sharp Click Strong 4 – 30% +// 41 − Long Double Sharp Click Medium 1 – 100% +// 42 − Long Double Sharp Click Medium 2 – 80% +// 43 − Long Double Sharp Click Medium 3 – 60% +// 44 − Long Double Sharp Tick 1 – 100% +// 45 − Long Double Sharp Tick 2 – 80% +// 46 − Long Double Sharp Tick 3 – 60% +// 47 − Buzz 1 – 100% +// 48 − Buzz 2 – 80% +// 49 − Buzz 3 – 60% +// 50 − Buzz 4 – 40% +// 51 − Buzz 5 – 20% +// 52 − Pulsing Strong 1 – 100% +// 53 − Pulsing Strong 2 – 60% +// 54 − Pulsing Medium 1 – 100% +// 55 − Pulsing Medium 2 – 60% +// 56 − Pulsing Sharp 1 – 100% +// 57 − Pulsing Sharp 2 – 60% +// 58 − Transition Click 1 – 100% +// 59 − Transition Click 2 – 80% +// 60 − Transition Click 3 – 60% +// 61 − Transition Click 4 – 40% +// 62 − Transition Click 5 – 20% +// 63 − Transition Click 6 – 10% +// 64 − Transition Hum 1 – 100% +// 65 − Transition Hum 2 – 80% +// 66 − Transition Hum 3 – 60% +// 67 − Transition Hum 4 – 40% +// 68 − Transition Hum 5 – 20% +// 69 − Transition Hum 6 – 10% +// 70 − Transition Ramp Down Long Smooth 1 – 100 to 0% +// 71 − Transition Ramp Down Long Smooth 2 – 100 to 0% +// 72 − Transition Ramp Down Medium Smooth 1 – 100 to 0% +// 73 − Transition Ramp Down Medium Smooth 2 – 100 to 0% +// 74 − Transition Ramp Down Short Smooth 1 – 100 to 0% +// 75 − Transition Ramp Down Short Smooth 2 – 100 to 0% +// 76 − Transition Ramp Down Long Sharp 1 – 100 to 0% +// 77 − Transition Ramp Down Long Sharp 2 – 100 to 0% +// 78 − Transition Ramp Down Medium Sharp 1 – 100 to 0% +// 79 − Transition Ramp Down Medium Sharp 2 – 100 to 0% +// 80 − Transition Ramp Down Short Sharp 1 – 100 to 0% +// 81 − Transition Ramp Down Short Sharp 2 – 100 to 0% +// 82 − Transition Ramp Up Long Smooth 1 – 0 to 100% +// 83 − Transition Ramp Up Long Smooth 2 – 0 to 100% +// 84 − Transition Ramp Up Medium Smooth 1 – 0 to 100% +// 85 − Transition Ramp Up Medium Smooth 2 – 0 to 100% +// 86 − Transition Ramp Up Short Smooth 1 – 0 to 100% +// 87 − Transition Ramp Up Short Smooth 2 – 0 to 100% +// 88 − Transition Ramp Up Long Sharp 1 – 0 to 100% +// 89 − Transition Ramp Up Long Sharp 2 – 0 to 100% +// 90 − Transition Ramp Up Medium Sharp 1 – 0 to 100% +// 91 − Transition Ramp Up Medium Sharp 2 – 0 to 100% +// 92 − Transition Ramp Up Short Sharp 1 – 0 to 100% +// 93 − Transition Ramp Up Short Sharp 2 – 0 to 100% +// 94 − Transition Ramp Down Long Smooth 1 – 50 to 0% +// 95 − Transition Ramp Down Long Smooth 2 – 50 to 0% +// 96 − Transition Ramp Down Medium Smooth 1 – 50 to 0% +// 97 − Transition Ramp Down Medium Smooth 2 – 50 to 0% +// 98 − Transition Ramp Down Short Smooth 1 – 50 to 0% +// 99 − Transition Ramp Down Short Smooth 2 – 50 to 0% +// 100 − Transition Ramp Down Long Sharp 1 – 50 to 0% +// 101 − Transition Ramp Down Long Sharp 2 – 50 to 0% +// 102 − Transition Ramp Down Medium Sharp 1 – 50 to 0% +// 103 − Transition Ramp Down Medium Sharp 2 – 50 to 0% +// 104 − Transition Ramp Down Short Sharp 1 – 50 to 0% +// 105 − Transition Ramp Down Short Sharp 2 – 50 to 0% +// 106 − Transition Ramp Up Long Smooth 1 – 0 to 50% +// 107 − Transition Ramp Up Long Smooth 2 – 0 to 50% +// 108 − Transition Ramp Up Medium Smooth 1 – 0 to 50% +// 109 − Transition Ramp Up Medium Smooth 2 – 0 to 50% +// 110 − Transition Ramp Up Short Smooth 1 – 0 to 50% +// 111 − Transition Ramp Up Short Smooth 2 – 0 to 50% +// 112 − Transition Ramp Up Long Sharp 1 – 0 to 50% +// 113 − Transition Ramp Up Long Sharp 2 – 0 to 50% +// 114 − Transition Ramp Up Medium Sharp 1 – 0 to 50% +// 115 − Transition Ramp Up Medium Sharp 2 – 0 to 50% +// 116 − Transition Ramp Up Short Sharp 1 – 0 to 50% +// 117 − Transition Ramp Up Short Sharp 2 – 0 to 50% +// 118 − Long buzz for programmatic stopping – 100% +// 119 − Smooth Hum 1 (No kick or brake pulse) – 50% +// 120 − Smooth Hum 2 (No kick or brake pulse) – 40% +// 121 − Smooth Hum 3 (No kick or brake pulse) – 30% +// 122 − Smooth Hum 4 (No kick or brake pulse) – 20% +// 123 − Smooth Hum 5 (No kick or brake pulse) – 10% + +/**************************************************************************/ +/*! + @brief The DRV2605 driver class. +*/ +/**************************************************************************/ +void drv2605l_init(); +void writeRegister8(uint8_t reg, uint8_t val); +uint8_t readRegister8(uint8_t reg); +void drv2605l_setWaveform(uint8_t slot, uint8_t w); +void drv2605l_selectLibrary(uint8_t lib); +void drv2605l_go(void); +void drv2605l_stop(void); +void drv2605l_setMode(uint8_t mode); +void drv2605l_setRealtimeValue(uint8_t rtp); +// Select ERM (Eccentric Rotating Mass) or LRA (Linear Resonant Actuator) +// vibration motor The default is ERM, which is more common +void drv2605l_useERM(); +void drv2605l_useLRA(); + +#endif diff --git a/firmware/Core/Inc/stm32f4xx_hal_conf.h b/firmware/Core/Inc/stm32f4xx_hal_conf.h index ab78edc..06c0980 100644 --- a/firmware/Core/Inc/stm32f4xx_hal_conf.h +++ b/firmware/Core/Inc/stm32f4xx_hal_conf.h @@ -53,7 +53,7 @@ /* #define HAL_SRAM_MODULE_ENABLED */ /* #define HAL_SDRAM_MODULE_ENABLED */ /* #define HAL_HASH_MODULE_ENABLED */ -/* #define HAL_I2C_MODULE_ENABLED */ +#define HAL_I2C_MODULE_ENABLED /* #define HAL_I2S_MODULE_ENABLED */ /* #define HAL_IWDG_MODULE_ENABLED */ /* #define HAL_LTDC_MODULE_ENABLED */ diff --git a/firmware/Core/Src/main.c b/firmware/Core/Src/main.c index 88997aa..8111821 100644 --- a/firmware/Core/Src/main.c +++ b/firmware/Core/Src/main.c @@ -21,6 +21,7 @@ /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ +#include "DRV2605L.h" #include "tusb.h" #include "usb_descriptors.h" #include @@ -35,6 +36,8 @@ /* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN PD */ +#define IS_DRV2605_ENABLED false + #define VENDOR_REQUEST_KEYS 0xfe #define VENDOR_REQUEST_CONFIG 0xff #define VENDOR_REQUEST_RESET_CONFIG 0xfd @@ -53,6 +56,8 @@ /* Private variables ---------------------------------------------------------*/ ADC_HandleTypeDef hadc1; +I2C_HandleTypeDef hi2c1; + PCD_HandleTypeDef hpcd_USB_OTG_FS; /* USER CODE BEGIN PV */ @@ -109,13 +114,6 @@ static uint8_t keycodes[6] = {0}; static uint8_t consumer_report = 0; extern uint8_t const desc_ms_os_20[]; -// #define URL "heiso.github.io/macrolev/configurator" -// const tusb_desc_webusb_url_t desc_url = -// { -// .bLength = 3 + sizeof(URL) - 1, -// .bDescriptorType = 3, // WEBUSB URL type -// .bScheme = 1, // 0: http, 1: https -// .url = URL}; /* USER CODE END PV */ @@ -124,6 +122,9 @@ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_ADC1_Init(void); static void MX_USB_OTG_FS_PCD_Init(void); +#if IS_DRV2605_ENABLED +static void MX_I2C1_Init(void); +#endif /* USER CODE BEGIN PFP */ static void update_key(struct key *key); static void init_keys(); @@ -154,6 +155,50 @@ bool writeConfig(uint8_t *buffer, uint16_t offset, uint16_t size) { HAL_FLASH_Lock(); return true; } + +uint8_t readRegister8(uint8_t reg) { + uint8_t buffer[1] = {reg}; + HAL_I2C_Master_Transmit(&hi2c1, DRV2605_ADDR << 1, buffer, 1, 1000); + HAL_I2C_Master_Receive(&hi2c1, DRV2605_ADDR << 1, buffer, 1, 1000); + return buffer[0]; +} + +void writeRegister8(uint8_t reg, uint8_t val) { + uint8_t buffer[2] = {reg, val}; + HAL_I2C_Master_Transmit(&hi2c1, DRV2605_ADDR << 1, buffer, sizeof(buffer), 1); +} + +void DRV2605_init() { + writeRegister8(DRV2605_REG_MODE, 0x00); // out of standby + + writeRegister8(DRV2605_REG_RTPIN, 0x00); // no real-time-playback + + writeRegister8(DRV2605_REG_WAVESEQ1, 1); // strong click + writeRegister8(DRV2605_REG_WAVESEQ2, 0); // end sequence + + writeRegister8(DRV2605_REG_OVERDRIVE, 1); // no overdrive + + writeRegister8(DRV2605_REG_SUSTAINPOS, 0); + writeRegister8(DRV2605_REG_SUSTAINNEG, 0); + writeRegister8(DRV2605_REG_BREAK, 0); + writeRegister8(DRV2605_REG_AUDIOMAX, 0x64); + + // ERM open loop + + // turn on N_ERM_LRA + writeRegister8(DRV2605_REG_FEEDBACK, + readRegister8(DRV2605_REG_FEEDBACK) | 0x80); + + // // turn off N_ERM_LRA + // writeRegister8(DRV2605_REG_FEEDBACK, + // readRegister8(DRV2605_REG_FEEDBACK) & 0x7F); + // // turn on ERM_OPEN_LOOP + // writeRegister8(DRV2605_REG_CONTROL3, + // readRegister8(DRV2605_REG_CONTROL3) | 0x20); + + writeRegister8(DRV2605_REG_LIBRARY, 1); + writeRegister8(DRV2605_REG_MODE, DRV2605_MODE_INTTRIG); +} /* USER CODE END 0 */ /** @@ -186,11 +231,17 @@ int main(void) { MX_GPIO_Init(); MX_ADC1_Init(); MX_USB_OTG_FS_PCD_Init(); +#if IS_DRV2605_ENABLED + MX_I2C1_Init(); +#endif /* USER CODE BEGIN 2 */ init_keys(); tud_init(BOARD_TUD_RHPORT); +#if IS_DRV2605_ENABLED + drv2605l_init(); +#endif /* USER CODE END 2 */ @@ -259,6 +310,14 @@ int main(void) { } } } + +#if IS_DRV2605_ENABLED + if (key_triggered) { + writeRegister8(DRV2605_REG_WAVESEQ1 + 0, 1); + writeRegister8(DRV2605_REG_WAVESEQ1 + 1, 0); + writeRegister8(DRV2605_REG_GO, 1); + } +#endif /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ @@ -357,6 +416,37 @@ static void MX_ADC1_Init(void) { /* USER CODE END ADC1_Init 2 */ } +/** + * @brief I2C1 Initialization Function + * @param None + * @retval None + */ +static void MX_I2C1_Init(void) { + + /* USER CODE BEGIN I2C1_Init 0 */ + + /* USER CODE END I2C1_Init 0 */ + + /* USER CODE BEGIN I2C1_Init 1 */ + + /* USER CODE END I2C1_Init 1 */ + hi2c1.Instance = I2C1; + hi2c1.Init.ClockSpeed = 100000; + hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2; + hi2c1.Init.OwnAddress1 = 0; + hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + hi2c1.Init.OwnAddress2 = 0; + hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + if (HAL_I2C_Init(&hi2c1) != HAL_OK) { + Error_Handler(); + } + /* USER CODE BEGIN I2C1_Init 2 */ + + /* USER CODE END I2C1_Init 2 */ +} + /** * @brief USB_OTG_FS Initialization Function * @param None diff --git a/firmware/Core/Src/stm32f4xx_hal_msp.c b/firmware/Core/Src/stm32f4xx_hal_msp.c index 354018f..4084c40 100644 --- a/firmware/Core/Src/stm32f4xx_hal_msp.c +++ b/firmware/Core/Src/stm32f4xx_hal_msp.c @@ -148,6 +148,73 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc) } +/** +* @brief I2C MSP Initialization +* This function configures the hardware resources used in this example +* @param hi2c: I2C handle pointer +* @retval None +*/ +void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(hi2c->Instance==I2C1) + { + /* USER CODE BEGIN I2C1_MspInit 0 */ + + /* USER CODE END I2C1_MspInit 0 */ + + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**I2C1 GPIO Configuration + PB6 ------> I2C1_SCL + PB7 ------> I2C1_SDA + */ + GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7; + GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + GPIO_InitStruct.Pull = GPIO_PULLUP; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* Peripheral clock enable */ + __HAL_RCC_I2C1_CLK_ENABLE(); + /* USER CODE BEGIN I2C1_MspInit 1 */ + + /* USER CODE END I2C1_MspInit 1 */ + } + +} + +/** +* @brief I2C MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param hi2c: I2C handle pointer +* @retval None +*/ +void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c) +{ + if(hi2c->Instance==I2C1) + { + /* USER CODE BEGIN I2C1_MspDeInit 0 */ + + /* USER CODE END I2C1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_I2C1_CLK_DISABLE(); + + /**I2C1 GPIO Configuration + PB6 ------> I2C1_SCL + PB7 ------> I2C1_SDA + */ + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6); + + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7); + + /* USER CODE BEGIN I2C1_MspDeInit 1 */ + + /* USER CODE END I2C1_MspDeInit 1 */ + } + +} + /** * @brief PCD MSP Initialization * This function configures the hardware resources used in this example diff --git a/firmware/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h b/firmware/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h new file mode 100644 index 0000000..b37126e --- /dev/null +++ b/firmware/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h @@ -0,0 +1,741 @@ +/** + ****************************************************************************** + * @file stm32f4xx_hal_i2c.h + * @author MCD Application Team + * @brief Header file of I2C HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F4xx_HAL_I2C_H +#define __STM32F4xx_HAL_I2C_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f4xx_hal_def.h" + +/** @addtogroup STM32F4xx_HAL_Driver + * @{ + */ + +/** @addtogroup I2C + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup I2C_Exported_Types I2C Exported Types + * @{ + */ + +/** @defgroup I2C_Configuration_Structure_definition I2C Configuration Structure definition + * @brief I2C Configuration Structure definition + * @{ + */ +typedef struct +{ + uint32_t ClockSpeed; /*!< Specifies the clock frequency. + This parameter must be set to a value lower than 400kHz */ + + uint32_t DutyCycle; /*!< Specifies the I2C fast mode duty cycle. + This parameter can be a value of @ref I2C_duty_cycle_in_fast_mode */ + + uint32_t OwnAddress1; /*!< Specifies the first device own address. + This parameter can be a 7-bit or 10-bit address. */ + + uint32_t AddressingMode; /*!< Specifies if 7-bit or 10-bit addressing mode is selected. + This parameter can be a value of @ref I2C_addressing_mode */ + + uint32_t DualAddressMode; /*!< Specifies if dual addressing mode is selected. + This parameter can be a value of @ref I2C_dual_addressing_mode */ + + uint32_t OwnAddress2; /*!< Specifies the second device own address if dual addressing mode is selected + This parameter can be a 7-bit address. */ + + uint32_t GeneralCallMode; /*!< Specifies if general call mode is selected. + This parameter can be a value of @ref I2C_general_call_addressing_mode */ + + uint32_t NoStretchMode; /*!< Specifies if nostretch mode is selected. + This parameter can be a value of @ref I2C_nostretch_mode */ + +} I2C_InitTypeDef; + +/** + * @} + */ + +/** @defgroup HAL_state_structure_definition HAL state structure definition + * @brief HAL State structure definition + * @note HAL I2C State value coding follow below described bitmap : + * b7-b6 Error information + * 00 : No Error + * 01 : Abort (Abort user request on going) + * 10 : Timeout + * 11 : Error + * b5 Peripheral initialization status + * 0 : Reset (Peripheral not initialized) + * 1 : Init done (Peripheral initialized and ready to use. HAL I2C Init function called) + * b4 (not used) + * x : Should be set to 0 + * b3 + * 0 : Ready or Busy (No Listen mode ongoing) + * 1 : Listen (Peripheral in Address Listen Mode) + * b2 Intrinsic process state + * 0 : Ready + * 1 : Busy (Peripheral busy with some configuration or internal operations) + * b1 Rx state + * 0 : Ready (no Rx operation ongoing) + * 1 : Busy (Rx operation ongoing) + * b0 Tx state + * 0 : Ready (no Tx operation ongoing) + * 1 : Busy (Tx operation ongoing) + * @{ + */ +typedef enum +{ + HAL_I2C_STATE_RESET = 0x00U, /*!< Peripheral is not yet Initialized */ + HAL_I2C_STATE_READY = 0x20U, /*!< Peripheral Initialized and ready for use */ + HAL_I2C_STATE_BUSY = 0x24U, /*!< An internal process is ongoing */ + HAL_I2C_STATE_BUSY_TX = 0x21U, /*!< Data Transmission process is ongoing */ + HAL_I2C_STATE_BUSY_RX = 0x22U, /*!< Data Reception process is ongoing */ + HAL_I2C_STATE_LISTEN = 0x28U, /*!< Address Listen Mode is ongoing */ + HAL_I2C_STATE_BUSY_TX_LISTEN = 0x29U, /*!< Address Listen Mode and Data Transmission + process is ongoing */ + HAL_I2C_STATE_BUSY_RX_LISTEN = 0x2AU, /*!< Address Listen Mode and Data Reception + process is ongoing */ + HAL_I2C_STATE_ABORT = 0x60U, /*!< Abort user request ongoing */ + HAL_I2C_STATE_TIMEOUT = 0xA0U, /*!< Timeout state */ + HAL_I2C_STATE_ERROR = 0xE0U /*!< Error */ + +} HAL_I2C_StateTypeDef; + +/** + * @} + */ + +/** @defgroup HAL_mode_structure_definition HAL mode structure definition + * @brief HAL Mode structure definition + * @note HAL I2C Mode value coding follow below described bitmap :\n + * b7 (not used)\n + * x : Should be set to 0\n + * b6\n + * 0 : None\n + * 1 : Memory (HAL I2C communication is in Memory Mode)\n + * b5\n + * 0 : None\n + * 1 : Slave (HAL I2C communication is in Slave Mode)\n + * b4\n + * 0 : None\n + * 1 : Master (HAL I2C communication is in Master Mode)\n + * b3-b2-b1-b0 (not used)\n + * xxxx : Should be set to 0000 + * @{ + */ +typedef enum +{ + HAL_I2C_MODE_NONE = 0x00U, /*!< No I2C communication on going */ + HAL_I2C_MODE_MASTER = 0x10U, /*!< I2C communication is in Master Mode */ + HAL_I2C_MODE_SLAVE = 0x20U, /*!< I2C communication is in Slave Mode */ + HAL_I2C_MODE_MEM = 0x40U /*!< I2C communication is in Memory Mode */ + +} HAL_I2C_ModeTypeDef; + +/** + * @} + */ + +/** @defgroup I2C_Error_Code_definition I2C Error Code definition + * @brief I2C Error Code definition + * @{ + */ +#define HAL_I2C_ERROR_NONE 0x00000000U /*!< No error */ +#define HAL_I2C_ERROR_BERR 0x00000001U /*!< BERR error */ +#define HAL_I2C_ERROR_ARLO 0x00000002U /*!< ARLO error */ +#define HAL_I2C_ERROR_AF 0x00000004U /*!< AF error */ +#define HAL_I2C_ERROR_OVR 0x00000008U /*!< OVR error */ +#define HAL_I2C_ERROR_DMA 0x00000010U /*!< DMA transfer error */ +#define HAL_I2C_ERROR_TIMEOUT 0x00000020U /*!< Timeout Error */ +#define HAL_I2C_ERROR_SIZE 0x00000040U /*!< Size Management error */ +#define HAL_I2C_ERROR_DMA_PARAM 0x00000080U /*!< DMA Parameter Error */ +#define HAL_I2C_WRONG_START 0x00000200U /*!< Wrong start Error */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +#define HAL_I2C_ERROR_INVALID_CALLBACK 0x00000100U /*!< Invalid Callback error */ +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +/** + * @} + */ + +/** @defgroup I2C_handle_Structure_definition I2C handle Structure definition + * @brief I2C handle Structure definition + * @{ + */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +typedef struct __I2C_HandleTypeDef +#else +typedef struct +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +{ + I2C_TypeDef *Instance; /*!< I2C registers base address */ + + I2C_InitTypeDef Init; /*!< I2C communication parameters */ + + uint8_t *pBuffPtr; /*!< Pointer to I2C transfer buffer */ + + uint16_t XferSize; /*!< I2C transfer size */ + + __IO uint16_t XferCount; /*!< I2C transfer counter */ + + __IO uint32_t XferOptions; /*!< I2C transfer options */ + + __IO uint32_t PreviousState; /*!< I2C communication Previous state and mode + context for internal usage */ + + DMA_HandleTypeDef *hdmatx; /*!< I2C Tx DMA handle parameters */ + + DMA_HandleTypeDef *hdmarx; /*!< I2C Rx DMA handle parameters */ + + HAL_LockTypeDef Lock; /*!< I2C locking object */ + + __IO HAL_I2C_StateTypeDef State; /*!< I2C communication state */ + + __IO HAL_I2C_ModeTypeDef Mode; /*!< I2C communication mode */ + + __IO uint32_t ErrorCode; /*!< I2C Error code */ + + __IO uint32_t Devaddress; /*!< I2C Target device address */ + + __IO uint32_t Memaddress; /*!< I2C Target memory address */ + + __IO uint32_t MemaddSize; /*!< I2C Target memory address size */ + + __IO uint32_t EventCount; /*!< I2C Event counter */ + + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + void (* MasterTxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Master Tx Transfer completed callback */ + void (* MasterRxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Master Rx Transfer completed callback */ + void (* SlaveTxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Slave Tx Transfer completed callback */ + void (* SlaveRxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Slave Rx Transfer completed callback */ + void (* ListenCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Listen Complete callback */ + void (* MemTxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Memory Tx Transfer completed callback */ + void (* MemRxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Memory Rx Transfer completed callback */ + void (* ErrorCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Error callback */ + void (* AbortCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Abort callback */ + + void (* AddrCallback)(struct __I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode); /*!< I2C Slave Address Match callback */ + + void (* MspInitCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Msp Init callback */ + void (* MspDeInitCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Msp DeInit callback */ + +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +} I2C_HandleTypeDef; + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +/** + * @brief HAL I2C Callback ID enumeration definition + */ +typedef enum +{ + HAL_I2C_MASTER_TX_COMPLETE_CB_ID = 0x00U, /*!< I2C Master Tx Transfer completed callback ID */ + HAL_I2C_MASTER_RX_COMPLETE_CB_ID = 0x01U, /*!< I2C Master Rx Transfer completed callback ID */ + HAL_I2C_SLAVE_TX_COMPLETE_CB_ID = 0x02U, /*!< I2C Slave Tx Transfer completed callback ID */ + HAL_I2C_SLAVE_RX_COMPLETE_CB_ID = 0x03U, /*!< I2C Slave Rx Transfer completed callback ID */ + HAL_I2C_LISTEN_COMPLETE_CB_ID = 0x04U, /*!< I2C Listen Complete callback ID */ + HAL_I2C_MEM_TX_COMPLETE_CB_ID = 0x05U, /*!< I2C Memory Tx Transfer callback ID */ + HAL_I2C_MEM_RX_COMPLETE_CB_ID = 0x06U, /*!< I2C Memory Rx Transfer completed callback ID */ + HAL_I2C_ERROR_CB_ID = 0x07U, /*!< I2C Error callback ID */ + HAL_I2C_ABORT_CB_ID = 0x08U, /*!< I2C Abort callback ID */ + + HAL_I2C_MSPINIT_CB_ID = 0x09U, /*!< I2C Msp Init callback ID */ + HAL_I2C_MSPDEINIT_CB_ID = 0x0AU /*!< I2C Msp DeInit callback ID */ + +} HAL_I2C_CallbackIDTypeDef; + +/** + * @brief HAL I2C Callback pointer definition + */ +typedef void (*pI2C_CallbackTypeDef)(I2C_HandleTypeDef *hi2c); /*!< pointer to an I2C callback function */ +typedef void (*pI2C_AddrCallbackTypeDef)(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode); /*!< pointer to an I2C Address Match callback function */ + +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +/** + * @} + */ + +/** + * @} + */ +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup I2C_Exported_Constants I2C Exported Constants + * @{ + */ + +/** @defgroup I2C_duty_cycle_in_fast_mode I2C duty cycle in fast mode + * @{ + */ +#define I2C_DUTYCYCLE_2 0x00000000U +#define I2C_DUTYCYCLE_16_9 I2C_CCR_DUTY +/** + * @} + */ + +/** @defgroup I2C_addressing_mode I2C addressing mode + * @{ + */ +#define I2C_ADDRESSINGMODE_7BIT 0x00004000U +#define I2C_ADDRESSINGMODE_10BIT (I2C_OAR1_ADDMODE | 0x00004000U) +/** + * @} + */ + +/** @defgroup I2C_dual_addressing_mode I2C dual addressing mode + * @{ + */ +#define I2C_DUALADDRESS_DISABLE 0x00000000U +#define I2C_DUALADDRESS_ENABLE I2C_OAR2_ENDUAL +/** + * @} + */ + +/** @defgroup I2C_general_call_addressing_mode I2C general call addressing mode + * @{ + */ +#define I2C_GENERALCALL_DISABLE 0x00000000U +#define I2C_GENERALCALL_ENABLE I2C_CR1_ENGC +/** + * @} + */ + +/** @defgroup I2C_nostretch_mode I2C nostretch mode + * @{ + */ +#define I2C_NOSTRETCH_DISABLE 0x00000000U +#define I2C_NOSTRETCH_ENABLE I2C_CR1_NOSTRETCH +/** + * @} + */ + +/** @defgroup I2C_Memory_Address_Size I2C Memory Address Size + * @{ + */ +#define I2C_MEMADD_SIZE_8BIT 0x00000001U +#define I2C_MEMADD_SIZE_16BIT 0x00000010U +/** + * @} + */ + +/** @defgroup I2C_XferDirection_definition I2C XferDirection definition + * @{ + */ +#define I2C_DIRECTION_RECEIVE 0x00000000U +#define I2C_DIRECTION_TRANSMIT 0x00000001U +/** + * @} + */ + +/** @defgroup I2C_XferOptions_definition I2C XferOptions definition + * @{ + */ +#define I2C_FIRST_FRAME 0x00000001U +#define I2C_FIRST_AND_NEXT_FRAME 0x00000002U +#define I2C_NEXT_FRAME 0x00000004U +#define I2C_FIRST_AND_LAST_FRAME 0x00000008U +#define I2C_LAST_FRAME_NO_STOP 0x00000010U +#define I2C_LAST_FRAME 0x00000020U + +/* List of XferOptions in usage of : + * 1- Restart condition in all use cases (direction change or not) + */ +#define I2C_OTHER_FRAME (0x00AA0000U) +#define I2C_OTHER_AND_LAST_FRAME (0xAA000000U) +/** + * @} + */ + +/** @defgroup I2C_Interrupt_configuration_definition I2C Interrupt configuration definition + * @brief I2C Interrupt definition + * Elements values convention: 0xXXXXXXXX + * - XXXXXXXX : Interrupt control mask + * @{ + */ +#define I2C_IT_BUF I2C_CR2_ITBUFEN +#define I2C_IT_EVT I2C_CR2_ITEVTEN +#define I2C_IT_ERR I2C_CR2_ITERREN +/** + * @} + */ + +/** @defgroup I2C_Flag_definition I2C Flag definition + * @{ + */ + +#define I2C_FLAG_OVR 0x00010800U +#define I2C_FLAG_AF 0x00010400U +#define I2C_FLAG_ARLO 0x00010200U +#define I2C_FLAG_BERR 0x00010100U +#define I2C_FLAG_TXE 0x00010080U +#define I2C_FLAG_RXNE 0x00010040U +#define I2C_FLAG_STOPF 0x00010010U +#define I2C_FLAG_ADD10 0x00010008U +#define I2C_FLAG_BTF 0x00010004U +#define I2C_FLAG_ADDR 0x00010002U +#define I2C_FLAG_SB 0x00010001U +#define I2C_FLAG_DUALF 0x00100080U +#define I2C_FLAG_GENCALL 0x00100010U +#define I2C_FLAG_TRA 0x00100004U +#define I2C_FLAG_BUSY 0x00100002U +#define I2C_FLAG_MSL 0x00100001U +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ + +/** @defgroup I2C_Exported_Macros I2C Exported Macros + * @{ + */ + +/** @brief Reset I2C handle state. + * @param __HANDLE__ specifies the I2C Handle. + * @retval None + */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +#define __HAL_I2C_RESET_HANDLE_STATE(__HANDLE__) do{ \ + (__HANDLE__)->State = HAL_I2C_STATE_RESET; \ + (__HANDLE__)->MspInitCallback = NULL; \ + (__HANDLE__)->MspDeInitCallback = NULL; \ + } while(0) +#else +#define __HAL_I2C_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_I2C_STATE_RESET) +#endif + +/** @brief Enable or disable the specified I2C interrupts. + * @param __HANDLE__ specifies the I2C Handle. + * @param __INTERRUPT__ specifies the interrupt source to enable or disable. + * This parameter can be one of the following values: + * @arg I2C_IT_BUF: Buffer interrupt enable + * @arg I2C_IT_EVT: Event interrupt enable + * @arg I2C_IT_ERR: Error interrupt enable + * @retval None + */ +#define __HAL_I2C_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BIT((__HANDLE__)->Instance->CR2,(__INTERRUPT__)) +#define __HAL_I2C_DISABLE_IT(__HANDLE__, __INTERRUPT__) CLEAR_BIT((__HANDLE__)->Instance->CR2, (__INTERRUPT__)) + +/** @brief Checks if the specified I2C interrupt source is enabled or disabled. + * @param __HANDLE__ specifies the I2C Handle. + * @param __INTERRUPT__ specifies the I2C interrupt source to check. + * This parameter can be one of the following values: + * @arg I2C_IT_BUF: Buffer interrupt enable + * @arg I2C_IT_EVT: Event interrupt enable + * @arg I2C_IT_ERR: Error interrupt enable + * @retval The new state of __INTERRUPT__ (TRUE or FALSE). + */ +#define __HAL_I2C_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->CR2 & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) + +/** @brief Checks whether the specified I2C flag is set or not. + * @param __HANDLE__ specifies the I2C Handle. + * @param __FLAG__ specifies the flag to check. + * This parameter can be one of the following values: + * @arg I2C_FLAG_OVR: Overrun/Underrun flag + * @arg I2C_FLAG_AF: Acknowledge failure flag + * @arg I2C_FLAG_ARLO: Arbitration lost flag + * @arg I2C_FLAG_BERR: Bus error flag + * @arg I2C_FLAG_TXE: Data register empty flag + * @arg I2C_FLAG_RXNE: Data register not empty flag + * @arg I2C_FLAG_STOPF: Stop detection flag + * @arg I2C_FLAG_ADD10: 10-bit header sent flag + * @arg I2C_FLAG_BTF: Byte transfer finished flag + * @arg I2C_FLAG_ADDR: Address sent flag + * Address matched flag + * @arg I2C_FLAG_SB: Start bit flag + * @arg I2C_FLAG_DUALF: Dual flag + * @arg I2C_FLAG_GENCALL: General call header flag + * @arg I2C_FLAG_TRA: Transmitter/Receiver flag + * @arg I2C_FLAG_BUSY: Bus busy flag + * @arg I2C_FLAG_MSL: Master/Slave flag + * @retval The new state of __FLAG__ (TRUE or FALSE). + */ +#define __HAL_I2C_GET_FLAG(__HANDLE__, __FLAG__) ((((uint8_t)((__FLAG__) >> 16U)) == 0x01U) ? \ + (((((__HANDLE__)->Instance->SR1) & ((__FLAG__) & I2C_FLAG_MASK)) == ((__FLAG__) & I2C_FLAG_MASK)) ? SET : RESET) : \ + (((((__HANDLE__)->Instance->SR2) & ((__FLAG__) & I2C_FLAG_MASK)) == ((__FLAG__) & I2C_FLAG_MASK)) ? SET : RESET)) + +/** @brief Clears the I2C pending flags which are cleared by writing 0 in a specific bit. + * @param __HANDLE__ specifies the I2C Handle. + * @param __FLAG__ specifies the flag to clear. + * This parameter can be any combination of the following values: + * @arg I2C_FLAG_OVR: Overrun/Underrun flag (Slave mode) + * @arg I2C_FLAG_AF: Acknowledge failure flag + * @arg I2C_FLAG_ARLO: Arbitration lost flag (Master mode) + * @arg I2C_FLAG_BERR: Bus error flag + * @retval None + */ +#define __HAL_I2C_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR1 = ~((__FLAG__) & I2C_FLAG_MASK)) + +/** @brief Clears the I2C ADDR pending flag. + * @param __HANDLE__ specifies the I2C Handle. + * This parameter can be I2C where x: 1, 2, or 3 to select the I2C peripheral. + * @retval None + */ +#define __HAL_I2C_CLEAR_ADDRFLAG(__HANDLE__) \ + do{ \ + __IO uint32_t tmpreg = 0x00U; \ + tmpreg = (__HANDLE__)->Instance->SR1; \ + tmpreg = (__HANDLE__)->Instance->SR2; \ + UNUSED(tmpreg); \ + } while(0) + +/** @brief Clears the I2C STOPF pending flag. + * @param __HANDLE__ specifies the I2C Handle. + * @retval None + */ +#define __HAL_I2C_CLEAR_STOPFLAG(__HANDLE__) \ + do{ \ + __IO uint32_t tmpreg = 0x00U; \ + tmpreg = (__HANDLE__)->Instance->SR1; \ + SET_BIT((__HANDLE__)->Instance->CR1, I2C_CR1_PE); \ + UNUSED(tmpreg); \ + } while(0) + +/** @brief Enable the specified I2C peripheral. + * @param __HANDLE__ specifies the I2C Handle. + * @retval None + */ +#define __HAL_I2C_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR1, I2C_CR1_PE) + +/** @brief Disable the specified I2C peripheral. + * @param __HANDLE__ specifies the I2C Handle. + * @retval None + */ +#define __HAL_I2C_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR1, I2C_CR1_PE) + +/** + * @} + */ + +/* Include I2C HAL Extension module */ +#include "stm32f4xx_hal_i2c_ex.h" + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup I2C_Exported_Functions + * @{ + */ + +/** @addtogroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions + * @{ + */ +/* Initialization and de-initialization functions******************************/ +HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c); +HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c); +void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c); +void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c); + +/* Callbacks Register/UnRegister functions ***********************************/ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef CallbackID, pI2C_CallbackTypeDef pCallback); +HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef CallbackID); + +HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pCallback); +HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ +/** + * @} + */ + +/** @addtogroup I2C_Exported_Functions_Group2 Input and Output operation functions + * @{ + */ +/* IO operation functions ****************************************************/ +/******* Blocking mode: Polling */ +HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout); +HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout); +HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t Timeout); +HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t Timeout); +HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout); +HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout); +HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Trials, uint32_t Timeout); + +/******* Non-Blocking mode: Interrupt */ +HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size); + +HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions); +HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions); +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions); +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions); +HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c); +HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c); +HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress); + +/******* Non-Blocking mode: DMA */ +HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size); +HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size); + +HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions); +HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions); +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions); +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions); +/** + * @} + */ + +/** @addtogroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks + * @{ + */ +/******* I2C IRQHandler and Callbacks used in non blocking modes (Interrupt and DMA) */ +void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c); +void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c); +void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode); +void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c); +void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c); +/** + * @} + */ + +/** @addtogroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions + * @{ + */ +/* Peripheral State, Mode and Error functions *********************************/ +HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c); +HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c); +uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c); + +/** + * @} + */ + +/** + * @} + */ +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/** @defgroup I2C_Private_Constants I2C Private Constants + * @{ + */ +#define I2C_FLAG_MASK 0x0000FFFFU +#define I2C_MIN_PCLK_FREQ_STANDARD 2000000U /*!< 2 MHz */ +#define I2C_MIN_PCLK_FREQ_FAST 4000000U /*!< 4 MHz */ +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup I2C_Private_Macros I2C Private Macros + * @{ + */ + +#define I2C_MIN_PCLK_FREQ(__PCLK__, __SPEED__) (((__SPEED__) <= 100000U) ? ((__PCLK__) < I2C_MIN_PCLK_FREQ_STANDARD) : ((__PCLK__) < I2C_MIN_PCLK_FREQ_FAST)) +#define I2C_CCR_CALCULATION(__PCLK__, __SPEED__, __COEFF__) (((((__PCLK__) - 1U)/((__SPEED__) * (__COEFF__))) + 1U) & I2C_CCR_CCR) +#define I2C_FREQRANGE(__PCLK__) ((__PCLK__)/1000000U) +#define I2C_RISE_TIME(__FREQRANGE__, __SPEED__) (((__SPEED__) <= 100000U) ? ((__FREQRANGE__) + 1U) : ((((__FREQRANGE__) * 300U) / 1000U) + 1U)) +#define I2C_SPEED_STANDARD(__PCLK__, __SPEED__) ((I2C_CCR_CALCULATION((__PCLK__), (__SPEED__), 2U) < 4U)? 4U:I2C_CCR_CALCULATION((__PCLK__), (__SPEED__), 2U)) +#define I2C_SPEED_FAST(__PCLK__, __SPEED__, __DUTYCYCLE__) (((__DUTYCYCLE__) == I2C_DUTYCYCLE_2)? I2C_CCR_CALCULATION((__PCLK__), (__SPEED__), 3U) : (I2C_CCR_CALCULATION((__PCLK__), (__SPEED__), 25U) | I2C_DUTYCYCLE_16_9)) +#define I2C_SPEED(__PCLK__, __SPEED__, __DUTYCYCLE__) (((__SPEED__) <= 100000U)? (I2C_SPEED_STANDARD((__PCLK__), (__SPEED__))) : \ + ((I2C_SPEED_FAST((__PCLK__), (__SPEED__), (__DUTYCYCLE__)) & I2C_CCR_CCR) == 0U)? 1U : \ + ((I2C_SPEED_FAST((__PCLK__), (__SPEED__), (__DUTYCYCLE__))) | I2C_CCR_FS)) + +#define I2C_7BIT_ADD_WRITE(__ADDRESS__) ((uint8_t)((__ADDRESS__) & (uint8_t)(~I2C_OAR1_ADD0))) +#define I2C_7BIT_ADD_READ(__ADDRESS__) ((uint8_t)((__ADDRESS__) | I2C_OAR1_ADD0)) + +#define I2C_10BIT_ADDRESS(__ADDRESS__) ((uint8_t)((uint16_t)((__ADDRESS__) & (uint16_t)0x00FF))) +#define I2C_10BIT_HEADER_WRITE(__ADDRESS__) ((uint8_t)((uint16_t)((uint16_t)(((uint16_t)((__ADDRESS__) & (uint16_t)0x0300)) >> 7) | (uint16_t)0x00F0))) +#define I2C_10BIT_HEADER_READ(__ADDRESS__) ((uint8_t)((uint16_t)((uint16_t)(((uint16_t)((__ADDRESS__) & (uint16_t)0x0300)) >> 7) | (uint16_t)(0x00F1)))) + +#define I2C_MEM_ADD_MSB(__ADDRESS__) ((uint8_t)((uint16_t)(((uint16_t)((__ADDRESS__) & (uint16_t)0xFF00)) >> 8))) +#define I2C_MEM_ADD_LSB(__ADDRESS__) ((uint8_t)((uint16_t)((__ADDRESS__) & (uint16_t)0x00FF))) + +/** @defgroup I2C_IS_RTC_Definitions I2C Private macros to check input parameters + * @{ + */ +#define IS_I2C_DUTY_CYCLE(CYCLE) (((CYCLE) == I2C_DUTYCYCLE_2) || \ + ((CYCLE) == I2C_DUTYCYCLE_16_9)) +#define IS_I2C_ADDRESSING_MODE(ADDRESS) (((ADDRESS) == I2C_ADDRESSINGMODE_7BIT) || \ + ((ADDRESS) == I2C_ADDRESSINGMODE_10BIT)) +#define IS_I2C_DUAL_ADDRESS(ADDRESS) (((ADDRESS) == I2C_DUALADDRESS_DISABLE) || \ + ((ADDRESS) == I2C_DUALADDRESS_ENABLE)) +#define IS_I2C_GENERAL_CALL(CALL) (((CALL) == I2C_GENERALCALL_DISABLE) || \ + ((CALL) == I2C_GENERALCALL_ENABLE)) +#define IS_I2C_NO_STRETCH(STRETCH) (((STRETCH) == I2C_NOSTRETCH_DISABLE) || \ + ((STRETCH) == I2C_NOSTRETCH_ENABLE)) +#define IS_I2C_MEMADD_SIZE(SIZE) (((SIZE) == I2C_MEMADD_SIZE_8BIT) || \ + ((SIZE) == I2C_MEMADD_SIZE_16BIT)) +#define IS_I2C_CLOCK_SPEED(SPEED) (((SPEED) > 0U) && ((SPEED) <= 400000U)) +#define IS_I2C_OWN_ADDRESS1(ADDRESS1) (((ADDRESS1) & 0xFFFFFC00U) == 0U) +#define IS_I2C_OWN_ADDRESS2(ADDRESS2) (((ADDRESS2) & 0xFFFFFF01U) == 0U) +#define IS_I2C_TRANSFER_OPTIONS_REQUEST(REQUEST) (((REQUEST) == I2C_FIRST_FRAME) || \ + ((REQUEST) == I2C_FIRST_AND_NEXT_FRAME) || \ + ((REQUEST) == I2C_NEXT_FRAME) || \ + ((REQUEST) == I2C_FIRST_AND_LAST_FRAME) || \ + ((REQUEST) == I2C_LAST_FRAME) || \ + ((REQUEST) == I2C_LAST_FRAME_NO_STOP) || \ + IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(REQUEST)) + +#define IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(REQUEST) (((REQUEST) == I2C_OTHER_FRAME) || \ + ((REQUEST) == I2C_OTHER_AND_LAST_FRAME)) + +#define I2C_CHECK_FLAG(__ISR__, __FLAG__) ((((__ISR__) & ((__FLAG__) & I2C_FLAG_MASK)) == ((__FLAG__) & I2C_FLAG_MASK)) ? SET : RESET) +#define I2C_CHECK_IT_SOURCE(__CR1__, __IT__) ((((__CR1__) & (__IT__)) == (__IT__)) ? SET : RESET) +/** + * @} + */ + +/** + * @} + */ + +/* Private functions ---------------------------------------------------------*/ +/** @defgroup I2C_Private_Functions I2C Private Functions + * @{ + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + + +#endif /* __STM32F4xx_HAL_I2C_H */ + diff --git a/firmware/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h b/firmware/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h new file mode 100644 index 0000000..e2ee7c8 --- /dev/null +++ b/firmware/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h @@ -0,0 +1,115 @@ +/** + ****************************************************************************** + * @file stm32f4xx_hal_i2c_ex.h + * @author MCD Application Team + * @brief Header file of I2C HAL Extension module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F4xx_HAL_I2C_EX_H +#define __STM32F4xx_HAL_I2C_EX_H + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(I2C_FLTR_ANOFF)&&defined(I2C_FLTR_DNF) +/* Includes ------------------------------------------------------------------*/ +#include "stm32f4xx_hal_def.h" + +/** @addtogroup STM32F4xx_HAL_Driver + * @{ + */ + +/** @addtogroup I2CEx + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup I2CEx_Exported_Constants I2C Exported Constants + * @{ + */ + +/** @defgroup I2CEx_Analog_Filter I2C Analog Filter + * @{ + */ +#define I2C_ANALOGFILTER_ENABLE 0x00000000U +#define I2C_ANALOGFILTER_DISABLE I2C_FLTR_ANOFF +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup I2CEx_Exported_Functions + * @{ + */ + +/** @addtogroup I2CEx_Exported_Functions_Group1 + * @{ + */ +/* Peripheral Control functions ************************************************/ +HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter); +HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter); +/** + * @} + */ + +/** + * @} + */ +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/** @defgroup I2CEx_Private_Constants I2C Private Constants + * @{ + */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup I2CEx_Private_Macros I2C Private Macros + * @{ + */ +#define IS_I2C_ANALOG_FILTER(FILTER) (((FILTER) == I2C_ANALOGFILTER_ENABLE) || \ + ((FILTER) == I2C_ANALOGFILTER_DISABLE)) +#define IS_I2C_DIGITAL_FILTER(FILTER) ((FILTER) <= 0x0000000FU) +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F4xx_HAL_I2C_EX_H */ + + diff --git a/firmware/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_i2c.h b/firmware/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_i2c.h new file mode 100644 index 0000000..5a17be5 --- /dev/null +++ b/firmware/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_i2c.h @@ -0,0 +1,1890 @@ +/** + ****************************************************************************** + * @file stm32f4xx_ll_i2c.h + * @author MCD Application Team + * @brief Header file of I2C LL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F4xx_LL_I2C_H +#define __STM32F4xx_LL_I2C_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f4xx.h" + +/** @addtogroup STM32F4xx_LL_Driver + * @{ + */ + +#if defined (I2C1) || defined (I2C2) || defined (I2C3) + +/** @defgroup I2C_LL I2C + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup I2C_LL_Private_Constants I2C Private Constants + * @{ + */ + +/* Defines used to perform compute and check in the macros */ +#define LL_I2C_MAX_SPEED_STANDARD 100000U +#define LL_I2C_MAX_SPEED_FAST 400000U +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup I2C_LL_Private_Macros I2C Private Macros + * @{ + */ +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ + +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup I2C_LL_ES_INIT I2C Exported Init structure + * @{ + */ +typedef struct +{ + uint32_t PeripheralMode; /*!< Specifies the peripheral mode. + This parameter can be a value of @ref I2C_LL_EC_PERIPHERAL_MODE + + This feature can be modified afterwards using unitary function @ref LL_I2C_SetMode(). */ + + uint32_t ClockSpeed; /*!< Specifies the clock frequency. + This parameter must be set to a value lower than 400kHz (in Hz) + + This feature can be modified afterwards using unitary function @ref LL_I2C_SetClockPeriod() + or @ref LL_I2C_SetDutyCycle() or @ref LL_I2C_SetClockSpeedMode() or @ref LL_I2C_ConfigSpeed(). */ + + uint32_t DutyCycle; /*!< Specifies the I2C fast mode duty cycle. + This parameter can be a value of @ref I2C_LL_EC_DUTYCYCLE + + This feature can be modified afterwards using unitary function @ref LL_I2C_SetDutyCycle(). */ + +#if defined(I2C_FLTR_ANOFF)&&defined(I2C_FLTR_DNF) + uint32_t AnalogFilter; /*!< Enables or disables analog noise filter. + This parameter can be a value of @ref I2C_LL_EC_ANALOGFILTER_SELECTION + + This feature can be modified afterwards using unitary functions @ref LL_I2C_EnableAnalogFilter() or LL_I2C_DisableAnalogFilter(). */ + + uint32_t DigitalFilter; /*!< Configures the digital noise filter. + This parameter can be a number between Min_Data = 0x00 and Max_Data = 0x0F + + This feature can be modified afterwards using unitary function @ref LL_I2C_SetDigitalFilter(). */ + +#endif + uint32_t OwnAddress1; /*!< Specifies the device own address 1. + This parameter must be a value between Min_Data = 0x00 and Max_Data = 0x3FF + + This feature can be modified afterwards using unitary function @ref LL_I2C_SetOwnAddress1(). */ + + uint32_t TypeAcknowledge; /*!< Specifies the ACKnowledge or Non ACKnowledge condition after the address receive match code or next received byte. + This parameter can be a value of @ref I2C_LL_EC_I2C_ACKNOWLEDGE + + This feature can be modified afterwards using unitary function @ref LL_I2C_AcknowledgeNextData(). */ + + uint32_t OwnAddrSize; /*!< Specifies the device own address 1 size (7-bit or 10-bit). + This parameter can be a value of @ref I2C_LL_EC_OWNADDRESS1 + + This feature can be modified afterwards using unitary function @ref LL_I2C_SetOwnAddress1(). */ +} LL_I2C_InitTypeDef; +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup I2C_LL_Exported_Constants I2C Exported Constants + * @{ + */ + +/** @defgroup I2C_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_I2C_ReadReg function + * @{ + */ +#define LL_I2C_SR1_SB I2C_SR1_SB /*!< Start Bit (master mode) */ +#define LL_I2C_SR1_ADDR I2C_SR1_ADDR /*!< Address sent (master mode) or + Address matched flag (slave mode) */ +#define LL_I2C_SR1_BTF I2C_SR1_BTF /*!< Byte Transfer Finished flag */ +#define LL_I2C_SR1_ADD10 I2C_SR1_ADD10 /*!< 10-bit header sent (master mode) */ +#define LL_I2C_SR1_STOPF I2C_SR1_STOPF /*!< Stop detection flag (slave mode) */ +#define LL_I2C_SR1_RXNE I2C_SR1_RXNE /*!< Data register not empty (receivers) */ +#define LL_I2C_SR1_TXE I2C_SR1_TXE /*!< Data register empty (transmitters) */ +#define LL_I2C_SR1_BERR I2C_SR1_BERR /*!< Bus error */ +#define LL_I2C_SR1_ARLO I2C_SR1_ARLO /*!< Arbitration lost */ +#define LL_I2C_SR1_AF I2C_SR1_AF /*!< Acknowledge failure flag */ +#define LL_I2C_SR1_OVR I2C_SR1_OVR /*!< Overrun/Underrun */ +#define LL_I2C_SR1_PECERR I2C_ISR_PECERR /*!< PEC Error in reception (SMBus mode) */ +#define LL_I2C_SR1_TIMEOUT I2C_ISR_TIMEOUT /*!< Timeout detection flag (SMBus mode) */ +#define LL_I2C_SR1_SMALERT I2C_ISR_SMALERT /*!< SMBus alert (SMBus mode) */ +#define LL_I2C_SR2_MSL I2C_SR2_MSL /*!< Master/Slave flag */ +#define LL_I2C_SR2_BUSY I2C_SR2_BUSY /*!< Bus busy flag */ +#define LL_I2C_SR2_TRA I2C_SR2_TRA /*!< Transmitter/receiver direction */ +#define LL_I2C_SR2_GENCALL I2C_SR2_GENCALL /*!< General call address (Slave mode) */ +#define LL_I2C_SR2_SMBDEFAULT I2C_SR2_SMBDEFAULT /*!< SMBus Device default address (Slave mode) */ +#define LL_I2C_SR2_SMBHOST I2C_SR2_SMBHOST /*!< SMBus Host address (Slave mode) */ +#define LL_I2C_SR2_DUALF I2C_SR2_DUALF /*!< Dual flag (Slave mode) */ +/** + * @} + */ + +/** @defgroup I2C_LL_EC_IT IT Defines + * @brief IT defines which can be used with LL_I2C_ReadReg and LL_I2C_WriteReg functions + * @{ + */ +#define LL_I2C_CR2_ITEVTEN I2C_CR2_ITEVTEN /*!< Events interrupts enable */ +#define LL_I2C_CR2_ITBUFEN I2C_CR2_ITBUFEN /*!< Buffer interrupts enable */ +#define LL_I2C_CR2_ITERREN I2C_CR2_ITERREN /*!< Error interrupts enable */ +/** + * @} + */ + +#if defined(I2C_FLTR_ANOFF) +/** @defgroup I2C_LL_EC_ANALOGFILTER_SELECTION Analog Filter Selection + * @{ + */ +#define LL_I2C_ANALOGFILTER_ENABLE 0x00000000U /*!< Analog filter is enabled. */ +#define LL_I2C_ANALOGFILTER_DISABLE I2C_FLTR_ANOFF /*!< Analog filter is disabled.*/ +/** + * @} + */ + +#endif +/** @defgroup I2C_LL_EC_OWNADDRESS1 Own Address 1 Length + * @{ + */ +#define LL_I2C_OWNADDRESS1_7BIT 0x00004000U /*!< Own address 1 is a 7-bit address. */ +#define LL_I2C_OWNADDRESS1_10BIT (uint32_t)(I2C_OAR1_ADDMODE | 0x00004000U) /*!< Own address 1 is a 10-bit address. */ +/** + * @} + */ + +/** @defgroup I2C_LL_EC_DUTYCYCLE Fast Mode Duty Cycle + * @{ + */ +#define LL_I2C_DUTYCYCLE_2 0x00000000U /*!< I2C fast mode Tlow/Thigh = 2 */ +#define LL_I2C_DUTYCYCLE_16_9 I2C_CCR_DUTY /*!< I2C fast mode Tlow/Thigh = 16/9 */ +/** + * @} + */ + +/** @defgroup I2C_LL_EC_CLOCK_SPEED_MODE Master Clock Speed Mode + * @{ + */ +#define LL_I2C_CLOCK_SPEED_STANDARD_MODE 0x00000000U /*!< Master clock speed range is standard mode */ +#define LL_I2C_CLOCK_SPEED_FAST_MODE I2C_CCR_FS /*!< Master clock speed range is fast mode */ +/** + * @} + */ + +/** @defgroup I2C_LL_EC_PERIPHERAL_MODE Peripheral Mode + * @{ + */ +#define LL_I2C_MODE_I2C 0x00000000U /*!< I2C Master or Slave mode */ +#define LL_I2C_MODE_SMBUS_HOST (uint32_t)(I2C_CR1_SMBUS | I2C_CR1_SMBTYPE | I2C_CR1_ENARP) /*!< SMBus Host address acknowledge */ +#define LL_I2C_MODE_SMBUS_DEVICE I2C_CR1_SMBUS /*!< SMBus Device default mode (Default address not acknowledge) */ +#define LL_I2C_MODE_SMBUS_DEVICE_ARP (uint32_t)(I2C_CR1_SMBUS | I2C_CR1_ENARP) /*!< SMBus Device Default address acknowledge */ +/** + * @} + */ + +/** @defgroup I2C_LL_EC_I2C_ACKNOWLEDGE Acknowledge Generation + * @{ + */ +#define LL_I2C_ACK I2C_CR1_ACK /*!< ACK is sent after current received byte. */ +#define LL_I2C_NACK 0x00000000U /*!< NACK is sent after current received byte.*/ +/** + * @} + */ + +/** @defgroup I2C_LL_EC_DIRECTION Read Write Direction + * @{ + */ +#define LL_I2C_DIRECTION_WRITE I2C_SR2_TRA /*!< Bus is in write transfer */ +#define LL_I2C_DIRECTION_READ 0x00000000U /*!< Bus is in read transfer */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup I2C_LL_Exported_Macros I2C Exported Macros + * @{ + */ + +/** @defgroup I2C_LL_EM_WRITE_READ Common Write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in I2C register + * @param __INSTANCE__ I2C Instance + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_I2C_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) + +/** + * @brief Read a value in I2C register + * @param __INSTANCE__ I2C Instance + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_I2C_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) +/** + * @} + */ + +/** @defgroup I2C_LL_EM_Exported_Macros_Helper Exported Macros Helper + * @{ + */ + +/** + * @brief Convert Peripheral Clock Frequency in Mhz. + * @param __PCLK__ This parameter must be a value of peripheral clock (in Hz). + * @retval Value of peripheral clock (in Mhz) + */ +#define __LL_I2C_FREQ_HZ_TO_MHZ(__PCLK__) (uint32_t)((__PCLK__)/1000000U) + +/** + * @brief Convert Peripheral Clock Frequency in Hz. + * @param __PCLK__ This parameter must be a value of peripheral clock (in Mhz). + * @retval Value of peripheral clock (in Hz) + */ +#define __LL_I2C_FREQ_MHZ_TO_HZ(__PCLK__) (uint32_t)((__PCLK__)*1000000U) + +/** + * @brief Compute I2C Clock rising time. + * @param __FREQRANGE__ This parameter must be a value of peripheral clock (in Mhz). + * @param __SPEED__ This parameter must be a value lower than 400kHz (in Hz). + * @retval Value between Min_Data=0x02 and Max_Data=0x3F + */ +#define __LL_I2C_RISE_TIME(__FREQRANGE__, __SPEED__) (uint32_t)(((__SPEED__) <= LL_I2C_MAX_SPEED_STANDARD) ? ((__FREQRANGE__) + 1U) : ((((__FREQRANGE__) * 300U) / 1000U) + 1U)) + +/** + * @brief Compute Speed clock range to a Clock Control Register (I2C_CCR_CCR) value. + * @param __PCLK__ This parameter must be a value of peripheral clock (in Hz). + * @param __SPEED__ This parameter must be a value lower than 400kHz (in Hz). + * @param __DUTYCYCLE__ This parameter can be one of the following values: + * @arg @ref LL_I2C_DUTYCYCLE_2 + * @arg @ref LL_I2C_DUTYCYCLE_16_9 + * @retval Value between Min_Data=0x004 and Max_Data=0xFFF, except in FAST DUTY mode where Min_Data=0x001. + */ +#define __LL_I2C_SPEED_TO_CCR(__PCLK__, __SPEED__, __DUTYCYCLE__) (uint32_t)(((__SPEED__) <= LL_I2C_MAX_SPEED_STANDARD)? \ + (__LL_I2C_SPEED_STANDARD_TO_CCR((__PCLK__), (__SPEED__))) : \ + (__LL_I2C_SPEED_FAST_TO_CCR((__PCLK__), (__SPEED__), (__DUTYCYCLE__)))) + +/** + * @brief Compute Speed Standard clock range to a Clock Control Register (I2C_CCR_CCR) value. + * @param __PCLK__ This parameter must be a value of peripheral clock (in Hz). + * @param __SPEED__ This parameter must be a value lower than 100kHz (in Hz). + * @retval Value between Min_Data=0x004 and Max_Data=0xFFF. + */ +#define __LL_I2C_SPEED_STANDARD_TO_CCR(__PCLK__, __SPEED__) (uint32_t)(((((__PCLK__)/((__SPEED__) << 1U)) & I2C_CCR_CCR) < 4U)? 4U:((__PCLK__) / ((__SPEED__) << 1U))) + +/** + * @brief Compute Speed Fast clock range to a Clock Control Register (I2C_CCR_CCR) value. + * @param __PCLK__ This parameter must be a value of peripheral clock (in Hz). + * @param __SPEED__ This parameter must be a value between Min_Data=100Khz and Max_Data=400Khz (in Hz). + * @param __DUTYCYCLE__ This parameter can be one of the following values: + * @arg @ref LL_I2C_DUTYCYCLE_2 + * @arg @ref LL_I2C_DUTYCYCLE_16_9 + * @retval Value between Min_Data=0x001 and Max_Data=0xFFF + */ +#define __LL_I2C_SPEED_FAST_TO_CCR(__PCLK__, __SPEED__, __DUTYCYCLE__) (uint32_t)(((__DUTYCYCLE__) == LL_I2C_DUTYCYCLE_2)? \ + (((((__PCLK__) / ((__SPEED__) * 3U)) & I2C_CCR_CCR) == 0U)? 1U:((__PCLK__) / ((__SPEED__) * 3U))) : \ + (((((__PCLK__) / ((__SPEED__) * 25U)) & I2C_CCR_CCR) == 0U)? 1U:((__PCLK__) / ((__SPEED__) * 25U)))) + +/** + * @brief Get the Least significant bits of a 10-Bits address. + * @param __ADDRESS__ This parameter must be a value of a 10-Bits slave address. + * @retval Value between Min_Data=0x00 and Max_Data=0xFF + */ +#define __LL_I2C_10BIT_ADDRESS(__ADDRESS__) ((uint8_t)((uint16_t)((__ADDRESS__) & (uint16_t)(0x00FF)))) + +/** + * @brief Convert a 10-Bits address to a 10-Bits header with Write direction. + * @param __ADDRESS__ This parameter must be a value of a 10-Bits slave address. + * @retval Value between Min_Data=0xF0 and Max_Data=0xF6 + */ +#define __LL_I2C_10BIT_HEADER_WRITE(__ADDRESS__) ((uint8_t)((uint16_t)((uint16_t)(((uint16_t)((__ADDRESS__) & (uint16_t)(0x0300))) >> 7) | (uint16_t)(0xF0)))) + +/** + * @brief Convert a 10-Bits address to a 10-Bits header with Read direction. + * @param __ADDRESS__ This parameter must be a value of a 10-Bits slave address. + * @retval Value between Min_Data=0xF1 and Max_Data=0xF7 + */ +#define __LL_I2C_10BIT_HEADER_READ(__ADDRESS__) ((uint8_t)((uint16_t)((uint16_t)(((uint16_t)((__ADDRESS__) & (uint16_t)(0x0300))) >> 7) | (uint16_t)(0xF1)))) + +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup I2C_LL_Exported_Functions I2C Exported Functions + * @{ + */ + +/** @defgroup I2C_LL_EF_Configuration Configuration + * @{ + */ + +/** + * @brief Enable I2C peripheral (PE = 1). + * @rmtoll CR1 PE LL_I2C_Enable + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_Enable(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR1, I2C_CR1_PE); +} + +/** + * @brief Disable I2C peripheral (PE = 0). + * @rmtoll CR1 PE LL_I2C_Disable + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_Disable(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR1, I2C_CR1_PE); +} + +/** + * @brief Check if the I2C peripheral is enabled or disabled. + * @rmtoll CR1 PE LL_I2C_IsEnabled + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabled(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR1, I2C_CR1_PE) == (I2C_CR1_PE)); +} + +#if defined(I2C_FLTR_ANOFF)&&defined(I2C_FLTR_DNF) +/** + * @brief Configure Noise Filters (Analog and Digital). + * @note If the analog filter is also enabled, the digital filter is added to analog filter. + * The filters can only be programmed when the I2C is disabled (PE = 0). + * @rmtoll FLTR ANOFF LL_I2C_ConfigFilters\n + * FLTR DNF LL_I2C_ConfigFilters + * @param I2Cx I2C Instance. + * @param AnalogFilter This parameter can be one of the following values: + * @arg @ref LL_I2C_ANALOGFILTER_ENABLE + * @arg @ref LL_I2C_ANALOGFILTER_DISABLE + * @param DigitalFilter This parameter must be a value between Min_Data=0x00 (Digital filter disabled) and Max_Data=0x0F (Digital filter enabled and filtering capability up to 15*TPCLK1) + * This parameter is used to configure the digital noise filter on SDA and SCL input. The digital filter will suppress the spikes with a length of up to DNF[3:0]*TPCLK1. + * @retval None + */ +__STATIC_INLINE void LL_I2C_ConfigFilters(I2C_TypeDef *I2Cx, uint32_t AnalogFilter, uint32_t DigitalFilter) +{ + MODIFY_REG(I2Cx->FLTR, I2C_FLTR_ANOFF | I2C_FLTR_DNF, AnalogFilter | DigitalFilter); +} +#endif +#if defined(I2C_FLTR_DNF) + +/** + * @brief Configure Digital Noise Filter. + * @note If the analog filter is also enabled, the digital filter is added to analog filter. + * This filter can only be programmed when the I2C is disabled (PE = 0). + * @rmtoll FLTR DNF LL_I2C_SetDigitalFilter + * @param I2Cx I2C Instance. + * @param DigitalFilter This parameter must be a value between Min_Data=0x00 (Digital filter disabled) and Max_Data=0x0F (Digital filter enabled and filtering capability up to 15*TPCLK1) + * This parameter is used to configure the digital noise filter on SDA and SCL input. The digital filter will suppress the spikes with a length of up to DNF[3:0]*TPCLK1. + * @retval None + */ +__STATIC_INLINE void LL_I2C_SetDigitalFilter(I2C_TypeDef *I2Cx, uint32_t DigitalFilter) +{ + MODIFY_REG(I2Cx->FLTR, I2C_FLTR_DNF, DigitalFilter); +} + +/** + * @brief Get the current Digital Noise Filter configuration. + * @rmtoll FLTR DNF LL_I2C_GetDigitalFilter + * @param I2Cx I2C Instance. + * @retval Value between Min_Data=0x0 and Max_Data=0xF + */ +__STATIC_INLINE uint32_t LL_I2C_GetDigitalFilter(I2C_TypeDef *I2Cx) +{ + return (uint32_t)(READ_BIT(I2Cx->FLTR, I2C_FLTR_DNF)); +} +#endif +#if defined(I2C_FLTR_ANOFF) + +/** + * @brief Enable Analog Noise Filter. + * @note This filter can only be programmed when the I2C is disabled (PE = 0). + * @rmtoll FLTR ANOFF LL_I2C_EnableAnalogFilter + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableAnalogFilter(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->FLTR, I2C_FLTR_ANOFF); +} + +/** + * @brief Disable Analog Noise Filter. + * @note This filter can only be programmed when the I2C is disabled (PE = 0). + * @rmtoll FLTR ANOFF LL_I2C_DisableAnalogFilter + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableAnalogFilter(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->FLTR, I2C_FLTR_ANOFF); +} + +/** + * @brief Check if Analog Noise Filter is enabled or disabled. + * @rmtoll FLTR ANOFF LL_I2C_IsEnabledAnalogFilter + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledAnalogFilter(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->FLTR, I2C_FLTR_ANOFF) == (I2C_FLTR_ANOFF)); +} +#endif + +/** + * @brief Enable DMA transmission requests. + * @rmtoll CR2 DMAEN LL_I2C_EnableDMAReq_TX + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableDMAReq_TX(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR2, I2C_CR2_DMAEN); +} + +/** + * @brief Disable DMA transmission requests. + * @rmtoll CR2 DMAEN LL_I2C_DisableDMAReq_TX + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableDMAReq_TX(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR2, I2C_CR2_DMAEN); +} + +/** + * @brief Check if DMA transmission requests are enabled or disabled. + * @rmtoll CR2 DMAEN LL_I2C_IsEnabledDMAReq_TX + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledDMAReq_TX(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR2, I2C_CR2_DMAEN) == (I2C_CR2_DMAEN)); +} + +/** + * @brief Enable DMA reception requests. + * @rmtoll CR2 DMAEN LL_I2C_EnableDMAReq_RX + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableDMAReq_RX(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR2, I2C_CR2_DMAEN); +} + +/** + * @brief Disable DMA reception requests. + * @rmtoll CR2 DMAEN LL_I2C_DisableDMAReq_RX + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableDMAReq_RX(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR2, I2C_CR2_DMAEN); +} + +/** + * @brief Check if DMA reception requests are enabled or disabled. + * @rmtoll CR2 DMAEN LL_I2C_IsEnabledDMAReq_RX + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledDMAReq_RX(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR2, I2C_CR2_DMAEN) == (I2C_CR2_DMAEN)); +} + +/** + * @brief Get the data register address used for DMA transfer. + * @rmtoll DR DR LL_I2C_DMA_GetRegAddr + * @param I2Cx I2C Instance. + * @retval Address of data register + */ +__STATIC_INLINE uint32_t LL_I2C_DMA_GetRegAddr(I2C_TypeDef *I2Cx) +{ + return (uint32_t) & (I2Cx->DR); +} + +/** + * @brief Enable Clock stretching. + * @note This bit can only be programmed when the I2C is disabled (PE = 0). + * @rmtoll CR1 NOSTRETCH LL_I2C_EnableClockStretching + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableClockStretching(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR1, I2C_CR1_NOSTRETCH); +} + +/** + * @brief Disable Clock stretching. + * @note This bit can only be programmed when the I2C is disabled (PE = 0). + * @rmtoll CR1 NOSTRETCH LL_I2C_DisableClockStretching + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableClockStretching(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR1, I2C_CR1_NOSTRETCH); +} + +/** + * @brief Check if Clock stretching is enabled or disabled. + * @rmtoll CR1 NOSTRETCH LL_I2C_IsEnabledClockStretching + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledClockStretching(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR1, I2C_CR1_NOSTRETCH) != (I2C_CR1_NOSTRETCH)); +} + +/** + * @brief Enable General Call. + * @note When enabled the Address 0x00 is ACKed. + * @rmtoll CR1 ENGC LL_I2C_EnableGeneralCall + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableGeneralCall(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR1, I2C_CR1_ENGC); +} + +/** + * @brief Disable General Call. + * @note When disabled the Address 0x00 is NACKed. + * @rmtoll CR1 ENGC LL_I2C_DisableGeneralCall + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableGeneralCall(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR1, I2C_CR1_ENGC); +} + +/** + * @brief Check if General Call is enabled or disabled. + * @rmtoll CR1 ENGC LL_I2C_IsEnabledGeneralCall + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledGeneralCall(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR1, I2C_CR1_ENGC) == (I2C_CR1_ENGC)); +} + +/** + * @brief Set the Own Address1. + * @rmtoll OAR1 ADD0 LL_I2C_SetOwnAddress1\n + * OAR1 ADD1_7 LL_I2C_SetOwnAddress1\n + * OAR1 ADD8_9 LL_I2C_SetOwnAddress1\n + * OAR1 ADDMODE LL_I2C_SetOwnAddress1 + * @param I2Cx I2C Instance. + * @param OwnAddress1 This parameter must be a value between Min_Data=0 and Max_Data=0x3FF. + * @param OwnAddrSize This parameter can be one of the following values: + * @arg @ref LL_I2C_OWNADDRESS1_7BIT + * @arg @ref LL_I2C_OWNADDRESS1_10BIT + * @retval None + */ +__STATIC_INLINE void LL_I2C_SetOwnAddress1(I2C_TypeDef *I2Cx, uint32_t OwnAddress1, uint32_t OwnAddrSize) +{ + MODIFY_REG(I2Cx->OAR1, I2C_OAR1_ADD0 | I2C_OAR1_ADD1_7 | I2C_OAR1_ADD8_9 | I2C_OAR1_ADDMODE, OwnAddress1 | OwnAddrSize); +} + +/** + * @brief Set the 7bits Own Address2. + * @note This action has no effect if own address2 is enabled. + * @rmtoll OAR2 ADD2 LL_I2C_SetOwnAddress2 + * @param I2Cx I2C Instance. + * @param OwnAddress2 This parameter must be a value between Min_Data=0 and Max_Data=0x7F. + * @retval None + */ +__STATIC_INLINE void LL_I2C_SetOwnAddress2(I2C_TypeDef *I2Cx, uint32_t OwnAddress2) +{ + MODIFY_REG(I2Cx->OAR2, I2C_OAR2_ADD2, OwnAddress2); +} + +/** + * @brief Enable acknowledge on Own Address2 match address. + * @rmtoll OAR2 ENDUAL LL_I2C_EnableOwnAddress2 + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableOwnAddress2(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->OAR2, I2C_OAR2_ENDUAL); +} + +/** + * @brief Disable acknowledge on Own Address2 match address. + * @rmtoll OAR2 ENDUAL LL_I2C_DisableOwnAddress2 + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableOwnAddress2(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->OAR2, I2C_OAR2_ENDUAL); +} + +/** + * @brief Check if Own Address1 acknowledge is enabled or disabled. + * @rmtoll OAR2 ENDUAL LL_I2C_IsEnabledOwnAddress2 + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledOwnAddress2(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->OAR2, I2C_OAR2_ENDUAL) == (I2C_OAR2_ENDUAL)); +} + +/** + * @brief Configure the Peripheral clock frequency. + * @rmtoll CR2 FREQ LL_I2C_SetPeriphClock + * @param I2Cx I2C Instance. + * @param PeriphClock Peripheral Clock (in Hz) + * @retval None + */ +__STATIC_INLINE void LL_I2C_SetPeriphClock(I2C_TypeDef *I2Cx, uint32_t PeriphClock) +{ + MODIFY_REG(I2Cx->CR2, I2C_CR2_FREQ, __LL_I2C_FREQ_HZ_TO_MHZ(PeriphClock)); +} + +/** + * @brief Get the Peripheral clock frequency. + * @rmtoll CR2 FREQ LL_I2C_GetPeriphClock + * @param I2Cx I2C Instance. + * @retval Value of Peripheral Clock (in Hz) + */ +__STATIC_INLINE uint32_t LL_I2C_GetPeriphClock(I2C_TypeDef *I2Cx) +{ + return (uint32_t)(__LL_I2C_FREQ_MHZ_TO_HZ(READ_BIT(I2Cx->CR2, I2C_CR2_FREQ))); +} + +/** + * @brief Configure the Duty cycle (Fast mode only). + * @rmtoll CCR DUTY LL_I2C_SetDutyCycle + * @param I2Cx I2C Instance. + * @param DutyCycle This parameter can be one of the following values: + * @arg @ref LL_I2C_DUTYCYCLE_2 + * @arg @ref LL_I2C_DUTYCYCLE_16_9 + * @retval None + */ +__STATIC_INLINE void LL_I2C_SetDutyCycle(I2C_TypeDef *I2Cx, uint32_t DutyCycle) +{ + MODIFY_REG(I2Cx->CCR, I2C_CCR_DUTY, DutyCycle); +} + +/** + * @brief Get the Duty cycle (Fast mode only). + * @rmtoll CCR DUTY LL_I2C_GetDutyCycle + * @param I2Cx I2C Instance. + * @retval Returned value can be one of the following values: + * @arg @ref LL_I2C_DUTYCYCLE_2 + * @arg @ref LL_I2C_DUTYCYCLE_16_9 + */ +__STATIC_INLINE uint32_t LL_I2C_GetDutyCycle(I2C_TypeDef *I2Cx) +{ + return (uint32_t)(READ_BIT(I2Cx->CCR, I2C_CCR_DUTY)); +} + +/** + * @brief Configure the I2C master clock speed mode. + * @rmtoll CCR FS LL_I2C_SetClockSpeedMode + * @param I2Cx I2C Instance. + * @param ClockSpeedMode This parameter can be one of the following values: + * @arg @ref LL_I2C_CLOCK_SPEED_STANDARD_MODE + * @arg @ref LL_I2C_CLOCK_SPEED_FAST_MODE + * @retval None + */ +__STATIC_INLINE void LL_I2C_SetClockSpeedMode(I2C_TypeDef *I2Cx, uint32_t ClockSpeedMode) +{ + MODIFY_REG(I2Cx->CCR, I2C_CCR_FS, ClockSpeedMode); +} + +/** + * @brief Get the the I2C master speed mode. + * @rmtoll CCR FS LL_I2C_GetClockSpeedMode + * @param I2Cx I2C Instance. + * @retval Returned value can be one of the following values: + * @arg @ref LL_I2C_CLOCK_SPEED_STANDARD_MODE + * @arg @ref LL_I2C_CLOCK_SPEED_FAST_MODE + */ +__STATIC_INLINE uint32_t LL_I2C_GetClockSpeedMode(I2C_TypeDef *I2Cx) +{ + return (uint32_t)(READ_BIT(I2Cx->CCR, I2C_CCR_FS)); +} + +/** + * @brief Configure the SCL, SDA rising time. + * @note This bit can only be programmed when the I2C is disabled (PE = 0). + * @rmtoll TRISE TRISE LL_I2C_SetRiseTime + * @param I2Cx I2C Instance. + * @param RiseTime This parameter must be a value between Min_Data=0x02 and Max_Data=0x3F. + * @retval None + */ +__STATIC_INLINE void LL_I2C_SetRiseTime(I2C_TypeDef *I2Cx, uint32_t RiseTime) +{ + MODIFY_REG(I2Cx->TRISE, I2C_TRISE_TRISE, RiseTime); +} + +/** + * @brief Get the SCL, SDA rising time. + * @rmtoll TRISE TRISE LL_I2C_GetRiseTime + * @param I2Cx I2C Instance. + * @retval Value between Min_Data=0x02 and Max_Data=0x3F + */ +__STATIC_INLINE uint32_t LL_I2C_GetRiseTime(I2C_TypeDef *I2Cx) +{ + return (uint32_t)(READ_BIT(I2Cx->TRISE, I2C_TRISE_TRISE)); +} + +/** + * @brief Configure the SCL high and low period. + * @note This bit can only be programmed when the I2C is disabled (PE = 0). + * @rmtoll CCR CCR LL_I2C_SetClockPeriod + * @param I2Cx I2C Instance. + * @param ClockPeriod This parameter must be a value between Min_Data=0x004 and Max_Data=0xFFF, except in FAST DUTY mode where Min_Data=0x001. + * @retval None + */ +__STATIC_INLINE void LL_I2C_SetClockPeriod(I2C_TypeDef *I2Cx, uint32_t ClockPeriod) +{ + MODIFY_REG(I2Cx->CCR, I2C_CCR_CCR, ClockPeriod); +} + +/** + * @brief Get the SCL high and low period. + * @rmtoll CCR CCR LL_I2C_GetClockPeriod + * @param I2Cx I2C Instance. + * @retval Value between Min_Data=0x004 and Max_Data=0xFFF, except in FAST DUTY mode where Min_Data=0x001. + */ +__STATIC_INLINE uint32_t LL_I2C_GetClockPeriod(I2C_TypeDef *I2Cx) +{ + return (uint32_t)(READ_BIT(I2Cx->CCR, I2C_CCR_CCR)); +} + +/** + * @brief Configure the SCL speed. + * @note This bit can only be programmed when the I2C is disabled (PE = 0). + * @rmtoll CR2 FREQ LL_I2C_ConfigSpeed\n + * TRISE TRISE LL_I2C_ConfigSpeed\n + * CCR FS LL_I2C_ConfigSpeed\n + * CCR DUTY LL_I2C_ConfigSpeed\n + * CCR CCR LL_I2C_ConfigSpeed + * @param I2Cx I2C Instance. + * @param PeriphClock Peripheral Clock (in Hz) + * @param ClockSpeed This parameter must be a value lower than 400kHz (in Hz). + * @param DutyCycle This parameter can be one of the following values: + * @arg @ref LL_I2C_DUTYCYCLE_2 + * @arg @ref LL_I2C_DUTYCYCLE_16_9 + * @retval None + */ +__STATIC_INLINE void LL_I2C_ConfigSpeed(I2C_TypeDef *I2Cx, uint32_t PeriphClock, uint32_t ClockSpeed, + uint32_t DutyCycle) +{ + uint32_t freqrange = 0x0U; + uint32_t clockconfig = 0x0U; + + /* Compute frequency range */ + freqrange = __LL_I2C_FREQ_HZ_TO_MHZ(PeriphClock); + + /* Configure I2Cx: Frequency range register */ + MODIFY_REG(I2Cx->CR2, I2C_CR2_FREQ, freqrange); + + /* Configure I2Cx: Rise Time register */ + MODIFY_REG(I2Cx->TRISE, I2C_TRISE_TRISE, __LL_I2C_RISE_TIME(freqrange, ClockSpeed)); + + /* Configure Speed mode, Duty Cycle and Clock control register value */ + if (ClockSpeed > LL_I2C_MAX_SPEED_STANDARD) + { + /* Set Speed mode at fast and duty cycle for Clock Speed request in fast clock range */ + clockconfig = LL_I2C_CLOCK_SPEED_FAST_MODE | \ + __LL_I2C_SPEED_FAST_TO_CCR(PeriphClock, ClockSpeed, DutyCycle) | \ + DutyCycle; + } + else + { + /* Set Speed mode at standard for Clock Speed request in standard clock range */ + clockconfig = LL_I2C_CLOCK_SPEED_STANDARD_MODE | \ + __LL_I2C_SPEED_STANDARD_TO_CCR(PeriphClock, ClockSpeed); + } + + /* Configure I2Cx: Clock control register */ + MODIFY_REG(I2Cx->CCR, (I2C_CCR_FS | I2C_CCR_DUTY | I2C_CCR_CCR), clockconfig); +} + +/** + * @brief Configure peripheral mode. + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @rmtoll CR1 SMBUS LL_I2C_SetMode\n + * CR1 SMBTYPE LL_I2C_SetMode\n + * CR1 ENARP LL_I2C_SetMode + * @param I2Cx I2C Instance. + * @param PeripheralMode This parameter can be one of the following values: + * @arg @ref LL_I2C_MODE_I2C + * @arg @ref LL_I2C_MODE_SMBUS_HOST + * @arg @ref LL_I2C_MODE_SMBUS_DEVICE + * @arg @ref LL_I2C_MODE_SMBUS_DEVICE_ARP + * @retval None + */ +__STATIC_INLINE void LL_I2C_SetMode(I2C_TypeDef *I2Cx, uint32_t PeripheralMode) +{ + MODIFY_REG(I2Cx->CR1, I2C_CR1_SMBUS | I2C_CR1_SMBTYPE | I2C_CR1_ENARP, PeripheralMode); +} + +/** + * @brief Get peripheral mode. + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @rmtoll CR1 SMBUS LL_I2C_GetMode\n + * CR1 SMBTYPE LL_I2C_GetMode\n + * CR1 ENARP LL_I2C_GetMode + * @param I2Cx I2C Instance. + * @retval Returned value can be one of the following values: + * @arg @ref LL_I2C_MODE_I2C + * @arg @ref LL_I2C_MODE_SMBUS_HOST + * @arg @ref LL_I2C_MODE_SMBUS_DEVICE + * @arg @ref LL_I2C_MODE_SMBUS_DEVICE_ARP + */ +__STATIC_INLINE uint32_t LL_I2C_GetMode(I2C_TypeDef *I2Cx) +{ + return (uint32_t)(READ_BIT(I2Cx->CR1, I2C_CR1_SMBUS | I2C_CR1_SMBTYPE | I2C_CR1_ENARP)); +} + +/** + * @brief Enable SMBus alert (Host or Device mode) + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @note SMBus Device mode: + * - SMBus Alert pin is drived low and + * Alert Response Address Header acknowledge is enabled. + * SMBus Host mode: + * - SMBus Alert pin management is supported. + * @rmtoll CR1 ALERT LL_I2C_EnableSMBusAlert + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableSMBusAlert(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR1, I2C_CR1_ALERT); +} + +/** + * @brief Disable SMBus alert (Host or Device mode) + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @note SMBus Device mode: + * - SMBus Alert pin is not drived (can be used as a standard GPIO) and + * Alert Response Address Header acknowledge is disabled. + * SMBus Host mode: + * - SMBus Alert pin management is not supported. + * @rmtoll CR1 ALERT LL_I2C_DisableSMBusAlert + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableSMBusAlert(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR1, I2C_CR1_ALERT); +} + +/** + * @brief Check if SMBus alert (Host or Device mode) is enabled or disabled. + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @rmtoll CR1 ALERT LL_I2C_IsEnabledSMBusAlert + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledSMBusAlert(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR1, I2C_CR1_ALERT) == (I2C_CR1_ALERT)); +} + +/** + * @brief Enable SMBus Packet Error Calculation (PEC). + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @rmtoll CR1 ENPEC LL_I2C_EnableSMBusPEC + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableSMBusPEC(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR1, I2C_CR1_ENPEC); +} + +/** + * @brief Disable SMBus Packet Error Calculation (PEC). + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @rmtoll CR1 ENPEC LL_I2C_DisableSMBusPEC + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableSMBusPEC(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR1, I2C_CR1_ENPEC); +} + +/** + * @brief Check if SMBus Packet Error Calculation (PEC) is enabled or disabled. + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @rmtoll CR1 ENPEC LL_I2C_IsEnabledSMBusPEC + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledSMBusPEC(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR1, I2C_CR1_ENPEC) == (I2C_CR1_ENPEC)); +} + +/** + * @} + */ + +/** @defgroup I2C_LL_EF_IT_Management IT_Management + * @{ + */ + +/** + * @brief Enable TXE interrupt. + * @rmtoll CR2 ITEVTEN LL_I2C_EnableIT_TX\n + * CR2 ITBUFEN LL_I2C_EnableIT_TX + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableIT_TX(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR2, I2C_CR2_ITEVTEN | I2C_CR2_ITBUFEN); +} + +/** + * @brief Disable TXE interrupt. + * @rmtoll CR2 ITEVTEN LL_I2C_DisableIT_TX\n + * CR2 ITBUFEN LL_I2C_DisableIT_TX + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableIT_TX(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR2, I2C_CR2_ITEVTEN | I2C_CR2_ITBUFEN); +} + +/** + * @brief Check if the TXE Interrupt is enabled or disabled. + * @rmtoll CR2 ITEVTEN LL_I2C_IsEnabledIT_TX\n + * CR2 ITBUFEN LL_I2C_IsEnabledIT_TX + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledIT_TX(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR2, I2C_CR2_ITEVTEN | I2C_CR2_ITBUFEN) == (I2C_CR2_ITEVTEN | I2C_CR2_ITBUFEN)); +} + +/** + * @brief Enable RXNE interrupt. + * @rmtoll CR2 ITEVTEN LL_I2C_EnableIT_RX\n + * CR2 ITBUFEN LL_I2C_EnableIT_RX + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableIT_RX(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR2, I2C_CR2_ITEVTEN | I2C_CR2_ITBUFEN); +} + +/** + * @brief Disable RXNE interrupt. + * @rmtoll CR2 ITEVTEN LL_I2C_DisableIT_RX\n + * CR2 ITBUFEN LL_I2C_DisableIT_RX + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableIT_RX(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR2, I2C_CR2_ITEVTEN | I2C_CR2_ITBUFEN); +} + +/** + * @brief Check if the RXNE Interrupt is enabled or disabled. + * @rmtoll CR2 ITEVTEN LL_I2C_IsEnabledIT_RX\n + * CR2 ITBUFEN LL_I2C_IsEnabledIT_RX + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledIT_RX(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR2, I2C_CR2_ITEVTEN | I2C_CR2_ITBUFEN) == (I2C_CR2_ITEVTEN | I2C_CR2_ITBUFEN)); +} + +/** + * @brief Enable Events interrupts. + * @note Any of these events will generate interrupt : + * Start Bit (SB) + * Address sent, Address matched (ADDR) + * 10-bit header sent (ADD10) + * Stop detection (STOPF) + * Byte transfer finished (BTF) + * + * @note Any of these events will generate interrupt if Buffer interrupts are enabled too(using unitary function @ref LL_I2C_EnableIT_BUF()) : + * Receive buffer not empty (RXNE) + * Transmit buffer empty (TXE) + * @rmtoll CR2 ITEVTEN LL_I2C_EnableIT_EVT + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableIT_EVT(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR2, I2C_CR2_ITEVTEN); +} + +/** + * @brief Disable Events interrupts. + * @note Any of these events will generate interrupt : + * Start Bit (SB) + * Address sent, Address matched (ADDR) + * 10-bit header sent (ADD10) + * Stop detection (STOPF) + * Byte transfer finished (BTF) + * Receive buffer not empty (RXNE) + * Transmit buffer empty (TXE) + * @rmtoll CR2 ITEVTEN LL_I2C_DisableIT_EVT + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableIT_EVT(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR2, I2C_CR2_ITEVTEN); +} + +/** + * @brief Check if Events interrupts are enabled or disabled. + * @rmtoll CR2 ITEVTEN LL_I2C_IsEnabledIT_EVT + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledIT_EVT(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR2, I2C_CR2_ITEVTEN) == (I2C_CR2_ITEVTEN)); +} + +/** + * @brief Enable Buffer interrupts. + * @note Any of these Buffer events will generate interrupt if Events interrupts are enabled too(using unitary function @ref LL_I2C_EnableIT_EVT()) : + * Receive buffer not empty (RXNE) + * Transmit buffer empty (TXE) + * @rmtoll CR2 ITBUFEN LL_I2C_EnableIT_BUF + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableIT_BUF(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR2, I2C_CR2_ITBUFEN); +} + +/** + * @brief Disable Buffer interrupts. + * @note Any of these Buffer events will generate interrupt : + * Receive buffer not empty (RXNE) + * Transmit buffer empty (TXE) + * @rmtoll CR2 ITBUFEN LL_I2C_DisableIT_BUF + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableIT_BUF(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR2, I2C_CR2_ITBUFEN); +} + +/** + * @brief Check if Buffer interrupts are enabled or disabled. + * @rmtoll CR2 ITBUFEN LL_I2C_IsEnabledIT_BUF + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledIT_BUF(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR2, I2C_CR2_ITBUFEN) == (I2C_CR2_ITBUFEN)); +} + +/** + * @brief Enable Error interrupts. + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @note Any of these errors will generate interrupt : + * Bus Error detection (BERR) + * Arbitration Loss (ARLO) + * Acknowledge Failure(AF) + * Overrun/Underrun (OVR) + * SMBus Timeout detection (TIMEOUT) + * SMBus PEC error detection (PECERR) + * SMBus Alert pin event detection (SMBALERT) + * @rmtoll CR2 ITERREN LL_I2C_EnableIT_ERR + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableIT_ERR(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR2, I2C_CR2_ITERREN); +} + +/** + * @brief Disable Error interrupts. + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @note Any of these errors will generate interrupt : + * Bus Error detection (BERR) + * Arbitration Loss (ARLO) + * Acknowledge Failure(AF) + * Overrun/Underrun (OVR) + * SMBus Timeout detection (TIMEOUT) + * SMBus PEC error detection (PECERR) + * SMBus Alert pin event detection (SMBALERT) + * @rmtoll CR2 ITERREN LL_I2C_DisableIT_ERR + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableIT_ERR(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR2, I2C_CR2_ITERREN); +} + +/** + * @brief Check if Error interrupts are enabled or disabled. + * @rmtoll CR2 ITERREN LL_I2C_IsEnabledIT_ERR + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledIT_ERR(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR2, I2C_CR2_ITERREN) == (I2C_CR2_ITERREN)); +} + +/** + * @} + */ + +/** @defgroup I2C_LL_EF_FLAG_management FLAG_management + * @{ + */ + +/** + * @brief Indicate the status of Transmit data register empty flag. + * @note RESET: When next data is written in Transmit data register. + * SET: When Transmit data register is empty. + * @rmtoll SR1 TXE LL_I2C_IsActiveFlag_TXE + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_TXE(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR1, I2C_SR1_TXE) == (I2C_SR1_TXE)); +} + +/** + * @brief Indicate the status of Byte Transfer Finished flag. + * RESET: When Data byte transfer not done. + * SET: When Data byte transfer succeeded. + * @rmtoll SR1 BTF LL_I2C_IsActiveFlag_BTF + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_BTF(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR1, I2C_SR1_BTF) == (I2C_SR1_BTF)); +} + +/** + * @brief Indicate the status of Receive data register not empty flag. + * @note RESET: When Receive data register is read. + * SET: When the received data is copied in Receive data register. + * @rmtoll SR1 RXNE LL_I2C_IsActiveFlag_RXNE + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_RXNE(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR1, I2C_SR1_RXNE) == (I2C_SR1_RXNE)); +} + +/** + * @brief Indicate the status of Start Bit (master mode). + * @note RESET: When No Start condition. + * SET: When Start condition is generated. + * @rmtoll SR1 SB LL_I2C_IsActiveFlag_SB + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_SB(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR1, I2C_SR1_SB) == (I2C_SR1_SB)); +} + +/** + * @brief Indicate the status of Address sent (master mode) or Address matched flag (slave mode). + * @note RESET: Clear default value. + * SET: When the address is fully sent (master mode) or when the received slave address matched with one of the enabled slave address (slave mode). + * @rmtoll SR1 ADDR LL_I2C_IsActiveFlag_ADDR + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_ADDR(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR1, I2C_SR1_ADDR) == (I2C_SR1_ADDR)); +} + +/** + * @brief Indicate the status of 10-bit header sent (master mode). + * @note RESET: When no ADD10 event occurred. + * SET: When the master has sent the first address byte (header). + * @rmtoll SR1 ADD10 LL_I2C_IsActiveFlag_ADD10 + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_ADD10(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR1, I2C_SR1_ADD10) == (I2C_SR1_ADD10)); +} + +/** + * @brief Indicate the status of Acknowledge failure flag. + * @note RESET: No acknowledge failure. + * SET: When an acknowledge failure is received after a byte transmission. + * @rmtoll SR1 AF LL_I2C_IsActiveFlag_AF + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_AF(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR1, I2C_SR1_AF) == (I2C_SR1_AF)); +} + +/** + * @brief Indicate the status of Stop detection flag (slave mode). + * @note RESET: Clear default value. + * SET: When a Stop condition is detected. + * @rmtoll SR1 STOPF LL_I2C_IsActiveFlag_STOP + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_STOP(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR1, I2C_SR1_STOPF) == (I2C_SR1_STOPF)); +} + +/** + * @brief Indicate the status of Bus error flag. + * @note RESET: Clear default value. + * SET: When a misplaced Start or Stop condition is detected. + * @rmtoll SR1 BERR LL_I2C_IsActiveFlag_BERR + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_BERR(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR1, I2C_SR1_BERR) == (I2C_SR1_BERR)); +} + +/** + * @brief Indicate the status of Arbitration lost flag. + * @note RESET: Clear default value. + * SET: When arbitration lost. + * @rmtoll SR1 ARLO LL_I2C_IsActiveFlag_ARLO + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_ARLO(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR1, I2C_SR1_ARLO) == (I2C_SR1_ARLO)); +} + +/** + * @brief Indicate the status of Overrun/Underrun flag. + * @note RESET: Clear default value. + * SET: When an overrun/underrun error occurs (Clock Stretching Disabled). + * @rmtoll SR1 OVR LL_I2C_IsActiveFlag_OVR + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_OVR(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR1, I2C_SR1_OVR) == (I2C_SR1_OVR)); +} + +/** + * @brief Indicate the status of SMBus PEC error flag in reception. + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @rmtoll SR1 PECERR LL_I2C_IsActiveSMBusFlag_PECERR + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveSMBusFlag_PECERR(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR1, I2C_SR1_PECERR) == (I2C_SR1_PECERR)); +} + +/** + * @brief Indicate the status of SMBus Timeout detection flag. + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @rmtoll SR1 TIMEOUT LL_I2C_IsActiveSMBusFlag_TIMEOUT + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveSMBusFlag_TIMEOUT(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR1, I2C_SR1_TIMEOUT) == (I2C_SR1_TIMEOUT)); +} + +/** + * @brief Indicate the status of SMBus alert flag. + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @rmtoll SR1 SMBALERT LL_I2C_IsActiveSMBusFlag_ALERT + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveSMBusFlag_ALERT(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR1, I2C_SR1_SMBALERT) == (I2C_SR1_SMBALERT)); +} + +/** + * @brief Indicate the status of Bus Busy flag. + * @note RESET: Clear default value. + * SET: When a Start condition is detected. + * @rmtoll SR2 BUSY LL_I2C_IsActiveFlag_BUSY + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_BUSY(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR2, I2C_SR2_BUSY) == (I2C_SR2_BUSY)); +} + +/** + * @brief Indicate the status of Dual flag. + * @note RESET: Received address matched with OAR1. + * SET: Received address matched with OAR2. + * @rmtoll SR2 DUALF LL_I2C_IsActiveFlag_DUAL + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_DUAL(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR2, I2C_SR2_DUALF) == (I2C_SR2_DUALF)); +} + +/** + * @brief Indicate the status of SMBus Host address reception (Slave mode). + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @note RESET: No SMBus Host address + * SET: SMBus Host address received. + * @note This status is cleared by hardware after a STOP condition or repeated START condition. + * @rmtoll SR2 SMBHOST LL_I2C_IsActiveSMBusFlag_SMBHOST + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveSMBusFlag_SMBHOST(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR2, I2C_SR2_SMBHOST) == (I2C_SR2_SMBHOST)); +} + +/** + * @brief Indicate the status of SMBus Device default address reception (Slave mode). + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @note RESET: No SMBus Device default address + * SET: SMBus Device default address received. + * @note This status is cleared by hardware after a STOP condition or repeated START condition. + * @rmtoll SR2 SMBDEFAULT LL_I2C_IsActiveSMBusFlag_SMBDEFAULT + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveSMBusFlag_SMBDEFAULT(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR2, I2C_SR2_SMBDEFAULT) == (I2C_SR2_SMBDEFAULT)); +} + +/** + * @brief Indicate the status of General call address reception (Slave mode). + * @note RESET: No General call address + * SET: General call address received. + * @note This status is cleared by hardware after a STOP condition or repeated START condition. + * @rmtoll SR2 GENCALL LL_I2C_IsActiveFlag_GENCALL + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_GENCALL(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR2, I2C_SR2_GENCALL) == (I2C_SR2_GENCALL)); +} + +/** + * @brief Indicate the status of Master/Slave flag. + * @note RESET: Slave Mode. + * SET: Master Mode. + * @rmtoll SR2 MSL LL_I2C_IsActiveFlag_MSL + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsActiveFlag_MSL(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->SR2, I2C_SR2_MSL) == (I2C_SR2_MSL)); +} + +/** + * @brief Clear Address Matched flag. + * @note Clearing this flag is done by a read access to the I2Cx_SR1 + * register followed by a read access to the I2Cx_SR2 register. + * @rmtoll SR1 ADDR LL_I2C_ClearFlag_ADDR + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_ClearFlag_ADDR(I2C_TypeDef *I2Cx) +{ + __IO uint32_t tmpreg; + tmpreg = I2Cx->SR1; + (void) tmpreg; + tmpreg = I2Cx->SR2; + (void) tmpreg; +} + +/** + * @brief Clear Acknowledge failure flag. + * @rmtoll SR1 AF LL_I2C_ClearFlag_AF + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_ClearFlag_AF(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->SR1, I2C_SR1_AF); +} + +/** + * @brief Clear Stop detection flag. + * @note Clearing this flag is done by a read access to the I2Cx_SR1 + * register followed by a write access to I2Cx_CR1 register. + * @rmtoll SR1 STOPF LL_I2C_ClearFlag_STOP\n + * CR1 PE LL_I2C_ClearFlag_STOP + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_ClearFlag_STOP(I2C_TypeDef *I2Cx) +{ + __IO uint32_t tmpreg; + tmpreg = I2Cx->SR1; + (void) tmpreg; + SET_BIT(I2Cx->CR1, I2C_CR1_PE); +} + +/** + * @brief Clear Bus error flag. + * @rmtoll SR1 BERR LL_I2C_ClearFlag_BERR + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_ClearFlag_BERR(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->SR1, I2C_SR1_BERR); +} + +/** + * @brief Clear Arbitration lost flag. + * @rmtoll SR1 ARLO LL_I2C_ClearFlag_ARLO + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_ClearFlag_ARLO(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->SR1, I2C_SR1_ARLO); +} + +/** + * @brief Clear Overrun/Underrun flag. + * @rmtoll SR1 OVR LL_I2C_ClearFlag_OVR + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_ClearFlag_OVR(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->SR1, I2C_SR1_OVR); +} + +/** + * @brief Clear SMBus PEC error flag. + * @rmtoll SR1 PECERR LL_I2C_ClearSMBusFlag_PECERR + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_ClearSMBusFlag_PECERR(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->SR1, I2C_SR1_PECERR); +} + +/** + * @brief Clear SMBus Timeout detection flag. + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @rmtoll SR1 TIMEOUT LL_I2C_ClearSMBusFlag_TIMEOUT + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_ClearSMBusFlag_TIMEOUT(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->SR1, I2C_SR1_TIMEOUT); +} + +/** + * @brief Clear SMBus Alert flag. + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @rmtoll SR1 SMBALERT LL_I2C_ClearSMBusFlag_ALERT + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_ClearSMBusFlag_ALERT(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->SR1, I2C_SR1_SMBALERT); +} + +/** + * @} + */ + +/** @defgroup I2C_LL_EF_Data_Management Data_Management + * @{ + */ + +/** + * @brief Enable Reset of I2C peripheral. + * @rmtoll CR1 SWRST LL_I2C_EnableReset + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableReset(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR1, I2C_CR1_SWRST); +} + +/** + * @brief Disable Reset of I2C peripheral. + * @rmtoll CR1 SWRST LL_I2C_DisableReset + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableReset(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR1, I2C_CR1_SWRST); +} + +/** + * @brief Check if the I2C peripheral is under reset state or not. + * @rmtoll CR1 SWRST LL_I2C_IsResetEnabled + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsResetEnabled(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR1, I2C_CR1_SWRST) == (I2C_CR1_SWRST)); +} + +/** + * @brief Prepare the generation of a ACKnowledge or Non ACKnowledge condition after the address receive match code or next received byte. + * @note Usage in Slave or Master mode. + * @rmtoll CR1 ACK LL_I2C_AcknowledgeNextData + * @param I2Cx I2C Instance. + * @param TypeAcknowledge This parameter can be one of the following values: + * @arg @ref LL_I2C_ACK + * @arg @ref LL_I2C_NACK + * @retval None + */ +__STATIC_INLINE void LL_I2C_AcknowledgeNextData(I2C_TypeDef *I2Cx, uint32_t TypeAcknowledge) +{ + MODIFY_REG(I2Cx->CR1, I2C_CR1_ACK, TypeAcknowledge); +} + +/** + * @brief Generate a START or RESTART condition + * @note The START bit can be set even if bus is BUSY or I2C is in slave mode. + * This action has no effect when RELOAD is set. + * @rmtoll CR1 START LL_I2C_GenerateStartCondition + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_GenerateStartCondition(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR1, I2C_CR1_START); +} + +/** + * @brief Generate a STOP condition after the current byte transfer (master mode). + * @rmtoll CR1 STOP LL_I2C_GenerateStopCondition + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_GenerateStopCondition(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR1, I2C_CR1_STOP); +} + +/** + * @brief Enable bit POS (master/host mode). + * @note In that case, the ACK bit controls the (N)ACK of the next byte received or the PEC bit indicates that the next byte in shift register is a PEC. + * @rmtoll CR1 POS LL_I2C_EnableBitPOS + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableBitPOS(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR1, I2C_CR1_POS); +} + +/** + * @brief Disable bit POS (master/host mode). + * @note In that case, the ACK bit controls the (N)ACK of the current byte received or the PEC bit indicates that the current byte in shift register is a PEC. + * @rmtoll CR1 POS LL_I2C_DisableBitPOS + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableBitPOS(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR1, I2C_CR1_POS); +} + +/** + * @brief Check if bit POS is enabled or disabled. + * @rmtoll CR1 POS LL_I2C_IsEnabledBitPOS + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledBitPOS(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR1, I2C_CR1_POS) == (I2C_CR1_POS)); +} + +/** + * @brief Indicate the value of transfer direction. + * @note RESET: Bus is in read transfer (peripheral point of view). + * SET: Bus is in write transfer (peripheral point of view). + * @rmtoll SR2 TRA LL_I2C_GetTransferDirection + * @param I2Cx I2C Instance. + * @retval Returned value can be one of the following values: + * @arg @ref LL_I2C_DIRECTION_WRITE + * @arg @ref LL_I2C_DIRECTION_READ + */ +__STATIC_INLINE uint32_t LL_I2C_GetTransferDirection(I2C_TypeDef *I2Cx) +{ + return (uint32_t)(READ_BIT(I2Cx->SR2, I2C_SR2_TRA)); +} + +/** + * @brief Enable DMA last transfer. + * @note This action mean that next DMA EOT is the last transfer. + * @rmtoll CR2 LAST LL_I2C_EnableLastDMA + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableLastDMA(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR2, I2C_CR2_LAST); +} + +/** + * @brief Disable DMA last transfer. + * @note This action mean that next DMA EOT is not the last transfer. + * @rmtoll CR2 LAST LL_I2C_DisableLastDMA + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableLastDMA(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR2, I2C_CR2_LAST); +} + +/** + * @brief Check if DMA last transfer is enabled or disabled. + * @rmtoll CR2 LAST LL_I2C_IsEnabledLastDMA + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledLastDMA(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR2, I2C_CR2_LAST) == (I2C_CR2_LAST)); +} + +/** + * @brief Enable transfer or internal comparison of the SMBus Packet Error byte (transmission or reception mode). + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @note This feature is cleared by hardware when the PEC byte is transferred or compared, + * or by a START or STOP condition, it is also cleared by software. + * @rmtoll CR1 PEC LL_I2C_EnableSMBusPECCompare + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_EnableSMBusPECCompare(I2C_TypeDef *I2Cx) +{ + SET_BIT(I2Cx->CR1, I2C_CR1_PEC); +} + +/** + * @brief Disable transfer or internal comparison of the SMBus Packet Error byte (transmission or reception mode). + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @rmtoll CR1 PEC LL_I2C_DisableSMBusPECCompare + * @param I2Cx I2C Instance. + * @retval None + */ +__STATIC_INLINE void LL_I2C_DisableSMBusPECCompare(I2C_TypeDef *I2Cx) +{ + CLEAR_BIT(I2Cx->CR1, I2C_CR1_PEC); +} + +/** + * @brief Check if the SMBus Packet Error byte transfer or internal comparison is requested or not. + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @rmtoll CR1 PEC LL_I2C_IsEnabledSMBusPECCompare + * @param I2Cx I2C Instance. + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_I2C_IsEnabledSMBusPECCompare(I2C_TypeDef *I2Cx) +{ + return (READ_BIT(I2Cx->CR1, I2C_CR1_PEC) == (I2C_CR1_PEC)); +} + +/** + * @brief Get the SMBus Packet Error byte calculated. + * @note Macro IS_SMBUS_ALL_INSTANCE(I2Cx) can be used to check whether or not + * SMBus feature is supported by the I2Cx Instance. + * @rmtoll SR2 PEC LL_I2C_GetSMBusPEC + * @param I2Cx I2C Instance. + * @retval Value between Min_Data=0x00 and Max_Data=0xFF + */ +__STATIC_INLINE uint32_t LL_I2C_GetSMBusPEC(I2C_TypeDef *I2Cx) +{ + return (uint32_t)(READ_BIT(I2Cx->SR2, I2C_SR2_PEC) >> I2C_SR2_PEC_Pos); +} + +/** + * @brief Read Receive Data register. + * @rmtoll DR DR LL_I2C_ReceiveData8 + * @param I2Cx I2C Instance. + * @retval Value between Min_Data=0x0 and Max_Data=0xFF + */ +__STATIC_INLINE uint8_t LL_I2C_ReceiveData8(I2C_TypeDef *I2Cx) +{ + return (uint8_t)(READ_BIT(I2Cx->DR, I2C_DR_DR)); +} + +/** + * @brief Write in Transmit Data Register . + * @rmtoll DR DR LL_I2C_TransmitData8 + * @param I2Cx I2C Instance. + * @param Data Value between Min_Data=0x0 and Max_Data=0xFF + * @retval None + */ +__STATIC_INLINE void LL_I2C_TransmitData8(I2C_TypeDef *I2Cx, uint8_t Data) +{ + MODIFY_REG(I2Cx->DR, I2C_DR_DR, Data); +} + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup I2C_LL_EF_Init Initialization and de-initialization functions + * @{ + */ + +uint32_t LL_I2C_Init(I2C_TypeDef *I2Cx, LL_I2C_InitTypeDef *I2C_InitStruct); +uint32_t LL_I2C_DeInit(I2C_TypeDef *I2Cx); +void LL_I2C_StructInit(LL_I2C_InitTypeDef *I2C_InitStruct); + + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* I2C1 || I2C2 || I2C3 */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F4xx_LL_I2C_H */ + diff --git a/firmware/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c b/firmware/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c new file mode 100644 index 0000000..069b4f3 --- /dev/null +++ b/firmware/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c @@ -0,0 +1,7571 @@ +/** + ****************************************************************************** + * @file stm32f4xx_hal_i2c.c + * @author MCD Application Team + * @brief I2C HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the Inter Integrated Circuit (I2C) peripheral: + * + Initialization and de-initialization functions + * + IO operation functions + * + Peripheral State, Mode and Error functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + The I2C HAL driver can be used as follows: + + (#) Declare a I2C_HandleTypeDef handle structure, for example: + I2C_HandleTypeDef hi2c; + + (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API: + (##) Enable the I2Cx interface clock + (##) I2C pins configuration + (+++) Enable the clock for the I2C GPIOs + (+++) Configure I2C pins as alternate function open-drain + (##) NVIC configuration if you need to use interrupt process + (+++) Configure the I2Cx interrupt priority + (+++) Enable the NVIC I2C IRQ Channel + (##) DMA Configuration if you need to use DMA process + (+++) Declare a DMA_HandleTypeDef handle structure for the transmit or receive stream + (+++) Enable the DMAx interface clock using + (+++) Configure the DMA handle parameters + (+++) Configure the DMA Tx or Rx stream + (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle + (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on + the DMA Tx or Rx stream + + (#) Configure the Communication Speed, Duty cycle, Addressing mode, Own Address1, + Dual Addressing mode, Own Address2, General call and Nostretch mode in the hi2c Init structure. + + (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level Hardware + (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit() API. + + (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceReady() + + (#) For I2C IO and IO MEM operations, three operation modes are available within this driver : + + *** Polling mode IO operation *** + ================================= + [..] + (+) Transmit in master mode an amount of data in blocking mode using HAL_I2C_Master_Transmit() + (+) Receive in master mode an amount of data in blocking mode using HAL_I2C_Master_Receive() + (+) Transmit in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Transmit() + (+) Receive in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Receive() + + *** Polling mode IO MEM operation *** + ===================================== + [..] + (+) Write an amount of data in blocking mode to a specific memory address using HAL_I2C_Mem_Write() + (+) Read an amount of data in blocking mode from a specific memory address using HAL_I2C_Mem_Read() + + + *** Interrupt mode IO operation *** + =================================== + [..] + (+) Transmit in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Transmit_IT() + (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() + (+) Receive in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Receive_IT() + (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() + (+) Transmit in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Transmit_IT() + (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() + (+) Receive in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Receive_IT() + (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() + (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and user can + add his own code by customization of function pointer HAL_I2C_ErrorCallback() + (+) Abort a master or memory I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() + (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_AbortCpltCallback() + + *** Interrupt mode or DMA mode IO sequential operation *** + ========================================================== + [..] + (@) These interfaces allow to manage a sequential transfer with a repeated start condition + when a direction change during transfer + [..] + (+) A specific option field manage the different steps of a sequential transfer + (+) Option field values are defined through I2C_XferOptions_definition and are listed below: + (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfaces in no sequential mode + (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start condition, address + and data to transfer without a final stop condition + (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a sequence with start condition, address + and data to transfer without a final stop condition, an then permit a call the same master sequential interface + several times (like HAL_I2C_Master_Seq_Transmit_IT() then HAL_I2C_Master_Seq_Transmit_IT() + or HAL_I2C_Master_Seq_Transmit_DMA() then HAL_I2C_Master_Seq_Transmit_DMA()) + (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart condition, address + and with new data to transfer if the direction change or manage only the new data to transfer + if no direction change and without a final stop condition in both cases + (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart condition, address + and with new data to transfer if the direction change or manage only the new data to transfer + if no direction change and with a final stop condition in both cases + (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a restart condition after several call of the same master sequential + interface several times (link with option I2C_FIRST_AND_NEXT_FRAME). + Usage can, transfer several bytes one by one using HAL_I2C_Master_Seq_Transmit_IT(option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME) + or HAL_I2C_Master_Seq_Receive_IT(option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME) + or HAL_I2C_Master_Seq_Transmit_DMA(option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME) + or HAL_I2C_Master_Seq_Receive_DMA(option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME). + Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit or Receive sequence permit to call the opposite interface Receive or Transmit + without stopping the communication and so generate a restart condition. + (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart condition after each call of the same master sequential + interface. + Usage can, transfer several bytes one by one with a restart with slave address between each bytes using HAL_I2C_Master_Seq_Transmit_IT(option I2C_FIRST_FRAME then I2C_OTHER_FRAME) + or HAL_I2C_Master_Seq_Receive_IT(option I2C_FIRST_FRAME then I2C_OTHER_FRAME) + or HAL_I2C_Master_Seq_Transmit_DMA(option I2C_FIRST_FRAME then I2C_OTHER_FRAME) + or HAL_I2C_Master_Seq_Receive_DMA(option I2C_FIRST_FRAME then I2C_OTHER_FRAME). + Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to help automatic generation of STOP condition. + + (+) Different sequential I2C interfaces are listed below: + (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using HAL_I2C_Master_Seq_Transmit_IT() + or using HAL_I2C_Master_Seq_Transmit_DMA() + (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() + (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using HAL_I2C_Master_Seq_Receive_IT() + or using HAL_I2C_Master_Seq_Receive_DMA() + (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() + (++) Abort a master or memory IT or DMA I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() + (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_AbortCpltCallback() + (++) Enable/disable the Address listen mode in slave I2C mode using HAL_I2C_EnableListen_IT() HAL_I2C_DisableListen_IT() + (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and user can + add his own code to check the Address Match Code and the transmission direction request by master (Write/Read). + (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_ListenCpltCallback() + (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using HAL_I2C_Slave_Seq_Transmit_IT() + or using HAL_I2C_Slave_Seq_Transmit_DMA() + (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() + (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using HAL_I2C_Slave_Seq_Receive_IT() + or using HAL_I2C_Slave_Seq_Receive_DMA() + (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() + (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and user can + add his own code by customization of function pointer HAL_I2C_ErrorCallback() + + *** Interrupt mode IO MEM operation *** + ======================================= + [..] + (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address using + HAL_I2C_Mem_Write_IT() + (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_MemTxCpltCallback() + (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address using + HAL_I2C_Mem_Read_IT() + (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_MemRxCpltCallback() + (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and user can + add his own code by customization of function pointer HAL_I2C_ErrorCallback() + + *** DMA mode IO operation *** + ============================== + [..] + (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using + HAL_I2C_Master_Transmit_DMA() + (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() + (+) Receive in master mode an amount of data in non-blocking mode (DMA) using + HAL_I2C_Master_Receive_DMA() + (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() + (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using + HAL_I2C_Slave_Transmit_DMA() + (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() + (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using + HAL_I2C_Slave_Receive_DMA() + (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() + (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and user can + add his own code by customization of function pointer HAL_I2C_ErrorCallback() + (+) Abort a master or memory I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() + (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_AbortCpltCallback() + + *** DMA mode IO MEM operation *** + ================================= + [..] + (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using + HAL_I2C_Mem_Write_DMA() + (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_MemTxCpltCallback() + (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using + HAL_I2C_Mem_Read_DMA() + (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and user can + add his own code by customization of function pointer HAL_I2C_MemRxCpltCallback() + (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and user can + add his own code by customization of function pointer HAL_I2C_ErrorCallback() + + + *** I2C HAL driver macros list *** + ================================== + [..] + Below the list of most used macros in I2C HAL driver. + + (+) __HAL_I2C_ENABLE: Enable the I2C peripheral + (+) __HAL_I2C_DISABLE: Disable the I2C peripheral + (+) __HAL_I2C_GET_FLAG: Checks whether the specified I2C flag is set or not + (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag + (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt + (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt + + *** Callback registration *** + ============================================= + [..] + The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1 + allows the user to configure dynamically the driver callbacks. + Use Functions HAL_I2C_RegisterCallback() or HAL_I2C_RegisterAddrCallback() + to register an interrupt callback. + [..] + Function HAL_I2C_RegisterCallback() allows to register following callbacks: + (+) MasterTxCpltCallback : callback for Master transmission end of transfer. + (+) MasterRxCpltCallback : callback for Master reception end of transfer. + (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. + (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. + (+) ListenCpltCallback : callback for end of listen mode. + (+) MemTxCpltCallback : callback for Memory transmission end of transfer. + (+) MemRxCpltCallback : callback for Memory reception end of transfer. + (+) ErrorCallback : callback for error detection. + (+) AbortCpltCallback : callback for abort completion process. + (+) MspInitCallback : callback for Msp Init. + (+) MspDeInitCallback : callback for Msp DeInit. + This function takes as parameters the HAL peripheral handle, the Callback ID + and a pointer to the user callback function. + [..] + For specific callback AddrCallback use dedicated register callbacks : HAL_I2C_RegisterAddrCallback(). + [..] + Use function HAL_I2C_UnRegisterCallback to reset a callback to the default + weak function. + HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle, + and the Callback ID. + This function allows to reset following callbacks: + (+) MasterTxCpltCallback : callback for Master transmission end of transfer. + (+) MasterRxCpltCallback : callback for Master reception end of transfer. + (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. + (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. + (+) ListenCpltCallback : callback for end of listen mode. + (+) MemTxCpltCallback : callback for Memory transmission end of transfer. + (+) MemRxCpltCallback : callback for Memory reception end of transfer. + (+) ErrorCallback : callback for error detection. + (+) AbortCpltCallback : callback for abort completion process. + (+) MspInitCallback : callback for Msp Init. + (+) MspDeInitCallback : callback for Msp DeInit. + [..] + For callback AddrCallback use dedicated register callbacks : HAL_I2C_UnRegisterAddrCallback(). + [..] + By default, after the HAL_I2C_Init() and when the state is HAL_I2C_STATE_RESET + all callbacks are set to the corresponding weak functions: + examples HAL_I2C_MasterTxCpltCallback(), HAL_I2C_MasterRxCpltCallback(). + Exception done for MspInit and MspDeInit functions that are + reset to the legacy weak functions in the HAL_I2C_Init()/ HAL_I2C_DeInit() only when + these callbacks are null (not registered beforehand). + If MspInit or MspDeInit are not null, the HAL_I2C_Init()/ HAL_I2C_DeInit() + keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state. + [..] + Callbacks can be registered/unregistered in HAL_I2C_STATE_READY state only. + Exception done MspInit/MspDeInit functions that can be registered/unregistered + in HAL_I2C_STATE_READY or HAL_I2C_STATE_RESET state, + thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. + Then, the user first registers the MspInit/MspDeInit user callbacks + using HAL_I2C_RegisterCallback() before calling HAL_I2C_DeInit() + or HAL_I2C_Init() function. + [..] + When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or + not defined, the callback registration feature is not available and all callbacks + are set to the corresponding weak functions. + + + + [..] + (@) You can refer to the I2C HAL driver header file for more useful macros + + @endverbatim + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f4xx_hal.h" + +/** @addtogroup STM32F4xx_HAL_Driver + * @{ + */ + +/** @defgroup I2C I2C + * @brief I2C HAL module driver + * @{ + */ + +#ifdef HAL_I2C_MODULE_ENABLED + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/** @defgroup I2C_Private_Define I2C Private Define + * @{ + */ +#define I2C_TIMEOUT_FLAG 35U /*!< Timeout 35 ms */ +#define I2C_TIMEOUT_BUSY_FLAG 25U /*!< Timeout 25 ms */ +#define I2C_TIMEOUT_STOP_FLAG 5U /*!< Timeout 5 ms */ +#define I2C_NO_OPTION_FRAME 0xFFFF0000U /*!< XferOptions default value */ + +/* Private define for @ref PreviousState usage */ +#define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | (uint32_t)HAL_I2C_STATE_BUSY_RX) & (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY)))) /*!< Mask State define, keep only RX and TX bits */ +#define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE)) /*!< Default Value */ +#define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | (uint32_t)HAL_I2C_MODE_MASTER)) /*!< Master Busy TX, combinaison of State LSB and Mode enum */ +#define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | (uint32_t)HAL_I2C_MODE_MASTER)) /*!< Master Busy RX, combinaison of State LSB and Mode enum */ +#define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | (uint32_t)HAL_I2C_MODE_SLAVE)) /*!< Slave Busy TX, combinaison of State LSB and Mode enum */ +#define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | (uint32_t)HAL_I2C_MODE_SLAVE)) /*!< Slave Busy RX, combinaison of State LSB and Mode enum */ + +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ +/** @addtogroup I2C_Private_Macros + * @{ + */ +/* Macro to get remaining data to transfer on DMA side */ +#define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) __HAL_DMA_GET_COUNTER(__HANDLE__) +/** + * @} + */ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ + +/** @defgroup I2C_Private_Functions I2C Private Functions + * @{ + */ +/* Private functions to handle DMA transfer */ +static void I2C_DMAXferCplt(DMA_HandleTypeDef *hdma); +static void I2C_DMAError(DMA_HandleTypeDef *hdma); +static void I2C_DMAAbort(DMA_HandleTypeDef *hdma); + +static void I2C_ITError(I2C_HandleTypeDef *hi2c); + +static HAL_StatusTypeDef I2C_MasterRequestWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Timeout, uint32_t Tickstart); +static HAL_StatusTypeDef I2C_MasterRequestRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Timeout, uint32_t Tickstart); +static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout, uint32_t Tickstart); +static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout, uint32_t Tickstart); + +/* Private functions to handle flags during polling transfer */ +static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagStatus Status, uint32_t Timeout, uint32_t Tickstart); +static HAL_StatusTypeDef I2C_WaitOnMasterAddressFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, uint32_t Timeout, uint32_t Tickstart); +static HAL_StatusTypeDef I2C_WaitOnTXEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart); +static HAL_StatusTypeDef I2C_WaitOnBTFFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart); +static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart); +static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart); +static HAL_StatusTypeDef I2C_WaitOnSTOPRequestThroughIT(I2C_HandleTypeDef *hi2c); +static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c); + +/* Private functions for I2C transfer IRQ handler */ +static void I2C_MasterTransmit_TXE(I2C_HandleTypeDef *hi2c); +static void I2C_MasterTransmit_BTF(I2C_HandleTypeDef *hi2c); +static void I2C_MasterReceive_RXNE(I2C_HandleTypeDef *hi2c); +static void I2C_MasterReceive_BTF(I2C_HandleTypeDef *hi2c); +static void I2C_Master_SB(I2C_HandleTypeDef *hi2c); +static void I2C_Master_ADD10(I2C_HandleTypeDef *hi2c); +static void I2C_Master_ADDR(I2C_HandleTypeDef *hi2c); + +static void I2C_SlaveTransmit_TXE(I2C_HandleTypeDef *hi2c); +static void I2C_SlaveTransmit_BTF(I2C_HandleTypeDef *hi2c); +static void I2C_SlaveReceive_RXNE(I2C_HandleTypeDef *hi2c); +static void I2C_SlaveReceive_BTF(I2C_HandleTypeDef *hi2c); +static void I2C_Slave_ADDR(I2C_HandleTypeDef *hi2c, uint32_t IT2Flags); +static void I2C_Slave_STOPF(I2C_HandleTypeDef *hi2c); +static void I2C_Slave_AF(I2C_HandleTypeDef *hi2c); + +static void I2C_MemoryTransmit_TXE_BTF(I2C_HandleTypeDef *hi2c); + +/* Private function to Convert Specific options */ +static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c); + +/* Private function to flush DR register */ +static void I2C_Flush_DR(I2C_HandleTypeDef *hi2c); +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup I2C_Exported_Functions I2C Exported Functions + * @{ + */ + +/** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions + * @brief Initialization and Configuration functions + * +@verbatim + =============================================================================== + ##### Initialization and de-initialization functions ##### + =============================================================================== + [..] This subsection provides a set of functions allowing to initialize and + deinitialize the I2Cx peripheral: + + (+) User must Implement HAL_I2C_MspInit() function in which he configures + all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC). + + (+) Call the function HAL_I2C_Init() to configure the selected device with + the selected configuration: + (++) Communication Speed + (++) Duty cycle + (++) Addressing mode + (++) Own Address 1 + (++) Dual Addressing mode + (++) Own Address 2 + (++) General call mode + (++) Nostretch mode + + (+) Call the function HAL_I2C_DeInit() to restore the default configuration + of the selected I2Cx peripheral. + +@endverbatim + * @{ + */ + +/** + * @brief Initializes the I2C according to the specified parameters + * in the I2C_InitTypeDef and initialize the associated handle. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) +{ + uint32_t freqrange; + uint32_t pclk1; + + /* Check the I2C handle allocation */ + if (hi2c == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); + assert_param(IS_I2C_CLOCK_SPEED(hi2c->Init.ClockSpeed)); + assert_param(IS_I2C_DUTY_CYCLE(hi2c->Init.DutyCycle)); + assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); + assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); + assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); + assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); + assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); + assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); + + if (hi2c->State == HAL_I2C_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + hi2c->Lock = HAL_UNLOCKED; + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + /* Init the I2C Callback settings */ + hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback */ + hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback */ + hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback */ + hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback */ + hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback */ + hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback */ + hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback */ + hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback */ + hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ + hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ + + if (hi2c->MspInitCallback == NULL) + { + hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ + } + + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + hi2c->MspInitCallback(hi2c); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + HAL_I2C_MspInit(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + + hi2c->State = HAL_I2C_STATE_BUSY; + + /* Disable the selected I2C peripheral */ + __HAL_I2C_DISABLE(hi2c); + + /*Reset I2C*/ + hi2c->Instance->CR1 |= I2C_CR1_SWRST; + hi2c->Instance->CR1 &= ~I2C_CR1_SWRST; + + /* Get PCLK1 frequency */ + pclk1 = HAL_RCC_GetPCLK1Freq(); + + /* Check the minimum allowed PCLK1 frequency */ + if (I2C_MIN_PCLK_FREQ(pclk1, hi2c->Init.ClockSpeed) == 1U) + { + return HAL_ERROR; + } + + /* Calculate frequency range */ + freqrange = I2C_FREQRANGE(pclk1); + + /*---------------------------- I2Cx CR2 Configuration ----------------------*/ + /* Configure I2Cx: Frequency range */ + MODIFY_REG(hi2c->Instance->CR2, I2C_CR2_FREQ, freqrange); + + /*---------------------------- I2Cx TRISE Configuration --------------------*/ + /* Configure I2Cx: Rise Time */ + MODIFY_REG(hi2c->Instance->TRISE, I2C_TRISE_TRISE, I2C_RISE_TIME(freqrange, hi2c->Init.ClockSpeed)); + + /*---------------------------- I2Cx CCR Configuration ----------------------*/ + /* Configure I2Cx: Speed */ + MODIFY_REG(hi2c->Instance->CCR, (I2C_CCR_FS | I2C_CCR_DUTY | I2C_CCR_CCR), I2C_SPEED(pclk1, hi2c->Init.ClockSpeed, hi2c->Init.DutyCycle)); + + /*---------------------------- I2Cx CR1 Configuration ----------------------*/ + /* Configure I2Cx: Generalcall and NoStretch mode */ + MODIFY_REG(hi2c->Instance->CR1, (I2C_CR1_ENGC | I2C_CR1_NOSTRETCH), (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode)); + + /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ + /* Configure I2Cx: Own Address1 and addressing mode */ + MODIFY_REG(hi2c->Instance->OAR1, (I2C_OAR1_ADDMODE | I2C_OAR1_ADD8_9 | I2C_OAR1_ADD1_7 | I2C_OAR1_ADD0), (hi2c->Init.AddressingMode | hi2c->Init.OwnAddress1)); + + /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ + /* Configure I2Cx: Dual mode and Own Address2 */ + MODIFY_REG(hi2c->Instance->OAR2, (I2C_OAR2_ENDUAL | I2C_OAR2_ADD2), (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2)); + + /* Enable the selected I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->Mode = HAL_I2C_MODE_NONE; + + return HAL_OK; +} + +/** + * @brief DeInitialize the I2C peripheral. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) +{ + /* Check the I2C handle allocation */ + if (hi2c == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); + + hi2c->State = HAL_I2C_STATE_BUSY; + + /* Disable the I2C Peripheral Clock */ + __HAL_I2C_DISABLE(hi2c); + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + if (hi2c->MspDeInitCallback == NULL) + { + hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ + } + + /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ + hi2c->MspDeInitCallback(hi2c); +#else + /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ + HAL_I2C_MspDeInit(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + hi2c->State = HAL_I2C_STATE_RESET; + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Release Lock */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; +} + +/** + * @brief Initialize the I2C MSP. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_MspInit could be implemented in the user file + */ +} + +/** + * @brief DeInitialize the I2C MSP. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_MspDeInit could be implemented in the user file + */ +} + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) +/** + * @brief Register a User I2C Callback + * To be used instead of the weak predefined callback + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param CallbackID ID of the callback to be registered + * This parameter can be one of the following values: + * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID + * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID + * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID + * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID + * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID + * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID + * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID + * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID + * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID + * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID + * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID + * @param pCallback pointer to the Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef CallbackID, pI2C_CallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + return HAL_ERROR; + } + /* Process locked */ + __HAL_LOCK(hi2c); + + if (HAL_I2C_STATE_READY == hi2c->State) + { + switch (CallbackID) + { + case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : + hi2c->MasterTxCpltCallback = pCallback; + break; + + case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : + hi2c->MasterRxCpltCallback = pCallback; + break; + + case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : + hi2c->SlaveTxCpltCallback = pCallback; + break; + + case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : + hi2c->SlaveRxCpltCallback = pCallback; + break; + + case HAL_I2C_LISTEN_COMPLETE_CB_ID : + hi2c->ListenCpltCallback = pCallback; + break; + + case HAL_I2C_MEM_TX_COMPLETE_CB_ID : + hi2c->MemTxCpltCallback = pCallback; + break; + + case HAL_I2C_MEM_RX_COMPLETE_CB_ID : + hi2c->MemRxCpltCallback = pCallback; + break; + + case HAL_I2C_ERROR_CB_ID : + hi2c->ErrorCallback = pCallback; + break; + + case HAL_I2C_ABORT_CB_ID : + hi2c->AbortCpltCallback = pCallback; + break; + + case HAL_I2C_MSPINIT_CB_ID : + hi2c->MspInitCallback = pCallback; + break; + + case HAL_I2C_MSPDEINIT_CB_ID : + hi2c->MspDeInitCallback = pCallback; + break; + + default : + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else if (HAL_I2C_STATE_RESET == hi2c->State) + { + switch (CallbackID) + { + case HAL_I2C_MSPINIT_CB_ID : + hi2c->MspInitCallback = pCallback; + break; + + case HAL_I2C_MSPDEINIT_CB_ID : + hi2c->MspDeInitCallback = pCallback; + break; + + default : + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else + { + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hi2c); + return status; +} + +/** + * @brief Unregister an I2C Callback + * I2C callback is redirected to the weak predefined callback + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param CallbackID ID of the callback to be unregistered + * This parameter can be one of the following values: + * This parameter can be one of the following values: + * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID + * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID + * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID + * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID + * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID + * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID + * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID + * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID + * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID + * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID + * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef CallbackID) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hi2c); + + if (HAL_I2C_STATE_READY == hi2c->State) + { + switch (CallbackID) + { + case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : + hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback */ + break; + + case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : + hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback */ + break; + + case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : + hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback */ + break; + + case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : + hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback */ + break; + + case HAL_I2C_LISTEN_COMPLETE_CB_ID : + hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback */ + break; + + case HAL_I2C_MEM_TX_COMPLETE_CB_ID : + hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback */ + break; + + case HAL_I2C_MEM_RX_COMPLETE_CB_ID : + hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback */ + break; + + case HAL_I2C_ERROR_CB_ID : + hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback */ + break; + + case HAL_I2C_ABORT_CB_ID : + hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ + break; + + case HAL_I2C_MSPINIT_CB_ID : + hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ + break; + + case HAL_I2C_MSPDEINIT_CB_ID : + hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ + break; + + default : + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else if (HAL_I2C_STATE_RESET == hi2c->State) + { + switch (CallbackID) + { + case HAL_I2C_MSPINIT_CB_ID : + hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ + break; + + case HAL_I2C_MSPDEINIT_CB_ID : + hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ + break; + + default : + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else + { + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hi2c); + return status; +} + +/** + * @brief Register the Slave Address Match I2C Callback + * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pCallback pointer to the Address Match Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + return HAL_ERROR; + } + /* Process locked */ + __HAL_LOCK(hi2c); + + if (HAL_I2C_STATE_READY == hi2c->State) + { + hi2c->AddrCallback = pCallback; + } + else + { + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hi2c); + return status; +} + +/** + * @brief UnRegister the Slave Address Match I2C Callback + * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined callback + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hi2c); + + if (HAL_I2C_STATE_READY == hi2c->State) + { + hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ + } + else + { + /* Update the error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hi2c); + return status; +} + +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + +/** + * @brief I2C data register flush process. + * @param hi2c I2C handle. + * @retval None + */ +static void I2C_Flush_DR(I2C_HandleTypeDef *hi2c) +{ + /* Write a dummy data in DR to clear TXE flag */ + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) != RESET) + { + hi2c->Instance->DR = 0x00U; + } +} + +/** + * @} + */ + +/** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions + * @brief Data transfers functions + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to manage the I2C data + transfers. + + (#) There are two modes of transfer: + (++) Blocking mode : The communication is performed in the polling mode. + The status of all data processing is returned by the same function + after finishing transfer. + (++) No-Blocking mode : The communication is performed using Interrupts + or DMA. These functions return the status of the transfer startup. + The end of the data processing will be indicated through the + dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when + using DMA mode. + + (#) Blocking mode functions are : + (++) HAL_I2C_Master_Transmit() + (++) HAL_I2C_Master_Receive() + (++) HAL_I2C_Slave_Transmit() + (++) HAL_I2C_Slave_Receive() + (++) HAL_I2C_Mem_Write() + (++) HAL_I2C_Mem_Read() + (++) HAL_I2C_IsDeviceReady() + + (#) No-Blocking mode functions with Interrupt are : + (++) HAL_I2C_Master_Transmit_IT() + (++) HAL_I2C_Master_Receive_IT() + (++) HAL_I2C_Slave_Transmit_IT() + (++) HAL_I2C_Slave_Receive_IT() + (++) HAL_I2C_Mem_Write_IT() + (++) HAL_I2C_Mem_Read_IT() + (++) HAL_I2C_Master_Seq_Transmit_IT() + (++) HAL_I2C_Master_Seq_Receive_IT() + (++) HAL_I2C_Slave_Seq_Transmit_IT() + (++) HAL_I2C_Slave_Seq_Receive_IT() + (++) HAL_I2C_EnableListen_IT() + (++) HAL_I2C_DisableListen_IT() + (++) HAL_I2C_Master_Abort_IT() + + (#) No-Blocking mode functions with DMA are : + (++) HAL_I2C_Master_Transmit_DMA() + (++) HAL_I2C_Master_Receive_DMA() + (++) HAL_I2C_Slave_Transmit_DMA() + (++) HAL_I2C_Slave_Receive_DMA() + (++) HAL_I2C_Mem_Write_DMA() + (++) HAL_I2C_Mem_Read_DMA() + (++) HAL_I2C_Master_Seq_Transmit_DMA() + (++) HAL_I2C_Master_Seq_Receive_DMA() + (++) HAL_I2C_Slave_Seq_Transmit_DMA() + (++) HAL_I2C_Slave_Seq_Receive_DMA() + + (#) A set of Transfer Complete Callbacks are provided in non Blocking mode: + (++) HAL_I2C_MasterTxCpltCallback() + (++) HAL_I2C_MasterRxCpltCallback() + (++) HAL_I2C_SlaveTxCpltCallback() + (++) HAL_I2C_SlaveRxCpltCallback() + (++) HAL_I2C_MemTxCpltCallback() + (++) HAL_I2C_MemRxCpltCallback() + (++) HAL_I2C_AddrCallback() + (++) HAL_I2C_ListenCpltCallback() + (++) HAL_I2C_ErrorCallback() + (++) HAL_I2C_AbortCpltCallback() + +@endverbatim + * @{ + */ + +/** + * @brief Transmits in master mode an amount of data in blocking mode. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout) +{ + /* Init tickstart for timeout management*/ + uint32_t tickstart = HAL_GetTick(); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Wait until BUSY flag is reset */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_OK) + { + return HAL_BUSY; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + + /* Send Slave Address */ + if (I2C_MasterRequestWrite(hi2c, DevAddress, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + while (hi2c->XferSize > 0U) + { + /* Wait until TXE flag is set */ + if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) + { + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + return HAL_ERROR; + } + + /* Write data to DR */ + hi2c->Instance->DR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + hi2c->XferSize--; + + if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) && (hi2c->XferSize != 0U)) + { + /* Write data to DR */ + hi2c->Instance->DR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + hi2c->XferSize--; + } + + /* Wait until BTF flag is set */ + if (I2C_WaitOnBTFFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) + { + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + return HAL_ERROR; + } + } + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receives in master mode an amount of data in blocking mode. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout) +{ + /* Init tickstart for timeout management*/ + uint32_t tickstart = HAL_GetTick(); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Wait until BUSY flag is reset */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_OK) + { + return HAL_BUSY; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + + /* Send Slave Address */ + if (I2C_MasterRequestRead(hi2c, DevAddress, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + if (hi2c->XferSize == 0U) + { + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + else if (hi2c->XferSize == 1U) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + else if (hi2c->XferSize == 2U) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Enable Pos */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + } + else + { + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + } + + while (hi2c->XferSize > 0U) + { + if (hi2c->XferSize <= 3U) + { + /* One byte */ + if (hi2c->XferSize == 1U) + { + /* Wait until RXNE flag is set */ + if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + } + /* Two bytes */ + else if (hi2c->XferSize == 2U) + { + /* Wait until BTF flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + } + /* 3 Last bytes */ + else + { + /* Wait until BTF flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + + /* Wait until BTF flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + } + } + else + { + /* Wait until RXNE flag is set */ + if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) + { + + if (hi2c->XferSize == 3U) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + } + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + } + } + } + + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Transmits in slave mode an amount of data in blocking mode. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t Timeout) +{ + /* Init tickstart for timeout management*/ + uint32_t tickstart = HAL_GetTick(); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + + /* Enable Address Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Wait until ADDR flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* If 10bit addressing mode is selected */ + if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) + { + /* Wait until ADDR flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + } + + while (hi2c->XferSize > 0U) + { + /* Wait until TXE flag is set */ + if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + /* Disable Address Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + return HAL_ERROR; + } + + /* Write data to DR */ + hi2c->Instance->DR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + hi2c->XferSize--; + + if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) && (hi2c->XferSize != 0U)) + { + /* Write data to DR */ + hi2c->Instance->DR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + hi2c->XferSize--; + } + } + + /* Wait until AF flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear AF flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Disable Address Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receive in slave mode an amount of data in blocking mode + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t Timeout) +{ + /* Init tickstart for timeout management*/ + uint32_t tickstart = HAL_GetTick(); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == (uint16_t)0)) + { + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + + /* Enable Address Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Wait until ADDR flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + while (hi2c->XferSize > 0U) + { + /* Wait until RXNE flag is set */ + if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + /* Disable Address Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + return HAL_ERROR; + } + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + + if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) && (hi2c->XferSize != 0U)) + { + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + } + } + + /* Wait until STOP flag is set */ + if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + /* Disable Address Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + return HAL_ERROR; + } + + /* Clear STOP flag */ + __HAL_I2C_CLEAR_STOPFLAG(hi2c); + + /* Disable Address Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size) +{ + __IO uint32_t count = 0U; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Wait until BUSY flag is reset */ + count = I2C_TIMEOUT_BUSY_FLAG * (SystemCoreClock / 25U / 1000U); + do + { + count--; + if (count == 0U) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + return HAL_BUSY; + } + } + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->Devaddress = DevAddress; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable EVT, BUF and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size) +{ + __IO uint32_t count = 0U; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Wait until BUSY flag is reset */ + count = I2C_TIMEOUT_BUSY_FLAG * (SystemCoreClock / 25U / 1000U); + do + { + count--; + if (count == 0U) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + return HAL_BUSY; + } + } + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->Devaddress = DevAddress; + + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable EVT, BUF and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) +{ + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + + /* Enable Address Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable EVT, BUF and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) +{ + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + + /* Enable Address Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable EVT, BUF and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Transmit in master mode an amount of data in non-blocking mode with DMA + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size) +{ + __IO uint32_t count = 0U; + HAL_StatusTypeDef dmaxferstatus; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Wait until BUSY flag is reset */ + count = I2C_TIMEOUT_BUSY_FLAG * (SystemCoreClock / 25U / 1000U); + do + { + count--; + if (count == 0U) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + return HAL_BUSY; + } + } + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->Devaddress = DevAddress; + + if (hi2c->XferSize > 0U) + { + if (hi2c->hdmatx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; + + /* Set the DMA error callback */ + hi2c->hdmatx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmatx->XferHalfCpltCallback = NULL; + hi2c->hdmatx->XferM1CpltCallback = NULL; + hi2c->hdmatx->XferM1HalfCpltCallback = NULL; + hi2c->hdmatx->XferAbortCallback = NULL; + + /* Enable the DMA stream */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->DR, hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable EVT and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); + + /* Enable DMA Request */ + SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable EVT, BUF and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + } + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receive in master mode an amount of data in non-blocking mode with DMA + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size) +{ + __IO uint32_t count = 0U; + HAL_StatusTypeDef dmaxferstatus; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Wait until BUSY flag is reset */ + count = I2C_TIMEOUT_BUSY_FLAG * (SystemCoreClock / 25U / 1000U); + do + { + count--; + if (count == 0U) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + return HAL_BUSY; + } + } + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->Devaddress = DevAddress; + + if (hi2c->XferSize > 0U) + { + if (hi2c->hdmarx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; + + /* Set the DMA error callback */ + hi2c->hdmarx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmarx->XferHalfCpltCallback = NULL; + hi2c->hdmarx->XferM1CpltCallback = NULL; + hi2c->hdmarx->XferM1HalfCpltCallback = NULL; + hi2c->hdmarx->XferAbortCallback = NULL; + + /* Enable the DMA stream */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuffPtr, hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable EVT and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); + + /* Enable DMA Request */ + SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable EVT, BUF and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + } + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) +{ + HAL_StatusTypeDef dmaxferstatus; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + + if (hi2c->hdmatx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; + + /* Set the DMA error callback */ + hi2c->hdmatx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmatx->XferHalfCpltCallback = NULL; + hi2c->hdmatx->XferM1CpltCallback = NULL; + hi2c->hdmatx->XferM1HalfCpltCallback = NULL; + hi2c->hdmatx->XferAbortCallback = NULL; + + /* Enable the DMA stream */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->DR, hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Enable Address Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable EVT and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); + + /* Enable DMA Request */ + hi2c->Instance->CR2 |= I2C_CR2_DMAEN; + + return HAL_OK; + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Receive in slave mode an amount of data in non-blocking mode with DMA + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) +{ + HAL_StatusTypeDef dmaxferstatus; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + + if (hi2c->hdmarx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; + + /* Set the DMA error callback */ + hi2c->hdmarx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmarx->XferHalfCpltCallback = NULL; + hi2c->hdmarx->XferM1CpltCallback = NULL; + hi2c->hdmarx->XferM1HalfCpltCallback = NULL; + hi2c->hdmarx->XferAbortCallback = NULL; + + /* Enable the DMA stream */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuffPtr, hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Enable Address Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable EVT and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); + + /* Enable DMA Request */ + SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + + return HAL_OK; + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Write an amount of data in blocking mode to a specific memory address + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout) +{ + /* Init tickstart for timeout management*/ + uint32_t tickstart = HAL_GetTick(); + + /* Check the parameters */ + assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Wait until BUSY flag is reset */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_OK) + { + return HAL_BUSY; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MEM; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + + /* Send Slave Address and Memory Address */ + if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + while (hi2c->XferSize > 0U) + { + /* Wait until TXE flag is set */ + if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) + { + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + return HAL_ERROR; + } + + /* Write data to DR */ + hi2c->Instance->DR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + + if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) && (hi2c->XferSize != 0U)) + { + /* Write data to DR */ + hi2c->Instance->DR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + } + } + + /* Wait until BTF flag is set */ + if (I2C_WaitOnBTFFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) + { + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + return HAL_ERROR; + } + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Read an amount of data in blocking mode from a specific memory address + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout) +{ + /* Init tickstart for timeout management*/ + uint32_t tickstart = HAL_GetTick(); + + /* Check the parameters */ + assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Wait until BUSY flag is reset */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_OK) + { + return HAL_BUSY; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MEM; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + + /* Send Slave Address and Memory Address */ + if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + if (hi2c->XferSize == 0U) + { + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + else if (hi2c->XferSize == 1U) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + else if (hi2c->XferSize == 2U) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Enable Pos */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + } + else + { + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + } + + while (hi2c->XferSize > 0U) + { + if (hi2c->XferSize <= 3U) + { + /* One byte */ + if (hi2c->XferSize == 1U) + { + /* Wait until RXNE flag is set */ + if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + } + /* Two bytes */ + else if (hi2c->XferSize == 2U) + { + /* Wait until BTF flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + } + /* 3 Last bytes */ + else + { + /* Wait until BTF flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + + /* Wait until BTF flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + } + } + else + { + /* Wait until RXNE flag is set */ + if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) + { + if (hi2c->XferSize == 3U) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + } + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferSize--; + hi2c->XferCount--; + } + } + } + + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory address + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size) +{ + __IO uint32_t count = 0U; + + /* Check the parameters */ + assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Wait until BUSY flag is reset */ + count = I2C_TIMEOUT_BUSY_FLAG * (SystemCoreClock / 25U / 1000U); + do + { + count--; + if (count == 0U) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + return HAL_BUSY; + } + } + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MEM; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->Devaddress = DevAddress; + hi2c->Memaddress = MemAddress; + hi2c->MemaddSize = MemAddSize; + hi2c->EventCount = 0U; + + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable EVT, BUF and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory address + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size) +{ + __IO uint32_t count = 0U; + + /* Check the parameters */ + assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Wait until BUSY flag is reset */ + count = I2C_TIMEOUT_BUSY_FLAG * (SystemCoreClock / 25U / 1000U); + do + { + count--; + if (count == 0U) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + return HAL_BUSY; + } + } + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MEM; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->Devaddress = DevAddress; + hi2c->Memaddress = MemAddress; + hi2c->MemaddSize = MemAddSize; + hi2c->EventCount = 0U; + + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + if (hi2c->XferSize > 0U) + { + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable EVT, BUF and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + } + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size) +{ + __IO uint32_t count = 0U; + HAL_StatusTypeDef dmaxferstatus; + + /* Init tickstart for timeout management*/ + uint32_t tickstart = HAL_GetTick(); + + /* Check the parameters */ + assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Wait until BUSY flag is reset */ + count = I2C_TIMEOUT_BUSY_FLAG * (SystemCoreClock / 25U / 1000U); + do + { + count--; + if (count == 0U) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + return HAL_BUSY; + } + } + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MEM; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->Devaddress = DevAddress; + hi2c->Memaddress = MemAddress; + hi2c->MemaddSize = MemAddSize; + hi2c->EventCount = 0U; + + if (hi2c->XferSize > 0U) + { + if (hi2c->hdmatx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; + + /* Set the DMA error callback */ + hi2c->hdmatx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmatx->XferHalfCpltCallback = NULL; + hi2c->hdmatx->XferM1CpltCallback = NULL; + hi2c->hdmatx->XferM1HalfCpltCallback = NULL; + hi2c->hdmatx->XferAbortCallback = NULL; + + /* Enable the DMA stream */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->DR, hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Send Slave Address and Memory Address */ + if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart) != HAL_OK) + { + /* Abort the ongoing DMA */ + dmaxferstatus = HAL_DMA_Abort_IT(hi2c->hdmatx); + + /* Prevent unused argument(s) compilation and MISRA warning */ + UNUSED(dmaxferstatus); + + /* Set the unused I2C DMA transfer complete callback to NULL */ + hi2c->hdmatx->XferCpltCallback = NULL; + + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + hi2c->XferSize = 0U; + hi2c->XferCount = 0U; + + /* Disable I2C peripheral to prevent dummy data in buffer */ + __HAL_I2C_DISABLE(hi2c); + + return HAL_ERROR; + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_ERR); + + /* Enable DMA Request */ + SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + + return HAL_OK; + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_SIZE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param pData Pointer to data buffer + * @param Size Amount of data to be read + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size) +{ + /* Init tickstart for timeout management*/ + uint32_t tickstart = HAL_GetTick(); + __IO uint32_t count = 0U; + HAL_StatusTypeDef dmaxferstatus; + + /* Check the parameters */ + assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Wait until BUSY flag is reset */ + count = I2C_TIMEOUT_BUSY_FLAG * (SystemCoreClock / 25U / 1000U); + do + { + count--; + if (count == 0U) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + return HAL_BUSY; + } + } + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MEM; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->Devaddress = DevAddress; + hi2c->Memaddress = MemAddress; + hi2c->MemaddSize = MemAddSize; + hi2c->EventCount = 0U; + + if (hi2c->XferSize > 0U) + { + if (hi2c->hdmarx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; + + /* Set the DMA error callback */ + hi2c->hdmarx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmarx->XferHalfCpltCallback = NULL; + hi2c->hdmarx->XferM1CpltCallback = NULL; + hi2c->hdmarx->XferM1HalfCpltCallback = NULL; + hi2c->hdmarx->XferAbortCallback = NULL; + + /* Enable the DMA stream */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuffPtr, hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Send Slave Address and Memory Address */ + if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart) != HAL_OK) + { + /* Abort the ongoing DMA */ + dmaxferstatus = HAL_DMA_Abort_IT(hi2c->hdmarx); + + /* Prevent unused argument(s) compilation and MISRA warning */ + UNUSED(dmaxferstatus); + + /* Set the unused I2C DMA transfer complete callback to NULL */ + hi2c->hdmarx->XferCpltCallback = NULL; + + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + hi2c->XferSize = 0U; + hi2c->XferCount = 0U; + + /* Disable I2C peripheral to prevent dummy data in buffer */ + __HAL_I2C_DISABLE(hi2c); + + return HAL_ERROR; + } + + if (hi2c->XferSize == 1U) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + } + else + { + /* Enable Last DMA bit */ + SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_ERR); + + /* Enable DMA Request */ + hi2c->Instance->CR2 |= I2C_CR2_DMAEN; + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + /* Send Slave Address and Memory Address */ + if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + + hi2c->State = HAL_I2C_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + } + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Checks if target device is ready for communication. + * @note This function is used with Memory devices + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param Trials Number of trials + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Trials, uint32_t Timeout) +{ + /* Get tick */ + uint32_t tickstart = HAL_GetTick(); + uint32_t I2C_Trials = 0U; + FlagStatus tmp1; + FlagStatus tmp2; + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Wait until BUSY flag is reset */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_OK) + { + return HAL_BUSY; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + + do + { + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + + /* Wait until SB flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, tickstart) != HAL_OK) + { + if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) + { + hi2c->ErrorCode = HAL_I2C_WRONG_START; + } + return HAL_TIMEOUT; + } + + /* Send slave address */ + hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); + + /* Wait until ADDR or AF flag are set */ + /* Get tick */ + tickstart = HAL_GetTick(); + + tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); + tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); + while ((hi2c->State != HAL_I2C_STATE_TIMEOUT) && (tmp1 == RESET) && (tmp2 == RESET)) + { + if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) + { + hi2c->State = HAL_I2C_STATE_TIMEOUT; + } + tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); + tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); + } + + hi2c->State = HAL_I2C_STATE_READY; + + /* Check if the ADDR flag has been set */ + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR) == SET) + { + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + + /* Clear ADDR Flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Wait until BUSY flag is reset */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + hi2c->State = HAL_I2C_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_OK; + } + else + { + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + + /* Clear AF Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Wait until BUSY flag is reset */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_OK) + { + return HAL_ERROR; + } + } + + /* Increment Trials */ + I2C_Trials++; + } + while (I2C_Trials < Trials); + + hi2c->State = HAL_I2C_STATE_READY; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Interrupt. + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XferOptions_definition + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions) +{ + __IO uint32_t Prev_State = 0x00U; + __IO uint32_t count = 0x00U; + + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Check Busy Flag only if FIRST call of Master interface */ + if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND_LAST_FRAME) || (XferOptions == I2C_FIRST_FRAME)) + { + /* Wait until BUSY flag is reset */ + count = I2C_TIMEOUT_BUSY_FLAG * (SystemCoreClock / 25U / 1000U); + do + { + count--; + if (count == 0U) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + return HAL_BUSY; + } + } + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = XferOptions; + hi2c->Devaddress = DevAddress; + + Prev_State = hi2c->PreviousState; + + /* If transfer direction not change and there is no request to start another frame, do not generate Restart Condition */ + /* Mean Previous state is same as current state */ + if ((Prev_State != I2C_STATE_MASTER_BUSY_TX) || (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 1)) + { + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable EVT, BUF and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA. + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XferOptions_definition + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions) +{ + __IO uint32_t Prev_State = 0x00U; + __IO uint32_t count = 0x00U; + HAL_StatusTypeDef dmaxferstatus; + + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Check Busy Flag only if FIRST call of Master interface */ + if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND_LAST_FRAME) || (XferOptions == I2C_FIRST_FRAME)) + { + /* Wait until BUSY flag is reset */ + count = I2C_TIMEOUT_BUSY_FLAG * (SystemCoreClock / 25U / 1000U); + do + { + count--; + if (count == 0U) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + return HAL_BUSY; + } + } + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = XferOptions; + hi2c->Devaddress = DevAddress; + + Prev_State = hi2c->PreviousState; + + if (hi2c->XferSize > 0U) + { + if (hi2c->hdmatx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; + + /* Set the DMA error callback */ + hi2c->hdmatx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmatx->XferHalfCpltCallback = NULL; + hi2c->hdmatx->XferAbortCallback = NULL; + + /* Enable the DMA stream */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->DR, hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* If transfer direction not change and there is no request to start another frame, do not generate Restart Condition */ + /* Mean Previous state is same as current state */ + if ((Prev_State != I2C_STATE_MASTER_BUSY_TX) || (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 1)) + { + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* If XferOptions is not associated to a new frame, mean no start bit is request, enable directly the DMA request */ + /* In other cases, DMA request is enabled after Slave address treatment in IRQHandler */ + if ((XferOptions == I2C_NEXT_FRAME) || (XferOptions == I2C_LAST_FRAME) || (XferOptions == I2C_LAST_FRAME_NO_STOP)) + { + /* Enable DMA Request */ + SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + } + + /* Enable EVT and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* If transfer direction not change and there is no request to start another frame, do not generate Restart Condition */ + /* Mean Previous state is same as current state */ + if ((Prev_State != I2C_STATE_MASTER_BUSY_TX) || (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 1)) + { + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable EVT, BUF and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + } + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Interrupt + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XferOptions_definition + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions) +{ + __IO uint32_t Prev_State = 0x00U; + __IO uint32_t count = 0U; + uint32_t enableIT = (I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Check Busy Flag only if FIRST call of Master interface */ + if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND_LAST_FRAME) || (XferOptions == I2C_FIRST_FRAME)) + { + /* Wait until BUSY flag is reset */ + count = I2C_TIMEOUT_BUSY_FLAG * (SystemCoreClock / 25U / 1000U); + do + { + count--; + if (count == 0U) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + return HAL_BUSY; + } + } + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = XferOptions; + hi2c->Devaddress = DevAddress; + + Prev_State = hi2c->PreviousState; + + if ((hi2c->XferCount == 2U) && ((XferOptions == I2C_LAST_FRAME) || (XferOptions == I2C_LAST_FRAME_NO_STOP))) + { + if (Prev_State == I2C_STATE_MASTER_BUSY_RX) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Enable Pos */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + /* Remove Enabling of IT_BUF, mean RXNE treatment, treat the 2 bytes through BTF */ + enableIT &= ~I2C_IT_BUF; + } + else + { + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + } + } + else + { + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + } + + /* If transfer direction not change and there is no request to start another frame, do not generate Restart Condition */ + /* Mean Previous state is same as current state */ + if ((Prev_State != I2C_STATE_MASTER_BUSY_RX) || (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 1)) + { + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable interrupts */ + __HAL_I2C_ENABLE_IT(hi2c, enableIT); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Sequential receive in master mode an amount of data in non-blocking mode with DMA + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XferOptions_definition + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions) +{ + __IO uint32_t Prev_State = 0x00U; + __IO uint32_t count = 0U; + uint32_t enableIT = (I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + HAL_StatusTypeDef dmaxferstatus; + + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + /* Check Busy Flag only if FIRST call of Master interface */ + if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND_LAST_FRAME) || (XferOptions == I2C_FIRST_FRAME)) + { + /* Wait until BUSY flag is reset */ + count = I2C_TIMEOUT_BUSY_FLAG * (SystemCoreClock / 25U / 1000U); + do + { + count--; + if (count == 0U) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + return HAL_BUSY; + } + } + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + /* Clear Last DMA bit */ + CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); + + hi2c->State = HAL_I2C_STATE_BUSY_RX; + hi2c->Mode = HAL_I2C_MODE_MASTER; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = XferOptions; + hi2c->Devaddress = DevAddress; + + Prev_State = hi2c->PreviousState; + + if (hi2c->XferSize > 0U) + { + if ((hi2c->XferCount == 2U) && ((XferOptions == I2C_LAST_FRAME) || (XferOptions == I2C_LAST_FRAME_NO_STOP))) + { + if (Prev_State == I2C_STATE_MASTER_BUSY_RX) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Enable Pos */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + /* Enable Last DMA bit */ + SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); + } + else + { + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + } + } + else + { + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + if ((XferOptions == I2C_LAST_FRAME) || (XferOptions == I2C_OTHER_AND_LAST_FRAME) || (XferOptions == I2C_LAST_FRAME_NO_STOP)) + { + /* Enable Last DMA bit */ + SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); + } + } + if (hi2c->hdmarx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; + + /* Set the DMA error callback */ + hi2c->hdmarx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmarx->XferHalfCpltCallback = NULL; + hi2c->hdmarx->XferAbortCallback = NULL; + + /* Enable the DMA stream */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuffPtr, hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + if (dmaxferstatus == HAL_OK) + { + /* If transfer direction not change and there is no request to start another frame, do not generate Restart Condition */ + /* Mean Previous state is same as current state */ + if ((Prev_State != I2C_STATE_MASTER_BUSY_RX) || (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 1)) + { + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + + /* Update interrupt for only EVT and ERR */ + enableIT = (I2C_IT_EVT | I2C_IT_ERR); + } + else + { + /* Update interrupt for only ERR */ + enableIT = I2C_IT_ERR; + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* If XferOptions is not associated to a new frame, mean no start bit is request, enable directly the DMA request */ + /* In other cases, DMA request is enabled after Slave address treatment in IRQHandler */ + if ((XferOptions == I2C_NEXT_FRAME) || (XferOptions == I2C_LAST_FRAME) || (XferOptions == I2C_LAST_FRAME_NO_STOP)) + { + /* Enable DMA Request */ + SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + } + + /* Enable EVT and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, enableIT); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* If transfer direction not change and there is no request to start another frame, do not generate Restart Condition */ + /* Mean Previous state is same as current state */ + if ((Prev_State != I2C_STATE_MASTER_BUSY_RX) || (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 1)) + { + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable interrupts */ + __HAL_I2C_ENABLE_IT(hi2c, enableIT); + } + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Sequential transmit in slave mode an amount of data in non-blocking mode with Interrupt + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XferOptions_definition + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions) +{ + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = XferOptions; + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable EVT, BUF and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Sequential transmit in slave mode an amount of data in non-blocking mode with DMA + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XferOptions_definition + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions) +{ + HAL_StatusTypeDef dmaxferstatus; + + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); + + /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ + /* and then toggle the HAL slave RX state to TX state */ + if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) + { + if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) + { + /* Abort DMA Xfer if any */ + if (hi2c->hdmarx != NULL) + { + CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + + /* Set the I2C DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; + + /* Abort DMA RX */ + if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) + { + /* Call Directly XferAbortCallback function in case of error */ + hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); + } + } + } + } + else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) + { + if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) + { + CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + + /* Abort DMA Xfer if any */ + if (hi2c->hdmatx != NULL) + { + /* Set the I2C DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; + + /* Abort DMA TX */ + if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) + { + /* Call Directly XferAbortCallback function in case of error */ + hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); + } + } + } + } + else + { + /* Nothing to do */ + } + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = XferOptions; + + if (hi2c->hdmatx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; + + /* Set the DMA error callback */ + hi2c->hdmatx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmatx->XferHalfCpltCallback = NULL; + hi2c->hdmatx->XferAbortCallback = NULL; + + /* Enable the DMA stream */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->DR, hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Enable Address Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable EVT and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); + + /* Enable DMA Request */ + hi2c->Instance->CR2 |= I2C_CR2_DMAEN; + + return HAL_OK; + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Sequential receive in slave mode an amount of data in non-blocking mode with Interrupt + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XferOptions_definition + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions) +{ + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = XferOptions; + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + + /* Enable EVT, BUF and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Sequential receive in slave mode an amount of data in non-blocking mode with DMA + * @note This interface allow to manage repeated start condition when a direction change during transfer + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param pData Pointer to data buffer + * @param Size Amount of data to be sent + * @param XferOptions Options of Transfer, value of @ref I2C_XferOptions_definition + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions) +{ + HAL_StatusTypeDef dmaxferstatus; + + /* Check the parameters */ + assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); + + if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) + { + if ((pData == NULL) || (Size == 0U)) + { + return HAL_ERROR; + } + + /* Process Locked */ + __HAL_LOCK(hi2c); + + /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); + + /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ + /* and then toggle the HAL slave RX state to TX state */ + if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) + { + if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) + { + /* Abort DMA Xfer if any */ + if (hi2c->hdmarx != NULL) + { + CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + + /* Set the I2C DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; + + /* Abort DMA RX */ + if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) + { + /* Call Directly XferAbortCallback function in case of error */ + hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); + } + } + } + } + else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) + { + if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) + { + CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + + /* Abort DMA Xfer if any */ + if (hi2c->hdmatx != NULL) + { + /* Set the I2C DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; + + /* Abort DMA TX */ + if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) + { + /* Call Directly XferAbortCallback function in case of error */ + hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); + } + } + } + } + else + { + /* Nothing to do */ + } + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Disable Pos */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + + hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; + hi2c->Mode = HAL_I2C_MODE_SLAVE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Prepare transfer parameters */ + hi2c->pBuffPtr = pData; + hi2c->XferCount = Size; + hi2c->XferSize = hi2c->XferCount; + hi2c->XferOptions = XferOptions; + + if (hi2c->hdmarx != NULL) + { + /* Set the I2C DMA transfer complete callback */ + hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; + + /* Set the DMA error callback */ + hi2c->hdmarx->XferErrorCallback = I2C_DMAError; + + /* Set the unused DMA callbacks to NULL */ + hi2c->hdmarx->XferHalfCpltCallback = NULL; + hi2c->hdmarx->XferAbortCallback = NULL; + + /* Enable the DMA stream */ + dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuffPtr, hi2c->XferSize); + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_LISTEN; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + if (dmaxferstatus == HAL_OK) + { + /* Enable Address Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Enable DMA Request */ + SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + + /* Note : The I2C interrupts must be enabled after unlocking current process + to avoid the risk of I2C interrupt handle execution before current + process unlock */ + /* Enable EVT and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); + + return HAL_OK; + } + else + { + /* Update I2C state */ + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Update I2C error code */ + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Enable the Address listen mode with Interrupt. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) +{ + if (hi2c->State == HAL_I2C_STATE_READY) + { + hi2c->State = HAL_I2C_STATE_LISTEN; + + /* Check if the I2C is already enabled */ + if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) + { + /* Enable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + } + + /* Enable Address Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Enable EVT and ERR interrupt */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Disable the Address listen mode with Interrupt. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) +{ + /* Declaration of tmp to prevent undefined behavior of volatile usage */ + uint32_t tmp; + + /* Disable Address listen mode only if a transfer is not ongoing */ + if (hi2c->State == HAL_I2C_STATE_LISTEN) + { + tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; + hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Disable Address Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Disable EVT and ERR interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Abort a master or memory I2C IT or DMA process communication with Interrupt. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) +{ + /* Declaration of temporary variables to prevent undefined behavior of volatile usage */ + HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; + + /* Prevent unused argument(s) compilation warning */ + UNUSED(DevAddress); + + /* Abort Master transfer during Receive or Transmit process */ + if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && ((CurrentMode == HAL_I2C_MODE_MASTER) || + (CurrentMode == HAL_I2C_MODE_MEM))) + { + /* Process Locked */ + __HAL_LOCK(hi2c); + + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_ABORT; + + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + + hi2c->XferCount = 0U; + + /* Disable EVT, BUF and ERR interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c); + + return HAL_OK; + } + else + { + /* Wrong usage of abort function */ + /* This function should be used only in case of abort monitored by master device */ + /* Or periphal is not in busy state, mean there is no active sequence to be abort */ + return HAL_ERROR; + } +} + +/** + * @} + */ + +/** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks + * @{ + */ + +/** + * @brief This function handles I2C event interrupt request. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) +{ + uint32_t sr1itflags; + uint32_t sr2itflags = 0U; + uint32_t itsources = READ_REG(hi2c->Instance->CR2); + uint32_t CurrentXferOptions = hi2c->XferOptions; + HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; + HAL_I2C_StateTypeDef CurrentState = hi2c->State; + + /* Master or Memory mode selected */ + if ((CurrentMode == HAL_I2C_MODE_MASTER) || (CurrentMode == HAL_I2C_MODE_MEM)) + { + sr2itflags = READ_REG(hi2c->Instance->SR2); + sr1itflags = READ_REG(hi2c->Instance->SR1); + + /* Exit IRQ event until Start Bit detected in case of Other frame requested */ + if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_SB) == RESET) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(CurrentXferOptions) == 1U)) + { + return; + } + + /* SB Set ----------------------------------------------------------------*/ + if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_SB) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_EVT) != RESET)) + { + /* Convert OTHER_xxx XferOptions if any */ + I2C_ConvertOtherXferOptions(hi2c); + + I2C_Master_SB(hi2c); + } + /* ADD10 Set -------------------------------------------------------------*/ + else if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_ADD10) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_EVT) != RESET)) + { + I2C_Master_ADD10(hi2c); + } + /* ADDR Set --------------------------------------------------------------*/ + else if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_ADDR) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_EVT) != RESET)) + { + I2C_Master_ADDR(hi2c); + } + /* I2C in mode Transmitter -----------------------------------------------*/ + else if (I2C_CHECK_FLAG(sr2itflags, I2C_FLAG_TRA) != RESET) + { + /* Do not check buffer and BTF flag if a Xfer DMA is on going */ + if (READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) != I2C_CR2_DMAEN) + { + /* TXE set and BTF reset -----------------------------------------------*/ + if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_TXE) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_BUF) != RESET) && (I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_BTF) == RESET)) + { + I2C_MasterTransmit_TXE(hi2c); + } + /* BTF set -------------------------------------------------------------*/ + else if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_BTF) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_EVT) != RESET)) + { + if (CurrentState == HAL_I2C_STATE_BUSY_TX) + { + I2C_MasterTransmit_BTF(hi2c); + } + else /* HAL_I2C_MODE_MEM */ + { + if (CurrentMode == HAL_I2C_MODE_MEM) + { + I2C_MemoryTransmit_TXE_BTF(hi2c); + } + } + } + else + { + /* Do nothing */ + } + } + } + /* I2C in mode Receiver --------------------------------------------------*/ + else + { + /* Do not check buffer and BTF flag if a Xfer DMA is on going */ + if (READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) != I2C_CR2_DMAEN) + { + /* RXNE set and BTF reset -----------------------------------------------*/ + if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_RXNE) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_BUF) != RESET) && (I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_BTF) == RESET)) + { + I2C_MasterReceive_RXNE(hi2c); + } + /* BTF set -------------------------------------------------------------*/ + else if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_BTF) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_EVT) != RESET)) + { + I2C_MasterReceive_BTF(hi2c); + } + else + { + /* Do nothing */ + } + } + } + } + /* Slave mode selected */ + else + { + /* If an error is detected, read only SR1 register to prevent */ + /* a clear of ADDR flags by reading SR2 after reading SR1 in Error treatment */ + if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) + { + sr1itflags = READ_REG(hi2c->Instance->SR1); + } + else + { + sr2itflags = READ_REG(hi2c->Instance->SR2); + sr1itflags = READ_REG(hi2c->Instance->SR1); + } + + /* ADDR set --------------------------------------------------------------*/ + if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_ADDR) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_EVT) != RESET)) + { + /* Now time to read SR2, this will clear ADDR flag automatically */ + if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) + { + sr2itflags = READ_REG(hi2c->Instance->SR2); + } + I2C_Slave_ADDR(hi2c, sr2itflags); + } + /* STOPF set --------------------------------------------------------------*/ + else if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_EVT) != RESET)) + { + I2C_Slave_STOPF(hi2c); + } + /* I2C in mode Transmitter -----------------------------------------------*/ + else if ((CurrentState == HAL_I2C_STATE_BUSY_TX) || (CurrentState == HAL_I2C_STATE_BUSY_TX_LISTEN)) + { + /* TXE set and BTF reset -----------------------------------------------*/ + if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_TXE) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_BUF) != RESET) && (I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_BTF) == RESET)) + { + I2C_SlaveTransmit_TXE(hi2c); + } + /* BTF set -------------------------------------------------------------*/ + else if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_BTF) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_EVT) != RESET)) + { + I2C_SlaveTransmit_BTF(hi2c); + } + else + { + /* Do nothing */ + } + } + /* I2C in mode Receiver --------------------------------------------------*/ + else + { + /* RXNE set and BTF reset ----------------------------------------------*/ + if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_RXNE) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_BUF) != RESET) && (I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_BTF) == RESET)) + { + I2C_SlaveReceive_RXNE(hi2c); + } + /* BTF set -------------------------------------------------------------*/ + else if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_BTF) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_EVT) != RESET)) + { + I2C_SlaveReceive_BTF(hi2c); + } + else + { + /* Do nothing */ + } + } + } +} + +/** + * @brief This function handles I2C error interrupt request. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) +{ + HAL_I2C_ModeTypeDef tmp1; + uint32_t tmp2; + HAL_I2C_StateTypeDef tmp3; + uint32_t tmp4; + uint32_t sr1itflags = READ_REG(hi2c->Instance->SR1); + uint32_t itsources = READ_REG(hi2c->Instance->CR2); + uint32_t error = HAL_I2C_ERROR_NONE; + HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; + + /* I2C Bus error interrupt occurred ----------------------------------------*/ + if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_BERR) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERR) != RESET)) + { + error |= HAL_I2C_ERROR_BERR; + + /* Clear BERR flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); + } + + /* I2C Arbitration Lost error interrupt occurred ---------------------------*/ + if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_ARLO) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERR) != RESET)) + { + error |= HAL_I2C_ERROR_ARLO; + + /* Clear ARLO flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); + } + + /* I2C Acknowledge failure error interrupt occurred ------------------------*/ + if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERR) != RESET)) + { + tmp1 = CurrentMode; + tmp2 = hi2c->XferCount; + tmp3 = hi2c->State; + tmp4 = hi2c->PreviousState; + if ((tmp1 == HAL_I2C_MODE_SLAVE) && (tmp2 == 0U) && \ + ((tmp3 == HAL_I2C_STATE_BUSY_TX) || (tmp3 == HAL_I2C_STATE_BUSY_TX_LISTEN) || \ + ((tmp3 == HAL_I2C_STATE_LISTEN) && (tmp4 == I2C_STATE_SLAVE_BUSY_TX)))) + { + I2C_Slave_AF(hi2c); + } + else + { + /* Clear AF flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + error |= HAL_I2C_ERROR_AF; + + /* Do not generate a STOP in case of Slave receive non acknowledge during transfer (mean not at the end of transfer) */ + if ((CurrentMode == HAL_I2C_MODE_MASTER) || (CurrentMode == HAL_I2C_MODE_MEM)) + { + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + } + } + + /* I2C Over-Run/Under-Run interrupt occurred -------------------------------*/ + if ((I2C_CHECK_FLAG(sr1itflags, I2C_FLAG_OVR) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERR) != RESET)) + { + error |= HAL_I2C_ERROR_OVR; + /* Clear OVR flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); + } + + /* Call the Error Callback in case of Error detected -----------------------*/ + if (error != HAL_I2C_ERROR_NONE) + { + hi2c->ErrorCode |= error; + I2C_ITError(hi2c); + } +} + +/** + * @brief Master Tx Transfer completed callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_MasterTxCpltCallback could be implemented in the user file + */ +} + +/** + * @brief Master Rx Transfer completed callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_MasterRxCpltCallback could be implemented in the user file + */ +} + +/** @brief Slave Tx Transfer completed callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file + */ +} + +/** + * @brief Slave Rx Transfer completed callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file + */ +} + +/** + * @brief Slave Address Match callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XferDirection_definition + * @param AddrMatchCode Address Match Code + * @retval None + */ +__weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + UNUSED(TransferDirection); + UNUSED(AddrMatchCode); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_AddrCallback() could be implemented in the user file + */ +} + +/** + * @brief Listen Complete callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_ListenCpltCallback() could be implemented in the user file + */ +} + +/** + * @brief Memory Tx Transfer completed callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_MemTxCpltCallback could be implemented in the user file + */ +} + +/** + * @brief Memory Rx Transfer completed callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_MemRxCpltCallback could be implemented in the user file + */ +} + +/** + * @brief I2C error callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_ErrorCallback could be implemented in the user file + */ +} + +/** + * @brief I2C abort callback. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval None + */ +__weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hi2c); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_I2C_AbortCpltCallback could be implemented in the user file + */ +} + +/** + * @} + */ + +/** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions + * @brief Peripheral State, Mode and Error functions + * +@verbatim + =============================================================================== + ##### Peripheral State, Mode and Error functions ##### + =============================================================================== + [..] + This subsection permit to get in run-time the status of the peripheral + and the data flow. + +@endverbatim + * @{ + */ + +/** + * @brief Return the I2C handle state. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval HAL state + */ +HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c) +{ + /* Return I2C handle state */ + return hi2c->State; +} + +/** + * @brief Returns the I2C Master, Slave, Memory or no mode. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval HAL mode + */ +HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c) +{ + return hi2c->Mode; +} + +/** + * @brief Return the I2C error code. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval I2C Error Code + */ +uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c) +{ + return hi2c->ErrorCode; +} + +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup I2C_Private_Functions + * @{ + */ + +/** + * @brief Handle TXE flag for Master + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval None + */ +static void I2C_MasterTransmit_TXE(I2C_HandleTypeDef *hi2c) +{ + /* Declaration of temporary variables to prevent undefined behavior of volatile usage */ + HAL_I2C_StateTypeDef CurrentState = hi2c->State; + HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; + uint32_t CurrentXferOptions = hi2c->XferOptions; + + if ((hi2c->XferSize == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX)) + { + /* Call TxCpltCallback() directly if no stop mode is set */ + if ((CurrentXferOptions != I2C_FIRST_AND_LAST_FRAME) && (CurrentXferOptions != I2C_LAST_FRAME) && (CurrentXferOptions != I2C_NO_OPTION_FRAME)) + { + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MasterTxCpltCallback(hi2c); +#else + HAL_I2C_MasterTxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else /* Generate Stop condition then Call TxCpltCallback() */ + { + /* Disable EVT, BUF and ERR interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + + if (hi2c->Mode == HAL_I2C_MODE_MEM) + { + hi2c->Mode = HAL_I2C_MODE_NONE; +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MemTxCpltCallback(hi2c); +#else + HAL_I2C_MemTxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + hi2c->Mode = HAL_I2C_MODE_NONE; +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MasterTxCpltCallback(hi2c); +#else + HAL_I2C_MasterTxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + } + } + else if ((CurrentState == HAL_I2C_STATE_BUSY_TX) || \ + ((CurrentMode == HAL_I2C_MODE_MEM) && (CurrentState == HAL_I2C_STATE_BUSY_RX))) + { + if (hi2c->XferCount == 0U) + { + /* Disable BUF interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); + } + else + { + if (hi2c->Mode == HAL_I2C_MODE_MEM) + { + I2C_MemoryTransmit_TXE_BTF(hi2c); + } + else + { + /* Write data to DR */ + hi2c->Instance->DR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + } + } + } + else + { + /* Do nothing */ + } +} + +/** + * @brief Handle BTF flag for Master transmitter + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval None + */ +static void I2C_MasterTransmit_BTF(I2C_HandleTypeDef *hi2c) +{ + /* Declaration of temporary variables to prevent undefined behavior of volatile usage */ + uint32_t CurrentXferOptions = hi2c->XferOptions; + + if (hi2c->State == HAL_I2C_STATE_BUSY_TX) + { + if (hi2c->XferCount != 0U) + { + /* Write data to DR */ + hi2c->Instance->DR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + } + else + { + /* Call TxCpltCallback() directly if no stop mode is set */ + if ((CurrentXferOptions != I2C_FIRST_AND_LAST_FRAME) && (CurrentXferOptions != I2C_LAST_FRAME) && (CurrentXferOptions != I2C_NO_OPTION_FRAME)) + { + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MasterTxCpltCallback(hi2c); +#else + HAL_I2C_MasterTxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else /* Generate Stop condition then Call TxCpltCallback() */ + { + /* Disable EVT, BUF and ERR interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + if (hi2c->Mode == HAL_I2C_MODE_MEM) + { + hi2c->Mode = HAL_I2C_MODE_NONE; +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MemTxCpltCallback(hi2c); +#else + HAL_I2C_MemTxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + hi2c->Mode = HAL_I2C_MODE_NONE; + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MasterTxCpltCallback(hi2c); +#else + HAL_I2C_MasterTxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + } + } + } + else + { + /* Do nothing */ + } +} + +/** + * @brief Handle TXE and BTF flag for Memory transmitter + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval None + */ +static void I2C_MemoryTransmit_TXE_BTF(I2C_HandleTypeDef *hi2c) +{ + /* Declaration of temporary variables to prevent undefined behavior of volatile usage */ + HAL_I2C_StateTypeDef CurrentState = hi2c->State; + + if (hi2c->EventCount == 0U) + { + /* If Memory address size is 8Bit */ + if (hi2c->MemaddSize == I2C_MEMADD_SIZE_8BIT) + { + /* Send Memory Address */ + hi2c->Instance->DR = I2C_MEM_ADD_LSB(hi2c->Memaddress); + + hi2c->EventCount += 2U; + } + /* If Memory address size is 16Bit */ + else + { + /* Send MSB of Memory Address */ + hi2c->Instance->DR = I2C_MEM_ADD_MSB(hi2c->Memaddress); + + hi2c->EventCount++; + } + } + else if (hi2c->EventCount == 1U) + { + /* Send LSB of Memory Address */ + hi2c->Instance->DR = I2C_MEM_ADD_LSB(hi2c->Memaddress); + + hi2c->EventCount++; + } + else if (hi2c->EventCount == 2U) + { + if (CurrentState == HAL_I2C_STATE_BUSY_RX) + { + /* Generate Restart */ + hi2c->Instance->CR1 |= I2C_CR1_START; + + hi2c->EventCount++; + } + else if ((hi2c->XferCount > 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX)) + { + /* Write data to DR */ + hi2c->Instance->DR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + } + else if ((hi2c->XferCount == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX)) + { + /* Generate Stop condition then Call TxCpltCallback() */ + /* Disable EVT, BUF and ERR interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MemTxCpltCallback(hi2c); +#else + HAL_I2C_MemTxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + /* Do nothing */ + } + } + else + { + /* Clear TXE and BTF flags */ + I2C_Flush_DR(hi2c); + } +} + +/** + * @brief Handle RXNE flag for Master + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval None + */ +static void I2C_MasterReceive_RXNE(I2C_HandleTypeDef *hi2c) +{ + if (hi2c->State == HAL_I2C_STATE_BUSY_RX) + { + uint32_t tmp; + uint32_t CurrentXferOptions; + + CurrentXferOptions = hi2c->XferOptions; + tmp = hi2c->XferCount; + if (tmp > 3U) + { + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + + if (hi2c->XferCount == (uint16_t)3) + { + /* Disable BUF interrupt, this help to treat correctly the last 4 bytes + on BTF subroutine */ + /* Disable BUF interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); + } + } + else if ((hi2c->XferOptions != I2C_FIRST_AND_NEXT_FRAME) && ((tmp == 1U) || (tmp == 0U))) + { + if (I2C_WaitOnSTOPRequestThroughIT(hi2c) == HAL_OK) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Disable EVT, BUF and ERR interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + + hi2c->State = HAL_I2C_STATE_READY; + + if (hi2c->Mode == HAL_I2C_MODE_MEM) + { + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->PreviousState = I2C_STATE_NONE; + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MemRxCpltCallback(hi2c); +#else + HAL_I2C_MemRxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + hi2c->Mode = HAL_I2C_MODE_NONE; + if ((CurrentXferOptions == I2C_FIRST_AND_LAST_FRAME) || (CurrentXferOptions == I2C_LAST_FRAME)) + { + hi2c->PreviousState = I2C_STATE_NONE; + } + else + { + hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; + } + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MasterRxCpltCallback(hi2c); +#else + HAL_I2C_MasterRxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + } + else + { + /* Disable EVT, BUF and ERR interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Call user error callback */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->ErrorCallback(hi2c); +#else + HAL_I2C_ErrorCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + } + else + { + /* Disable BUF interrupt, this help to treat correctly the last 2 bytes + on BTF subroutine if there is a reception delay between N-1 and N byte */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); + } + } +} + +/** + * @brief Handle BTF flag for Master receiver + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval None + */ +static void I2C_MasterReceive_BTF(I2C_HandleTypeDef *hi2c) +{ + /* Declaration of temporary variables to prevent undefined behavior of volatile usage */ + uint32_t CurrentXferOptions = hi2c->XferOptions; + + if (hi2c->XferCount == 4U) + { + /* Disable BUF interrupt, this help to treat correctly the last 2 bytes + on BTF subroutine if there is a reception delay between N-1 and N byte */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + } + else if (hi2c->XferCount == 3U) + { + /* Disable BUF interrupt, this help to treat correctly the last 2 bytes + on BTF subroutine if there is a reception delay between N-1 and N byte */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); + + if ((CurrentXferOptions != I2C_NEXT_FRAME) && (CurrentXferOptions != I2C_FIRST_AND_NEXT_FRAME)) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + } + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + } + else if (hi2c->XferCount == 2U) + { + /* Prepare next transfer or stop current transfer */ + if ((CurrentXferOptions == I2C_FIRST_FRAME) || (CurrentXferOptions == I2C_LAST_FRAME_NO_STOP)) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + } + else if ((CurrentXferOptions == I2C_NEXT_FRAME) || (CurrentXferOptions == I2C_FIRST_AND_NEXT_FRAME)) + { + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + } + else if (CurrentXferOptions != I2C_LAST_FRAME_NO_STOP) + { + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + else + { + /* Do nothing */ + } + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + + /* Disable EVT and ERR interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); + + hi2c->State = HAL_I2C_STATE_READY; + if (hi2c->Mode == HAL_I2C_MODE_MEM) + { + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->PreviousState = I2C_STATE_NONE; +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MemRxCpltCallback(hi2c); +#else + HAL_I2C_MemRxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + hi2c->Mode = HAL_I2C_MODE_NONE; + if ((CurrentXferOptions == I2C_FIRST_AND_LAST_FRAME) || (CurrentXferOptions == I2C_LAST_FRAME)) + { + hi2c->PreviousState = I2C_STATE_NONE; + } + else + { + hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; + } +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MasterRxCpltCallback(hi2c); +#else + HAL_I2C_MasterRxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + } + else + { + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + } +} + +/** + * @brief Handle SB flag for Master + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval None + */ +static void I2C_Master_SB(I2C_HandleTypeDef *hi2c) +{ + if (hi2c->Mode == HAL_I2C_MODE_MEM) + { + if (hi2c->EventCount == 0U) + { + /* Send slave address */ + hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(hi2c->Devaddress); + } + else + { + hi2c->Instance->DR = I2C_7BIT_ADD_READ(hi2c->Devaddress); + } + } + else + { + if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) + { + /* Send slave 7 Bits address */ + if (hi2c->State == HAL_I2C_STATE_BUSY_TX) + { + hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(hi2c->Devaddress); + } + else + { + hi2c->Instance->DR = I2C_7BIT_ADD_READ(hi2c->Devaddress); + } + + if (((hi2c->hdmatx != NULL) && (hi2c->hdmatx->XferCpltCallback != NULL)) + || ((hi2c->hdmarx != NULL) && (hi2c->hdmarx->XferCpltCallback != NULL))) + { + /* Enable DMA Request */ + SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + } + } + else + { + if (hi2c->EventCount == 0U) + { + /* Send header of slave address */ + hi2c->Instance->DR = I2C_10BIT_HEADER_WRITE(hi2c->Devaddress); + } + else if (hi2c->EventCount == 1U) + { + /* Send header of slave address */ + hi2c->Instance->DR = I2C_10BIT_HEADER_READ(hi2c->Devaddress); + } + else + { + /* Do nothing */ + } + } + } +} + +/** + * @brief Handle ADD10 flag for Master + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval None + */ +static void I2C_Master_ADD10(I2C_HandleTypeDef *hi2c) +{ + /* Send slave address */ + hi2c->Instance->DR = I2C_10BIT_ADDRESS(hi2c->Devaddress); + + if (((hi2c->hdmatx != NULL) && (hi2c->hdmatx->XferCpltCallback != NULL)) + || ((hi2c->hdmarx != NULL) && (hi2c->hdmarx->XferCpltCallback != NULL))) + { + /* Enable DMA Request */ + SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + } +} + +/** + * @brief Handle ADDR flag for Master + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval None + */ +static void I2C_Master_ADDR(I2C_HandleTypeDef *hi2c) +{ + /* Declaration of temporary variable to prevent undefined behavior of volatile usage */ + HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; + uint32_t CurrentXferOptions = hi2c->XferOptions; + uint32_t Prev_State = hi2c->PreviousState; + + if (hi2c->State == HAL_I2C_STATE_BUSY_RX) + { + if ((hi2c->EventCount == 0U) && (CurrentMode == HAL_I2C_MODE_MEM)) + { + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + } + else if ((hi2c->EventCount == 0U) && (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)) + { + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Generate Restart */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + + hi2c->EventCount++; + } + else + { + if (hi2c->XferCount == 0U) + { + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + else if (hi2c->XferCount == 1U) + { + if (CurrentXferOptions == I2C_NO_OPTION_FRAME) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + } + else + { + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + } + /* Prepare next transfer or stop current transfer */ + else if ((CurrentXferOptions != I2C_FIRST_AND_LAST_FRAME) && (CurrentXferOptions != I2C_LAST_FRAME) \ + && ((Prev_State != I2C_STATE_MASTER_BUSY_RX) || (CurrentXferOptions == I2C_FIRST_FRAME))) + { + if ((CurrentXferOptions != I2C_NEXT_FRAME) && (CurrentXferOptions != I2C_FIRST_AND_NEXT_FRAME) && (CurrentXferOptions != I2C_LAST_FRAME_NO_STOP)) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + } + else + { + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + } + else + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + } + else if (hi2c->XferCount == 2U) + { + if ((CurrentXferOptions != I2C_NEXT_FRAME) && (CurrentXferOptions != I2C_FIRST_AND_NEXT_FRAME) && (CurrentXferOptions != I2C_LAST_FRAME_NO_STOP)) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Enable Pos */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); + } + else + { + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + } + + if (((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) && ((CurrentXferOptions == I2C_NO_OPTION_FRAME) || (CurrentXferOptions == I2C_FIRST_FRAME) || (CurrentXferOptions == I2C_FIRST_AND_LAST_FRAME) || (CurrentXferOptions == I2C_LAST_FRAME_NO_STOP) || (CurrentXferOptions == I2C_LAST_FRAME))) + { + /* Enable Last DMA bit */ + SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + } + else + { + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + if (((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) && ((CurrentXferOptions == I2C_NO_OPTION_FRAME) || (CurrentXferOptions == I2C_FIRST_FRAME) || (CurrentXferOptions == I2C_FIRST_AND_LAST_FRAME) || (CurrentXferOptions == I2C_LAST_FRAME_NO_STOP) || (CurrentXferOptions == I2C_LAST_FRAME))) + { + /* Enable Last DMA bit */ + SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + } + + /* Reset Event counter */ + hi2c->EventCount = 0U; + } + } + else + { + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + } +} + +/** + * @brief Handle TXE flag for Slave + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval None + */ +static void I2C_SlaveTransmit_TXE(I2C_HandleTypeDef *hi2c) +{ + /* Declaration of temporary variables to prevent undefined behavior of volatile usage */ + HAL_I2C_StateTypeDef CurrentState = hi2c->State; + + if (hi2c->XferCount != 0U) + { + /* Write data to DR */ + hi2c->Instance->DR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + + if ((hi2c->XferCount == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX_LISTEN)) + { + /* Last Byte is received, disable Interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); + + /* Set state at HAL_I2C_STATE_LISTEN */ + hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; + hi2c->State = HAL_I2C_STATE_LISTEN; + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->SlaveTxCpltCallback(hi2c); +#else + HAL_I2C_SlaveTxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + } +} + +/** + * @brief Handle BTF flag for Slave transmitter + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval None + */ +static void I2C_SlaveTransmit_BTF(I2C_HandleTypeDef *hi2c) +{ + if (hi2c->XferCount != 0U) + { + /* Write data to DR */ + hi2c->Instance->DR = *hi2c->pBuffPtr; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + } +} + +/** + * @brief Handle RXNE flag for Slave + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval None + */ +static void I2C_SlaveReceive_RXNE(I2C_HandleTypeDef *hi2c) +{ + /* Declaration of temporary variables to prevent undefined behavior of volatile usage */ + HAL_I2C_StateTypeDef CurrentState = hi2c->State; + + if (hi2c->XferCount != 0U) + { + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + + if ((hi2c->XferCount == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_RX_LISTEN)) + { + /* Last Byte is received, disable Interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); + + /* Set state at HAL_I2C_STATE_LISTEN */ + hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; + hi2c->State = HAL_I2C_STATE_LISTEN; + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->SlaveRxCpltCallback(hi2c); +#else + HAL_I2C_SlaveRxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + } +} + +/** + * @brief Handle BTF flag for Slave receiver + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval None + */ +static void I2C_SlaveReceive_BTF(I2C_HandleTypeDef *hi2c) +{ + if (hi2c->XferCount != 0U) + { + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + } +} + +/** + * @brief Handle ADD flag for Slave + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @param IT2Flags Interrupt2 flags to handle. + * @retval None + */ +static void I2C_Slave_ADDR(I2C_HandleTypeDef *hi2c, uint32_t IT2Flags) +{ + uint8_t TransferDirection = I2C_DIRECTION_RECEIVE; + uint16_t SlaveAddrCode; + + if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) + { + /* Disable BUF interrupt, BUF enabling is manage through slave specific interface */ + __HAL_I2C_DISABLE_IT(hi2c, (I2C_IT_BUF)); + + /* Transfer Direction requested by Master */ + if (I2C_CHECK_FLAG(IT2Flags, I2C_FLAG_TRA) == RESET) + { + TransferDirection = I2C_DIRECTION_TRANSMIT; + } + + if (I2C_CHECK_FLAG(IT2Flags, I2C_FLAG_DUALF) == RESET) + { + SlaveAddrCode = (uint16_t)hi2c->Init.OwnAddress1; + } + else + { + SlaveAddrCode = (uint16_t)hi2c->Init.OwnAddress2; + } + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + /* Call Slave Addr callback */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->AddrCallback(hi2c, TransferDirection, SlaveAddrCode); +#else + HAL_I2C_AddrCallback(hi2c, TransferDirection, SlaveAddrCode); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + } +} + +/** + * @brief Handle STOPF flag for Slave + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval None + */ +static void I2C_Slave_STOPF(I2C_HandleTypeDef *hi2c) +{ + /* Declaration of temporary variable to prevent undefined behavior of volatile usage */ + HAL_I2C_StateTypeDef CurrentState = hi2c->State; + + /* Disable EVT, BUF and ERR interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + /* Clear STOPF flag */ + __HAL_I2C_CLEAR_STOPFLAG(hi2c); + + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* If a DMA is ongoing, Update handle size context */ + if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) + { + if ((CurrentState == HAL_I2C_STATE_BUSY_RX) || (CurrentState == HAL_I2C_STATE_BUSY_RX_LISTEN)) + { + hi2c->XferCount = (uint16_t)(I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx)); + + if (hi2c->XferCount != 0U) + { + /* Set ErrorCode corresponding to a Non-Acknowledge */ + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + } + + /* Disable, stop the current DMA */ + CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + + /* Abort DMA Xfer if any */ + if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) + { + /* Set the I2C DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; + + /* Abort DMA RX */ + if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) + { + /* Call Directly XferAbortCallback function in case of error */ + hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); + } + } + } + else + { + hi2c->XferCount = (uint16_t)(I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx)); + + if (hi2c->XferCount != 0U) + { + /* Set ErrorCode corresponding to a Non-Acknowledge */ + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + } + + /* Disable, stop the current DMA */ + CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + + /* Abort DMA Xfer if any */ + if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) + { + /* Set the I2C DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; + + /* Abort DMA TX */ + if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) + { + /* Call Directly XferAbortCallback function in case of error */ + hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); + } + } + } + } + + /* All data are not transferred, so set error code accordingly */ + if (hi2c->XferCount != 0U) + { + /* Store Last receive data if any */ + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) + { + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + } + + /* Store Last receive data if any */ + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) + { + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + + /* Update counter */ + hi2c->XferCount--; + } + + if (hi2c->XferCount != 0U) + { + /* Set ErrorCode corresponding to a Non-Acknowledge */ + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + } + } + + if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) + { + /* Call the corresponding callback to inform upper layer of End of Transfer */ + I2C_ITError(hi2c); + } + else + { + if (CurrentState == HAL_I2C_STATE_BUSY_RX_LISTEN) + { + /* Set state at HAL_I2C_STATE_LISTEN */ + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_LISTEN; + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->SlaveRxCpltCallback(hi2c); +#else + HAL_I2C_SlaveRxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + + if (hi2c->State == HAL_I2C_STATE_LISTEN) + { + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->ListenCpltCallback(hi2c); +#else + HAL_I2C_ListenCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + if ((hi2c->PreviousState == I2C_STATE_SLAVE_BUSY_RX) || (CurrentState == HAL_I2C_STATE_BUSY_RX)) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->SlaveRxCpltCallback(hi2c); +#else + HAL_I2C_SlaveRxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + } + } +} + +/** + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @retval None + */ +static void I2C_Slave_AF(I2C_HandleTypeDef *hi2c) +{ + /* Declaration of temporary variables to prevent undefined behavior of volatile usage */ + HAL_I2C_StateTypeDef CurrentState = hi2c->State; + uint32_t CurrentXferOptions = hi2c->XferOptions; + + if (((CurrentXferOptions == I2C_FIRST_AND_LAST_FRAME) || (CurrentXferOptions == I2C_LAST_FRAME)) && \ + (CurrentState == HAL_I2C_STATE_LISTEN)) + { + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + + /* Disable EVT, BUF and ERR interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + /* Clear AF flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->ListenCpltCallback(hi2c); +#else + HAL_I2C_ListenCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else if (CurrentState == HAL_I2C_STATE_BUSY_TX) + { + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Disable EVT, BUF and ERR interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + + /* Clear AF flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Clear TXE flag */ + I2C_Flush_DR(hi2c); + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->SlaveTxCpltCallback(hi2c); +#else + HAL_I2C_SlaveTxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + /* Clear AF flag only */ + /* State Listen, but XferOptions == FIRST or NEXT */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + } +} + +/** + * @brief I2C interrupts error process + * @param hi2c I2C handle. + * @retval None + */ +static void I2C_ITError(I2C_HandleTypeDef *hi2c) +{ + /* Declaration of temporary variable to prevent undefined behavior of volatile usage */ + HAL_I2C_StateTypeDef CurrentState = hi2c->State; + HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; + uint32_t CurrentError; + + if (((CurrentMode == HAL_I2C_MODE_MASTER) || (CurrentMode == HAL_I2C_MODE_MEM)) && (CurrentState == HAL_I2C_STATE_BUSY_RX)) + { + /* Disable Pos bit in I2C CR1 when error occurred in Master/Mem Receive IT Process */ + hi2c->Instance->CR1 &= ~I2C_CR1_POS; + } + + if (((uint32_t)CurrentState & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) + { + /* keep HAL_I2C_STATE_LISTEN */ + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_LISTEN; + } + else + { + /* If state is an abort treatment on going, don't change state */ + /* This change will be do later */ + if ((READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) != I2C_CR2_DMAEN) && (CurrentState != HAL_I2C_STATE_ABORT)) + { + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + } + hi2c->PreviousState = I2C_STATE_NONE; + } + + /* Abort DMA transfer */ + if (READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) == I2C_CR2_DMAEN) + { + hi2c->Instance->CR2 &= ~I2C_CR2_DMAEN; + + if (hi2c->hdmatx->State != HAL_DMA_STATE_READY) + { + /* Set the DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; + + if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) + { + /* Disable I2C peripheral to prevent dummy data in buffer */ + __HAL_I2C_DISABLE(hi2c); + + hi2c->State = HAL_I2C_STATE_READY; + + /* Call Directly XferAbortCallback function in case of error */ + hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); + } + } + else + { + /* Set the DMA Abort callback : + will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ + hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; + + if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) + { + /* Store Last receive data if any */ + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) + { + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + } + + /* Disable I2C peripheral to prevent dummy data in buffer */ + __HAL_I2C_DISABLE(hi2c); + + hi2c->State = HAL_I2C_STATE_READY; + + /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ + hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); + } + } + } + else if (hi2c->State == HAL_I2C_STATE_ABORT) + { + hi2c->State = HAL_I2C_STATE_READY; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Store Last receive data if any */ + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) + { + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + } + + /* Disable I2C peripheral to prevent dummy data in buffer */ + __HAL_I2C_DISABLE(hi2c); + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->AbortCpltCallback(hi2c); +#else + HAL_I2C_AbortCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + /* Store Last receive data if any */ + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) + { + /* Read data from DR */ + *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; + + /* Increment Buffer pointer */ + hi2c->pBuffPtr++; + } + + /* Call user error callback */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->ErrorCallback(hi2c); +#else + HAL_I2C_ErrorCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + + /* STOP Flag is not set after a NACK reception, BusError, ArbitrationLost, OverRun */ + CurrentError = hi2c->ErrorCode; + + if (((CurrentError & HAL_I2C_ERROR_BERR) == HAL_I2C_ERROR_BERR) || \ + ((CurrentError & HAL_I2C_ERROR_ARLO) == HAL_I2C_ERROR_ARLO) || \ + ((CurrentError & HAL_I2C_ERROR_AF) == HAL_I2C_ERROR_AF) || \ + ((CurrentError & HAL_I2C_ERROR_OVR) == HAL_I2C_ERROR_OVR)) + { + /* Disable EVT, BUF and ERR interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); + } + + /* So may inform upper layer that listen phase is stopped */ + /* during NACK error treatment */ + CurrentState = hi2c->State; + if (((hi2c->ErrorCode & HAL_I2C_ERROR_AF) == HAL_I2C_ERROR_AF) && (CurrentState == HAL_I2C_STATE_LISTEN)) + { + hi2c->XferOptions = I2C_NO_OPTION_FRAME; + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->ListenCpltCallback(hi2c); +#else + HAL_I2C_ListenCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } +} + +/** + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_MasterRequestWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Timeout, uint32_t Tickstart) +{ + /* Declaration of temporary variable to prevent undefined behavior of volatile usage */ + uint32_t CurrentXferOptions = hi2c->XferOptions; + + /* Generate Start condition if first transfer */ + if ((CurrentXferOptions == I2C_FIRST_AND_LAST_FRAME) || (CurrentXferOptions == I2C_FIRST_FRAME) || (CurrentXferOptions == I2C_NO_OPTION_FRAME)) + { + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + } + else if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) + { + /* Generate ReStart */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + } + else + { + /* Do nothing */ + } + + /* Wait until SB flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) + { + if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) + { + hi2c->ErrorCode = HAL_I2C_WRONG_START; + } + return HAL_TIMEOUT; + } + + if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) + { + /* Send slave address */ + hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); + } + else + { + /* Send header of slave address */ + hi2c->Instance->DR = I2C_10BIT_HEADER_WRITE(DevAddress); + + /* Wait until ADD10 flag is set */ + if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADD10, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Send slave address */ + hi2c->Instance->DR = I2C_10BIT_ADDRESS(DevAddress); + } + + /* Wait until ADDR flag is set */ + if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + return HAL_OK; +} + +/** + * @brief Master sends target device address for read request. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_MasterRequestRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Timeout, uint32_t Tickstart) +{ + /* Declaration of temporary variable to prevent undefined behavior of volatile usage */ + uint32_t CurrentXferOptions = hi2c->XferOptions; + + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Generate Start condition if first transfer */ + if ((CurrentXferOptions == I2C_FIRST_AND_LAST_FRAME) || (CurrentXferOptions == I2C_FIRST_FRAME) || (CurrentXferOptions == I2C_NO_OPTION_FRAME)) + { + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + } + else if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) + { + /* Generate ReStart */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + } + else + { + /* Do nothing */ + } + + /* Wait until SB flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) + { + if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) + { + hi2c->ErrorCode = HAL_I2C_WRONG_START; + } + return HAL_TIMEOUT; + } + + if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) + { + /* Send slave address */ + hi2c->Instance->DR = I2C_7BIT_ADD_READ(DevAddress); + } + else + { + /* Send header of slave address */ + hi2c->Instance->DR = I2C_10BIT_HEADER_WRITE(DevAddress); + + /* Wait until ADD10 flag is set */ + if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADD10, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Send slave address */ + hi2c->Instance->DR = I2C_10BIT_ADDRESS(DevAddress); + + /* Wait until ADDR flag is set */ + if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Generate Restart */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + + /* Wait until SB flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) + { + if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) + { + hi2c->ErrorCode = HAL_I2C_WRONG_START; + } + return HAL_TIMEOUT; + } + + /* Send header of slave address */ + hi2c->Instance->DR = I2C_10BIT_HEADER_READ(DevAddress); + } + + /* Wait until ADDR flag is set */ + if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + return HAL_OK; +} + +/** + * @brief Master sends target device address followed by internal memory address for write request. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout, uint32_t Tickstart) +{ + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + + /* Wait until SB flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) + { + if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) + { + hi2c->ErrorCode = HAL_I2C_WRONG_START; + } + return HAL_TIMEOUT; + } + + /* Send slave address */ + hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); + + /* Wait until ADDR flag is set */ + if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Wait until TXE flag is set */ + if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) + { + if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) + { + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + return HAL_ERROR; + } + + /* If Memory address size is 8Bit */ + if (MemAddSize == I2C_MEMADD_SIZE_8BIT) + { + /* Send Memory Address */ + hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); + } + /* If Memory address size is 16Bit */ + else + { + /* Send MSB of Memory Address */ + hi2c->Instance->DR = I2C_MEM_ADD_MSB(MemAddress); + + /* Wait until TXE flag is set */ + if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) + { + if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) + { + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + return HAL_ERROR; + } + + /* Send LSB of Memory Address */ + hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); + } + + return HAL_OK; +} + +/** + * @brief Master sends target device address followed by internal memory address for read request. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @param DevAddress Target device address: The device 7 bits address value + * in datasheet must be shifted to the left before calling the interface + * @param MemAddress Internal memory address + * @param MemAddSize Size of internal memory address + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout, uint32_t Tickstart) +{ + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* Generate Start */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + + /* Wait until SB flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) + { + if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) + { + hi2c->ErrorCode = HAL_I2C_WRONG_START; + } + return HAL_TIMEOUT; + } + + /* Send slave address */ + hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); + + /* Wait until ADDR flag is set */ + if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + + /* Wait until TXE flag is set */ + if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) + { + if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) + { + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + return HAL_ERROR; + } + + /* If Memory address size is 8Bit */ + if (MemAddSize == I2C_MEMADD_SIZE_8BIT) + { + /* Send Memory Address */ + hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); + } + /* If Memory address size is 16Bit */ + else + { + /* Send MSB of Memory Address */ + hi2c->Instance->DR = I2C_MEM_ADD_MSB(MemAddress); + + /* Wait until TXE flag is set */ + if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) + { + if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) + { + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + return HAL_ERROR; + } + + /* Send LSB of Memory Address */ + hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); + } + + /* Wait until TXE flag is set */ + if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) + { + if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) + { + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + return HAL_ERROR; + } + + /* Generate Restart */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); + + /* Wait until SB flag is set */ + if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) + { + if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) + { + hi2c->ErrorCode = HAL_I2C_WRONG_START; + } + return HAL_TIMEOUT; + } + + /* Send slave address */ + hi2c->Instance->DR = I2C_7BIT_ADD_READ(DevAddress); + + /* Wait until ADDR flag is set */ + if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) + { + return HAL_ERROR; + } + + return HAL_OK; +} + +/** + * @brief DMA I2C process complete callback. + * @param hdma DMA handle + * @retval None + */ +static void I2C_DMAXferCplt(DMA_HandleTypeDef *hdma) +{ + I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation MISRAC2012-Rule-11.5 */ + + /* Declaration of temporary variable to prevent undefined behavior of volatile usage */ + HAL_I2C_StateTypeDef CurrentState = hi2c->State; + HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; + uint32_t CurrentXferOptions = hi2c->XferOptions; + + /* Disable EVT and ERR interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); + + /* Clear Complete callback */ + if (hi2c->hdmatx != NULL) + { + hi2c->hdmatx->XferCpltCallback = NULL; + } + if (hi2c->hdmarx != NULL) + { + hi2c->hdmarx->XferCpltCallback = NULL; + } + + if ((((uint32_t)CurrentState & (uint32_t)HAL_I2C_STATE_BUSY_TX) == (uint32_t)HAL_I2C_STATE_BUSY_TX) || ((((uint32_t)CurrentState & (uint32_t)HAL_I2C_STATE_BUSY_RX) == (uint32_t)HAL_I2C_STATE_BUSY_RX) && (CurrentMode == HAL_I2C_MODE_SLAVE))) + { + /* Disable DMA Request */ + CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + + hi2c->XferCount = 0U; + + if (CurrentState == HAL_I2C_STATE_BUSY_TX_LISTEN) + { + /* Set state at HAL_I2C_STATE_LISTEN */ + hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; + hi2c->State = HAL_I2C_STATE_LISTEN; + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->SlaveTxCpltCallback(hi2c); +#else + HAL_I2C_SlaveTxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else if (CurrentState == HAL_I2C_STATE_BUSY_RX_LISTEN) + { + /* Set state at HAL_I2C_STATE_LISTEN */ + hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; + hi2c->State = HAL_I2C_STATE_LISTEN; + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->SlaveRxCpltCallback(hi2c); +#else + HAL_I2C_SlaveRxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + /* Do nothing */ + } + + /* Enable EVT and ERR interrupt to treat end of transfer in IRQ handler */ + __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); + } + /* Check current Mode, in case of treatment DMA handler have been preempted by a prior interrupt */ + else if (hi2c->Mode != HAL_I2C_MODE_NONE) + { + if (hi2c->XferCount == (uint16_t)1) + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + } + + /* Disable EVT and ERR interrupt */ + __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); + + /* Prepare next transfer or stop current transfer */ + if ((CurrentXferOptions == I2C_NO_OPTION_FRAME) || (CurrentXferOptions == I2C_FIRST_AND_LAST_FRAME) || (CurrentXferOptions == I2C_OTHER_AND_LAST_FRAME) || (CurrentXferOptions == I2C_LAST_FRAME)) + { + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + } + + /* Disable Last DMA */ + CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); + + /* Disable DMA Request */ + CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); + + hi2c->XferCount = 0U; + + /* Check if Errors has been detected during transfer */ + if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) + { +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->ErrorCallback(hi2c); +#else + HAL_I2C_ErrorCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + hi2c->State = HAL_I2C_STATE_READY; + + if (hi2c->Mode == HAL_I2C_MODE_MEM) + { + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->PreviousState = I2C_STATE_NONE; + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MemRxCpltCallback(hi2c); +#else + HAL_I2C_MemRxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + hi2c->Mode = HAL_I2C_MODE_NONE; + if ((CurrentXferOptions == I2C_FIRST_AND_LAST_FRAME) || (CurrentXferOptions == I2C_LAST_FRAME)) + { + hi2c->PreviousState = I2C_STATE_NONE; + } + else + { + hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; + } + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->MasterRxCpltCallback(hi2c); +#else + HAL_I2C_MasterRxCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + } + } + else + { + /* Do nothing */ + } +} + +/** + * @brief DMA I2C communication error callback. + * @param hdma DMA handle + * @retval None + */ +static void I2C_DMAError(DMA_HandleTypeDef *hdma) +{ + I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation MISRAC2012-Rule-11.5 */ + + /* Clear Complete callback */ + if (hi2c->hdmatx != NULL) + { + hi2c->hdmatx->XferCpltCallback = NULL; + } + if (hi2c->hdmarx != NULL) + { + hi2c->hdmarx->XferCpltCallback = NULL; + } + + /* Ignore DMA FIFO error */ + if (HAL_DMA_GetError(hdma) != HAL_DMA_ERROR_FE) + { + /* Disable Acknowledge */ + hi2c->Instance->CR1 &= ~I2C_CR1_ACK; + + hi2c->XferCount = 0U; + + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; + +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->ErrorCallback(hi2c); +#else + HAL_I2C_ErrorCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } +} + +/** + * @brief DMA I2C communication abort callback + * (To be called at end of DMA Abort procedure). + * @param hdma DMA handle. + * @retval None + */ +static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) +{ + __IO uint32_t count = 0U; + I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation MISRAC2012-Rule-11.5 */ + + /* Declaration of temporary variable to prevent undefined behavior of volatile usage */ + HAL_I2C_StateTypeDef CurrentState = hi2c->State; + + /* During abort treatment, check that there is no pending STOP request */ + /* Wait until STOP flag is reset */ + count = I2C_TIMEOUT_FLAG * (SystemCoreClock / 25U / 1000U); + do + { + if (count == 0U) + { + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + break; + } + count--; + } + while (READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP); + + /* Clear Complete callback */ + if (hi2c->hdmatx != NULL) + { + hi2c->hdmatx->XferCpltCallback = NULL; + } + if (hi2c->hdmarx != NULL) + { + hi2c->hdmarx->XferCpltCallback = NULL; + } + + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + hi2c->XferCount = 0U; + + /* Reset XferAbortCallback */ + if (hi2c->hdmatx != NULL) + { + hi2c->hdmatx->XferAbortCallback = NULL; + } + if (hi2c->hdmarx != NULL) + { + hi2c->hdmarx->XferAbortCallback = NULL; + } + + /* Disable I2C peripheral to prevent dummy data in buffer */ + __HAL_I2C_DISABLE(hi2c); + + /* Check if come from abort from user */ + if (hi2c->State == HAL_I2C_STATE_ABORT) + { + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode = HAL_I2C_ERROR_NONE; + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->AbortCpltCallback(hi2c); +#else + HAL_I2C_AbortCpltCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } + else + { + if (((uint32_t)CurrentState & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) + { + /* Renable I2C peripheral */ + __HAL_I2C_ENABLE(hi2c); + + /* Enable Acknowledge */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + + /* keep HAL_I2C_STATE_LISTEN */ + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_LISTEN; + } + else + { + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + } + + /* Call the corresponding callback to inform upper layer of End of Transfer */ +#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) + hi2c->ErrorCallback(hi2c); +#else + HAL_I2C_ErrorCallback(hi2c); +#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ + } +} + +/** + * @brief This function handles I2C Communication Timeout. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @param Flag specifies the I2C flag to check. + * @param Status The new Flag status (SET or RESET). + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagStatus Status, uint32_t Timeout, uint32_t Tickstart) +{ + /* Wait until flag is set */ + while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) + { + /* Check for the Timeout */ + if (Timeout != HAL_MAX_DELAY) + { + if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) + { + if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + } + } + return HAL_OK; +} + +/** + * @brief This function handles I2C Communication Timeout for Master addressing phase. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for I2C module + * @param Flag specifies the I2C flag to check. + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_WaitOnMasterAddressFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, uint32_t Timeout, uint32_t Tickstart) +{ + while (__HAL_I2C_GET_FLAG(hi2c, Flag) == RESET) + { + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) + { + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + + /* Clear AF Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + /* Check for the Timeout */ + if (Timeout != HAL_MAX_DELAY) + { + if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) + { + if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == RESET)) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + } + } + return HAL_OK; +} + +/** + * @brief This function handles I2C Communication Timeout for specific usage of TXE flag. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_WaitOnTXEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) +{ + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) + { + /* Check if a NACK is detected */ + if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) + { + return HAL_ERROR; + } + + /* Check for the Timeout */ + if (Timeout != HAL_MAX_DELAY) + { + if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) + { + if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + } + } + return HAL_OK; +} + +/** + * @brief This function handles I2C Communication Timeout for specific usage of BTF flag. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_WaitOnBTFFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) +{ + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET) + { + /* Check if a NACK is detected */ + if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) + { + return HAL_ERROR; + } + + /* Check for the Timeout */ + if (Timeout != HAL_MAX_DELAY) + { + if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) + { + if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET)) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + } + } + return HAL_OK; +} + +/** + * @brief This function handles I2C Communication Timeout for specific usage of STOP flag. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) +{ + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) + { + /* Check if a NACK is detected */ + if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) + { + return HAL_ERROR; + } + + /* Check for the Timeout */ + if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) + { + if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + } + return HAL_OK; +} + +/** + * @brief This function handles I2C Communication Timeout for specific usage of STOP request through Interrupt. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_WaitOnSTOPRequestThroughIT(I2C_HandleTypeDef *hi2c) +{ + __IO uint32_t count = 0U; + + /* Wait until STOP flag is reset */ + count = I2C_TIMEOUT_STOP_FLAG * (SystemCoreClock / 25U / 1000U); + do + { + count--; + if (count == 0U) + { + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + return HAL_ERROR; + } + } + while (READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP); + + return HAL_OK; +} + +/** + * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @param Timeout Timeout duration + * @param Tickstart Tick start value + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) +{ + + while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) + { + /* Check if a STOPF is detected */ + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) + { + /* Clear STOP Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); + + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_NONE; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + + /* Check for the Timeout */ + if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) + { + if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)) + { + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + } + } + return HAL_OK; +} + +/** + * @brief This function handles Acknowledge failed detection during an I2C Communication. + * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2C. + * @retval HAL status + */ +static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c) +{ + if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) + { + /* Clear NACKF Flag */ + __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); + + hi2c->PreviousState = I2C_STATE_NONE; + hi2c->State = HAL_I2C_STATE_READY; + hi2c->Mode = HAL_I2C_MODE_NONE; + hi2c->ErrorCode |= HAL_I2C_ERROR_AF; + + /* Process Unlocked */ + __HAL_UNLOCK(hi2c); + + return HAL_ERROR; + } + return HAL_OK; +} + +/** + * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions. + * @param hi2c I2C handle. + * @retval None + */ +static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) +{ + /* if user set XferOptions to I2C_OTHER_FRAME */ + /* it request implicitly to generate a restart condition */ + /* set XferOptions to I2C_FIRST_FRAME */ + if (hi2c->XferOptions == I2C_OTHER_FRAME) + { + hi2c->XferOptions = I2C_FIRST_FRAME; + } + /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */ + /* it request implicitly to generate a restart condition */ + /* then generate a stop condition at the end of transfer */ + /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */ + else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) + { + hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; + } + else + { + /* Nothing to do */ + } +} + +/** + * @} + */ + +#endif /* HAL_I2C_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/firmware/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c b/firmware/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c new file mode 100644 index 0000000..351f4fd --- /dev/null +++ b/firmware/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c @@ -0,0 +1,182 @@ +/** + ****************************************************************************** + * @file stm32f4xx_hal_i2c_ex.c + * @author MCD Application Team + * @brief I2C Extension HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of I2C extension peripheral: + * + Extension features functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2016 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### I2C peripheral extension features ##### + ============================================================================== + + [..] Comparing to other previous devices, the I2C interface for STM32F427xx/437xx/ + 429xx/439xx devices contains the following additional features : + + (+) Possibility to disable or enable Analog Noise Filter + (+) Use of a configured Digital Noise Filter + + ##### How to use this driver ##### + ============================================================================== + [..] This driver provides functions to configure Noise Filter + (#) Configure I2C Analog noise filter using the function HAL_I2C_AnalogFilter_Config() + (#) Configure I2C Digital noise filter using the function HAL_I2C_DigitalFilter_Config() + + @endverbatim + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f4xx_hal.h" + +/** @addtogroup STM32F4xx_HAL_Driver + * @{ + */ + +/** @defgroup I2CEx I2CEx + * @brief I2C HAL module driver + * @{ + */ + +#ifdef HAL_I2C_MODULE_ENABLED + +#if defined(I2C_FLTR_ANOFF)&&defined(I2C_FLTR_DNF) +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ +/** @defgroup I2CEx_Exported_Functions I2C Exported Functions + * @{ + */ + + +/** @defgroup I2CEx_Exported_Functions_Group1 Extension features functions + * @brief Extension features functions + * +@verbatim + =============================================================================== + ##### Extension features functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Configure Noise Filters + +@endverbatim + * @{ + */ + +/** + * @brief Configures I2C Analog noise filter. + * @param hi2c pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2Cx peripheral. + * @param AnalogFilter new state of the Analog filter. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); + assert_param(IS_I2C_ANALOG_FILTER(AnalogFilter)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + hi2c->State = HAL_I2C_STATE_BUSY; + + /* Disable the selected I2C peripheral */ + __HAL_I2C_DISABLE(hi2c); + + /* Reset I2Cx ANOFF bit */ + hi2c->Instance->FLTR &= ~(I2C_FLTR_ANOFF); + + /* Disable the analog filter */ + hi2c->Instance->FLTR |= AnalogFilter; + + __HAL_I2C_ENABLE(hi2c); + + hi2c->State = HAL_I2C_STATE_READY; + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @brief Configures I2C Digital noise filter. + * @param hi2c pointer to a I2C_HandleTypeDef structure that contains + * the configuration information for the specified I2Cx peripheral. + * @param DigitalFilter Coefficient of digital noise filter between 0x00 and 0x0F. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter) +{ + uint16_t tmpreg = 0; + + /* Check the parameters */ + assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); + assert_param(IS_I2C_DIGITAL_FILTER(DigitalFilter)); + + if (hi2c->State == HAL_I2C_STATE_READY) + { + hi2c->State = HAL_I2C_STATE_BUSY; + + /* Disable the selected I2C peripheral */ + __HAL_I2C_DISABLE(hi2c); + + /* Get the old register value */ + tmpreg = hi2c->Instance->FLTR; + + /* Reset I2Cx DNF bit [3:0] */ + tmpreg &= ~(I2C_FLTR_DNF); + + /* Set I2Cx DNF coefficient */ + tmpreg |= DigitalFilter; + + /* Store the new register value */ + hi2c->Instance->FLTR = tmpreg; + + __HAL_I2C_ENABLE(hi2c); + + hi2c->State = HAL_I2C_STATE_READY; + + return HAL_OK; + } + else + { + return HAL_BUSY; + } +} + +/** + * @} + */ + +/** + * @} + */ +#endif + +#endif /* HAL_I2C_MODULE_ENABLED */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/firmware/macrolev.ioc b/firmware/macrolev.ioc index 989f941..5e3bf86 100644 --- a/firmware/macrolev.ioc +++ b/firmware/macrolev.ioc @@ -17,11 +17,12 @@ KeepUserPlacement=false Mcu.CPN=STM32F411CEU6 Mcu.Family=STM32F4 Mcu.IP0=ADC1 -Mcu.IP1=NVIC -Mcu.IP2=RCC -Mcu.IP3=SYS -Mcu.IP4=USB_OTG_FS -Mcu.IPNb=5 +Mcu.IP1=I2C1 +Mcu.IP2=NVIC +Mcu.IP3=RCC +Mcu.IP4=SYS +Mcu.IP5=USB_OTG_FS +Mcu.IPNb=6 Mcu.Name=STM32F411C(C-E)Ux Mcu.Package=UFQFPN48 Mcu.Pin0=PH0 - OSC_IN @@ -31,7 +32,9 @@ Mcu.Pin11=PA11 Mcu.Pin12=PA12 Mcu.Pin13=PA13 Mcu.Pin14=PA14 -Mcu.Pin15=VP_SYS_VS_Systick +Mcu.Pin15=PB6 +Mcu.Pin16=PB7 +Mcu.Pin17=VP_SYS_VS_Systick Mcu.Pin2=PA3 Mcu.Pin3=PA4 Mcu.Pin4=PA5 @@ -40,12 +43,12 @@ Mcu.Pin6=PA7 Mcu.Pin7=PB12 Mcu.Pin8=PB13 Mcu.Pin9=PB14 -Mcu.PinsNb=16 +Mcu.PinsNb=18 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32F411CEUx -MxCube.Version=6.11.0 -MxDb.Version=DB.6.0.110 +MxCube.Version=6.11.1 +MxDb.Version=DB.6.0.111 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.ForceEnableDMAVector=true @@ -79,6 +82,14 @@ PB14.Locked=true PB14.Signal=GPIO_Output PB15.Locked=true PB15.Signal=GPIO_Output +PB6.GPIOParameters=GPIO_Pu +PB6.GPIO_Pu=GPIO_PULLUP +PB6.Mode=I2C +PB6.Signal=I2C1_SCL +PB7.GPIOParameters=GPIO_Pu +PB7.GPIO_Pu=GPIO_PULLUP +PB7.Mode=I2C +PB7.Signal=I2C1_SDA PH0\ -\ OSC_IN.Mode=HSE-External-Oscillator PH0\ -\ OSC_IN.Signal=RCC_OSC_IN PH1\ -\ OSC_OUT.Mode=HSE-External-Oscillator @@ -114,7 +125,7 @@ ProjectManager.ToolChainLocation= ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptBeforePath= ProjectManager.UnderRoot=true -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_ADC1_Init-ADC1-false-HAL-true,4-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_ADC1_Init-ADC1-false-HAL-true,4-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,5-MX_I2C1_Init-I2C1-false-HAL-true RCC.48MHZClocksFreq_Value=48000000 RCC.AHBFreq_Value=26000000 RCC.APB1CLKDivider=RCC_HCLK_DIV2 diff --git a/kicad/macrolev.kicad_sch b/kicad/macrolev.kicad_sch index e96edcd..dcf794e 100644 --- a/kicad/macrolev.kicad_sch +++ b/kicad/macrolev.kicad_sch @@ -1,29091 +1,11091 @@ -(kicad_sch - (version 20231120) - (generator "eeschema") - (generator_version "8.0") - (uuid "24af5553-bb98-43bd-b85c-c6b0b021d5e0") - (paper "A2") - (title_block - (title "Macrolev") - (date "2023-10-22") - (rev "1.0") - (company "Heiso") - ) - (lib_symbols - (symbol "74xx:CD74HC4067SM" - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "U" - (at -8.89 22.86 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "CD74HC4067SM" - (at 1.27 22.86 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Package_SO:SSOP-24_5.3x8.2mm_P0.65mm" - (at 26.67 -25.4 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (hide yes) - ) - ) - (property "Datasheet" "http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf" - (at -8.89 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "High-Speed CMOS Logic 16-Channel Analog Multiplexer/Demultiplexer, SSOP-24" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "multiplexer demultiplexer mux demux" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "SSOP*5.3x8.2mm*P0.65mm*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "CD74HC4067SM_0_1" - (rectangle - (start -8.89 21.59) - (end 8.89 -24.13) - (stroke - (width 0.254) - (type default) - ) - (fill - (type background) - ) - ) - ) - (symbol "CD74HC4067SM_1_1" - (pin passive line - (at -12.7 12.7 0) - (length 3.81) - (name "COM" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -12.7 2.54 0) - (length 3.81) - (name "S0" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "10" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -12.7 0 0) - (length 3.81) - (name "S1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "11" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin power_in line - (at 0 -27.94 90) - (length 3.81) - (name "GND" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "12" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -12.7 -5.08 0) - (length 3.81) - (name "S3" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "13" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -12.7 -2.54 0) - (length 3.81) - (name "S2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "14" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin input line - (at -12.7 -15.24 0) - (length 3.81) - (name "~{E}" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "15" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 -20.32 180) - (length 3.81) - (name "I15" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "16" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 -17.78 180) - (length 3.81) - (name "I14" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "17" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 -15.24 180) - (length 3.81) - (name "I13" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "18" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 -12.7 180) - (length 3.81) - (name "I12" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "19" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 0 180) - (length 3.81) - (name "I7" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 -10.16 180) - (length 3.81) - (name "I11" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "20" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 -7.62 180) - (length 3.81) - (name "I10" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "21" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 -5.08 180) - (length 3.81) - (name "I9" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "22" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 -2.54 180) - (length 3.81) - (name "I8" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "23" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin power_in line - (at 0 25.4 270) - (length 3.81) - (name "VCC" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "24" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 2.54 180) - (length 3.81) - (name "I6" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "3" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 5.08 180) - (length 3.81) - (name "I5" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "4" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 7.62 180) - (length 3.81) - (name "I4" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "5" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 10.16 180) - (length 3.81) - (name "I3" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "6" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 12.7 180) - (length 3.81) - (name "I2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "7" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 15.24 180) - (length 3.81) - (name "I1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "8" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 12.7 17.78 180) - (length 3.81) - (name "I0" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "9" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "Connector:TestPoint" - (pin_numbers hide) - (pin_names - (offset 0.762) hide) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "TP" - (at 0 6.858 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "TestPoint" - (at 0 5.08 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 5.08 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 5.08 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "test point" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "test point tp" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "Pin* Test*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "TestPoint_0_1" - (circle - (center 0 3.302) - (radius 0.762) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - ) - (symbol "TestPoint_1_1" - (pin passive line - (at 0 0 90) - (length 2.54) - (name "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "Connector_Generic:Conn_01x04" - (pin_names - (offset 1.016) hide) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "J" - (at 0 5.08 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "Conn_01x04" - (at 0 -7.62 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "connector" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "Connector*:*_1x??_*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "Conn_01x04_1_1" - (rectangle - (start -1.27 -4.953) - (end 0 -5.207) - (stroke - (width 0.1524) - (type default) - ) - (fill - (type none) - ) - ) - (rectangle - (start -1.27 -2.413) - (end 0 -2.667) - (stroke - (width 0.1524) - (type default) - ) - (fill - (type none) - ) - ) - (rectangle - (start -1.27 0.127) - (end 0 -0.127) - (stroke - (width 0.1524) - (type default) - ) - (fill - (type none) - ) - ) - (rectangle - (start -1.27 2.667) - (end 0 2.413) - (stroke - (width 0.1524) - (type default) - ) - (fill - (type none) - ) - ) - (rectangle - (start -1.27 3.81) - (end 1.27 -6.35) - (stroke - (width 0.254) - (type default) - ) - (fill - (type background) - ) - ) - (pin passive line - (at -5.08 2.54 0) - (length 3.81) - (name "Pin_1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at -5.08 0 0) - (length 3.81) - (name "Pin_2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at -5.08 -2.54 0) - (length 3.81) - (name "Pin_3" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "3" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at -5.08 -5.08 0) - (length 3.81) - (name "Pin_4" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "4" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "Device:C" - (pin_numbers hide) - (pin_names - (offset 0.254) - ) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "C" - (at 0.635 2.54 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "C" - (at 0.635 -2.54 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "" - (at 0.9652 -3.81 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Unpolarized capacitor" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "cap capacitor" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "C_*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "C_0_1" - (polyline - (pts - (xy -2.032 -0.762) (xy 2.032 -0.762) - ) - (stroke - (width 0.508) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -2.032 0.762) (xy 2.032 0.762) - ) - (stroke - (width 0.508) - (type default) - ) - (fill - (type none) - ) - ) - ) - (symbol "C_1_1" - (pin passive line - (at 0 3.81 270) - (length 2.794) - (name "~" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 0 -3.81 90) - (length 2.794) - (name "~" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "Device:Crystal_GND24" - (pin_names - (offset 1.016) hide) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "Y" - (at 3.175 5.08 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "Crystal_GND24" - (at 3.175 3.175 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Four pin crystal, GND on pins 2 and 4" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "quartz ceramic resonator oscillator" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "Crystal*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "Crystal_GND24_0_1" - (rectangle - (start -1.143 2.54) - (end 1.143 -2.54) - (stroke - (width 0.3048) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -2.54 0) (xy -2.032 0) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -2.032 -1.27) (xy -2.032 1.27) - ) - (stroke - (width 0.508) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 0 -3.81) (xy 0 -3.556) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 0 3.556) (xy 0 3.81) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 2.032 -1.27) (xy 2.032 1.27) - ) - (stroke - (width 0.508) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 2.032 0) (xy 2.54 0) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -2.54 -2.286) (xy -2.54 -3.556) (xy 2.54 -3.556) (xy 2.54 -2.286) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -2.54 2.286) (xy -2.54 3.556) (xy 2.54 3.556) (xy 2.54 2.286) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - ) - (symbol "Crystal_GND24_1_1" - (pin passive line - (at -3.81 0 0) - (length 1.27) - (name "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 0 5.08 270) - (length 1.27) - (name "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 3.81 0 180) - (length 1.27) - (name "3" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "3" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 0 -5.08 90) - (length 1.27) - (name "4" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "4" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "Device:FerriteBead" - (pin_numbers hide) - (pin_names - (offset 0) - ) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "FB" - (at -3.81 0.635 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "FerriteBead" - (at 3.81 0 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at -1.778 0 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Ferrite bead" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "L ferrite bead inductor filter" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "Inductor_* L_* *Ferrite*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "FerriteBead_0_1" - (polyline - (pts - (xy 0 -1.27) (xy 0 -1.2192) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 0 1.27) (xy 0 1.2954) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -2.7686 0.4064) (xy -1.7018 2.2606) (xy 2.7686 -0.3048) (xy 1.6764 -2.159) (xy -2.7686 0.4064) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - ) - (symbol "FerriteBead_1_1" - (pin passive line - (at 0 3.81 270) - (length 2.54) - (name "~" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 0 -3.81 90) - (length 2.54) - (name "~" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "Device:LED" - (pin_numbers hide) - (pin_names - (offset 1.016) hide) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "D" - (at 0 2.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "LED" - (at 0 -2.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Light emitting diode" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "LED diode" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "LED* LED_SMD:* LED_THT:*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "LED_0_1" - (polyline - (pts - (xy -1.27 -1.27) (xy -1.27 1.27) - ) - (stroke - (width 0.254) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -1.27 0) (xy 1.27 0) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 1.27 -1.27) (xy 1.27 1.27) (xy -1.27 0) (xy 1.27 -1.27) - ) - (stroke - (width 0.254) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -3.048 -0.762) (xy -4.572 -2.286) (xy -3.81 -2.286) (xy -4.572 -2.286) (xy -4.572 -1.524) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy -1.778 -0.762) (xy -3.302 -2.286) (xy -2.54 -2.286) (xy -3.302 -2.286) (xy -3.302 -1.524) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - ) - (symbol "LED_1_1" - (pin passive line - (at -3.81 0 0) - (length 2.54) - (name "K" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 3.81 0 180) - (length 2.54) - (name "A" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "Device:R" - (pin_numbers hide) - (pin_names - (offset 0) - ) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "R" - (at 2.032 0 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "R" - (at 0 0 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at -1.778 0 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Resistor" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "R res resistor" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "R_*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "R_0_1" - (rectangle - (start -1.016 -2.54) - (end 1.016 2.54) - (stroke - (width 0.254) - (type default) - ) - (fill - (type none) - ) - ) - ) - (symbol "R_1_1" - (pin passive line - (at 0 3.81 270) - (length 1.27) - (name "~" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 0 -3.81 90) - (length 1.27) - (name "~" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "MCU_ST_STM32F4:STM32F411CEUx" - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "U" - (at -12.7 39.37 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "STM32F411CEUx" - (at 10.16 39.37 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mm" - (at -12.7 -38.1 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - (hide yes) - ) - ) - (property "Datasheet" "https://www.st.com/resource/en/datasheet/stm32f411ce.pdf" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "STMicroelectronics Arm Cortex-M4 MCU, 512KB flash, 128KB RAM, 100 MHz, 1.7-3.6V, 36 GPIO, UFQFPN48" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_locked" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "ki_keywords" "Arm Cortex-M4 STM32F4 STM32F411" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "QFN*1EP*7x7mm*P0.5mm*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "STM32F411CEUx_0_1" - (rectangle - (start -12.7 -38.1) - (end 15.24 38.1) - (stroke - (width 0.254) - (type default) - ) - (fill - (type background) - ) - ) - ) - (symbol "STM32F411CEUx_1_1" - (pin power_in line - (at -2.54 40.64 270) - (length 2.54) - (name "VBAT" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin bidirectional line - (at 17.78 35.56 180) - (length 2.54) - (name "PA0" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "10" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "ADC1_IN0" bidirectional line) - (alternate "SYS_WKUP" bidirectional line) - (alternate "TIM2_CH1" bidirectional line) - (alternate "TIM2_ETR" bidirectional line) - (alternate "TIM5_CH1" bidirectional line) - (alternate "USART2_CTS" bidirectional line) - ) - (pin bidirectional line - (at 17.78 33.02 180) - (length 2.54) - (name "PA1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "11" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "ADC1_IN1" bidirectional line) - (alternate "I2S4_SD" bidirectional line) - (alternate "SPI4_MOSI" bidirectional line) - (alternate "TIM2_CH2" bidirectional line) - (alternate "TIM5_CH2" bidirectional line) - (alternate "USART2_RTS" bidirectional line) - ) - (pin bidirectional line - (at 17.78 30.48 180) - (length 2.54) - (name "PA2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "12" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "ADC1_IN2" bidirectional line) - (alternate "I2S_CKIN" bidirectional line) - (alternate "TIM2_CH3" bidirectional line) - (alternate "TIM5_CH3" bidirectional line) - (alternate "TIM9_CH1" bidirectional line) - (alternate "USART2_TX" bidirectional line) - ) - (pin bidirectional line - (at 17.78 27.94 180) - (length 2.54) - (name "PA3" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "13" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "ADC1_IN3" bidirectional line) - (alternate "I2S2_MCK" bidirectional line) - (alternate "TIM2_CH4" bidirectional line) - (alternate "TIM5_CH4" bidirectional line) - (alternate "TIM9_CH2" bidirectional line) - (alternate "USART2_RX" bidirectional line) - ) - (pin bidirectional line - (at 17.78 25.4 180) - (length 2.54) - (name "PA4" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "14" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "ADC1_IN4" bidirectional line) - (alternate "I2S1_WS" bidirectional line) - (alternate "I2S3_WS" bidirectional line) - (alternate "SPI1_NSS" bidirectional line) - (alternate "SPI3_NSS" bidirectional line) - (alternate "USART2_CK" bidirectional line) - ) - (pin bidirectional line - (at 17.78 22.86 180) - (length 2.54) - (name "PA5" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "15" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "ADC1_IN5" bidirectional line) - (alternate "I2S1_CK" bidirectional line) - (alternate "SPI1_SCK" bidirectional line) - (alternate "TIM2_CH1" bidirectional line) - (alternate "TIM2_ETR" bidirectional line) - ) - (pin bidirectional line - (at 17.78 20.32 180) - (length 2.54) - (name "PA6" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "16" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "ADC1_IN6" bidirectional line) - (alternate "I2S2_MCK" bidirectional line) - (alternate "SDIO_CMD" bidirectional line) - (alternate "SPI1_MISO" bidirectional line) - (alternate "TIM1_BKIN" bidirectional line) - (alternate "TIM3_CH1" bidirectional line) - ) - (pin bidirectional line - (at 17.78 17.78 180) - (length 2.54) - (name "PA7" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "17" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "ADC1_IN7" bidirectional line) - (alternate "I2S1_SD" bidirectional line) - (alternate "SPI1_MOSI" bidirectional line) - (alternate "TIM1_CH1N" bidirectional line) - (alternate "TIM3_CH2" bidirectional line) - ) - (pin bidirectional line - (at -15.24 7.62 0) - (length 2.54) - (name "PB0" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "18" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "ADC1_IN8" bidirectional line) - (alternate "I2S5_CK" bidirectional line) - (alternate "SPI5_SCK" bidirectional line) - (alternate "TIM1_CH2N" bidirectional line) - (alternate "TIM3_CH3" bidirectional line) - ) - (pin bidirectional line - (at -15.24 5.08 0) - (length 2.54) - (name "PB1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "19" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "ADC1_IN9" bidirectional line) - (alternate "I2S5_WS" bidirectional line) - (alternate "SPI5_NSS" bidirectional line) - (alternate "TIM1_CH3N" bidirectional line) - (alternate "TIM3_CH4" bidirectional line) - ) - (pin bidirectional line - (at -15.24 17.78 0) - (length 2.54) - (name "PC13" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "RTC_AF1" bidirectional line) - ) - (pin bidirectional line - (at -15.24 2.54 0) - (length 2.54) - (name "PB2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "20" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin bidirectional line - (at -15.24 -17.78 0) - (length 2.54) - (name "PB10" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "21" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "I2C2_SCL" bidirectional line) - (alternate "I2S2_CK" bidirectional line) - (alternate "I2S3_MCK" bidirectional line) - (alternate "SDIO_D7" bidirectional line) - (alternate "SPI2_SCK" bidirectional line) - (alternate "TIM2_CH3" bidirectional line) - ) - (pin power_out line - (at -15.24 -33.02 0) - (length 2.54) - (name "VCAP1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "22" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin power_in line - (at 0 -40.64 90) - (length 2.54) - (name "VSS" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "23" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin power_in line - (at 0 40.64 270) - (length 2.54) - (name "VDD" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "24" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin bidirectional line - (at -15.24 -20.32 0) - (length 2.54) - (name "PB12" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "25" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "I2C2_SMBA" bidirectional line) - (alternate "I2S2_WS" bidirectional line) - (alternate "I2S3_CK" bidirectional line) - (alternate "I2S4_WS" bidirectional line) - (alternate "SPI2_NSS" bidirectional line) - (alternate "SPI3_SCK" bidirectional line) - (alternate "SPI4_NSS" bidirectional line) - (alternate "TIM1_BKIN" bidirectional line) - ) - (pin bidirectional line - (at -15.24 -22.86 0) - (length 2.54) - (name "PB13" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "26" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "I2S2_CK" bidirectional line) - (alternate "I2S4_CK" bidirectional line) - (alternate "SPI2_SCK" bidirectional line) - (alternate "SPI4_SCK" bidirectional line) - (alternate "TIM1_CH1N" bidirectional line) - ) - (pin bidirectional line - (at -15.24 -25.4 0) - (length 2.54) - (name "PB14" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "27" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "I2S2_ext_SD" bidirectional line) - (alternate "SDIO_D6" bidirectional line) - (alternate "SPI2_MISO" bidirectional line) - (alternate "TIM1_CH2N" bidirectional line) - ) - (pin bidirectional line - (at -15.24 -27.94 0) - (length 2.54) - (name "PB15" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "28" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "ADC1_EXTI15" bidirectional line) - (alternate "I2S2_SD" bidirectional line) - (alternate "RTC_REFIN" bidirectional line) - (alternate "SDIO_CK" bidirectional line) - (alternate "SPI2_MOSI" bidirectional line) - (alternate "TIM1_CH3N" bidirectional line) - ) - (pin bidirectional line - (at 17.78 15.24 180) - (length 2.54) - (name "PA8" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "29" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "I2C3_SCL" bidirectional line) - (alternate "RCC_MCO_1" bidirectional line) - (alternate "SDIO_D1" bidirectional line) - (alternate "TIM1_CH1" bidirectional line) - (alternate "USART1_CK" bidirectional line) - (alternate "USB_OTG_FS_SOF" bidirectional line) - ) - (pin bidirectional line - (at -15.24 15.24 0) - (length 2.54) - (name "PC14" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "3" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "RCC_OSC32_IN" bidirectional line) - ) - (pin bidirectional line - (at 17.78 12.7 180) - (length 2.54) - (name "PA9" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "30" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "I2C3_SMBA" bidirectional line) - (alternate "SDIO_D2" bidirectional line) - (alternate "TIM1_CH2" bidirectional line) - (alternate "USART1_TX" bidirectional line) - (alternate "USB_OTG_FS_VBUS" bidirectional line) - ) - (pin bidirectional line - (at 17.78 10.16 180) - (length 2.54) - (name "PA10" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "31" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "I2S5_SD" bidirectional line) - (alternate "SPI5_MOSI" bidirectional line) - (alternate "TIM1_CH3" bidirectional line) - (alternate "USART1_RX" bidirectional line) - (alternate "USB_OTG_FS_ID" bidirectional line) - ) - (pin bidirectional line - (at 17.78 7.62 180) - (length 2.54) - (name "PA11" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "32" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "ADC1_EXTI11" bidirectional line) - (alternate "SPI4_MISO" bidirectional line) - (alternate "TIM1_CH4" bidirectional line) - (alternate "USART1_CTS" bidirectional line) - (alternate "USART6_TX" bidirectional line) - (alternate "USB_OTG_FS_DM" bidirectional line) - ) - (pin bidirectional line - (at 17.78 5.08 180) - (length 2.54) - (name "PA12" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "33" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "SPI5_MISO" bidirectional line) - (alternate "TIM1_ETR" bidirectional line) - (alternate "USART1_RTS" bidirectional line) - (alternate "USART6_RX" bidirectional line) - (alternate "USB_OTG_FS_DP" bidirectional line) - ) - (pin bidirectional line - (at 17.78 2.54 180) - (length 2.54) - (name "PA13" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "34" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "SYS_JTMS-SWDIO" bidirectional line) - ) - (pin passive line - (at 0 -40.64 90) - (length 2.54) hide - (name "VSS" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "35" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin power_in line - (at 2.54 40.64 270) - (length 2.54) - (name "VDD" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "36" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin bidirectional line - (at 17.78 0 180) - (length 2.54) - (name "PA14" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "37" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "SYS_JTCK-SWCLK" bidirectional line) - ) - (pin bidirectional line - (at 17.78 -2.54 180) - (length 2.54) - (name "PA15" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "38" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "ADC1_EXTI15" bidirectional line) - (alternate "I2S1_WS" bidirectional line) - (alternate "I2S3_WS" bidirectional line) - (alternate "SPI1_NSS" bidirectional line) - (alternate "SPI3_NSS" bidirectional line) - (alternate "SYS_JTDI" bidirectional line) - (alternate "TIM2_CH1" bidirectional line) - (alternate "TIM2_ETR" bidirectional line) - (alternate "USART1_TX" bidirectional line) - ) - (pin bidirectional line - (at -15.24 0 0) - (length 2.54) - (name "PB3" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "39" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "I2C2_SDA" bidirectional line) - (alternate "I2S1_CK" bidirectional line) - (alternate "I2S3_CK" bidirectional line) - (alternate "SPI1_SCK" bidirectional line) - (alternate "SPI3_SCK" bidirectional line) - (alternate "SYS_JTDO-SWO" bidirectional line) - (alternate "TIM2_CH2" bidirectional line) - (alternate "USART1_RX" bidirectional line) - ) - (pin bidirectional line - (at -15.24 12.7 0) - (length 2.54) - (name "PC15" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "4" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "ADC1_EXTI15" bidirectional line) - (alternate "RCC_OSC32_OUT" bidirectional line) - ) - (pin bidirectional line - (at -15.24 -2.54 0) - (length 2.54) - (name "PB4" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "40" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "I2C3_SDA" bidirectional line) - (alternate "I2S3_ext_SD" bidirectional line) - (alternate "SDIO_D0" bidirectional line) - (alternate "SPI1_MISO" bidirectional line) - (alternate "SPI3_MISO" bidirectional line) - (alternate "SYS_JTRST" bidirectional line) - (alternate "TIM3_CH1" bidirectional line) - ) - (pin bidirectional line - (at -15.24 -5.08 0) - (length 2.54) - (name "PB5" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "41" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "I2C1_SMBA" bidirectional line) - (alternate "I2S1_SD" bidirectional line) - (alternate "I2S3_SD" bidirectional line) - (alternate "SDIO_D3" bidirectional line) - (alternate "SPI1_MOSI" bidirectional line) - (alternate "SPI3_MOSI" bidirectional line) - (alternate "TIM3_CH2" bidirectional line) - ) - (pin bidirectional line - (at -15.24 -7.62 0) - (length 2.54) - (name "PB6" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "42" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "I2C1_SCL" bidirectional line) - (alternate "TIM4_CH1" bidirectional line) - (alternate "USART1_TX" bidirectional line) - ) - (pin bidirectional line - (at -15.24 -10.16 0) - (length 2.54) - (name "PB7" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "43" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "I2C1_SDA" bidirectional line) - (alternate "SDIO_D0" bidirectional line) - (alternate "TIM4_CH2" bidirectional line) - (alternate "USART1_RX" bidirectional line) - ) - (pin input line - (at -15.24 30.48 0) - (length 2.54) - (name "BOOT0" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "44" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin bidirectional line - (at -15.24 -12.7 0) - (length 2.54) - (name "PB8" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "45" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "I2C1_SCL" bidirectional line) - (alternate "I2C3_SDA" bidirectional line) - (alternate "I2S5_SD" bidirectional line) - (alternate "SDIO_D4" bidirectional line) - (alternate "SPI5_MOSI" bidirectional line) - (alternate "TIM10_CH1" bidirectional line) - (alternate "TIM4_CH3" bidirectional line) - ) - (pin bidirectional line - (at -15.24 -15.24 0) - (length 2.54) - (name "PB9" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "46" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "I2C1_SDA" bidirectional line) - (alternate "I2C2_SDA" bidirectional line) - (alternate "I2S2_WS" bidirectional line) - (alternate "SDIO_D5" bidirectional line) - (alternate "SPI2_NSS" bidirectional line) - (alternate "TIM11_CH1" bidirectional line) - (alternate "TIM4_CH4" bidirectional line) - ) - (pin passive line - (at 0 -40.64 90) - (length 2.54) hide - (name "VSS" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "47" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin power_in line - (at 5.08 40.64 270) - (length 2.54) - (name "VDD" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "48" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin passive line - (at 0 -40.64 90) - (length 2.54) hide - (name "VSS" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "49" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin bidirectional line - (at -15.24 25.4 0) - (length 2.54) - (name "PH0" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "5" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "RCC_OSC_IN" bidirectional line) - ) - (pin bidirectional line - (at -15.24 22.86 0) - (length 2.54) - (name "PH1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "6" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (alternate "RCC_OSC_OUT" bidirectional line) - ) - (pin input line - (at -15.24 35.56 0) - (length 2.54) - (name "NRST" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "7" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin power_in line - (at 2.54 -40.64 90) - (length 2.54) - (name "VSSA" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "8" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin power_in line - (at 7.62 40.64 270) - (length 2.54) - (name "VDDA" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "9" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "Mechanical:Fiducial" - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "FID" - (at 0 5.08 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "Fiducial" - (at 0 3.175 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Fiducial Marker" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "fiducial marker" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "Fiducial*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "Fiducial_0_1" - (circle - (center 0 0) - (radius 1.27) - (stroke - (width 0.508) - (type default) - ) - (fill - (type background) - ) - ) - ) - ) - (symbol "Regulator_Linear:AMS1117-3.3" - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "U" - (at -3.81 3.175 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "AMS1117-3.3" - (at 0 3.175 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-223-3_TabPin2" - (at 0 5.08 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "http://www.advanced-monolithic.com/pdf/ds1117.pdf" - (at 2.54 -6.35 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "1A Low Dropout regulator, positive, 3.3V fixed output, SOT-223" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "linear regulator ldo fixed positive" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "SOT?223*TabPin2*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "AMS1117-3.3_0_1" - (rectangle - (start -5.08 -5.08) - (end 5.08 1.905) - (stroke - (width 0.254) - (type default) - ) - (fill - (type background) - ) - ) - ) - (symbol "AMS1117-3.3_1_1" - (pin power_in line - (at 0 -7.62 90) - (length 2.54) - (name "GND" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin power_out line - (at 7.62 0 180) - (length 2.54) - (name "VO" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin power_in line - (at -7.62 0 0) - (length 2.54) - (name "VI" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "3" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "Sensor_Magnetic:A1101ELHL" - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "U" - (at 0 11.43 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "A1101ELHL" - (at 0 8.89 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23W" - (at 0 -8.89 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 0 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Hall effect switch, unipolar, Bop=100G, Brp=45G, -40C to +85C, SOT-23W" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "hall switch" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_fp_filters" "SOT?23*" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "A1101ELHL_0_1" - (rectangle - (start -5.08 7.62) - (end 5.08 -7.62) - (stroke - (width 0.254) - (type default) - ) - (fill - (type background) - ) - ) - ) - (symbol "A1101ELHL_1_1" - (pin power_in line - (at -2.54 10.16 270) - (length 2.54) - (name "VCC" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin open_collector line - (at 7.62 0 180) - (length 2.54) - (name "VOUT" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "2" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - (pin power_in line - (at -2.54 -10.16 90) - (length 2.54) - (name "GND" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "3" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "jlcpcb:GT-USB-7010ASV" - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "U" - (at 0 1.27 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "GT-USB-7010ASV" - (at 0 -2.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "footprint:USB-C-SMD_G-SWITCH_GT-USB-7010ASV" - (at 0 -10.16 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (hide yes) - ) - ) - (property "Datasheet" "https://atta.szlcsc.com/upload/public/pdf/source/20220407/8043DBBC37E1BDE9D4FD36EE7A4A9BB9.pdf" - (at -2.286 0.127 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - (hide yes) - ) - ) - (property "Description" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C2988369" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "C2988369" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "GT-USB-7010ASV_0_0" - (rectangle - (start -10.16 5.08) - (end 7.62 -27.94) - (stroke - (width 0) - (type default) - ) - (fill - (type background) - ) - ) - (circle - (center -8.89 3.81) - (radius 0.381) - (stroke - (width 0) - (type default) - ) - (fill - (type background) - ) - ) - (pin unspecified line - (at 10.16 -25.4 180) - (length 2.54) - (name "SHELL" - (effects - (font - (size 1 1) - ) - ) - ) - (number "1" - (effects - (font - (size 1 1) - ) - ) - ) - ) - (pin unspecified line - (at 10.16 -22.86 180) - (length 2.54) - (name "SHELL" - (effects - (font - (size 1 1) - ) - ) - ) - (number "2" - (effects - (font - (size 1 1) - ) - ) - ) - ) - (pin unspecified line - (at 10.16 0 180) - (length 2.54) - (name "SHELL" - (effects - (font - (size 1 1) - ) - ) - ) - (number "3" - (effects - (font - (size 1 1) - ) - ) - ) - ) - (pin unspecified line - (at 10.16 2.54 180) - (length 2.54) - (name "SHELL" - (effects - (font - (size 1 1) - ) - ) - ) - (number "4" - (effects - (font - (size 1 1) - ) - ) - ) - ) - (pin unspecified line - (at -12.7 2.54 0) - (length 2.54) - (name "GND" - (effects - (font - (size 1 1) - ) - ) - ) - (number "A1B12" - (effects - (font - (size 1 1) - ) - ) - ) - ) - (pin unspecified line - (at -12.7 0 0) - (length 2.54) - (name "VBUS" - (effects - (font - (size 1 1) - ) - ) - ) - (number "A4B9" - (effects - (font - (size 1 1) - ) - ) - ) - ) - (pin unspecified line - (at -12.7 -5.08 0) - (length 2.54) - (name "CC1" - (effects - (font - (size 1 1) - ) - ) - ) - (number "A5" - (effects - (font - (size 1 1) - ) - ) - ) - ) - (pin unspecified line - (at -12.7 -10.16 0) - (length 2.54) - (name "DP1" - (effects - (font - (size 1 1) - ) - ) - ) - (number "A6" - (effects - (font - (size 1 1) - ) - ) - ) - ) - (pin unspecified line - (at -12.7 -12.7 0) - (length 2.54) - (name "DN1" - (effects - (font - (size 1 1) - ) - ) - ) - (number "A7" - (effects - (font - (size 1 1) - ) - ) - ) - ) - (pin unspecified line - (at -12.7 -17.78 0) - (length 2.54) - (name "SBU1" - (effects - (font - (size 1 1) - ) - ) - ) - (number "A8" - (effects - (font - (size 1 1) - ) - ) - ) - ) - (pin unspecified line - (at -12.7 -25.4 0) - (length 2.54) - (name "GND" - (effects - (font - (size 1 1) - ) - ) - ) - (number "B1A12" - (effects - (font - (size 1 1) - ) - ) - ) - ) - (pin unspecified line - (at -12.7 -22.86 0) - (length 2.54) - (name "VBUS" - (effects - (font - (size 1 1) - ) - ) - ) - (number "B4A9" - (effects - (font - (size 1 1) - ) - ) - ) - ) - (pin unspecified line - (at -12.7 -20.32 0) - (length 2.54) - (name "CC2" - (effects - (font - (size 1 1) - ) - ) - ) - (number "B5" - (effects - (font - (size 1 1) - ) - ) - ) - ) - (pin unspecified line - (at -12.7 -15.24 0) - (length 2.54) - (name "DP2" - (effects - (font - (size 1 1) - ) - ) - ) - (number "B6" - (effects - (font - (size 1 1) - ) - ) - ) - ) - (pin unspecified line - (at -12.7 -7.62 0) - (length 2.54) - (name "DN2" - (effects - (font - (size 1 1) - ) - ) - ) - (number "B7" - (effects - (font - (size 1 1) - ) - ) - ) - ) - (pin unspecified line - (at -12.7 -2.54 0) - (length 2.54) - (name "SBU2" - (effects - (font - (size 1 1) - ) - ) - ) - (number "B8" - (effects - (font - (size 1 1) - ) - ) - ) - ) - ) - ) - (symbol "power:+3.3V" - (power) - (pin_names - (offset 0) - ) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "#PWR" - (at 0 -3.81 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3V" - (at 0 3.556 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Power symbol creates a global label with name \"+3.3V\"" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "global power" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "+3.3V_0_1" - (polyline - (pts - (xy -0.762 1.27) (xy 0 2.54) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 0 0) (xy 0 2.54) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 0 2.54) (xy 0.762 1.27) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - ) - (symbol "+3.3V_1_1" - (pin power_in line - (at 0 0 90) - (length 0) hide - (name "+3.3V" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "power:+3.3VA" - (power) - (pin_names - (offset 0) - ) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "#PWR" - (at 0 -3.81 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 0 3.556 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Power symbol creates a global label with name \"+3.3VA\"" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "global power" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "+3.3VA_0_1" - (polyline - (pts - (xy -0.762 1.27) (xy 0 2.54) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 0 0) (xy 0 2.54) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 0 2.54) (xy 0.762 1.27) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - ) - (symbol "+3.3VA_1_1" - (pin power_in line - (at 0 0 90) - (length 0) hide - (name "+3.3VA" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "power:+5V" - (power) - (pin_names - (offset 0) - ) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "#PWR" - (at 0 -3.81 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+5V" - (at 0 3.556 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Power symbol creates a global label with name \"+5V\"" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "global power" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "+5V_0_1" - (polyline - (pts - (xy -0.762 1.27) (xy 0 2.54) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 0 0) (xy 0 2.54) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - (polyline - (pts - (xy 0 2.54) (xy 0.762 1.27) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - ) - (symbol "+5V_1_1" - (pin power_in line - (at 0 0 90) - (length 0) hide - (name "+5V" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "power:GND" - (power) - (pin_names - (offset 0) - ) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "#PWR" - (at 0 -6.35 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 0 -3.81 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Power symbol creates a global label with name \"GND\" , ground" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "global power" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "GND_0_1" - (polyline - (pts - (xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - ) - (symbol "GND_1_1" - (pin power_in line - (at 0 0 270) - (length 0) hide - (name "GND" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - ) - (symbol "power:PWR_FLAG" - (power) - (pin_numbers hide) - (pin_names - (offset 0) hide) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (property "Reference" "#FLG" - (at 0 1.905 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "PWR_FLAG" - (at 0 3.81 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "Special symbol for telling ERC where power comes from" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "ki_keywords" "flag power" - (at 0 0 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (symbol "PWR_FLAG_0_0" - (pin power_out line - (at 0 0 90) - (length 0) - (name "pwr" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (number "1" - (effects - (font - (size 1.27 1.27) - ) - ) - ) - ) - ) - (symbol "PWR_FLAG_0_1" - (polyline - (pts - (xy 0 0) (xy 0 1.27) (xy -1.016 1.905) (xy 0 2.54) (xy 1.016 1.905) (xy 0 1.27) - ) - (stroke - (width 0) - (type default) - ) - (fill - (type none) - ) - ) - ) - ) - ) - (junction - (at 415.29 370.84) - (diameter 0) - (color 0 0 0 0) - (uuid "008ac169-fa98-403a-b1c3-2143286fdd33") - ) - (junction - (at 511.81 226.06) - (diameter 0) - (color 0 0 0 0) - (uuid "09d31f1a-6329-41ac-b348-ae2aa9f15a6c") - ) - (junction - (at 280.67 354.33) - (diameter 0) - (color 0 0 0 0) - (uuid "0af5bc5b-89dd-48e2-9f17-fc8e5abd83e0") - ) - (junction - (at 490.22 240.03) - (diameter 0) - (color 0 0 0 0) - (uuid "0c1b2909-ca70-4261-a1dc-c2a46c19d4e6") - ) - (junction - (at 487.68 240.03) - (diameter 0) - (color 0 0 0 0) - (uuid "24ba0126-b5c7-41b3-be56-3a874d946339") - ) - (junction - (at 415.29 350.52) - (diameter 0) - (color 0 0 0 0) - (uuid "264c0a30-a095-413d-8ca5-6078c29f2e0e") - ) - (junction - (at 431.8 226.06) - (diameter 0) - (color 0 0 0 0) - (uuid "2ac70976-ac82-436b-bffa-a93aa7eccdd1") - ) - (junction - (at 443.23 273.05) - (diameter 0) - (color 0 0 0 0) - (uuid "2d3bd1e3-c812-4e2a-a09e-9bbca8e59ef5") - ) - (junction - (at 457.2 292.1) - (diameter 0) - (color 0 0 0 0) - (uuid "31d603d4-d988-4ed7-9547-4eeaa40dbed2") - ) - (junction - (at 162.56 353.06) - (diameter 0) - (color 0 0 0 0) - (uuid "366eb0c3-479e-4159-85ae-915d10658542") - ) - (junction - (at 317.5 231.14) - (diameter 0) - (color 0 0 0 0) - (uuid "3832a80a-840f-409f-bc6a-24d4e194de34") - ) - (junction - (at 415.29 365.76) - (diameter 0) - (color 0 0 0 0) - (uuid "3936a090-42c0-433f-941a-fe0f0a6b83a3") - ) - (junction - (at 50.8 289.56) - (diameter 0) - (color 0 0 0 0) - (uuid "4280d99d-cfda-4f2d-bcbd-88a2d628ef64") - ) - (junction - (at 149.86 359.41) - (diameter 0) - (color 0 0 0 0) - (uuid "42b25582-c92a-4830-8701-74c7c5f41dd1") - ) - (junction - (at 266.7 344.17) - (diameter 0) - (color 0 0 0 0) - (uuid "42b86272-f34b-4cbf-a731-1280e9cc8232") - ) - (junction - (at 264.16 288.29) - (diameter 0) - (color 0 0 0 0) - (uuid "42f7eb84-b338-4aed-a28f-3e78617f4087") - ) - (junction - (at 190.5 288.29) - (diameter 0) - (color 0 0 0 0) - (uuid "432904ce-3464-40a2-a545-689e5096a665") - ) - (junction - (at 457.2 226.06) - (diameter 0) - (color 0 0 0 0) - (uuid "4edf93b9-97b6-4e3d-b015-492cfa9034ae") - ) - (junction - (at 386.08 353.06) - (diameter 0) - (color 0 0 0 0) - (uuid "4fec6846-2dcb-40a3-bd68-eed1899ab2b1") - ) - (junction - (at 27.94 232.41) - (diameter 0) - (color 0 0 0 0) - (uuid "540bc444-dfab-4119-b278-fe3869dc1537") - ) - (junction - (at 73.66 341.63) - (diameter 0) - (color 0 0 0 0) - (uuid "5b103741-0cf8-45af-83db-95103ee3d097") - ) - (junction - (at 469.9 226.06) - (diameter 0) - (color 0 0 0 0) - (uuid "5c6516d2-72b0-4e97-9cd0-dc62bfc4b31b") - ) - (junction - (at 149.86 367.03) - (diameter 0) - (color 0 0 0 0) - (uuid "620019aa-d815-40be-b1cd-8676011adb3c") - ) - (junction - (at 457.2 236.22) - (diameter 0) - (color 0 0 0 0) - (uuid "7272150a-17b9-4690-83a3-0c9771e7c7a3") - ) - (junction - (at 419.1 236.22) - (diameter 0) - (color 0 0 0 0) - (uuid "762cb1b8-f2bd-44c5-87a0-d8c2522cad81") - ) - (junction - (at 553.72 226.06) - (diameter 0) - (color 0 0 0 0) - (uuid "8354cfe6-5db1-4744-9dbc-2be6fd1e3a08") - ) - (junction - (at 497.84 226.06) - (diameter 0) - (color 0 0 0 0) - (uuid "89fa809a-2e72-4b3d-aae5-fd6cb22675ec") - ) - (junction - (at 293.37 354.33) - (diameter 0) - (color 0 0 0 0) - (uuid "8f32544f-3dfc-4563-bd3e-0f98517b598e") - ) - (junction - (at 340.36 288.29) - (diameter 0) - (color 0 0 0 0) - (uuid "94b6a33d-d8a4-468d-85df-9a8305d0c72d") - ) - (junction - (at 257.81 344.17) - (diameter 0) - (color 0 0 0 0) - (uuid "9513d0de-d168-4bce-9287-6f981da236f7") - ) - (junction - (at 444.5 226.06) - (diameter 0) - (color 0 0 0 0) - (uuid "960493b3-94b2-4589-ac6a-811ba74d32fc") - ) - (junction - (at 138.43 353.06) - (diameter 0) - (color 0 0 0 0) - (uuid "9c9770af-bfa8-414a-a260-1c29cd3c3413") - ) - (junction - (at 490.22 323.85) - (diameter 0) - (color 0 0 0 0) - (uuid "a3952e69-eb88-410c-b4a6-b2103438f5b3") - ) - (junction - (at 527.05 236.22) - (diameter 0) - (color 0 0 0 0) - (uuid "a92b444b-4a59-4052-9b85-fffdd32433d8") - ) - (junction - (at 492.76 240.03) - (diameter 0) - (color 0 0 0 0) - (uuid "a9590b3b-37ce-4a45-a6bb-7c5c55daa5ee") - ) - (junction - (at 257.81 354.33) - (diameter 0) - (color 0 0 0 0) - (uuid "abfae612-aa3b-4b62-92b3-0cb74c172db5") - ) - (junction - (at 93.98 232.41) - (diameter 0) - (color 0 0 0 0) - (uuid "ac4e25cb-c899-432a-bc30-a43613fccd26") - ) - (junction - (at 431.8 236.22) - (diameter 0) - (color 0 0 0 0) - (uuid "b6768517-5a26-4f0a-8a80-142eba0445d2") - ) - (junction - (at 444.5 236.22) - (diameter 0) - (color 0 0 0 0) - (uuid "b8c82f26-97dd-43d5-ac13-873f55935296") - ) - (junction - (at 116.84 289.56) - (diameter 0) - (color 0 0 0 0) - (uuid "c4f6f86b-9817-4bfb-8dd7-c6401b053d30") - ) - (junction - (at 293.37 344.17) - (diameter 0) - (color 0 0 0 0) - (uuid "c562952a-f519-402b-99f7-56332020450a") - ) - (junction - (at 453.39 289.56) - (diameter 0) - (color 0 0 0 0) - (uuid "c77f2a64-09a7-4706-bd86-1cbda43e9ba4") - ) - (junction - (at 241.3 231.14) - (diameter 0) - (color 0 0 0 0) - (uuid "c864d8f3-e30e-4280-a9df-d565ed3a72ba") - ) - (junction - (at 453.39 273.05) - (diameter 0) - (color 0 0 0 0) - (uuid "cb1469dc-b5d9-40c6-9bed-1e3ac987bd02") - ) - (junction - (at 167.64 231.14) - (diameter 0) - (color 0 0 0 0) - (uuid "d90bfa8b-8526-4a02-808a-33402d8d4015") - ) - (junction - (at 384.81 360.68) - (diameter 0) - (color 0 0 0 0) - (uuid "dd436419-26e6-4f77-b462-c60be72549b4") - ) - (junction - (at 527.05 226.06) - (diameter 0) - (color 0 0 0 0) - (uuid "ebc36753-f430-4afd-9d9a-31829b394687") - ) - (junction - (at 487.68 226.06) - (diameter 0) - (color 0 0 0 0) - (uuid "f0802ff0-936d-4755-a5fa-a71e62b568e0") - ) - (no_connect - (at 353.06 257.81) - (uuid "0aa56732-3704-4fe7-9911-e48cf3ebd784") - ) - (no_connect - (at 508 266.7) - (uuid "113c1528-6fc4-46b6-a845-429fda5f5b02") - ) - (no_connect - (at 360.68 342.9) - (uuid "16eb0256-7f1f-4ab0-afb9-7e75c96f39f0") - ) - (no_connect - (at 508 271.78) - (uuid "1d1e10c4-fd5b-4955-9c2e-29f7d24123a2") - ) - (no_connect - (at 474.98 299.72) - (uuid "20213315-f04c-41ea-8b9c-d83251ccec45") - ) - (no_connect - (at 474.98 294.64) - (uuid "20e02cfd-b562-4a82-9fa6-a3d0761a7363") - ) - (no_connect - (at 474.98 281.94) - (uuid "328a8ddf-f3ea-45e8-9967-f8ec43a2f579") - ) - (no_connect - (at 353.06 278.13) - (uuid "352fbf22-e0e2-4a23-bf3b-8d5a55ef0a83") - ) - (no_connect - (at 474.98 269.24) - (uuid "3e7cc192-3095-46a2-b94d-4328708a0e28") - ) - (no_connect - (at 474.98 279.4) - (uuid "4536dff6-8ae9-4f3e-bb51-f6cf70ace188") - ) - (no_connect - (at 353.06 265.43) - (uuid "51d9ac24-c259-4f92-a715-3beaad933d79") - ) - (no_connect - (at 360.68 370.84) - (uuid "54982176-8379-46bd-9fb5-b8d58a4a698a") - ) - (no_connect - (at 353.06 270.51) - (uuid "602c4b56-38b9-41dc-93ab-c608ef8899b9") - ) - (no_connect - (at 474.98 274.32) - (uuid "770aa40b-f37c-4955-b547-64215ecca994") - ) - (no_connect - (at 474.98 297.18) - (uuid "79be4164-5f18-4fa4-8923-21016a14acc1") - ) - (no_connect - (at 508 284.48) - (uuid "7af94662-88d5-490c-bc5d-eb1e72b7e60f") - ) - (no_connect - (at 474.98 314.96) - (uuid "7f5f0fd5-51af-46a0-9fa8-3b26d2226909") - ) - (no_connect - (at 474.98 264.16) - (uuid "8492d938-b83d-443b-b910-d5b67c721af2") - ) - (no_connect - (at 474.98 287.02) - (uuid "84c320f9-bb7d-49d8-9eb3-61746f0caf4e") - ) - (no_connect - (at 360.68 368.3) - (uuid "863bd011-474d-4b54-8726-13ca65d78ac9") - ) - (no_connect - (at 508 246.38) - (uuid "89ffe981-eba5-45aa-9959-f031f61e8f9c") - ) - (no_connect - (at 353.06 280.67) - (uuid "8dcb3ef4-e203-473e-97dc-606558b986d8") - ) - (no_connect - (at 383.54 363.22) - (uuid "978b4f7b-b7b2-4a87-8a6d-cdd658bc4b97") - ) - (no_connect - (at 353.06 255.27) - (uuid "9c832e8a-6e87-4121-8ab1-049b27a6fd59") - ) - (no_connect - (at 474.98 284.48) - (uuid "9da2c6eb-544e-4fd4-8b92-783ea8bab21b") - ) - (no_connect - (at 508 269.24) - (uuid "a34ff040-4fb9-42ae-90e5-8dce43190b0f") - ) - (no_connect - (at 360.68 345.44) - (uuid "acacfe41-ef7b-4504-899c-f1273fdfbe32") - ) - (no_connect - (at 474.98 266.7) - (uuid "adc7ce98-7569-4359-883a-aa899667cb5f") - ) - (no_connect - (at 353.06 250.19) - (uuid "b38dde7a-cd0b-4ea3-9ffe-28777919d95e") - ) - (no_connect - (at 474.98 276.86) - (uuid "b56a2103-9e0d-49a9-903a-23c6582c189c") - ) - (no_connect - (at 353.06 262.89) - (uuid "c00fb56a-21cd-4b3f-81c1-f8a590059ab9") - ) - (no_connect - (at 353.06 260.35) - (uuid "d2b1d091-161c-4598-9ad0-e03aeac1fb46") - ) - (no_connect - (at 353.06 273.05) - (uuid "de07dac0-dfa2-46c4-b06a-4f0457e4aa34") - ) - (no_connect - (at 353.06 267.97) - (uuid "e7d184a5-a5a2-412d-9eb4-04604161acd3") - ) - (no_connect - (at 508 248.92) - (uuid "ec3bf6a9-2a71-46be-b8de-a1e286d56e3e") - ) - (no_connect - (at 383.54 347.98) - (uuid "f2041d15-9655-41fd-9aff-12742e5da9b1") - ) - (no_connect - (at 508 251.46) - (uuid "f4da7356-4c7e-405d-a62c-6e0925c75e53") - ) - (no_connect - (at 353.06 275.59) - (uuid "f8c767de-d808-4c92-835d-cf3c04517067") - ) - (no_connect - (at 353.06 252.73) - (uuid "fe2c914b-4c92-49d0-91b3-ec75ed8974e6") - ) - (wire - (pts - (xy 149.86 358.14) (xy 149.86 359.41) - ) - (stroke - (width 0) - (type default) - ) - (uuid "00da14bd-e107-4e3e-aa62-2ff5ea9fc12d") - ) - (wire - (pts - (xy 495.3 240.03) (xy 492.76 240.03) - ) - (stroke - (width 0) - (type default) - ) - (uuid "01053b55-b9e0-485b-890b-36e5f88a4e3a") - ) - (wire - (pts - (xy 149.86 347.98) (xy 149.86 345.44) - ) - (stroke - (width 0) - (type default) - ) - (uuid "01ed0baa-fc94-416d-b906-f5b3591d6d4b") - ) - (wire - (pts - (xy 537.21 226.06) (xy 527.05 226.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "0255de56-1fa3-4d77-b275-72deae71f05b") - ) - (wire - (pts - (xy 553.72 224.79) (xy 553.72 226.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "065e9e7e-1163-44a3-9d6c-2275e352d71a") - ) - (wire - (pts - (xy 408.94 365.76) (xy 415.29 365.76) - ) - (stroke - (width 0) - (type default) - ) - (uuid "06900cee-ba60-431e-837d-c6971172c011") - ) - (wire - (pts - (xy 340.36 234.95) (xy 340.36 231.14) - ) - (stroke - (width 0) - (type default) - ) - (uuid "08452a16-9257-449f-917a-d82631139c61") - ) - (wire - (pts - (xy 497.84 226.06) (xy 497.84 241.3) - ) - (stroke - (width 0) - (type default) - ) - (uuid "08d584d2-ae59-4232-b652-056afa263751") - ) - (wire - (pts - (xy 293.37 344.17) (xy 293.37 345.44) - ) - (stroke - (width 0) - (type default) - ) - (uuid "095022e7-79b3-4d93-a288-d1b142806ba0") - ) - (wire - (pts - (xy 431.8 226.06) (xy 444.5 226.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "0a72b445-bf31-43fc-a0a1-4febfde15cb7") - ) - (wire - (pts - (xy 431.8 234.95) (xy 431.8 236.22) - ) - (stroke - (width 0) - (type default) - ) - (uuid "0af612f1-0d17-43b8-a820-1c3cb32638b7") - ) - (wire - (pts - (xy 162.56 353.06) (xy 162.56 358.14) - ) - (stroke - (width 0) - (type default) - ) - (uuid "0c7603e2-7545-40b8-b43a-b4cf06987eb2") - ) - (wire - (pts - (xy 383.54 342.9) (xy 415.29 342.9) - ) - (stroke - (width 0) - (type default) - ) - (uuid "0def1d69-8429-4d78-99b9-d11ceb17800c") - ) - (wire - (pts - (xy 162.56 367.03) (xy 162.56 365.76) - ) - (stroke - (width 0) - (type default) - ) - (uuid "0e5c555a-4379-42bb-8d07-d33e9031d54a") - ) - (wire - (pts - (xy 431.8 226.06) (xy 431.8 227.33) - ) - (stroke - (width 0) - (type default) - ) - (uuid "0ee1760b-6563-45e4-ac7a-84e1e1342bda") - ) - (wire - (pts - (xy 383.54 360.68) (xy 384.81 360.68) - ) - (stroke - (width 0) - (type default) - ) - (uuid "0f931dc3-5d1e-480a-8597-f76b0fea20ab") - ) - (wire - (pts - (xy 264.16 234.95) (xy 264.16 231.14) - ) - (stroke - (width 0) - (type default) - ) - (uuid "1238560b-1dea-4cde-9a14-86ad602f110a") - ) - (wire - (pts - (xy 311.15 344.17) (xy 320.04 344.17) - ) - (stroke - (width 0) - (type default) - ) - (uuid "127cf06f-1138-40f4-b553-106aaed7d501") - ) - (wire - (pts - (xy 144.78 345.44) (xy 144.78 359.41) - ) - (stroke - (width 0) - (type default) - ) - (uuid "12eb8e59-9d05-464e-b6f4-20535a23330c") - ) - (wire - (pts - (xy 527.05 226.06) (xy 527.05 227.33) - ) - (stroke - (width 0) - (type default) - ) - (uuid "1a23a1e7-c92e-4d3b-bf2f-b819856687c8") - ) - (wire - (pts - (xy 320.04 353.06) (xy 320.04 354.33) - ) - (stroke - (width 0) - (type default) - ) - (uuid "1f6a8b38-7b11-4247-bd7b-9a0e313b9aa2") - ) - (wire - (pts - (xy 383.54 350.52) (xy 401.32 350.52) - ) - (stroke - (width 0) - (type default) - ) - (uuid "1f797015-8a49-465e-836d-7a2f10a3b230") - ) - (wire - (pts - (xy 320.04 354.33) (xy 293.37 354.33) - ) - (stroke - (width 0) - (type default) - ) - (uuid "2043ef38-8c61-4464-a1c3-997ca1305c6e") - ) - (wire - (pts - (xy 138.43 367.03) (xy 149.86 367.03) - ) - (stroke - (width 0) - (type default) - ) - (uuid "217a4aba-1070-47f3-9fa7-a2306544035a") - ) - (wire - (pts - (xy 162.56 367.03) (xy 149.86 367.03) - ) - (stroke - (width 0) - (type default) - ) - (uuid "2189b882-ca55-4209-bf8f-4b09daa4c603") - ) - (wire - (pts - (xy 250.19 344.17) (xy 257.81 344.17) - ) - (stroke - (width 0) - (type default) - ) - (uuid "24c9c4bb-bba9-442a-b760-7c89e9f4c66b") - ) - (wire - (pts - (xy 443.23 292.1) (xy 457.2 292.1) - ) - (stroke - (width 0) - (type default) - ) - (uuid "2568bec9-11f7-4077-a439-b8614cf40dbd") - ) - (wire - (pts - (xy 457.2 273.05) (xy 453.39 273.05) - ) - (stroke - (width 0) - (type default) - ) - (uuid "29f613ff-b84e-4ba0-b24e-efd47cc166f8") - ) - (wire - (pts - (xy 444.5 226.06) (xy 444.5 227.33) - ) - (stroke - (width 0) - (type default) - ) - (uuid "2c51ae5d-7dd9-44a7-8a1f-d7e8d0323c55") - ) - (wire - (pts - (xy 419.1 226.06) (xy 431.8 226.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "2c576082-53ee-4f39-8cb2-d8ea494f8151") - ) - (wire - (pts - (xy 257.81 344.17) (xy 266.7 344.17) - ) - (stroke - (width 0) - (type default) - ) - (uuid "2dbe2af3-8e22-409d-868a-4cd5c87f2af9") - ) - (wire - (pts - (xy 487.68 224.79) (xy 487.68 226.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "2ec02788-8cff-460f-aec7-533e5313d894") - ) - (wire - (pts - (xy 419.1 234.95) (xy 419.1 236.22) - ) - (stroke - (width 0) - (type default) - ) - (uuid "324398bf-afcc-40e2-b3f3-8e8bb69be171") - ) - (wire - (pts - (xy 73.66 372.11) (xy 76.2 372.11) - ) - (stroke - (width 0) - (type default) - ) - (uuid "3290a641-9c66-4fb2-9cea-8d6da47b9e95") - ) - (wire - (pts - (xy 453.39 273.05) (xy 443.23 273.05) - ) - (stroke - (width 0) - (type default) - ) - (uuid "34af1d47-a580-4b66-9df8-b610c4cadca3") - ) - (wire - (pts - (xy 162.56 353.06) (xy 165.1 353.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "34d780c9-064e-43c4-9152-4282ee42a59b") - ) - (wire - (pts - (xy 50.8 236.22) (xy 50.8 232.41) - ) - (stroke - (width 0) - (type default) - ) - (uuid "37aa71e6-e8bf-40e3-b8d7-bd340b194b28") - ) - (wire - (pts - (xy 383.54 358.14) (xy 386.08 358.14) - ) - (stroke - (width 0) - (type default) - ) - (uuid "383d49a8-dafb-4f30-a1da-1de359d549b3") - ) - (wire - (pts - (xy 527.05 236.22) (xy 527.05 237.49) - ) - (stroke - (width 0) - (type default) - ) - (uuid "391e94aa-e69a-480b-b197-a60819243d5e") - ) - (wire - (pts - (xy 73.66 341.63) (xy 76.2 341.63) - ) - (stroke - (width 0) - (type default) - ) - (uuid "3dbc00ff-55d3-449e-b804-e0f3d2bd31d6") - ) - (wire - (pts - (xy 469.9 234.95) (xy 469.9 236.22) - ) - (stroke - (width 0) - (type default) - ) - (uuid "3dd65c02-29a2-49b2-a1d3-51ed27a87244") - ) - (wire - (pts - (xy 149.86 367.03) (xy 149.86 368.3) - ) - (stroke - (width 0) - (type default) - ) - (uuid "42facd51-5ef4-4d96-aa57-8464003417e5") - ) - (wire - (pts - (xy 457.2 236.22) (xy 444.5 236.22) - ) - (stroke - (width 0) - (type default) - ) - (uuid "44fcbd43-baab-4767-bfaf-2f58b09ecea1") - ) - (wire - (pts - (xy 495.3 241.3) (xy 495.3 240.03) - ) - (stroke - (width 0) - (type default) - ) - (uuid "45e37d16-2a68-4949-aaa1-496d31283d5c") - ) - (wire - (pts - (xy 525.78 276.86) (xy 525.78 274.32) - ) - (stroke - (width 0) - (type default) - ) - (uuid "4655daf9-4d8c-4960-9ffb-1813aa63e68c") - ) - (wire - (pts - (xy 490.22 240.03) (xy 487.68 240.03) - ) - (stroke - (width 0) - (type default) - ) - (uuid "4662cb78-d138-46e1-85a7-975b42ad115d") - ) - (wire - (pts - (xy 288.29 344.17) (xy 293.37 344.17) - ) - (stroke - (width 0) - (type default) - ) - (uuid "47b4582e-dd11-45e9-aca3-7b234804779e") - ) - (wire - (pts - (xy 419.1 227.33) (xy 419.1 226.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "4a9c1fe4-9d35-4967-bbfc-3a1b75f39e52") - ) - (wire - (pts - (xy 138.43 353.06) (xy 138.43 358.14) - ) - (stroke - (width 0) - (type default) - ) - (uuid "4ef72ef9-5f1f-43bf-b87c-2813ef8d6e09") - ) - (wire - (pts - (xy 490.22 323.85) (xy 490.22 325.12) - ) - (stroke - (width 0) - (type default) - ) - (uuid "4fefc364-4a18-43fd-bc95-f55cef52d48c") - ) - (wire - (pts - (xy 527.05 234.95) (xy 527.05 236.22) - ) - (stroke - (width 0) - (type default) - ) - (uuid "51003f8b-786a-4163-b2cf-35967508c31c") - ) - (wire - (pts - (xy 251.46 275.59) (xy 251.46 288.29) - ) - (stroke - (width 0) - (type default) - ) - (uuid "52e440e9-732c-4146-918e-72a74ecafbdb") - ) - (wire - (pts - (xy 492.76 240.03) (xy 492.76 241.3) - ) - (stroke - (width 0) - (type default) - ) - (uuid "559ff563-24a8-4e14-9825-f25c30e03a33") - ) - (wire - (pts - (xy 453.39 273.05) (xy 453.39 276.86) - ) - (stroke - (width 0) - (type default) - ) - (uuid "55bff00a-132c-4a47-af50-4ee11bdb599a") - ) - (wire - (pts - (xy 383.54 370.84) (xy 415.29 370.84) - ) - (stroke - (width 0) - (type default) - ) - (uuid "56d7f3d1-afa6-45d3-ae56-f812025054db") - ) - (wire - (pts - (xy 280.67 354.33) (xy 257.81 354.33) - ) - (stroke - (width 0) - (type default) - ) - (uuid "57865af1-8d85-4b9a-a4e6-1171bc13f785") - ) - (wire - (pts - (xy 138.43 353.06) (xy 146.05 353.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "584b1aa5-9a29-4d01-aaa4-1c5e7375d031") - ) - (wire - (pts - (xy 408.94 350.52) (xy 415.29 350.52) - ) - (stroke - (width 0) - (type default) - ) - (uuid "595e661f-c3a1-46c5-8c25-ebc2e78a2767") - ) - (wire - (pts - (xy 177.8 288.29) (xy 190.5 288.29) - ) - (stroke - (width 0) - (type default) - ) - (uuid "5ab81059-3758-4385-854a-875f11b744d0") - ) - (wire - (pts - (xy 469.9 227.33) (xy 469.9 226.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "5adc6e36-e37c-4e97-a253-387496f01a7c") - ) - (wire - (pts - (xy 511.81 226.06) (xy 497.84 226.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "5de4e244-ee86-4f29-9c89-3bcbaa2f5705") - ) - (wire - (pts - (xy 444.5 234.95) (xy 444.5 236.22) - ) - (stroke - (width 0) - (type default) - ) - (uuid "5e56d8a0-4f90-454e-87dc-e52cb0003f32") - ) - (wire - (pts - (xy 443.23 289.56) (xy 453.39 289.56) - ) - (stroke - (width 0) - (type default) - ) - (uuid "5f7fcaf6-74fd-409f-86db-9130e6f4a077") - ) - (wire - (pts - (xy 497.84 226.06) (xy 497.84 224.79) - ) - (stroke - (width 0) - (type default) - ) - (uuid "60227a70-6c02-4284-94d7-afb472566a52") - ) - (wire - (pts - (xy 492.76 322.58) (xy 492.76 323.85) - ) - (stroke - (width 0) - (type default) - ) - (uuid "6030f247-bdf3-4f20-8bf4-386a01ad3460") - ) - (wire - (pts - (xy 138.43 367.03) (xy 138.43 365.76) - ) - (stroke - (width 0) - (type default) - ) - (uuid "62dd99f4-c873-495b-af38-5a95861817ae") - ) - (wire - (pts - (xy 251.46 288.29) (xy 264.16 288.29) - ) - (stroke - (width 0) - (type default) - ) - (uuid "657e1959-7ab3-489d-97b6-111a1250a585") - ) - (wire - (pts - (xy 153.67 353.06) (xy 162.56 353.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "67a2dbc5-268e-4954-9acf-b016e26b180c") - ) - (wire - (pts - (xy 469.9 236.22) (xy 457.2 236.22) - ) - (stroke - (width 0) - (type default) - ) - (uuid "6aec9176-6993-4307-afc0-75193c1984d7") - ) - (wire - (pts - (xy 257.81 344.17) (xy 257.81 345.44) - ) - (stroke - (width 0) - (type default) - ) - (uuid "6c895263-d0dd-4a9d-bbc4-472ab8abfbf0") - ) - (wire - (pts - (xy 444.5 226.06) (xy 457.2 226.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "73e29934-c236-450d-b6dc-8f9a1a0e920d") - ) - (wire - (pts - (xy 457.2 234.95) (xy 457.2 236.22) - ) - (stroke - (width 0) - (type default) - ) - (uuid "75a5b559-00ee-44ae-9510-7afee9d48e00") - ) - (wire - (pts - (xy 527.05 226.06) (xy 511.81 226.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "75b746a1-7cb5-44cf-8be5-fbafe8556bc4") - ) - (wire - (pts - (xy 167.64 231.14) (xy 190.5 231.14) - ) - (stroke - (width 0) - (type default) - ) - (uuid "77e5a182-8c75-409e-ba2b-52a4e10bedc7") - ) - (wire - (pts - (xy 511.81 234.95) (xy 511.81 236.22) - ) - (stroke - (width 0) - (type default) - ) - (uuid "7dce55a6-7902-4b29-8c97-581bbbe3012f") - ) - (wire - (pts - (xy 511.81 236.22) (xy 527.05 236.22) - ) - (stroke - (width 0) - (type default) - ) - (uuid "7e2bb2f1-c69b-4141-ad70-b5a803eed635") - ) - (wire - (pts - (xy 553.72 226.06) (xy 553.72 227.33) - ) - (stroke - (width 0) - (type default) - ) - (uuid "7e9cefdb-2d5c-47a6-a78e-76a9b9666bba") - ) - (wire - (pts - (xy 293.37 342.9) (xy 293.37 344.17) - ) - (stroke - (width 0) - (type default) - ) - (uuid "7eedac2e-4db6-49eb-a390-0c21c07016fd") - ) - (wire - (pts - (xy 257.81 342.9) (xy 257.81 344.17) - ) - (stroke - (width 0) - (type default) - ) - (uuid "7ffe90da-9d60-42e9-9855-00760148e1c4") - ) - (wire - (pts - (xy 443.23 294.64) (xy 443.23 297.18) - ) - (stroke - (width 0) - (type default) - ) - (uuid "80182d55-f553-4b3e-a85a-ef473690777e") - ) - (wire - (pts - (xy 93.98 232.41) (xy 116.84 232.41) - ) - (stroke - (width 0) - (type default) - ) - (uuid "809aff89-3c9b-4b02-a8ed-e6976c212f8e") - ) - (wire - (pts - (xy 453.39 284.48) (xy 453.39 289.56) - ) - (stroke - (width 0) - (type default) - ) - (uuid "87212339-3415-47ef-a365-a060d2340fa7") - ) - (wire - (pts - (xy 149.86 345.44) (xy 144.78 345.44) - ) - (stroke - (width 0) - (type default) - ) - (uuid "8737f5d2-cde4-4632-a940-2d3b4f105e71") - ) - (wire - (pts - (xy 490.22 322.58) (xy 490.22 323.85) - ) - (stroke - (width 0) - (type default) - ) - (uuid "873f0e71-e5e4-4960-819e-62976cc1bbd7") - ) - (wire - (pts - (xy 508 281.94) (xy 525.78 281.94) - ) - (stroke - (width 0) - (type default) - ) - (uuid "89c72f99-8c7b-4041-be19-5d2b0b841491") - ) - (wire - (pts - (xy 415.29 365.76) (xy 415.29 370.84) - ) - (stroke - (width 0) - (type default) - ) - (uuid "8d611954-0b73-49e7-978c-de89726e717b") - ) - (wire - (pts - (xy 453.39 289.56) (xy 474.98 289.56) - ) - (stroke - (width 0) - (type default) - ) - (uuid "8dbd7611-62a3-4190-89bd-65a844965a37") - ) - (wire - (pts - (xy 492.76 240.03) (xy 490.22 240.03) - ) - (stroke - (width 0) - (type default) - ) - (uuid "904980c9-2fda-42b5-b310-c964f1078c8f") - ) - (wire - (pts - (xy 293.37 344.17) (xy 303.53 344.17) - ) - (stroke - (width 0) - (type default) - ) - (uuid "90cb7124-a854-43aa-9fd1-728dfa733e07") - ) - (wire - (pts - (xy 104.14 276.86) (xy 104.14 289.56) - ) - (stroke - (width 0) - (type default) - ) - (uuid "914b74e4-0a1b-4829-819f-c81ab6447f46") - ) - (wire - (pts - (xy 457.2 227.33) (xy 457.2 226.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "93c720c5-f37b-4ee9-aaa6-0ca5fed2850a") - ) - (wire - (pts - (xy 469.9 226.06) (xy 487.68 226.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "9464b9a5-b3c9-4755-90d7-51cd4b5d34d3") - ) - (wire - (pts - (xy 257.81 354.33) (xy 257.81 355.6) - ) - (stroke - (width 0) - (type default) - ) - (uuid "94691a7b-66bc-4c42-b302-cbc9fe02e54b") - ) - (wire - (pts - (xy 490.22 240.03) (xy 490.22 241.3) - ) - (stroke - (width 0) - (type default) - ) - (uuid "955504ca-4ff0-4276-a3b7-a406f0c16661") - ) - (wire - (pts - (xy 443.23 273.05) (xy 443.23 271.78) - ) - (stroke - (width 0) - (type default) - ) - (uuid "97e01793-cb73-4225-a78e-6d2829316c32") - ) - (wire - (pts - (xy 149.86 359.41) (xy 149.86 367.03) - ) - (stroke - (width 0) - (type default) - ) - (uuid "999f1b0d-1b8b-4131-b074-b82926c1db75") - ) - (wire - (pts - (xy 73.66 353.06) (xy 73.66 355.6) - ) - (stroke - (width 0) - (type default) - ) - (uuid "9a862839-c210-4686-acd1-f39b15648e0e") - ) - (wire - (pts - (xy 384.81 360.68) (xy 389.89 360.68) - ) - (stroke - (width 0) - (type default) - ) - (uuid "9aad0145-e208-4f64-a7d2-93bb29091c47") - ) - (wire - (pts - (xy 553.72 234.95) (xy 553.72 237.49) - ) - (stroke - (width 0) - (type default) - ) - (uuid "9bb21e32-a3ae-427a-b762-5aadea109265") - ) - (wire - (pts - (xy 444.5 236.22) (xy 431.8 236.22) - ) - (stroke - (width 0) - (type default) - ) - (uuid "9c609571-3705-4293-8b5b-568cc46afa54") - ) - (wire - (pts - (xy 280.67 351.79) (xy 280.67 354.33) - ) - (stroke - (width 0) - (type default) - ) - (uuid "9dbbf5aa-f85f-4d36-a4b4-46cbcd984c1c") - ) - (wire - (pts - (xy 327.66 288.29) (xy 340.36 288.29) - ) - (stroke - (width 0) - (type default) - ) - (uuid "9eee5426-f59f-485c-b1e9-e972c53495e0") - ) - (wire - (pts - (xy 73.66 381) (xy 73.66 382.27) - ) - (stroke - (width 0) - (type default) - ) - (uuid "a268020e-cce6-4e5b-b2e0-0fc022e6a08e") - ) - (wire - (pts - (xy 241.3 344.17) (xy 242.57 344.17) - ) - (stroke - (width 0) - (type default) - ) - (uuid "a59717b8-aa00-4cd8-83cf-fb2724b12c5a") - ) - (wire - (pts - (xy 266.7 344.17) (xy 273.05 344.17) - ) - (stroke - (width 0) - (type default) - ) - (uuid "a6b2029f-2839-4c15-9f5e-0a98437f9d78") - ) - (wire - (pts - (xy 38.1 289.56) (xy 50.8 289.56) - ) - (stroke - (width 0) - (type default) - ) - (uuid "a718a2f5-ab4e-4c49-820c-ac4b21643acb") - ) - (wire - (pts - (xy 415.29 370.84) (xy 415.29 378.46) - ) - (stroke - (width 0) - (type default) - ) - (uuid "a7a68c8c-cb27-493b-ba07-4fbfc213fe9e") - ) - (wire - (pts - (xy 431.8 236.22) (xy 419.1 236.22) - ) - (stroke - (width 0) - (type default) - ) - (uuid "a879cf7f-1064-4c0e-bded-9631e5a0bce1") - ) - (wire - (pts - (xy 280.67 354.33) (xy 293.37 354.33) - ) - (stroke - (width 0) - (type default) - ) - (uuid "ad631dee-5f30-416e-9153-70ad131faae2") - ) - (wire - (pts - (xy 135.89 353.06) (xy 138.43 353.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "b555d705-6dfd-4050-b5d3-b991a5695bec") - ) - (wire - (pts - (xy 383.54 355.6) (xy 384.81 355.6) - ) - (stroke - (width 0) - (type default) - ) - (uuid "b6683446-70ac-497c-b69c-69b5621142fe") - ) - (wire - (pts - (xy 511.81 226.06) (xy 511.81 227.33) - ) - (stroke - (width 0) - (type default) - ) - (uuid "b6c28065-4f31-4135-8843-635753c4ca2f") - ) - (wire - (pts - (xy 419.1 236.22) (xy 419.1 237.49) - ) - (stroke - (width 0) - (type default) - ) - (uuid "b71d94fb-6b15-4674-98d7-7ec0ec768d48") - ) - (wire - (pts - (xy 415.29 350.52) (xy 415.29 365.76) - ) - (stroke - (width 0) - (type default) - ) - (uuid "b750e64b-fb52-4e0a-ba8c-be0d6ba0ccac") - ) - (wire - (pts - (xy 384.81 355.6) (xy 384.81 360.68) - ) - (stroke - (width 0) - (type default) - ) - (uuid "b7811e01-642b-48c2-8989-575203029b66") - ) - (wire - (pts - (xy 525.78 284.48) (xy 525.78 287.02) - ) - (stroke - (width 0) - (type default) - ) - (uuid "bf5404ac-ef17-41cb-9fe6-67f0caf79793") - ) - (wire - (pts - (xy 327.66 275.59) (xy 327.66 288.29) - ) - (stroke - (width 0) - (type default) - ) - (uuid "c0f3e664-61ce-4eab-bb27-2bb3fa1f6945") - ) - (wire - (pts - (xy 443.23 287.02) (xy 443.23 273.05) - ) - (stroke - (width 0) - (type default) - ) - (uuid "c2639b33-8f4b-4b8a-b776-1e7033bfb8dc") - ) - (wire - (pts - (xy 383.54 353.06) (xy 386.08 353.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "c2dcd134-d0b4-4b80-b8ee-b3e824945f21") - ) - (wire - (pts - (xy 415.29 342.9) (xy 415.29 350.52) - ) - (stroke - (width 0) - (type default) - ) - (uuid "c4e0fd89-419c-4e9d-990c-856f6d8fe146") - ) - (wire - (pts - (xy 116.84 236.22) (xy 116.84 232.41) - ) - (stroke - (width 0) - (type default) - ) - (uuid "c8c571db-f174-43d3-9643-50e8e7ec1743") - ) - (wire - (pts - (xy 241.3 231.14) (xy 264.16 231.14) - ) - (stroke - (width 0) - (type default) - ) - (uuid "c9113960-f3e0-4339-98c3-e5fd95a12749") - ) - (wire - (pts - (xy 104.14 289.56) (xy 116.84 289.56) - ) - (stroke - (width 0) - (type default) - ) - (uuid "ca183789-4467-4dfa-9497-227a33c34062") - ) - (wire - (pts - (xy 38.1 276.86) (xy 38.1 289.56) - ) - (stroke - (width 0) - (type default) - ) - (uuid "cbfdaca9-d221-47b7-a089-cee4e5d8ef3d") - ) - (wire - (pts - (xy 487.68 226.06) (xy 487.68 240.03) - ) - (stroke - (width 0) - (type default) - ) - (uuid "cd97731b-11dd-42d6-b80a-8284f71e84f8") - ) - (wire - (pts - (xy 457.2 276.86) (xy 457.2 273.05) - ) - (stroke - (width 0) - (type default) - ) - (uuid "ceb7b8c0-598f-4b39-88d9-e49ca9b15af7") - ) - (wire - (pts - (xy 257.81 354.33) (xy 257.81 353.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "cf0c4c41-8a5f-44b4-b56d-91bdd16ed546") - ) - (wire - (pts - (xy 487.68 240.03) (xy 487.68 241.3) - ) - (stroke - (width 0) - (type default) - ) - (uuid "d1d46744-7bec-410c-9782-2fd8e8745910") - ) - (wire - (pts - (xy 492.76 323.85) (xy 490.22 323.85) - ) - (stroke - (width 0) - (type default) - ) - (uuid "d9922c71-e0b2-4b22-9c4e-9d1ba833a379") - ) - (wire - (pts - (xy 508 279.4) (xy 525.78 279.4) - ) - (stroke - (width 0) - (type default) - ) - (uuid "da1d9cbd-3914-4dc0-91cf-16edf2b949a5") - ) - (wire - (pts - (xy 383.54 365.76) (xy 401.32 365.76) - ) - (stroke - (width 0) - (type default) - ) - (uuid "dd4a28a3-b29a-4512-992d-d90917e1fdc1") - ) - (wire - (pts - (xy 190.5 234.95) (xy 190.5 231.14) - ) - (stroke - (width 0) - (type default) - ) - (uuid "dfcb0263-aadf-4b98-b114-a2b25b33d241") - ) - (wire - (pts - (xy 320.04 344.17) (xy 320.04 345.44) - ) - (stroke - (width 0) - (type default) - ) - (uuid "e045c064-992c-4bb7-927b-cdb9986ce226") - ) - (wire - (pts - (xy 386.08 353.06) (xy 389.89 353.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "e4286a71-ebda-4920-ba34-e8462771b43b") - ) - (wire - (pts - (xy 457.2 284.48) (xy 457.2 292.1) - ) - (stroke - (width 0) - (type default) - ) - (uuid "e4da2367-6c55-4523-bb33-49ca0f2faf31") - ) - (wire - (pts - (xy 386.08 358.14) (xy 386.08 353.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "e75bd306-a05c-4369-a95b-9e0fb415e150") - ) - (wire - (pts - (xy 544.83 226.06) (xy 553.72 226.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "e807a531-8f6a-41b7-a7d1-aa09aed25609") - ) - (wire - (pts - (xy 278.13 383.54) (xy 278.13 384.81) - ) - (stroke - (width 0) - (type default) - ) - (uuid "e9c655c3-1fea-4239-bf3d-147239169d35") - ) - (wire - (pts - (xy 73.66 345.44) (xy 73.66 341.63) - ) - (stroke - (width 0) - (type default) - ) - (uuid "ebb53741-fd7f-44fa-8426-0cf0e7f661b7") - ) - (wire - (pts - (xy 457.2 292.1) (xy 474.98 292.1) - ) - (stroke - (width 0) - (type default) - ) - (uuid "ece15343-156d-46c6-9cd8-0d222627a4b6") - ) - (wire - (pts - (xy 144.78 359.41) (xy 149.86 359.41) - ) - (stroke - (width 0) - (type default) - ) - (uuid "ee87a5bf-a49b-42be-b0a1-d1157b8b88ba") - ) - (wire - (pts - (xy 293.37 354.33) (xy 293.37 353.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "f0ab7eff-c1ce-4a1c-86ab-1c2f3fbdbdf6") - ) - (wire - (pts - (xy 457.2 226.06) (xy 469.9 226.06) - ) - (stroke - (width 0) - (type default) - ) - (uuid "f4788bad-dd03-407f-b7b4-8a48105b455c") - ) - (wire - (pts - (xy 177.8 275.59) (xy 177.8 288.29) - ) - (stroke - (width 0) - (type default) - ) - (uuid "f62821a3-8176-49d1-8351-0dd6ec8c836b") - ) - (wire - (pts - (xy 27.94 232.41) (xy 50.8 232.41) - ) - (stroke - (width 0) - (type default) - ) - (uuid "f82efb67-f1f1-46a2-8944-28351f4112f5") - ) - (wire - (pts - (xy 73.66 372.11) (xy 73.66 373.38) - ) - (stroke - (width 0) - (type default) - ) - (uuid "fa81fea1-eb92-462e-a41c-e779b2c86ef0") - ) - (wire - (pts - (xy 317.5 231.14) (xy 340.36 231.14) - ) - (stroke - (width 0) - (type default) - ) - (uuid "fcd32227-1eee-4945-b787-d3621a636a04") - ) - (rectangle - (start 123.19 321.31) - (end 204.47 396.24) - (stroke - (width 0) - (type dash) - ) - (fill - (type none) - ) - (uuid 0505742d-03aa-4256-8d49-5e9cbcb4ee9c) - ) - (rectangle - (start 226.06 321.31) - (end 337.82 396.24) - (stroke - (width 0) - (type dash) - ) - (fill - (type none) - ) - (uuid 6570272f-bc21-46b1-bac7-5fd3a4508464) - ) - (rectangle - (start 22.86 321.31) - (end 104.14 396.24) - (stroke - (width 0) - (type dash) - ) - (fill - (type none) - ) - (uuid 7e22e330-0a78-4ee5-a8fc-5d814061aed1) - ) - (rectangle - (start 355.6 321.31) - (end 421.64 396.24) - (stroke - (width 0) - (type dash) - ) - (fill - (type none) - ) - (uuid b89c9225-706d-4592-9a3f-221cdc0d4088) - ) - (rectangle - (start 22.86 222.25) - (end 375.92 297.18) - (stroke - (width 0) - (type dash) - ) - (fill - (type none) - ) - (uuid cfa71078-ee62-48e2-9f13-7f8bdeb90fdb) - ) - (text "Usb" - (exclude_from_sim no) - (at 355.6 321.31 0) - (effects - (font - (size 5 5) - ) - (justify left bottom) - ) - (uuid "0d4f24e9-c288-4cb7-8a15-09341c1b9d4a") - ) - (text "Power" - (exclude_from_sim no) - (at 226.06 321.31 0) - (effects - (font - (size 5 5) - ) - (justify left bottom) - ) - (uuid "7d82dbb4-ae70-4674-af37-6d054e4f8883") - ) - (text "Buttons" - (exclude_from_sim no) - (at 22.86 321.31 0) - (effects - (font - (size 5 5) - ) - (justify left bottom) - ) - (uuid "98df4266-2f77-4fb4-a11c-2b7efea8a903") - ) - (text "C = (15pF - 5pF)*2 = 20pF" - (exclude_from_sim no) - (at 171.45 361.95 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "a7f8783d-5aea-45a0-be43-641bebbffa8f") - ) - (text "Crystal\n" - (exclude_from_sim no) - (at 123.19 321.31 0) - (effects - (font - (size 5 5) - ) - (justify left bottom) - ) - (uuid "bc6df4e5-be64-495e-866f-11dd0d4b54b6") - ) - (text "Analog Multiplexer" - (exclude_from_sim no) - (at 22.86 222.25 0) - (effects - (font - (size 5 5) - ) - (justify left bottom) - ) - (uuid "d0af7249-6aaf-47b1-bd9d-5615a3d528d4") - ) - (label "SELECT0" - (at 327.66 257.81 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "009f1095-9d7e-40cc-9a93-af38a23f7bdf") - ) - (label "BOOT0" - (at 474.98 251.46 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "0298e59b-fe29-46ec-8311-92f766ae85b7") - ) - (label "AMUX0:7" - (at 110.49 31.75 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "04fec737-d698-4e00-abce-eb60b95fb0e3") - ) - (label "ADC4" - (at 508 264.16 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "07b0b07e-f1f2-4caa-bd9c-52d68a5c5447") - ) - (label "AMUX0:10" - (at 63.5 269.24 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "087a08c7-8557-4df0-a69b-6aeea6b7e807") - ) - (label "AMUX2:1" - (at 341.63 181.61 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "0955718f-e675-42d0-a036-aa00c3f6da38") - ) - (label "ADC0" - (at 508 254 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "0c2c1954-0e87-42a5-8209-a95873618be4") - ) - (label "I2C_SDA" - (at 443.23 292.1 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "0c4d1a2e-6604-498f-ac60-3f56e07f1882") - ) - (label "AMUX3:13" - (at 374.65 181.61 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "0d56b880-a7ac-4f0c-a65a-f50ff8d2f871") - ) - (label "AMUX4:0" - (at 506.73 181.61 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "0df0f35a-ca98-4299-96ce-f0a2f372ce22") - ) - (label "AMUX3:5" - (at 276.86 255.27 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "0e3e03db-be22-435c-8e50-bf47193ff37f") - ) - (label "SWDIO" - (at 508 279.4 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "1623d7e7-339a-4556-83dd-0e18feb7d4bc") - ) - (label "AMUX0:4" - (at 63.5 254 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "16e27722-d705-46cd-8eae-3a85f4bed4af") - ) - (label "AMUX2:3" - (at 341.63 106.68 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "1705acde-aea7-4ad4-b28c-c25ba8f57045") - ) - (label "AMUX2:4" - (at 203.2 252.73 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "199437af-09db-4f4a-9413-421ff70a8bd2") - ) - (label "SELECT3" - (at 474.98 309.88 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "1b0bcfdd-dfd9-4ce1-ba13-23608b51df59") - ) - (label "AMUX4:1" - (at 506.73 81.28 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "1c9423cf-e2c4-4d2b-9a87-e55d41cee7a8") - ) - (label "AMUX2:13" - (at 275.59 181.61 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "1d0f6965-fece-4d10-8d7b-e4462e90b49e") - ) - (label "AMUX0:12" - (at 63.5 274.32 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "20c36826-2026-47e8-8107-e0f4e39d7d2b") - ) - (label "SELECT2" - (at 474.98 307.34 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "22a8a050-3786-43ab-96bb-9bb3b62c1f86") - ) - (label "SELECT0" - (at 104.14 259.08 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "235d4129-b813-409b-8b1b-0df3c757b508") - ) - (label "BOOT0" - (at 76.2 372.11 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "239b8701-4577-4543-be57-509bdc40ff89") - ) - (label "AMUX3:12" - (at 276.86 273.05 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "23d71f12-6e26-46f4-99d8-7af90c7681f7") - ) - (label "AMUX4:2" - (at 506.73 31.75 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "23f4fc7b-62c9-4950-89d5-c3919a904b4f") - ) - (label "AMUX2:3" - (at 203.2 250.19 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "268d6737-39a0-4e3a-8fd8-a44835dc32ca") - ) - (label "AMUX2:9" - (at 203.2 265.43 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "268f6b53-5e38-44a5-94b3-d6cb93632103") - ) - (label "AMUX2:7" - (at 341.63 31.75 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "27259ad8-3159-4cbf-9dcf-7f2c0fd910e6") - ) - (label "AMUX2:9" - (at 308.61 31.75 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "28a9c6a8-0456-46bb-9d28-5ca5ae399e4f") - ) - (label "AMUX3:14" - (at 407.67 106.68 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "2ae2d724-81b5-44d0-b7ee-931ccc766dba") - ) - (label "AMUX0:9" - (at 77.47 68.58 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "2fa68123-fc13-4e8d-b56f-226455ca4ea5") - ) - (label "AMUX0:7" - (at 63.5 261.62 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "34f1153c-11d6-4744-853d-050bf6c3b52c") - ) - (label "AMUX3:3" - (at 482.6 144.78 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "35a62c6f-9a31-4c0c-a4db-5e343e832c69") - ) - (label "AMUX1:5" - (at 129.54 256.54 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "35dd238b-f424-4179-b840-e81a0502ad32") - ) - (label "HSE_IN" - (at 474.98 256.54 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "395175e6-b38f-408d-bac2-cb27bafd090a") - ) - (label "AMUX3:14" - (at 276.86 278.13 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "3a08c5eb-badc-4a95-986d-f7abd9a80e42") - ) - (label "AMUX3:6" - (at 473.71 31.75 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "3af5ea7d-4b29-46c2-b159-eb942e050eb4") - ) - (label "USB_D-" - (at 508 274.32 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "3de1c534-264c-4dee-a15a-1754de81df9f") - ) - (label "AMUX1:8" - (at 209.55 31.75 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "3e40e2e2-af05-4e3d-be24-8c47831fb58a") - ) - (label "AMUX0:8" - (at 63.5 264.16 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "3f2f9395-0173-40c4-ab29-f8be8318a5a2") - ) - (label "AMUX1:7" - (at 209.55 68.58 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "3f4093ff-fbad-4b2e-83c1-32d7915a0169") - ) - (label "AMUX0:13" - (at 77.47 144.78 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "4036652e-fbea-43c5-a784-74cd19fa3596") - ) - (label "AMUX1:15" - (at 129.54 281.94 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "41285f6a-c04b-4902-9a6f-f49a3f7b07ab") - ) - (label "AMUX2:12" - (at 203.2 273.05 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "4277c45d-8f7c-462f-a326-51d2ba48e7d2") - ) - (label "AMUX1:0" - (at 209.55 181.61 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "446e3fe1-9430-46b7-a387-36f681e1fa4d") - ) - (label "AMUX2:11" - (at 275.59 68.58 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "44d044ec-7e47-4206-9ae8-755b510a8a24") - ) - (label "AMUX2:15" - (at 203.2 280.67 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "44df7add-5746-4e78-b530-5f870015ab09") - ) - (label "AMUX3:8" - (at 440.69 31.75 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "454fa436-5a63-474d-9728-53993a8a378c") - ) - (label "AMUX0:14" - (at 77.47 106.68 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "46ac5ba4-987a-4648-bc7c-8bbb17823ef2") - ) - (label "AMUX1:9" - (at 129.54 266.7 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "488d08ce-9198-4038-94a8-82e2b2acbe69") - ) - (label "ADC2" - (at 508 259.08 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "4b1bda1c-13e5-453f-9372-f01cc0d6488f") - ) - (label "AMUX0:2" - (at 110.49 106.68 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "4bac23a9-9d61-480d-b123-18c5b4c8e9a0") - ) - (label "AMUX2:0" - (at 203.2 242.57 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "4bf372d8-14e1-4b92-ab7e-e5f89385aeb5") - ) - (label "AMUX3:2" - (at 276.86 247.65 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "4e74a5e1-93f3-4399-8dd6-d5fc9672657b") - ) - (label "AMUX1:10" - (at 176.53 68.58 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "4e86fab4-9d72-4436-bd40-3163f7df88c9") - ) - (label "SWCLK" - (at 508 281.94 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "4f387cc2-71a3-4e21-a47d-6df2c66f3e82") - ) - (label "AMUX1:1" - (at 129.54 246.38 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "4f53dad9-2706-4d4c-823d-3c407d9f2e6b") - ) - (label "AMUX1:0" - (at 129.54 243.84 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "4fe6e080-9679-4854-9586-083b2b290440") - ) - (label "HSE_OUT" - (at 474.98 259.08 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "50719065-fda1-4c64-8ea7-997b8f87756e") - ) - (label "SELECT3" - (at 104.14 266.7 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "50b51400-1950-46f7-8f4e-e4052b68d4c4") - ) - (label "VBUS" - (at 383.54 368.3 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "50e708f7-c165-4057-af11-7ad255ce4b6a") - ) - (label "ADC1" - (at 508 256.54 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "521543d2-ec5c-4d43-8fd7-4a29fd6078db") - ) - (label "AMUX1:14" - (at 176.53 106.68 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "5216076b-74ca-4659-b141-5b35711e87fd") - ) - (label "AMUX2:6" - (at 374.65 31.75 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "5313f16c-33ec-4a58-969f-f3f980cc80f8") - ) - (label "ADC0" - (at 38.1 248.92 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "55599017-e29c-4aad-b664-ceb6b46c3518") - ) - (label "AMUX0:2" - (at 63.5 248.92 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "5625678a-6c94-45a6-a49f-b729824fd673") - ) - (label "SELECT1" - (at 251.46 260.35 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "578371a8-8299-4afe-b719-edf2beded036") - ) - (label "SELECT2" - (at 251.46 262.89 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "580044b2-7366-4a3c-9961-9d2e734410fa") - ) - (label "AMUX3:8" - (at 276.86 262.89 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "59c20f6f-645a-49c6-a545-de81b6d645c8") - ) - (label "AMUX0:1" - (at 120.65 181.61 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "59e04623-9f69-419d-b34d-27e66c34bf41") - ) - (label "SELECT1" - (at 177.8 260.35 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "5b641491-419e-4fa7-94d3-39879bd6390c") - ) - (label "AMUX3:7" - (at 440.69 68.58 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "5c015508-245c-4afa-a15c-185479f12f0c") - ) - (label "NRST" - (at 76.2 341.63 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "5cbbc8dc-d1c9-40ea-8b64-bc35b0d9519b") - ) - (label "HSE_OUT" - (at 165.1 353.06 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "5e45c446-bfea-40c7-97e7-e15dd244bade") - ) - (label "AMUX3:11" - (at 374.65 106.68 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "600e6b08-285c-47db-9819-2456959cd8bd") - ) - (label "I2C_SCL" - (at 474.98 289.56 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "606eaf35-f547-4591-87b0-1bb972297e5d") - ) - (label "AMUX2:2" - (at 374.65 144.78 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "632e85ef-4197-46de-aa0c-91ae373d1cc2") - ) - (label "SELECT3" - (at 327.66 265.43 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "648479f3-d04a-42d6-85f5-5593d78ce0cc") - ) - (label "AMUX0:11" - (at 43.18 68.58 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "654e369c-de86-4af0-aae8-7a5022e4b717") - ) - (label "AMUX1:3" - (at 129.54 251.46 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "65e086b2-b98c-406d-8ab4-83578c25750d") - ) - (label "AMUX1:13" - (at 176.53 144.78 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "669d2c0b-d259-4c2f-84d2-965922cc0ede") - ) - (label "AMUX0:0" - (at 63.5 243.84 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "66a35442-1566-4899-ac58-74e2a6fbe1ca") - ) - (label "AMUX1:8" - (at 129.54 264.16 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "678f0fe4-6bbd-47c6-864c-993502b6e4f7") - ) - (label "AMUX0:14" - (at 63.5 279.4 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "67af8568-f5c6-4fbb-804c-223ab1f33267") - ) - (label "ADC3" - (at 251.46 247.65 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "68efe591-f5c9-4fe5-94af-b95fceac7c2a") - ) - (label "SELECT1" - (at 104.14 261.62 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "696ea3f1-7622-49b0-9a3e-55183c3deac4") - ) - (label "AMUX2:14" - (at 308.61 144.78 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "6ca39222-727b-43b7-a3bc-05dfd1253d31") - ) - (label "SELECT3" - (at 38.1 266.7 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "6d0f6088-3d35-408b-93c6-3df7f0c65077") - ) - (label "SELECT0" - (at 251.46 257.81 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "6d66cbf4-3ae9-4ad2-b3e2-59015940ae55") - ) - (label "AMUX3:11" - (at 276.86 270.51 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "6f05e3e8-0c3e-4f30-9126-0da3c247b971") - ) - (label "AMUX3:4" - (at 473.71 106.68 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "728aa9d3-1611-40f5-92c3-4e7404f23354") - ) - (label "AMUX2:2" - (at 203.2 247.65 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "736b86e1-ac67-4442-8f5b-536e4f298ec3") - ) - (label "AMUX2:13" - (at 203.2 275.59 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "74f3e2bc-4b1f-48f4-a21b-c4faad6a4374") - ) - (label "SELECT0" - (at 474.98 302.26 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "777fe1b5-5161-428a-8db5-b3a9e49702d7") - ) - (label "AMUX0:6" - (at 110.49 68.58 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "784fd078-d06b-47e6-837e-0cd6bf957ffe") - ) - (label "AMUX0:11" - (at 63.5 271.78 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "7b8eadf7-f340-4396-acde-6fa37ff41a25") - ) - (label "AMUX3:9" - (at 407.67 31.75 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "7bd1b14f-eca4-4603-9e71-2702b7a650cd") - ) - (label "AMUX1:7" - (at 129.54 261.62 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "7de653cf-466c-407b-81d5-2989974d7f83") - ) - (label "AMUX1:9" - (at 176.53 31.75 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "7e76749b-3eea-4333-954f-2b8305df9b4e") - ) - (label "AMUX3:15" - (at 440.69 144.78 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "801c85de-ac68-4a59-b1bc-69dcf0e24075") - ) - (label "AMUX2:5" - (at 341.63 68.58 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "80eb8833-a623-4634-8f19-eea7169a2265") - ) - (label "AMUX0:4" - (at 143.51 68.58 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "816ade9a-f838-439c-bd60-a7eac6dd27cd") - ) - (label "AMUX1:1" - (at 209.55 106.68 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "845630c0-3e83-43ff-b503-19f09b38f683") - ) - (label "SWDIO" - (at 525.78 279.4 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "88ba67cd-1a25-454f-bdf5-2008f39710d9") - ) - (label "AMUX3:7" - (at 276.86 260.35 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "8a1746a5-a96e-4e48-94af-ad9cc14ec2b0") - ) - (label "AMUX1:14" - (at 129.54 279.4 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "8d49a538-419a-472a-a93c-dc1ea2c21f92") - ) - (label "AMUX3:10" - (at 276.86 267.97 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "8decc143-2e71-423b-aca3-518532282b5b") - ) - (label "AMUX1:4" - (at 242.57 106.68 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "8e93f0e6-0373-4b6d-aafd-27c6b1d25633") - ) - (label "AMUX1:13" - (at 129.54 276.86 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "8fd60c7e-0794-48f9-94e4-d7fda640d051") - ) - (label "AMUX0:15" - (at 63.5 281.94 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "90c9cd30-ce8f-4cd9-8b5c-ae3087bdd9f9") - ) - (label "AMUX1:6" - (at 242.57 31.75 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "92ec73ae-1cf4-4ad5-9d66-07e2a1813515") - ) - (label "AMUX4:1" - (at 353.06 245.11 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "9379f817-6616-45c9-a4c4-2c59c2380d3e") - ) - (label "USB_D+" - (at 389.89 360.68 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "93c22085-d2c9-4bd9-868c-fbc57a885592") - ) - (label "AMUX3:3" - (at 276.86 250.19 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "94eaed1c-d858-4569-b021-da623cd33e19") - ) - (label "AMUX2:11" - (at 203.2 270.51 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "9aaf9998-9104-41b2-8f7f-6a4f7ce59164") - ) - (label "AMUX0:9" - (at 63.5 266.7 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "9e01a9de-627a-483a-81e2-4bebdd6b3adb") - ) - (label "AMUX3:0" - (at 440.69 181.61 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "9f0a8e42-8bb9-4ef0-b7f2-0099dd2fafa6") - ) - (label "AMUX1:2" - (at 129.54 248.92 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "a10ee66a-2c24-4ce3-9015-a331d0b48650") - ) - (label "AMUX0:5" - (at 63.5 256.54 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "a1c0d84c-e97a-4e21-8176-e2ad5c124bc2") - ) - (label "AMUX0:8" - (at 77.47 31.75 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "a2ab10bb-580c-4467-9c02-f63890a5e5a9") - ) - (label "ADC2" - (at 177.8 247.65 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "a4a139e6-8b9c-48e6-be5b-6228d3c40990") - ) - (label "AMUX0:10" - (at 43.18 31.75 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "a517c1c6-33dc-4ead-9e9a-24c755263a4c") - ) - (label "AMUX2:15" - (at 308.61 106.68 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "a78e68ea-1ea1-476a-a70a-1dd20216fb58") - ) - (label "USB_D-" - (at 389.89 353.06 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "a7c20cc6-0103-467e-90b2-a2d40cfc79e2") - ) - (label "HSE_IN" - (at 135.89 353.06 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "a952f362-91f3-4df5-bb1a-15ca0d33bddf") - ) - (label "AMUX2:6" - (at 203.2 257.81 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "ab08e1bc-7551-4695-9da2-611324e37801") - ) - (label "AMUX1:12" - (at 129.54 274.32 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "ab917fb1-5149-4b81-8eac-cb3490f5cad5") - ) - (label "AMUX1:4" - (at 129.54 254 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "ad561c25-3ac2-40c4-8cd9-ffd24eef2b2d") - ) - (label "AMUX3:5" - (at 473.71 68.58 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "adbdc883-b725-4918-9777-a46f4acc2563") - ) - (label "AMUX0:13" - (at 63.5 276.86 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "ae2add8d-0508-4ca5-bc6f-ad381fe5c3dc") - ) - (label "I2C_SCL" - (at 443.23 289.56 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "af2ba836-f5a8-4d9e-b8bf-9e34b1be07c2") - ) - (label "AMUX2:14" - (at 203.2 278.13 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "b140fe2d-b57a-448c-9612-66dd1aa713e5") - ) - (label "VBUS" - (at 383.54 345.44 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "b1db2fb0-3ba8-4bf4-ac7a-5a56e582b3fb") - ) - (label "AMUX0:12" - (at 43.18 106.68 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "b22c238f-cc9c-4995-b0a5-ba72e579dc3a") - ) - (label "AMUX2:12" - (at 275.59 106.68 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "b277d96c-5eb9-483d-a4d2-9b527cc5acb0") - ) - (label "ADC4" - (at 327.66 247.65 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "b50e2689-4d76-4e0a-9092-2b37cc445184") - ) - (label "AMUX0:15" - (at 77.47 181.61 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "b518620a-7b4f-4661-a12a-ffe0b542cd5c") - ) - (label "AMUX1:11" - (at 129.54 271.78 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "bb6a0164-f1ca-4cdd-ad4f-adacabd5d3fc") - ) - (label "AMUX3:6" - (at 276.86 257.81 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "bbdee7ad-1623-4802-bdde-b7bd7abccc83") - ) - (label "AMUX0:3" - (at 63.5 251.46 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "bcbcff1d-d4be-4d5e-bab8-7ece8fd8046f") - ) - (label "SELECT3" - (at 251.46 265.43 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "bce38d00-80c2-42a1-9183-d1f4bbab1a56") - ) - (label "ADC3" - (at 508 261.62 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "bde14ebc-a527-4315-8280-ae1ed5e56324") - ) - (label "AMUX1:10" - (at 129.54 269.24 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "bf258fcb-84ee-446e-ac14-ffc13101e805") - ) - (label "AMUX3:1" - (at 276.86 245.11 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "c10ad665-c664-4cd5-9986-d61c775d8b1f") - ) - (label "AMUX1:3" - (at 275.59 144.78 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "c2d335e2-8a12-42dd-9e0c-5b348490f637") - ) - (label "AMUX2:4" - (at 374.65 68.58 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "c2d7c0ec-d1cd-4b40-8762-152bfc587bea") - ) - (label "AMUX2:10" - (at 203.2 267.97 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "c2e493c7-3925-44c8-8b48-50022a5c2606") - ) - (label "SELECT2" - (at 177.8 262.89 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "c4c42947-20ac-4430-8d29-f1461e170fd0") - ) - (label "SELECT1" - (at 327.66 260.35 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "c52f4dc0-e072-4e00-b0ef-c6044bbb68d8") - ) - (label "AMUX2:1" - (at 203.2 245.11 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "c766f862-de23-44f4-9f31-a3a7b5214405") - ) - (label "AMUX3:4" - (at 276.86 252.73 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "ccec42fb-75c8-4661-a8a1-83d1c505632f") - ) - (label "AMUX0:0" - (at 110.49 144.78 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "ce0713ea-145e-4544-aa64-9a206969f5c6") - ) - (label "AMUX1:2" - (at 242.57 144.78 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "cee81291-7206-48c6-a107-fef39a78646f") - ) - (label "SELECT1" - (at 38.1 261.62 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "cf23fb93-5543-498a-8304-c078614b6ed2") - ) - (label "AMUX4:2" - (at 353.06 247.65 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "d094034d-7ef9-4851-a549-76dca76b6ccf") - ) - (label "SELECT2" - (at 104.14 264.16 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "d1eec2e4-6679-432e-bac5-bc95783081c4") - ) - (label "AMUX2:10" - (at 275.59 31.75 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "d2a07c12-fc21-4783-b023-14ea78cc2363") - ) - (label "AMUX3:10" - (at 407.67 68.58 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "d2c853f2-3ca8-4f00-8118-944ae1793cce") - ) - (label "USB_D+" - (at 508 276.86 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "d2c8b1aa-3cf0-4a3b-bb1b-0a69335ee2d5") - ) - (label "AMUX0:3" - (at 143.51 144.78 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "d2db3546-4d67-429b-abae-82e9b1443e2d") - ) - (label "SELECT2" - (at 38.1 264.16 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "d4a87417-3bea-48a2-a68f-5695eb64a839") - ) - (label "AMUX1:15" - (at 209.55 144.78 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "d5d6d742-b89a-4915-b06b-b570475d7477") - ) - (label "SELECT3" - (at 177.8 265.43 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "d6758d72-ea71-4a8c-9e49-d66b65816784") - ) - (label "AMUX0:6" - (at 63.5 259.08 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "db5db617-6731-44f5-8913-83629c075970") - ) - (label "AMUX3:15" - (at 276.86 280.67 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "dfc27119-1701-4770-80ec-61902b3c6cd0") - ) - (label "NRST" - (at 474.98 246.38 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "e13c6871-63f1-4ec2-87e1-946973d7527d") - ) - (label "AMUX2:0" - (at 341.63 144.78 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "e1f1a847-1f4b-4284-89be-105915d5296c") - ) - (label "VBUS" - (at 241.3 344.17 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "e255748f-f988-4f8b-9ffc-782aa4ab9c75") - ) - (label "AMUX1:12" - (at 153.67 181.61 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "e5cc6568-83dc-4df5-b3d4-22f067d8617c") - ) - (label "SELECT2" - (at 327.66 262.89 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "e67e64dd-4567-4e22-a7f5-07436b53a74b") - ) - (label "AMUX3:0" - (at 276.86 242.57 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "e6b4f419-0ee1-48a4-84b9-03f8200a0ca9") - ) - (label "AMUX0:5" - (at 143.51 31.75 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "e73ffccf-9b6c-4153-9c15-9f71d1019c19") - ) - (label "SWCLK" - (at 525.78 281.94 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "e7d0f879-7b1a-48c0-b090-f1d0a7a5e1ec") - ) - (label "AMUX4:0" - (at 353.06 242.57 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "ed25b77a-780d-458a-9c02-5824f1efb90a") - ) - (label "AMUX1:5" - (at 242.57 68.58 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "ed540adb-2937-4dc8-9279-70a3b9c74dbe") - ) - (label "SELECT1" - (at 474.98 304.8 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "ef0e15bf-6d81-499a-a13e-8b06251843fe") - ) - (label "AMUX1:11" - (at 143.51 106.68 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "ef2b49f5-096c-40ae-8392-e140e02eb940") - ) - (label "AMUX2:7" - (at 203.2 260.35 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "ef8e7178-6645-4c37-a428-081fc20c7d0c") - ) - (label "AMUX1:6" - (at 129.54 259.08 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "efd6ba85-75c5-40d6-b2c8-d16ccd0fe08d") - ) - (label "AMUX2:5" - (at 203.2 255.27 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "f268e970-8454-4052-b881-504ebd2cf29c") - ) - (label "AMUX2:8" - (at 203.2 262.89 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "f30f99f4-270c-46b6-a55c-d53e85f539c9") - ) - (label "SELECT0" - (at 38.1 259.08 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "f593afd2-4cad-49f9-b810-6c3a494ca8be") - ) - (label "SELECT0" - (at 177.8 257.81 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "f5b7c080-608d-4abb-aa66-34ae88ab2be7") - ) - (label "AMUX3:13" - (at 276.86 275.59 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "f5d4fef2-372b-4c39-9da8-14275fce883e") - ) - (label "AMUX3:2" - (at 473.71 181.61 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "f848a4e6-101f-496b-b0b3-364e39221b7c") - ) - (label "I2C_SDA" - (at 474.98 292.1 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "f98cbecd-b56d-42b7-a335-939a44aa4750") - ) - (label "ADC1" - (at 104.14 248.92 180) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify right bottom) - ) - (uuid "fabbc1b4-d0f5-435d-bbe5-d38c8f6ca7a6") - ) - (label "AMUX3:12" - (at 407.67 144.78 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "fc50e4d2-ea23-45b5-b4ac-ab6cee15c2b5") - ) - (label "AMUX3:9" - (at 276.86 265.43 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "fc918aed-baf3-4844-8a26-d7cb05258e02") - ) - (label "AMUX2:8" - (at 308.61 68.58 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "fd30ae61-adfc-4925-8136-fc49447e4088") - ) - (label "AMUX3:1" - (at 440.69 106.68 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "ff48218a-97a9-465c-80d9-22e22670b928") - ) - (label "AMUX0:1" - (at 63.5 246.38 0) - (fields_autoplaced yes) - (effects - (font - (size 1.27 1.27) - ) - (justify left bottom) - ) - (uuid "fff25e4d-bce0-44c2-a6eb-02952f334e06") - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 334.01 68.58 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "0052e6f0-8f49-4f17-bc15-e9e65eab13f1") - (property "Reference" "U25" - (at 327.66 67.3099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 327.66 69.8499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 334.01 77.47 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 334.01 52.07 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 334.01 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 334.01 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "7a4484fd-ac1b-4b12-979b-e0ee693ebd27") - ) - (pin "2" - (uuid "0437695c-ab64-4f65-a80f-730603f7b0db") - ) - (pin "3" - (uuid "b4942a3f-fd24-4a2c-9e39-c6723f64fca7") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U25") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 331.47 96.52 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "018fd442-9390-4423-a86b-3dad659940e2") - (property "Reference" "#PWR070" - (at 331.47 100.33 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 331.47 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 331.47 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 331.47 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 331.47 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "5028d3c4-cbb6-4392-8743-336bc9a78f58") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR070") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 232.41 21.59 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "0297e161-35cc-408e-a5a1-bc90028699b0") - (property "Reference" "#PWR07" - (at 232.41 25.4 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 232.41 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 232.41 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 232.41 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 232.41 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "e0d3fc0d-40d7-47cb-b7fa-ce452916c389") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR07") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 166.37 78.74 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "02a3e917-8c5d-46ef-aa80-b1df014d9d23") - (property "Reference" "#PWR050" - (at 166.37 85.09 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 166.37 83.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 166.37 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 166.37 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 166.37 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "7547a5f2-a4ef-448c-8455-f58acc911a9c") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR050") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 133.35 154.94 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "03a7805a-6c10-4a68-a758-8b803bd85f96") - (property "Reference" "#PWR0104" - (at 133.35 161.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 133.35 160.02 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 133.35 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 133.35 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 133.35 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "1a6e4262-82b2-4db6-a1e1-113b5e01e500") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0104") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 527.05 231.14 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "03aa7a73-1d0b-44d3-b837-940d7c63ad8a") - (property "Reference" "C7" - (at 530.86 229.87 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "1u" - (at 530.86 232.41 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" - (at 528.0152 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 527.05 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 527.05 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C52923" - (at 527.05 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "35082b27-24ba-4953-9ab4-5dacefa5a118") - ) - (pin "2" - (uuid "22a800ce-eb98-4216-8801-d62a2a1ba0c2") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C7") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 415.29 378.46 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "0467157b-b117-4a9d-8003-a55245fe5a95") - (property "Reference" "#PWR0169" - (at 415.29 384.81 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 415.29 383.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 415.29 378.46 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 415.29 378.46 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 415.29 378.46 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "40f595c1-a7f4-4f68-ad2a-e8f25d3d8fbf") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0169") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 149.86 368.3 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "079fbece-babf-45d9-9b8c-c79ffa899215") - (property "Reference" "#PWR0164" - (at 149.86 374.65 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 149.86 373.38 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 149.86 368.3 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 149.86 368.3 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 149.86 368.3 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "776356fd-79b8-4bb5-9cfe-5ddbaf4ca9c6") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0164") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "74xx:CD74HC4067SM") - (at 190.5 260.35 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "083dfcb0-f076-4082-a3ce-cfdc7b4ecb3d") - (property "Reference" "AMUX2" - (at 192.6941 233.68 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "CD74HC4067SM" - (at 192.6941 236.22 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Package_SO:SSOP-24_5.3x8.2mm_P0.65mm" - (at 217.17 285.75 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (hide yes) - ) - ) - (property "Datasheet" "http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf" - (at 181.61 238.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 190.5 260.35 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C179326" - (at 190.5 260.35 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "a3666124-608f-44cb-89a3-3b5365baadb3") - ) - (pin "10" - (uuid "5b4d1f45-be7b-4aef-9544-9857a2c5cca3") - ) - (pin "11" - (uuid "f2f2c03b-7ad8-4329-8fcf-457070fdf4f9") - ) - (pin "12" - (uuid "68945e59-f57a-41a3-b4f0-bcab4fe39441") - ) - (pin "13" - (uuid "528d19a2-95cc-448b-8974-647d20f3862a") - ) - (pin "14" - (uuid "8ae1e7ac-3ee4-45f4-8113-8070aef105d8") - ) - (pin "15" - (uuid "72df1e39-f8b5-41c0-a7bb-6e850fe8f174") - ) - (pin "16" - (uuid "d18a6e79-7104-415e-978b-581868df2b17") - ) - (pin "17" - (uuid "383319c1-dd61-41d4-9599-cdf7849fa3be") - ) - (pin "18" - (uuid "423dc433-ed2f-4a52-a120-ea257d66e324") - ) - (pin "19" - (uuid "feee7e6c-3ce7-43e1-952e-66295858f1b2") - ) - (pin "2" - (uuid "42d26dcc-cb36-4554-b8c8-d7507dc716cd") - ) - (pin "20" - (uuid "49423833-4e9f-44d6-b92b-684080c610f6") - ) - (pin "21" - (uuid "2cb08519-0b5c-4af9-8a1e-7205d468e32c") - ) - (pin "22" - (uuid "d444f65d-f1a4-4ebf-a149-1f79aca735a5") - ) - (pin "23" - (uuid "11b66c33-ce4f-4c6a-81ef-35461fe997a7") - ) - (pin "24" - (uuid "bc38a5e0-0fde-49e3-9003-7abfcf6a1f2e") - ) - (pin "3" - (uuid "8a9ad014-8c57-44d3-89f5-f497c9778468") - ) - (pin "4" - (uuid "37ccfd39-19d4-4017-9a5e-07cb4bada361") - ) - (pin "5" - (uuid "e0a5ede1-0a45-4b5b-8de9-da77fcb2afa6") - ) - (pin "6" - (uuid "a35ecfea-f561-4af0-8579-73b7d494bde9") - ) - (pin "7" - (uuid "5e3d4896-ba98-441a-921c-ce207a0bb69e") - ) - (pin "8" - (uuid "afd68cbd-7249-4b81-a67a-296c2607b4a7") - ) - (pin "9" - (uuid "d2e4b104-d41b-4a84-a8f4-fd6a71e34e99") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "AMUX2") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 33.02 96.52 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "0afa1b72-974e-44b6-93b9-ede473c36511") - (property "Reference" "#PWR061" - (at 33.02 100.33 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 33.02 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 33.02 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 33.02 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 33.02 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "4e1baad0-ad34-426f-b943-7ddce5594d13") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR061") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 234.95 106.68 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "0b2cbea5-4da9-46a4-bbef-184789a2ea10") - (property "Reference" "U37" - (at 228.6 105.4099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 228.6 107.9499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 234.95 115.57 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 234.95 90.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 234.95 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 234.95 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "dbc09465-30ba-42d5-9e41-1c6f94d2aca6") - ) - (pin "2" - (uuid "f28c241a-e897-4e98-b7af-63f1a4da68da") - ) - (pin "3" - (uuid "2a161e1e-e68b-4ed4-9c17-4dd777966ab8") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U37") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 135.89 68.58 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "0b2fd705-968c-4c96-b545-76fe267df900") - (property "Reference" "U19" - (at 129.54 67.3099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 129.54 69.8499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 135.89 77.47 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 135.89 52.07 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 135.89 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 135.89 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "028ea035-07d1-4db5-bdd6-951e9e1cbb36") - ) - (pin "2" - (uuid "d0cd2732-349b-4cf5-a03b-bce126480650") - ) - (pin "3" - (uuid "869ef6e8-b141-4a7f-a0c0-8a27f699f7d5") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U19") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 168.91 144.78 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "0c18fb44-40c9-432a-bace-a76015bae0f9") - (property "Reference" "U48" - (at 162.56 143.5099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 162.56 146.0499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 168.91 153.67 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 168.91 128.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 168.91 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 168.91 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "899405ce-3a3a-4311-9aa7-d265ddd2e751") - ) - (pin "2" - (uuid "13d40716-bd65-4f05-940b-bfcf31dd1dd0") - ) - (pin "3" - (uuid "2899208f-d4ee-4ab3-a57e-3a577adac7ae") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U48") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 135.89 106.68 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "0f57860d-9dfa-438f-8f53-64fa2e78769a") - (property "Reference" "U34" - (at 129.54 105.4099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 129.54 107.9499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 135.89 115.57 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 135.89 90.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 135.89 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 135.89 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "19d3cd11-20d4-4b53-82da-6e9043109aac") - ) - (pin "2" - (uuid "73b8fcaf-c241-4751-a85a-e2b073584882") - ) - (pin "3" - (uuid "0ebb9ee4-d578-4c77-933e-4de1e0a91567") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U34") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 102.87 68.58 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "0f94e3cd-3515-4088-8c9c-bfc9c54baacc") - (property "Reference" "U18" - (at 96.52 67.3099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 96.52 69.8499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 102.87 77.47 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 102.87 52.07 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 102.87 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 102.87 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "495b975e-df90-4eb8-b1f5-0f637d5d64c9") - ) - (pin "2" - (uuid "97bb4a1d-49e4-48c6-9348-8170b3f2baa8") - ) - (pin "3" - (uuid "2b49c5d8-3caf-4bd8-bf44-c7066e8e1865") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U18") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 166.37 21.59 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "10ca3b94-4a4d-4b54-82c9-104da2af71ff") - (property "Reference" "#PWR05" - (at 166.37 25.4 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 166.37 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 166.37 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 166.37 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 166.37 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "f9aa01c2-0a2c-406a-a586-e27ea2570399") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR05") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 298.45 41.91 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "1217abdc-81cd-463d-9bb2-9f03379912b0") - (property "Reference" "#PWR024" - (at 298.45 48.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 298.45 46.99 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 298.45 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 298.45 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 298.45 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "cf39e86c-8b88-428b-8e65-d74b29b6b3c2") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR024") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 433.07 144.78 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "12f70b7c-0267-41a5-be8b-b37dbfb89ebd") - (property "Reference" "U56" - (at 426.72 143.5099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 426.72 146.0499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 433.07 153.67 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 433.07 128.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 433.07 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 433.07 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "21eeba83-3fe6-4ac4-89e6-ab47292401e7") - ) - (pin "2" - (uuid "dbdf1bff-cfb4-4907-b36d-01a16fa4064e") - ) - (pin "3" - (uuid "7377ec5c-5067-4ed0-b4a4-c3a515bccfb8") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U56") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 166.37 58.42 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "13103b32-bbb3-4e2d-bfcc-2fa40e97d8ec") - (property "Reference" "#PWR035" - (at 166.37 62.23 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 166.37 53.34 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 166.37 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 166.37 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 166.37 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "d232ac6b-b5fe-44f0-8586-4cc51de7c31e") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR035") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 67.31 78.74 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "13af938a-08ce-4c5e-9c1a-a02bdfc7630a") - (property "Reference" "#PWR047" - (at 67.31 85.09 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 67.31 83.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 67.31 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 67.31 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 67.31 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "52d6261c-947d-4e74-8227-7d94e60333c8") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR047") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 298.45 21.59 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "13c6bf35-33ba-4bfb-84f2-7f692e23afff") - (property "Reference" "#PWR09" - (at 298.45 25.4 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 298.45 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 298.45 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 298.45 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 298.45 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "2dad68fa-7f60-48a9-8359-59c929da8169") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR09") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 527.05 237.49 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "13ea984f-3592-43c4-b049-bc5406d3cd45") - (property "Reference" "#PWR0151" - (at 527.05 243.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 527.05 242.57 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 527.05 237.49 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 527.05 237.49 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 527.05 237.49 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "85f9c775-dd90-4ef3-8fd4-a3624993b625") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0151") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 317.5 234.95 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "16010783-7fe1-4e53-a1a8-1672c557c6bc") - (property "Reference" "C16" - (at 321.31 233.68 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "100n" - (at 321.31 236.22 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" - (at 318.4652 238.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 317.5 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 317.5 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C1525" - (at 317.5 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "17e67179-b7e1-45f8-bc2d-a542ec1b7d6a") - ) - (pin "2" - (uuid "f0ccc760-480c-4e1b-addc-36b27d81dcbc") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C16") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 490.22 325.12 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "1685df29-b050-46fe-b489-4763cb6e3b38") - (property "Reference" "#PWR0119" - (at 490.22 331.47 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 490.22 330.2 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 490.22 325.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 490.22 325.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 490.22 325.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "ead3981e-7f70-4db7-b7aa-882328e92b54") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0119") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 496.57 41.91 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "169936f7-d905-4a45-8ea7-da9cc83f5b34") - (property "Reference" "#PWR030" - (at 496.57 48.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 496.57 46.99 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 496.57 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 496.57 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 496.57 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "69fe3b3d-2703-49e4-b121-d6d87fdfc457") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR030") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "MCU_ST_STM32F4:STM32F411CEUx") - (at 490.22 281.94 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "180d8677-3911-46f7-bac7-d472e763e7c6") - (property "Reference" "U69" - (at 477.52 242.57 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "STM32F411CEU6" - (at 495.3 322.58 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mm" - (at 477.52 320.04 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - (hide yes) - ) - ) - (property "Datasheet" "https://www.st.com/resource/en/datasheet/stm32f411ce.pdf" - (at 490.22 281.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 490.22 281.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C60420" - (at 490.22 281.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "d6f9cd73-cfdd-4828-ae3e-ea8663e8c4aa") - ) - (pin "10" - (uuid "fd95fbd8-30df-43c6-b84e-cfc8c44c03fc") - ) - (pin "11" - (uuid "7d4f8d86-0b84-4629-a07a-a07dcff3bacd") - ) - (pin "12" - (uuid "45272ef7-d009-4128-bced-7ca29ebf7c03") - ) - (pin "13" - (uuid "3564ed9f-42b7-4483-8a0e-c4ef4154cf0a") - ) - (pin "14" - (uuid "fb2afd29-72b5-4e02-a10a-2ef23817a92c") - ) - (pin "15" - (uuid "e1bf69c9-fd6f-4448-a366-e85e4d786d4d") - ) - (pin "16" - (uuid "e88cd3fd-957a-4b86-b824-0afc46825403") - ) - (pin "17" - (uuid "f9f50d95-72fc-4932-af93-45fe93f729a1") - ) - (pin "18" - (uuid "7acbeabe-2e9e-4223-8ed1-53a0e3eecad0") - ) - (pin "19" - (uuid "d2967b82-bad3-46e3-aea0-1b5bf50418a4") - ) - (pin "2" - (uuid "9a3b1f1e-0474-4d6e-9671-d07bacbd94a5") - ) - (pin "20" - (uuid "c565e746-391a-4db8-a6a3-fabf9eff7874") - ) - (pin "21" - (uuid "695d04f1-e40e-4ac3-8f88-f57aa141bcf3") - ) - (pin "22" - (uuid "a9ba14bd-d3c5-4608-ac18-86e459dca41e") - ) - (pin "23" - (uuid "3d507e4f-42e0-4c54-a14b-97911b3d49da") - ) - (pin "24" - (uuid "6275a4c3-325f-469b-866c-a8863af772f0") - ) - (pin "25" - (uuid "4b3a7653-ed91-45f1-8b91-c355da3bb004") - ) - (pin "26" - (uuid "2dda0365-7d79-42d1-9d6d-56de68dd5c18") - ) - (pin "27" - (uuid "17070f20-0b8a-46b6-b928-9648165033af") - ) - (pin "28" - (uuid "52feb0aa-b08d-41f9-85f7-a86a0e29ad9c") - ) - (pin "29" - (uuid "a5b65d33-5879-4583-9fb8-8e83bd54d6fb") - ) - (pin "3" - (uuid "e10a9e36-672c-472e-bff9-be01002290ff") - ) - (pin "30" - (uuid "642b1196-86e5-4740-8e71-f4de3d403a76") - ) - (pin "31" - (uuid "6dac29fa-a5f7-42fb-9e6f-139bba8cca0e") - ) - (pin "32" - (uuid "ff1a02d6-00e0-4c99-a9bc-d2eadf9805e7") - ) - (pin "33" - (uuid "c7d48a4d-beab-454b-8150-e2956832bbcb") - ) - (pin "34" - (uuid "2d511238-06f9-4e39-a85f-69bf5f65a5f7") - ) - (pin "35" - (uuid "66e3fa00-d0f4-44b9-a56b-94bac2e80636") - ) - (pin "36" - (uuid "1f92f51f-7694-4467-aa36-852bf8c2518b") - ) - (pin "37" - (uuid "e60dab53-ec94-4378-8071-e62b42e11f12") - ) - (pin "38" - (uuid "a023352b-5219-4df6-add6-12ce5e2cf031") - ) - (pin "39" - (uuid "a7fcaf18-2999-4adb-8941-aad320256f84") - ) - (pin "4" - (uuid "447bb19c-abe2-4b65-b02b-ec2e6556cf66") - ) - (pin "40" - (uuid "ecce5f2c-1ff2-4d52-81b4-cf527c73257f") - ) - (pin "41" - (uuid "ad09abd3-0aa0-49c6-ad62-eb9329cda71c") - ) - (pin "42" - (uuid "e8f3ae7d-61d5-4a7b-b5ae-9c5a2eba946a") - ) - (pin "43" - (uuid "677da4ab-1755-47b4-b89c-402663b22989") - ) - (pin "44" - (uuid "53facf25-5972-4f74-9be8-89b3f8185bee") - ) - (pin "45" - (uuid "8729d399-d8f8-4479-8265-dc718f384ce2") - ) - (pin "46" - (uuid "2ae12fd3-0a8f-416a-be43-f97ced9d57a4") - ) - (pin "47" - (uuid "c139b995-53ce-49a3-b6d3-88fe613ac289") - ) - (pin "48" - (uuid "148bca19-6fdb-48da-8e19-27f53a82e640") - ) - (pin "49" - (uuid "6ce1966f-f024-4273-bf93-c50d1a198760") - ) - (pin "5" - (uuid "37a5f70c-394c-4ba2-9b9d-1537d468e68f") - ) - (pin "6" - (uuid "a846e905-5895-4e46-a698-607f93abe84f") - ) - (pin "7" - (uuid "02a01258-3cb1-4600-a068-b44bd7b3c7d2") - ) - (pin "8" - (uuid "969be908-54e0-4804-8669-5f34ac2e057c") - ) - (pin "9" - (uuid "2d3bd5cf-3648-44c6-8357-e1bcce59b79d") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U69") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 397.51 134.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "18c33eeb-1d50-4de1-994e-fd2b17085cd3") - (property "Reference" "#PWR099" - (at 397.51 138.43 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 397.51 129.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 397.51 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 397.51 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 397.51 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "6330970d-7e94-41f1-b91f-aa92925af89b") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR099") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 100.33 78.74 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "192395ec-30a0-4b57-8d01-5f6e6a664ab5") - (property "Reference" "#PWR048" - (at 100.33 85.09 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 100.33 83.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 100.33 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 100.33 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 100.33 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "cfe447a9-ce71-45de-bba7-e93ad224aa1c") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR048") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 33.02 21.59 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "19ac0d96-9368-42b5-aa4d-23164e5d00ba") - (property "Reference" "#PWR01" - (at 33.02 25.4 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 33.02 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 33.02 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 33.02 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 33.02 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "bdc4e7ad-6206-4094-8fb3-eb70944bfe43") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR01") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 102.87 31.75 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "19d62190-2fbd-4c03-a6ae-e3d75b9062aa") - (property "Reference" "U3" - (at 96.52 30.4799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 96.52 33.0199 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 102.87 40.64 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 102.87 15.24 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 102.87 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 102.87 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "5bb96a1f-edd0-4296-a175-13e78a15291f") - ) - (pin "2" - (uuid "05d84b00-f768-4466-9184-699a35d990b4") - ) - (pin "3" - (uuid "6c90bdcc-055a-4c5e-9969-77fc19c630d8") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U3") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 265.43 96.52 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "19e0bfe8-aa96-4884-95eb-9d41194f3a19") - (property "Reference" "#PWR068" - (at 265.43 100.33 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 265.43 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 265.43 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 265.43 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 265.43 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "70de8741-1ddb-4b34-ac63-e893ecfa3cb0") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR068") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 430.53 154.94 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "1b4799a8-5643-47b3-8bbf-aa2f2b4f8bdb") - (property "Reference" "#PWR0113" - (at 430.53 161.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 430.53 160.02 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 430.53 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 430.53 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 430.53 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "48f93ac5-5dd2-4aed-9807-99b8d431dea2") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0113") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 499.11 81.28 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "1ba600b9-7741-4a69-a5a2-1d691f9ad1d9") - (property "Reference" "U30" - (at 492.76 80.0099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 492.76 82.5499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 499.11 90.17 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 499.11 64.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 499.11 81.28 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 499.11 81.28 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "e481e395-8a52-4349-8fff-49d3b651858a") - ) - (pin "2" - (uuid "7d687851-058a-413c-bf6d-ca36bd4d886c") - ) - (pin "3" - (uuid "f0487aad-071a-4401-a4d6-c2cb8aa9f589") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U30") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 69.85 31.75 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "1d21793e-f5e2-4e80-99d1-86ad5ec68710") - (property "Reference" "U2" - (at 63.5 30.4799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 63.5 33.0199 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 69.85 40.64 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 69.85 15.24 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 69.85 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 69.85 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "af8da9d8-9c2c-4f06-be94-c3be6c24ba31") - ) - (pin "2" - (uuid "58593a32-52a1-4085-930b-85268dffd59d") - ) - (pin "3" - (uuid "f077a881-1257-4680-92be-d547c51d1ca7") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U2") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:R") - (at 457.2 280.67 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "1d3ae981-e214-48d8-9118-479fde200dc5") - (property "Reference" "R2" - (at 459.74 279.4 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "1.2K" - (at 459.74 281.94 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder" - (at 455.422 280.67 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 457.2 280.67 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 457.2 280.67 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C25862" - (at 457.2 280.67 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "fe53bc98-515e-4590-966b-7ad41b597a68") - ) - (pin "2" - (uuid "acf37e06-be10-4798-ace6-fc0a0cebe72d") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "R2") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 400.05 31.75 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "1d3f44de-26fc-460c-90d2-5f356d228261") - (property "Reference" "U12" - (at 393.7 30.4799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 393.7 33.0199 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 400.05 40.64 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 400.05 15.24 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 400.05 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 400.05 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "e3c44595-ec5d-4ecc-84de-5862135e3df2") - ) - (pin "2" - (uuid "6ead36d6-8675-4fb6-bbd1-c7f5d0b08c54") - ) - (pin "3" - (uuid "7d345b50-dd34-4431-84a7-1293e40b2877") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U12") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 430.53 96.52 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "1d844345-1d83-46e6-ad14-dbbb0813ccc7") - (property "Reference" "#PWR073" - (at 430.53 100.33 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 430.53 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 430.53 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 430.53 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 430.53 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "87ac7d45-af70-49b7-bdc5-b2d98e1abdfc") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR073") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 199.39 134.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "1dab78e8-eb63-409e-96e3-5cc384ad86cb") - (property "Reference" "#PWR093" - (at 199.39 138.43 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 199.39 129.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 199.39 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 199.39 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 199.39 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "e908fcfa-9d59-4d66-8e1e-c6066be0de11") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR093") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 35.56 144.78 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "1e205122-61cb-4e14-b9ee-dbcb2df2db65") - (property "Reference" "U71" - (at 29.21 143.5099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 29.21 146.0499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 35.56 153.67 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 35.56 128.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 35.56 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 35.56 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "c873bc17-7859-466b-b5ec-74d3316e346b") - ) - (pin "2" - (uuid "b4d0894a-e46f-41d2-a12d-12b017119732") - ) - (pin "3" - (uuid "b94445bd-0fa7-4fe1-af1e-e8b1059fb03a") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U71") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 397.51 116.84 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "1f1cb4ff-6e38-46c5-844c-5da62b2f3f1f") - (property "Reference" "#PWR086" - (at 397.51 123.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 397.51 121.92 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 397.51 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 397.51 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 397.51 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "e034c99c-9972-492c-afc0-ee4b3c6ba33c") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR086") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Mechanical:Fiducial") - (at 537.21 369.57 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "210b6c6e-a447-4af3-996a-8c56b81ebaa3") - (property "Reference" "FID1" - (at 539.75 368.3 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "Fiducial" - (at 539.75 370.84 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Fiducial:Fiducial_1mm_Mask3mm" - (at 537.21 369.57 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 537.21 369.57 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 537.21 369.57 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "FID1") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 33.02 116.84 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "21cf3b8e-f833-4e6f-ad29-115da49917f9") - (property "Reference" "#PWR075" - (at 33.02 123.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 33.02 121.92 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 33.02 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 33.02 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 33.02 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "fca2e826-fe27-41fd-9d89-4efd650763db") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR075") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 472.44 134.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "234d98f8-159d-45fa-abb9-1efe064dd566") - (property "Reference" "#PWR0101" - (at 472.44 138.43 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 472.44 129.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 472.44 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 472.44 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 472.44 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "8bc75669-50c5-4e64-b325-def4607b1ede") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0101") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 166.37 41.91 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "2488a4d5-7e12-46e5-8d54-743ad7526fa7") - (property "Reference" "#PWR020" - (at 166.37 48.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 166.37 46.99 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 166.37 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 166.37 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 166.37 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "9cb12140-9261-4c01-81d3-47530d7bd99f") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR020") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 331.47 191.77 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "24ccd845-3fa1-456f-8cb2-13710aa73e5c") - (property "Reference" "#PWR0132" - (at 331.47 198.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 331.47 196.85 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 331.47 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 331.47 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 331.47 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "70672e8f-9867-4d62-8462-8cabda52a90e") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0132") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 397.51 154.94 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "262b7d38-c7a1-4a80-a2f1-711b417b8199") - (property "Reference" "#PWR0112" - (at 397.51 161.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 397.51 160.02 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 397.51 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 397.51 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 397.51 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "9f0d183b-0332-47a4-a8ad-49b9b93ca0b1") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0112") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 110.49 171.45 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "2716854c-3e04-4828-a0b6-c09bc4fbe3fc") - (property "Reference" "#PWR0116" - (at 110.49 175.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 110.49 166.37 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 110.49 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 110.49 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 110.49 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "6b5bbd38-46db-4242-a8f7-08daf511a54c") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0116") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 265.43 58.42 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "279de932-705c-445d-97c6-a8d50baf3452") - (property "Reference" "#PWR038" - (at 265.43 62.23 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 265.43 53.34 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 265.43 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 265.43 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 265.43 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "7b1c2826-b6ed-4532-8c6c-60fa257f1fde") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR038") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:FerriteBead") - (at 246.38 344.17 90) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "287d3877-c861-43ea-b335-88a6ebf95813") - (property "Reference" "FB2" - (at 246.3292 336.55 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "120R" - (at 246.3292 339.09 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "Inductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolder" - (at 246.38 345.948 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 246.38 344.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 246.38 344.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C76892" - (at 246.38 344.17 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "d3022267-b836-484d-99d0-3a4d90062d2e") - ) - (pin "2" - (uuid "b2edb54f-2a62-4d47-8f1c-35fc9dd0efe2") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "FB2") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 133.35 78.74 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "28fdfc4f-9525-47d5-92d1-552d63b68c7f") - (property "Reference" "#PWR049" - (at 133.35 85.09 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 133.35 83.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 133.35 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 133.35 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 133.35 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "50153ab3-25c0-43e2-9ca1-86e5cdefadb8") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR049") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 257.81 349.25 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "29e948fc-0bcd-4b04-a04a-f3765023e6da") - (property "Reference" "C10" - (at 251.46 347.98 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "22u" - (at 250.19 350.52 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder" - (at 258.7752 353.06 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 257.81 349.25 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 257.81 349.25 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C45783" - (at 257.81 349.25 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "6381bb39-2adf-4fe3-9f24-d5b90242ffaf") - ) - (pin "2" - (uuid "f18a7415-3a91-43e8-bd51-cc748c3e2a5c") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C10") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 525.78 287.02 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "2a188d36-0485-473d-a86b-5241344dbc24") - (property "Reference" "#PWR0171" - (at 525.78 293.37 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 525.78 292.1 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 525.78 287.02 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 525.78 287.02 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 525.78 287.02 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "5b6dfff3-2063-4a37-87ab-b76db5b10603") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0171") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 400.05 106.68 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "2d8012d1-6766-4ef0-a0f4-5739cba3b53f") - (property "Reference" "U42" - (at 393.7 105.4099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 393.7 107.9499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 400.05 115.57 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 400.05 90.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 400.05 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 400.05 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "f9457683-375e-4eee-a86e-2a040aae4d67") - ) - (pin "2" - (uuid "c8fb7a61-846e-4982-80f1-4f061277e4c4") - ) - (pin "3" - (uuid "f9a9f745-1ff5-468a-ad37-d851d9abe348") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U42") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 430.53 191.77 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "2e06433e-cdf9-4cc2-aed0-afef1abb0a2c") - (property "Reference" "#PWR0134" - (at 430.53 198.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 430.53 196.85 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 430.53 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 430.53 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 430.53 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "f5ee0924-e216-4caa-bbfb-f479b0dbd9a4") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0134") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:PWR_FLAG") - (at 278.13 383.54 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "308d806f-d8be-43f6-b555-2685822ad0d6") - (property "Reference" "#FLG01" - (at 278.13 381.635 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "PWR_FLAG" - (at 278.13 378.46 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 278.13 383.54 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 278.13 383.54 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 278.13 383.54 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "ffde1c03-3462-486b-bd4d-886a5e773b13") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#FLG01") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 267.97 181.61 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "30e243d0-c4b6-4c55-8227-e4ee7cf03d7e") - (property "Reference" "U62" - (at 261.62 180.34 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 261.62 182.88 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 267.97 190.5 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 267.97 165.1 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 267.97 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 267.97 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "6e28e3e6-a561-4305-9440-48469c9be9bb") - ) - (pin "2" - (uuid "7f6e272e-68ae-448e-96a1-580aafc8e44b") - ) - (pin "3" - (uuid "8d67f3b2-e80c-4e74-90ef-c3e6dc772f0f") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U62") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 430.53 134.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "339e5227-1d7f-47fb-aee9-c9136567bfd5") - (property "Reference" "#PWR0100" - (at 430.53 138.43 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 430.53 129.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 430.53 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 430.53 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 430.53 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "6c5d9776-60d9-4c68-a899-61e12e4663da") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0100") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 167.64 238.76 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "34169a8e-c196-4a97-a445-e07059c7d8c2") - (property "Reference" "#PWR0145" - (at 167.64 245.11 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 167.64 243.84 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 167.64 238.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 167.64 238.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 167.64 238.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "62220a10-e549-48c8-9ff5-d60d18de49af") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0145") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 33.02 134.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "349a5e4d-2b8b-47aa-a6ae-0244d2baa9de") - (property "Reference" "#PWR0153" - (at 33.02 138.43 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 33.02 129.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 33.02 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 33.02 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 33.02 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "e18a3a71-adbd-4377-b117-aa2e7a807478") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0153") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 334.01 31.75 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "35878e6d-700c-4f74-935a-17b6a753f3f5") - (property "Reference" "U10" - (at 327.66 30.4799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 327.66 33.0199 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 334.01 40.64 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 334.01 15.24 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 334.01 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 334.01 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "96a73506-0423-43ad-ae33-f5e6fad8157e") - ) - (pin "2" - (uuid "12c47660-427f-40b1-9aa5-7e698da9e2fc") - ) - (pin "3" - (uuid "6763d617-4e0e-4260-b342-eb61ee18b8de") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U10") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 166.37 116.84 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "35cd6d4f-aaba-403c-9ee8-7935b79b98c0") - (property "Reference" "#PWR079" - (at 166.37 123.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 166.37 121.92 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 166.37 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 166.37 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 166.37 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "10af40fc-1cba-47c7-9140-89423332db68") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR079") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 466.09 181.61 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "35fa7129-0270-4f24-a8e6-1aa914c709d2") - (property "Reference" "U66" - (at 459.74 180.34 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 459.74 182.88 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 466.09 190.5 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 466.09 165.1 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 466.09 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 466.09 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "92d4fe19-8395-4aaa-93b3-6811c19e63d1") - ) - (pin "2" - (uuid "c563deb6-2e17-4c26-87f8-0cbad2d340b0") - ) - (pin "3" - (uuid "e457c8f3-4aac-4b9b-b665-bdd69b3e956d") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U66") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 110.49 191.77 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "3787a563-94ef-435b-b4c3-d37c6160115e") - (property "Reference" "#PWR0127" - (at 110.49 198.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 110.49 196.85 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 110.49 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 110.49 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 110.49 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "0b80b792-8c09-4bcc-ac79-072cf6ca6122") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0127") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 553.72 231.14 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "379e2035-8ed9-4bae-8c87-2432a91e18a6") - (property "Reference" "C8" - (at 557.53 229.87 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "1u" - (at 557.53 232.41 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" - (at 554.6852 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 553.72 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 553.72 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C52923" - (at 553.72 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "cc4ec868-539f-4d16-8f47-8c7cc9548c34") - ) - (pin "2" - (uuid "25c55f18-ca63-4d07-8d24-eb5280409b2a") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C8") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 100.33 96.52 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "37ba8578-836c-4d33-b8f9-d75e3179700f") - (property "Reference" "#PWR063" - (at 100.33 100.33 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 100.33 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 100.33 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 100.33 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 100.33 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "d5c5298d-2f92-4138-91a4-26dab9a81a2c") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR063") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 430.53 171.45 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "385094d3-76dc-4947-b067-7eb33f428fa9") - (property "Reference" "#PWR0123" - (at 430.53 175.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 430.53 166.37 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 430.53 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 430.53 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 430.53 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "0bc28ec4-5a6b-4564-afa2-fa9d2acb01d9") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0123") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 257.81 355.6 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "385fdc9f-0058-4821-81c6-80ad73bc6132") - (property "Reference" "#PWR0162" - (at 257.81 361.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 257.81 360.68 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 257.81 355.6 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 257.81 355.6 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 257.81 355.6 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "3193247d-5632-4df8-8a6b-bc05f3bcfb1d") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0162") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 166.37 134.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "38b840fe-061d-45ba-9bf9-0ba275cfc2fb") - (property "Reference" "#PWR092" - (at 166.37 138.43 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 166.37 129.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 166.37 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 166.37 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 166.37 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "460ab3dd-03dc-48e9-96b2-7bf8677eacab") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR092") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 364.49 96.52 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "39c7c472-96aa-4a39-b7f2-6b9413ca6627") - (property "Reference" "#PWR071" - (at 364.49 100.33 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 364.49 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 364.49 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 364.49 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 364.49 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "90e87612-ca20-408d-9853-40e198e6ba0f") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR071") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 267.97 106.68 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "3a011bcc-4ed1-4251-ae81-c124d85ce80e") - (property "Reference" "U38" - (at 261.62 105.4099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 261.62 107.9499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 267.97 115.57 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 267.97 90.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 267.97 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 267.97 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "4aa1a89e-9c4c-49f9-9101-054689965858") - ) - (pin "2" - (uuid "2b424eff-bc56-4a68-9bbf-6ff00864742c") - ) - (pin "3" - (uuid "1d2469c4-2782-4b2f-bdd9-9cd22fc6789b") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U38") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 367.03 181.61 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "3b151bf0-964c-4546-a653-e90f3f4330bf") - (property "Reference" "U64" - (at 360.68 180.34 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 360.68 182.88 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 367.03 190.5 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 367.03 165.1 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 367.03 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 367.03 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "688a322e-075d-40a0-ac28-905398be5332") - ) - (pin "2" - (uuid "7a5ca6d0-bc88-432d-985e-58582f54a66b") - ) - (pin "3" - (uuid "132f3d66-9d39-4e8e-87d4-33e526709410") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U64") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Mechanical:Fiducial") - (at 552.45 369.57 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "3ca6f2fb-42c5-4f43-9c14-e8c7ee94a68c") - (property "Reference" "FID2" - (at 554.99 368.3 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "Fiducial" - (at 554.99 370.84 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Fiducial:Fiducial_1mm_Mask3mm" - (at 552.45 369.57 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 552.45 369.57 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 552.45 369.57 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "FID2") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 69.85 106.68 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "3d6bb761-f248-46cf-9e59-a70c451f65fc") - (property "Reference" "U32" - (at 63.5 105.4099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 63.5 107.9499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 69.85 115.57 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 69.85 90.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 69.85 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 69.85 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "d269962d-6ed7-4b06-9829-06f198cc74ea") - ) - (pin "2" - (uuid "b0182eef-b8d8-4465-abba-a769038e9ea0") - ) - (pin "3" - (uuid "3525080d-acc2-40fb-9591-14b53511b050") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U32") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 73.66 355.6 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "3d703497-c11d-4d72-84bb-4f31b77b4533") - (property "Reference" "#PWR0152" - (at 73.66 361.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 73.66 360.68 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 73.66 355.6 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 73.66 355.6 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 73.66 355.6 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "2f50f84c-dab3-4983-9670-d6df0ad90720") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0152") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3V") - (at 525.78 274.32 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "3ecbbc5f-de3a-4e1f-83c2-8b800445a92a") - (property "Reference" "#PWR0170" - (at 525.78 278.13 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3V" - (at 525.78 269.24 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 525.78 274.32 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 525.78 274.32 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 525.78 274.32 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "904460c7-2ada-4bc3-8ae0-db51fc931a9b") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0170") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 73.66 349.25 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "3f859e5f-50ef-4f67-b71f-b72332b51d3e") - (property "Reference" "C9" - (at 77.47 347.98 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "100n" - (at 77.47 350.52 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" - (at 74.6252 353.06 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 73.66 349.25 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 73.66 349.25 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C1525" - (at 73.66 349.25 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "1d14b810-6ce7-49d8-bade-e8fb44fe0b1a") - ) - (pin "2" - (uuid "d0368787-5e87-44fb-89ea-f8c3adb0fc98") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C9") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 232.41 116.84 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "40005c10-c540-4240-8af9-ff902c37faf1") - (property "Reference" "#PWR081" - (at 232.41 123.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 232.41 121.92 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 232.41 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 232.41 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 232.41 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "0fa0cefa-8337-4873-bf15-3b75204f7889") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR081") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 133.35 41.91 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "40c2ba23-6615-4d72-9cc9-dc02ce1768e2") - (property "Reference" "#PWR019" - (at 133.35 48.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 133.35 46.99 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 133.35 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 133.35 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 133.35 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "8ab11cd7-d28f-4f7a-baa1-e3ae55da606a") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR019") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 138.43 361.95 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "4528e6ea-4168-422e-85b4-7b620cdddf6f") - (property "Reference" "C12" - (at 142.24 360.68 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "20p" - (at 142.24 363.22 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" - (at 139.3952 365.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 138.43 361.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 138.43 361.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C1554" - (at 138.43 361.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "32c32992-1d5f-4f28-959b-79d8020f5568") - ) - (pin "2" - (uuid "97fad13f-1d49-4d71-99f3-04a973ba8b03") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C12") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 133.35 58.42 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "456aa4d3-6e15-4b9c-93cf-e952faacb813") - (property "Reference" "#PWR034" - (at 133.35 62.23 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 133.35 53.34 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 133.35 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 133.35 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 133.35 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "08c5410b-f585-4396-9fcd-5d5f0caf6aad") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR034") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 67.31 154.94 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "464adb93-025a-4fe0-92e8-a1b1b4425a43") - (property "Reference" "#PWR0102" - (at 67.31 161.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 67.31 160.02 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 67.31 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 67.31 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 67.31 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "c58f4215-e5da-4069-b518-9f13d83caeb1") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0102") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 33.02 58.42 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "471bb869-29ae-40ba-8883-418df5b3c579") - (property "Reference" "#PWR031" - (at 33.02 62.23 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 33.02 53.34 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 33.02 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 33.02 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 33.02 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "85f9c63e-f322-4d3a-9cf8-ee8fc96c0493") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR031") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 199.39 191.77 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "47ddc171-5b8a-4a1f-98a1-1aa49671e237") - (property "Reference" "#PWR0129" - (at 199.39 198.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 199.39 196.85 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 199.39 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 199.39 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 199.39 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "3bbb3c29-af5b-4654-be18-fb1eca1b1c3d") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0129") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:R") - (at 405.13 365.76 90) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "4959b4bb-20e9-44db-a204-f8a8db4440f0") - (property "Reference" "R7" - (at 405.13 363.22 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "5.1K" - (at 405.13 360.68 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder" - (at 405.13 367.538 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 405.13 365.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 405.13 365.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "2190517e-aa6e-428e-a9df-e08c460e96c0") - ) - (pin "2" - (uuid "6c3ebdfa-c0ea-4d07-907f-fb94b1b72eb3") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "R7") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 190.5 288.29 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "49905b22-9026-41af-bce7-a143eb9c859d") - (property "Reference" "#PWR0142" - (at 190.5 294.64 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 190.5 293.37 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 190.5 288.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 190.5 288.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 190.5 288.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "e76cff4e-61f4-4cd7-a7ff-4beaee437dde") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0142") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 241.3 234.95 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "4a2dd6ee-3dee-4b30-8ca4-241c88737034") - (property "Reference" "C15" - (at 245.11 233.68 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "100n" - (at 245.11 236.22 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" - (at 242.2652 238.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 241.3 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 241.3 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C1525" - (at 241.3 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "c4a3f725-c184-4229-9118-820061a0793e") - ) - (pin "2" - (uuid "061c65cb-76c3-46e8-92c9-8e255bd596bc") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C15") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:LED") - (at 307.34 344.17 180) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "4b7eb5ae-cde7-4c05-84ad-506807a25be9") - (property "Reference" "D1" - (at 308.9275 336.55 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "RED" - (at 308.9275 339.09 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder" - (at 307.34 344.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 307.34 344.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 307.34 344.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C2286" - (at 307.34 344.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "ffb23ab9-3265-4a2d-8177-9241ae328e58") - ) - (pin "2" - (uuid "93f65b6a-5985-4565-8d79-b2ea3f6a4679") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "D1") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Mechanical:Fiducial") - (at 566.42 369.57 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "4c20dfe0-d98a-4045-b902-d8028da8d572") - (property "Reference" "FID3" - (at 568.96 368.3 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "Fiducial" - (at 568.96 370.84 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Fiducial:Fiducial_1mm_Mask3mm" - (at 566.42 369.57 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 566.42 369.57 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 566.42 369.57 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "FID3") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 67.31 134.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "4d794ca8-2a33-4207-b590-5393843c657f") - (property "Reference" "#PWR089" - (at 67.31 138.43 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 67.31 129.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 67.31 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 67.31 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 67.31 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "6121528a-a0ac-411f-8d21-991c1db4813e") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR089") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 317.5 231.14 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "4e617985-1118-4389-b77e-1ed6fe2e999f") - (property "Reference" "#PWR0159" - (at 317.5 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 317.5 226.06 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 317.5 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 317.5 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 317.5 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "b2e549e4-c515-4493-8cfa-6162048827a1") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0159") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 367.03 31.75 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "4ed05cd4-cf01-4f95-91d0-505d5c6cd0f2") - (property "Reference" "U11" - (at 360.68 30.4799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 360.68 33.0199 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 367.03 40.64 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 367.03 15.24 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 367.03 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 367.03 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "12ef7114-ae43-4111-ab79-3b3ce14c842d") - ) - (pin "2" - (uuid "fa4f39ef-290d-41c1-be57-315a75183f53") - ) - (pin "3" - (uuid "8b74a514-e850-458a-81c6-12815ffe0e8f") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U11") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 331.47 21.59 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "501e9eef-1bb5-46c9-af06-9ed1dcabaa5e") - (property "Reference" "#PWR010" - (at 331.47 25.4 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 331.47 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 331.47 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 331.47 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 331.47 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "400c3487-1623-4739-a687-f9de09eb7c65") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR010") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:R") - (at 405.13 350.52 90) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "51049e6f-5033-4dbe-baed-a67a14037809") - (property "Reference" "R6" - (at 405.13 347.98 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "5.1K" - (at 405.13 345.44 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder" - (at 405.13 352.298 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 405.13 350.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 405.13 350.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "108ca55f-f757-49ba-ab4d-197a8633fd94") - ) - (pin "2" - (uuid "d2b36126-194a-4ad8-b373-9255348aa2ad") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "R6") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 364.49 78.74 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "515645f2-ec62-46f0-806f-dc9b05468232") - (property "Reference" "#PWR056" - (at 364.49 85.09 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 364.49 83.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 364.49 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 364.49 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 364.49 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "5d0121ae-431a-42f4-93cf-f324a79d196a") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR056") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 400.05 144.78 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "5291085f-1a24-46ab-8881-dbc02ea86434") - (property "Reference" "U55" - (at 393.7 143.5099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 393.7 146.0499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 400.05 153.67 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 400.05 128.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 400.05 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 400.05 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "360b94b0-c0b2-4219-ba97-80bed1314607") - ) - (pin "2" - (uuid "cb1e5a38-2d40-47ed-a44b-00d764133af7") - ) - (pin "3" - (uuid "0ff5b952-da3c-4277-8cb8-cec6d0c86600") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U55") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 265.43 21.59 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "53fccb8d-36d5-470d-9841-525b777532eb") - (property "Reference" "#PWR08" - (at 265.43 25.4 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 265.43 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 265.43 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 265.43 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 265.43 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "c33c0e30-161f-4651-aabe-9b1a057ca207") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR08") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 267.97 68.58 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "55876554-f7a3-4c15-8d91-cc64fbb11707") - (property "Reference" "U23" - (at 261.62 67.3099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 261.62 69.8499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 267.97 77.47 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 267.97 52.07 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 267.97 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 267.97 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "d9ffbec3-9303-44f1-adfb-a44b59cd6b3c") - ) - (pin "2" - (uuid "0e39ada8-9e14-41d8-96fa-69ba4d542c36") - ) - (pin "3" - (uuid "c9190781-8835-43a4-9b0a-a26c4b642043") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U23") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 33.02 78.74 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "55b27aed-afb6-4fbd-8de9-690a962381a0") - (property "Reference" "#PWR046" - (at 33.02 85.09 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 33.02 83.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 33.02 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 33.02 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 33.02 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "39f97abb-3fd4-42d7-855f-ad7d0f7dd9e4") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR046") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 67.31 191.77 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "56d75c12-1dc3-4d35-81c8-3e3206f52419") - (property "Reference" "#PWR0126" - (at 67.31 198.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 67.31 196.85 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 67.31 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 67.31 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 67.31 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "b71ee716-6211-4486-b7d5-a5d44958caf2") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0126") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 67.31 58.42 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "5734db2a-00bf-4a4e-a9c4-44e2c0aabccd") - (property "Reference" "#PWR032" - (at 67.31 62.23 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 67.31 53.34 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 67.31 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 67.31 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 67.31 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "a5a2f58f-2788-4e8a-bcb5-ee7e54203de4") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR032") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:PWR_FLAG") - (at 511.81 226.06 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "5a2e51f2-f950-4c43-850c-8b72d4b116c2") - (property "Reference" "#FLG03" - (at 511.81 224.155 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "PWR_FLAG" - (at 511.81 220.98 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 511.81 226.06 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 511.81 226.06 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 511.81 226.06 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "56870d93-faef-4173-bf08-b84a7f440238") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#FLG03") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "74xx:CD74HC4067SM") - (at 340.36 260.35 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "5b0bae1c-c7c8-4cb7-9dec-c7f6828d3545") - (property "Reference" "AMUX4" - (at 342.5541 233.68 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "CD74HC4067SM" - (at 342.5541 236.22 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Package_SO:SSOP-24_5.3x8.2mm_P0.65mm" - (at 367.03 285.75 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (hide yes) - ) - ) - (property "Datasheet" "http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf" - (at 331.47 238.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 340.36 260.35 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C179326" - (at 340.36 260.35 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "b5ed37ca-cb5d-4053-a34c-cdf281138ad4") - ) - (pin "10" - (uuid "e798b785-3181-496f-a081-a2b6084f4600") - ) - (pin "11" - (uuid "c6bfd1fa-beaf-4b9b-b53b-747d642929fb") - ) - (pin "12" - (uuid "9bcb0873-1757-4d6f-8461-c693d814b286") - ) - (pin "13" - (uuid "185c41cf-989d-498d-b5ae-3f28299b8166") - ) - (pin "14" - (uuid "ecce7089-3a26-4da6-af6f-3e6c10d1baab") - ) - (pin "15" - (uuid "3f7b4889-a867-422a-80d8-160184bbe1ca") - ) - (pin "16" - (uuid "f4946a65-dcd7-4c88-a141-182c2d6c39bb") - ) - (pin "17" - (uuid "60760c95-ae5d-40fa-b5fb-00201e0b88ff") - ) - (pin "18" - (uuid "4d406012-e704-456d-95c8-45b71b315be7") - ) - (pin "19" - (uuid "6a8a2859-ecda-4d8e-afed-a8051806d990") - ) - (pin "2" - (uuid "91ea9d4a-e104-424c-842a-3977e6dced68") - ) - (pin "20" - (uuid "f26b0fe2-4152-4907-b152-95adaa7e4347") - ) - (pin "21" - (uuid "046c43ca-e1cf-4237-9ade-754e1ab947e8") - ) - (pin "22" - (uuid "e47e1813-52a3-47e2-ac9a-4a04ed414a48") - ) - (pin "23" - (uuid "9c4c3d2d-2eca-4d88-ae35-19f107b52e70") - ) - (pin "24" - (uuid "c2ca95cf-b64a-455f-a44c-06bf82b162c2") - ) - (pin "3" - (uuid "062772c2-1626-4ade-9d38-34afacbb54bb") - ) - (pin "4" - (uuid "ecea5201-0cc9-4b3d-a519-3dbd59e24d6f") - ) - (pin "5" - (uuid "91a43709-cda4-4a0d-9cc4-55e079ae091b") - ) - (pin "6" - (uuid "742dcb23-1fe4-41c2-81d9-4f4a691adf9a") - ) - (pin "7" - (uuid "724a87a7-71ff-4bce-984b-234814cb8077") - ) - (pin "8" - (uuid "42b7e4b0-a2fa-4e78-9d25-c8298023cd6a") - ) - (pin "9" - (uuid "23b071fc-b197-459f-b2f8-9c70915dc027") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "AMUX4") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 168.91 68.58 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "5b4f6373-12df-47ec-a5ff-a5d65d8cca2d") - (property "Reference" "U20" - (at 162.56 67.3099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 162.56 69.8499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 168.91 77.47 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 168.91 52.07 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 168.91 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 168.91 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "37b3e7ed-2603-4c45-b51c-8750441889d8") - ) - (pin "2" - (uuid "cafe218b-7b23-4f83-8d7d-99b43796e765") - ) - (pin "3" - (uuid "edfcbd85-1930-489e-a504-41719ecf7109") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U20") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:PWR_FLAG") - (at 266.7 344.17 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "5c111d11-f932-4625-b5cd-0907d2fcd981") - (property "Reference" "#FLG02" - (at 266.7 342.265 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "PWR_FLAG" - (at 266.7 339.09 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 266.7 344.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 266.7 344.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 266.7 344.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "27ceac93-1404-4f07-9573-67d84b13a185") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#FLG02") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 265.43 171.45 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "5cfb56c9-6cd0-4c24-84ae-ac1c77e91deb") - (property "Reference" "#PWR0120" - (at 265.43 175.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 265.43 166.37 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 265.43 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 265.43 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 265.43 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "7a352203-80ce-48f5-8b88-2f97af2aad54") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0120") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 457.2 231.14 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "5fd9e678-5004-4011-911c-53b3f1371350") - (property "Reference" "C4" - (at 461.01 229.87 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "100n" - (at 461.01 232.41 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" - (at 458.1652 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 457.2 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 457.2 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C1525" - (at 457.2 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "714d29f7-dae8-4c41-a993-9144e3345ce8") - ) - (pin "2" - (uuid "23ab7b6f-0f4d-45c0-a330-3a9571f03862") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C4") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 430.53 116.84 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "61dc6cb6-9068-4a76-9b6b-4607f7b0bfab") - (property "Reference" "#PWR087" - (at 430.53 123.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 430.53 121.92 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 430.53 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 430.53 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 430.53 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "508aeb0d-6813-42a2-b87f-870d05a9a472") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR087") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 553.72 237.49 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "62547a9d-8cb6-4b4c-84f7-486207013247") - (property "Reference" "#PWR0150" - (at 553.72 243.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 553.72 242.57 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 553.72 237.49 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 553.72 237.49 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 553.72 237.49 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "4972a8c8-da97-45a9-99b5-5853d2198418") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0150") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 340.36 288.29 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "62e19db0-7ba4-4f87-9ac6-e50fd1d2ae7d") - (property "Reference" "#PWR0146" - (at 340.36 294.64 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 340.36 293.37 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 340.36 288.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 340.36 288.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 340.36 288.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "066bbdcb-2f1a-45e6-adf4-2751228ddb06") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0146") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 100.33 41.91 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "631de770-ecd1-417e-912d-b57ee0273158") - (property "Reference" "#PWR018" - (at 100.33 48.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 100.33 46.99 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 100.33 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 100.33 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 100.33 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "dfc501ff-cc39-4db3-a985-b951052e75ae") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR018") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 300.99 68.58 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "638b51b2-f81d-49b8-8fd8-e1c1fdee4e45") - (property "Reference" "U24" - (at 294.64 67.3099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 294.64 69.8499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 300.99 77.47 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 300.99 52.07 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 300.99 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 300.99 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "2a742398-fdad-4b62-8614-e5d986caeb4b") - ) - (pin "2" - (uuid "7b816f17-394c-45a8-827d-8c425dc5ecc8") - ) - (pin "3" - (uuid "ea89f759-e184-4f71-8bdc-9ddb62b748de") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U24") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 463.55 41.91 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "63e8f00a-4d21-43fc-b68a-14b56f621965") - (property "Reference" "#PWR029" - (at 463.55 48.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 463.55 46.99 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 463.55 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 463.55 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 463.55 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "ccacbfc2-3a6e-4aca-93b9-f12afd6dbef9") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR029") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 267.97 31.75 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "669e4653-a011-40b3-a857-b9b0386778cf") - (property "Reference" "U8" - (at 261.62 30.4799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 261.62 33.0199 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 267.97 40.64 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 267.97 15.24 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 267.97 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 267.97 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "b52f59a2-0305-425d-bc3d-b83316c7c066") - ) - (pin "2" - (uuid "47268d9a-871c-4376-a590-f7992b4f2254") - ) - (pin "3" - (uuid "15c0ef40-b775-4dcf-8f35-43983dccb6e6") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U8") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Connector_Generic:Conn_01x04") - (at 438.15 292.1 180) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "66a51944-bb85-4d50-a44f-f941c6982791") - (property "Reference" "J2" - (at 435.61 292.1 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "I2C" - (at 435.61 289.56 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical" - (at 438.15 292.1 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 438.15 292.1 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 438.15 292.1 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "b20307ec-2acb-4d0b-8be3-df14371124e3") - ) - (pin "2" - (uuid "30961abc-3d0b-4cc4-96d0-ea37966a5d91") - ) - (pin "3" - (uuid "b5db43d1-3b89-4ca6-913d-ebe37690044f") - ) - (pin "4" - (uuid "92932127-c771-482d-a95f-2d3ddd4ac252") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "J2") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 367.03 144.78 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "66ae5a65-8e38-4706-90cb-51cbdb5ba036") - (property "Reference" "U54" - (at 360.68 143.5099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 360.68 146.0499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 367.03 153.67 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 367.03 128.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 367.03 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 367.03 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "375ba677-4377-4be4-9f81-239d03bc4ecb") - ) - (pin "2" - (uuid "0c30c1e1-6a55-4183-afa3-2cada4f6f109") - ) - (pin "3" - (uuid "836e3958-96c4-4425-8cb0-9cd9bf771a81") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U54") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 67.31 21.59 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "66e6bd7b-9599-4b38-8f91-7aac790be0df") - (property "Reference" "#PWR02" - (at 67.31 25.4 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 67.31 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 67.31 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 67.31 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 67.31 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "aac7acef-e96f-4254-b027-73bae0d6c55a") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR02") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 397.51 21.59 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "66f68e81-4cc0-4d4d-bcca-437f025382d4") - (property "Reference" "#PWR012" - (at 397.51 25.4 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 397.51 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 397.51 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 397.51 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 397.51 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "b342be8c-7f3a-4899-96af-0f67107e4747") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR012") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 67.31 41.91 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "6716cc63-f6e2-498a-b737-06074c095b30") - (property "Reference" "#PWR017" - (at 67.31 48.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 67.31 46.99 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 67.31 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 67.31 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 67.31 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "21d0378f-ff0b-40d0-8a3c-83bd73600a61") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR017") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 293.37 349.25 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "688700d5-45cb-4139-9b56-4fca60674be1") - (property "Reference" "C11" - (at 297.18 347.98 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "22u" - (at 297.18 350.52 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder" - (at 294.3352 353.06 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 293.37 349.25 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 293.37 349.25 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C45783" - (at 293.37 349.25 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "3df51a51-12cc-45c3-b711-81c7d26659be") - ) - (pin "2" - (uuid "f90f3f21-c3f4-4c7e-9d31-3588bf14ee81") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C11") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 496.57 71.12 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "68c5eabc-31ff-4201-8905-8504de9fdbd2") - (property "Reference" "#PWR045" - (at 496.57 74.93 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 496.57 66.04 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 496.57 71.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 496.57 71.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 496.57 71.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "6f54216b-0f24-4da3-afa6-e485888082c4") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR045") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 199.39 116.84 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "69608875-2e6c-46d5-80f3-e2d61b2d15a6") - (property "Reference" "#PWR080" - (at 199.39 123.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 199.39 121.92 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 199.39 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 199.39 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 199.39 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "434ae661-273e-4a7b-8e4c-b4c495d286b6") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR080") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 102.87 144.78 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "6a73caed-7b24-4aae-8525-71df52f0b1e6") - (property "Reference" "U46" - (at 96.52 143.5099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 96.52 146.0499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 102.87 153.67 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 102.87 128.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 102.87 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 102.87 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "e62ffbb6-576c-4d5a-a76c-aeb0741552c6") - ) - (pin "2" - (uuid "f2ccc712-b84c-4aec-9189-3b298ad58f27") - ) - (pin "3" - (uuid "7ee5ce2a-8f3d-4048-a4be-3e81c6fc460e") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U46") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 93.98 236.22 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "6b8037eb-805b-4aae-b89e-78a4b2adafa9") - (property "Reference" "C18" - (at 97.79 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "100n" - (at 97.79 237.49 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" - (at 94.9452 240.03 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 93.98 236.22 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 93.98 236.22 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C1525" - (at 93.98 236.22 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "17cbef10-87ad-4e5e-934d-ee9ad8e0f5b7") - ) - (pin "2" - (uuid "d919ee1d-bb57-4992-8474-e8fb1d136da9") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C18") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 167.64 231.14 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "6d0547de-3e55-4605-a518-d430ef3dc20d") - (property "Reference" "#PWR0143" - (at 167.64 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 167.64 226.06 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 167.64 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 167.64 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 167.64 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "d75db89f-cfa9-46ca-a432-81fe6bf27bb2") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0143") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 232.41 154.94 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "6d397459-8e3e-4236-ab58-2349a357e5a7") - (property "Reference" "#PWR0107" - (at 232.41 161.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 232.41 160.02 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 232.41 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 232.41 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 232.41 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "95aa20ee-002f-43d4-87fd-224d2e661439") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0107") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 298.45 78.74 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "6e018f53-e2a5-49e5-a665-1f9f3bc8b23c") - (property "Reference" "#PWR054" - (at 298.45 85.09 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 298.45 83.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 298.45 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 298.45 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 298.45 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "905d9a97-e031-4785-980d-85d08756cd8c") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR054") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 298.45 116.84 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "6f7972c0-a118-4558-9e6c-c2cbc8397d9b") - (property "Reference" "#PWR083" - (at 298.45 123.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 298.45 121.92 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 298.45 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 298.45 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 298.45 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "0bc7687e-81c2-437d-9084-fe42e289eb27") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR083") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 331.47 116.84 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "70c36e6c-af11-4439-9df5-01c80f7b50af") - (property "Reference" "#PWR084" - (at 331.47 123.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 331.47 121.92 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 331.47 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 331.47 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 331.47 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "8f916e41-99bb-451c-8b41-268095b55f70") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR084") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 364.49 154.94 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "71d48ccd-7618-4c6a-a207-e07c30606544") - (property "Reference" "#PWR0111" - (at 364.49 161.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 364.49 160.02 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 364.49 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 364.49 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 364.49 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "ea6aa0cc-e74a-41a1-a9cf-d75242edbf5c") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0111") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 364.49 21.59 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "71f7ac0a-7b5c-4950-94f6-9cef032a2999") - (property "Reference" "#PWR011" - (at 364.49 25.4 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 364.49 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 364.49 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 364.49 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 364.49 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "e2b18a7c-feb0-4d14-9c1c-15529515c2b3") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR011") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 298.45 58.42 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "73715368-776a-4149-acde-b4eb9340f90e") - (property "Reference" "#PWR039" - (at 298.45 62.23 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 298.45 53.34 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 298.45 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 298.45 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 298.45 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "5aa5ab6b-58ef-445b-bb4c-a25afbce0691") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR039") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 265.43 41.91 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "7428327f-89a1-427f-bcca-3ba3893f6818") - (property "Reference" "#PWR023" - (at 265.43 48.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 265.43 46.99 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 265.43 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 265.43 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 265.43 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "90cbf3fd-3680-4990-8cf1-d3c026bd214c") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR023") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 265.43 78.74 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "7438cd0c-5dfa-470a-ad1d-e7ee6027b3de") - (property "Reference" "#PWR053" - (at 265.43 85.09 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 265.43 83.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 265.43 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 265.43 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 265.43 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "c5ac2f1c-79f0-47ec-82b2-a9d2ffa4df64") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR053") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 116.84 289.56 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "7736f6d3-122c-4f04-9ec8-3151c74d7d8f") - (property "Reference" "#PWR0140" - (at 116.84 295.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 116.84 294.64 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 116.84 289.56 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 116.84 289.56 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 116.84 289.56 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "f9d31da4-6628-4833-906e-2e3bee844f29") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0140") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 201.93 31.75 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "7788162b-9173-4d06-b4f8-43a932d88c7d") - (property "Reference" "U6" - (at 195.58 30.4799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 195.58 33.0199 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 201.93 40.64 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 201.93 15.24 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 201.93 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 201.93 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "670eae52-d420-40e8-85c6-85ff7be40d0d") - ) - (pin "2" - (uuid "e9e79907-b4ff-4c56-ba20-96dfba05eafe") - ) - (pin "3" - (uuid "e7175adc-d802-4d3e-9e0e-4b96349182bb") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U6") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 331.47 171.45 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "77ba4ad2-b2c6-4ceb-a0d2-dbcb3dcb5925") - (property "Reference" "#PWR0121" - (at 331.47 175.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 331.47 166.37 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 331.47 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 331.47 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 331.47 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "a2291236-dcfc-4767-96ff-bd204153485a") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0121") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 35.56 68.58 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "7aa17c6e-5d54-4d07-9762-e507722f80af") - (property "Reference" "U16" - (at 29.21 67.3099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 29.21 69.8499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 35.56 77.47 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 35.56 52.07 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 35.56 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 35.56 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "906ebd67-5b71-4442-85ec-b817824c6e64") - ) - (pin "2" - (uuid "66972ca7-9168-4731-a423-f5dca11715f2") - ) - (pin "3" - (uuid "1b0e2713-6047-468e-ad73-6abd0541f61c") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U16") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 27.94 232.41 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "7d4bf0cf-e91c-4ca0-ae42-8913ea9d208f") - (property "Reference" "#PWR0137" - (at 27.94 236.22 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 27.94 227.33 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 27.94 232.41 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 27.94 232.41 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 27.94 232.41 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "daa48574-d5bb-4424-9232-9b6af7ff4701") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0137") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 472.44 154.94 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "7e4dda05-0235-4c1d-bc4e-96b00ea0dbc4") - (property "Reference" "#PWR0114" - (at 472.44 161.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 472.44 160.02 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 472.44 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 472.44 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 472.44 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "2b91ac02-6665-46fb-9054-21ce1153312c") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0114") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 199.39 154.94 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "7f88e143-6ed5-4475-908d-7746170e052b") - (property "Reference" "#PWR0106" - (at 199.39 161.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 199.39 160.02 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 199.39 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 199.39 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 199.39 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "6e0d3ccd-86fa-4cc9-86f5-f3e0d90816aa") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0106") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 433.07 31.75 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "85311a33-3a06-4dc0-8f3e-f90ae647858d") - (property "Reference" "U13" - (at 426.72 30.4799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 426.72 33.0199 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 433.07 40.64 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 433.07 15.24 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 433.07 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 433.07 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "e967e3a5-b140-4dbb-9d8e-3f6425d5d480") - ) - (pin "2" - (uuid "239f8938-3730-45c5-9eda-2fb613f51d22") - ) - (pin "3" - (uuid "bc71cd21-a951-4874-8cfc-3dddce2b91cc") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U13") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 463.55 21.59 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "8540810a-5ee8-4965-8e1f-485289f9eb9f") - (property "Reference" "#PWR014" - (at 463.55 25.4 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 463.55 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 463.55 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 463.55 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 463.55 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "fb091739-dfad-471d-98a6-681c325a4bc9") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR014") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 431.8 231.14 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "865672ee-4fd3-4d7d-adc3-a0f498d55aed") - (property "Reference" "C2" - (at 435.61 229.87 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "100n" - (at 435.61 232.41 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" - (at 432.7652 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 431.8 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 431.8 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C1525" - (at 431.8 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "8cc22cad-589e-49cc-be48-c0b900935acd") - ) - (pin "2" - (uuid "c9e77b9f-ad7b-427c-811e-1bf24d77a382") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C2") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:R") - (at 320.04 349.25 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "8714da23-d34c-47e9-b224-8536769a20db") - (property "Reference" "R5" - (at 322.58 347.98 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "5.1k" - (at 322.58 350.52 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder" - (at 318.262 349.25 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 320.04 349.25 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 320.04 349.25 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C25905" - (at 320.04 349.25 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "7c76bf96-b939-4e83-8911-ba24e2133b1c") - ) - (pin "2" - (uuid "f09e391b-0e94-45f5-874e-3301fffe51b5") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "R5") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 496.57 191.77 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "8922034c-c005-40f3-9757-83fcffa72dec") - (property "Reference" "#PWR0136" - (at 496.57 198.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 496.57 196.85 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 496.57 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 496.57 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 496.57 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "6115c96d-18d5-4d79-b00b-5cd87efd8785") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0136") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 511.81 231.14 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "8aa6e962-dca4-4325-a8f2-e04264382cec") - (property "Reference" "C6" - (at 515.62 229.87 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "10n" - (at 515.62 232.41 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" - (at 512.7752 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 511.81 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 511.81 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C15195" - (at 511.81 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "ed0d1b95-ebeb-4141-a258-fa3f805cac86") - ) - (pin "2" - (uuid "c2b8e767-ac1e-44af-86e7-b2ebb8c165f0") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C6") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 69.85 181.61 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "8b4d40a4-7306-4a3b-a176-42a7a61cc2fb") - (property "Reference" "U58" - (at 63.5 180.3399 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 63.5 182.8799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 69.85 190.5 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 69.85 165.1 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 69.85 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 69.85 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "5668e32f-f31f-417a-b116-1ab142f9bc63") - ) - (pin "2" - (uuid "a74fe624-4479-4b2b-b36d-08ff26ae2fcd") - ) - (pin "3" - (uuid "aa6a9a46-27a2-41b8-86bc-c2a3cae5cb9c") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U58") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 278.13 384.81 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "8c109374-ff63-4204-8224-c591e66d42b7") - (property "Reference" "#PWR0167" - (at 278.13 391.16 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 278.13 389.89 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 278.13 384.81 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 278.13 384.81 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 278.13 384.81 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "7469d54e-c8b4-4bab-92ab-78f672b22b7d") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0167") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 317.5 238.76 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "8c446751-02de-4153-b988-aeddadf9b415") - (property "Reference" "#PWR0165" - (at 317.5 245.11 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 317.5 243.84 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 317.5 238.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 317.5 238.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 317.5 238.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "a6a7ab96-0d04-4d74-afe7-871f0766cee5") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0165") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 463.55 58.42 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "8c7420d7-5e7c-4e88-b177-61b4fbbda596") - (property "Reference" "#PWR044" - (at 463.55 62.23 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 463.55 53.34 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 463.55 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 463.55 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 463.55 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "137cfe7c-a9c4-4e2b-9d08-1bc839d9c705") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR044") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 331.47 78.74 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "8d74e763-2348-4b97-9fa4-027009761726") - (property "Reference" "#PWR055" - (at 331.47 85.09 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 331.47 83.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 331.47 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 331.47 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 331.47 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "5fdad529-7f53-437b-9ff5-85035aa1b76c") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR055") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3V") - (at 487.68 224.79 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "90d6fd1e-6e55-48a9-8965-3eaed20c15cf") - (property "Reference" "#PWR0130" - (at 487.68 228.6 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3V" - (at 487.68 219.71 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 487.68 224.79 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 487.68 224.79 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 487.68 224.79 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "765b0f05-3530-4386-922f-edfb093b4ec8") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0130") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 135.89 31.75 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "90de8236-5c39-4b6c-a3a6-6208df75b165") - (property "Reference" "U4" - (at 129.54 30.4799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 129.54 33.0199 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 135.89 40.64 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 135.89 15.24 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 135.89 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 135.89 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "58117591-a1bf-4a7a-9197-5d108574b955") - ) - (pin "2" - (uuid "9e2881d8-7332-4cd8-884f-5998a8a622ea") - ) - (pin "3" - (uuid "6fa88961-546b-4dc6-9c81-ef1b91803275") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U4") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 35.56 31.75 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9152c1be-dbf8-451c-8925-f3a50597eacb") - (property "Reference" "U1" - (at 29.21 30.4799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 29.21 33.0199 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 35.56 40.64 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 35.56 15.24 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 35.56 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 35.56 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "6f724c8b-f885-4a63-a599-19cf396826d9") - ) - (pin "2" - (uuid "5388a727-032c-468d-a7c2-1ffbb0887fe0") - ) - (pin "3" - (uuid "71b97067-6db2-433e-a874-132fc625c650") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U1") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 331.47 41.91 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9157fca4-7c8e-450f-a24a-a6ddd7379061") - (property "Reference" "#PWR025" - (at 331.47 48.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 331.47 46.99 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 331.47 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 331.47 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 331.47 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "25971b7b-3ed8-4a98-942b-68d251e2096d") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR025") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 67.31 171.45 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "91cef1de-321f-44d9-8712-98e4fa80be48") - (property "Reference" "#PWR0115" - (at 67.31 175.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 67.31 166.37 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 67.31 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 67.31 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 67.31 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "16c471cb-7b3d-4d7a-bb66-9d98788a7990") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0115") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 364.49 41.91 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "920ac738-fd2f-41b0-8933-595a6e11367f") - (property "Reference" "#PWR026" - (at 364.49 48.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 364.49 46.99 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 364.49 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 364.49 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 364.49 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "5be025f9-036c-496f-8290-1744ab4d6d71") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR026") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 162.56 361.95 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9216449a-0cd8-4c56-96c0-b04008dde0e6") - (property "Reference" "C13" - (at 166.37 360.68 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "20p" - (at 166.37 363.22 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" - (at 163.5252 365.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 162.56 361.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 162.56 361.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C1554" - (at 162.56 361.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "abeec86e-f659-498b-b0f3-2d835b625d23") - ) - (pin "2" - (uuid "f4a9d484-8db6-4247-bb9c-dc3bbcd37871") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C13") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 93.98 232.41 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9274a66d-a6fb-4c2d-82f1-1e0501332b36") - (property "Reference" "#PWR0138" - (at 93.98 236.22 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 93.98 227.33 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 93.98 232.41 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 93.98 232.41 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 93.98 232.41 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "2864858a-da0a-46d4-a234-f616c7da2d10") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0138") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 497.84 224.79 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "93764919-23a9-41ab-8703-1c55719a3078") - (property "Reference" "#PWR0147" - (at 497.84 228.6 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 497.84 219.71 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 497.84 224.79 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 497.84 224.79 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 497.84 224.79 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "4e671cec-4172-43d3-8a5d-3bcb9044d239") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0147") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 265.43 134.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9404bd30-8490-4fe2-aaa1-51a9c1ad061b") - (property "Reference" "#PWR095" - (at 265.43 138.43 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 265.43 129.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 265.43 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 265.43 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 265.43 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "42835836-77ff-4082-bf71-a8b7ac783706") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR095") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 199.39 41.91 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9414eb3d-d8e0-4b62-8e8b-a4242b483bdb") - (property "Reference" "#PWR021" - (at 199.39 48.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 199.39 46.99 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 199.39 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 199.39 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 199.39 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "91ababeb-5ee7-4268-90b9-5f66631df67f") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR021") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 433.07 106.68 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "96d272e3-5967-4df7-91d1-1ca2c49f0986") - (property "Reference" "U43" - (at 426.72 105.4099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 426.72 107.9499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 433.07 115.57 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 433.07 90.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 433.07 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 433.07 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "2039b444-ba1c-45ef-afc5-22c22563a35e") - ) - (pin "2" - (uuid "1742ff5b-958f-43c8-8fe5-643eab9508ee") - ) - (pin "3" - (uuid "4b142aa2-a7ee-4700-b4b2-1f94c1998320") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U43") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 430.53 41.91 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "979a76a7-efce-4761-9b82-39dfc4fbeb66") - (property "Reference" "#PWR028" - (at 430.53 48.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 430.53 46.99 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 430.53 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 430.53 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 430.53 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "187669d9-b402-49c9-98e9-5647d6d38b8e") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR028") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 166.37 154.94 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "985950b0-2c2f-4baa-a3c7-dc25b167d766") - (property "Reference" "#PWR0105" - (at 166.37 161.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 166.37 160.02 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 166.37 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 166.37 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 166.37 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "14328c36-bae8-46b7-b05f-9a2db108e0f5") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0105") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 430.53 78.74 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "987c9f94-0308-42f7-a842-e1b48e5e546d") - (property "Reference" "#PWR058" - (at 430.53 85.09 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 430.53 83.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 430.53 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 430.53 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 430.53 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "fdc6be8d-3fd7-4eb6-91f7-a0ac086b7f06") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR058") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 430.53 58.42 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "98e6bb65-e3aa-4251-8f3b-43c59efa5016") - (property "Reference" "#PWR043" - (at 430.53 62.23 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 430.53 53.34 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 430.53 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 430.53 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 430.53 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "c2cb21b4-7f8e-4988-9752-ee7bb4accd40") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR043") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 73.66 382.27 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9a78f70c-7d0c-4eea-bcd3-7a23054e459b") - (property "Reference" "#PWR0155" - (at 73.66 388.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 73.66 387.35 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 73.66 382.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 73.66 382.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 73.66 382.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "5ccf586f-31d1-49cc-a948-27aa05dbec36") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0155") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 93.98 240.03 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9abfc5f4-b04a-4135-ad03-458e8e3352dc") - (property "Reference" "#PWR0141" - (at 93.98 246.38 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 93.98 245.11 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 93.98 240.03 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 93.98 240.03 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 93.98 240.03 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "6cf3e81f-c18d-4cb5-8e3b-c37cae1721a3") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0141") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 100.33 116.84 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9ad52722-6102-4054-98aa-d847d7c318e2") - (property "Reference" "#PWR077" - (at 100.33 123.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 100.33 121.92 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 100.33 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 100.33 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 100.33 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "69eb9a62-6df2-47af-a01f-82e646e0d720") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR077") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 466.09 106.68 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9b030a47-641b-40ef-b0d9-9fd00da49f5a") - (property "Reference" "U44" - (at 459.74 105.4099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 459.74 107.9499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 466.09 115.57 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 466.09 90.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 466.09 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 466.09 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "4a6f869b-bec3-4144-820e-87be8f56d679") - ) - (pin "2" - (uuid "6344182c-b47c-46bc-8dc4-68da38ba7d10") - ) - (pin "3" - (uuid "0d7b71ce-6358-4bdb-a370-5ffa06d388eb") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U44") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 433.07 68.58 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9bbb78b3-c655-439b-9148-e19901cbfeaf") - (property "Reference" "U28" - (at 426.72 67.3099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 426.72 69.8499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 433.07 77.47 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 433.07 52.07 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 433.07 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 433.07 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "c9fcacfe-393b-47f8-8ae3-1aeec71bfcff") - ) - (pin "2" - (uuid "27e64fa5-8629-4b69-ba9c-2e2395fec57b") - ) - (pin "3" - (uuid "f3e3ba01-cd32-4709-8716-5599ede387e7") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U28") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 433.07 181.61 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9d04b62b-b00a-4015-9e8c-3e96186c265d") - (property "Reference" "U65" - (at 426.72 180.34 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 426.72 182.88 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 433.07 190.5 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 433.07 165.1 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 433.07 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 433.07 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "9138de2d-f07e-4181-8bcd-9030b87755e2") - ) - (pin "2" - (uuid "ec63f043-ba1d-4116-a05a-8d639b0d72cf") - ) - (pin "3" - (uuid "445e1d17-4df8-44b7-a833-80a50ff9c960") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U65") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 35.56 106.68 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9d9bd1d7-5e5b-4333-9fd8-207a345694bb") - (property "Reference" "U31" - (at 29.21 105.4099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 29.21 107.9499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 35.56 115.57 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 35.56 90.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 35.56 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 35.56 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "9ef8bfbf-2354-4230-b481-470a4a12babe") - ) - (pin "2" - (uuid "d2aa9d58-ed44-4b89-baf9-1532cedb8207") - ) - (pin "3" - (uuid "4347cd20-3ffd-49dc-bcfc-312dd5a56478") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U31") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 397.51 78.74 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9df2c923-da72-4801-a18e-fbda6de2103d") - (property "Reference" "#PWR057" - (at 397.51 85.09 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 397.51 83.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 397.51 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 397.51 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 397.51 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "5c9f6104-43a9-47ff-8001-f0c3119d9ecb") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR057") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 100.33 58.42 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9e314368-ae6c-462d-8a76-5a647db7777d") - (property "Reference" "#PWR033" - (at 100.33 62.23 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 100.33 53.34 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 100.33 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 100.33 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 100.33 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "b6c4702d-7945-40e1-9cfc-35dd7114187f") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR033") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 67.31 96.52 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9e6f67a3-2f28-4519-a349-e9474161afe4") - (property "Reference" "#PWR062" - (at 67.31 100.33 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 67.31 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 67.31 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 67.31 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 67.31 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "159de5e2-a11b-47e6-9a01-44b8690e6a9b") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR062") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 146.05 181.61 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "9eb77311-b94a-4dcd-816a-65100dceb3a9") - (property "Reference" "U60" - (at 139.7 180.3399 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 139.7 182.8799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 146.05 190.5 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 146.05 165.1 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 146.05 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 146.05 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "c6ac4333-e117-423d-ab6d-96b388fb371e") - ) - (pin "2" - (uuid "b4fce591-077f-4fa8-86ee-c463bdc8ff11") - ) - (pin "3" - (uuid "25ab26cc-9f93-4288-8f07-8abe587d1cb2") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U60") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 232.41 41.91 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "a04d653d-4af3-4a00-bd38-9401992d86fb") - (property "Reference" "#PWR022" - (at 232.41 48.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 232.41 46.99 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 232.41 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 232.41 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 232.41 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "cdd09746-8256-4d4f-98b5-cac9c0489878") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR022") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 443.23 297.18 0) - (mirror y) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "a0afc546-af34-4ada-a8e4-6b554d53e739") - (property "Reference" "#PWR0168" - (at 443.23 303.53 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 443.23 302.26 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 443.23 297.18 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 443.23 297.18 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 443.23 297.18 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "ea54c059-8afe-420e-ac90-ade999dccf9c") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0168") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 469.9 231.14 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "a3252b6b-8344-4094-a9da-91a2e0f94de4") - (property "Reference" "C5" - (at 473.71 229.87 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "100n" - (at 473.71 232.41 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" - (at 470.8652 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 469.9 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 469.9 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C1525" - (at 469.9 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "655e1501-889e-49f6-af74-4464dd18d58d") - ) - (pin "2" - (uuid "edafc0dc-1e99-4257-adf9-f09541f25c27") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C5") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 474.98 144.78 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "a3b3f7af-3aa1-4dc9-be96-7ba32575c1bf") - (property "Reference" "U57" - (at 468.63 143.5099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 468.63 146.0499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 474.98 153.67 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 474.98 128.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 474.98 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 474.98 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "eb77d367-b18c-4a73-944f-f85cda8f53e2") - ) - (pin "2" - (uuid "0f133b60-8dbd-4f15-8edb-f4b694816881") - ) - (pin "3" - (uuid "ac4796d3-a267-4e73-91ce-592fbfaad659") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U57") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 69.85 144.78 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "a3ba12d1-3a25-4e8b-b88d-f8f81beef045") - (property "Reference" "U45" - (at 63.5 143.5099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 63.5 146.0499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 69.85 153.67 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 69.85 128.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 69.85 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 69.85 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "c510af62-8416-477f-9862-171a7325d196") - ) - (pin "2" - (uuid "e0fe407b-0ba1-4dcd-9b08-ced6cf599bb3") - ) - (pin "3" - (uuid "d104c038-2377-4d12-b23f-b50ac731c657") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U45") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 234.95 68.58 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "a466df66-aade-408a-aa6c-acdd6450e2a8") - (property "Reference" "U22" - (at 228.6 67.3099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 228.6 69.8499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 234.95 77.47 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 234.95 52.07 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 234.95 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 234.95 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "41b0e8fe-7929-4d13-a294-23c32dcce8aa") - ) - (pin "2" - (uuid "b3aff449-eb82-4d33-88a5-2b5811427ed7") - ) - (pin "3" - (uuid "0bef1d23-59e5-4cff-99d0-21ae9158883b") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U22") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 298.45 154.94 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "a582dca0-584c-48a8-9639-0e0b6d0c2a84") - (property "Reference" "#PWR0109" - (at 298.45 161.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 298.45 160.02 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 298.45 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 298.45 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 298.45 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "8706f5b7-f0bb-40b9-9e41-ffb1ee40836e") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0109") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 100.33 134.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "a597120d-b988-41ff-9c7c-f190fa929efe") - (property "Reference" "#PWR090" - (at 100.33 138.43 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 100.33 129.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 100.33 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 100.33 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 100.33 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "4f0e0409-a933-491b-8466-1c1379c2b309") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR090") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 100.33 21.59 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "a633ead0-827c-4298-a779-e11158df8016") - (property "Reference" "#PWR03" - (at 100.33 25.4 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 100.33 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 100.33 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 100.33 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 100.33 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "aa427a5c-6821-47af-b000-c08482a3c42d") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR03") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:R") - (at 73.66 377.19 180) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "a6589f57-f1df-40ff-b10c-a3007757474d") - (property "Reference" "R4" - (at 69.85 377.19 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "10k" - (at 77.47 377.19 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder" - (at 75.438 377.19 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 73.66 377.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 73.66 377.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C25744" - (at 73.66 377.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "fa7e37e7-80d6-4524-8501-d25253326433") - ) - (pin "2" - (uuid "80c422c4-af9a-4f41-8618-04c8c1dfbaad") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "R4") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 466.09 68.58 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "a6b09e0d-3f7c-435f-b495-3e11c361d351") - (property "Reference" "U29" - (at 459.74 67.3099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 459.74 69.8499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 466.09 77.47 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 466.09 52.07 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 466.09 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 466.09 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "26106f71-7879-4b8b-b683-52dc278905e5") - ) - (pin "2" - (uuid "d03bf1dc-7e30-4c9b-9fbe-5c1c87eba9df") - ) - (pin "3" - (uuid "2429176c-da0b-4a5f-b564-e2133c27d040") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U29") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 400.05 68.58 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "a6d58d05-b484-46b2-a7d2-f1759bcd5f01") - (property "Reference" "U27" - (at 393.7 67.3099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 393.7 69.8499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 400.05 77.47 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 400.05 52.07 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 400.05 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 400.05 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "e23bb047-14c8-4e0a-a667-bc5e0d40a8b8") - ) - (pin "2" - (uuid "d43ea049-082e-4b6a-a0db-dc74c8015deb") - ) - (pin "3" - (uuid "da6fc950-ebca-4413-b062-79dd332a1d97") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U27") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 397.51 58.42 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "a8ba81c0-11f6-4f7e-a493-1c05b46f1d0d") - (property "Reference" "#PWR042" - (at 397.51 62.23 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 397.51 53.34 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 397.51 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 397.51 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 397.51 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "d238324b-d377-4c99-b872-c34e9808e942") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR042") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 364.49 171.45 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "a9c428dd-c310-412a-9fef-bd15683fb0fb") - (property "Reference" "#PWR0122" - (at 364.49 175.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 364.49 166.37 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 364.49 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 364.49 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 364.49 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "35dde27f-2b3f-49f4-bb16-01407b0f3ac8") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0122") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 201.93 144.78 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "aad04641-0abe-4b62-9645-c6b2aedfba1f") - (property "Reference" "U49" - (at 195.58 143.5099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 195.58 146.0499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 201.93 153.67 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 201.93 128.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 201.93 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 201.93 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "46bd6fb9-aca2-4a88-bb0a-97b6fffb9864") - ) - (pin "2" - (uuid "f050258a-f693-4a1d-a723-19adc6ab228d") - ) - (pin "3" - (uuid "75feabef-e538-4385-a03b-0d88d1227080") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U49") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 334.01 106.68 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "acce2f13-960c-4104-a485-0075107ab662") - (property "Reference" "U40" - (at 327.66 105.4099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 327.66 107.9499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 334.01 115.57 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 334.01 90.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 334.01 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 334.01 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "7efde242-344b-4e77-94d1-80ce77981894") - ) - (pin "2" - (uuid "f890364d-7ead-4fe2-9082-c25afc8fc6cf") - ) - (pin "3" - (uuid "5f6a0742-a2ca-4154-b9e3-3feede482e86") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U40") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 234.95 144.78 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "ad2893c8-ab6d-4742-bd44-848ce544e4de") - (property "Reference" "U50" - (at 228.6 143.5099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 228.6 146.0499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 234.95 153.67 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 234.95 128.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 234.95 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 234.95 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "d36efdd0-03f8-480a-8290-fa14e8c62cb3") - ) - (pin "2" - (uuid "9d161a33-38a2-4397-877c-a28e70e25ce3") - ) - (pin "3" - (uuid "3997175a-274c-4e53-9c9a-895f472ce7b9") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U50") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 199.39 171.45 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "ad6f7cdb-88df-4b6d-afce-51f37fd87a58") - (property "Reference" "#PWR0118" - (at 199.39 175.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 199.39 166.37 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 199.39 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 199.39 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 199.39 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "8af2d572-0a24-479d-8cbf-7efcf0306cce") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0118") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 201.93 106.68 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "adec0f75-1e63-44ee-9a27-90e9783ae2bf") - (property "Reference" "U36" - (at 195.58 105.4099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 195.58 107.9499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 201.93 115.57 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 201.93 90.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 201.93 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 201.93 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "f3287d52-5275-40fd-9272-abb55d1ff84b") - ) - (pin "2" - (uuid "49a54f01-415f-4bd7-8aba-5a794ccee98d") - ) - (pin "3" - (uuid "6706b656-d282-4d94-8b9f-3aa1a23bfefe") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U36") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 135.89 144.78 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "afcace14-e4f5-4610-aa5a-e9d20d5e4629") - (property "Reference" "U47" - (at 129.54 143.5099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 129.54 146.0499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 135.89 153.67 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 135.89 128.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 135.89 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 135.89 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "97cca1b1-c71c-4379-95b5-fe0ed0b7bbda") - ) - (pin "2" - (uuid "b08013bf-2ef8-4095-b52f-de8540dfa6fa") - ) - (pin "3" - (uuid "411e0f37-f988-483a-b25e-d5104a882394") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U47") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 364.49 58.42 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "afd712ea-78cc-41af-b877-1bcff4e72148") - (property "Reference" "#PWR041" - (at 364.49 62.23 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 364.49 53.34 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 364.49 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 364.49 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 364.49 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "4c3bd17c-977f-4d43-b0d7-fbb56aa770a7") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR041") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 234.95 31.75 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "b13cf3c4-81e4-46ff-a3fe-52d396f6a0c9") - (property "Reference" "U7" - (at 228.6 30.4799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 228.6 33.0199 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 234.95 40.64 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 234.95 15.24 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 234.95 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 234.95 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "e7595add-f512-4f4d-a18a-c63f7657f085") - ) - (pin "2" - (uuid "0c81d9a5-cc9a-458c-a95e-cec9a0aded39") - ) - (pin "3" - (uuid "a61caaf0-90db-4a0e-aa2d-f69acc51f8ba") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U7") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "74xx:CD74HC4067SM") - (at 264.16 260.35 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "b1561baa-2e2f-47b3-902e-f11ebb1745b7") - (property "Reference" "AMUX3" - (at 266.3541 233.68 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "CD74HC4067SM" - (at 266.3541 236.22 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Package_SO:SSOP-24_5.3x8.2mm_P0.65mm" - (at 290.83 285.75 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (hide yes) - ) - ) - (property "Datasheet" "http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf" - (at 255.27 238.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 264.16 260.35 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C179326" - (at 264.16 260.35 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "9a9d3b84-4d27-4ace-9760-b876a6dd30eb") - ) - (pin "10" - (uuid "fdf8dbe4-8db2-4efe-b31b-e68d70614f95") - ) - (pin "11" - (uuid "02a3e74e-5530-46d4-b2a3-732f22556c63") - ) - (pin "12" - (uuid "63c49008-9d6b-43e8-aa3e-f6f2163f10fc") - ) - (pin "13" - (uuid "1e517d54-39cb-4758-8934-7315c5343b7e") - ) - (pin "14" - (uuid "4ce15267-d8a0-40f8-8548-b36b69fc5d4d") - ) - (pin "15" - (uuid "7fa601ed-718f-46e4-8a79-3f0f159ce8af") - ) - (pin "16" - (uuid "35722540-3cb2-448d-b59c-0644d3df8d9e") - ) - (pin "17" - (uuid "42ec27e7-3b3c-4718-9a96-addf2cc1a8bc") - ) - (pin "18" - (uuid "24231a9a-7656-42fb-b622-b5ed9a765b56") - ) - (pin "19" - (uuid "6114ff71-4f65-43c0-87ac-d06a664a8726") - ) - (pin "2" - (uuid "e12b2e26-c9ad-4470-ad57-418f48c4eece") - ) - (pin "20" - (uuid "f63402de-bfec-413e-8130-04ab3036e0d3") - ) - (pin "21" - (uuid "eeb51902-1995-43d7-b6a7-42e76f50e4a6") - ) - (pin "22" - (uuid "e20b3d44-4868-4ac6-9296-114c17acace5") - ) - (pin "23" - (uuid "d1e1e47f-e84b-4e2d-a7d3-fb4cf373c118") - ) - (pin "24" - (uuid "cc483cda-c414-4819-93c3-19dd7773436b") - ) - (pin "3" - (uuid "14bcd4eb-7b49-4577-8f07-373b8724d332") - ) - (pin "4" - (uuid "10ff273d-d0ea-4280-b41e-c469be1376ab") - ) - (pin "5" - (uuid "3264058c-2830-42ef-968a-34f9c447559c") - ) - (pin "6" - (uuid "cd33ca87-db99-4650-825b-f1fcc66f8c00") - ) - (pin "7" - (uuid "4d39b02b-6472-434a-b94a-ef2b80e5ac3d") - ) - (pin "8" - (uuid "5d17df3c-6f95-43c1-a6fd-fef36ef25b61") - ) - (pin "9" - (uuid "054c74c5-c3a3-4645-822b-ed2b8f0b12f4") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "AMUX3") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 166.37 96.52 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "b45b3255-5d38-477f-af8d-48199cd7cfa4") - (property "Reference" "#PWR065" - (at 166.37 100.33 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 166.37 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 166.37 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 166.37 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 166.37 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "3dcce806-3c77-47bb-9f74-cca3b6a9569e") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR065") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 143.51 171.45 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "b4f99e28-cbc9-4dd1-8195-a70a7da778e9") - (property "Reference" "#PWR0117" - (at 143.51 175.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 143.51 166.37 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 143.51 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 143.51 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 143.51 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "7a3bd785-b84d-4bba-a321-208dd5d0cdf7") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0117") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 199.39 96.52 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "b73dc2fe-f631-4ad7-aaa6-4996157ff31f") - (property "Reference" "#PWR066" - (at 199.39 100.33 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 199.39 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 199.39 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 199.39 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 199.39 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "390c1205-37e8-4f33-89e5-2da2c118256b") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR066") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 265.43 154.94 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "b7c3193a-70ae-40ab-91df-ef69950ad878") - (property "Reference" "#PWR0108" - (at 265.43 161.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 265.43 160.02 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 265.43 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 265.43 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 265.43 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "a185c202-257a-4866-ba8e-aafe70419ffd") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0108") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 298.45 134.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "b86a5906-6dfd-499f-aa45-9994c5f63b6e") - (property "Reference" "#PWR096" - (at 298.45 138.43 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 298.45 129.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 298.45 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 298.45 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 298.45 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "0ef3f515-0bf0-4abe-b8bf-7c955339f912") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR096") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 199.39 58.42 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "b86aa51d-dc87-483a-8c4e-bf45485b19a2") - (property "Reference" "#PWR036" - (at 199.39 62.23 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 199.39 53.34 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 199.39 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 199.39 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 199.39 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "2ed0e656-1817-4e1e-9c1c-d547107de17d") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR036") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 496.57 91.44 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "b88cd75c-38f9-4ea1-9b6b-6c82249c12fc") - (property "Reference" "#PWR060" - (at 496.57 97.79 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 496.57 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 496.57 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 496.57 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 496.57 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "f3dad30d-31f8-4af6-a06d-3aa2cae2bc6e") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR060") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 444.5 231.14 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "b908f51e-fc75-4689-955e-0584ec07ee72") - (property "Reference" "C3" - (at 448.31 229.87 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "100n" - (at 448.31 232.41 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" - (at 445.4652 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 444.5 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 444.5 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C1525" - (at 444.5 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "d00f39cf-679a-4263-ad9d-9fe6c39b1e17") - ) - (pin "2" - (uuid "0ea7637a-aec8-440a-a538-4c9e8f9a7ca1") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C3") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 466.09 31.75 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "b980c516-8a46-4717-8f7a-16d979f66433") - (property "Reference" "U14" - (at 459.74 30.4799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 459.74 33.0199 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 466.09 40.64 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 466.09 15.24 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 466.09 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 466.09 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "9e3b6ef6-f735-4373-b21a-81ff48552a6a") - ) - (pin "2" - (uuid "84085a90-3fe6-4474-9383-2138f26ce5d9") - ) - (pin "3" - (uuid "b16d4183-d7b0-42a1-bbc5-6378f33b00da") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U14") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 264.16 288.29 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "ba24cfc5-2fac-48f1-b80e-535a912ceb05") - (property "Reference" "#PWR0144" - (at 264.16 294.64 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 264.16 293.37 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 264.16 288.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 264.16 288.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 264.16 288.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "0f5b777b-b25d-48f9-a51e-e0880278b4e2") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0144") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 331.47 154.94 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "ba6a9904-9595-497a-a09b-3f9c97208875") - (property "Reference" "#PWR0110" - (at 331.47 161.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 331.47 160.02 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 331.47 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 331.47 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 331.47 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "93f23b98-fbc7-4c01-a8b6-df6f341c02c8") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0110") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Regulator_Linear:AMS1117-3.3") - (at 280.67 344.17 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "bc020900-7942-4e4c-91ee-971f3fe6de22") - (property "Reference" "U68" - (at 280.67 337.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "AMS1117-3.3" - (at 280.67 340.36 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-223-3_TabPin2" - (at 280.67 339.09 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "http://www.advanced-monolithic.com/pdf/ds1117.pdf" - (at 283.21 350.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 280.67 344.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C6186" - (at 280.67 344.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "97108e55-ab41-4f0f-916f-0ef6f0aa5ab6") - ) - (pin "2" - (uuid "52e787ef-ccf6-4b9b-b307-17fda8ed73f8") - ) - (pin "3" - (uuid "4bf75716-5727-48dd-b8d4-7dfb4022607a") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U68") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 27.94 236.22 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "bc8f252a-1eaa-49de-9d82-75e5c97dca50") - (property "Reference" "C17" - (at 31.75 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "100n" - (at 31.75 237.49 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" - (at 28.9052 240.03 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 27.94 236.22 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 27.94 236.22 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C1525" - (at 27.94 236.22 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "38d77e3b-97df-4f31-9f7a-3907d39ffa4e") - ) - (pin "2" - (uuid "b398e3ec-423d-4738-ba14-1eb9165f268f") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C17") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 364.49 116.84 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "beb68778-a60f-4ef2-b036-57ad0c6e94cc") - (property "Reference" "#PWR085" - (at 364.49 123.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 364.49 121.92 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 364.49 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 364.49 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 364.49 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "59c7486b-22eb-4877-8dcf-eff991932152") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR085") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 199.39 21.59 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "c0d2efc1-5c5e-4ac4-9513-473f8237d847") - (property "Reference" "#PWR06" - (at 199.39 25.4 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 199.39 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 199.39 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 199.39 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 199.39 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "eac6af96-28dd-49a0-a1dd-b0d8383ca553") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR06") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 232.41 96.52 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "c25374f5-6995-473c-b5b4-6917a7c94b3c") - (property "Reference" "#PWR067" - (at 232.41 100.33 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 232.41 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 232.41 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 232.41 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 232.41 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "ad14a125-f855-45c1-bfb8-e6a6458612f3") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR067") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3V") - (at 553.72 224.79 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "c2fd7892-0a27-41b4-9600-5743cc035fb5") - (property "Reference" "#PWR0149" - (at 553.72 228.6 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3V" - (at 553.72 219.71 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 553.72 224.79 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 553.72 224.79 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 553.72 224.79 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "ea3e6a87-8a0e-4c47-a195-5894a2e3f245") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0149") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 463.55 96.52 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "c3293750-5273-4a04-ae3c-48f40d38b349") - (property "Reference" "#PWR074" - (at 463.55 100.33 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 463.55 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 463.55 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 463.55 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 463.55 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "31615aa4-8472-4dba-bcd0-4f5c7562668e") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR074") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "74xx:CD74HC4067SM") - (at 116.84 261.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "c3f7913d-c849-4689-ba45-d0980b10e063") - (property "Reference" "AMUX1" - (at 119.0341 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "CD74HC4067SM" - (at 119.0341 237.49 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Package_SO:SSOP-24_5.3x8.2mm_P0.65mm" - (at 143.51 287.02 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (hide yes) - ) - ) - (property "Datasheet" "http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf" - (at 107.95 240.03 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 116.84 261.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C179326" - (at 116.84 261.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "bac37b44-cd2d-40e6-b9c1-22815eaa7067") - ) - (pin "10" - (uuid "db931347-5a35-47bb-b431-5d49b1cccfc3") - ) - (pin "11" - (uuid "1725e1c9-7be8-493e-9915-321c0b8d9af6") - ) - (pin "12" - (uuid "51d19a00-5a0a-4619-aae8-6700dcf1fe84") - ) - (pin "13" - (uuid "feb0ceb8-2bcd-409d-8d5a-ddc13ccf1c6e") - ) - (pin "14" - (uuid "5c5bab5b-5a53-4476-91ad-2fef3cb31591") - ) - (pin "15" - (uuid "7f99d836-d709-4a6a-823f-69ec00e663c0") - ) - (pin "16" - (uuid "a9132176-e5e2-4b9b-9f2e-97ecb5024bd8") - ) - (pin "17" - (uuid "bb628868-e72a-4dbd-9bc9-4ad0c3580b50") - ) - (pin "18" - (uuid "416874ab-3d7d-4c12-832a-3cb883c5a268") - ) - (pin "19" - (uuid "d355679d-0df0-4f8c-bc3e-79c4d9673eab") - ) - (pin "2" - (uuid "6e956d8d-5259-43a0-a1e2-22a09cc3ec74") - ) - (pin "20" - (uuid "0c6f3d0b-7ee1-45c9-b325-b2f226038883") - ) - (pin "21" - (uuid "32c0a3aa-ee00-4aea-8648-6cd0ddb6f838") - ) - (pin "22" - (uuid "3b03e4ba-553e-41ce-9ce2-f7c9a764ffa8") - ) - (pin "23" - (uuid "5ee4ed8c-7253-4b62-ba09-14413ecc4950") - ) - (pin "24" - (uuid "b6585721-846e-4568-a7ac-4f71eb424de1") - ) - (pin "3" - (uuid "225fe9e8-ab56-4468-949d-5395fb8b2d84") - ) - (pin "4" - (uuid "b2f21a65-355a-411d-868d-5b3fbb39ead8") - ) - (pin "5" - (uuid "faedd3e0-a2a2-47c1-b12c-7a90514ecc07") - ) - (pin "6" - (uuid "44bd78d7-a020-481d-9b27-2c48d2be434b") - ) - (pin "7" - (uuid "2e6dccbb-6dc5-4122-8414-8b4b0c196bc1") - ) - (pin "8" - (uuid "732c47e5-e82d-47a0-87ae-b3f84d5d90cf") - ) - (pin "9" - (uuid "9ae85fc0-0f48-4745-af43-6555d4d0aa73") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "AMUX1") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 27.94 240.03 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "c695d15d-ca07-4faa-b8f7-c8b349434d4f") - (property "Reference" "#PWR0156" - (at 27.94 246.38 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 27.94 245.11 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 27.94 240.03 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 27.94 240.03 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 27.94 240.03 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "f5b2f2b4-dc8e-4cf6-b737-91021d884e01") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0156") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 67.31 116.84 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "c7153dad-1b54-420b-98d3-e9886b984f29") - (property "Reference" "#PWR076" - (at 67.31 123.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 67.31 121.92 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 67.31 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 67.31 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 67.31 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "8c5b865e-cb6f-4428-9793-be7d34db0c58") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR076") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 267.97 144.78 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "c8a770ef-04dd-41b6-8bb2-97db4e72dbe5") - (property "Reference" "U51" - (at 261.62 143.5099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 261.62 146.0499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 267.97 153.67 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 267.97 128.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 267.97 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 267.97 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "6c587542-9bc8-44eb-b066-58171c88c478") - ) - (pin "2" - (uuid "e526d084-baa9-4c37-8f5b-93a04d2a4842") - ) - (pin "3" - (uuid "525e18aa-8040-4ab6-a269-e319c158fe38") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U51") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 496.57 21.59 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "c8e2d611-0c05-4bf7-a15e-e7f9da6b1f41") - (property "Reference" "#PWR015" - (at 496.57 25.4 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 496.57 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 496.57 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 496.57 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 496.57 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "7b597443-bb3d-4b9b-81ca-c2715ea4ce2b") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR015") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 168.91 31.75 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "c8f39f72-5d11-4fcb-baab-5bd245e18882") - (property "Reference" "U5" - (at 162.56 30.4799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 162.56 33.0199 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 168.91 40.64 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 168.91 15.24 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 168.91 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 168.91 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "c7fc60a5-ff9e-41f9-a053-e9834e3472b9") - ) - (pin "2" - (uuid "6bd09eb9-81c8-4ce1-acba-b37e8a6a6787") - ) - (pin "3" - (uuid "254a5ff2-c8a5-4adb-8130-12a772e5aa10") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U5") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 499.11 31.75 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "c91bdf50-a342-45b6-b4ef-f6bbcb4e561d") - (property "Reference" "U15" - (at 492.76 30.4799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 492.76 33.0199 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 499.11 40.64 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 499.11 15.24 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 499.11 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 499.11 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "4a41f6c7-805d-4ba0-a9fa-e7d8d4dd0882") - ) - (pin "2" - (uuid "7154a723-0f2f-4842-84e0-b5468edf30a0") - ) - (pin "3" - (uuid "393ab8de-06fe-474b-8089-f1faa150b531") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U15") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 300.99 144.78 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "c984d580-310c-4923-908f-835fb9918d3a") - (property "Reference" "U52" - (at 294.64 143.5099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 294.64 146.0499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 300.99 153.67 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 300.99 128.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 300.99 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 300.99 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "e470c746-6aee-4b01-8d36-892a65b6a9e0") - ) - (pin "2" - (uuid "f05d2cfc-def3-40c9-b625-5422769374ad") - ) - (pin "3" - (uuid "cae78286-4dbd-4469-9e82-edd6cfaf1893") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U52") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 300.99 31.75 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "c9d05ebb-7706-4b49-bf3c-2e5a32779af2") - (property "Reference" "U9" - (at 294.64 30.4799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 294.64 33.0199 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 300.99 40.64 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 300.99 15.24 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 300.99 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 300.99 31.75 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "2236d1bc-5e4e-45b3-8fe8-bf3a7bd25df4") - ) - (pin "2" - (uuid "fc5ad77b-b5da-4c63-9b90-d8441ea3b3df") - ) - (pin "3" - (uuid "fcaa4f92-8141-4e85-bb03-00a4efd53f70") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U9") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 367.03 106.68 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "cca632a6-2ab4-4721-a4fd-c61604fb9897") - (property "Reference" "U41" - (at 360.68 105.4099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 360.68 107.9499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 367.03 115.57 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 367.03 90.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 367.03 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 367.03 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "8692fd4b-0e96-4907-9ba7-f07acb75875e") - ) - (pin "2" - (uuid "4b5e2e5c-2465-4d51-983b-452af6241a8d") - ) - (pin "3" - (uuid "b60697fc-6e85-4458-bf29-fbe5e51310a6") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U41") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 199.39 78.74 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "ccf9978a-5ada-4709-a48f-c9bc6f03d7a5") - (property "Reference" "#PWR051" - (at 199.39 85.09 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 199.39 83.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 199.39 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 199.39 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 199.39 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "d066f03a-8ee9-4d26-96ad-70aa04232e11") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR051") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 397.51 41.91 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "cd77a403-ffc0-4cb3-b285-a5a1a2ca367d") - (property "Reference" "#PWR027" - (at 397.51 48.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 397.51 46.99 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 397.51 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 397.51 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 397.51 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "81c3fdb7-913f-4505-a687-1dd6ffea1d0e") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR027") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 201.93 68.58 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "cda39b0a-8572-4a1c-8050-f6a689e9259e") - (property "Reference" "U21" - (at 195.58 67.3099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 195.58 69.8499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 201.93 77.47 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 201.93 52.07 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 201.93 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 201.93 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "b5645fa6-13b9-414a-8587-c41616e0624e") - ) - (pin "2" - (uuid "dbdcbaee-e0f0-40aa-8d13-25a73696dd60") - ) - (pin "3" - (uuid "a1ee5244-04e5-46af-9e6e-a97640514592") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U21") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 113.03 181.61 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "ce32dbdd-93b9-404d-9bd9-c36e28ac4167") - (property "Reference" "U59" - (at 106.68 180.3399 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 106.68 182.8799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 113.03 190.5 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 113.03 165.1 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 113.03 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 113.03 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "3037a7c3-c205-40d4-bd4d-8f7c5fda0a89") - ) - (pin "2" - (uuid "44cccfd2-54a1-404f-9131-6355d9025d11") - ) - (pin "3" - (uuid "4ab31f22-8169-4b0c-9e30-7968b6177c6a") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U59") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:FerriteBead") - (at 541.02 226.06 90) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "d2e40f87-dbb7-4dc9-80fd-3e10557e1169") - (property "Reference" "FB1" - (at 540.9692 218.44 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "120R" - (at 540.9692 220.98 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "Inductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolder" - (at 541.02 227.838 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 541.02 226.06 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 541.02 226.06 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C76892" - (at 541.02 226.06 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "509b32e2-802d-4641-9769-1c9097afa603") - ) - (pin "2" - (uuid "e62e9bdf-effd-421c-b87c-808132898ffd") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "FB1") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 265.43 191.77 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "d31b9fc3-09b0-4e18-9890-41daa8e6f93f") - (property "Reference" "#PWR0131" - (at 265.43 198.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 265.43 196.85 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 265.43 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 265.43 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 265.43 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "58bb6f9a-6e74-4008-b6cb-ecb9adc89dfa") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0131") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 331.47 58.42 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "d63c5dc8-cc72-4219-9b41-95f23d4a1e3c") - (property "Reference" "#PWR040" - (at 331.47 62.23 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 331.47 53.34 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 331.47 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 331.47 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 331.47 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "0fae315f-53a8-4f9b-bd8e-826dedb963b5") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR040") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 232.41 134.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "d755ec01-df24-4a69-9ca0-21d6cade41f6") - (property "Reference" "#PWR094" - (at 232.41 138.43 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 232.41 129.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 232.41 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 232.41 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 232.41 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "b27481d2-75d2-4d6a-9ef4-9305210e9981") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR094") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 298.45 96.52 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "d85793e1-6253-46f6-853b-6462c35305ba") - (property "Reference" "#PWR069" - (at 298.45 100.33 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 298.45 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 298.45 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 298.45 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 298.45 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "9535e3a8-9db9-409f-89d2-358f2e5e05cd") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR069") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Connector_Generic:Conn_01x04") - (at 530.86 281.94 0) - (mirror x) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "d89858ef-dfc5-446b-9260-f70ea3f86f74") - (property "Reference" "J3" - (at 533.4 281.94 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "DEBUG" - (at 533.4 279.4 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Horizontal" - (at 530.86 281.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 530.86 281.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 530.86 281.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "7a7a72e9-a4fa-4f64-8833-5c988e5f4f48") - ) - (pin "2" - (uuid "22d341d4-166b-4ded-b838-5b25707b2df1") - ) - (pin "3" - (uuid "9a41bbb2-4637-4ac6-bee8-966b9deb5c76") - ) - (pin "4" - (uuid "a5d33861-45e9-48da-b05a-a7c095058a7d") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "J3") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 496.57 171.45 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "d8dc1689-3338-4dd2-a7a4-f18b08634546") - (property "Reference" "#PWR0125" - (at 496.57 175.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 496.57 166.37 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 496.57 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 496.57 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 496.57 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "d0ab70c8-242f-459b-b7ae-4ace0d183902") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0125") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 499.11 181.61 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "d9199324-8422-4ba7-bbcb-05df0672dea8") - (property "Reference" "U67" - (at 492.76 180.34 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 492.76 182.88 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 499.11 190.5 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 499.11 165.1 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 499.11 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 499.11 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "9d92a90c-7b4a-4cb3-bdc5-af00a3306d57") - ) - (pin "2" - (uuid "6aba7229-1ce9-43e9-a3c4-d1263a94cc90") - ) - (pin "3" - (uuid "f07908da-1058-4af8-9479-c3ecd919142d") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U67") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 133.35 134.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "d96f6b6a-8739-43a7-951e-d2d93241b808") - (property "Reference" "#PWR091" - (at 133.35 138.43 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 133.35 129.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 133.35 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 133.35 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 133.35 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "35444fbc-cb58-4681-b4de-3bd7c0bbaa98") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR091") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 364.49 134.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "db83006c-d3ef-4ece-80a2-f5089a0134dc") - (property "Reference" "#PWR098" - (at 364.49 138.43 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 364.49 129.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 364.49 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 364.49 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 364.49 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "673ff535-4236-46fb-bc8c-40084532d5d8") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR098") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 367.03 68.58 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "dbcddb15-c8aa-4591-b1b1-f6b13b807a7a") - (property "Reference" "U26" - (at 360.68 67.3099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 360.68 69.8499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 367.03 77.47 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 367.03 52.07 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 367.03 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 367.03 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "91b2131e-53d9-46b8-89cc-9648497f5844") - ) - (pin "2" - (uuid "d1c9a6b5-6a6f-4c7e-86fb-93f0bf4de12a") - ) - (pin "3" - (uuid "4b1a5bae-adc9-4695-ad18-16a379f5f2a2") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U26") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 167.64 234.95 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "dd4cc349-9a8c-44cc-9b77-666c83fe21d1") - (property "Reference" "C14" - (at 171.45 233.68 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "100n" - (at 171.45 236.22 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" - (at 168.6052 238.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 167.64 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 167.64 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C1525" - (at 167.64 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "1007cecd-f211-4904-87bd-035e2f14c046") - ) - (pin "2" - (uuid "0b5b2f3a-578b-4d7c-b916-92024cda3beb") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C14") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 419.1 237.49 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "dfb2599e-64b2-4756-863f-73967402e606") - (property "Reference" "#PWR0148" - (at 419.1 243.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 419.1 242.57 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 419.1 237.49 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 419.1 237.49 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 419.1 237.49 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "0d4629e9-fcb6-40ea-ac57-d44b4fc05749") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0148") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 430.53 21.59 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "e0139164-01e4-4eb8-a864-b7c262cb2c14") - (property "Reference" "#PWR013" - (at 430.53 25.4 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 430.53 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 430.53 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 430.53 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 430.53 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "0c44760d-d1aa-4f28-bfa3-73b3c3da89e2") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR013") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3V") - (at 443.23 271.78 0) - (mirror y) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "e0c068b8-0fdd-4c5e-8b82-dbceb7e4345c") - (property "Reference" "#PWR0160" - (at 443.23 275.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3V" - (at 443.23 266.7 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 443.23 271.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 443.23 271.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 443.23 271.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "cac17525-b9a9-4c14-89ab-0dfcd0521bf1") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0160") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 201.93 181.61 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "e28c27d5-a37f-4959-98f6-0753c6a99817") - (property "Reference" "U61" - (at 195.58 180.3399 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 195.58 182.8799 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 201.93 190.5 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 201.93 165.1 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 201.93 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 201.93 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "39bfc0e2-944d-45c5-b5c0-7afa465750f9") - ) - (pin "2" - (uuid "9266ddc4-77cb-4d1f-b907-f6d9aa4529e7") - ) - (pin "3" - (uuid "5915e9cd-46de-4f45-938e-53f138f30c63") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U61") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "jlcpcb:GT-USB-7010ASV") - (at 370.84 345.44 0) - (mirror y) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "e2b88490-2534-49ca-a050-8c4a8cbccbd7") - (property "Reference" "U70" - (at 372.11 335.28 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "GT-USB-7010ASV" - (at 372.11 337.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "JLCPCB:USB-C-SMD_G-SWITCH_GT-USB-7010ASV" - (at 370.84 355.6 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (hide yes) - ) - ) - (property "Datasheet" "https://atta.szlcsc.com/upload/public/pdf/source/20220407/8043DBBC37E1BDE9D4FD36EE7A4A9BB9.pdf" - (at 373.126 345.313 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - (hide yes) - ) - ) - (property "Description" "" - (at 370.84 345.44 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C2988369" - (at 370.84 345.44 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "4f2f8d97-e1cb-4825-ad49-4aad0055adb1") - ) - (pin "2" - (uuid "aaad4ddc-89d0-4548-8162-7ba358650fd3") - ) - (pin "3" - (uuid "e5aad486-2c7d-428b-957f-393b1ac09b0a") - ) - (pin "4" - (uuid "4ecf23cf-ca43-4d0c-8bd9-ccddf850abac") - ) - (pin "A1B12" - (uuid "8922f3ad-ba1f-466f-9781-46c0491248ef") - ) - (pin "A4B9" - (uuid "1bbdba36-7335-4f93-96e8-f8df001d040b") - ) - (pin "A5" - (uuid "66ee9baf-a93b-4b6a-86f1-261d4eb73485") - ) - (pin "A6" - (uuid "0264b826-2441-4bb5-ad41-5a9cc1b3b701") - ) - (pin "A7" - (uuid "b4ffe00a-74a0-423b-b973-ca1844cf081d") - ) - (pin "A8" - (uuid "90549abd-a1f7-4c2e-b3de-554b5e6d3ed8") - ) - (pin "B1A12" - (uuid "7b0054e7-6141-46b8-b629-2863430cbf53") - ) - (pin "B4A9" - (uuid "0a4f0097-0ed7-42c6-a76d-ab46d7e07091") - ) - (pin "B5" - (uuid "a6a76cae-3dfd-4b2a-b3d8-a78919564b6b") - ) - (pin "B6" - (uuid "86a4a80c-bfcc-49bd-bd89-a77daba67a95") - ) - (pin "B7" - (uuid "601b5352-ec1a-422a-a405-a68290c5bd33") - ) - (pin "B8" - (uuid "3d9fc851-e665-44c5-a45b-ac9f66fd8e55") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U70") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 463.55 171.45 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "e3b7b8c5-bb94-493b-90c5-fc9637854453") - (property "Reference" "#PWR0124" - (at 463.55 175.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 463.55 166.37 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 463.55 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 463.55 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 463.55 171.45 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "c917dfb9-c3db-4e31-915c-fb9cd183f9a5") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0124") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 241.3 231.14 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "e3fda0ce-de09-43e8-abcd-f36010a78876") - (property "Reference" "#PWR0157" - (at 241.3 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 241.3 226.06 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 241.3 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 241.3 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 241.3 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "002f4ad3-0da6-4f45-86e8-b9feeb6e7380") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0157") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 300.99 106.68 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "e484c659-8a1f-4e03-87f2-987a633434b9") - (property "Reference" "U39" - (at 294.64 105.4099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 294.64 107.9499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 300.99 115.57 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 300.99 90.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 300.99 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 300.99 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "3a3ba662-63df-4252-865b-486bf7f5ec59") - ) - (pin "2" - (uuid "ec8622f9-26f2-448a-8ef8-795e3474e504") - ) - (pin "3" - (uuid "f7cacd9d-ff87-47a2-bb44-0f0658575a6f") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U39") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+5V") - (at 257.81 342.9 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "e502d7cb-0f19-4471-9a6d-37cefc55ca11") - (property "Reference" "#PWR0161" - (at 257.81 346.71 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+5V" - (at 257.81 337.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 257.81 342.9 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 257.81 342.9 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 257.81 342.9 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "85f7562b-58fb-4117-b259-19f8a6e0f901") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0161") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 397.51 96.52 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "e5364dee-a493-4e40-8584-0f7cd8921b8c") - (property "Reference" "#PWR072" - (at 397.51 100.33 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 397.51 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 397.51 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 397.51 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 397.51 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "dbb40769-6761-4e38-b5b7-826a85cfc9b0") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR072") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 102.87 106.68 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "e57bbcce-7b29-4c1b-a809-3c32b3fb8c58") - (property "Reference" "U33" - (at 96.52 105.4099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 96.52 107.9499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 102.87 115.57 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 102.87 90.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 102.87 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 102.87 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "bee50df2-692e-48b0-ad04-dbe57ab41555") - ) - (pin "2" - (uuid "af30aab8-fafb-4ea5-9f05-d2ab13e32ade") - ) - (pin "3" - (uuid "0875303b-b18a-4f9a-9773-c5924e19abd4") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U33") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:R") - (at 453.39 280.67 0) - (mirror y) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "e6634371-87f3-42f6-b2b4-0fe98e7e8826") - (property "Reference" "R1" - (at 450.85 279.4 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "1.2K" - (at 450.85 281.94 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder" - (at 455.168 280.67 90) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 453.39 280.67 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 453.39 280.67 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C25862" - (at 453.39 280.67 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "e42c8823-edc3-4b1c-a69f-152476979074") - ) - (pin "2" - (uuid "86070070-8049-43fa-929b-c51491e58f67") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "R1") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 463.55 78.74 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "e9879c17-d7a2-4412-82ca-d3eb13521104") - (property "Reference" "#PWR059" - (at 463.55 85.09 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 463.55 83.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 463.55 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 463.55 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 463.55 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "5d16fbc2-eb5f-4c17-85ee-98b65795db4f") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR059") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 334.01 181.61 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "e99b4d7f-94a3-43ce-81d8-f3ce982fbaef") - (property "Reference" "U63" - (at 327.66 180.34 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 327.66 182.88 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 334.01 190.5 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 334.01 165.1 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 334.01 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 334.01 181.61 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "16ce34d2-37b1-4e11-bfbe-a8e505ccf1c8") - ) - (pin "2" - (uuid "0d4a5881-0efa-4f7c-8491-04d145dc90c3") - ) - (pin "3" - (uuid "4007946a-5b84-4469-b7b4-a1ce625eab78") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U63") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 133.35 96.52 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "ea66c988-c1e0-4b0d-89b7-95d0445a307d") - (property "Reference" "#PWR064" - (at 133.35 100.33 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 133.35 91.44 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 133.35 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 133.35 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 133.35 96.52 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "a8bdc664-16a3-422d-88c4-b3b39a58b9a8") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR064") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 334.01 144.78 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "ed2ee3ce-ecfd-4ebc-bd9d-a5a25c8e52a8") - (property "Reference" "U53" - (at 327.66 143.5099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 327.66 146.0499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 334.01 153.67 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 334.01 128.27 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 334.01 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 334.01 144.78 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "df93791f-9a19-4fb7-a6cc-eacb133437b9") - ) - (pin "2" - (uuid "0e039ea9-5f09-4f5d-8e99-e60c68baa463") - ) - (pin "3" - (uuid "2a9f0e06-6f51-4386-8635-759f15221efa") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U53") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:Crystal_GND24") - (at 149.86 353.06 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (uuid "ed77ccf1-59c6-41f7-a4a7-23233b6784f8") - (property "Reference" "Y1" - (at 152.4 345.44 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "25MHz/20ppm/15pF" - (at 161.29 347.98 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm_HandSoldering" - (at 149.86 353.06 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 149.86 353.06 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 149.86 353.06 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C387396" - (at 149.86 353.06 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "66a1363f-2333-4028-83f9-521475df947b") - ) - (pin "2" - (uuid "2385d3b8-98fb-41a5-80ee-0d43714f043b") - ) - (pin "3" - (uuid "67caafa0-ba81-4ca9-8dc2-3806bf5e58e7") - ) - (pin "4" - (uuid "a910d19e-eb1a-4cc5-973b-5df9039b74fd") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "Y1") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 33.02 154.94 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "eeadad92-9ffb-4009-b2b1-872d96538ff7") - (property "Reference" "#PWR0154" - (at 33.02 161.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 33.02 160.02 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 33.02 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 33.02 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 33.02 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "486bc75c-c3fb-4869-b663-2cd192b9d47d") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0154") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 133.35 116.84 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "ef3edfa8-2349-4bff-b8d7-9b27a64c60aa") - (property "Reference" "#PWR078" - (at 133.35 123.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 133.35 121.92 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 133.35 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 133.35 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 133.35 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "87f90017-ed84-4ffc-9665-63a24ac9ef07") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR078") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 265.43 116.84 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "ef6d38e2-e9d3-4e61-b6cb-3c13452e87e7") - (property "Reference" "#PWR082" - (at 265.43 123.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 265.43 121.92 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 265.43 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 265.43 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 265.43 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "4f4d35ba-95f1-4dc0-9c6d-64c2a3df6f46") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR082") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "74xx:CD74HC4067SM") - (at 50.8 261.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "f0e5f9b2-249d-409a-b7fc-f2537b573282") - (property "Reference" "AMUX0" - (at 52.9941 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "CD74HC4067SM" - (at 52.9941 237.49 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Package_SO:SSOP-24_5.3x8.2mm_P0.65mm" - (at 77.47 287.02 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (hide yes) - ) - ) - (property "Datasheet" "http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf" - (at 41.91 240.03 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 50.8 261.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C179326" - (at 50.8 261.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "4a881d60-6c73-4b42-a1dd-06d606fe815e") - ) - (pin "10" - (uuid "7f52ef0c-0b8e-4ca1-8904-017d35eada09") - ) - (pin "11" - (uuid "b31ddd4e-584c-405f-99c4-abac5ad798a4") - ) - (pin "12" - (uuid "971095e1-f454-4af9-823d-4d475144d7ad") - ) - (pin "13" - (uuid "3a659208-d811-40a1-bd00-dbc65a212a61") - ) - (pin "14" - (uuid "cc557e8c-d1ee-4412-acc8-6dc7759199c6") - ) - (pin "15" - (uuid "4b0b4fe3-8b94-4eb4-ac3a-0279e69ac99f") - ) - (pin "16" - (uuid "e274c3d1-3bb0-4698-a939-37e0872e2344") - ) - (pin "17" - (uuid "32a52643-8604-4e2b-b0cf-22712adcc47d") - ) - (pin "18" - (uuid "6ee41417-b17b-45f8-a05d-48a7919591e5") - ) - (pin "19" - (uuid "f0a7eeee-1f17-4bbc-a098-cb2053b29732") - ) - (pin "2" - (uuid "afb33043-2f23-4d11-a720-e619b0925b9b") - ) - (pin "20" - (uuid "8317cd75-e126-4860-8c0e-5f61b0cdec10") - ) - (pin "21" - (uuid "55ce942f-cbfa-4044-a030-568dc9d98d58") - ) - (pin "22" - (uuid "63d88787-4d9d-4e93-91f0-7b130d1d20b5") - ) - (pin "23" - (uuid "278b0d02-6c6a-4006-877c-5cb44532da22") - ) - (pin "24" - (uuid "2bb95d6d-336b-47bc-8f63-f29b52afc7a2") - ) - (pin "3" - (uuid "734b65cb-6342-4771-b40e-9ec003ec77f8") - ) - (pin "4" - (uuid "af8e5628-bab8-4992-8ead-916010959274") - ) - (pin "5" - (uuid "21ede08e-29e0-49a2-a296-4b9b9c465335") - ) - (pin "6" - (uuid "9c388755-e791-477f-87eb-a6dc0505ea8c") - ) - (pin "7" - (uuid "0fb70a39-735c-40d0-9e4b-913a201ba7a0") - ) - (pin "8" - (uuid "dd137b6a-7d37-43e0-ae7d-d898ca9673bb") - ) - (pin "9" - (uuid "9db3fa13-e20a-494a-a7e7-29bb0b6dc387") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "AMUX0") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 331.47 134.62 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "f1dd118b-3f7f-4cc4-a023-be2595d33005") - (property "Reference" "#PWR097" - (at 331.47 138.43 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 331.47 129.54 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 331.47 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 331.47 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 331.47 134.62 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "3f86f293-49ef-44b8-bfb9-ad340df19a48") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR097") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 143.51 191.77 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "f38b747c-f268-4c9e-8d2d-65197424c846") - (property "Reference" "#PWR0128" - (at 143.51 198.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 143.51 196.85 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 143.51 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 143.51 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 143.51 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "a4382949-f0d0-4753-8119-6f3d0c253e77") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0128") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 133.35 21.59 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "f424bd32-af7a-4bc5-a29f-409a24c2bb11") - (property "Reference" "#PWR04" - (at 133.35 25.4 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 133.35 16.51 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 133.35 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 133.35 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 133.35 21.59 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "f0aa641d-047e-44df-91ad-f52ce43de62b") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR04") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Device:C") - (at 419.1 231.14 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "f4df22e1-0389-4a64-8fee-6e9273e5d1e3") - (property "Reference" "C1" - (at 422.91 229.87 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Value" "10u" - (at 422.91 232.41 0) - (effects - (font - (size 1.27 1.27) - ) - (justify left) - ) - ) - (property "Footprint" "Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder" - (at 420.0652 234.95 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 419.1 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 419.1 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C19702" - (at 419.1 231.14 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "2303e7cd-70da-4437-8401-21ca7b036ece") - ) - (pin "2" - (uuid "7acd116d-7ba5-45c0-9d36-a8afb920b372") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "C1") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 463.55 116.84 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "f526795f-840a-407e-8035-7e99f8afe429") - (property "Reference" "#PWR088" - (at 463.55 123.19 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 463.55 121.92 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 463.55 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 463.55 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 463.55 116.84 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "02cc32fd-f66f-445b-a9bb-6e2de0191aa3") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR088") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 100.33 154.94 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "f6bc548c-f5b9-4a31-90fa-b26aba99c234") - (property "Reference" "#PWR0103" - (at 100.33 161.29 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 100.33 160.02 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 100.33 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 100.33 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 100.33 154.94 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "4f2af640-e66b-4985-88ca-93e95d8ca2ac") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0103") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 463.55 191.77 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "f81fc27e-4499-4f97-9d0d-8c46456bc0e9") - (property "Reference" "#PWR0135" - (at 463.55 198.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 463.55 196.85 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 463.55 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 463.55 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 463.55 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "60868011-94d3-4bff-bac8-fbb278378cca") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0135") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 168.91 106.68 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "f838ae7e-affe-4531-98b2-530eaa2a2d91") - (property "Reference" "U35" - (at 162.56 105.4099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 162.56 107.9499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 168.91 115.57 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 168.91 90.17 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 168.91 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 168.91 106.68 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "ed9c0920-0bb8-41b8-a8c7-c98af3abc969") - ) - (pin "2" - (uuid "4747fd1d-bf40-4bc0-804f-c7e08f8cef0c") - ) - (pin "3" - (uuid "a96cec9b-b58f-48cf-b9ef-9cfceb222a92") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U35") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 50.8 289.56 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "f8667f1e-53b0-4f0b-8da1-cef616f7c13d") - (property "Reference" "#PWR0139" - (at 50.8 295.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 50.8 294.64 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 50.8 289.56 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 50.8 289.56 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 50.8 289.56 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "bc69cafc-4832-46ae-9b1c-78ca5cd3609f") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0139") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 33.02 41.91 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "f908de51-2abd-4fbd-95e0-0a436a4cb305") - (property "Reference" "#PWR016" - (at 33.02 48.26 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 33.02 46.99 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 33.02 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 33.02 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 33.02 41.91 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "6d3f596f-4ecd-4701-9e60-912df37ae237") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR016") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3VA") - (at 232.41 58.42 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "f95d172b-cd8d-4288-a034-c6888898c758") - (property "Reference" "#PWR037" - (at 232.41 62.23 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3VA" - (at 232.41 53.34 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 232.41 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 232.41 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 232.41 58.42 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "2ceb2110-368f-4afd-b126-0c0eea98331c") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR037") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 232.41 78.74 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "fa634744-2589-490e-bd4d-33973d460ace") - (property "Reference" "#PWR052" - (at 232.41 85.09 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 232.41 83.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 232.41 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 232.41 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 232.41 78.74 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "06be6feb-43da-488b-bda7-c5097cbce0d6") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR052") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Connector:TestPoint") - (at 73.66 341.63 90) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "fb825248-a9dd-4c88-8138-df2b86b7f8d2") - (property "Reference" "TP1" - (at 70.358 336.55 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Value" "TestPoint" - (at 70.358 339.09 90) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 73.66 336.55 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "~" - (at 73.66 336.55 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "test point" - (at 73.66 341.63 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "5f485cc0-7ace-412a-8312-a62d01aef04b") - ) - (instances - (project "" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "TP1") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "Sensor_Magnetic:A1101ELHL") - (at 69.85 68.58 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "fd7d96ef-0d7e-4358-9632-12ffc59e653f") - (property "Reference" "U17" - (at 63.5 67.3099 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Value" "A1101ELHL" - (at 63.5 69.8499 0) - (effects - (font - (size 1.27 1.27) - ) - (justify right) - ) - ) - (property "Footprint" "Package_TO_SOT_SMD:SOT-23" - (at 69.85 77.47 0) - (effects - (font - (size 1.27 1.27) - (italic yes) - ) - (justify left) - (hide yes) - ) - ) - (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" - (at 69.85 52.07 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 69.85 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "LCSC" "C266230" - (at 69.85 68.58 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "df54bdfc-c68d-43c2-954b-1374fe2a4d19") - ) - (pin "2" - (uuid "8e888759-c64b-443c-8f7d-bfa29b8152f5") - ) - (pin "3" - (uuid "e847a95a-fc38-4c7f-9728-76d8f322049a") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "U17") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 364.49 191.77 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "fe152d51-55de-46d9-93cd-4e28773cf6a1") - (property "Reference" "#PWR0133" - (at 364.49 198.12 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 364.49 196.85 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 364.49 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 364.49 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 364.49 191.77 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "a8ff4c02-6a87-4952-ab6d-a535c954c4d4") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0133") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:GND") - (at 241.3 238.76 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "fe5a23fd-4339-4317-be3d-c5ef455ccd80") - (property "Reference" "#PWR0158" - (at 241.3 245.11 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "GND" - (at 241.3 243.84 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 241.3 238.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 241.3 238.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 241.3 238.76 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "f6cc736b-46e1-4d7a-8998-af96863b1afc") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0158") - (unit 1) - ) - ) - ) - ) - (symbol - (lib_id "power:+3.3V") - (at 293.37 342.9 0) - (unit 1) - (exclude_from_sim no) - (in_bom yes) - (on_board yes) - (dnp no) - (fields_autoplaced yes) - (uuid "fe82e5dc-f0ee-4336-8488-5e1ddd8cf8f0") - (property "Reference" "#PWR0163" - (at 293.37 346.71 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Value" "+3.3V" - (at 293.37 337.82 0) - (effects - (font - (size 1.27 1.27) - ) - ) - ) - (property "Footprint" "" - (at 293.37 342.9 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Datasheet" "" - (at 293.37 342.9 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (property "Description" "" - (at 293.37 342.9 0) - (effects - (font - (size 1.27 1.27) - ) - (hide yes) - ) - ) - (pin "1" - (uuid "1535c1d3-aba0-49bb-a0ca-e172924cfab7") - ) - (instances - (project "macrolev" - (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" - (reference "#PWR0163") - (unit 1) - ) - ) - ) - ) - (sheet_instances - (path "/" - (page "1") - ) - ) +(kicad_sch (version 20230121) (generator eeschema) + + (uuid 24af5553-bb98-43bd-b85c-c6b0b021d5e0) + + (paper "A2") + + (title_block + (title "Macrolev") + (date "2023-10-22") + (rev "1.0") + (company "Heiso") + ) + + (lib_symbols + (symbol "74xx:CD74HC4067SM" (in_bom yes) (on_board yes) + (property "Reference" "U" (at -8.89 22.86 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "CD74HC4067SM" (at 1.27 22.86 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_SO:SSOP-24_5.3x8.2mm_P0.65mm" (at 26.67 -25.4 0) + (effects (font (size 1.27 1.27) italic) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf" (at -8.89 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "multiplexer demultiplexer mux demux" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "High-Speed CMOS Logic 16-Channel Analog Multiplexer/Demultiplexer, SSOP-24" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "SSOP*5.3x8.2mm*P0.65mm*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "CD74HC4067SM_0_1" + (rectangle (start -8.89 21.59) (end 8.89 -24.13) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + ) + (symbol "CD74HC4067SM_1_1" + (pin passive line (at -12.7 12.7 0) (length 3.81) + (name "COM" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 2.54 0) (length 3.81) + (name "S0" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 0 0) (length 3.81) + (name "S1" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 -27.94 90) (length 3.81) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 -5.08 0) (length 3.81) + (name "S3" (effects (font (size 1.27 1.27)))) + (number "13" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 -2.54 0) (length 3.81) + (name "S2" (effects (font (size 1.27 1.27)))) + (number "14" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 -15.24 0) (length 3.81) + (name "~{E}" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 -20.32 180) (length 3.81) + (name "I15" (effects (font (size 1.27 1.27)))) + (number "16" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 -17.78 180) (length 3.81) + (name "I14" (effects (font (size 1.27 1.27)))) + (number "17" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 -15.24 180) (length 3.81) + (name "I13" (effects (font (size 1.27 1.27)))) + (number "18" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 -12.7 180) (length 3.81) + (name "I12" (effects (font (size 1.27 1.27)))) + (number "19" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 0 180) (length 3.81) + (name "I7" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 -10.16 180) (length 3.81) + (name "I11" (effects (font (size 1.27 1.27)))) + (number "20" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 -7.62 180) (length 3.81) + (name "I10" (effects (font (size 1.27 1.27)))) + (number "21" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 -5.08 180) (length 3.81) + (name "I9" (effects (font (size 1.27 1.27)))) + (number "22" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 -2.54 180) (length 3.81) + (name "I8" (effects (font (size 1.27 1.27)))) + (number "23" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 25.4 270) (length 3.81) + (name "VCC" (effects (font (size 1.27 1.27)))) + (number "24" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 2.54 180) (length 3.81) + (name "I6" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 5.08 180) (length 3.81) + (name "I5" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 7.62 180) (length 3.81) + (name "I4" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 10.16 180) (length 3.81) + (name "I3" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 12.7 180) (length 3.81) + (name "I2" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 15.24 180) (length 3.81) + (name "I1" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 12.7 17.78 180) (length 3.81) + (name "I0" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Connector_Generic:Conn_01x04" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) + (property "Reference" "J" (at 0 5.08 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Conn_01x04" (at 0 -7.62 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "connector" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Conn_01x04_1_1" + (rectangle (start -1.27 -4.953) (end 0 -5.207) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (rectangle (start -1.27 -2.413) (end 0 -2.667) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (rectangle (start -1.27 0.127) (end 0 -0.127) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (rectangle (start -1.27 2.667) (end 0 2.413) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (rectangle (start -1.27 3.81) (end 1.27 -6.35) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + (pin passive line (at -5.08 2.54 0) (length 3.81) + (name "Pin_1" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 0 0) (length 3.81) + (name "Pin_2" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 -2.54 0) (length 3.81) + (name "Pin_3" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 -5.08 0) (length 3.81) + (name "Pin_4" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:C" (pin_numbers hide) (pin_names (offset 0.254)) (in_bom yes) (on_board yes) + (property "Reference" "C" (at 0.635 2.54 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "C" (at 0.635 -2.54 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 0.9652 -3.81 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "cap capacitor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Unpolarized capacitor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "C_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "C_0_1" + (polyline + (pts + (xy -2.032 -0.762) + (xy 2.032 -0.762) + ) + (stroke (width 0.508) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -2.032 0.762) + (xy 2.032 0.762) + ) + (stroke (width 0.508) (type default)) + (fill (type none)) + ) + ) + (symbol "C_1_1" + (pin passive line (at 0 3.81 270) (length 2.794) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -3.81 90) (length 2.794) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:Crystal_GND24" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) + (property "Reference" "Y" (at 3.175 5.08 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "Crystal_GND24" (at 3.175 3.175 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "quartz ceramic resonator oscillator" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Four pin crystal, GND on pins 2 and 4" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "Crystal*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Crystal_GND24_0_1" + (rectangle (start -1.143 2.54) (end 1.143 -2.54) + (stroke (width 0.3048) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -2.54 0) + (xy -2.032 0) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -2.032 -1.27) + (xy -2.032 1.27) + ) + (stroke (width 0.508) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 -3.81) + (xy 0 -3.556) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 3.556) + (xy 0 3.81) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 2.032 -1.27) + (xy 2.032 1.27) + ) + (stroke (width 0.508) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 2.032 0) + (xy 2.54 0) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -2.54 -2.286) + (xy -2.54 -3.556) + (xy 2.54 -3.556) + (xy 2.54 -2.286) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -2.54 2.286) + (xy -2.54 3.556) + (xy 2.54 3.556) + (xy 2.54 2.286) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "Crystal_GND24_1_1" + (pin passive line (at -3.81 0 0) (length 1.27) + (name "1" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 5.08 270) (length 1.27) + (name "2" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 3.81 0 180) (length 1.27) + (name "3" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -5.08 90) (length 1.27) + (name "4" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:FerriteBead" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "FB" (at -3.81 0.635 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "FerriteBead" (at 3.81 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at -1.778 0 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "L ferrite bead inductor filter" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Ferrite bead" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "Inductor_* L_* *Ferrite*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "FerriteBead_0_1" + (polyline + (pts + (xy 0 -1.27) + (xy 0 -1.2192) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 1.27) + (xy 0 1.2954) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -2.7686 0.4064) + (xy -1.7018 2.2606) + (xy 2.7686 -0.3048) + (xy 1.6764 -2.159) + (xy -2.7686 0.4064) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "FerriteBead_1_1" + (pin passive line (at 0 3.81 270) (length 2.54) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -3.81 90) (length 2.54) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:LED" (pin_numbers hide) (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) + (property "Reference" "D" (at 0 2.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "LED" (at 0 -2.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "LED diode" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Light emitting diode" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "LED* LED_SMD:* LED_THT:*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "LED_0_1" + (polyline + (pts + (xy -1.27 -1.27) + (xy -1.27 1.27) + ) + (stroke (width 0.254) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.27 0) + (xy 1.27 0) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.27 -1.27) + (xy 1.27 1.27) + (xy -1.27 0) + (xy 1.27 -1.27) + ) + (stroke (width 0.254) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.048 -0.762) + (xy -4.572 -2.286) + (xy -3.81 -2.286) + (xy -4.572 -2.286) + (xy -4.572 -1.524) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.778 -0.762) + (xy -3.302 -2.286) + (xy -2.54 -2.286) + (xy -3.302 -2.286) + (xy -3.302 -1.524) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "LED_1_1" + (pin passive line (at -3.81 0 0) (length 2.54) + (name "K" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 3.81 0 180) (length 2.54) + (name "A" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "R" (at 2.032 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "R" (at 0 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at -1.778 0 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "R res resistor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Resistor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "R_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "R_0_1" + (rectangle (start -1.016 -2.54) (end 1.016 2.54) + (stroke (width 0.254) (type default)) + (fill (type none)) + ) + ) + (symbol "R_1_1" + (pin passive line (at 0 3.81 270) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -3.81 90) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Driver_Haptic:DRV2605LDGS" (in_bom yes) (on_board yes) + (property "Reference" "U" (at -10.16 8.255 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + ) + (property "Value" "DRV2605LDGS" (at 2.54 -8.89 0) + (effects (font (size 1.27 1.27)) (justify left top)) + ) + (property "Footprint" "Package_SO:VSSOP-10_3x3mm_P0.5mm" (at 0 0 0) + (effects (font (size 1.27 1.27) italic) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/ds/symlink/drv2605l.pdf" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "haptic driver i2c" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Haptic driver for LRAs and ERMs with effect library, 2-5.2V, VSSOP-10" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "VSSOP*3x3mm*P0.5mm*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "DRV2605LDGS_0_1" + (rectangle (start -10.16 7.62) (end 10.16 -7.62) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + ) + (symbol "DRV2605LDGS_1_1" + (pin passive line (at 12.7 -5.08 180) (length 2.54) + (name "REG" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 10.16 270) (length 2.54) + (name "VDD" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 2.54 0) (length 2.54) + (name "SCL" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -12.7 5.08 0) (length 2.54) + (name "SDA" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 -2.54 0) (length 2.54) + (name "IN/TRIG" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 -5.08 0) (length 2.54) + (name "EN" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -2.54 10.16 270) (length 2.54) + (name "VDD/NC" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin output line (at 12.7 5.08 180) (length 2.54) + (name "OUT+" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 -10.16 90) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin output line (at 12.7 2.54 180) (length 2.54) + (name "OUT-" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "MCU_ST_STM32F4:STM32F411CEUx" (in_bom yes) (on_board yes) + (property "Reference" "U" (at -12.7 39.37 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "STM32F411CEUx" (at 10.16 39.37 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mm" (at -12.7 -38.1 0) + (effects (font (size 1.27 1.27)) (justify right) hide) + ) + (property "Datasheet" "https://www.st.com/resource/en/datasheet/stm32f411ce.pdf" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_locked" "" (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "ki_keywords" "Arm Cortex-M4 STM32F4 STM32F411" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "STMicroelectronics Arm Cortex-M4 MCU, 512KB flash, 128KB RAM, 100 MHz, 1.7-3.6V, 36 GPIO, UFQFPN48" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "QFN*1EP*7x7mm*P0.5mm*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "STM32F411CEUx_0_1" + (rectangle (start -12.7 -38.1) (end 15.24 38.1) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + ) + (symbol "STM32F411CEUx_1_1" + (pin power_in line (at -2.54 40.64 270) (length 2.54) + (name "VBAT" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 35.56 180) (length 2.54) + (name "PA0" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + (alternate "ADC1_IN0" bidirectional line) + (alternate "SYS_WKUP" bidirectional line) + (alternate "TIM2_CH1" bidirectional line) + (alternate "TIM2_ETR" bidirectional line) + (alternate "TIM5_CH1" bidirectional line) + (alternate "USART2_CTS" bidirectional line) + ) + (pin bidirectional line (at 17.78 33.02 180) (length 2.54) + (name "PA1" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + (alternate "ADC1_IN1" bidirectional line) + (alternate "I2S4_SD" bidirectional line) + (alternate "SPI4_MOSI" bidirectional line) + (alternate "TIM2_CH2" bidirectional line) + (alternate "TIM5_CH2" bidirectional line) + (alternate "USART2_RTS" bidirectional line) + ) + (pin bidirectional line (at 17.78 30.48 180) (length 2.54) + (name "PA2" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + (alternate "ADC1_IN2" bidirectional line) + (alternate "I2S_CKIN" bidirectional line) + (alternate "TIM2_CH3" bidirectional line) + (alternate "TIM5_CH3" bidirectional line) + (alternate "TIM9_CH1" bidirectional line) + (alternate "USART2_TX" bidirectional line) + ) + (pin bidirectional line (at 17.78 27.94 180) (length 2.54) + (name "PA3" (effects (font (size 1.27 1.27)))) + (number "13" (effects (font (size 1.27 1.27)))) + (alternate "ADC1_IN3" bidirectional line) + (alternate "I2S2_MCK" bidirectional line) + (alternate "TIM2_CH4" bidirectional line) + (alternate "TIM5_CH4" bidirectional line) + (alternate "TIM9_CH2" bidirectional line) + (alternate "USART2_RX" bidirectional line) + ) + (pin bidirectional line (at 17.78 25.4 180) (length 2.54) + (name "PA4" (effects (font (size 1.27 1.27)))) + (number "14" (effects (font (size 1.27 1.27)))) + (alternate "ADC1_IN4" bidirectional line) + (alternate "I2S1_WS" bidirectional line) + (alternate "I2S3_WS" bidirectional line) + (alternate "SPI1_NSS" bidirectional line) + (alternate "SPI3_NSS" bidirectional line) + (alternate "USART2_CK" bidirectional line) + ) + (pin bidirectional line (at 17.78 22.86 180) (length 2.54) + (name "PA5" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + (alternate "ADC1_IN5" bidirectional line) + (alternate "I2S1_CK" bidirectional line) + (alternate "SPI1_SCK" bidirectional line) + (alternate "TIM2_CH1" bidirectional line) + (alternate "TIM2_ETR" bidirectional line) + ) + (pin bidirectional line (at 17.78 20.32 180) (length 2.54) + (name "PA6" (effects (font (size 1.27 1.27)))) + (number "16" (effects (font (size 1.27 1.27)))) + (alternate "ADC1_IN6" bidirectional line) + (alternate "I2S2_MCK" bidirectional line) + (alternate "SDIO_CMD" bidirectional line) + (alternate "SPI1_MISO" bidirectional line) + (alternate "TIM1_BKIN" bidirectional line) + (alternate "TIM3_CH1" bidirectional line) + ) + (pin bidirectional line (at 17.78 17.78 180) (length 2.54) + (name "PA7" (effects (font (size 1.27 1.27)))) + (number "17" (effects (font (size 1.27 1.27)))) + (alternate "ADC1_IN7" bidirectional line) + (alternate "I2S1_SD" bidirectional line) + (alternate "SPI1_MOSI" bidirectional line) + (alternate "TIM1_CH1N" bidirectional line) + (alternate "TIM3_CH2" bidirectional line) + ) + (pin bidirectional line (at -15.24 7.62 0) (length 2.54) + (name "PB0" (effects (font (size 1.27 1.27)))) + (number "18" (effects (font (size 1.27 1.27)))) + (alternate "ADC1_IN8" bidirectional line) + (alternate "I2S5_CK" bidirectional line) + (alternate "SPI5_SCK" bidirectional line) + (alternate "TIM1_CH2N" bidirectional line) + (alternate "TIM3_CH3" bidirectional line) + ) + (pin bidirectional line (at -15.24 5.08 0) (length 2.54) + (name "PB1" (effects (font (size 1.27 1.27)))) + (number "19" (effects (font (size 1.27 1.27)))) + (alternate "ADC1_IN9" bidirectional line) + (alternate "I2S5_WS" bidirectional line) + (alternate "SPI5_NSS" bidirectional line) + (alternate "TIM1_CH3N" bidirectional line) + (alternate "TIM3_CH4" bidirectional line) + ) + (pin bidirectional line (at -15.24 17.78 0) (length 2.54) + (name "PC13" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + (alternate "RTC_AF1" bidirectional line) + ) + (pin bidirectional line (at -15.24 2.54 0) (length 2.54) + (name "PB2" (effects (font (size 1.27 1.27)))) + (number "20" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -15.24 -17.78 0) (length 2.54) + (name "PB10" (effects (font (size 1.27 1.27)))) + (number "21" (effects (font (size 1.27 1.27)))) + (alternate "I2C2_SCL" bidirectional line) + (alternate "I2S2_CK" bidirectional line) + (alternate "I2S3_MCK" bidirectional line) + (alternate "SDIO_D7" bidirectional line) + (alternate "SPI2_SCK" bidirectional line) + (alternate "TIM2_CH3" bidirectional line) + ) + (pin power_out line (at -15.24 -33.02 0) (length 2.54) + (name "VCAP1" (effects (font (size 1.27 1.27)))) + (number "22" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 -40.64 90) (length 2.54) + (name "VSS" (effects (font (size 1.27 1.27)))) + (number "23" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 40.64 270) (length 2.54) + (name "VDD" (effects (font (size 1.27 1.27)))) + (number "24" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -15.24 -20.32 0) (length 2.54) + (name "PB12" (effects (font (size 1.27 1.27)))) + (number "25" (effects (font (size 1.27 1.27)))) + (alternate "I2C2_SMBA" bidirectional line) + (alternate "I2S2_WS" bidirectional line) + (alternate "I2S3_CK" bidirectional line) + (alternate "I2S4_WS" bidirectional line) + (alternate "SPI2_NSS" bidirectional line) + (alternate "SPI3_SCK" bidirectional line) + (alternate "SPI4_NSS" bidirectional line) + (alternate "TIM1_BKIN" bidirectional line) + ) + (pin bidirectional line (at -15.24 -22.86 0) (length 2.54) + (name "PB13" (effects (font (size 1.27 1.27)))) + (number "26" (effects (font (size 1.27 1.27)))) + (alternate "I2S2_CK" bidirectional line) + (alternate "I2S4_CK" bidirectional line) + (alternate "SPI2_SCK" bidirectional line) + (alternate "SPI4_SCK" bidirectional line) + (alternate "TIM1_CH1N" bidirectional line) + ) + (pin bidirectional line (at -15.24 -25.4 0) (length 2.54) + (name "PB14" (effects (font (size 1.27 1.27)))) + (number "27" (effects (font (size 1.27 1.27)))) + (alternate "I2S2_ext_SD" bidirectional line) + (alternate "SDIO_D6" bidirectional line) + (alternate "SPI2_MISO" bidirectional line) + (alternate "TIM1_CH2N" bidirectional line) + ) + (pin bidirectional line (at -15.24 -27.94 0) (length 2.54) + (name "PB15" (effects (font (size 1.27 1.27)))) + (number "28" (effects (font (size 1.27 1.27)))) + (alternate "ADC1_EXTI15" bidirectional line) + (alternate "I2S2_SD" bidirectional line) + (alternate "RTC_REFIN" bidirectional line) + (alternate "SDIO_CK" bidirectional line) + (alternate "SPI2_MOSI" bidirectional line) + (alternate "TIM1_CH3N" bidirectional line) + ) + (pin bidirectional line (at 17.78 15.24 180) (length 2.54) + (name "PA8" (effects (font (size 1.27 1.27)))) + (number "29" (effects (font (size 1.27 1.27)))) + (alternate "I2C3_SCL" bidirectional line) + (alternate "RCC_MCO_1" bidirectional line) + (alternate "SDIO_D1" bidirectional line) + (alternate "TIM1_CH1" bidirectional line) + (alternate "USART1_CK" bidirectional line) + (alternate "USB_OTG_FS_SOF" bidirectional line) + ) + (pin bidirectional line (at -15.24 15.24 0) (length 2.54) + (name "PC14" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + (alternate "RCC_OSC32_IN" bidirectional line) + ) + (pin bidirectional line (at 17.78 12.7 180) (length 2.54) + (name "PA9" (effects (font (size 1.27 1.27)))) + (number "30" (effects (font (size 1.27 1.27)))) + (alternate "I2C3_SMBA" bidirectional line) + (alternate "SDIO_D2" bidirectional line) + (alternate "TIM1_CH2" bidirectional line) + (alternate "USART1_TX" bidirectional line) + (alternate "USB_OTG_FS_VBUS" bidirectional line) + ) + (pin bidirectional line (at 17.78 10.16 180) (length 2.54) + (name "PA10" (effects (font (size 1.27 1.27)))) + (number "31" (effects (font (size 1.27 1.27)))) + (alternate "I2S5_SD" bidirectional line) + (alternate "SPI5_MOSI" bidirectional line) + (alternate "TIM1_CH3" bidirectional line) + (alternate "USART1_RX" bidirectional line) + (alternate "USB_OTG_FS_ID" bidirectional line) + ) + (pin bidirectional line (at 17.78 7.62 180) (length 2.54) + (name "PA11" (effects (font (size 1.27 1.27)))) + (number "32" (effects (font (size 1.27 1.27)))) + (alternate "ADC1_EXTI11" bidirectional line) + (alternate "SPI4_MISO" bidirectional line) + (alternate "TIM1_CH4" bidirectional line) + (alternate "USART1_CTS" bidirectional line) + (alternate "USART6_TX" bidirectional line) + (alternate "USB_OTG_FS_DM" bidirectional line) + ) + (pin bidirectional line (at 17.78 5.08 180) (length 2.54) + (name "PA12" (effects (font (size 1.27 1.27)))) + (number "33" (effects (font (size 1.27 1.27)))) + (alternate "SPI5_MISO" bidirectional line) + (alternate "TIM1_ETR" bidirectional line) + (alternate "USART1_RTS" bidirectional line) + (alternate "USART6_RX" bidirectional line) + (alternate "USB_OTG_FS_DP" bidirectional line) + ) + (pin bidirectional line (at 17.78 2.54 180) (length 2.54) + (name "PA13" (effects (font (size 1.27 1.27)))) + (number "34" (effects (font (size 1.27 1.27)))) + (alternate "SYS_JTMS-SWDIO" bidirectional line) + ) + (pin passive line (at 0 -40.64 90) (length 2.54) hide + (name "VSS" (effects (font (size 1.27 1.27)))) + (number "35" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 2.54 40.64 270) (length 2.54) + (name "VDD" (effects (font (size 1.27 1.27)))) + (number "36" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 0 180) (length 2.54) + (name "PA14" (effects (font (size 1.27 1.27)))) + (number "37" (effects (font (size 1.27 1.27)))) + (alternate "SYS_JTCK-SWCLK" bidirectional line) + ) + (pin bidirectional line (at 17.78 -2.54 180) (length 2.54) + (name "PA15" (effects (font (size 1.27 1.27)))) + (number "38" (effects (font (size 1.27 1.27)))) + (alternate "ADC1_EXTI15" bidirectional line) + (alternate "I2S1_WS" bidirectional line) + (alternate "I2S3_WS" bidirectional line) + (alternate "SPI1_NSS" bidirectional line) + (alternate "SPI3_NSS" bidirectional line) + (alternate "SYS_JTDI" bidirectional line) + (alternate "TIM2_CH1" bidirectional line) + (alternate "TIM2_ETR" bidirectional line) + (alternate "USART1_TX" bidirectional line) + ) + (pin bidirectional line (at -15.24 0 0) (length 2.54) + (name "PB3" (effects (font (size 1.27 1.27)))) + (number "39" (effects (font (size 1.27 1.27)))) + (alternate "I2C2_SDA" bidirectional line) + (alternate "I2S1_CK" bidirectional line) + (alternate "I2S3_CK" bidirectional line) + (alternate "SPI1_SCK" bidirectional line) + (alternate "SPI3_SCK" bidirectional line) + (alternate "SYS_JTDO-SWO" bidirectional line) + (alternate "TIM2_CH2" bidirectional line) + (alternate "USART1_RX" bidirectional line) + ) + (pin bidirectional line (at -15.24 12.7 0) (length 2.54) + (name "PC15" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + (alternate "ADC1_EXTI15" bidirectional line) + (alternate "RCC_OSC32_OUT" bidirectional line) + ) + (pin bidirectional line (at -15.24 -2.54 0) (length 2.54) + (name "PB4" (effects (font (size 1.27 1.27)))) + (number "40" (effects (font (size 1.27 1.27)))) + (alternate "I2C3_SDA" bidirectional line) + (alternate "I2S3_ext_SD" bidirectional line) + (alternate "SDIO_D0" bidirectional line) + (alternate "SPI1_MISO" bidirectional line) + (alternate "SPI3_MISO" bidirectional line) + (alternate "SYS_JTRST" bidirectional line) + (alternate "TIM3_CH1" bidirectional line) + ) + (pin bidirectional line (at -15.24 -5.08 0) (length 2.54) + (name "PB5" (effects (font (size 1.27 1.27)))) + (number "41" (effects (font (size 1.27 1.27)))) + (alternate "I2C1_SMBA" bidirectional line) + (alternate "I2S1_SD" bidirectional line) + (alternate "I2S3_SD" bidirectional line) + (alternate "SDIO_D3" bidirectional line) + (alternate "SPI1_MOSI" bidirectional line) + (alternate "SPI3_MOSI" bidirectional line) + (alternate "TIM3_CH2" bidirectional line) + ) + (pin bidirectional line (at -15.24 -7.62 0) (length 2.54) + (name "PB6" (effects (font (size 1.27 1.27)))) + (number "42" (effects (font (size 1.27 1.27)))) + (alternate "I2C1_SCL" bidirectional line) + (alternate "TIM4_CH1" bidirectional line) + (alternate "USART1_TX" bidirectional line) + ) + (pin bidirectional line (at -15.24 -10.16 0) (length 2.54) + (name "PB7" (effects (font (size 1.27 1.27)))) + (number "43" (effects (font (size 1.27 1.27)))) + (alternate "I2C1_SDA" bidirectional line) + (alternate "SDIO_D0" bidirectional line) + (alternate "TIM4_CH2" bidirectional line) + (alternate "USART1_RX" bidirectional line) + ) + (pin input line (at -15.24 30.48 0) (length 2.54) + (name "BOOT0" (effects (font (size 1.27 1.27)))) + (number "44" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -15.24 -12.7 0) (length 2.54) + (name "PB8" (effects (font (size 1.27 1.27)))) + (number "45" (effects (font (size 1.27 1.27)))) + (alternate "I2C1_SCL" bidirectional line) + (alternate "I2C3_SDA" bidirectional line) + (alternate "I2S5_SD" bidirectional line) + (alternate "SDIO_D4" bidirectional line) + (alternate "SPI5_MOSI" bidirectional line) + (alternate "TIM10_CH1" bidirectional line) + (alternate "TIM4_CH3" bidirectional line) + ) + (pin bidirectional line (at -15.24 -15.24 0) (length 2.54) + (name "PB9" (effects (font (size 1.27 1.27)))) + (number "46" (effects (font (size 1.27 1.27)))) + (alternate "I2C1_SDA" bidirectional line) + (alternate "I2C2_SDA" bidirectional line) + (alternate "I2S2_WS" bidirectional line) + (alternate "SDIO_D5" bidirectional line) + (alternate "SPI2_NSS" bidirectional line) + (alternate "TIM11_CH1" bidirectional line) + (alternate "TIM4_CH4" bidirectional line) + ) + (pin passive line (at 0 -40.64 90) (length 2.54) hide + (name "VSS" (effects (font (size 1.27 1.27)))) + (number "47" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 5.08 40.64 270) (length 2.54) + (name "VDD" (effects (font (size 1.27 1.27)))) + (number "48" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -40.64 90) (length 2.54) hide + (name "VSS" (effects (font (size 1.27 1.27)))) + (number "49" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -15.24 25.4 0) (length 2.54) + (name "PH0" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + (alternate "RCC_OSC_IN" bidirectional line) + ) + (pin bidirectional line (at -15.24 22.86 0) (length 2.54) + (name "PH1" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + (alternate "RCC_OSC_OUT" bidirectional line) + ) + (pin input line (at -15.24 35.56 0) (length 2.54) + (name "NRST" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 2.54 -40.64 90) (length 2.54) + (name "VSSA" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 7.62 40.64 270) (length 2.54) + (name "VDDA" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Mechanical:Fiducial" (in_bom yes) (on_board yes) + (property "Reference" "FID" (at 0 5.08 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Fiducial" (at 0 3.175 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "fiducial marker" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Fiducial Marker" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "Fiducial*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Fiducial_0_1" + (circle (center 0 0) (radius 1.27) + (stroke (width 0.508) (type default)) + (fill (type background)) + ) + ) + ) + (symbol "Motor:Motor_DC" (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "M" (at 2.54 2.54 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "Motor_DC" (at 2.54 -5.08 0) + (effects (font (size 1.27 1.27)) (justify left top)) + ) + (property "Footprint" "" (at 0 -2.286 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 -2.286 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "DC Motor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "DC Motor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "PinHeader*P2.54mm* TerminalBlock*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Motor_DC_0_0" + (polyline + (pts + (xy -1.27 -3.302) + (xy -1.27 0.508) + (xy 0 -2.032) + (xy 1.27 0.508) + (xy 1.27 -3.302) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "Motor_DC_0_1" + (circle (center 0 -1.524) (radius 3.2512) + (stroke (width 0.254) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 -7.62) + (xy 0 -7.112) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 -4.7752) + (xy 0 -5.1816) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 1.7272) + (xy 0 2.0828) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 2.032) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "Motor_DC_1_1" + (pin passive line (at 0 5.08 270) (length 2.54) + (name "+" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -7.62 90) (length 2.54) + (name "-" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Regulator_Linear:AMS1117-3.3" (in_bom yes) (on_board yes) + (property "Reference" "U" (at -3.81 3.175 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "AMS1117-3.3" (at 0 3.175 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-223-3_TabPin2" (at 0 5.08 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.advanced-monolithic.com/pdf/ds1117.pdf" (at 2.54 -6.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "linear regulator ldo fixed positive" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "1A Low Dropout regulator, positive, 3.3V fixed output, SOT-223" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "SOT?223*TabPin2*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "AMS1117-3.3_0_1" + (rectangle (start -5.08 -5.08) (end 5.08 1.905) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + ) + (symbol "AMS1117-3.3_1_1" + (pin power_in line (at 0 -7.62 90) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin power_out line (at 7.62 0 180) (length 2.54) + (name "VO" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -7.62 0 0) (length 2.54) + (name "VI" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Sensor_Magnetic:A1101ELHL" (in_bom yes) (on_board yes) + (property "Reference" "U" (at 0 11.43 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "A1101ELHL" (at 0 8.89 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23W" (at 0 -8.89 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 0 16.51 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "hall switch" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Hall effect switch, unipolar, Bop=100G, Brp=45G, -40C to +85C, SOT-23W" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "SOT?23*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "A1101ELHL_0_1" + (rectangle (start -5.08 7.62) (end 5.08 -7.62) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + ) + (symbol "A1101ELHL_1_1" + (pin power_in line (at -2.54 10.16 270) (length 2.54) + (name "VCC" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin open_collector line (at 7.62 0 180) (length 2.54) + (name "VOUT" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -2.54 -10.16 90) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "jlcpcb:GT-USB-7010ASV" (in_bom yes) (on_board yes) + (property "Reference" "U" (at 0 1.27 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "GT-USB-7010ASV" (at 0 -2.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "footprint:USB-C-SMD_G-SWITCH_GT-USB-7010ASV" (at 0 -10.16 0) + (effects (font (size 1.27 1.27) italic) hide) + ) + (property "Datasheet" "https://atta.szlcsc.com/upload/public/pdf/source/20220407/8043DBBC37E1BDE9D4FD36EE7A4A9BB9.pdf" (at -2.286 0.127 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + (property "LCSC" "C2988369" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "C2988369" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "GT-USB-7010ASV_0_0" + (rectangle (start -10.16 5.08) (end 7.62 -27.94) + (stroke (width 0) (type default)) + (fill (type background)) + ) + (circle (center -8.89 3.81) (radius 0.381) + (stroke (width 0) (type default)) + (fill (type background)) + ) + (pin unspecified line (at 10.16 -25.4 180) (length 2.54) + (name "SHELL" (effects (font (size 1 1)))) + (number "1" (effects (font (size 1 1)))) + ) + (pin unspecified line (at 10.16 -22.86 180) (length 2.54) + (name "SHELL" (effects (font (size 1 1)))) + (number "2" (effects (font (size 1 1)))) + ) + (pin unspecified line (at 10.16 0 180) (length 2.54) + (name "SHELL" (effects (font (size 1 1)))) + (number "3" (effects (font (size 1 1)))) + ) + (pin unspecified line (at 10.16 2.54 180) (length 2.54) + (name "SHELL" (effects (font (size 1 1)))) + (number "4" (effects (font (size 1 1)))) + ) + (pin unspecified line (at -12.7 2.54 0) (length 2.54) + (name "GND" (effects (font (size 1 1)))) + (number "A1B12" (effects (font (size 1 1)))) + ) + (pin unspecified line (at -12.7 0 0) (length 2.54) + (name "VBUS" (effects (font (size 1 1)))) + (number "A4B9" (effects (font (size 1 1)))) + ) + (pin unspecified line (at -12.7 -5.08 0) (length 2.54) + (name "CC1" (effects (font (size 1 1)))) + (number "A5" (effects (font (size 1 1)))) + ) + (pin unspecified line (at -12.7 -10.16 0) (length 2.54) + (name "DP1" (effects (font (size 1 1)))) + (number "A6" (effects (font (size 1 1)))) + ) + (pin unspecified line (at -12.7 -12.7 0) (length 2.54) + (name "DN1" (effects (font (size 1 1)))) + (number "A7" (effects (font (size 1 1)))) + ) + (pin unspecified line (at -12.7 -17.78 0) (length 2.54) + (name "SBU1" (effects (font (size 1 1)))) + (number "A8" (effects (font (size 1 1)))) + ) + (pin unspecified line (at -12.7 -25.4 0) (length 2.54) + (name "GND" (effects (font (size 1 1)))) + (number "B1A12" (effects (font (size 1 1)))) + ) + (pin unspecified line (at -12.7 -22.86 0) (length 2.54) + (name "VBUS" (effects (font (size 1 1)))) + (number "B4A9" (effects (font (size 1 1)))) + ) + (pin unspecified line (at -12.7 -20.32 0) (length 2.54) + (name "CC2" (effects (font (size 1 1)))) + (number "B5" (effects (font (size 1 1)))) + ) + (pin unspecified line (at -12.7 -15.24 0) (length 2.54) + (name "DP2" (effects (font (size 1 1)))) + (number "B6" (effects (font (size 1 1)))) + ) + (pin unspecified line (at -12.7 -7.62 0) (length 2.54) + (name "DN2" (effects (font (size 1 1)))) + (number "B7" (effects (font (size 1 1)))) + ) + (pin unspecified line (at -12.7 -2.54 0) (length 2.54) + (name "SBU2" (effects (font (size 1 1)))) + (number "B8" (effects (font (size 1 1)))) + ) + ) + ) + (symbol "power:+3.3V" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "#PWR" (at 0 -3.81 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 0 3.556 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "global power" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Power symbol creates a global label with name \"+3.3V\"" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "+3.3V_0_1" + (polyline + (pts + (xy -0.762 1.27) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 0) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 2.54) + (xy 0.762 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "+3.3V_1_1" + (pin power_in line (at 0 0 90) (length 0) hide + (name "+3.3V" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:+3.3VA" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "#PWR" (at 0 -3.81 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 0 3.556 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "global power" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Power symbol creates a global label with name \"+3.3VA\"" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "+3.3VA_0_1" + (polyline + (pts + (xy -0.762 1.27) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 0) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 2.54) + (xy 0.762 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "+3.3VA_1_1" + (pin power_in line (at 0 0 90) (length 0) hide + (name "+3.3VA" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:+5V" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "#PWR" (at 0 -3.81 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+5V" (at 0 3.556 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "global power" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Power symbol creates a global label with name \"+5V\"" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "+5V_0_1" + (polyline + (pts + (xy -0.762 1.27) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 0) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 2.54) + (xy 0.762 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "+5V_1_1" + (pin power_in line (at 0 0 90) (length 0) hide + (name "+5V" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "#PWR" (at 0 -6.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 0 -3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "global power" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) + (xy 0 -1.27) + (xy 1.27 -1.27) + (xy 0 -2.54) + (xy -1.27 -1.27) + (xy 0 -1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "GND_1_1" + (pin power_in line (at 0 0 270) (length 0) hide + (name "GND" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:PWR_FLAG" (power) (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes) + (property "Reference" "#FLG" (at 0 1.905 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "PWR_FLAG" (at 0 3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "flag power" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Special symbol for telling ERC where power comes from" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "PWR_FLAG_0_0" + (pin power_out line (at 0 0 90) (length 0) + (name "pwr" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "PWR_FLAG_0_1" + (polyline + (pts + (xy 0 0) + (xy 0 1.27) + (xy -1.016 1.905) + (xy 0 2.54) + (xy 1.016 1.905) + (xy 0 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + ) + ) + + (junction (at 415.29 370.84) (diameter 0) (color 0 0 0 0) + (uuid 008ac169-fa98-403a-b1c3-2143286fdd33) + ) + (junction (at 511.81 226.06) (diameter 0) (color 0 0 0 0) + (uuid 09d31f1a-6329-41ac-b348-ae2aa9f15a6c) + ) + (junction (at 280.67 354.33) (diameter 0) (color 0 0 0 0) + (uuid 0af5bc5b-89dd-48e2-9f17-fc8e5abd83e0) + ) + (junction (at 490.22 240.03) (diameter 0) (color 0 0 0 0) + (uuid 0c1b2909-ca70-4261-a1dc-c2a46c19d4e6) + ) + (junction (at 487.68 240.03) (diameter 0) (color 0 0 0 0) + (uuid 24ba0126-b5c7-41b3-be56-3a874d946339) + ) + (junction (at 415.29 350.52) (diameter 0) (color 0 0 0 0) + (uuid 264c0a30-a095-413d-8ca5-6078c29f2e0e) + ) + (junction (at 431.8 226.06) (diameter 0) (color 0 0 0 0) + (uuid 2ac70976-ac82-436b-bffa-a93aa7eccdd1) + ) + (junction (at 443.23 273.05) (diameter 0) (color 0 0 0 0) + (uuid 2d3bd1e3-c812-4e2a-a09e-9bbca8e59ef5) + ) + (junction (at 457.2 292.1) (diameter 0) (color 0 0 0 0) + (uuid 31d603d4-d988-4ed7-9547-4eeaa40dbed2) + ) + (junction (at 162.56 353.06) (diameter 0) (color 0 0 0 0) + (uuid 366eb0c3-479e-4159-85ae-915d10658542) + ) + (junction (at 317.5 231.14) (diameter 0) (color 0 0 0 0) + (uuid 3832a80a-840f-409f-bc6a-24d4e194de34) + ) + (junction (at 415.29 365.76) (diameter 0) (color 0 0 0 0) + (uuid 3936a090-42c0-433f-941a-fe0f0a6b83a3) + ) + (junction (at 50.8 289.56) (diameter 0) (color 0 0 0 0) + (uuid 4280d99d-cfda-4f2d-bcbd-88a2d628ef64) + ) + (junction (at 149.86 359.41) (diameter 0) (color 0 0 0 0) + (uuid 42b25582-c92a-4830-8701-74c7c5f41dd1) + ) + (junction (at 266.7 344.17) (diameter 0) (color 0 0 0 0) + (uuid 42b86272-f34b-4cbf-a731-1280e9cc8232) + ) + (junction (at 264.16 288.29) (diameter 0) (color 0 0 0 0) + (uuid 42f7eb84-b338-4aed-a28f-3e78617f4087) + ) + (junction (at 190.5 288.29) (diameter 0) (color 0 0 0 0) + (uuid 432904ce-3464-40a2-a545-689e5096a665) + ) + (junction (at 457.2 226.06) (diameter 0) (color 0 0 0 0) + (uuid 4edf93b9-97b6-4e3d-b015-492cfa9034ae) + ) + (junction (at 386.08 353.06) (diameter 0) (color 0 0 0 0) + (uuid 4fec6846-2dcb-40a3-bd68-eed1899ab2b1) + ) + (junction (at 27.94 232.41) (diameter 0) (color 0 0 0 0) + (uuid 540bc444-dfab-4119-b278-fe3869dc1537) + ) + (junction (at 469.9 226.06) (diameter 0) (color 0 0 0 0) + (uuid 5c6516d2-72b0-4e97-9cd0-dc62bfc4b31b) + ) + (junction (at 149.86 367.03) (diameter 0) (color 0 0 0 0) + (uuid 620019aa-d815-40be-b1cd-8676011adb3c) + ) + (junction (at 457.2 236.22) (diameter 0) (color 0 0 0 0) + (uuid 7272150a-17b9-4690-83a3-0c9771e7c7a3) + ) + (junction (at 419.1 236.22) (diameter 0) (color 0 0 0 0) + (uuid 762cb1b8-f2bd-44c5-87a0-d8c2522cad81) + ) + (junction (at 553.72 226.06) (diameter 0) (color 0 0 0 0) + (uuid 8354cfe6-5db1-4744-9dbc-2be6fd1e3a08) + ) + (junction (at 497.84 226.06) (diameter 0) (color 0 0 0 0) + (uuid 89fa809a-2e72-4b3d-aae5-fd6cb22675ec) + ) + (junction (at 293.37 354.33) (diameter 0) (color 0 0 0 0) + (uuid 8f32544f-3dfc-4563-bd3e-0f98517b598e) + ) + (junction (at 340.36 288.29) (diameter 0) (color 0 0 0 0) + (uuid 94b6a33d-d8a4-468d-85df-9a8305d0c72d) + ) + (junction (at 257.81 344.17) (diameter 0) (color 0 0 0 0) + (uuid 9513d0de-d168-4bce-9287-6f981da236f7) + ) + (junction (at 444.5 226.06) (diameter 0) (color 0 0 0 0) + (uuid 960493b3-94b2-4589-ac6a-811ba74d32fc) + ) + (junction (at 57.15 346.71) (diameter 0) (color 0 0 0 0) + (uuid 998df421-3442-493f-a9ae-448a1aab4c93) + ) + (junction (at 138.43 353.06) (diameter 0) (color 0 0 0 0) + (uuid 9c9770af-bfa8-414a-a260-1c29cd3c3413) + ) + (junction (at 490.22 323.85) (diameter 0) (color 0 0 0 0) + (uuid a3952e69-eb88-410c-b4a6-b2103438f5b3) + ) + (junction (at 527.05 236.22) (diameter 0) (color 0 0 0 0) + (uuid a92b444b-4a59-4052-9b85-fffdd32433d8) + ) + (junction (at 492.76 240.03) (diameter 0) (color 0 0 0 0) + (uuid a9590b3b-37ce-4a45-a6bb-7c5c55daa5ee) + ) + (junction (at 257.81 354.33) (diameter 0) (color 0 0 0 0) + (uuid abfae612-aa3b-4b62-92b3-0cb74c172db5) + ) + (junction (at 93.98 232.41) (diameter 0) (color 0 0 0 0) + (uuid ac4e25cb-c899-432a-bc30-a43613fccd26) + ) + (junction (at 431.8 236.22) (diameter 0) (color 0 0 0 0) + (uuid b6768517-5a26-4f0a-8a80-142eba0445d2) + ) + (junction (at 444.5 236.22) (diameter 0) (color 0 0 0 0) + (uuid b8c82f26-97dd-43d5-ac13-873f55935296) + ) + (junction (at 116.84 289.56) (diameter 0) (color 0 0 0 0) + (uuid c4f6f86b-9817-4bfb-8dd7-c6401b053d30) + ) + (junction (at 293.37 344.17) (diameter 0) (color 0 0 0 0) + (uuid c562952a-f519-402b-99f7-56332020450a) + ) + (junction (at 453.39 289.56) (diameter 0) (color 0 0 0 0) + (uuid c77f2a64-09a7-4706-bd86-1cbda43e9ba4) + ) + (junction (at 241.3 231.14) (diameter 0) (color 0 0 0 0) + (uuid c864d8f3-e30e-4280-a9df-d565ed3a72ba) + ) + (junction (at 453.39 273.05) (diameter 0) (color 0 0 0 0) + (uuid cb1469dc-b5d9-40c6-9bed-1e3ac987bd02) + ) + (junction (at 57.15 369.57) (diameter 0) (color 0 0 0 0) + (uuid d6decc7c-088e-4b64-a70f-ed1f0e8ef6ea) + ) + (junction (at 167.64 231.14) (diameter 0) (color 0 0 0 0) + (uuid d90bfa8b-8526-4a02-808a-33402d8d4015) + ) + (junction (at 384.81 360.68) (diameter 0) (color 0 0 0 0) + (uuid dd436419-26e6-4f77-b462-c60be72549b4) + ) + (junction (at 527.05 226.06) (diameter 0) (color 0 0 0 0) + (uuid ebc36753-f430-4afd-9d9a-31829b394687) + ) + (junction (at 487.68 226.06) (diameter 0) (color 0 0 0 0) + (uuid f0802ff0-936d-4755-a5fa-a71e62b568e0) + ) + + (no_connect (at 353.06 257.81) (uuid 0aa56732-3704-4fe7-9911-e48cf3ebd784)) + (no_connect (at 508 266.7) (uuid 113c1528-6fc4-46b6-a845-429fda5f5b02)) + (no_connect (at 360.68 342.9) (uuid 16eb0256-7f1f-4ab0-afb9-7e75c96f39f0)) + (no_connect (at 508 271.78) (uuid 1d1e10c4-fd5b-4955-9c2e-29f7d24123a2)) + (no_connect (at 474.98 299.72) (uuid 20213315-f04c-41ea-8b9c-d83251ccec45)) + (no_connect (at 474.98 294.64) (uuid 20e02cfd-b562-4a82-9fa6-a3d0761a7363)) + (no_connect (at 474.98 281.94) (uuid 328a8ddf-f3ea-45e8-9967-f8ec43a2f579)) + (no_connect (at 353.06 278.13) (uuid 352fbf22-e0e2-4a23-bf3b-8d5a55ef0a83)) + (no_connect (at 474.98 269.24) (uuid 3e7cc192-3095-46a2-b94d-4328708a0e28)) + (no_connect (at 474.98 279.4) (uuid 4536dff6-8ae9-4f3e-bb51-f6cf70ace188)) + (no_connect (at 353.06 265.43) (uuid 51d9ac24-c259-4f92-a715-3beaad933d79)) + (no_connect (at 360.68 370.84) (uuid 54982176-8379-46bd-9fb5-b8d58a4a698a)) + (no_connect (at 353.06 270.51) (uuid 602c4b56-38b9-41dc-93ab-c608ef8899b9)) + (no_connect (at 474.98 274.32) (uuid 770aa40b-f37c-4955-b547-64215ecca994)) + (no_connect (at 474.98 297.18) (uuid 79be4164-5f18-4fa4-8923-21016a14acc1)) + (no_connect (at 508 284.48) (uuid 7af94662-88d5-490c-bc5d-eb1e72b7e60f)) + (no_connect (at 474.98 314.96) (uuid 7f5f0fd5-51af-46a0-9fa8-3b26d2226909)) + (no_connect (at 474.98 264.16) (uuid 8492d938-b83d-443b-b910-d5b67c721af2)) + (no_connect (at 474.98 287.02) (uuid 84c320f9-bb7d-49d8-9eb3-61746f0caf4e)) + (no_connect (at 360.68 368.3) (uuid 863bd011-474d-4b54-8726-13ca65d78ac9)) + (no_connect (at 508 246.38) (uuid 89ffe981-eba5-45aa-9959-f031f61e8f9c)) + (no_connect (at 353.06 280.67) (uuid 8dcb3ef4-e203-473e-97dc-606558b986d8)) + (no_connect (at 383.54 363.22) (uuid 978b4f7b-b7b2-4a87-8a6d-cdd658bc4b97)) + (no_connect (at 353.06 255.27) (uuid 9c832e8a-6e87-4121-8ab1-049b27a6fd59)) + (no_connect (at 474.98 284.48) (uuid 9da2c6eb-544e-4fd4-8b92-783ea8bab21b)) + (no_connect (at 508 269.24) (uuid a34ff040-4fb9-42ae-90e5-8dce43190b0f)) + (no_connect (at 360.68 345.44) (uuid acacfe41-ef7b-4504-899c-f1273fdfbe32)) + (no_connect (at 474.98 266.7) (uuid adc7ce98-7569-4359-883a-aa899667cb5f)) + (no_connect (at 353.06 250.19) (uuid b38dde7a-cd0b-4ea3-9ffe-28777919d95e)) + (no_connect (at 474.98 276.86) (uuid b56a2103-9e0d-49a9-903a-23c6582c189c)) + (no_connect (at 353.06 262.89) (uuid c00fb56a-21cd-4b3f-81c1-f8a590059ab9)) + (no_connect (at 353.06 260.35) (uuid d2b1d091-161c-4598-9ad0-e03aeac1fb46)) + (no_connect (at 353.06 273.05) (uuid de07dac0-dfa2-46c4-b06a-4f0457e4aa34)) + (no_connect (at 353.06 267.97) (uuid e7d184a5-a5a2-412d-9eb4-04604161acd3)) + (no_connect (at 508 248.92) (uuid ec3bf6a9-2a71-46be-b8de-a1e286d56e3e)) + (no_connect (at 383.54 347.98) (uuid f2041d15-9655-41fd-9aff-12742e5da9b1)) + (no_connect (at 508 251.46) (uuid f4da7356-4c7e-405d-a62c-6e0925c75e53)) + (no_connect (at 353.06 275.59) (uuid f8c767de-d808-4c92-835d-cf3c04517067)) + (no_connect (at 353.06 252.73) (uuid fe2c914b-4c92-49d0-91b3-ec75ed8974e6)) + + (wire (pts (xy 149.86 358.14) (xy 149.86 359.41)) + (stroke (width 0) (type default)) + (uuid 00da14bd-e107-4e3e-aa62-2ff5ea9fc12d) + ) + (wire (pts (xy 495.3 240.03) (xy 492.76 240.03)) + (stroke (width 0) (type default)) + (uuid 01053b55-b9e0-485b-890b-36e5f88a4e3a) + ) + (wire (pts (xy 149.86 347.98) (xy 149.86 345.44)) + (stroke (width 0) (type default)) + (uuid 01ed0baa-fc94-416d-b906-f5b3591d6d4b) + ) + (wire (pts (xy 537.21 226.06) (xy 527.05 226.06)) + (stroke (width 0) (type default)) + (uuid 0255de56-1fa3-4d77-b275-72deae71f05b) + ) + (wire (pts (xy 553.72 224.79) (xy 553.72 226.06)) + (stroke (width 0) (type default)) + (uuid 065e9e7e-1163-44a3-9d6c-2275e352d71a) + ) + (wire (pts (xy 408.94 365.76) (xy 415.29 365.76)) + (stroke (width 0) (type default)) + (uuid 06900cee-ba60-431e-837d-c6971172c011) + ) + (wire (pts (xy 340.36 234.95) (xy 340.36 231.14)) + (stroke (width 0) (type default)) + (uuid 08452a16-9257-449f-917a-d82631139c61) + ) + (wire (pts (xy 497.84 226.06) (xy 497.84 241.3)) + (stroke (width 0) (type default)) + (uuid 08d584d2-ae59-4232-b652-056afa263751) + ) + (wire (pts (xy 293.37 344.17) (xy 293.37 345.44)) + (stroke (width 0) (type default)) + (uuid 095022e7-79b3-4d93-a288-d1b142806ba0) + ) + (wire (pts (xy 431.8 226.06) (xy 444.5 226.06)) + (stroke (width 0) (type default)) + (uuid 0a72b445-bf31-43fc-a0a1-4febfde15cb7) + ) + (wire (pts (xy 431.8 234.95) (xy 431.8 236.22)) + (stroke (width 0) (type default)) + (uuid 0af612f1-0d17-43b8-a820-1c3cb32638b7) + ) + (wire (pts (xy 162.56 353.06) (xy 162.56 358.14)) + (stroke (width 0) (type default)) + (uuid 0c7603e2-7545-40b8-b43a-b4cf06987eb2) + ) + (wire (pts (xy 383.54 342.9) (xy 415.29 342.9)) + (stroke (width 0) (type default)) + (uuid 0def1d69-8429-4d78-99b9-d11ceb17800c) + ) + (wire (pts (xy 162.56 367.03) (xy 162.56 365.76)) + (stroke (width 0) (type default)) + (uuid 0e5c555a-4379-42bb-8d07-d33e9031d54a) + ) + (wire (pts (xy 431.8 226.06) (xy 431.8 227.33)) + (stroke (width 0) (type default)) + (uuid 0ee1760b-6563-45e4-ac7a-84e1e1342bda) + ) + (wire (pts (xy 383.54 360.68) (xy 384.81 360.68)) + (stroke (width 0) (type default)) + (uuid 0f931dc3-5d1e-480a-8597-f76b0fea20ab) + ) + (wire (pts (xy 264.16 234.95) (xy 264.16 231.14)) + (stroke (width 0) (type default)) + (uuid 1238560b-1dea-4cde-9a14-86ad602f110a) + ) + (wire (pts (xy 311.15 344.17) (xy 320.04 344.17)) + (stroke (width 0) (type default)) + (uuid 127cf06f-1138-40f4-b553-106aaed7d501) + ) + (wire (pts (xy 144.78 345.44) (xy 144.78 359.41)) + (stroke (width 0) (type default)) + (uuid 12eb8e59-9d05-464e-b6f4-20535a23330c) + ) + (wire (pts (xy 527.05 226.06) (xy 527.05 227.33)) + (stroke (width 0) (type default)) + (uuid 1a23a1e7-c92e-4d3b-bf2f-b819856687c8) + ) + (wire (pts (xy 320.04 353.06) (xy 320.04 354.33)) + (stroke (width 0) (type default)) + (uuid 1f6a8b38-7b11-4247-bd7b-9a0e313b9aa2) + ) + (wire (pts (xy 383.54 350.52) (xy 401.32 350.52)) + (stroke (width 0) (type default)) + (uuid 1f797015-8a49-465e-836d-7a2f10a3b230) + ) + (wire (pts (xy 320.04 354.33) (xy 293.37 354.33)) + (stroke (width 0) (type default)) + (uuid 2043ef38-8c61-4464-a1c3-997ca1305c6e) + ) + (wire (pts (xy 138.43 367.03) (xy 149.86 367.03)) + (stroke (width 0) (type default)) + (uuid 217a4aba-1070-47f3-9fa7-a2306544035a) + ) + (wire (pts (xy 162.56 367.03) (xy 149.86 367.03)) + (stroke (width 0) (type default)) + (uuid 2189b882-ca55-4209-bf8f-4b09daa4c603) + ) + (wire (pts (xy 44.45 361.95) (xy 41.91 361.95)) + (stroke (width 0) (type default)) + (uuid 24475e07-74ab-42ca-8bdf-7a86caa4e55e) + ) + (wire (pts (xy 250.19 344.17) (xy 257.81 344.17)) + (stroke (width 0) (type default)) + (uuid 24c9c4bb-bba9-442a-b760-7c89e9f4c66b) + ) + (wire (pts (xy 443.23 292.1) (xy 457.2 292.1)) + (stroke (width 0) (type default)) + (uuid 2568bec9-11f7-4077-a439-b8614cf40dbd) + ) + (wire (pts (xy 457.2 273.05) (xy 453.39 273.05)) + (stroke (width 0) (type default)) + (uuid 29f613ff-b84e-4ba0-b24e-efd47cc166f8) + ) + (wire (pts (xy 444.5 226.06) (xy 444.5 227.33)) + (stroke (width 0) (type default)) + (uuid 2c51ae5d-7dd9-44a7-8a1f-d7e8d0323c55) + ) + (wire (pts (xy 419.1 226.06) (xy 431.8 226.06)) + (stroke (width 0) (type default)) + (uuid 2c576082-53ee-4f39-8cb2-d8ea494f8151) + ) + (wire (pts (xy 87.63 356.87) (xy 87.63 353.06)) + (stroke (width 0) (type default)) + (uuid 2cdbd327-4389-463b-b810-c002cb447c48) + ) + (wire (pts (xy 257.81 344.17) (xy 266.7 344.17)) + (stroke (width 0) (type default)) + (uuid 2dbe2af3-8e22-409d-868a-4cd5c87f2af9) + ) + (wire (pts (xy 487.68 224.79) (xy 487.68 226.06)) + (stroke (width 0) (type default)) + (uuid 2ec02788-8cff-460f-aec7-533e5313d894) + ) + (wire (pts (xy 419.1 234.95) (xy 419.1 236.22)) + (stroke (width 0) (type default)) + (uuid 324398bf-afcc-40e2-b3f3-8e8bb69be171) + ) + (wire (pts (xy 414.02 251.46) (xy 416.56 251.46)) + (stroke (width 0) (type default)) + (uuid 3290a641-9c66-4fb2-9cea-8d6da47b9e95) + ) + (wire (pts (xy 453.39 273.05) (xy 443.23 273.05)) + (stroke (width 0) (type default)) + (uuid 34af1d47-a580-4b66-9df8-b610c4cadca3) + ) + (wire (pts (xy 162.56 353.06) (xy 165.1 353.06)) + (stroke (width 0) (type default)) + (uuid 34d780c9-064e-43c4-9152-4282ee42a59b) + ) + (wire (pts (xy 50.8 236.22) (xy 50.8 232.41)) + (stroke (width 0) (type default)) + (uuid 37aa71e6-e8bf-40e3-b8d7-bd340b194b28) + ) + (wire (pts (xy 383.54 358.14) (xy 386.08 358.14)) + (stroke (width 0) (type default)) + (uuid 383d49a8-dafb-4f30-a1da-1de359d549b3) + ) + (wire (pts (xy 527.05 236.22) (xy 527.05 237.49)) + (stroke (width 0) (type default)) + (uuid 391e94aa-e69a-480b-b197-a60819243d5e) + ) + (wire (pts (xy 429.26 251.46) (xy 431.8 251.46)) + (stroke (width 0) (type default)) + (uuid 3dbc00ff-55d3-449e-b804-e0f3d2bd31d6) + ) + (wire (pts (xy 469.9 234.95) (xy 469.9 236.22)) + (stroke (width 0) (type default)) + (uuid 3dd65c02-29a2-49b2-a1d3-51ed27a87244) + ) + (wire (pts (xy 69.85 356.87) (xy 87.63 356.87)) + (stroke (width 0) (type default)) + (uuid 3e13b05d-8dc9-4253-896c-9cfdc1e2f8b8) + ) + (wire (pts (xy 149.86 367.03) (xy 149.86 368.3)) + (stroke (width 0) (type default)) + (uuid 42facd51-5ef4-4d96-aa57-8464003417e5) + ) + (wire (pts (xy 457.2 236.22) (xy 444.5 236.22)) + (stroke (width 0) (type default)) + (uuid 44fcbd43-baab-4767-bfaf-2f58b09ecea1) + ) + (wire (pts (xy 495.3 241.3) (xy 495.3 240.03)) + (stroke (width 0) (type default)) + (uuid 45e37d16-2a68-4949-aaa1-496d31283d5c) + ) + (wire (pts (xy 525.78 276.86) (xy 525.78 274.32)) + (stroke (width 0) (type default)) + (uuid 4655daf9-4d8c-4960-9ffb-1813aa63e68c) + ) + (wire (pts (xy 490.22 240.03) (xy 487.68 240.03)) + (stroke (width 0) (type default)) + (uuid 4662cb78-d138-46e1-85a7-975b42ad115d) + ) + (wire (pts (xy 288.29 344.17) (xy 293.37 344.17)) + (stroke (width 0) (type default)) + (uuid 47b4582e-dd11-45e9-aca3-7b234804779e) + ) + (wire (pts (xy 419.1 227.33) (xy 419.1 226.06)) + (stroke (width 0) (type default)) + (uuid 4a9c1fe4-9d35-4967-bbfc-3a1b75f39e52) + ) + (wire (pts (xy 138.43 353.06) (xy 138.43 358.14)) + (stroke (width 0) (type default)) + (uuid 4ef72ef9-5f1f-43bf-b87c-2813ef8d6e09) + ) + (wire (pts (xy 490.22 323.85) (xy 490.22 325.12)) + (stroke (width 0) (type default)) + (uuid 4fefc364-4a18-43fd-bc95-f55cef52d48c) + ) + (wire (pts (xy 527.05 234.95) (xy 527.05 236.22)) + (stroke (width 0) (type default)) + (uuid 51003f8b-786a-4163-b2cf-35967508c31c) + ) + (wire (pts (xy 251.46 275.59) (xy 251.46 288.29)) + (stroke (width 0) (type default)) + (uuid 52e440e9-732c-4146-918e-72a74ecafbdb) + ) + (wire (pts (xy 492.76 240.03) (xy 492.76 241.3)) + (stroke (width 0) (type default)) + (uuid 559ff563-24a8-4e14-9825-f25c30e03a33) + ) + (wire (pts (xy 453.39 273.05) (xy 453.39 276.86)) + (stroke (width 0) (type default)) + (uuid 55bff00a-132c-4a47-af50-4ee11bdb599a) + ) + (wire (pts (xy 383.54 370.84) (xy 415.29 370.84)) + (stroke (width 0) (type default)) + (uuid 56d7f3d1-afa6-45d3-ae56-f812025054db) + ) + (wire (pts (xy 280.67 354.33) (xy 257.81 354.33)) + (stroke (width 0) (type default)) + (uuid 57865af1-8d85-4b9a-a4e6-1171bc13f785) + ) + (wire (pts (xy 138.43 353.06) (xy 146.05 353.06)) + (stroke (width 0) (type default)) + (uuid 584b1aa5-9a29-4d01-aaa4-1c5e7375d031) + ) + (wire (pts (xy 408.94 350.52) (xy 415.29 350.52)) + (stroke (width 0) (type default)) + (uuid 595e661f-c3a1-46c5-8c25-ebc2e78a2767) + ) + (wire (pts (xy 177.8 288.29) (xy 190.5 288.29)) + (stroke (width 0) (type default)) + (uuid 5ab81059-3758-4385-854a-875f11b744d0) + ) + (wire (pts (xy 469.9 227.33) (xy 469.9 226.06)) + (stroke (width 0) (type default)) + (uuid 5adc6e36-e37c-4e97-a253-387496f01a7c) + ) + (wire (pts (xy 71.12 346.71) (xy 66.04 346.71)) + (stroke (width 0) (type default)) + (uuid 5b81ed7c-5b83-4ec8-8426-4e98c5f0bd47) + ) + (wire (pts (xy 511.81 226.06) (xy 497.84 226.06)) + (stroke (width 0) (type default)) + (uuid 5de4e244-ee86-4f29-9c89-3bcbaa2f5705) + ) + (wire (pts (xy 444.5 234.95) (xy 444.5 236.22)) + (stroke (width 0) (type default)) + (uuid 5e56d8a0-4f90-454e-87dc-e52cb0003f32) + ) + (wire (pts (xy 443.23 289.56) (xy 453.39 289.56)) + (stroke (width 0) (type default)) + (uuid 5f7fcaf6-74fd-409f-86db-9130e6f4a077) + ) + (wire (pts (xy 497.84 226.06) (xy 497.84 224.79)) + (stroke (width 0) (type default)) + (uuid 60227a70-6c02-4284-94d7-afb472566a52) + ) + (wire (pts (xy 492.76 322.58) (xy 492.76 323.85)) + (stroke (width 0) (type default)) + (uuid 6030f247-bdf3-4f20-8bf4-386a01ad3460) + ) + (wire (pts (xy 138.43 367.03) (xy 138.43 365.76)) + (stroke (width 0) (type default)) + (uuid 62dd99f4-c873-495b-af38-5a95861817ae) + ) + (wire (pts (xy 251.46 288.29) (xy 264.16 288.29)) + (stroke (width 0) (type default)) + (uuid 657e1959-7ab3-489d-97b6-111a1250a585) + ) + (wire (pts (xy 153.67 353.06) (xy 162.56 353.06)) + (stroke (width 0) (type default)) + (uuid 67a2dbc5-268e-4954-9acf-b016e26b180c) + ) + (wire (pts (xy 469.9 236.22) (xy 457.2 236.22)) + (stroke (width 0) (type default)) + (uuid 6aec9176-6993-4307-afc0-75193c1984d7) + ) + (wire (pts (xy 257.81 344.17) (xy 257.81 345.44)) + (stroke (width 0) (type default)) + (uuid 6c895263-d0dd-4a9d-bbc4-472ab8abfbf0) + ) + (wire (pts (xy 444.5 226.06) (xy 457.2 226.06)) + (stroke (width 0) (type default)) + (uuid 73e29934-c236-450d-b6dc-8f9a1a0e920d) + ) + (wire (pts (xy 457.2 234.95) (xy 457.2 236.22)) + (stroke (width 0) (type default)) + (uuid 75a5b559-00ee-44ae-9510-7afee9d48e00) + ) + (wire (pts (xy 527.05 226.06) (xy 511.81 226.06)) + (stroke (width 0) (type default)) + (uuid 75b746a1-7cb5-44cf-8be5-fbafe8556bc4) + ) + (wire (pts (xy 73.66 353.06) (xy 74.93 353.06)) + (stroke (width 0) (type default)) + (uuid 75c87919-e115-4fd6-a7bb-71ccdf674063) + ) + (wire (pts (xy 167.64 231.14) (xy 190.5 231.14)) + (stroke (width 0) (type default)) + (uuid 77e5a182-8c75-409e-ba2b-52a4e10bedc7) + ) + (wire (pts (xy 511.81 234.95) (xy 511.81 236.22)) + (stroke (width 0) (type default)) + (uuid 7dce55a6-7902-4b29-8c97-581bbbe3012f) + ) + (wire (pts (xy 511.81 236.22) (xy 527.05 236.22)) + (stroke (width 0) (type default)) + (uuid 7e2bb2f1-c69b-4141-ad70-b5a803eed635) + ) + (wire (pts (xy 553.72 226.06) (xy 553.72 227.33)) + (stroke (width 0) (type default)) + (uuid 7e9cefdb-2d5c-47a6-a78e-76a9b9666bba) + ) + (wire (pts (xy 293.37 342.9) (xy 293.37 344.17)) + (stroke (width 0) (type default)) + (uuid 7eedac2e-4db6-49eb-a390-0c21c07016fd) + ) + (wire (pts (xy 257.81 342.9) (xy 257.81 344.17)) + (stroke (width 0) (type default)) + (uuid 7ffe90da-9d60-42e9-9855-00760148e1c4) + ) + (wire (pts (xy 443.23 294.64) (xy 443.23 297.18)) + (stroke (width 0) (type default)) + (uuid 80182d55-f553-4b3e-a85a-ef473690777e) + ) + (wire (pts (xy 93.98 232.41) (xy 116.84 232.41)) + (stroke (width 0) (type default)) + (uuid 809aff89-3c9b-4b02-a8ed-e6976c212f8e) + ) + (wire (pts (xy 77.47 364.49) (xy 77.47 369.57)) + (stroke (width 0) (type default)) + (uuid 813ff894-4eec-4a4e-abb6-012e89fc30b0) + ) + (wire (pts (xy 41.91 369.57) (xy 57.15 369.57)) + (stroke (width 0) (type default)) + (uuid 81a0a266-3c5a-4d0d-8114-74975fa21c50) + ) + (wire (pts (xy 39.37 364.49) (xy 44.45 364.49)) + (stroke (width 0) (type default)) + (uuid 83ee2983-88da-4974-8bd5-3b5698cedc40) + ) + (wire (pts (xy 453.39 284.48) (xy 453.39 289.56)) + (stroke (width 0) (type default)) + (uuid 87212339-3415-47ef-a365-a060d2340fa7) + ) + (wire (pts (xy 149.86 345.44) (xy 144.78 345.44)) + (stroke (width 0) (type default)) + (uuid 8737f5d2-cde4-4632-a940-2d3b4f105e71) + ) + (wire (pts (xy 490.22 322.58) (xy 490.22 323.85)) + (stroke (width 0) (type default)) + (uuid 873f0e71-e5e4-4960-819e-62976cc1bbd7) + ) + (wire (pts (xy 508 281.94) (xy 525.78 281.94)) + (stroke (width 0) (type default)) + (uuid 89c72f99-8c7b-4041-be19-5d2b0b841491) + ) + (wire (pts (xy 54.61 346.71) (xy 57.15 346.71)) + (stroke (width 0) (type default)) + (uuid 8c6a7534-f10b-4ee1-beeb-8e379fafd707) + ) + (wire (pts (xy 415.29 365.76) (xy 415.29 370.84)) + (stroke (width 0) (type default)) + (uuid 8d611954-0b73-49e7-978c-de89726e717b) + ) + (wire (pts (xy 453.39 289.56) (xy 474.98 289.56)) + (stroke (width 0) (type default)) + (uuid 8dbd7611-62a3-4190-89bd-65a844965a37) + ) + (wire (pts (xy 492.76 240.03) (xy 490.22 240.03)) + (stroke (width 0) (type default)) + (uuid 904980c9-2fda-42b5-b310-c964f1078c8f) + ) + (wire (pts (xy 293.37 344.17) (xy 303.53 344.17)) + (stroke (width 0) (type default)) + (uuid 90cb7124-a854-43aa-9fd1-728dfa733e07) + ) + (wire (pts (xy 104.14 276.86) (xy 104.14 289.56)) + (stroke (width 0) (type default)) + (uuid 914b74e4-0a1b-4829-819f-c81ab6447f46) + ) + (wire (pts (xy 457.2 227.33) (xy 457.2 226.06)) + (stroke (width 0) (type default)) + (uuid 93c720c5-f37b-4ee9-aaa6-0ca5fed2850a) + ) + (wire (pts (xy 469.9 226.06) (xy 487.68 226.06)) + (stroke (width 0) (type default)) + (uuid 9464b9a5-b3c9-4755-90d7-51cd4b5d34d3) + ) + (wire (pts (xy 257.81 354.33) (xy 257.81 355.6)) + (stroke (width 0) (type default)) + (uuid 94691a7b-66bc-4c42-b302-cbc9fe02e54b) + ) + (wire (pts (xy 490.22 240.03) (xy 490.22 241.3)) + (stroke (width 0) (type default)) + (uuid 955504ca-4ff0-4276-a3b7-a406f0c16661) + ) + (wire (pts (xy 443.23 273.05) (xy 443.23 271.78)) + (stroke (width 0) (type default)) + (uuid 97e01793-cb73-4225-a78e-6d2829316c32) + ) + (wire (pts (xy 149.86 359.41) (xy 149.86 367.03)) + (stroke (width 0) (type default)) + (uuid 999f1b0d-1b8b-4131-b074-b82926c1db75) + ) + (wire (pts (xy 429.26 260.35) (xy 429.26 261.62)) + (stroke (width 0) (type default)) + (uuid 9a862839-c210-4686-acd1-f39b15648e0e) + ) + (wire (pts (xy 384.81 360.68) (xy 389.89 360.68)) + (stroke (width 0) (type default)) + (uuid 9aad0145-e208-4f64-a7d2-93bb29091c47) + ) + (wire (pts (xy 553.72 234.95) (xy 553.72 237.49)) + (stroke (width 0) (type default)) + (uuid 9bb21e32-a3ae-427a-b762-5aadea109265) + ) + (wire (pts (xy 444.5 236.22) (xy 431.8 236.22)) + (stroke (width 0) (type default)) + (uuid 9c609571-3705-4293-8b5b-568cc46afa54) + ) + (wire (pts (xy 280.67 351.79) (xy 280.67 354.33)) + (stroke (width 0) (type default)) + (uuid 9dbbf5aa-f85f-4d36-a4b4-46cbcd984c1c) + ) + (wire (pts (xy 327.66 288.29) (xy 340.36 288.29)) + (stroke (width 0) (type default)) + (uuid 9eee5426-f59f-485c-b1e9-e972c53495e0) + ) + (wire (pts (xy 414.02 260.35) (xy 414.02 261.62)) + (stroke (width 0) (type default)) + (uuid a268020e-cce6-4e5b-b2e0-0fc022e6a08e) + ) + (wire (pts (xy 73.66 353.06) (xy 73.66 354.33)) + (stroke (width 0) (type default)) + (uuid a2985edc-17f9-439b-9431-c752fdcc8cdb) + ) + (wire (pts (xy 241.3 344.17) (xy 242.57 344.17)) + (stroke (width 0) (type default)) + (uuid a59717b8-aa00-4cd8-83cf-fb2724b12c5a) + ) + (wire (pts (xy 266.7 344.17) (xy 273.05 344.17)) + (stroke (width 0) (type default)) + (uuid a6b2029f-2839-4c15-9f5e-0a98437f9d78) + ) + (wire (pts (xy 38.1 289.56) (xy 50.8 289.56)) + (stroke (width 0) (type default)) + (uuid a718a2f5-ab4e-4c49-820c-ac4b21643acb) + ) + (wire (pts (xy 415.29 370.84) (xy 415.29 378.46)) + (stroke (width 0) (type default)) + (uuid a7a68c8c-cb27-493b-ba07-4fbfc213fe9e) + ) + (wire (pts (xy 431.8 236.22) (xy 419.1 236.22)) + (stroke (width 0) (type default)) + (uuid a879cf7f-1064-4c0e-bded-9631e5a0bce1) + ) + (wire (pts (xy 57.15 344.17) (xy 57.15 346.71)) + (stroke (width 0) (type default)) + (uuid a8d42ebc-cb61-42aa-9ff4-31f26be962ac) + ) + (wire (pts (xy 280.67 354.33) (xy 293.37 354.33)) + (stroke (width 0) (type default)) + (uuid ad631dee-5f30-416e-9153-70ad131faae2) + ) + (wire (pts (xy 73.66 354.33) (xy 69.85 354.33)) + (stroke (width 0) (type default)) + (uuid b323c62e-7106-4854-a77a-e503bb9f80f8) + ) + (wire (pts (xy 77.47 369.57) (xy 57.15 369.57)) + (stroke (width 0) (type default)) + (uuid b49e4780-7492-4a5e-8644-b2a3d1fd66e4) + ) + (wire (pts (xy 135.89 353.06) (xy 138.43 353.06)) + (stroke (width 0) (type default)) + (uuid b555d705-6dfd-4050-b5d3-b991a5695bec) + ) + (wire (pts (xy 383.54 355.6) (xy 384.81 355.6)) + (stroke (width 0) (type default)) + (uuid b6683446-70ac-497c-b69c-69b5621142fe) + ) + (wire (pts (xy 511.81 226.06) (xy 511.81 227.33)) + (stroke (width 0) (type default)) + (uuid b6c28065-4f31-4135-8843-635753c4ca2f) + ) + (wire (pts (xy 419.1 236.22) (xy 419.1 237.49)) + (stroke (width 0) (type default)) + (uuid b71d94fb-6b15-4674-98d7-7ec0ec768d48) + ) + (wire (pts (xy 415.29 350.52) (xy 415.29 365.76)) + (stroke (width 0) (type default)) + (uuid b750e64b-fb52-4e0a-ba8c-be0d6ba0ccac) + ) + (wire (pts (xy 384.81 355.6) (xy 384.81 360.68)) + (stroke (width 0) (type default)) + (uuid b7811e01-642b-48c2-8989-575203029b66) + ) + (wire (pts (xy 525.78 284.48) (xy 525.78 287.02)) + (stroke (width 0) (type default)) + (uuid bf5404ac-ef17-41cb-9fe6-67f0caf79793) + ) + (wire (pts (xy 327.66 275.59) (xy 327.66 288.29)) + (stroke (width 0) (type default)) + (uuid c0f3e664-61ce-4eab-bb27-2bb3fa1f6945) + ) + (wire (pts (xy 54.61 346.71) (xy 54.61 349.25)) + (stroke (width 0) (type default)) + (uuid c25c4643-9eaf-4bee-95bb-c178ec8a2ddd) + ) + (wire (pts (xy 443.23 287.02) (xy 443.23 273.05)) + (stroke (width 0) (type default)) + (uuid c2639b33-8f4b-4b8a-b776-1e7033bfb8dc) + ) + (wire (pts (xy 383.54 353.06) (xy 386.08 353.06)) + (stroke (width 0) (type default)) + (uuid c2dcd134-d0b4-4b80-b8ee-b3e824945f21) + ) + (wire (pts (xy 415.29 342.9) (xy 415.29 350.52)) + (stroke (width 0) (type default)) + (uuid c4e0fd89-419c-4e9d-990c-856f6d8fe146) + ) + (wire (pts (xy 116.84 236.22) (xy 116.84 232.41)) + (stroke (width 0) (type default)) + (uuid c8c571db-f174-43d3-9643-50e8e7ec1743) + ) + (wire (pts (xy 241.3 231.14) (xy 264.16 231.14)) + (stroke (width 0) (type default)) + (uuid c9113960-f3e0-4339-98c3-e5fd95a12749) + ) + (wire (pts (xy 104.14 289.56) (xy 116.84 289.56)) + (stroke (width 0) (type default)) + (uuid ca183789-4467-4dfa-9497-227a33c34062) + ) + (wire (pts (xy 38.1 276.86) (xy 38.1 289.56)) + (stroke (width 0) (type default)) + (uuid cbfdaca9-d221-47b7-a089-cee4e5d8ef3d) + ) + (wire (pts (xy 487.68 226.06) (xy 487.68 240.03)) + (stroke (width 0) (type default)) + (uuid cd97731b-11dd-42d6-b80a-8284f71e84f8) + ) + (wire (pts (xy 457.2 276.86) (xy 457.2 273.05)) + (stroke (width 0) (type default)) + (uuid ceb7b8c0-598f-4b39-88d9-e49ca9b15af7) + ) + (wire (pts (xy 257.81 354.33) (xy 257.81 353.06)) + (stroke (width 0) (type default)) + (uuid cf0c4c41-8a5f-44b4-b56d-91bdd16ed546) + ) + (wire (pts (xy 41.91 361.95) (xy 41.91 369.57)) + (stroke (width 0) (type default)) + (uuid d010e9ef-d828-457d-8179-484f93011c1c) + ) + (wire (pts (xy 487.68 240.03) (xy 487.68 241.3)) + (stroke (width 0) (type default)) + (uuid d1d46744-7bec-410c-9782-2fd8e8745910) + ) + (wire (pts (xy 492.76 323.85) (xy 490.22 323.85)) + (stroke (width 0) (type default)) + (uuid d9922c71-e0b2-4b22-9c4e-9d1ba833a379) + ) + (wire (pts (xy 508 279.4) (xy 525.78 279.4)) + (stroke (width 0) (type default)) + (uuid da1d9cbd-3914-4dc0-91cf-16edf2b949a5) + ) + (wire (pts (xy 57.15 346.71) (xy 58.42 346.71)) + (stroke (width 0) (type default)) + (uuid dce003ca-28b0-4db0-be46-d51e7146430e) + ) + (wire (pts (xy 383.54 365.76) (xy 401.32 365.76)) + (stroke (width 0) (type default)) + (uuid dd4a28a3-b29a-4512-992d-d90917e1fdc1) + ) + (wire (pts (xy 190.5 234.95) (xy 190.5 231.14)) + (stroke (width 0) (type default)) + (uuid dfcb0263-aadf-4b98-b114-a2b25b33d241) + ) + (wire (pts (xy 320.04 344.17) (xy 320.04 345.44)) + (stroke (width 0) (type default)) + (uuid e045c064-992c-4bb7-927b-cdb9986ce226) + ) + (wire (pts (xy 386.08 353.06) (xy 389.89 353.06)) + (stroke (width 0) (type default)) + (uuid e4286a71-ebda-4920-ba34-e8462771b43b) + ) + (wire (pts (xy 457.2 284.48) (xy 457.2 292.1)) + (stroke (width 0) (type default)) + (uuid e4da2367-6c55-4523-bb33-49ca0f2faf31) + ) + (wire (pts (xy 386.08 358.14) (xy 386.08 353.06)) + (stroke (width 0) (type default)) + (uuid e75bd306-a05c-4369-a95b-9e0fb415e150) + ) + (wire (pts (xy 544.83 226.06) (xy 553.72 226.06)) + (stroke (width 0) (type default)) + (uuid e807a531-8f6a-41b7-a7d1-aa09aed25609) + ) + (wire (pts (xy 278.13 383.54) (xy 278.13 384.81)) + (stroke (width 0) (type default)) + (uuid e9c655c3-1fea-4239-bf3d-147239169d35) + ) + (wire (pts (xy 429.26 252.73) (xy 429.26 251.46)) + (stroke (width 0) (type default)) + (uuid ebb53741-fd7f-44fa-8426-0cf0e7f661b7) + ) + (wire (pts (xy 457.2 292.1) (xy 474.98 292.1)) + (stroke (width 0) (type default)) + (uuid ece15343-156d-46c6-9cd8-0d222627a4b6) + ) + (wire (pts (xy 144.78 359.41) (xy 149.86 359.41)) + (stroke (width 0) (type default)) + (uuid ee87a5bf-a49b-42be-b0a1-d1157b8b88ba) + ) + (wire (pts (xy 293.37 354.33) (xy 293.37 353.06)) + (stroke (width 0) (type default)) + (uuid f0ab7eff-c1ce-4a1c-86ab-1c2f3fbdbdf6) + ) + (wire (pts (xy 457.2 226.06) (xy 469.9 226.06)) + (stroke (width 0) (type default)) + (uuid f4788bad-dd03-407f-b7b4-8a48105b455c) + ) + (wire (pts (xy 57.15 349.25) (xy 57.15 346.71)) + (stroke (width 0) (type default)) + (uuid f488d626-7bdb-4e8b-bf57-e45178c545de) + ) + (wire (pts (xy 177.8 275.59) (xy 177.8 288.29)) + (stroke (width 0) (type default)) + (uuid f62821a3-8176-49d1-8351-0dd6ec8c836b) + ) + (wire (pts (xy 27.94 232.41) (xy 50.8 232.41)) + (stroke (width 0) (type default)) + (uuid f82efb67-f1f1-46a2-8944-28351f4112f5) + ) + (wire (pts (xy 414.02 251.46) (xy 414.02 252.73)) + (stroke (width 0) (type default)) + (uuid fa81fea1-eb92-462e-a41c-e779b2c86ef0) + ) + (wire (pts (xy 317.5 231.14) (xy 340.36 231.14)) + (stroke (width 0) (type default)) + (uuid fcd32227-1eee-4945-b787-d3621a636a04) + ) + + (rectangle (start 123.19 321.31) (end 204.47 396.24) + (stroke (width 0) (type dash)) + (fill (type none)) + (uuid 0505742d-03aa-4256-8d49-5e9cbcb4ee9c) + ) + (rectangle (start 226.06 321.31) (end 337.82 396.24) + (stroke (width 0) (type dash)) + (fill (type none)) + (uuid 6570272f-bc21-46b1-bac7-5fd3a4508464) + ) + (rectangle (start 22.86 321.31) (end 104.14 396.24) + (stroke (width 0) (type dash)) + (fill (type none)) + (uuid 7e22e330-0a78-4ee5-a8fc-5d814061aed1) + ) + (rectangle (start 355.6 321.31) (end 421.64 396.24) + (stroke (width 0) (type dash)) + (fill (type none)) + (uuid b89c9225-706d-4592-9a3f-221cdc0d4088) + ) + (rectangle (start 22.86 222.25) (end 375.92 297.18) + (stroke (width 0) (type dash)) + (fill (type none)) + (uuid cfa71078-ee62-48e2-9f13-7f8bdeb90fdb) + ) + + (text "Usb" (at 355.6 321.31 0) + (effects (font (size 5 5)) (justify left bottom)) + (uuid 0d4f24e9-c288-4cb7-8a15-09341c1b9d4a) + ) + (text "Power" (at 226.06 321.31 0) + (effects (font (size 5 5)) (justify left bottom)) + (uuid 7d82dbb4-ae70-4674-af37-6d054e4f8883) + ) + (text "Motors" (at 22.86 321.31 0) + (effects (font (size 5 5)) (justify left bottom)) + (uuid 98df4266-2f77-4fb4-a11c-2b7efea8a903) + ) + (text "C = (15pF - 5pF)*2 = 20pF" (at 171.45 361.95 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid a7f8783d-5aea-45a0-be43-641bebbffa8f) + ) + (text "Crystal\n" (at 123.19 321.31 0) + (effects (font (size 5 5)) (justify left bottom)) + (uuid bc6df4e5-be64-495e-866f-11dd0d4b54b6) + ) + (text "Analog Multiplexer" (at 22.86 222.25 0) + (effects (font (size 5 5)) (justify left bottom)) + (uuid d0af7249-6aaf-47b1-bd9d-5615a3d528d4) + ) + + (label "SELECT0" (at 327.66 257.81 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 009f1095-9d7e-40cc-9a93-af38a23f7bdf) + ) + (label "BOOT0" (at 474.98 251.46 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 0298e59b-fe29-46ec-8311-92f766ae85b7) + ) + (label "AMUX0:7" (at 110.49 31.75 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 04fec737-d698-4e00-abce-eb60b95fb0e3) + ) + (label "ADC4" (at 508 264.16 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 07b0b07e-f1f2-4caa-bd9c-52d68a5c5447) + ) + (label "AMUX0:10" (at 63.5 269.24 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 087a08c7-8557-4df0-a69b-6aeea6b7e807) + ) + (label "AMUX2:1" (at 341.63 181.61 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 0955718f-e675-42d0-a036-aa00c3f6da38) + ) + (label "ADC0" (at 508 254 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 0c2c1954-0e87-42a5-8209-a95873618be4) + ) + (label "I2C_SDA" (at 443.23 292.1 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 0c4d1a2e-6604-498f-ac60-3f56e07f1882) + ) + (label "AMUX3:13" (at 374.65 181.61 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 0d56b880-a7ac-4f0c-a65a-f50ff8d2f871) + ) + (label "AMUX4:0" (at 506.73 181.61 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 0df0f35a-ca98-4299-96ce-f0a2f372ce22) + ) + (label "AMUX3:5" (at 276.86 255.27 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 0e3e03db-be22-435c-8e50-bf47193ff37f) + ) + (label "SWDIO" (at 508 279.4 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 1623d7e7-339a-4556-83dd-0e18feb7d4bc) + ) + (label "AMUX0:4" (at 63.5 254 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 16e27722-d705-46cd-8eae-3a85f4bed4af) + ) + (label "AMUX2:3" (at 341.63 106.68 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 1705acde-aea7-4ad4-b28c-c25ba8f57045) + ) + (label "AMUX2:4" (at 203.2 252.73 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 199437af-09db-4f4a-9413-421ff70a8bd2) + ) + (label "SELECT3" (at 474.98 309.88 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 1b0bcfdd-dfd9-4ce1-ba13-23608b51df59) + ) + (label "AMUX4:1" (at 506.73 81.28 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 1c9423cf-e2c4-4d2b-9a87-e55d41cee7a8) + ) + (label "AMUX2:13" (at 275.59 181.61 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 1d0f6965-fece-4d10-8d7b-e4462e90b49e) + ) + (label "AMUX0:12" (at 63.5 274.32 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 20c36826-2026-47e8-8107-e0f4e39d7d2b) + ) + (label "SELECT2" (at 474.98 307.34 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 22a8a050-3786-43ab-96bb-9bb3b62c1f86) + ) + (label "SELECT0" (at 104.14 259.08 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 235d4129-b813-409b-8b1b-0df3c757b508) + ) + (label "BOOT0" (at 416.56 251.46 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 239b8701-4577-4543-be57-509bdc40ff89) + ) + (label "AMUX3:12" (at 276.86 273.05 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 23d71f12-6e26-46f4-99d8-7af90c7681f7) + ) + (label "AMUX4:2" (at 506.73 31.75 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 23f4fc7b-62c9-4950-89d5-c3919a904b4f) + ) + (label "AMUX2:3" (at 203.2 250.19 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 268d6737-39a0-4e3a-8fd8-a44835dc32ca) + ) + (label "AMUX2:9" (at 203.2 265.43 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 268f6b53-5e38-44a5-94b3-d6cb93632103) + ) + (label "AMUX2:7" (at 341.63 31.75 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 27259ad8-3159-4cbf-9dcf-7f2c0fd910e6) + ) + (label "AMUX2:9" (at 308.61 31.75 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 28a9c6a8-0456-46bb-9d28-5ca5ae399e4f) + ) + (label "AMUX3:14" (at 407.67 106.68 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 2ae2d724-81b5-44d0-b7ee-931ccc766dba) + ) + (label "AMUX0:9" (at 77.47 68.58 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 2fa68123-fc13-4e8d-b56f-226455ca4ea5) + ) + (label "AMUX0:7" (at 63.5 261.62 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 34f1153c-11d6-4744-853d-050bf6c3b52c) + ) + (label "AMUX3:3" (at 482.6 144.78 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 35a62c6f-9a31-4c0c-a4db-5e343e832c69) + ) + (label "AMUX1:5" (at 129.54 256.54 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 35dd238b-f424-4179-b840-e81a0502ad32) + ) + (label "HSE_IN" (at 474.98 256.54 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 395175e6-b38f-408d-bac2-cb27bafd090a) + ) + (label "AMUX3:14" (at 276.86 278.13 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 3a08c5eb-badc-4a95-986d-f7abd9a80e42) + ) + (label "AMUX3:6" (at 473.71 31.75 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 3af5ea7d-4b29-46c2-b159-eb942e050eb4) + ) + (label "USB_D-" (at 508 274.32 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 3de1c534-264c-4dee-a15a-1754de81df9f) + ) + (label "AMUX1:8" (at 209.55 31.75 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 3e40e2e2-af05-4e3d-be24-8c47831fb58a) + ) + (label "AMUX0:8" (at 63.5 264.16 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 3f2f9395-0173-40c4-ab29-f8be8318a5a2) + ) + (label "AMUX1:7" (at 209.55 68.58 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 3f4093ff-fbad-4b2e-83c1-32d7915a0169) + ) + (label "AMUX0:13" (at 77.47 144.78 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 4036652e-fbea-43c5-a784-74cd19fa3596) + ) + (label "AMUX1:15" (at 129.54 281.94 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 41285f6a-c04b-4902-9a6f-f49a3f7b07ab) + ) + (label "AMUX2:12" (at 203.2 273.05 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 4277c45d-8f7c-462f-a326-51d2ba48e7d2) + ) + (label "AMUX1:0" (at 209.55 181.61 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 446e3fe1-9430-46b7-a387-36f681e1fa4d) + ) + (label "AMUX2:11" (at 275.59 68.58 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 44d044ec-7e47-4206-9ae8-755b510a8a24) + ) + (label "AMUX2:15" (at 203.2 280.67 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 44df7add-5746-4e78-b530-5f870015ab09) + ) + (label "AMUX3:8" (at 440.69 31.75 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 454fa436-5a63-474d-9728-53993a8a378c) + ) + (label "AMUX0:14" (at 77.47 106.68 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 46ac5ba4-987a-4648-bc7c-8bbb17823ef2) + ) + (label "AMUX1:9" (at 129.54 266.7 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 488d08ce-9198-4038-94a8-82e2b2acbe69) + ) + (label "ADC2" (at 508 259.08 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 4b1bda1c-13e5-453f-9372-f01cc0d6488f) + ) + (label "AMUX0:2" (at 110.49 106.68 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 4bac23a9-9d61-480d-b123-18c5b4c8e9a0) + ) + (label "AMUX2:0" (at 203.2 242.57 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 4bf372d8-14e1-4b92-ab7e-e5f89385aeb5) + ) + (label "AMUX3:2" (at 276.86 247.65 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 4e74a5e1-93f3-4399-8dd6-d5fc9672657b) + ) + (label "AMUX1:10" (at 176.53 68.58 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 4e86fab4-9d72-4436-bd40-3163f7df88c9) + ) + (label "SWCLK" (at 508 281.94 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 4f387cc2-71a3-4e21-a47d-6df2c66f3e82) + ) + (label "AMUX1:1" (at 129.54 246.38 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 4f53dad9-2706-4d4c-823d-3c407d9f2e6b) + ) + (label "AMUX1:0" (at 129.54 243.84 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 4fe6e080-9679-4854-9586-083b2b290440) + ) + (label "HSE_OUT" (at 474.98 259.08 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 50719065-fda1-4c64-8ea7-997b8f87756e) + ) + (label "SELECT3" (at 104.14 266.7 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 50b51400-1950-46f7-8f4e-e4052b68d4c4) + ) + (label "VBUS" (at 383.54 368.3 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 50e708f7-c165-4057-af11-7ad255ce4b6a) + ) + (label "ADC1" (at 508 256.54 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 521543d2-ec5c-4d43-8fd7-4a29fd6078db) + ) + (label "AMUX1:14" (at 176.53 106.68 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 5216076b-74ca-4659-b141-5b35711e87fd) + ) + (label "AMUX2:6" (at 374.65 31.75 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 5313f16c-33ec-4a58-969f-f3f980cc80f8) + ) + (label "ADC0" (at 38.1 248.92 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 55599017-e29c-4aad-b664-ceb6b46c3518) + ) + (label "AMUX0:2" (at 63.5 248.92 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 5625678a-6c94-45a6-a49f-b729824fd673) + ) + (label "SELECT1" (at 251.46 260.35 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 578371a8-8299-4afe-b719-edf2beded036) + ) + (label "SELECT2" (at 251.46 262.89 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 580044b2-7366-4a3c-9961-9d2e734410fa) + ) + (label "AMUX3:8" (at 276.86 262.89 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 59c20f6f-645a-49c6-a545-de81b6d645c8) + ) + (label "AMUX0:1" (at 120.65 181.61 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 59e04623-9f69-419d-b34d-27e66c34bf41) + ) + (label "SELECT1" (at 177.8 260.35 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 5b641491-419e-4fa7-94d3-39879bd6390c) + ) + (label "AMUX3:7" (at 440.69 68.58 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 5c015508-245c-4afa-a15c-185479f12f0c) + ) + (label "NRST" (at 431.8 251.46 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 5cbbc8dc-d1c9-40ea-8b64-bc35b0d9519b) + ) + (label "HSE_OUT" (at 165.1 353.06 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 5e45c446-bfea-40c7-97e7-e15dd244bade) + ) + (label "AMUX3:11" (at 374.65 106.68 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 600e6b08-285c-47db-9819-2456959cd8bd) + ) + (label "I2C_SCL" (at 474.98 289.56 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 606eaf35-f547-4591-87b0-1bb972297e5d) + ) + (label "AMUX2:2" (at 374.65 144.78 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 632e85ef-4197-46de-aa0c-91ae373d1cc2) + ) + (label "SELECT3" (at 327.66 265.43 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 648479f3-d04a-42d6-85f5-5593d78ce0cc) + ) + (label "AMUX0:11" (at 43.18 68.58 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 654e369c-de86-4af0-aae8-7a5022e4b717) + ) + (label "AMUX1:3" (at 129.54 251.46 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 65e086b2-b98c-406d-8ab4-83578c25750d) + ) + (label "AMUX1:13" (at 176.53 144.78 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 669d2c0b-d259-4c2f-84d2-965922cc0ede) + ) + (label "AMUX0:0" (at 63.5 243.84 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 66a35442-1566-4899-ac58-74e2a6fbe1ca) + ) + (label "AMUX1:8" (at 129.54 264.16 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 678f0fe4-6bbd-47c6-864c-993502b6e4f7) + ) + (label "AMUX0:14" (at 63.5 279.4 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 67af8568-f5c6-4fbb-804c-223ab1f33267) + ) + (label "ADC3" (at 251.46 247.65 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 68efe591-f5c9-4fe5-94af-b95fceac7c2a) + ) + (label "SELECT1" (at 104.14 261.62 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 696ea3f1-7622-49b0-9a3e-55183c3deac4) + ) + (label "AMUX2:14" (at 308.61 144.78 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 6ca39222-727b-43b7-a3bc-05dfd1253d31) + ) + (label "SELECT3" (at 38.1 266.7 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 6d0f6088-3d35-408b-93c6-3df7f0c65077) + ) + (label "SELECT0" (at 251.46 257.81 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 6d66cbf4-3ae9-4ad2-b3e2-59015940ae55) + ) + (label "AMUX3:11" (at 276.86 270.51 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 6f05e3e8-0c3e-4f30-9126-0da3c247b971) + ) + (label "AMUX3:4" (at 473.71 106.68 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 728aa9d3-1611-40f5-92c3-4e7404f23354) + ) + (label "AMUX2:2" (at 203.2 247.65 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 736b86e1-ac67-4442-8f5b-536e4f298ec3) + ) + (label "AMUX2:13" (at 203.2 275.59 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 74f3e2bc-4b1f-48f4-a21b-c4faad6a4374) + ) + (label "SELECT0" (at 474.98 302.26 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 777fe1b5-5161-428a-8db5-b3a9e49702d7) + ) + (label "AMUX0:6" (at 110.49 68.58 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 784fd078-d06b-47e6-837e-0cd6bf957ffe) + ) + (label "AMUX0:11" (at 63.5 271.78 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 7b8eadf7-f340-4396-acde-6fa37ff41a25) + ) + (label "AMUX3:9" (at 407.67 31.75 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 7bd1b14f-eca4-4603-9e71-2702b7a650cd) + ) + (label "AMUX1:7" (at 129.54 261.62 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 7de653cf-466c-407b-81d5-2989974d7f83) + ) + (label "AMUX1:9" (at 176.53 31.75 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 7e76749b-3eea-4333-954f-2b8305df9b4e) + ) + (label "AMUX3:15" (at 440.69 144.78 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 801c85de-ac68-4a59-b1bc-69dcf0e24075) + ) + (label "AMUX2:5" (at 341.63 68.58 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 80eb8833-a623-4634-8f19-eea7169a2265) + ) + (label "AMUX0:4" (at 143.51 68.58 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 816ade9a-f838-439c-bd60-a7eac6dd27cd) + ) + (label "I2C_SDA" (at 44.45 354.33 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 81ce6ea4-436a-44c4-aba7-b9cd88aaf17b) + ) + (label "AMUX1:1" (at 209.55 106.68 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 845630c0-3e83-43ff-b503-19f09b38f683) + ) + (label "SWDIO" (at 525.78 279.4 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 88ba67cd-1a25-454f-bdf5-2008f39710d9) + ) + (label "AMUX3:7" (at 276.86 260.35 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 8a1746a5-a96e-4e48-94af-ad9cc14ec2b0) + ) + (label "AMUX1:14" (at 129.54 279.4 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 8d49a538-419a-472a-a93c-dc1ea2c21f92) + ) + (label "AMUX3:10" (at 276.86 267.97 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 8decc143-2e71-423b-aca3-518532282b5b) + ) + (label "AMUX1:4" (at 242.57 106.68 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 8e93f0e6-0373-4b6d-aafd-27c6b1d25633) + ) + (label "AMUX1:13" (at 129.54 276.86 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 8fd60c7e-0794-48f9-94e4-d7fda640d051) + ) + (label "AMUX0:15" (at 63.5 281.94 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 90c9cd30-ce8f-4cd9-8b5c-ae3087bdd9f9) + ) + (label "AMUX1:6" (at 242.57 31.75 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 92ec73ae-1cf4-4ad5-9d66-07e2a1813515) + ) + (label "AMUX4:1" (at 353.06 245.11 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 9379f817-6616-45c9-a4c4-2c59c2380d3e) + ) + (label "USB_D+" (at 389.89 360.68 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 93c22085-d2c9-4bd9-868c-fbc57a885592) + ) + (label "AMUX3:3" (at 276.86 250.19 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 94eaed1c-d858-4569-b021-da623cd33e19) + ) + (label "AMUX2:11" (at 203.2 270.51 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 9aaf9998-9104-41b2-8f7f-6a4f7ce59164) + ) + (label "AMUX0:9" (at 63.5 266.7 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 9e01a9de-627a-483a-81e2-4bebdd6b3adb) + ) + (label "AMUX3:0" (at 440.69 181.61 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 9f0a8e42-8bb9-4ef0-b7f2-0099dd2fafa6) + ) + (label "AMUX1:2" (at 129.54 248.92 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid a10ee66a-2c24-4ce3-9015-a331d0b48650) + ) + (label "AMUX0:5" (at 63.5 256.54 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid a1c0d84c-e97a-4e21-8176-e2ad5c124bc2) + ) + (label "AMUX0:8" (at 77.47 31.75 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid a2ab10bb-580c-4467-9c02-f63890a5e5a9) + ) + (label "ADC2" (at 177.8 247.65 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid a4a139e6-8b9c-48e6-be5b-6228d3c40990) + ) + (label "AMUX0:10" (at 43.18 31.75 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid a517c1c6-33dc-4ead-9e9a-24c755263a4c) + ) + (label "AMUX2:15" (at 308.61 106.68 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid a78e68ea-1ea1-476a-a70a-1dd20216fb58) + ) + (label "USB_D-" (at 389.89 353.06 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid a7c20cc6-0103-467e-90b2-a2d40cfc79e2) + ) + (label "HSE_IN" (at 135.89 353.06 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid a952f362-91f3-4df5-bb1a-15ca0d33bddf) + ) + (label "AMUX2:6" (at 203.2 257.81 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid ab08e1bc-7551-4695-9da2-611324e37801) + ) + (label "AMUX1:12" (at 129.54 274.32 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid ab917fb1-5149-4b81-8eac-cb3490f5cad5) + ) + (label "AMUX1:4" (at 129.54 254 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid ad561c25-3ac2-40c4-8cd9-ffd24eef2b2d) + ) + (label "AMUX3:5" (at 473.71 68.58 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid adbdc883-b725-4918-9777-a46f4acc2563) + ) + (label "AMUX0:13" (at 63.5 276.86 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid ae2add8d-0508-4ca5-bc6f-ad381fe5c3dc) + ) + (label "I2C_SCL" (at 443.23 289.56 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid af2ba836-f5a8-4d9e-b8bf-9e34b1be07c2) + ) + (label "AMUX2:14" (at 203.2 278.13 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid b140fe2d-b57a-448c-9612-66dd1aa713e5) + ) + (label "VBUS" (at 383.54 345.44 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid b1db2fb0-3ba8-4bf4-ac7a-5a56e582b3fb) + ) + (label "AMUX0:12" (at 43.18 106.68 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid b22c238f-cc9c-4995-b0a5-ba72e579dc3a) + ) + (label "AMUX2:12" (at 275.59 106.68 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid b277d96c-5eb9-483d-a4d2-9b527cc5acb0) + ) + (label "ADC4" (at 327.66 247.65 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid b50e2689-4d76-4e0a-9092-2b37cc445184) + ) + (label "AMUX0:15" (at 77.47 181.61 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid b518620a-7b4f-4661-a12a-ffe0b542cd5c) + ) + (label "I2C_SCL" (at 44.45 356.87 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid b6d52637-a85b-4d40-a292-d2d8398389c4) + ) + (label "AMUX1:11" (at 129.54 271.78 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid bb6a0164-f1ca-4cdd-ad4f-adacabd5d3fc) + ) + (label "AMUX3:6" (at 276.86 257.81 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid bbdee7ad-1623-4802-bdde-b7bd7abccc83) + ) + (label "AMUX0:3" (at 63.5 251.46 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid bcbcff1d-d4be-4d5e-bab8-7ece8fd8046f) + ) + (label "SELECT3" (at 251.46 265.43 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid bce38d00-80c2-42a1-9183-d1f4bbab1a56) + ) + (label "ADC3" (at 508 261.62 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid bde14ebc-a527-4315-8280-ae1ed5e56324) + ) + (label "AMUX1:10" (at 129.54 269.24 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid bf258fcb-84ee-446e-ac14-ffc13101e805) + ) + (label "AMUX3:1" (at 276.86 245.11 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid c10ad665-c664-4cd5-9986-d61c775d8b1f) + ) + (label "AMUX1:3" (at 275.59 144.78 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid c2d335e2-8a12-42dd-9e0c-5b348490f637) + ) + (label "AMUX2:4" (at 374.65 68.58 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid c2d7c0ec-d1cd-4b40-8762-152bfc587bea) + ) + (label "AMUX2:10" (at 203.2 267.97 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid c2e493c7-3925-44c8-8b48-50022a5c2606) + ) + (label "SELECT2" (at 177.8 262.89 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid c4c42947-20ac-4430-8d29-f1461e170fd0) + ) + (label "SELECT1" (at 327.66 260.35 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid c52f4dc0-e072-4e00-b0ef-c6044bbb68d8) + ) + (label "AMUX2:1" (at 203.2 245.11 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid c766f862-de23-44f4-9f31-a3a7b5214405) + ) + (label "AMUX3:4" (at 276.86 252.73 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid ccec42fb-75c8-4661-a8a1-83d1c505632f) + ) + (label "AMUX0:0" (at 110.49 144.78 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid ce0713ea-145e-4544-aa64-9a206969f5c6) + ) + (label "AMUX1:2" (at 242.57 144.78 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid cee81291-7206-48c6-a107-fef39a78646f) + ) + (label "SELECT1" (at 38.1 261.62 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid cf23fb93-5543-498a-8304-c078614b6ed2) + ) + (label "AMUX4:2" (at 353.06 247.65 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid d094034d-7ef9-4851-a549-76dca76b6ccf) + ) + (label "SELECT2" (at 104.14 264.16 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid d1eec2e4-6679-432e-bac5-bc95783081c4) + ) + (label "AMUX2:10" (at 275.59 31.75 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid d2a07c12-fc21-4783-b023-14ea78cc2363) + ) + (label "AMUX3:10" (at 407.67 68.58 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid d2c853f2-3ca8-4f00-8118-944ae1793cce) + ) + (label "USB_D+" (at 508 276.86 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid d2c8b1aa-3cf0-4a3b-bb1b-0a69335ee2d5) + ) + (label "AMUX0:3" (at 143.51 144.78 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid d2db3546-4d67-429b-abae-82e9b1443e2d) + ) + (label "SELECT2" (at 38.1 264.16 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid d4a87417-3bea-48a2-a68f-5695eb64a839) + ) + (label "AMUX1:15" (at 209.55 144.78 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid d5d6d742-b89a-4915-b06b-b570475d7477) + ) + (label "SELECT3" (at 177.8 265.43 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid d6758d72-ea71-4a8c-9e49-d66b65816784) + ) + (label "AMUX0:6" (at 63.5 259.08 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid db5db617-6731-44f5-8913-83629c075970) + ) + (label "AMUX3:15" (at 276.86 280.67 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid dfc27119-1701-4770-80ec-61902b3c6cd0) + ) + (label "NRST" (at 474.98 246.38 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid e13c6871-63f1-4ec2-87e1-946973d7527d) + ) + (label "AMUX2:0" (at 341.63 144.78 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid e1f1a847-1f4b-4284-89be-105915d5296c) + ) + (label "VBUS" (at 241.3 344.17 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid e255748f-f988-4f8b-9ffc-782aa4ab9c75) + ) + (label "AMUX1:12" (at 153.67 181.61 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid e5cc6568-83dc-4df5-b3d4-22f067d8617c) + ) + (label "SELECT2" (at 327.66 262.89 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid e67e64dd-4567-4e22-a7f5-07436b53a74b) + ) + (label "AMUX3:0" (at 276.86 242.57 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid e6b4f419-0ee1-48a4-84b9-03f8200a0ca9) + ) + (label "AMUX0:5" (at 143.51 31.75 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid e73ffccf-9b6c-4153-9c15-9f71d1019c19) + ) + (label "SWCLK" (at 525.78 281.94 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid e7d0f879-7b1a-48c0-b090-f1d0a7a5e1ec) + ) + (label "AMUX4:0" (at 353.06 242.57 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid ed25b77a-780d-458a-9c02-5824f1efb90a) + ) + (label "AMUX1:5" (at 242.57 68.58 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid ed540adb-2937-4dc8-9279-70a3b9c74dbe) + ) + (label "SELECT1" (at 474.98 304.8 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid ef0e15bf-6d81-499a-a13e-8b06251843fe) + ) + (label "AMUX1:11" (at 143.51 106.68 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid ef2b49f5-096c-40ae-8392-e140e02eb940) + ) + (label "AMUX2:7" (at 203.2 260.35 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid ef8e7178-6645-4c37-a428-081fc20c7d0c) + ) + (label "AMUX1:6" (at 129.54 259.08 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid efd6ba85-75c5-40d6-b2c8-d16ccd0fe08d) + ) + (label "AMUX2:5" (at 203.2 255.27 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid f268e970-8454-4052-b881-504ebd2cf29c) + ) + (label "AMUX2:8" (at 203.2 262.89 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid f30f99f4-270c-46b6-a55c-d53e85f539c9) + ) + (label "SELECT0" (at 38.1 259.08 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid f593afd2-4cad-49f9-b810-6c3a494ca8be) + ) + (label "SELECT0" (at 177.8 257.81 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid f5b7c080-608d-4abb-aa66-34ae88ab2be7) + ) + (label "AMUX3:13" (at 276.86 275.59 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid f5d4fef2-372b-4c39-9da8-14275fce883e) + ) + (label "AMUX3:2" (at 473.71 181.61 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid f848a4e6-101f-496b-b0b3-364e39221b7c) + ) + (label "I2C_SDA" (at 474.98 292.1 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid f98cbecd-b56d-42b7-a335-939a44aa4750) + ) + (label "ADC1" (at 104.14 248.92 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid fabbc1b4-d0f5-435d-bbe5-d38c8f6ca7a6) + ) + (label "AMUX3:12" (at 407.67 144.78 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid fc50e4d2-ea23-45b5-b4ac-ab6cee15c2b5) + ) + (label "AMUX3:9" (at 276.86 265.43 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid fc918aed-baf3-4844-8a26-d7cb05258e02) + ) + (label "AMUX2:8" (at 308.61 68.58 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid fd30ae61-adfc-4925-8136-fc49447e4088) + ) + (label "AMUX3:1" (at 440.69 106.68 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid ff48218a-97a9-465c-80d9-22e22670b928) + ) + (label "AMUX0:1" (at 63.5 246.38 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid fff25e4d-bce0-44c2-a6eb-02952f334e06) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 334.01 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 0052e6f0-8f49-4f17-bc15-e9e65eab13f1) + (property "Reference" "U25" (at 327.66 67.3099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 327.66 69.8499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 334.01 77.47 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 334.01 52.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 334.01 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7a4484fd-ac1b-4b12-979b-e0ee693ebd27)) + (pin "2" (uuid 0437695c-ab64-4f65-a80f-730603f7b0db)) + (pin "3" (uuid b4942a3f-fd24-4a2c-9e39-c6723f64fca7)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U25") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 331.47 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 018fd442-9390-4423-a86b-3dad659940e2) + (property "Reference" "#PWR070" (at 331.47 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 331.47 91.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 331.47 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 331.47 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5028d3c4-cbb6-4392-8743-336bc9a78f58)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR070") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 232.41 21.59 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 0297e161-35cc-408e-a5a1-bc90028699b0) + (property "Reference" "#PWR07" (at 232.41 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 232.41 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 232.41 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 232.41 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e0d3fc0d-40d7-47cb-b7fa-ce452916c389)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR07") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 166.37 78.74 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 02a3e917-8c5d-46ef-aa80-b1df014d9d23) + (property "Reference" "#PWR050" (at 166.37 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 166.37 83.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 166.37 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 166.37 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7547a5f2-a4ef-448c-8455-f58acc911a9c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR050") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 133.35 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 03a7805a-6c10-4a68-a758-8b803bd85f96) + (property "Reference" "#PWR0104" (at 133.35 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 133.35 160.02 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 133.35 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 133.35 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 1a6e4262-82b2-4db6-a1e1-113b5e01e500)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0104") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 527.05 231.14 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 03aa7a73-1d0b-44d3-b837-940d7c63ad8a) + (property "Reference" "C7" (at 530.86 229.87 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "1u" (at 530.86 232.41 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (at 528.0152 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 527.05 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C52923" (at 527.05 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 35082b27-24ba-4953-9ab4-5dacefa5a118)) + (pin "2" (uuid 22a800ce-eb98-4216-8801-d62a2a1ba0c2)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C7") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 415.29 378.46 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 0467157b-b117-4a9d-8003-a55245fe5a95) + (property "Reference" "#PWR0169" (at 415.29 384.81 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 415.29 383.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 415.29 378.46 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 415.29 378.46 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 40f595c1-a7f4-4f68-ad2a-e8f25d3d8fbf)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0169") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 149.86 368.3 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 079fbece-babf-45d9-9b8c-c79ffa899215) + (property "Reference" "#PWR0164" (at 149.86 374.65 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 149.86 373.38 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 149.86 368.3 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 149.86 368.3 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 776356fd-79b8-4bb5-9cfe-5ddbaf4ca9c6)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0164") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "74xx:CD74HC4067SM") (at 190.5 260.35 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 083dfcb0-f076-4082-a3ce-cfdc7b4ecb3d) + (property "Reference" "AMUX2" (at 192.6941 233.68 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "CD74HC4067SM" (at 192.6941 236.22 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_SO:SSOP-24_5.3x8.2mm_P0.65mm" (at 217.17 285.75 0) + (effects (font (size 1.27 1.27) italic) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf" (at 181.61 238.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C179326" (at 190.5 260.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a3666124-608f-44cb-89a3-3b5365baadb3)) + (pin "10" (uuid 5b4d1f45-be7b-4aef-9544-9857a2c5cca3)) + (pin "11" (uuid f2f2c03b-7ad8-4329-8fcf-457070fdf4f9)) + (pin "12" (uuid 68945e59-f57a-41a3-b4f0-bcab4fe39441)) + (pin "13" (uuid 528d19a2-95cc-448b-8974-647d20f3862a)) + (pin "14" (uuid 8ae1e7ac-3ee4-45f4-8113-8070aef105d8)) + (pin "15" (uuid 72df1e39-f8b5-41c0-a7bb-6e850fe8f174)) + (pin "16" (uuid d18a6e79-7104-415e-978b-581868df2b17)) + (pin "17" (uuid 383319c1-dd61-41d4-9599-cdf7849fa3be)) + (pin "18" (uuid 423dc433-ed2f-4a52-a120-ea257d66e324)) + (pin "19" (uuid feee7e6c-3ce7-43e1-952e-66295858f1b2)) + (pin "2" (uuid 42d26dcc-cb36-4554-b8c8-d7507dc716cd)) + (pin "20" (uuid 49423833-4e9f-44d6-b92b-684080c610f6)) + (pin "21" (uuid 2cb08519-0b5c-4af9-8a1e-7205d468e32c)) + (pin "22" (uuid d444f65d-f1a4-4ebf-a149-1f79aca735a5)) + (pin "23" (uuid 11b66c33-ce4f-4c6a-81ef-35461fe997a7)) + (pin "24" (uuid bc38a5e0-0fde-49e3-9003-7abfcf6a1f2e)) + (pin "3" (uuid 8a9ad014-8c57-44d3-89f5-f497c9778468)) + (pin "4" (uuid 37ccfd39-19d4-4017-9a5e-07cb4bada361)) + (pin "5" (uuid e0a5ede1-0a45-4b5b-8de9-da77fcb2afa6)) + (pin "6" (uuid a35ecfea-f561-4af0-8579-73b7d494bde9)) + (pin "7" (uuid 5e3d4896-ba98-441a-921c-ce207a0bb69e)) + (pin "8" (uuid afd68cbd-7249-4b81-a67a-296c2607b4a7)) + (pin "9" (uuid d2e4b104-d41b-4a84-a8f4-fd6a71e34e99)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "AMUX2") (unit 1) + ) + ) + (project "macrolev" + (path "/4edfdb67-213e-423d-a4d4-209978eccf9d" + (reference "AMUX1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 33.02 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 0afa1b72-974e-44b6-93b9-ede473c36511) + (property "Reference" "#PWR061" (at 33.02 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 33.02 91.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 33.02 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 33.02 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 4e1baad0-ad34-426f-b943-7ddce5594d13)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR061") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 234.95 106.68 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 0b2cbea5-4da9-46a4-bbef-184789a2ea10) + (property "Reference" "U37" (at 228.6 105.4099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 228.6 107.9499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 234.95 115.57 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 234.95 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 234.95 106.68 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid dbc09465-30ba-42d5-9e41-1c6f94d2aca6)) + (pin "2" (uuid f28c241a-e897-4e98-b7af-63f1a4da68da)) + (pin "3" (uuid 2a161e1e-e68b-4ed4-9c17-4dd777966ab8)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U37") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 135.89 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 0b2fd705-968c-4c96-b545-76fe267df900) + (property "Reference" "U19" (at 129.54 67.3099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 129.54 69.8499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 135.89 77.47 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 135.89 52.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 135.89 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 028ea035-07d1-4db5-bdd6-951e9e1cbb36)) + (pin "2" (uuid d0cd2732-349b-4cf5-a03b-bce126480650)) + (pin "3" (uuid 869ef6e8-b141-4a7f-a0c0-8a27f699f7d5)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U19") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 168.91 144.78 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 0c18fb44-40c9-432a-bace-a76015bae0f9) + (property "Reference" "U48" (at 162.56 143.5099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 162.56 146.0499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 168.91 153.67 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 168.91 128.27 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 168.91 144.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 899405ce-3a3a-4311-9aa7-d265ddd2e751)) + (pin "2" (uuid 13d40716-bd65-4f05-940b-bfcf31dd1dd0)) + (pin "3" (uuid 2899208f-d4ee-4ab3-a57e-3a577adac7ae)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U48") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 135.89 106.68 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 0f57860d-9dfa-438f-8f53-64fa2e78769a) + (property "Reference" "U34" (at 129.54 105.4099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 129.54 107.9499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 135.89 115.57 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 135.89 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 135.89 106.68 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 19d3cd11-20d4-4b53-82da-6e9043109aac)) + (pin "2" (uuid 73b8fcaf-c241-4751-a85a-e2b073584882)) + (pin "3" (uuid 0ebb9ee4-d578-4c77-933e-4de1e0a91567)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U34") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 102.87 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 0f94e3cd-3515-4088-8c9c-bfc9c54baacc) + (property "Reference" "U18" (at 96.52 67.3099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 96.52 69.8499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 102.87 77.47 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 102.87 52.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 102.87 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 495b975e-df90-4eb8-b1f5-0f637d5d64c9)) + (pin "2" (uuid 97bb4a1d-49e4-48c6-9348-8170b3f2baa8)) + (pin "3" (uuid 2b49c5d8-3caf-4bd8-bf44-c7066e8e1865)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U18") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 166.37 21.59 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 10ca3b94-4a4d-4b54-82c9-104da2af71ff) + (property "Reference" "#PWR05" (at 166.37 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 166.37 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 166.37 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 166.37 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid f9aa01c2-0a2c-406a-a586-e27ea2570399)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR05") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 298.45 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 1217abdc-81cd-463d-9bb2-9f03379912b0) + (property "Reference" "#PWR024" (at 298.45 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 298.45 46.99 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 298.45 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 298.45 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid cf39e86c-8b88-428b-8e65-d74b29b6b3c2)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR024") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 433.07 144.78 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 12f70b7c-0267-41a5-be8b-b37dbfb89ebd) + (property "Reference" "U56" (at 426.72 143.5099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 426.72 146.0499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 433.07 153.67 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 433.07 128.27 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 433.07 144.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 21eeba83-3fe6-4ac4-89e6-ab47292401e7)) + (pin "2" (uuid dbdf1bff-cfb4-4907-b36d-01a16fa4064e)) + (pin "3" (uuid 7377ec5c-5067-4ed0-b4a4-c3a515bccfb8)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U56") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 166.37 58.42 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 13103b32-bbb3-4e2d-bfcc-2fa40e97d8ec) + (property "Reference" "#PWR035" (at 166.37 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 166.37 53.34 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 166.37 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 166.37 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d232ac6b-b5fe-44f0-8586-4cc51de7c31e)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR035") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 39.37 364.49 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 1388b4b2-e7cc-4462-85f4-8f69f3011ea3) + (property "Reference" "#PWR0166" (at 39.37 368.3 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 39.37 359.41 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 39.37 364.49 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 39.37 364.49 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0482b5f9-86c5-4cfb-a500-b51f1c918a75)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0166") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 67.31 78.74 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 13af938a-08ce-4c5e-9c1a-a02bdfc7630a) + (property "Reference" "#PWR047" (at 67.31 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 67.31 83.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 67.31 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 67.31 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 52d6261c-947d-4e74-8227-7d94e60333c8)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR047") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 298.45 21.59 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 13c6bf35-33ba-4bfb-84f2-7f692e23afff) + (property "Reference" "#PWR09" (at 298.45 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 298.45 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 298.45 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 298.45 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 2dad68fa-7f60-48a9-8359-59c929da8169)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR09") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 527.05 237.49 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 13ea984f-3592-43c4-b049-bc5406d3cd45) + (property "Reference" "#PWR0151" (at 527.05 243.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 527.05 242.57 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 527.05 237.49 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 527.05 237.49 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 85f9c775-dd90-4ef3-8fd4-a3624993b625)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0151") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 317.5 234.95 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 16010783-7fe1-4e53-a1a8-1672c557c6bc) + (property "Reference" "C16" (at 321.31 233.68 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100n" (at 321.31 236.22 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (at 318.4652 238.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 317.5 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C1525" (at 317.5 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 17e67179-b7e1-45f8-bc2d-a542ec1b7d6a)) + (pin "2" (uuid f0ccc760-480c-4e1b-addc-36b27d81dcbc)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C16") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 490.22 325.12 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 1685df29-b050-46fe-b489-4763cb6e3b38) + (property "Reference" "#PWR0119" (at 490.22 331.47 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 490.22 330.2 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 490.22 325.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 490.22 325.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ead3981e-7f70-4db7-b7aa-882328e92b54)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0119") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 496.57 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 169936f7-d905-4a45-8ea7-da9cc83f5b34) + (property "Reference" "#PWR030" (at 496.57 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 496.57 46.99 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 496.57 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 496.57 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 69fe3b3d-2703-49e4-b121-d6d87fdfc457)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR030") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "MCU_ST_STM32F4:STM32F411CEUx") (at 490.22 281.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 180d8677-3911-46f7-bac7-d472e763e7c6) + (property "Reference" "U69" (at 477.52 242.57 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "STM32F411CEU6" (at 495.3 322.58 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mm" (at 477.52 320.04 0) + (effects (font (size 1.27 1.27)) (justify right) hide) + ) + (property "Datasheet" "https://www.st.com/resource/en/datasheet/stm32f411ce.pdf" (at 490.22 281.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C60420" (at 490.22 281.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d6f9cd73-cfdd-4828-ae3e-ea8663e8c4aa)) + (pin "10" (uuid fd95fbd8-30df-43c6-b84e-cfc8c44c03fc)) + (pin "11" (uuid 7d4f8d86-0b84-4629-a07a-a07dcff3bacd)) + (pin "12" (uuid 45272ef7-d009-4128-bced-7ca29ebf7c03)) + (pin "13" (uuid 3564ed9f-42b7-4483-8a0e-c4ef4154cf0a)) + (pin "14" (uuid fb2afd29-72b5-4e02-a10a-2ef23817a92c)) + (pin "15" (uuid e1bf69c9-fd6f-4448-a366-e85e4d786d4d)) + (pin "16" (uuid e88cd3fd-957a-4b86-b824-0afc46825403)) + (pin "17" (uuid f9f50d95-72fc-4932-af93-45fe93f729a1)) + (pin "18" (uuid 7acbeabe-2e9e-4223-8ed1-53a0e3eecad0)) + (pin "19" (uuid d2967b82-bad3-46e3-aea0-1b5bf50418a4)) + (pin "2" (uuid 9a3b1f1e-0474-4d6e-9671-d07bacbd94a5)) + (pin "20" (uuid c565e746-391a-4db8-a6a3-fabf9eff7874)) + (pin "21" (uuid 695d04f1-e40e-4ac3-8f88-f57aa141bcf3)) + (pin "22" (uuid a9ba14bd-d3c5-4608-ac18-86e459dca41e)) + (pin "23" (uuid 3d507e4f-42e0-4c54-a14b-97911b3d49da)) + (pin "24" (uuid 6275a4c3-325f-469b-866c-a8863af772f0)) + (pin "25" (uuid 4b3a7653-ed91-45f1-8b91-c355da3bb004)) + (pin "26" (uuid 2dda0365-7d79-42d1-9d6d-56de68dd5c18)) + (pin "27" (uuid 17070f20-0b8a-46b6-b928-9648165033af)) + (pin "28" (uuid 52feb0aa-b08d-41f9-85f7-a86a0e29ad9c)) + (pin "29" (uuid a5b65d33-5879-4583-9fb8-8e83bd54d6fb)) + (pin "3" (uuid e10a9e36-672c-472e-bff9-be01002290ff)) + (pin "30" (uuid 642b1196-86e5-4740-8e71-f4de3d403a76)) + (pin "31" (uuid 6dac29fa-a5f7-42fb-9e6f-139bba8cca0e)) + (pin "32" (uuid ff1a02d6-00e0-4c99-a9bc-d2eadf9805e7)) + (pin "33" (uuid c7d48a4d-beab-454b-8150-e2956832bbcb)) + (pin "34" (uuid 2d511238-06f9-4e39-a85f-69bf5f65a5f7)) + (pin "35" (uuid 66e3fa00-d0f4-44b9-a56b-94bac2e80636)) + (pin "36" (uuid 1f92f51f-7694-4467-aa36-852bf8c2518b)) + (pin "37" (uuid e60dab53-ec94-4378-8071-e62b42e11f12)) + (pin "38" (uuid a023352b-5219-4df6-add6-12ce5e2cf031)) + (pin "39" (uuid a7fcaf18-2999-4adb-8941-aad320256f84)) + (pin "4" (uuid 447bb19c-abe2-4b65-b02b-ec2e6556cf66)) + (pin "40" (uuid ecce5f2c-1ff2-4d52-81b4-cf527c73257f)) + (pin "41" (uuid ad09abd3-0aa0-49c6-ad62-eb9329cda71c)) + (pin "42" (uuid e8f3ae7d-61d5-4a7b-b5ae-9c5a2eba946a)) + (pin "43" (uuid 677da4ab-1755-47b4-b89c-402663b22989)) + (pin "44" (uuid 53facf25-5972-4f74-9be8-89b3f8185bee)) + (pin "45" (uuid 8729d399-d8f8-4479-8265-dc718f384ce2)) + (pin "46" (uuid 2ae12fd3-0a8f-416a-be43-f97ced9d57a4)) + (pin "47" (uuid c139b995-53ce-49a3-b6d3-88fe613ac289)) + (pin "48" (uuid 148bca19-6fdb-48da-8e19-27f53a82e640)) + (pin "49" (uuid 6ce1966f-f024-4273-bf93-c50d1a198760)) + (pin "5" (uuid 37a5f70c-394c-4ba2-9b9d-1537d468e68f)) + (pin "6" (uuid a846e905-5895-4e46-a698-607f93abe84f)) + (pin "7" (uuid 02a01258-3cb1-4600-a068-b44bd7b3c7d2)) + (pin "8" (uuid 969be908-54e0-4804-8669-5f34ac2e057c)) + (pin "9" (uuid 2d3bd5cf-3648-44c6-8357-e1bcce59b79d)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U69") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 71.12 346.71 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 18a70dd7-1385-4a3d-8099-d442d7c81f35) + (property "Reference" "#PWR0154" (at 71.12 353.06 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 71.12 351.79 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 71.12 346.71 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 71.12 346.71 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid f013e90f-651a-4938-bd63-b55765d2c09e)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0154") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 397.51 134.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 18c33eeb-1d50-4de1-994e-fd2b17085cd3) + (property "Reference" "#PWR099" (at 397.51 138.43 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 397.51 129.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 397.51 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 397.51 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6330970d-7e94-41f1-b91f-aa92925af89b)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR099") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 100.33 78.74 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 192395ec-30a0-4b57-8d01-5f6e6a664ab5) + (property "Reference" "#PWR048" (at 100.33 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 100.33 83.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 100.33 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 100.33 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid cfe447a9-ce71-45de-bba7-e93ad224aa1c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR048") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 33.02 21.59 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 19ac0d96-9368-42b5-aa4d-23164e5d00ba) + (property "Reference" "#PWR01" (at 33.02 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 33.02 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 33.02 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 33.02 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid bdc4e7ad-6206-4094-8fb3-eb70944bfe43)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR01") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 102.87 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 19d62190-2fbd-4c03-a6ae-e3d75b9062aa) + (property "Reference" "U3" (at 96.52 30.4799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 96.52 33.0199 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 102.87 40.64 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 102.87 15.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 102.87 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5bb96a1f-edd0-4296-a175-13e78a15291f)) + (pin "2" (uuid 05d84b00-f768-4466-9184-699a35d990b4)) + (pin "3" (uuid 6c90bdcc-055a-4c5e-9969-77fc19c630d8)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U3") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 265.43 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 19e0bfe8-aa96-4884-95eb-9d41194f3a19) + (property "Reference" "#PWR068" (at 265.43 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 265.43 91.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 265.43 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 265.43 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 70de8741-1ddb-4b34-ac63-e893ecfa3cb0)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR068") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 430.53 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 1b4799a8-5643-47b3-8bbf-aa2f2b4f8bdb) + (property "Reference" "#PWR0113" (at 430.53 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 430.53 160.02 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 430.53 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 430.53 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 48f93ac5-5dd2-4aed-9807-99b8d431dea2)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0113") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 499.11 81.28 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 1ba600b9-7741-4a69-a5a2-1d691f9ad1d9) + (property "Reference" "U30" (at 492.76 80.0099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 492.76 82.5499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 499.11 90.17 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 499.11 64.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 499.11 81.28 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e481e395-8a52-4349-8fff-49d3b651858a)) + (pin "2" (uuid 7d687851-058a-413c-bf6d-ca36bd4d886c)) + (pin "3" (uuid f0487aad-071a-4401-a4d6-c2cb8aa9f589)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U30") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 69.85 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 1d21793e-f5e2-4e80-99d1-86ad5ec68710) + (property "Reference" "U2" (at 63.5 30.4799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 63.5 33.0199 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 69.85 40.64 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 69.85 15.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 69.85 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid af8da9d8-9c2c-4f06-be94-c3be6c24ba31)) + (pin "2" (uuid 58593a32-52a1-4085-930b-85268dffd59d)) + (pin "3" (uuid f077a881-1257-4680-92be-d547c51d1ca7)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U2") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:R") (at 457.2 280.67 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 1d3ae981-e214-48d8-9118-479fde200dc5) + (property "Reference" "R2" (at 459.74 279.4 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "2.2K" (at 459.74 281.94 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder" (at 455.422 280.67 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 457.2 280.67 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C25862" (at 457.2 280.67 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid fe53bc98-515e-4590-966b-7ad41b597a68)) + (pin "2" (uuid acf37e06-be10-4798-ace6-fc0a0cebe72d)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "R2") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 400.05 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 1d3f44de-26fc-460c-90d2-5f356d228261) + (property "Reference" "U12" (at 393.7 30.4799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 393.7 33.0199 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 400.05 40.64 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 400.05 15.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 400.05 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e3c44595-ec5d-4ecc-84de-5862135e3df2)) + (pin "2" (uuid 6ead36d6-8675-4fb6-bbd1-c7f5d0b08c54)) + (pin "3" (uuid 7d345b50-dd34-4431-84a7-1293e40b2877)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U12") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 430.53 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 1d844345-1d83-46e6-ad14-dbbb0813ccc7) + (property "Reference" "#PWR073" (at 430.53 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 430.53 91.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 430.53 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 430.53 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 87ac7d45-af70-49b7-bdc5-b2d98e1abdfc)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR073") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 199.39 134.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 1dab78e8-eb63-409e-96e3-5cc384ad86cb) + (property "Reference" "#PWR093" (at 199.39 138.43 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 199.39 129.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 199.39 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 199.39 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e908fcfa-9d59-4d66-8e1e-c6066be0de11)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR093") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 397.51 116.84 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 1f1cb4ff-6e38-46c5-844c-5da62b2f3f1f) + (property "Reference" "#PWR086" (at 397.51 123.19 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 397.51 121.92 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 397.51 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 397.51 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e034c99c-9972-492c-afc0-ee4b3c6ba33c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR086") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Mechanical:Fiducial") (at 537.21 369.57 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 210b6c6e-a447-4af3-996a-8c56b81ebaa3) + (property "Reference" "FID1" (at 539.75 368.3 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "Fiducial" (at 539.75 370.84 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Fiducial:Fiducial_1mm_Mask3mm" (at 537.21 369.57 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 537.21 369.57 0) + (effects (font (size 1.27 1.27)) hide) + ) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "FID1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 33.02 116.84 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 21cf3b8e-f833-4e6f-ad29-115da49917f9) + (property "Reference" "#PWR075" (at 33.02 123.19 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 33.02 121.92 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 33.02 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 33.02 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid fca2e826-fe27-41fd-9d89-4efd650763db)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR075") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 472.44 134.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 234d98f8-159d-45fa-abb9-1efe064dd566) + (property "Reference" "#PWR0101" (at 472.44 138.43 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 472.44 129.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 472.44 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 472.44 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 8bc75669-50c5-4e64-b325-def4607b1ede)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0101") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 166.37 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 2488a4d5-7e12-46e5-8d54-743ad7526fa7) + (property "Reference" "#PWR020" (at 166.37 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 166.37 46.99 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 166.37 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 166.37 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 9cb12140-9261-4c01-81d3-47530d7bd99f)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR020") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 331.47 191.77 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 24ccd845-3fa1-456f-8cb2-13710aa73e5c) + (property "Reference" "#PWR0132" (at 331.47 198.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 331.47 196.85 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 331.47 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 331.47 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 70672e8f-9867-4d62-8462-8cabda52a90e)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0132") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 397.51 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 262b7d38-c7a1-4a80-a2f1-711b417b8199) + (property "Reference" "#PWR0112" (at 397.51 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 397.51 160.02 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 397.51 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 397.51 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 9f0d183b-0332-47a4-a8ad-49b9b93ca0b1)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0112") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 110.49 171.45 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 2716854c-3e04-4828-a0b6-c09bc4fbe3fc) + (property "Reference" "#PWR0116" (at 110.49 175.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 110.49 166.37 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 110.49 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 110.49 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6b5bbd38-46db-4242-a8f7-08daf511a54c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0116") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 265.43 58.42 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 279de932-705c-445d-97c6-a8d50baf3452) + (property "Reference" "#PWR038" (at 265.43 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 265.43 53.34 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 265.43 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 265.43 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7b1c2826-b6ed-4532-8c6c-60fa257f1fde)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR038") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:FerriteBead") (at 246.38 344.17 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 287d3877-c861-43ea-b335-88a6ebf95813) + (property "Reference" "FB2" (at 246.3292 336.55 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "120R" (at 246.3292 339.09 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Inductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolder" (at 246.38 345.948 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 246.38 344.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C76892" (at 246.38 344.17 90) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d3022267-b836-484d-99d0-3a4d90062d2e)) + (pin "2" (uuid b2edb54f-2a62-4d47-8f1c-35fc9dd0efe2)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "FB2") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 133.35 78.74 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 28fdfc4f-9525-47d5-92d1-552d63b68c7f) + (property "Reference" "#PWR049" (at 133.35 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 133.35 83.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 133.35 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 133.35 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 50153ab3-25c0-43e2-9ca1-86e5cdefadb8)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR049") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 257.81 349.25 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 29e948fc-0bcd-4b04-a04a-f3765023e6da) + (property "Reference" "C10" (at 251.46 347.98 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "22u" (at 250.19 350.52 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder" (at 258.7752 353.06 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 257.81 349.25 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C45783" (at 257.81 349.25 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6381bb39-2adf-4fe3-9f24-d5b90242ffaf)) + (pin "2" (uuid f18a7415-3a91-43e8-bd51-cc748c3e2a5c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C10") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 525.78 287.02 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 2a188d36-0485-473d-a86b-5241344dbc24) + (property "Reference" "#PWR0171" (at 525.78 293.37 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 525.78 292.1 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 525.78 287.02 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 525.78 287.02 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5b6dfff3-2063-4a37-87ab-b76db5b10603)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0171") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 400.05 106.68 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 2d8012d1-6766-4ef0-a0f4-5739cba3b53f) + (property "Reference" "U42" (at 393.7 105.4099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 393.7 107.9499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 400.05 115.57 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 400.05 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 400.05 106.68 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid f9457683-375e-4eee-a86e-2a040aae4d67)) + (pin "2" (uuid c8fb7a61-846e-4982-80f1-4f061277e4c4)) + (pin "3" (uuid f9a9f745-1ff5-468a-ad37-d851d9abe348)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U42") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 430.53 191.77 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 2e06433e-cdf9-4cc2-aed0-afef1abb0a2c) + (property "Reference" "#PWR0134" (at 430.53 198.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 430.53 196.85 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 430.53 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 430.53 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid f5ee0924-e216-4caa-bbfb-f479b0dbd9a4)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0134") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:PWR_FLAG") (at 278.13 383.54 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 308d806f-d8be-43f6-b555-2685822ad0d6) + (property "Reference" "#FLG01" (at 278.13 381.635 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "PWR_FLAG" (at 278.13 378.46 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 278.13 383.54 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 278.13 383.54 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ffde1c03-3462-486b-bd4d-886a5e773b13)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#FLG01") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 267.97 181.61 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 30e243d0-c4b6-4c55-8227-e4ee7cf03d7e) + (property "Reference" "U62" (at 261.62 180.34 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 261.62 182.88 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 267.97 190.5 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 267.97 165.1 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 267.97 181.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6e28e3e6-a561-4305-9440-48469c9be9bb)) + (pin "2" (uuid 7f6e272e-68ae-448e-96a1-580aafc8e44b)) + (pin "3" (uuid 8d67f3b2-e80c-4e74-90ef-c3e6dc772f0f)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U62") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 430.53 134.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 339e5227-1d7f-47fb-aee9-c9136567bfd5) + (property "Reference" "#PWR0100" (at 430.53 138.43 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 430.53 129.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 430.53 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 430.53 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6c5d9776-60d9-4c68-a899-61e12e4663da)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0100") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 167.64 238.76 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 34169a8e-c196-4a97-a445-e07059c7d8c2) + (property "Reference" "#PWR0145" (at 167.64 245.11 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 167.64 243.84 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 167.64 238.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 167.64 238.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 62220a10-e549-48c8-9ff5-d60d18de49af)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0145") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 334.01 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 35878e6d-700c-4f74-935a-17b6a753f3f5) + (property "Reference" "U10" (at 327.66 30.4799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 327.66 33.0199 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 334.01 40.64 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 334.01 15.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 334.01 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 96a73506-0423-43ad-ae33-f5e6fad8157e)) + (pin "2" (uuid 12c47660-427f-40b1-9aa5-7e698da9e2fc)) + (pin "3" (uuid 6763d617-4e0e-4260-b342-eb61ee18b8de)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U10") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 166.37 116.84 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 35cd6d4f-aaba-403c-9ee8-7935b79b98c0) + (property "Reference" "#PWR079" (at 166.37 123.19 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 166.37 121.92 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 166.37 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 166.37 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 10af40fc-1cba-47c7-9140-89423332db68)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR079") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 466.09 181.61 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 35fa7129-0270-4f24-a8e6-1aa914c709d2) + (property "Reference" "U66" (at 459.74 180.34 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 459.74 182.88 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 466.09 190.5 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 466.09 165.1 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 466.09 181.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 92d4fe19-8395-4aaa-93b3-6811c19e63d1)) + (pin "2" (uuid c563deb6-2e17-4c26-87f8-0cbad2d340b0)) + (pin "3" (uuid e457c8f3-4aac-4b9b-b665-bdd69b3e956d)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U66") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 110.49 191.77 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 3787a563-94ef-435b-b4c3-d37c6160115e) + (property "Reference" "#PWR0127" (at 110.49 198.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 110.49 196.85 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 110.49 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 110.49 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0b80b792-8c09-4bcc-ac79-072cf6ca6122)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0127") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 553.72 231.14 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 379e2035-8ed9-4bae-8c87-2432a91e18a6) + (property "Reference" "C8" (at 557.53 229.87 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "1u" (at 557.53 232.41 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (at 554.6852 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 553.72 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C52923" (at 553.72 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid cc4ec868-539f-4d16-8f47-8c7cc9548c34)) + (pin "2" (uuid 25c55f18-ca63-4d07-8d24-eb5280409b2a)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C8") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 100.33 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 37ba8578-836c-4d33-b8f9-d75e3179700f) + (property "Reference" "#PWR063" (at 100.33 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 100.33 91.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 100.33 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 100.33 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d5c5298d-2f92-4138-91a4-26dab9a81a2c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR063") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 430.53 171.45 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 385094d3-76dc-4947-b067-7eb33f428fa9) + (property "Reference" "#PWR0123" (at 430.53 175.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 430.53 166.37 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 430.53 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 430.53 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0bc28ec4-5a6b-4564-afa2-fa9d2acb01d9)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0123") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 257.81 355.6 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 385fdc9f-0058-4821-81c6-80ad73bc6132) + (property "Reference" "#PWR0162" (at 257.81 361.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 257.81 360.68 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 257.81 355.6 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 257.81 355.6 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 3193247d-5632-4df8-8a6b-bc05f3bcfb1d)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0162") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 166.37 134.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 38b840fe-061d-45ba-9bf9-0ba275cfc2fb) + (property "Reference" "#PWR092" (at 166.37 138.43 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 166.37 129.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 166.37 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 166.37 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 460ab3dd-03dc-48e9-96b2-7bf8677eacab)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR092") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 364.49 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 39c7c472-96aa-4a39-b7f2-6b9413ca6627) + (property "Reference" "#PWR071" (at 364.49 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 364.49 91.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 364.49 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 364.49 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 90e87612-ca20-408d-9853-40e198e6ba0f)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR071") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 267.97 106.68 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 3a011bcc-4ed1-4251-ae81-c124d85ce80e) + (property "Reference" "U38" (at 261.62 105.4099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 261.62 107.9499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 267.97 115.57 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 267.97 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 267.97 106.68 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 4aa1a89e-9c4c-49f9-9101-054689965858)) + (pin "2" (uuid 2b424eff-bc56-4a68-9bbf-6ff00864742c)) + (pin "3" (uuid 1d2469c4-2782-4b2f-bdd9-9cd22fc6789b)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U38") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 367.03 181.61 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 3b151bf0-964c-4546-a653-e90f3f4330bf) + (property "Reference" "U64" (at 360.68 180.34 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 360.68 182.88 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 367.03 190.5 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 367.03 165.1 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 367.03 181.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 688a322e-075d-40a0-ac28-905398be5332)) + (pin "2" (uuid 7a5ca6d0-bc88-432d-985e-58582f54a66b)) + (pin "3" (uuid 132f3d66-9d39-4e8e-87d4-33e526709410)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U64") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Mechanical:Fiducial") (at 552.45 369.57 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 3ca6f2fb-42c5-4f43-9c14-e8c7ee94a68c) + (property "Reference" "FID2" (at 554.99 368.3 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "Fiducial" (at 554.99 370.84 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Fiducial:Fiducial_1mm_Mask3mm" (at 552.45 369.57 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 552.45 369.57 0) + (effects (font (size 1.27 1.27)) hide) + ) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "FID2") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 69.85 106.68 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 3d6bb761-f248-46cf-9e59-a70c451f65fc) + (property "Reference" "U32" (at 63.5 105.4099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 63.5 107.9499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 69.85 115.57 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 69.85 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 69.85 106.68 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d269962d-6ed7-4b06-9829-06f198cc74ea)) + (pin "2" (uuid b0182eef-b8d8-4465-abba-a769038e9ea0)) + (pin "3" (uuid 3525080d-acc2-40fb-9591-14b53511b050)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U32") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 429.26 261.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 3d703497-c11d-4d72-84bb-4f31b77b4533) + (property "Reference" "#PWR0152" (at 429.26 267.97 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 429.26 266.7 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 429.26 261.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 429.26 261.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 2f50f84c-dab3-4983-9670-d6df0ad90720)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0152") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 525.78 274.32 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 3ecbbc5f-de3a-4e1f-83c2-8b800445a92a) + (property "Reference" "#PWR0170" (at 525.78 278.13 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 525.78 269.24 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 525.78 274.32 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 525.78 274.32 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 904460c7-2ada-4bc3-8ae0-db51fc931a9b)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0170") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 429.26 256.54 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 3f859e5f-50ef-4f67-b71f-b72332b51d3e) + (property "Reference" "C9" (at 433.07 255.27 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100n" (at 433.07 257.81 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (at 430.2252 260.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 429.26 256.54 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C1525" (at 429.26 256.54 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 1d14b810-6ce7-49d8-bade-e8fb44fe0b1a)) + (pin "2" (uuid d0368787-5e87-44fb-89ea-f8c3adb0fc98)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C9") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 232.41 116.84 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 40005c10-c540-4240-8af9-ff902c37faf1) + (property "Reference" "#PWR081" (at 232.41 123.19 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 232.41 121.92 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 232.41 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 232.41 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0fa0cefa-8337-4873-bf15-3b75204f7889)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR081") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 133.35 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 40c2ba23-6615-4d72-9cc9-dc02ce1768e2) + (property "Reference" "#PWR019" (at 133.35 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 133.35 46.99 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 133.35 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 133.35 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 8ab11cd7-d28f-4f7a-baa1-e3ae55da606a)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR019") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 138.43 361.95 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 4528e6ea-4168-422e-85b4-7b620cdddf6f) + (property "Reference" "C12" (at 142.24 360.68 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "20p" (at 142.24 363.22 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (at 139.3952 365.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 138.43 361.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C1554" (at 138.43 361.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 32c32992-1d5f-4f28-959b-79d8020f5568)) + (pin "2" (uuid 97fad13f-1d49-4d71-99f3-04a973ba8b03)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C12") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 133.35 58.42 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 456aa4d3-6e15-4b9c-93cf-e952faacb813) + (property "Reference" "#PWR034" (at 133.35 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 133.35 53.34 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 133.35 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 133.35 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 08c5410b-f585-4396-9fcd-5d5f0caf6aad)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR034") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 67.31 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 464adb93-025a-4fe0-92e8-a1b1b4425a43) + (property "Reference" "#PWR0102" (at 67.31 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 67.31 160.02 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 67.31 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 67.31 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c58f4215-e5da-4069-b518-9f13d83caeb1)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0102") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 33.02 58.42 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 471bb869-29ae-40ba-8883-418df5b3c579) + (property "Reference" "#PWR031" (at 33.02 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 33.02 53.34 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 33.02 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 33.02 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 85f9c63e-f322-4d3a-9cf8-ee8fc96c0493)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR031") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 199.39 191.77 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 47ddc171-5b8a-4a1f-98a1-1aa49671e237) + (property "Reference" "#PWR0129" (at 199.39 198.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 199.39 196.85 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 199.39 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 199.39 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 3bbb3c29-af5b-4654-be18-fb1eca1b1c3d)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0129") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:R") (at 405.13 365.76 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 4959b4bb-20e9-44db-a204-f8a8db4440f0) + (property "Reference" "R7" (at 405.13 363.22 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "5.1K" (at 405.13 360.68 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder" (at 405.13 367.538 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 405.13 365.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 2190517e-aa6e-428e-a9df-e08c460e96c0)) + (pin "2" (uuid 6c3ebdfa-c0ea-4d07-907f-fb94b1b72eb3)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "R7") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 190.5 288.29 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 49905b22-9026-41af-bce7-a143eb9c859d) + (property "Reference" "#PWR0142" (at 190.5 294.64 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 190.5 293.37 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 190.5 288.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 190.5 288.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e76cff4e-61f4-4cd7-a7ff-4beaee437dde)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0142") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 241.3 234.95 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 4a2dd6ee-3dee-4b30-8ca4-241c88737034) + (property "Reference" "C15" (at 245.11 233.68 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100n" (at 245.11 236.22 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (at 242.2652 238.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 241.3 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C1525" (at 241.3 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c4a3f725-c184-4229-9118-820061a0793e)) + (pin "2" (uuid 061c65cb-76c3-46e8-92c9-8e255bd596bc)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C15") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:LED") (at 307.34 344.17 180) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 4b7eb5ae-cde7-4c05-84ad-506807a25be9) + (property "Reference" "D1" (at 308.9275 336.55 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "RED" (at 308.9275 339.09 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder" (at 307.34 344.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 307.34 344.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C2286" (at 307.34 344.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ffb23ab9-3265-4a2d-8177-9241ae328e58)) + (pin "2" (uuid 93f65b6a-5985-4565-8d79-b2ea3f6a4679)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "D1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Mechanical:Fiducial") (at 566.42 369.57 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 4c20dfe0-d98a-4045-b902-d8028da8d572) + (property "Reference" "FID3" (at 568.96 368.3 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "Fiducial" (at 568.96 370.84 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Fiducial:Fiducial_1mm_Mask3mm" (at 566.42 369.57 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 566.42 369.57 0) + (effects (font (size 1.27 1.27)) hide) + ) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "FID3") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 67.31 134.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 4d794ca8-2a33-4207-b590-5393843c657f) + (property "Reference" "#PWR089" (at 67.31 138.43 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 67.31 129.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 67.31 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 67.31 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6121528a-a0ac-411f-8d21-991c1db4813e)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR089") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 317.5 231.14 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 4e617985-1118-4389-b77e-1ed6fe2e999f) + (property "Reference" "#PWR0159" (at 317.5 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 317.5 226.06 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 317.5 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 317.5 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid b2e549e4-c515-4493-8cfa-6162048827a1)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0159") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 367.03 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 4ed05cd4-cf01-4f95-91d0-505d5c6cd0f2) + (property "Reference" "U11" (at 360.68 30.4799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 360.68 33.0199 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 367.03 40.64 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 367.03 15.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 367.03 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 12ef7114-ae43-4111-ab79-3b3ce14c842d)) + (pin "2" (uuid fa4f39ef-290d-41c1-be57-315a75183f53)) + (pin "3" (uuid 8b74a514-e850-458a-81c6-12815ffe0e8f)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U11") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 331.47 21.59 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 501e9eef-1bb5-46c9-af06-9ed1dcabaa5e) + (property "Reference" "#PWR010" (at 331.47 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 331.47 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 331.47 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 331.47 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 400c3487-1623-4739-a687-f9de09eb7c65)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR010") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:R") (at 405.13 350.52 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 51049e6f-5033-4dbe-baed-a67a14037809) + (property "Reference" "R6" (at 405.13 347.98 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "5.1K" (at 405.13 345.44 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder" (at 405.13 352.298 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 405.13 350.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 108ca55f-f757-49ba-ab4d-197a8633fd94)) + (pin "2" (uuid d2b36126-194a-4ad8-b373-9255348aa2ad)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "R6") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 364.49 78.74 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 515645f2-ec62-46f0-806f-dc9b05468232) + (property "Reference" "#PWR056" (at 364.49 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 364.49 83.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 364.49 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 364.49 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5d0121ae-431a-42f4-93cf-f324a79d196a)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR056") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 400.05 144.78 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 5291085f-1a24-46ab-8881-dbc02ea86434) + (property "Reference" "U55" (at 393.7 143.5099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 393.7 146.0499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 400.05 153.67 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 400.05 128.27 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 400.05 144.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 360b94b0-c0b2-4219-ba97-80bed1314607)) + (pin "2" (uuid cb1e5a38-2d40-47ed-a44b-00d764133af7)) + (pin "3" (uuid 0ff5b952-da3c-4277-8cb8-cec6d0c86600)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U55") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 265.43 21.59 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 53fccb8d-36d5-470d-9841-525b777532eb) + (property "Reference" "#PWR08" (at 265.43 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 265.43 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 265.43 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 265.43 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c33c0e30-161f-4651-aabe-9b1a057ca207)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR08") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 267.97 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 55876554-f7a3-4c15-8d91-cc64fbb11707) + (property "Reference" "U23" (at 261.62 67.3099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 261.62 69.8499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 267.97 77.47 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 267.97 52.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 267.97 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d9ffbec3-9303-44f1-adfb-a44b59cd6b3c)) + (pin "2" (uuid 0e39ada8-9e14-41d8-96fa-69ba4d542c36)) + (pin "3" (uuid c9190781-8835-43a4-9b0a-a26c4b642043)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U23") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 33.02 78.74 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 55b27aed-afb6-4fbd-8de9-690a962381a0) + (property "Reference" "#PWR046" (at 33.02 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 33.02 83.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 33.02 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 33.02 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 39f97abb-3fd4-42d7-855f-ad7d0f7dd9e4)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR046") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 67.31 191.77 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 56d75c12-1dc3-4d35-81c8-3e3206f52419) + (property "Reference" "#PWR0126" (at 67.31 198.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 67.31 196.85 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 67.31 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 67.31 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid b71ee716-6211-4486-b7d5-a5d44958caf2)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0126") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 67.31 58.42 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 5734db2a-00bf-4a4e-a9c4-44e2c0aabccd) + (property "Reference" "#PWR032" (at 67.31 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 67.31 53.34 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 67.31 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 67.31 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a5a2f58f-2788-4e8a-bcb5-ee7e54203de4)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR032") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:PWR_FLAG") (at 511.81 226.06 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 5a2e51f2-f950-4c43-850c-8b72d4b116c2) + (property "Reference" "#FLG03" (at 511.81 224.155 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "PWR_FLAG" (at 511.81 220.98 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 511.81 226.06 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 511.81 226.06 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 56870d93-faef-4173-bf08-b84a7f440238)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#FLG03") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "74xx:CD74HC4067SM") (at 340.36 260.35 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 5b0bae1c-c7c8-4cb7-9dec-c7f6828d3545) + (property "Reference" "AMUX4" (at 342.5541 233.68 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "CD74HC4067SM" (at 342.5541 236.22 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_SO:SSOP-24_5.3x8.2mm_P0.65mm" (at 367.03 285.75 0) + (effects (font (size 1.27 1.27) italic) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf" (at 331.47 238.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C179326" (at 340.36 260.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid b5ed37ca-cb5d-4053-a34c-cdf281138ad4)) + (pin "10" (uuid e798b785-3181-496f-a081-a2b6084f4600)) + (pin "11" (uuid c6bfd1fa-beaf-4b9b-b53b-747d642929fb)) + (pin "12" (uuid 9bcb0873-1757-4d6f-8461-c693d814b286)) + (pin "13" (uuid 185c41cf-989d-498d-b5ae-3f28299b8166)) + (pin "14" (uuid ecce7089-3a26-4da6-af6f-3e6c10d1baab)) + (pin "15" (uuid 3f7b4889-a867-422a-80d8-160184bbe1ca)) + (pin "16" (uuid f4946a65-dcd7-4c88-a141-182c2d6c39bb)) + (pin "17" (uuid 60760c95-ae5d-40fa-b5fb-00201e0b88ff)) + (pin "18" (uuid 4d406012-e704-456d-95c8-45b71b315be7)) + (pin "19" (uuid 6a8a2859-ecda-4d8e-afed-a8051806d990)) + (pin "2" (uuid 91ea9d4a-e104-424c-842a-3977e6dced68)) + (pin "20" (uuid f26b0fe2-4152-4907-b152-95adaa7e4347)) + (pin "21" (uuid 046c43ca-e1cf-4237-9ade-754e1ab947e8)) + (pin "22" (uuid e47e1813-52a3-47e2-ac9a-4a04ed414a48)) + (pin "23" (uuid 9c4c3d2d-2eca-4d88-ae35-19f107b52e70)) + (pin "24" (uuid c2ca95cf-b64a-455f-a44c-06bf82b162c2)) + (pin "3" (uuid 062772c2-1626-4ade-9d38-34afacbb54bb)) + (pin "4" (uuid ecea5201-0cc9-4b3d-a519-3dbd59e24d6f)) + (pin "5" (uuid 91a43709-cda4-4a0d-9cc4-55e079ae091b)) + (pin "6" (uuid 742dcb23-1fe4-41c2-81d9-4f4a691adf9a)) + (pin "7" (uuid 724a87a7-71ff-4bce-984b-234814cb8077)) + (pin "8" (uuid 42b7e4b0-a2fa-4e78-9d25-c8298023cd6a)) + (pin "9" (uuid 23b071fc-b197-459f-b2f8-9c70915dc027)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "AMUX4") (unit 1) + ) + ) + (project "macrolev" + (path "/4edfdb67-213e-423d-a4d4-209978eccf9d" + (reference "AMUX1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 168.91 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 5b4f6373-12df-47ec-a5ff-a5d65d8cca2d) + (property "Reference" "U20" (at 162.56 67.3099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 162.56 69.8499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 168.91 77.47 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 168.91 52.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 168.91 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 37b3e7ed-2603-4c45-b51c-8750441889d8)) + (pin "2" (uuid cafe218b-7b23-4f83-8d7d-99b43796e765)) + (pin "3" (uuid edfcbd85-1930-489e-a504-41719ecf7109)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U20") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:PWR_FLAG") (at 266.7 344.17 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 5c111d11-f932-4625-b5cd-0907d2fcd981) + (property "Reference" "#FLG02" (at 266.7 342.265 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "PWR_FLAG" (at 266.7 339.09 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 266.7 344.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 266.7 344.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 27ceac93-1404-4f07-9573-67d84b13a185)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#FLG02") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 265.43 171.45 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 5cfb56c9-6cd0-4c24-84ae-ac1c77e91deb) + (property "Reference" "#PWR0120" (at 265.43 175.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 265.43 166.37 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 265.43 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 265.43 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7a352203-80ce-48f5-8b88-2f97af2aad54)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0120") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 457.2 231.14 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 5fd9e678-5004-4011-911c-53b3f1371350) + (property "Reference" "C4" (at 461.01 229.87 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100n" (at 461.01 232.41 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (at 458.1652 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 457.2 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C1525" (at 457.2 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 714d29f7-dae8-4c41-a993-9144e3345ce8)) + (pin "2" (uuid 23ab7b6f-0f4d-45c0-a330-3a9571f03862)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C4") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 430.53 116.84 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 61dc6cb6-9068-4a76-9b6b-4607f7b0bfab) + (property "Reference" "#PWR087" (at 430.53 123.19 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 430.53 121.92 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 430.53 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 430.53 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 508aeb0d-6813-42a2-b87f-870d05a9a472)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR087") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 553.72 237.49 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 62547a9d-8cb6-4b4c-84f7-486207013247) + (property "Reference" "#PWR0150" (at 553.72 243.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 553.72 242.57 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 553.72 237.49 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 553.72 237.49 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 4972a8c8-da97-45a9-99b5-5853d2198418)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0150") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 340.36 288.29 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 62e19db0-7ba4-4f87-9ac6-e50fd1d2ae7d) + (property "Reference" "#PWR0146" (at 340.36 294.64 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 340.36 293.37 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 340.36 288.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 340.36 288.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 066bbdcb-2f1a-45e6-adf4-2751228ddb06)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0146") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 100.33 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 631de770-ecd1-417e-912d-b57ee0273158) + (property "Reference" "#PWR018" (at 100.33 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 100.33 46.99 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 100.33 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 100.33 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid dfc501ff-cc39-4db3-a985-b951052e75ae)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR018") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 300.99 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 638b51b2-f81d-49b8-8fd8-e1c1fdee4e45) + (property "Reference" "U24" (at 294.64 67.3099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 294.64 69.8499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 300.99 77.47 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 300.99 52.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 300.99 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 2a742398-fdad-4b62-8614-e5d986caeb4b)) + (pin "2" (uuid 7b816f17-394c-45a8-827d-8c425dc5ecc8)) + (pin "3" (uuid ea89f759-e184-4f71-8bdc-9ddb62b748de)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U24") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 463.55 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 63e8f00a-4d21-43fc-b68a-14b56f621965) + (property "Reference" "#PWR029" (at 463.55 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 463.55 46.99 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 463.55 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 463.55 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ccacbfc2-3a6e-4aca-93b9-f12afd6dbef9)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR029") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 267.97 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 669e4653-a011-40b3-a857-b9b0386778cf) + (property "Reference" "U8" (at 261.62 30.4799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 261.62 33.0199 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 267.97 40.64 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 267.97 15.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 267.97 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid b52f59a2-0305-425d-bc3d-b83316c7c066)) + (pin "2" (uuid 47268d9a-871c-4376-a590-f7992b4f2254)) + (pin "3" (uuid 15c0ef40-b775-4dcf-8f35-43983dccb6e6)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U8") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Connector_Generic:Conn_01x04") (at 438.15 292.1 180) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 66a51944-bb85-4d50-a44f-f941c6982791) + (property "Reference" "J2" (at 435.61 292.1 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "I2C" (at 435.61 289.56 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical" (at 438.15 292.1 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 438.15 292.1 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid b20307ec-2acb-4d0b-8be3-df14371124e3)) + (pin "2" (uuid 30961abc-3d0b-4cc4-96d0-ea37966a5d91)) + (pin "3" (uuid b5db43d1-3b89-4ca6-913d-ebe37690044f)) + (pin "4" (uuid 92932127-c771-482d-a95f-2d3ddd4ac252)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "J2") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 367.03 144.78 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 66ae5a65-8e38-4706-90cb-51cbdb5ba036) + (property "Reference" "U54" (at 360.68 143.5099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 360.68 146.0499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 367.03 153.67 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 367.03 128.27 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 367.03 144.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 375ba677-4377-4be4-9f81-239d03bc4ecb)) + (pin "2" (uuid 0c30c1e1-6a55-4183-afa3-2cada4f6f109)) + (pin "3" (uuid 836e3958-96c4-4425-8cb0-9cd9bf771a81)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U54") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 67.31 21.59 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 66e6bd7b-9599-4b38-8f91-7aac790be0df) + (property "Reference" "#PWR02" (at 67.31 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 67.31 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 67.31 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 67.31 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid aac7acef-e96f-4254-b027-73bae0d6c55a)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR02") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 397.51 21.59 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 66f68e81-4cc0-4d4d-bcca-437f025382d4) + (property "Reference" "#PWR012" (at 397.51 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 397.51 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 397.51 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 397.51 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid b342be8c-7f3a-4899-96af-0f67107e4747)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR012") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 67.31 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 6716cc63-f6e2-498a-b737-06074c095b30) + (property "Reference" "#PWR017" (at 67.31 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 67.31 46.99 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 67.31 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 67.31 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 21d0378f-ff0b-40d0-8a3c-83bd73600a61)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR017") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 293.37 349.25 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 688700d5-45cb-4139-9b56-4fca60674be1) + (property "Reference" "C11" (at 297.18 347.98 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "22u" (at 297.18 350.52 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder" (at 294.3352 353.06 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 293.37 349.25 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C45783" (at 293.37 349.25 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 3df51a51-12cc-45c3-b711-81c7d26659be)) + (pin "2" (uuid f90f3f21-c3f4-4c7e-9d31-3588bf14ee81)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C11") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 496.57 71.12 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 68c5eabc-31ff-4201-8905-8504de9fdbd2) + (property "Reference" "#PWR045" (at 496.57 74.93 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 496.57 66.04 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 496.57 71.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 496.57 71.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6f54216b-0f24-4da3-afa6-e485888082c4)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR045") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 199.39 116.84 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 69608875-2e6c-46d5-80f3-e2d61b2d15a6) + (property "Reference" "#PWR080" (at 199.39 123.19 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 199.39 121.92 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 199.39 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 199.39 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 434ae661-273e-4a7b-8e4c-b4c495d286b6)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR080") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 102.87 144.78 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 6a73caed-7b24-4aae-8525-71df52f0b1e6) + (property "Reference" "U46" (at 96.52 143.5099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 96.52 146.0499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 102.87 153.67 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 102.87 128.27 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 102.87 144.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e62ffbb6-576c-4d5a-a76c-aeb0741552c6)) + (pin "2" (uuid f2ccc712-b84c-4aec-9189-3b298ad58f27)) + (pin "3" (uuid 7ee5ce2a-8f3d-4048-a4be-3e81c6fc460e)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U46") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 93.98 236.22 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 6b8037eb-805b-4aae-b89e-78a4b2adafa9) + (property "Reference" "C18" (at 97.79 234.95 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100n" (at 97.79 237.49 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (at 94.9452 240.03 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 93.98 236.22 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C1525" (at 93.98 236.22 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 17cbef10-87ad-4e5e-934d-ee9ad8e0f5b7)) + (pin "2" (uuid d919ee1d-bb57-4992-8474-e8fb1d136da9)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C18") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 167.64 231.14 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 6d0547de-3e55-4605-a518-d430ef3dc20d) + (property "Reference" "#PWR0143" (at 167.64 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 167.64 226.06 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 167.64 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 167.64 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d75db89f-cfa9-46ca-a432-81fe6bf27bb2)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0143") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 232.41 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 6d397459-8e3e-4236-ab58-2349a357e5a7) + (property "Reference" "#PWR0107" (at 232.41 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 232.41 160.02 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 232.41 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 232.41 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 95aa20ee-002f-43d4-87fd-224d2e661439)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0107") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 298.45 78.74 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 6e018f53-e2a5-49e5-a665-1f9f3bc8b23c) + (property "Reference" "#PWR054" (at 298.45 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 298.45 83.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 298.45 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 298.45 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 905d9a97-e031-4785-980d-85d08756cd8c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR054") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 298.45 116.84 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 6f7972c0-a118-4558-9e6c-c2cbc8397d9b) + (property "Reference" "#PWR083" (at 298.45 123.19 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 298.45 121.92 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 298.45 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 298.45 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0bc7687e-81c2-437d-9084-fe42e289eb27)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR083") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 331.47 116.84 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 70c36e6c-af11-4439-9df5-01c80f7b50af) + (property "Reference" "#PWR084" (at 331.47 123.19 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 331.47 121.92 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 331.47 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 331.47 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 8f916e41-99bb-451c-8b41-268095b55f70)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR084") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 364.49 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 71d48ccd-7618-4c6a-a207-e07c30606544) + (property "Reference" "#PWR0111" (at 364.49 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 364.49 160.02 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 364.49 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 364.49 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ea6aa0cc-e74a-41a1-a9cf-d75242edbf5c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0111") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 364.49 21.59 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 71f7ac0a-7b5c-4950-94f6-9cef032a2999) + (property "Reference" "#PWR011" (at 364.49 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 364.49 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 364.49 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 364.49 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e2b18a7c-feb0-4d14-9c1c-15529515c2b3)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR011") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 298.45 58.42 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 73715368-776a-4149-acde-b4eb9340f90e) + (property "Reference" "#PWR039" (at 298.45 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 298.45 53.34 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 298.45 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 298.45 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5aa5ab6b-58ef-445b-bb4c-a25afbce0691)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR039") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 265.43 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 7428327f-89a1-427f-bcca-3ba3893f6818) + (property "Reference" "#PWR023" (at 265.43 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 265.43 46.99 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 265.43 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 265.43 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 90cbf3fd-3680-4990-8cf1-d3c026bd214c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR023") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 265.43 78.74 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 7438cd0c-5dfa-470a-ad1d-e7ee6027b3de) + (property "Reference" "#PWR053" (at 265.43 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 265.43 83.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 265.43 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 265.43 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c5ac2f1c-79f0-47ec-82b2-a9d2ffa4df64)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR053") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 116.84 289.56 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 7736f6d3-122c-4f04-9ec8-3151c74d7d8f) + (property "Reference" "#PWR0140" (at 116.84 295.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 116.84 294.64 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 116.84 289.56 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 116.84 289.56 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid f9d31da4-6628-4833-906e-2e3bee844f29)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0140") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 201.93 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 7788162b-9173-4d06-b4f8-43a932d88c7d) + (property "Reference" "U6" (at 195.58 30.4799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 195.58 33.0199 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 201.93 40.64 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 201.93 15.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 201.93 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 670eae52-d420-40e8-85c6-85ff7be40d0d)) + (pin "2" (uuid e9e79907-b4ff-4c56-ba20-96dfba05eafe)) + (pin "3" (uuid e7175adc-d802-4d3e-9e0e-4b96349182bb)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U6") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 331.47 171.45 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 77ba4ad2-b2c6-4ceb-a0d2-dbcb3dcb5925) + (property "Reference" "#PWR0121" (at 331.47 175.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 331.47 166.37 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 331.47 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 331.47 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a2291236-dcfc-4767-96ff-bd204153485a)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0121") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 35.56 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 7aa17c6e-5d54-4d07-9762-e507722f80af) + (property "Reference" "U16" (at 29.21 67.3099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 29.21 69.8499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 35.56 77.47 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 35.56 52.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 35.56 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 906ebd67-5b71-4442-85ec-b817824c6e64)) + (pin "2" (uuid 66972ca7-9168-4731-a423-f5dca11715f2)) + (pin "3" (uuid 1b0e2713-6047-468e-ad73-6abd0541f61c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U16") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 27.94 232.41 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 7d4bf0cf-e91c-4ca0-ae42-8913ea9d208f) + (property "Reference" "#PWR0137" (at 27.94 236.22 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 27.94 227.33 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 27.94 232.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 27.94 232.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid daa48574-d5bb-4424-9232-9b6af7ff4701)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0137") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 472.44 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 7e4dda05-0235-4c1d-bc4e-96b00ea0dbc4) + (property "Reference" "#PWR0114" (at 472.44 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 472.44 160.02 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 472.44 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 472.44 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 2b91ac02-6665-46fb-9054-21ce1153312c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0114") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 199.39 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 7f88e143-6ed5-4475-908d-7746170e052b) + (property "Reference" "#PWR0106" (at 199.39 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 199.39 160.02 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 199.39 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 199.39 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6e0d3ccd-86fa-4cc9-86f5-f3e0d90816aa)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0106") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 433.07 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 85311a33-3a06-4dc0-8f3e-f90ae647858d) + (property "Reference" "U13" (at 426.72 30.4799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 426.72 33.0199 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 433.07 40.64 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 433.07 15.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 433.07 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e967e3a5-b140-4dbb-9d8e-3f6425d5d480)) + (pin "2" (uuid 239f8938-3730-45c5-9eda-2fb613f51d22)) + (pin "3" (uuid bc71cd21-a951-4874-8cfc-3dddce2b91cc)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U13") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 463.55 21.59 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 8540810a-5ee8-4965-8e1f-485289f9eb9f) + (property "Reference" "#PWR014" (at 463.55 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 463.55 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 463.55 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 463.55 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid fb091739-dfad-471d-98a6-681c325a4bc9)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR014") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 431.8 231.14 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 865672ee-4fd3-4d7d-adc3-a0f498d55aed) + (property "Reference" "C2" (at 435.61 229.87 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100n" (at 435.61 232.41 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (at 432.7652 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 431.8 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C1525" (at 431.8 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 8cc22cad-589e-49cc-be48-c0b900935acd)) + (pin "2" (uuid c9e77b9f-ad7b-427c-811e-1bf24d77a382)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C2") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:R") (at 320.04 349.25 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 8714da23-d34c-47e9-b224-8536769a20db) + (property "Reference" "R5" (at 322.58 347.98 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "5.1k" (at 322.58 350.52 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder" (at 318.262 349.25 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 320.04 349.25 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C25905" (at 320.04 349.25 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7c76bf96-b939-4e83-8911-ba24e2133b1c)) + (pin "2" (uuid f09e391b-0e94-45f5-874e-3301fffe51b5)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "R5") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 496.57 191.77 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 8922034c-c005-40f3-9757-83fcffa72dec) + (property "Reference" "#PWR0136" (at 496.57 198.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 496.57 196.85 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 496.57 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 496.57 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6115c96d-18d5-4d79-b00b-5cd87efd8785)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0136") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 511.81 231.14 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 8aa6e962-dca4-4325-a8f2-e04264382cec) + (property "Reference" "C6" (at 515.62 229.87 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "10n" (at 515.62 232.41 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (at 512.7752 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 511.81 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C15195" (at 511.81 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ed0d1b95-ebeb-4141-a258-fa3f805cac86)) + (pin "2" (uuid c2b8e767-ac1e-44af-86e7-b2ebb8c165f0)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C6") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 69.85 181.61 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 8b4d40a4-7306-4a3b-a176-42a7a61cc2fb) + (property "Reference" "U58" (at 63.5 180.3399 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 63.5 182.8799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 69.85 190.5 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 69.85 165.1 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 69.85 181.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5668e32f-f31f-417a-b116-1ab142f9bc63)) + (pin "2" (uuid a74fe624-4479-4b2b-b36d-08ff26ae2fcd)) + (pin "3" (uuid aa6a9a46-27a2-41b8-86bc-c2a3cae5cb9c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U58") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 278.13 384.81 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 8c109374-ff63-4204-8224-c591e66d42b7) + (property "Reference" "#PWR0167" (at 278.13 391.16 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 278.13 389.89 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 278.13 384.81 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 278.13 384.81 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7469d54e-c8b4-4bab-92ab-78f672b22b7d)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0167") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 317.5 238.76 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 8c446751-02de-4153-b988-aeddadf9b415) + (property "Reference" "#PWR0165" (at 317.5 245.11 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 317.5 243.84 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 317.5 238.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 317.5 238.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a6a7ab96-0d04-4d74-afe7-871f0766cee5)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0165") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 463.55 58.42 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 8c7420d7-5e7c-4e88-b177-61b4fbbda596) + (property "Reference" "#PWR044" (at 463.55 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 463.55 53.34 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 463.55 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 463.55 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 137cfe7c-a9c4-4e2b-9d08-1bc839d9c705)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR044") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 331.47 78.74 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 8d74e763-2348-4b97-9fa4-027009761726) + (property "Reference" "#PWR055" (at 331.47 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 331.47 83.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 331.47 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 331.47 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5fdad529-7f53-437b-9ff5-85035aa1b76c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR055") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 487.68 224.79 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 90d6fd1e-6e55-48a9-8965-3eaed20c15cf) + (property "Reference" "#PWR0130" (at 487.68 228.6 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 487.68 219.71 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 487.68 224.79 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 487.68 224.79 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 765b0f05-3530-4386-922f-edfb093b4ec8)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0130") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 135.89 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 90de8236-5c39-4b6c-a3a6-6208df75b165) + (property "Reference" "U4" (at 129.54 30.4799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 129.54 33.0199 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 135.89 40.64 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 135.89 15.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 135.89 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 58117591-a1bf-4a7a-9197-5d108574b955)) + (pin "2" (uuid 9e2881d8-7332-4cd8-884f-5998a8a622ea)) + (pin "3" (uuid 6fa88961-546b-4dc6-9c81-ef1b91803275)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U4") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 35.56 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9152c1be-dbf8-451c-8925-f3a50597eacb) + (property "Reference" "U1" (at 29.21 30.4799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 29.21 33.0199 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 35.56 40.64 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 35.56 15.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 35.56 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6f724c8b-f885-4a63-a599-19cf396826d9)) + (pin "2" (uuid 5388a727-032c-468d-a7c2-1ffbb0887fe0)) + (pin "3" (uuid 71b97067-6db2-433e-a874-132fc625c650)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 331.47 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9157fca4-7c8e-450f-a24a-a6ddd7379061) + (property "Reference" "#PWR025" (at 331.47 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 331.47 46.99 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 331.47 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 331.47 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 25971b7b-3ed8-4a98-942b-68d251e2096d)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR025") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 67.31 171.45 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 91cef1de-321f-44d9-8712-98e4fa80be48) + (property "Reference" "#PWR0115" (at 67.31 175.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 67.31 166.37 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 67.31 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 67.31 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 16c471cb-7b3d-4d7a-bb66-9d98788a7990)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0115") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 364.49 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 920ac738-fd2f-41b0-8933-595a6e11367f) + (property "Reference" "#PWR026" (at 364.49 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 364.49 46.99 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 364.49 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 364.49 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5be025f9-036c-496f-8290-1744ab4d6d71)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR026") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 162.56 361.95 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9216449a-0cd8-4c56-96c0-b04008dde0e6) + (property "Reference" "C13" (at 166.37 360.68 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "20p" (at 166.37 363.22 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (at 163.5252 365.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 162.56 361.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C1554" (at 162.56 361.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid abeec86e-f659-498b-b0f3-2d835b625d23)) + (pin "2" (uuid f4a9d484-8db6-4247-bb9c-dc3bbcd37871)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C13") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 93.98 232.41 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9274a66d-a6fb-4c2d-82f1-1e0501332b36) + (property "Reference" "#PWR0138" (at 93.98 236.22 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 93.98 227.33 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 93.98 232.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 93.98 232.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 2864858a-da0a-46d4-a234-f616c7da2d10)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0138") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 497.84 224.79 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 93764919-23a9-41ab-8703-1c55719a3078) + (property "Reference" "#PWR0147" (at 497.84 228.6 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 497.84 219.71 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 497.84 224.79 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 497.84 224.79 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 4e671cec-4172-43d3-8a5d-3bcb9044d239)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0147") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 265.43 134.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9404bd30-8490-4fe2-aaa1-51a9c1ad061b) + (property "Reference" "#PWR095" (at 265.43 138.43 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 265.43 129.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 265.43 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 265.43 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 42835836-77ff-4082-bf71-a8b7ac783706)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR095") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 199.39 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9414eb3d-d8e0-4b62-8e8b-a4242b483bdb) + (property "Reference" "#PWR021" (at 199.39 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 199.39 46.99 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 199.39 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 199.39 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 91ababeb-5ee7-4268-90b9-5f66631df67f)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR021") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 433.07 106.68 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 96d272e3-5967-4df7-91d1-1ca2c49f0986) + (property "Reference" "U43" (at 426.72 105.4099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 426.72 107.9499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 433.07 115.57 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 433.07 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 433.07 106.68 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 2039b444-ba1c-45ef-afc5-22c22563a35e)) + (pin "2" (uuid 1742ff5b-958f-43c8-8fe5-643eab9508ee)) + (pin "3" (uuid 4b142aa2-a7ee-4700-b4b2-1f94c1998320)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U43") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 430.53 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 979a76a7-efce-4761-9b82-39dfc4fbeb66) + (property "Reference" "#PWR028" (at 430.53 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 430.53 46.99 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 430.53 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 430.53 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 187669d9-b402-49c9-98e9-5647d6d38b8e)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR028") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 166.37 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 985950b0-2c2f-4baa-a3c7-dc25b167d766) + (property "Reference" "#PWR0105" (at 166.37 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 166.37 160.02 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 166.37 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 166.37 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 14328c36-bae8-46b7-b05f-9a2db108e0f5)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0105") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 430.53 78.74 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 987c9f94-0308-42f7-a842-e1b48e5e546d) + (property "Reference" "#PWR058" (at 430.53 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 430.53 83.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 430.53 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 430.53 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid fdc6be8d-3fd7-4eb6-91f7-a0ac086b7f06)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR058") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 430.53 58.42 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 98e6bb65-e3aa-4251-8f3b-43c59efa5016) + (property "Reference" "#PWR043" (at 430.53 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 430.53 53.34 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 430.53 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 430.53 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c2cb21b4-7f8e-4988-9752-ee7bb4accd40)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR043") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 414.02 261.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9a78f70c-7d0c-4eea-bcd3-7a23054e459b) + (property "Reference" "#PWR0155" (at 414.02 267.97 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 414.02 266.7 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 414.02 261.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 414.02 261.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5ccf586f-31d1-49cc-a948-27aa05dbec36)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0155") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 93.98 240.03 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9abfc5f4-b04a-4135-ad03-458e8e3352dc) + (property "Reference" "#PWR0141" (at 93.98 246.38 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 93.98 245.11 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 93.98 240.03 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 93.98 240.03 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6cf3e81f-c18d-4cb5-8e3b-c37cae1721a3)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0141") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 100.33 116.84 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9ad52722-6102-4054-98aa-d847d7c318e2) + (property "Reference" "#PWR077" (at 100.33 123.19 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 100.33 121.92 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 100.33 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 100.33 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 69eb9a62-6df2-47af-a01f-82e646e0d720)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR077") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 466.09 106.68 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9b030a47-641b-40ef-b0d9-9fd00da49f5a) + (property "Reference" "U44" (at 459.74 105.4099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 459.74 107.9499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 466.09 115.57 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 466.09 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 466.09 106.68 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 4a6f869b-bec3-4144-820e-87be8f56d679)) + (pin "2" (uuid 6344182c-b47c-46bc-8dc4-68da38ba7d10)) + (pin "3" (uuid 0d7b71ce-6358-4bdb-a370-5ffa06d388eb)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U44") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 433.07 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9bbb78b3-c655-439b-9148-e19901cbfeaf) + (property "Reference" "U28" (at 426.72 67.3099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 426.72 69.8499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 433.07 77.47 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 433.07 52.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 433.07 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c9fcacfe-393b-47f8-8ae3-1aeec71bfcff)) + (pin "2" (uuid 27e64fa5-8629-4b69-ba9c-2e2395fec57b)) + (pin "3" (uuid f3e3ba01-cd32-4709-8716-5599ede387e7)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U28") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 433.07 181.61 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9d04b62b-b00a-4015-9e8c-3e96186c265d) + (property "Reference" "U65" (at 426.72 180.34 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 426.72 182.88 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 433.07 190.5 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 433.07 165.1 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 433.07 181.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 9138de2d-f07e-4181-8bcd-9030b87755e2)) + (pin "2" (uuid ec63f043-ba1d-4116-a05a-8d639b0d72cf)) + (pin "3" (uuid 445e1d17-4df8-44b7-a833-80a50ff9c960)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U65") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 35.56 106.68 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9d9bd1d7-5e5b-4333-9fd8-207a345694bb) + (property "Reference" "U31" (at 29.21 105.4099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 29.21 107.9499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 35.56 115.57 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 35.56 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 35.56 106.68 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 9ef8bfbf-2354-4230-b481-470a4a12babe)) + (pin "2" (uuid d2aa9d58-ed44-4b89-baf9-1532cedb8207)) + (pin "3" (uuid 4347cd20-3ffd-49dc-bcfc-312dd5a56478)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U31") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 397.51 78.74 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9df2c923-da72-4801-a18e-fbda6de2103d) + (property "Reference" "#PWR057" (at 397.51 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 397.51 83.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 397.51 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 397.51 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5c9f6104-43a9-47ff-8001-f0c3119d9ecb)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR057") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 100.33 58.42 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9e314368-ae6c-462d-8a76-5a647db7777d) + (property "Reference" "#PWR033" (at 100.33 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 100.33 53.34 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 100.33 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 100.33 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid b6c4702d-7945-40e1-9cfc-35dd7114187f)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR033") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 67.31 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9e6f67a3-2f28-4519-a349-e9474161afe4) + (property "Reference" "#PWR062" (at 67.31 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 67.31 91.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 67.31 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 67.31 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 159de5e2-a11b-47e6-9a01-44b8690e6a9b)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR062") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 146.05 181.61 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 9eb77311-b94a-4dcd-816a-65100dceb3a9) + (property "Reference" "U60" (at 139.7 180.3399 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 139.7 182.8799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 146.05 190.5 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 146.05 165.1 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 146.05 181.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c6ac4333-e117-423d-ab6d-96b388fb371e)) + (pin "2" (uuid b4fce591-077f-4fa8-86ee-c463bdc8ff11)) + (pin "3" (uuid 25ab26cc-9f93-4288-8f07-8abe587d1cb2)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U60") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 232.41 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid a04d653d-4af3-4a00-bd38-9401992d86fb) + (property "Reference" "#PWR022" (at 232.41 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 232.41 46.99 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 232.41 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 232.41 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid cdd09746-8256-4d4f-98b5-cac9c0489878)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR022") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 443.23 297.18 0) (mirror y) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid a0afc546-af34-4ada-a8e4-6b554d53e739) + (property "Reference" "#PWR0168" (at 443.23 303.53 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 443.23 302.26 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 443.23 297.18 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 443.23 297.18 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ea54c059-8afe-420e-ac90-ade999dccf9c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0168") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 469.9 231.14 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid a3252b6b-8344-4094-a9da-91a2e0f94de4) + (property "Reference" "C5" (at 473.71 229.87 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100n" (at 473.71 232.41 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (at 470.8652 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 469.9 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C1525" (at 469.9 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 655e1501-889e-49f6-af74-4464dd18d58d)) + (pin "2" (uuid edafc0dc-1e99-4257-adf9-f09541f25c27)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C5") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 474.98 144.78 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid a3b3f7af-3aa1-4dc9-be96-7ba32575c1bf) + (property "Reference" "U57" (at 468.63 143.5099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 468.63 146.0499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 474.98 153.67 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 474.98 128.27 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 474.98 144.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid eb77d367-b18c-4a73-944f-f85cda8f53e2)) + (pin "2" (uuid 0f133b60-8dbd-4f15-8edb-f4b694816881)) + (pin "3" (uuid ac4796d3-a267-4e73-91ce-592fbfaad659)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U57") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 69.85 144.78 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid a3ba12d1-3a25-4e8b-b88d-f8f81beef045) + (property "Reference" "U45" (at 63.5 143.5099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 63.5 146.0499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 69.85 153.67 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 69.85 128.27 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 69.85 144.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c510af62-8416-477f-9862-171a7325d196)) + (pin "2" (uuid e0fe407b-0ba1-4dcd-9b08-ced6cf599bb3)) + (pin "3" (uuid d104c038-2377-4d12-b23f-b50ac731c657)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U45") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 234.95 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid a466df66-aade-408a-aa6c-acdd6450e2a8) + (property "Reference" "U22" (at 228.6 67.3099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 228.6 69.8499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 234.95 77.47 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 234.95 52.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 234.95 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 41b0e8fe-7929-4d13-a294-23c32dcce8aa)) + (pin "2" (uuid b3aff449-eb82-4d33-88a5-2b5811427ed7)) + (pin "3" (uuid 0bef1d23-59e5-4cff-99d0-21ae9158883b)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U22") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 298.45 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid a582dca0-584c-48a8-9639-0e0b6d0c2a84) + (property "Reference" "#PWR0109" (at 298.45 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 298.45 160.02 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 298.45 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 298.45 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 8706f5b7-f0bb-40b9-9e41-ffb1ee40836e)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0109") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 100.33 134.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid a597120d-b988-41ff-9c7c-f190fa929efe) + (property "Reference" "#PWR090" (at 100.33 138.43 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 100.33 129.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 100.33 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 100.33 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 4f0e0409-a933-491b-8466-1c1379c2b309)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR090") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 100.33 21.59 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid a633ead0-827c-4298-a779-e11158df8016) + (property "Reference" "#PWR03" (at 100.33 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 100.33 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 100.33 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 100.33 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid aa427a5c-6821-47af-b000-c08482a3c42d)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR03") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 62.23 346.71 270) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid a6355ee5-e398-49d5-9208-89a8e69f5eb8) + (property "Reference" "C?" (at 62.23 340.36 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "1u" (at 62.23 342.9 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 58.42 347.6752 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 62.23 346.71 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e7b361a8-415c-4170-9d8b-32e8816aaebf)) + (pin "2" (uuid 0fdb6543-3644-466d-8cf9-5adfddfdd53b)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C?") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:R") (at 414.02 256.54 180) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid a6589f57-f1df-40ff-b10c-a3007757474d) + (property "Reference" "R4" (at 410.21 256.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "10k" (at 417.83 256.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder" (at 415.798 256.54 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 414.02 256.54 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C25744" (at 414.02 256.54 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid fa7e37e7-80d6-4524-8501-d25253326433)) + (pin "2" (uuid 80c422c4-af9a-4f41-8618-04c8c1dfbaad)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "R4") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 466.09 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid a6b09e0d-3f7c-435f-b495-3e11c361d351) + (property "Reference" "U29" (at 459.74 67.3099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 459.74 69.8499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 466.09 77.47 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 466.09 52.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 466.09 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 26106f71-7879-4b8b-b683-52dc278905e5)) + (pin "2" (uuid d03bf1dc-7e30-4c9b-9fbe-5c1c87eba9df)) + (pin "3" (uuid 2429176c-da0b-4a5f-b564-e2133c27d040)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U29") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 400.05 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid a6d58d05-b484-46b2-a7d2-f1759bcd5f01) + (property "Reference" "U27" (at 393.7 67.3099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 393.7 69.8499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 400.05 77.47 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 400.05 52.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 400.05 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e23bb047-14c8-4e0a-a667-bc5e0d40a8b8)) + (pin "2" (uuid d43ea049-082e-4b6a-a0db-dc74c8015deb)) + (pin "3" (uuid da6fc950-ebca-4413-b062-79dd332a1d97)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U27") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 397.51 58.42 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid a8ba81c0-11f6-4f7e-a493-1c05b46f1d0d) + (property "Reference" "#PWR042" (at 397.51 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 397.51 53.34 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 397.51 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 397.51 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d238324b-d377-4c99-b872-c34e9808e942)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR042") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 364.49 171.45 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid a9c428dd-c310-412a-9fef-bd15683fb0fb) + (property "Reference" "#PWR0122" (at 364.49 175.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 364.49 166.37 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 364.49 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 364.49 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 35dde27f-2b3f-49f4-bb16-01407b0f3ac8)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0122") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 201.93 144.78 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid aad04641-0abe-4b62-9645-c6b2aedfba1f) + (property "Reference" "U49" (at 195.58 143.5099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 195.58 146.0499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 201.93 153.67 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 201.93 128.27 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 201.93 144.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 46bd6fb9-aca2-4a88-bb0a-97b6fffb9864)) + (pin "2" (uuid f050258a-f693-4a1d-a723-19adc6ab228d)) + (pin "3" (uuid 75feabef-e538-4385-a03b-0d88d1227080)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U49") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 334.01 106.68 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid acce2f13-960c-4104-a485-0075107ab662) + (property "Reference" "U40" (at 327.66 105.4099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 327.66 107.9499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 334.01 115.57 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 334.01 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 334.01 106.68 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7efde242-344b-4e77-94d1-80ce77981894)) + (pin "2" (uuid f890364d-7ead-4fe2-9082-c25afc8fc6cf)) + (pin "3" (uuid 5f6a0742-a2ca-4154-b9e3-3feede482e86)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U40") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 234.95 144.78 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid ad2893c8-ab6d-4742-bd44-848ce544e4de) + (property "Reference" "U50" (at 228.6 143.5099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 228.6 146.0499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 234.95 153.67 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 234.95 128.27 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 234.95 144.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d36efdd0-03f8-480a-8290-fa14e8c62cb3)) + (pin "2" (uuid 9d161a33-38a2-4397-877c-a28e70e25ce3)) + (pin "3" (uuid 3997175a-274c-4e53-9c9a-895f472ce7b9)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U50") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 199.39 171.45 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid ad6f7cdb-88df-4b6d-afce-51f37fd87a58) + (property "Reference" "#PWR0118" (at 199.39 175.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 199.39 166.37 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 199.39 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 199.39 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 8af2d572-0a24-479d-8cbf-7efcf0306cce)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0118") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 201.93 106.68 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid adec0f75-1e63-44ee-9a27-90e9783ae2bf) + (property "Reference" "U36" (at 195.58 105.4099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 195.58 107.9499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 201.93 115.57 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 201.93 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 201.93 106.68 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid f3287d52-5275-40fd-9272-abb55d1ff84b)) + (pin "2" (uuid 49a54f01-415f-4bd7-8aba-5a794ccee98d)) + (pin "3" (uuid 6706b656-d282-4d94-8b9f-3aa1a23bfefe)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U36") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 135.89 144.78 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid afcace14-e4f5-4610-aa5a-e9d20d5e4629) + (property "Reference" "U47" (at 129.54 143.5099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 129.54 146.0499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 135.89 153.67 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 135.89 128.27 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 135.89 144.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 97cca1b1-c71c-4379-95b5-fe0ed0b7bbda)) + (pin "2" (uuid b08013bf-2ef8-4095-b52f-de8540dfa6fa)) + (pin "3" (uuid 411e0f37-f988-483a-b25e-d5104a882394)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U47") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 364.49 58.42 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid afd712ea-78cc-41af-b877-1bcff4e72148) + (property "Reference" "#PWR041" (at 364.49 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 364.49 53.34 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 364.49 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 364.49 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 4c3bd17c-977f-4d43-b0d7-fbb56aa770a7)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR041") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 234.95 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid b13cf3c4-81e4-46ff-a3fe-52d396f6a0c9) + (property "Reference" "U7" (at 228.6 30.4799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 228.6 33.0199 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 234.95 40.64 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 234.95 15.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 234.95 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e7595add-f512-4f4d-a18a-c63f7657f085)) + (pin "2" (uuid 0c81d9a5-cc9a-458c-a95e-cec9a0aded39)) + (pin "3" (uuid a61caaf0-90db-4a0e-aa2d-f69acc51f8ba)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U7") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "74xx:CD74HC4067SM") (at 264.16 260.35 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid b1561baa-2e2f-47b3-902e-f11ebb1745b7) + (property "Reference" "AMUX3" (at 266.3541 233.68 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "CD74HC4067SM" (at 266.3541 236.22 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_SO:SSOP-24_5.3x8.2mm_P0.65mm" (at 290.83 285.75 0) + (effects (font (size 1.27 1.27) italic) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf" (at 255.27 238.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C179326" (at 264.16 260.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 9a9d3b84-4d27-4ace-9760-b876a6dd30eb)) + (pin "10" (uuid fdf8dbe4-8db2-4efe-b31b-e68d70614f95)) + (pin "11" (uuid 02a3e74e-5530-46d4-b2a3-732f22556c63)) + (pin "12" (uuid 63c49008-9d6b-43e8-aa3e-f6f2163f10fc)) + (pin "13" (uuid 1e517d54-39cb-4758-8934-7315c5343b7e)) + (pin "14" (uuid 4ce15267-d8a0-40f8-8548-b36b69fc5d4d)) + (pin "15" (uuid 7fa601ed-718f-46e4-8a79-3f0f159ce8af)) + (pin "16" (uuid 35722540-3cb2-448d-b59c-0644d3df8d9e)) + (pin "17" (uuid 42ec27e7-3b3c-4718-9a96-addf2cc1a8bc)) + (pin "18" (uuid 24231a9a-7656-42fb-b622-b5ed9a765b56)) + (pin "19" (uuid 6114ff71-4f65-43c0-87ac-d06a664a8726)) + (pin "2" (uuid e12b2e26-c9ad-4470-ad57-418f48c4eece)) + (pin "20" (uuid f63402de-bfec-413e-8130-04ab3036e0d3)) + (pin "21" (uuid eeb51902-1995-43d7-b6a7-42e76f50e4a6)) + (pin "22" (uuid e20b3d44-4868-4ac6-9296-114c17acace5)) + (pin "23" (uuid d1e1e47f-e84b-4e2d-a7d3-fb4cf373c118)) + (pin "24" (uuid cc483cda-c414-4819-93c3-19dd7773436b)) + (pin "3" (uuid 14bcd4eb-7b49-4577-8f07-373b8724d332)) + (pin "4" (uuid 10ff273d-d0ea-4280-b41e-c469be1376ab)) + (pin "5" (uuid 3264058c-2830-42ef-968a-34f9c447559c)) + (pin "6" (uuid cd33ca87-db99-4650-825b-f1fcc66f8c00)) + (pin "7" (uuid 4d39b02b-6472-434a-b94a-ef2b80e5ac3d)) + (pin "8" (uuid 5d17df3c-6f95-43c1-a6fd-fef36ef25b61)) + (pin "9" (uuid 054c74c5-c3a3-4645-822b-ed2b8f0b12f4)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "AMUX3") (unit 1) + ) + ) + (project "macrolev" + (path "/4edfdb67-213e-423d-a4d4-209978eccf9d" + (reference "AMUX1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 166.37 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid b45b3255-5d38-477f-af8d-48199cd7cfa4) + (property "Reference" "#PWR065" (at 166.37 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 166.37 91.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 166.37 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 166.37 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 3dcce806-3c77-47bb-9f74-cca3b6a9569e)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR065") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 143.51 171.45 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid b4f99e28-cbc9-4dd1-8195-a70a7da778e9) + (property "Reference" "#PWR0117" (at 143.51 175.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 143.51 166.37 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 143.51 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 143.51 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7a3bd785-b84d-4bba-a321-208dd5d0cdf7)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0117") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 199.39 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid b73dc2fe-f631-4ad7-aaa6-4996157ff31f) + (property "Reference" "#PWR066" (at 199.39 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 199.39 91.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 199.39 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 199.39 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 390c1205-37e8-4f33-89e5-2da2c118256b)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR066") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 265.43 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid b7c3193a-70ae-40ab-91df-ef69950ad878) + (property "Reference" "#PWR0108" (at 265.43 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 265.43 160.02 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 265.43 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 265.43 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a185c202-257a-4866-ba8e-aafe70419ffd)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0108") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 298.45 134.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid b86a5906-6dfd-499f-aa45-9994c5f63b6e) + (property "Reference" "#PWR096" (at 298.45 138.43 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 298.45 129.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 298.45 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 298.45 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0ef3f515-0bf0-4abe-b8bf-7c955339f912)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR096") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 199.39 58.42 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid b86aa51d-dc87-483a-8c4e-bf45485b19a2) + (property "Reference" "#PWR036" (at 199.39 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 199.39 53.34 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 199.39 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 199.39 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 2ed0e656-1817-4e1e-9c1c-d547107de17d)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR036") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 496.57 91.44 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid b88cd75c-38f9-4ea1-9b6b-6c82249c12fc) + (property "Reference" "#PWR060" (at 496.57 97.79 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 496.57 96.52 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 496.57 91.44 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 496.57 91.44 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid f3dad30d-31f8-4af6-a06d-3aa2cae2bc6e)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR060") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 444.5 231.14 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid b908f51e-fc75-4689-955e-0584ec07ee72) + (property "Reference" "C3" (at 448.31 229.87 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100n" (at 448.31 232.41 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (at 445.4652 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 444.5 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C1525" (at 444.5 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d00f39cf-679a-4263-ad9d-9fe6c39b1e17)) + (pin "2" (uuid 0ea7637a-aec8-440a-a538-4c9e8f9a7ca1)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C3") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 466.09 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid b980c516-8a46-4717-8f7a-16d979f66433) + (property "Reference" "U14" (at 459.74 30.4799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 459.74 33.0199 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 466.09 40.64 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 466.09 15.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 466.09 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 9e3b6ef6-f735-4373-b21a-81ff48552a6a)) + (pin "2" (uuid 84085a90-3fe6-4474-9383-2138f26ce5d9)) + (pin "3" (uuid b16d4183-d7b0-42a1-bbc5-6378f33b00da)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U14") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 264.16 288.29 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid ba24cfc5-2fac-48f1-b80e-535a912ceb05) + (property "Reference" "#PWR0144" (at 264.16 294.64 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 264.16 293.37 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 264.16 288.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 264.16 288.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0f5b777b-b25d-48f9-a51e-e0880278b4e2)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0144") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 331.47 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid ba6a9904-9595-497a-a09b-3f9c97208875) + (property "Reference" "#PWR0110" (at 331.47 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 331.47 160.02 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 331.47 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 331.47 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 93f23b98-fbc7-4c01-a8b6-df6f341c02c8)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0110") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Regulator_Linear:AMS1117-3.3") (at 280.67 344.17 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid bc020900-7942-4e4c-91ee-971f3fe6de22) + (property "Reference" "U68" (at 280.67 337.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "AMS1117-3.3" (at 280.67 340.36 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-223-3_TabPin2" (at 280.67 339.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.advanced-monolithic.com/pdf/ds1117.pdf" (at 283.21 350.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C6186" (at 280.67 344.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 97108e55-ab41-4f0f-916f-0ef6f0aa5ab6)) + (pin "2" (uuid 52e787ef-ccf6-4b9b-b307-17fda8ed73f8)) + (pin "3" (uuid 4bf75716-5727-48dd-b8d4-7dfb4022607a)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U68") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 27.94 236.22 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid bc8f252a-1eaa-49de-9d82-75e5c97dca50) + (property "Reference" "C17" (at 31.75 234.95 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100n" (at 31.75 237.49 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (at 28.9052 240.03 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 27.94 236.22 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C1525" (at 27.94 236.22 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 38d77e3b-97df-4f31-9f7a-3907d39ffa4e)) + (pin "2" (uuid b398e3ec-423d-4738-ba14-1eb9165f268f)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C17") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 364.49 116.84 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid beb68778-a60f-4ef2-b036-57ad0c6e94cc) + (property "Reference" "#PWR085" (at 364.49 123.19 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 364.49 121.92 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 364.49 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 364.49 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 59c7486b-22eb-4877-8dcf-eff991932152)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR085") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 199.39 21.59 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid c0d2efc1-5c5e-4ac4-9513-473f8237d847) + (property "Reference" "#PWR06" (at 199.39 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 199.39 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 199.39 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 199.39 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid eac6af96-28dd-49a0-a1dd-b0d8383ca553)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR06") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 232.41 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid c25374f5-6995-473c-b5b4-6917a7c94b3c) + (property "Reference" "#PWR067" (at 232.41 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 232.41 91.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 232.41 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 232.41 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ad14a125-f855-45c1-bfb8-e6a6458612f3)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR067") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 553.72 224.79 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid c2fd7892-0a27-41b4-9600-5743cc035fb5) + (property "Reference" "#PWR0149" (at 553.72 228.6 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 553.72 219.71 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 553.72 224.79 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 553.72 224.79 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ea3e6a87-8a0e-4c47-a195-5894a2e3f245)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0149") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 463.55 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid c3293750-5273-4a04-ae3c-48f40d38b349) + (property "Reference" "#PWR074" (at 463.55 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 463.55 91.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 463.55 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 463.55 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 31615aa4-8472-4dba-bcd0-4f5c7562668e)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR074") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "74xx:CD74HC4067SM") (at 116.84 261.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid c3f7913d-c849-4689-ba45-d0980b10e063) + (property "Reference" "AMUX1" (at 119.0341 234.95 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "CD74HC4067SM" (at 119.0341 237.49 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_SO:SSOP-24_5.3x8.2mm_P0.65mm" (at 143.51 287.02 0) + (effects (font (size 1.27 1.27) italic) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf" (at 107.95 240.03 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C179326" (at 116.84 261.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid bac37b44-cd2d-40e6-b9c1-22815eaa7067)) + (pin "10" (uuid db931347-5a35-47bb-b431-5d49b1cccfc3)) + (pin "11" (uuid 1725e1c9-7be8-493e-9915-321c0b8d9af6)) + (pin "12" (uuid 51d19a00-5a0a-4619-aae8-6700dcf1fe84)) + (pin "13" (uuid feb0ceb8-2bcd-409d-8d5a-ddc13ccf1c6e)) + (pin "14" (uuid 5c5bab5b-5a53-4476-91ad-2fef3cb31591)) + (pin "15" (uuid 7f99d836-d709-4a6a-823f-69ec00e663c0)) + (pin "16" (uuid a9132176-e5e2-4b9b-9f2e-97ecb5024bd8)) + (pin "17" (uuid bb628868-e72a-4dbd-9bc9-4ad0c3580b50)) + (pin "18" (uuid 416874ab-3d7d-4c12-832a-3cb883c5a268)) + (pin "19" (uuid d355679d-0df0-4f8c-bc3e-79c4d9673eab)) + (pin "2" (uuid 6e956d8d-5259-43a0-a1e2-22a09cc3ec74)) + (pin "20" (uuid 0c6f3d0b-7ee1-45c9-b325-b2f226038883)) + (pin "21" (uuid 32c0a3aa-ee00-4aea-8648-6cd0ddb6f838)) + (pin "22" (uuid 3b03e4ba-553e-41ce-9ce2-f7c9a764ffa8)) + (pin "23" (uuid 5ee4ed8c-7253-4b62-ba09-14413ecc4950)) + (pin "24" (uuid b6585721-846e-4568-a7ac-4f71eb424de1)) + (pin "3" (uuid 225fe9e8-ab56-4468-949d-5395fb8b2d84)) + (pin "4" (uuid b2f21a65-355a-411d-868d-5b3fbb39ead8)) + (pin "5" (uuid faedd3e0-a2a2-47c1-b12c-7a90514ecc07)) + (pin "6" (uuid 44bd78d7-a020-481d-9b27-2c48d2be434b)) + (pin "7" (uuid 2e6dccbb-6dc5-4122-8414-8b4b0c196bc1)) + (pin "8" (uuid 732c47e5-e82d-47a0-87ae-b3f84d5d90cf)) + (pin "9" (uuid 9ae85fc0-0f48-4745-af43-6555d4d0aa73)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "AMUX1") (unit 1) + ) + ) + (project "macrolev" + (path "/4edfdb67-213e-423d-a4d4-209978eccf9d" + (reference "AMUX1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 27.94 240.03 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid c695d15d-ca07-4faa-b8f7-c8b349434d4f) + (property "Reference" "#PWR0156" (at 27.94 246.38 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 27.94 245.11 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 27.94 240.03 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 27.94 240.03 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid f5b2f2b4-dc8e-4cf6-b737-91021d884e01)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0156") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 67.31 116.84 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid c7153dad-1b54-420b-98d3-e9886b984f29) + (property "Reference" "#PWR076" (at 67.31 123.19 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 67.31 121.92 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 67.31 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 67.31 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 8c5b865e-cb6f-4428-9793-be7d34db0c58)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR076") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 267.97 144.78 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid c8a770ef-04dd-41b6-8bb2-97db4e72dbe5) + (property "Reference" "U51" (at 261.62 143.5099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 261.62 146.0499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 267.97 153.67 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 267.97 128.27 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 267.97 144.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6c587542-9bc8-44eb-b066-58171c88c478)) + (pin "2" (uuid e526d084-baa9-4c37-8f5b-93a04d2a4842)) + (pin "3" (uuid 525e18aa-8040-4ab6-a269-e319c158fe38)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U51") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 496.57 21.59 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid c8e2d611-0c05-4bf7-a15e-e7f9da6b1f41) + (property "Reference" "#PWR015" (at 496.57 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 496.57 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 496.57 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 496.57 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7b597443-bb3d-4b9b-81ca-c2715ea4ce2b)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR015") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 168.91 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid c8f39f72-5d11-4fcb-baab-5bd245e18882) + (property "Reference" "U5" (at 162.56 30.4799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 162.56 33.0199 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 168.91 40.64 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 168.91 15.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 168.91 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c7fc60a5-ff9e-41f9-a053-e9834e3472b9)) + (pin "2" (uuid 6bd09eb9-81c8-4ce1-acba-b37e8a6a6787)) + (pin "3" (uuid 254a5ff2-c8a5-4adb-8130-12a772e5aa10)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U5") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 499.11 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid c91bdf50-a342-45b6-b4ef-f6bbcb4e561d) + (property "Reference" "U15" (at 492.76 30.4799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 492.76 33.0199 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 499.11 40.64 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 499.11 15.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 499.11 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 4a41f6c7-805d-4ba0-a9fa-e7d8d4dd0882)) + (pin "2" (uuid 7154a723-0f2f-4842-84e0-b5468edf30a0)) + (pin "3" (uuid 393ab8de-06fe-474b-8089-f1faa150b531)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U15") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 300.99 144.78 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid c984d580-310c-4923-908f-835fb9918d3a) + (property "Reference" "U52" (at 294.64 143.5099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 294.64 146.0499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 300.99 153.67 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 300.99 128.27 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 300.99 144.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e470c746-6aee-4b01-8d36-892a65b6a9e0)) + (pin "2" (uuid f05d2cfc-def3-40c9-b625-5422769374ad)) + (pin "3" (uuid cae78286-4dbd-4469-9e82-edd6cfaf1893)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U52") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 300.99 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid c9d05ebb-7706-4b49-bf3c-2e5a32779af2) + (property "Reference" "U9" (at 294.64 30.4799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 294.64 33.0199 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 300.99 40.64 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 300.99 15.24 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 300.99 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 2236d1bc-5e4e-45b3-8fe8-bf3a7bd25df4)) + (pin "2" (uuid fc5ad77b-b5da-4c63-9b90-d8441ea3b3df)) + (pin "3" (uuid fcaa4f92-8141-4e85-bb03-00a4efd53f70)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U9") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Motor:Motor_DC") (at 80.01 353.06 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid cbb77a94-0931-495a-a998-220f211ac964) + (property "Reference" "M?" (at 82.55 345.44 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Motor_DC" (at 82.55 347.98 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 82.296 353.06 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 82.296 353.06 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 02bc6410-46ab-4459-b06f-b999a0ccf035)) + (pin "2" (uuid fb836c04-e9cf-4324-b84e-8ff6e321c63a)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "M?") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 367.03 106.68 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid cca632a6-2ab4-4721-a4fd-c61604fb9897) + (property "Reference" "U41" (at 360.68 105.4099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 360.68 107.9499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 367.03 115.57 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 367.03 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 367.03 106.68 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 8692fd4b-0e96-4907-9ba7-f07acb75875e)) + (pin "2" (uuid 4b5e2e5c-2465-4d51-983b-452af6241a8d)) + (pin "3" (uuid b60697fc-6e85-4458-bf29-fbe5e51310a6)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U41") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 199.39 78.74 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid ccf9978a-5ada-4709-a48f-c9bc6f03d7a5) + (property "Reference" "#PWR051" (at 199.39 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 199.39 83.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 199.39 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 199.39 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d066f03a-8ee9-4d26-96ad-70aa04232e11)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR051") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 397.51 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid cd77a403-ffc0-4cb3-b285-a5a1a2ca367d) + (property "Reference" "#PWR027" (at 397.51 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 397.51 46.99 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 397.51 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 397.51 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 81c3fdb7-913f-4505-a687-1dd6ffea1d0e)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR027") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 201.93 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid cda39b0a-8572-4a1c-8050-f6a689e9259e) + (property "Reference" "U21" (at 195.58 67.3099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 195.58 69.8499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 201.93 77.47 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 201.93 52.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 201.93 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid b5645fa6-13b9-414a-8587-c41616e0624e)) + (pin "2" (uuid dbdcbaee-e0f0-40aa-8d13-25a73696dd60)) + (pin "3" (uuid a1ee5244-04e5-46af-9e6e-a97640514592)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U21") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 113.03 181.61 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid ce32dbdd-93b9-404d-9bd9-c36e28ac4167) + (property "Reference" "U59" (at 106.68 180.3399 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 106.68 182.8799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 113.03 190.5 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 113.03 165.1 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 113.03 181.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 3037a7c3-c205-40d4-bd4d-8f7c5fda0a89)) + (pin "2" (uuid 44cccfd2-54a1-404f-9131-6355d9025d11)) + (pin "3" (uuid 4ab31f22-8169-4b0c-9e30-7968b6177c6a)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U59") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:FerriteBead") (at 541.02 226.06 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid d2e40f87-dbb7-4dc9-80fd-3e10557e1169) + (property "Reference" "FB1" (at 540.9692 218.44 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "120R" (at 540.9692 220.98 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Inductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolder" (at 541.02 227.838 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 541.02 226.06 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C76892" (at 541.02 226.06 90) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 509b32e2-802d-4641-9769-1c9097afa603)) + (pin "2" (uuid e62e9bdf-effd-421c-b87c-808132898ffd)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "FB1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 265.43 191.77 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid d31b9fc3-09b0-4e18-9890-41daa8e6f93f) + (property "Reference" "#PWR0131" (at 265.43 198.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 265.43 196.85 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 265.43 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 265.43 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 58bb6f9a-6e74-4008-b6cb-ecb9adc89dfa)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0131") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 73.66 364.49 270) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid d3c6dba3-2148-493c-8b99-8d46e9dd3467) + (property "Reference" "C?" (at 73.66 358.14 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "1u" (at 73.66 360.68 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 69.85 365.4552 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 73.66 364.49 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ad87f027-fe33-420a-b119-94a543e4f0cf)) + (pin "2" (uuid 32d28050-076c-46d9-8b06-c5a7f730ddc6)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C?") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 331.47 58.42 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid d63c5dc8-cc72-4219-9b41-95f23d4a1e3c) + (property "Reference" "#PWR040" (at 331.47 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 331.47 53.34 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 331.47 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 331.47 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0fae315f-53a8-4f9b-bd8e-826dedb963b5)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR040") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 232.41 134.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid d755ec01-df24-4a69-9ca0-21d6cade41f6) + (property "Reference" "#PWR094" (at 232.41 138.43 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 232.41 129.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 232.41 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 232.41 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid b27481d2-75d2-4d6a-9ef4-9305210e9981)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR094") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 298.45 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid d85793e1-6253-46f6-853b-6462c35305ba) + (property "Reference" "#PWR069" (at 298.45 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 298.45 91.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 298.45 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 298.45 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 9535e3a8-9db9-409f-89d2-358f2e5e05cd)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR069") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Connector_Generic:Conn_01x04") (at 530.86 281.94 0) (mirror x) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid d89858ef-dfc5-446b-9260-f70ea3f86f74) + (property "Reference" "J3" (at 533.4 281.94 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "DEBUG" (at 533.4 279.4 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Horizontal" (at 530.86 281.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 530.86 281.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7a7a72e9-a4fa-4f64-8833-5c988e5f4f48)) + (pin "2" (uuid 22d341d4-166b-4ded-b838-5b25707b2df1)) + (pin "3" (uuid 9a41bbb2-4637-4ac6-bee8-966b9deb5c76)) + (pin "4" (uuid a5d33861-45e9-48da-b05a-a7c095058a7d)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "J3") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 496.57 171.45 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid d8dc1689-3338-4dd2-a7a4-f18b08634546) + (property "Reference" "#PWR0125" (at 496.57 175.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 496.57 166.37 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 496.57 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 496.57 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d0ab70c8-242f-459b-b7ae-4ace0d183902)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0125") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 499.11 181.61 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid d9199324-8422-4ba7-bbcb-05df0672dea8) + (property "Reference" "U67" (at 492.76 180.34 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 492.76 182.88 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 499.11 190.5 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 499.11 165.1 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 499.11 181.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 9d92a90c-7b4a-4cb3-bdc5-af00a3306d57)) + (pin "2" (uuid 6aba7229-1ce9-43e9-a3c4-d1263a94cc90)) + (pin "3" (uuid f07908da-1058-4af8-9479-c3ecd919142d)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U67") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 133.35 134.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid d96f6b6a-8739-43a7-951e-d2d93241b808) + (property "Reference" "#PWR091" (at 133.35 138.43 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 133.35 129.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 133.35 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 133.35 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 35444fbc-cb58-4681-b4de-3bd7c0bbaa98)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR091") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 364.49 134.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid db83006c-d3ef-4ece-80a2-f5089a0134dc) + (property "Reference" "#PWR098" (at 364.49 138.43 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 364.49 129.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 364.49 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 364.49 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 673ff535-4236-46fb-bc8c-40084532d5d8)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR098") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 367.03 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid dbcddb15-c8aa-4591-b1b1-f6b13b807a7a) + (property "Reference" "U26" (at 360.68 67.3099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 360.68 69.8499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 367.03 77.47 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 367.03 52.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 367.03 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 91b2131e-53d9-46b8-89cc-9648497f5844)) + (pin "2" (uuid d1c9a6b5-6a6f-4c7e-86fb-93f0bf4de12a)) + (pin "3" (uuid 4b1a5bae-adc9-4695-ad18-16a379f5f2a2)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U26") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 167.64 234.95 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid dd4cc349-9a8c-44cc-9b77-666c83fe21d1) + (property "Reference" "C14" (at 171.45 233.68 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100n" (at 171.45 236.22 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder" (at 168.6052 238.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 167.64 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C1525" (at 167.64 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 1007cecd-f211-4904-87bd-035e2f14c046)) + (pin "2" (uuid 0b5b2f3a-578b-4d7c-b916-92024cda3beb)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C14") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 419.1 237.49 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid dfb2599e-64b2-4756-863f-73967402e606) + (property "Reference" "#PWR0148" (at 419.1 243.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 419.1 242.57 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 419.1 237.49 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 419.1 237.49 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0d4629e9-fcb6-40ea-ac57-d44b4fc05749)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0148") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 430.53 21.59 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid e0139164-01e4-4eb8-a864-b7c262cb2c14) + (property "Reference" "#PWR013" (at 430.53 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 430.53 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 430.53 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 430.53 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0c44760d-d1aa-4f28-bfa3-73b3c3da89e2)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR013") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 443.23 271.78 0) (mirror y) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid e0c068b8-0fdd-4c5e-8b82-dbceb7e4345c) + (property "Reference" "#PWR0160" (at 443.23 275.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 443.23 266.7 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 443.23 271.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 443.23 271.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid cac17525-b9a9-4c14-89ab-0dfcd0521bf1)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0160") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 201.93 181.61 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid e28c27d5-a37f-4959-98f6-0753c6a99817) + (property "Reference" "U61" (at 195.58 180.3399 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 195.58 182.8799 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 201.93 190.5 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 201.93 165.1 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 201.93 181.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 39bfc0e2-944d-45c5-b5c0-7afa465750f9)) + (pin "2" (uuid 9266ddc4-77cb-4d1f-b907-f6d9aa4529e7)) + (pin "3" (uuid 5915e9cd-46de-4f45-938e-53f138f30c63)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U61") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "jlcpcb:GT-USB-7010ASV") (at 370.84 345.44 0) (mirror y) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid e2b88490-2534-49ca-a050-8c4a8cbccbd7) + (property "Reference" "U70" (at 372.11 335.28 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "GT-USB-7010ASV" (at 372.11 337.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "JLCPCB:USB-C-SMD_G-SWITCH_GT-USB-7010ASV" (at 370.84 355.6 0) + (effects (font (size 1.27 1.27) italic) hide) + ) + (property "Datasheet" "https://atta.szlcsc.com/upload/public/pdf/source/20220407/8043DBBC37E1BDE9D4FD36EE7A4A9BB9.pdf" (at 373.126 345.313 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + (property "LCSC" "C2988369" (at 370.84 345.44 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 4f2f8d97-e1cb-4825-ad49-4aad0055adb1)) + (pin "2" (uuid aaad4ddc-89d0-4548-8162-7ba358650fd3)) + (pin "3" (uuid e5aad486-2c7d-428b-957f-393b1ac09b0a)) + (pin "4" (uuid 4ecf23cf-ca43-4d0c-8bd9-ccddf850abac)) + (pin "A1B12" (uuid 8922f3ad-ba1f-466f-9781-46c0491248ef)) + (pin "A4B9" (uuid 1bbdba36-7335-4f93-96e8-f8df001d040b)) + (pin "A5" (uuid 66ee9baf-a93b-4b6a-86f1-261d4eb73485)) + (pin "A6" (uuid 0264b826-2441-4bb5-ad41-5a9cc1b3b701)) + (pin "A7" (uuid b4ffe00a-74a0-423b-b973-ca1844cf081d)) + (pin "A8" (uuid 90549abd-a1f7-4c2e-b3de-554b5e6d3ed8)) + (pin "B1A12" (uuid 7b0054e7-6141-46b8-b629-2863430cbf53)) + (pin "B4A9" (uuid 0a4f0097-0ed7-42c6-a76d-ab46d7e07091)) + (pin "B5" (uuid a6a76cae-3dfd-4b2a-b3d8-a78919564b6b)) + (pin "B6" (uuid 86a4a80c-bfcc-49bd-bd89-a77daba67a95)) + (pin "B7" (uuid 601b5352-ec1a-422a-a405-a68290c5bd33)) + (pin "B8" (uuid 3d9fc851-e665-44c5-a45b-ac9f66fd8e55)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U70") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 463.55 171.45 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid e3b7b8c5-bb94-493b-90c5-fc9637854453) + (property "Reference" "#PWR0124" (at 463.55 175.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 463.55 166.37 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 463.55 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 463.55 171.45 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c917dfb9-c3db-4e31-915c-fb9cd183f9a5)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0124") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 241.3 231.14 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid e3fda0ce-de09-43e8-abcd-f36010a78876) + (property "Reference" "#PWR0157" (at 241.3 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 241.3 226.06 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 241.3 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 241.3 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 002f4ad3-0da6-4f45-86e8-b9feeb6e7380)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0157") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 57.15 369.57 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid e446cd32-8efa-4dfa-93ec-1b4da66e20ef) + (property "Reference" "#PWR0153" (at 57.15 375.92 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 57.15 374.65 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 57.15 369.57 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 57.15 369.57 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a3c9c2cf-8dd4-4ca2-afa0-2ee71115ab52)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0153") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 300.99 106.68 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid e484c659-8a1f-4e03-87f2-987a633434b9) + (property "Reference" "U39" (at 294.64 105.4099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 294.64 107.9499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 300.99 115.57 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 300.99 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 300.99 106.68 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 3a3ba662-63df-4252-865b-486bf7f5ec59)) + (pin "2" (uuid ec8622f9-26f2-448a-8ef8-795e3474e504)) + (pin "3" (uuid f7cacd9d-ff87-47a2-bb44-0f0658575a6f)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U39") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+5V") (at 257.81 342.9 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid e502d7cb-0f19-4471-9a6d-37cefc55ca11) + (property "Reference" "#PWR0161" (at 257.81 346.71 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+5V" (at 257.81 337.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 257.81 342.9 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 257.81 342.9 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 85f7562b-58fb-4117-b259-19f8a6e0f901)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0161") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 397.51 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid e5364dee-a493-4e40-8584-0f7cd8921b8c) + (property "Reference" "#PWR072" (at 397.51 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 397.51 91.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 397.51 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 397.51 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid dbb40769-6761-4e38-b5b7-826a85cfc9b0)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR072") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 102.87 106.68 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid e57bbcce-7b29-4c1b-a809-3c32b3fb8c58) + (property "Reference" "U33" (at 96.52 105.4099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 96.52 107.9499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 102.87 115.57 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 102.87 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 102.87 106.68 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid bee50df2-692e-48b0-ad04-dbe57ab41555)) + (pin "2" (uuid af30aab8-fafb-4ea5-9f05-d2ab13e32ade)) + (pin "3" (uuid 0875303b-b18a-4f9a-9773-c5924e19abd4)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U33") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:R") (at 453.39 280.67 0) (mirror y) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid e6634371-87f3-42f6-b2b4-0fe98e7e8826) + (property "Reference" "R1" (at 450.85 279.4 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "2.2K" (at 450.85 281.94 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder" (at 455.168 280.67 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 453.39 280.67 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C25862" (at 453.39 280.67 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e42c8823-edc3-4b1c-a69f-152476979074)) + (pin "2" (uuid 86070070-8049-43fa-929b-c51491e58f67)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "R1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 463.55 78.74 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid e9879c17-d7a2-4412-82ca-d3eb13521104) + (property "Reference" "#PWR059" (at 463.55 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 463.55 83.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 463.55 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 463.55 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5d16fbc2-eb5f-4c17-85ee-98b65795db4f)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR059") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 334.01 181.61 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid e99b4d7f-94a3-43ce-81d8-f3ce982fbaef) + (property "Reference" "U63" (at 327.66 180.34 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 327.66 182.88 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 334.01 190.5 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 334.01 165.1 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 334.01 181.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 16ce34d2-37b1-4e11-bfbe-a8e505ccf1c8)) + (pin "2" (uuid 0d4a5881-0efa-4f7c-8491-04d145dc90c3)) + (pin "3" (uuid 4007946a-5b84-4469-b7b4-a1ce625eab78)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U63") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 133.35 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid ea66c988-c1e0-4b0d-89b7-95d0445a307d) + (property "Reference" "#PWR064" (at 133.35 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 133.35 91.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 133.35 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 133.35 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a8bdc664-16a3-422d-88c4-b3b39a58b9a8)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR064") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 334.01 144.78 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid ed2ee3ce-ecfd-4ebc-bd9d-a5a25c8e52a8) + (property "Reference" "U53" (at 327.66 143.5099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 327.66 146.0499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 334.01 153.67 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 334.01 128.27 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 334.01 144.78 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid df93791f-9a19-4fb7-a6cc-eacb133437b9)) + (pin "2" (uuid 0e039ea9-5f09-4f5d-8e99-e60c68baa463)) + (pin "3" (uuid 2a9f0e06-6f51-4386-8635-759f15221efa)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U53") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:Crystal_GND24") (at 149.86 353.06 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid ed77ccf1-59c6-41f7-a4a7-23233b6784f8) + (property "Reference" "Y1" (at 152.4 345.44 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "25MHz/20ppm/15pF" (at 161.29 347.98 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm_HandSoldering" (at 149.86 353.06 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 149.86 353.06 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C387396" (at 149.86 353.06 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 66a1363f-2333-4028-83f9-521475df947b)) + (pin "2" (uuid 2385d3b8-98fb-41a5-80ee-0d43714f043b)) + (pin "3" (uuid 67caafa0-ba81-4ca9-8dc2-3806bf5e58e7)) + (pin "4" (uuid a910d19e-eb1a-4cc5-973b-5df9039b74fd)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "Y1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 133.35 116.84 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid ef3edfa8-2349-4bff-b8d7-9b27a64c60aa) + (property "Reference" "#PWR078" (at 133.35 123.19 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 133.35 121.92 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 133.35 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 133.35 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 87f90017-ed84-4ffc-9665-63a24ac9ef07)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR078") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 265.43 116.84 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid ef6d38e2-e9d3-4e61-b6cb-3c13452e87e7) + (property "Reference" "#PWR082" (at 265.43 123.19 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 265.43 121.92 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 265.43 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 265.43 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 4f4d35ba-95f1-4dc0-9c6d-64c2a3df6f46)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR082") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "74xx:CD74HC4067SM") (at 50.8 261.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f0e5f9b2-249d-409a-b7fc-f2537b573282) + (property "Reference" "AMUX0" (at 52.9941 234.95 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "CD74HC4067SM" (at 52.9941 237.49 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_SO:SSOP-24_5.3x8.2mm_P0.65mm" (at 77.47 287.02 0) + (effects (font (size 1.27 1.27) italic) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf" (at 41.91 240.03 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C179326" (at 50.8 261.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 4a881d60-6c73-4b42-a1dd-06d606fe815e)) + (pin "10" (uuid 7f52ef0c-0b8e-4ca1-8904-017d35eada09)) + (pin "11" (uuid b31ddd4e-584c-405f-99c4-abac5ad798a4)) + (pin "12" (uuid 971095e1-f454-4af9-823d-4d475144d7ad)) + (pin "13" (uuid 3a659208-d811-40a1-bd00-dbc65a212a61)) + (pin "14" (uuid cc557e8c-d1ee-4412-acc8-6dc7759199c6)) + (pin "15" (uuid 4b0b4fe3-8b94-4eb4-ac3a-0279e69ac99f)) + (pin "16" (uuid e274c3d1-3bb0-4698-a939-37e0872e2344)) + (pin "17" (uuid 32a52643-8604-4e2b-b0cf-22712adcc47d)) + (pin "18" (uuid 6ee41417-b17b-45f8-a05d-48a7919591e5)) + (pin "19" (uuid f0a7eeee-1f17-4bbc-a098-cb2053b29732)) + (pin "2" (uuid afb33043-2f23-4d11-a720-e619b0925b9b)) + (pin "20" (uuid 8317cd75-e126-4860-8c0e-5f61b0cdec10)) + (pin "21" (uuid 55ce942f-cbfa-4044-a030-568dc9d98d58)) + (pin "22" (uuid 63d88787-4d9d-4e93-91f0-7b130d1d20b5)) + (pin "23" (uuid 278b0d02-6c6a-4006-877c-5cb44532da22)) + (pin "24" (uuid 2bb95d6d-336b-47bc-8f63-f29b52afc7a2)) + (pin "3" (uuid 734b65cb-6342-4771-b40e-9ec003ec77f8)) + (pin "4" (uuid af8e5628-bab8-4992-8ead-916010959274)) + (pin "5" (uuid 21ede08e-29e0-49a2-a296-4b9b9c465335)) + (pin "6" (uuid 9c388755-e791-477f-87eb-a6dc0505ea8c)) + (pin "7" (uuid 0fb70a39-735c-40d0-9e4b-913a201ba7a0)) + (pin "8" (uuid dd137b6a-7d37-43e0-ae7d-d898ca9673bb)) + (pin "9" (uuid 9db3fa13-e20a-494a-a7e7-29bb0b6dc387)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "AMUX0") (unit 1) + ) + ) + (project "macrolev" + (path "/4edfdb67-213e-423d-a4d4-209978eccf9d" + (reference "AMUX1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+5V") (at 57.15 344.17 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f101b0a2-cbb6-4740-bd9e-a76692e5755e) + (property "Reference" "#PWR0172" (at 57.15 347.98 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+5V" (at 57.15 339.09 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 57.15 344.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 57.15 344.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid b65fb23e-06b9-4811-a553-f3b435bbe54c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0172") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 331.47 134.62 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f1dd118b-3f7f-4cc4-a023-be2595d33005) + (property "Reference" "#PWR097" (at 331.47 138.43 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 331.47 129.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 331.47 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 331.47 134.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 3f86f293-49ef-44b8-bfb9-ad340df19a48)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR097") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 143.51 191.77 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f38b747c-f268-4c9e-8d2d-65197424c846) + (property "Reference" "#PWR0128" (at 143.51 198.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 143.51 196.85 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 143.51 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 143.51 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a4382949-f0d0-4753-8119-6f3d0c253e77)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0128") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 133.35 21.59 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f424bd32-af7a-4bc5-a29f-409a24c2bb11) + (property "Reference" "#PWR04" (at 133.35 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 133.35 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 133.35 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 133.35 21.59 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid f0aa641d-047e-44df-91ad-f52ce43de62b)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR04") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 419.1 231.14 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f4df22e1-0389-4a64-8fee-6e9273e5d1e3) + (property "Reference" "C1" (at 422.91 229.87 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "10u" (at 422.91 232.41 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder" (at 420.0652 234.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 419.1 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C19702" (at 419.1 231.14 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 2303e7cd-70da-4437-8401-21ca7b036ece)) + (pin "2" (uuid 7acd116d-7ba5-45c0-9d36-a8afb920b372)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "C1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 463.55 116.84 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f526795f-840a-407e-8035-7e99f8afe429) + (property "Reference" "#PWR088" (at 463.55 123.19 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 463.55 121.92 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 463.55 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 463.55 116.84 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 02cc32fd-f66f-445b-a9bb-6e2de0191aa3)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR088") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 100.33 154.94 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f6bc548c-f5b9-4a31-90fa-b26aba99c234) + (property "Reference" "#PWR0103" (at 100.33 161.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 100.33 160.02 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 100.33 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 100.33 154.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 4f2af640-e66b-4985-88ca-93e95d8ca2ac)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0103") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Driver_Haptic:DRV2605LDGS") (at 57.15 359.41 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f78b184a-318a-45d1-8e29-44b780f29f33) + (property "Reference" "U?" (at 59.3441 369.57 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "DRV2605LDGS" (at 59.3441 372.11 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_SO:VSSOP-10_3x3mm_P0.5mm" (at 57.15 359.41 0) + (effects (font (size 1.27 1.27) italic) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/ds/symlink/drv2605l.pdf" (at 57.15 359.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c1859cd2-960e-4229-983b-395e81422051)) + (pin "10" (uuid 27a6a959-5a62-4fa5-ba4f-e5008249741c)) + (pin "2" (uuid a622bf79-c41d-4992-98b1-5c3e4b789ad5)) + (pin "3" (uuid 5426a860-b7fe-4221-9bee-144d5dbf9555)) + (pin "4" (uuid 6b4843a4-fcb5-4faf-91f0-b6f0f9aa7cbb)) + (pin "5" (uuid 64e3ffd9-9490-41fd-8bf7-545279091840)) + (pin "6" (uuid f01bf48e-6460-402a-9527-a8566418b38c)) + (pin "7" (uuid 40a43815-80bb-4a91-85f1-767e3e51dc06)) + (pin "8" (uuid 4b7ed303-c847-4660-9a27-b24e366b633d)) + (pin "9" (uuid cce66951-38d0-4c17-b955-4fbe0dec0121)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U?") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 463.55 191.77 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f81fc27e-4499-4f97-9d0d-8c46456bc0e9) + (property "Reference" "#PWR0135" (at 463.55 198.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 463.55 196.85 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 463.55 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 463.55 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 60868011-94d3-4bff-bac8-fbb278378cca)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0135") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 168.91 106.68 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f838ae7e-affe-4531-98b2-530eaa2a2d91) + (property "Reference" "U35" (at 162.56 105.4099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 162.56 107.9499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 168.91 115.57 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 168.91 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 168.91 106.68 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ed9c0920-0bb8-41b8-a8c7-c98af3abc969)) + (pin "2" (uuid 4747fd1d-bf40-4bc0-804f-c7e08f8cef0c)) + (pin "3" (uuid a96cec9b-b58f-48cf-b9ef-9cfceb222a92)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U35") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 50.8 289.56 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f8667f1e-53b0-4f0b-8da1-cef616f7c13d) + (property "Reference" "#PWR0139" (at 50.8 295.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 50.8 294.64 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 50.8 289.56 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 50.8 289.56 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid bc69cafc-4832-46ae-9b1c-78ca5cd3609f)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0139") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 33.02 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f908de51-2abd-4fbd-95e0-0a436a4cb305) + (property "Reference" "#PWR016" (at 33.02 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 33.02 46.99 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 33.02 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 33.02 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6d3f596f-4ecd-4701-9e60-912df37ae237)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR016") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3VA") (at 232.41 58.42 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid f95d172b-cd8d-4288-a034-c6888898c758) + (property "Reference" "#PWR037" (at 232.41 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3VA" (at 232.41 53.34 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 232.41 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 232.41 58.42 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 2ceb2110-368f-4afd-b126-0c0eea98331c)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR037") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 232.41 78.74 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid fa634744-2589-490e-bd4d-33973d460ace) + (property "Reference" "#PWR052" (at 232.41 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 232.41 83.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 232.41 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 232.41 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 06be6feb-43da-488b-bda7-c5097cbce0d6)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR052") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor_Magnetic:A1101ELHL") (at 69.85 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid fd7d96ef-0d7e-4358-9632-12ffc59e653f) + (property "Reference" "U17" (at 63.5 67.3099 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "A1101ELHL" (at 63.5 69.8499 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 69.85 77.47 0) + (effects (font (size 1.27 1.27) italic) (justify left) hide) + ) + (property "Datasheet" "https://www.allegromicro.com/-/media/files/datasheets/a110x-datasheet.ashx" (at 69.85 52.07 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C266230" (at 69.85 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid df54bdfc-c68d-43c2-954b-1374fe2a4d19)) + (pin "2" (uuid 8e888759-c64b-443c-8f7d-bfa29b8152f5)) + (pin "3" (uuid e847a95a-fc38-4c7f-9728-76d8f322049a)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "U17") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 364.49 191.77 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid fe152d51-55de-46d9-93cd-4e28773cf6a1) + (property "Reference" "#PWR0133" (at 364.49 198.12 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 364.49 196.85 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 364.49 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 364.49 191.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a8ff4c02-6a87-4952-ab6d-a535c954c4d4)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0133") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 241.3 238.76 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid fe5a23fd-4339-4317-be3d-c5ef455ccd80) + (property "Reference" "#PWR0158" (at 241.3 245.11 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 241.3 243.84 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 241.3 238.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 241.3 238.76 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid f6cc736b-46e1-4d7a-8998-af96863b1afc)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0158") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3.3V") (at 293.37 342.9 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid fe82e5dc-f0ee-4336-8488-5e1ddd8cf8f0) + (property "Reference" "#PWR0163" (at 293.37 346.71 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3.3V" (at 293.37 337.82 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 293.37 342.9 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 293.37 342.9 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 1535c1d3-aba0-49bb-a0ca-e172924cfab7)) + (instances + (project "macrolev" + (path "/24af5553-bb98-43bd-b85c-c6b0b021d5e0" + (reference "#PWR0163") (unit 1) + ) + ) + ) + ) + + (sheet_instances + (path "/" (page "1")) + ) ) diff --git a/web-app/app/useDevice.ts b/web-app/app/useDevice.ts index 4dbc1ad..a9a1ed3 100644 --- a/web-app/app/useDevice.ts +++ b/web-app/app/useDevice.ts @@ -339,7 +339,6 @@ export function useDevice() { const read = useCallback( async (request: keyof typeof vendorRequests) => { - console.log(request) if (!device || !deviceConfig?.endpointInNumber || !isConnected) throw new Error('Not connected') @@ -379,7 +378,6 @@ export function useDevice() { } if (result.data) { - console.log(result.data) return result.data } @@ -401,7 +399,6 @@ export function useDevice() { const loadKeys = useCallback(async () => { const keys = await read('VENDOR_REQUEST_KEYS') - console.log(keys) setKeys(parseKeys(keys)) }, [read])