From b62e8705bf67d8dc2d70cb5fea8c46e146780411 Mon Sep 17 00:00:00 2001 From: James Devine Date: Sun, 15 Sep 2019 16:05:59 +0200 Subject: [PATCH] update --- CosmicPiV1point6.ioc | 304 + README.md | 29 +- bom_template.xls | Bin 0 -> 30208 bytes cosmicpi_1.6-cache.bck | 3 + cosmicpi_1.6-cache.dcm | 3 + cosmicpi_1.6-cache.lib | 1088 ++ cosmicpi_1.6-rescue.dcm | 3 + cosmicpi_1.6-rescue.lib | 26 + cosmicpi_1.6.bak | 3547 ++++++ cosmicpi_1.6.csv | 66 + cosmicpi_1.6.dsn | 2713 ++++ cosmicpi_1.6.kicad_pcb-bak | 23919 +++++++++++++++++++++++++++++++++++ cosmicpi_1.6.sch-bak | 3577 ++++++ cosmicpi_1.6.xlsx | Bin 0 -> 21306 bytes cosmicpi_1.6_enhanced.xlsx | Bin 0 -> 22114 bytes cosmicpi_1.6b.csv | 65 + 16 files changed, 35341 insertions(+), 2 deletions(-) create mode 100644 CosmicPiV1point6.ioc create mode 100644 bom_template.xls create mode 100644 cosmicpi_1.6-cache.bck create mode 100644 cosmicpi_1.6-cache.dcm create mode 100644 cosmicpi_1.6-cache.lib create mode 100644 cosmicpi_1.6-rescue.dcm create mode 100644 cosmicpi_1.6-rescue.lib create mode 100644 cosmicpi_1.6.bak create mode 100644 cosmicpi_1.6.csv create mode 100644 cosmicpi_1.6.dsn create mode 100644 cosmicpi_1.6.kicad_pcb-bak create mode 100644 cosmicpi_1.6.sch-bak create mode 100644 cosmicpi_1.6.xlsx create mode 100644 cosmicpi_1.6_enhanced.xlsx create mode 100644 cosmicpi_1.6b.csv diff --git a/CosmicPiV1point6.ioc b/CosmicPiV1point6.ioc new file mode 100644 index 0000000..4a5476a --- /dev/null +++ b/CosmicPiV1point6.ioc @@ -0,0 +1,304 @@ +#MicroXplorer Configuration settings - do not modify +ADC1.Channel-4\#ChannelRegularConversion=ADC_CHANNEL_0 +ADC1.IPParameters=Rank-4\#ChannelRegularConversion,Channel-4\#ChannelRegularConversion,SamplingTime-4\#ChannelRegularConversion,NbrOfConversionFlag,master +ADC1.NbrOfConversionFlag=1 +ADC1.Rank-4\#ChannelRegularConversion=1 +ADC1.SamplingTime-4\#ChannelRegularConversion=ADC_SAMPLETIME_3CYCLES +ADC1.master=1 +File.Version=6 +KeepUserPlacement=false +Mcu.Family=STM32F4 +Mcu.IP0=ADC1 +Mcu.IP1=I2C1 +Mcu.IP10=USART1 +Mcu.IP11=USART2 +Mcu.IP12=USB_OTG_FS +Mcu.IP2=I2C3 +Mcu.IP3=NVIC +Mcu.IP4=RCC +Mcu.IP5=RTC +Mcu.IP6=SPI2 +Mcu.IP7=SYS +Mcu.IP8=TIM2 +Mcu.IP9=TIM3 +Mcu.IPNb=13 +Mcu.Name=STM32F401R(D-E)Tx +Mcu.Package=LQFP64 +Mcu.Pin0=PC13-ANTI_TAMP +Mcu.Pin1=PC14-OSC32_IN +Mcu.Pin10=PA2 +Mcu.Pin11=PA3 +Mcu.Pin12=PA4 +Mcu.Pin13=PA5 +Mcu.Pin14=PA6 +Mcu.Pin15=PA7 +Mcu.Pin16=PB0 +Mcu.Pin17=PB1 +Mcu.Pin18=PB10 +Mcu.Pin19=PB13 +Mcu.Pin2=PC15-OSC32_OUT +Mcu.Pin20=PB14 +Mcu.Pin21=PB15 +Mcu.Pin22=PC7 +Mcu.Pin23=PC8 +Mcu.Pin24=PC9 +Mcu.Pin25=PA8 +Mcu.Pin26=PA9 +Mcu.Pin27=PA10 +Mcu.Pin28=PA11 +Mcu.Pin29=PA12 +Mcu.Pin3=PH0 - OSC_IN +Mcu.Pin30=PA15 +Mcu.Pin31=PC11 +Mcu.Pin32=PC12 +Mcu.Pin33=PB4 +Mcu.Pin34=PB6 +Mcu.Pin35=PB7 +Mcu.Pin36=PB8 +Mcu.Pin37=VP_ADC1_TempSens_Input +Mcu.Pin38=VP_ADC1_Vref_Input +Mcu.Pin39=VP_RTC_VS_RTC_Activate +Mcu.Pin4=PH1 - OSC_OUT +Mcu.Pin40=VP_SYS_VS_Systick +Mcu.Pin41=VP_TIM2_VS_ClockSourceINT +Mcu.Pin5=PC1 +Mcu.Pin6=PC2 +Mcu.Pin7=PC3 +Mcu.Pin8=PA0-WKUP +Mcu.Pin9=PA1 +Mcu.PinsNb=42 +Mcu.ThirdPartyNb=0 +Mcu.UserConstants= +Mcu.UserName=STM32F401RETx +MxCube.Version=4.26.0 +MxDb.Version=DB.4.0.260 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false +PA0-WKUP.GPIOParameters=GPIO_Label +PA0-WKUP.GPIO_Label=CH0 ADC +PA0-WKUP.Locked=true +PA0-WKUP.Signal=ADCx_IN0 +PA1.GPIOParameters=GPIO_Label +PA1.GPIO_Label=CH1 ADC +PA1.Locked=true +PA1.Signal=ADCx_IN1 +PA10.GPIOParameters=GPIO_Label +PA10.GPIO_Label=RX_TO_GPSTX +PA10.Locked=true +PA10.Mode=Asynchronous +PA10.Signal=USART1_RX +PA11.Locked=true +PA11.Mode=Device_Only +PA11.Signal=USB_OTG_FS_DM +PA12.Locked=true +PA12.Mode=Device_Only +PA12.Signal=USB_OTG_FS_DP +PA15.GPIOParameters=GPIO_Label +PA15.GPIO_Label=GPS_PPS +PA15.Locked=true +PA15.Signal=S_TIM2_CH1_ETR +PA2.GPIOParameters=GPIO_Label +PA2.GPIO_Label=TX_TO_PIRX +PA2.Locked=true +PA2.Mode=Asynchronous +PA2.Signal=USART2_TX +PA3.GPIOParameters=GPIO_Label +PA3.GPIO_Label=RX_TO_PITX +PA3.Locked=true +PA3.Mode=Asynchronous +PA3.Signal=USART2_RX +PA4.GPIOParameters=GPIO_Label +PA4.GPIO_Label=EVT Led +PA4.Locked=true +PA4.Signal=GPIO_Output +PA5.GPIOParameters=GPIO_Label +PA5.GPIO_Label=GPS PPS and ON +PA5.Locked=true +PA5.Signal=GPIO_Output +PA6.GPIOParameters=GPIO_Label +PA6.GPIO_Label=INJ_LED +PA6.Signal=S_TIM3_CH1 +PA7.GPIOParameters=GPIO_Label +PA7.GPIO_Label=BIASFB1 +PA7.Locked=true +PA7.Signal=ADCx_IN7 +PA8.GPIOParameters=GPIO_Label +PA8.GPIO_Label=SCL1_SLAVE +PA8.Locked=true +PA8.Mode=I2C +PA8.Signal=I2C3_SCL +PA9.Locked=true +PA9.Mode=Activate_VBUS +PA9.Signal=USB_OTG_FS_VBUS +PB0.GPIOParameters=GPIO_Label +PB0.GPIO_Label=BIASFB2 +PB0.Locked=true +PB0.Signal=ADCx_IN8 +PB1.GPIOParameters=GPIO_Label +PB1.GPIO_Label=FLAG +PB1.Locked=true +PB1.Signal=GPIO_Output +PB10.GPIOParameters=GPIO_Label +PB10.GPIO_Label=TRIG_OUT +PB10.Locked=true +PB10.Signal=S_TIM2_CH3 +PB13.Locked=true +PB13.Mode=Simplex_Bidirectional_Master +PB13.Signal=SPI2_SCK +PB14.GPIOParameters=GPIO_Label +PB14.GPIO_Label=Baro_SA0 +PB14.Locked=true +PB14.Signal=GPIO_Output +PB15.GPIOParameters=GPIO_Label +PB15.GPIO_Label=ACCEL_SD0 +PB15.Locked=true +PB15.Signal=GPIO_Input +PB4.GPIOParameters=GPIO_Label +PB4.GPIO_Label=SDA1_SLAVE +PB4.Locked=true +PB4.Mode=I2C +PB4.Signal=I2C3_SDA +PB6.GPIOParameters=GPIO_Label +PB6.GPIO_Label=TX_TO_GPSRX +PB6.Locked=true +PB6.Mode=Asynchronous +PB6.Signal=USART1_TX +PB7.GPIOParameters=GPIO_Label +PB7.GPIO_Label=SDA0_MASTER +PB7.Locked=true +PB7.Mode=I2C +PB7.Signal=I2C1_SDA +PB8.GPIOParameters=GPIO_Label +PB8.GPIO_Label=SCL0_MASTER +PB8.Locked=true +PB8.Mode=I2C +PB8.Signal=I2C1_SCL +PC1.GPIOParameters=GPIO_Label +PC1.GPIO_Label=MAX1932_\!CL1 +PC1.Locked=true +PC1.Signal=GPIO_Input +PC11.GPIOParameters=GPIO_Label +PC11.GPIO_Label=STRIGOUT_B +PC11.Locked=true +PC11.Signal=GPIO_Input +PC12.GPIOParameters=GPIO_Label +PC12.GPIO_Label=STRIGOUT_A +PC12.Locked=true +PC12.Signal=GPIO_Input +PC13-ANTI_TAMP.GPIOParameters=GPIO_Label +PC13-ANTI_TAMP.GPIO_Label=BaroInt +PC13-ANTI_TAMP.Locked=true +PC13-ANTI_TAMP.Signal=GPIO_Input +PC14-OSC32_IN.GPIOParameters=GPIO_Label +PC14-OSC32_IN.GPIO_Label=AccelInt1 +PC14-OSC32_IN.Locked=true +PC14-OSC32_IN.Signal=GPIO_Input +PC15-OSC32_OUT.GPIOParameters=GPIO_Label +PC15-OSC32_OUT.GPIO_Label=AccelInt2 +PC15-OSC32_OUT.Locked=true +PC15-OSC32_OUT.Signal=GPIO_Input +PC2.GPIOParameters=GPIO_Label +PC2.GPIO_Label=MAX1932_\!CL2 +PC2.Locked=true +PC2.Signal=GPIO_Input +PC3.Locked=true +PC3.Mode=Simplex_Bidirectional_Master +PC3.Signal=SPI2_MOSI +PC7.GPIOParameters=GPIO_Label +PC7.GPIO_Label=HVPSU_CS2 +PC7.Locked=true +PC7.Signal=GPIO_Output +PC8.GPIOParameters=GPIO_Label +PC8.GPIO_Label=HVPSU_CS1 +PC8.Locked=true +PC8.Signal=GPIO_Output +PC9.GPIOParameters=GPIO_Label +PC9.GPIO_Label=MAG_INT +PC9.Locked=true +PC9.Signal=GPIO_Input +PCC.Checker=false +PCC.Line=STM32F401 +PCC.MCU=STM32F401R(D-E)Tx +PCC.PartNumber=STM32F401RETx +PCC.Seq0=0 +PCC.Series=STM32F4 +PCC.Temperature=25 +PCC.Vdd=3.3 +PH0\ -\ OSC_IN.Locked=true +PH0\ -\ OSC_IN.Mode=HSE-External-Oscillator +PH0\ -\ OSC_IN.Signal=RCC_OSC_IN +PH1\ -\ OSC_OUT.Locked=true +PH1\ -\ OSC_OUT.Mode=HSE-External-Oscillator +PH1\ -\ OSC_OUT.Signal=RCC_OSC_OUT +PinOutPanel.RotationAngle=0 +RCC.48MHZClocksFreq_Value=48000000 +RCC.AHBFreq_Value=16000000 +RCC.APB1Freq_Value=16000000 +RCC.APB2Freq_Value=16000000 +RCC.CortexFreq_Value=16000000 +RCC.HSE_VALUE=8000000 +RCC.HSI_VALUE=16000000 +RCC.I2SClocksFreq_Value=192000000 +RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1Freq_Value,APB2Freq_Value,CortexFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,PLLCLKFreq_Value,PLLM,PLLN,PLLQ,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S +RCC.LSE_VALUE=32768 +RCC.LSI_VALUE=32000 +RCC.PLLCLKFreq_Value=72000000 +RCC.PLLM=4 +RCC.PLLN=72 +RCC.PLLQ=3 +RCC.PLLQCLKFreq_Value=48000000 +RCC.RTCFreq_Value=32000 +RCC.RTCHSEDivFreq_Value=4000000 +RCC.SYSCLKFreq_VALUE=16000000 +RCC.VCOI2SOutputFreq_Value=384000000 +RCC.VCOInputFreq_Value=2000000 +RCC.VCOOutputFreq_Value=144000000 +RCC.VcooutputI2S=192000000 +SH.ADCx_IN0.0=ADC1_IN0,IN0 +SH.ADCx_IN0.ConfNb=1 +SH.ADCx_IN1.0=ADC1_IN1,IN1 +SH.ADCx_IN1.ConfNb=1 +SH.ADCx_IN7.0=ADC1_IN7,IN7 +SH.ADCx_IN7.ConfNb=1 +SH.ADCx_IN8.0=ADC1_IN8,IN8 +SH.ADCx_IN8.ConfNb=1 +SH.S_TIM2_CH1_ETR.0=TIM2_CH1,Input_Capture1_from_TI1 +SH.S_TIM2_CH1_ETR.ConfNb=1 +SH.S_TIM2_CH3.0=TIM2_CH3,Input_Capture3_from_TI3 +SH.S_TIM2_CH3.ConfNb=1 +SH.S_TIM3_CH1.0=TIM3_CH1,PWM Generation1 CH1 +SH.S_TIM3_CH1.ConfNb=1 +SPI2.Direction=SPI_DIRECTION_1LINE +SPI2.IPParameters=VirtualType,Mode,Direction +SPI2.Mode=SPI_MODE_MASTER +SPI2.VirtualType=VM_MASTER +TIM2.Channel-Input_Capture1_from_TI1=TIM_CHANNEL_1 +TIM2.Channel-Input_Capture3_from_TI3=TIM_CHANNEL_3 +TIM2.IPParameters=Channel-Input_Capture1_from_TI1,Channel-Input_Capture3_from_TI3 +TIM3.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1 +TIM3.IPParameters=Channel-PWM Generation1 CH1 +USART1.IPParameters=VirtualMode +USART1.VirtualMode=VM_ASYNC +USART2.IPParameters=VirtualMode +USART2.VirtualMode=VM_ASYNC +USB_OTG_FS.IPParameters=VirtualMode +USB_OTG_FS.VirtualMode=Device_Only +VP_ADC1_TempSens_Input.Mode=IN-TempSens +VP_ADC1_TempSens_Input.Signal=ADC1_TempSens_Input +VP_ADC1_Vref_Input.Mode=IN-Vrefint +VP_ADC1_Vref_Input.Signal=ADC1_Vref_Input +VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled +VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate +VP_SYS_VS_Systick.Mode=SysTick +VP_SYS_VS_Systick.Signal=SYS_VS_Systick +VP_TIM2_VS_ClockSourceINT.Mode=Internal +VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT +board=custom diff --git a/README.md b/README.md index 6871fbc..06bdc98 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,27 @@ -# CosmicPiV1.7PCB -PCB for Version 1.7 of the Cosmic Pi Hardware. Incremental changes from V1.6. This design is licensed under the CERN OHL V1.2 +# CosmicPiV1.6 +Version 1.6 of the Cosmic Pi, learning the lessons from V2 and going back to something simpler. All the components are now on a single PCB with a snap-off for the SiPM elements. We have also moved to KiCad! + +The SiPM's in this design are from Ketek, and we're very happy with the performance. You can find the SiPM datasheet here: https://www.ketek.net/wp-content/uploads/2018/12/KETEK-PM3325-WB-D0-Datasheet.pdf +The SiPM's are also available to purchase retail from their shop (!) - a significant advance over our previous models: +https://www.ketek.net/store/products/pm3325-wb/ + +The design uses scintillators from Amcrys http://www.amcrys.com/ which are not yet available via a retail outlet, however any BC-408 equivalent scintillator that has diamond polished finish surfaces and dimensions of 200x100x10mm can be mated to the SiPMs with suitable mounting holes. + +# What do the signals do? + + +Shapeout 1 & 2 - Shaped (i.e. amplified and stretched signal from the SiPMs - muon detection waveforms). Not used in current software. + +Biasfb 1 & 2 - Feedback on the Vbias supply (i.e. to check that it's the right voltage). Not used in current software. + +Inj led 1 & 2 - Light injector LEDs, allowing the operation of the SiPM to be checked (and calibrated) post-assembly. + +Accint 1, 2 - Interrupts from the accelerometer, not really used for anything yet. + +Magint 3 - Interrupt from magnetometer, also not used. + +Flag, boot0 - Signals to the Raspberry Pi, flag can be set by the STM32 to indicate a particular condition. Boot0 is used to set the boot mode of the STM32, for example when flashing. This doesn't function correctly in this version, it will be updated for V1.7, due to some issues with the STM32 bootloader. + +Vbusm otg dm otg dp - Vbus is the USB bus voltage detection line to the STM32 (i.e. in OTG mode, sense incoming voltage), DM and DP are the differential lines for USB communication. Not functional in the current software; note that the USB doesn't power the device. + +Swclk, swdio - These are the programming commands for the STM32, based on the ST-Link system. These work fine, used for programming. diff --git a/bom_template.xls b/bom_template.xls new file mode 100644 index 0000000000000000000000000000000000000000..632fdcbbb8feede09b437d3359fc820a0b723c93 GIT binary patch literal 30208 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 ZAjT5PUgi(gb59LhXs!C6mK^hbc6$k&W0 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 XTYxt!aNq${@d+@P0h{3O{6IVa$)m2t literal 0 HcmV?d00001 diff --git a/cosmicpi_1.6_enhanced.xlsx b/cosmicpi_1.6_enhanced.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b690828601c7552ed30afad8c53482a5db3638fc GIT binary patch literal 22114 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 literal 0 HcmV?d00001 diff --git a/cosmicpi_1.6b.csv b/cosmicpi_1.6b.csv new file mode 100644 index 0000000..e6caf75 --- /dev/null +++ b/cosmicpi_1.6b.csv @@ -0,0 +1,65 @@ +"Id";"Designator";"Package";"Quantity";"Designation";"Supplier and ref"; +1;"REF**,REF**,REF**,REF**,REF**,REF**,REF**,REF**,REF**,REF**,REF**,REF**,REF**,REF**,REF**,REF**";"MountingHole_3.5mm";16;"MountingHole_3.5mm";;; +2;"H3,H2,H3,H1";"MountingHole_3.7mm";4;"MountingHole_3.7mm";;; +3;"REF**,REF**,REF**,REF**,REF**,REF**,REF**,REF**,REF**,REF**,REF**,REF**,REF**";"Fiducial_0.5mm_Dia_1mm_Outer";13;"Fiducial_0.5mm_Dia_1mm_Outer";;; +4;"J5,J4";"Ketek_PM3325-WB";2;"Conn_01x04_Male";;; +5;"R11,R12";"R_0603_1608Metric";2;"15k";;; +6;"U18,U17";"21-0136I_T1233-3";2;"MAX1932";;; +7;"FL1,FL2";"IND_744232090";2;"EMI_Filter_LL_f";;; +8;"U14,U19,U15";"SOIC-8_3.9x4.9mm_P1.27mm";3;"AD8039";;; +9;"Y1";"Crystal_SMD_HC49-SD";1;"8 MHz";;; +10;"R70,R10,R3,R4,R1";"R_0603_1608Metric";5;"20";;; +11;"C1";"C_0805_2012Metric";1;"4.7u";;; +12;"D5,D6";"SOT-23";2;"BAS70-04";;; +13;"R46,R47";"R_0603_1608Metric";2;"5100";;; +14;"J14,J8,J11,J12";"PinHeader_1x02_P2.54mm_Horizontal";4;"Conn_01x02_Male";;; +15;"J9,J10,J13,J15";"PinHeader_1x02_P2.54mm_Vertical";4;"Conn_01x02_Female";;; +16;"D4,D3";"D_SOD-123F";2;"BAT46";;; +17;"J2";"SMA_Molex_73251-1153_EdgeMount_Horizontal";1;"SMA";;; +18;"C27,C29,C34,C35,C64,C74,C14,C55,C54,C53,C50,C49,C44,C43,C66,C2,C5,C6,C7,C8,C72,C11,C12,C65,C23,C18,C70,C17,C15,C67";"C_0603_1608Metric";30;"100n";;; +19;"C57";"C_0603_1608Metric";1;"22u";;; +20;"C30,C31,C41,C59,C22,C16";"C_0603_1608Metric";6;"10n";;; +21;"C32,C33,C61,C60,C19";"C_0603_1608Metric";5;"220n";;; +22;"C56,C13,C24";"C_0603_1608Metric";3;"10u";;; +23;"C46,C45";"C_0603_1608Metric";2;"30p";;; +24;"C3,C4";"C_0603_1608Metric";2;"22p";;; +25;"C71,C73";"C_0603_1608Metric";2;"1n";;; +26;"C68,C69";"C_0603_1608Metric";2;"47n";;; +27;"C47,C48";"C_0805_2012Metric";2;"100n";;; +28;"C9,C10,C52,C51";"C_1206_3216Metric";4;"n.a.";;; +29;"C20,C75,C25,C62,C63,C58,C21,C28,C26,C40,C37,C38,C36,C39,C42";"C_1206_3216Metric";15;"1u";;; +30;"C76";"C_1206_3216Metric";1;"100u";;; +31;"J1";"BarrelJack_Horizontal";1;"Barrel_Jack_Switch";;; +32;"J6";"PinSocket_1x06_P2.54mm_Vertical_SMD_Pin1Left";1;"SWD";;; +33;"J7";"PinSocket_2x20_P2.54mm_Vertical_SMD";1;"Raspberry_Pi_2_3";;; +34;"J3";"USB_Micro-B_Molex-105017-0001";1;"USB_B_Micro";;; +35;"U3";"LM76-M33";1;"L76-M33";;; +36;"L3";"L_0603_1608Metric";1;"47nH";;; +37;"L1";"L_0603_1608Metric";1;"2.2uH";;; +38;"L4,L2";"L_1812_4532Metric";2;"150uH";;; +39;"D2,D8,D7,D1";"LED_0603_1608Metric";4;"LED";;; +40;"U8";"DFN-6-1EP_3x3mm_P1mm_EP1.5x2.4mm";1;"SI7006-A20";;; +41;"U7";"LGA-24L_3x3.5mm_P0.43mm";1;"LSM9DS1";;; +42;"U5";"ST_HLGA-10_2.5x2.5mm_P0.6mm_LayoutBorder3x2y";1;"LPS25HB";;; +43;"U2";"LQFP-64_10x10mm_P0.5mm";1;"STM32F401RETx";;; +44;"U1";"MSOP-10_3x3mm_P0.5mm";1;"MCP47CMB22";;; +45;"U4";"SOIC-14_3.9x8.7mm_P1.27mm";1;"74HC00";;; +46;"U6,U11,U12";"SOIC-8_3.9x4.9mm_P1.27mm";3;"LM555";;; +47;"U9";"SOIC-8_3.9x4.9mm_P1.27mm";1;"MAX991";;; +48;"U10";"WSON-8-1EP_2x2mm_P0.5mm_EP0.9x1.6mm_ThermalVias";1;"TPS62163DSG";;; +49;"Q2,Q1";"SOT-23";2;"BSS123";;; +50;"U13,U16";"SOT-23-5";2;"LP2985-3.3";;; +51;"R33,R32";"R_0603_1608Metric";2;"330R";;; +52;"R57,R49,R23,R59,R21,R15,R14,R61,R9,R5,R36,R35,R34,R22,R37,R29,R28,R27,R26,R25,R24";"R_0603_1608Metric";21;"10k";;; +53;"R48";"R_0603_1608Metric";1;"20k";;; +54;"R50,R51,R45,R44,R43,R42";"R_0603_1608Metric";6;"1k";;; +55;"R52,R53";"R_0603_1608Metric";2;"30k";;; +56;"R54,R55,R64,R66,R67,R69";"R_0603_1608Metric";6;"100";;; +57;"R56,R58,R60,R20";"R_0603_1608Metric";4;"200k";;; +58;"R63,R7,R62,R6";"R_0603_1608Metric";4;"300";;; +59;"R65,R68";"R_0603_1608Metric";2;"500k";;; +60;"R19,R18";"R_0603_1608Metric";2;"24.9k";;; +61;"R17,R16";"R_0603_1608Metric";2;"806";;; +62;"R41,R2,R31,R40,R39,R38,R30";"R_0603_1608Metric";7;"100k";;; +63;"R13";"R_0603_1608Metric";1;"10";;; +64;"R8";"R_0603_1608Metric";1;"0R";;;