g431_double_motor/G431_DOUBLE_MOTOR.ioc
2025-05-08 23:58:02 +08:00

402 lines
14 KiB
Plaintext

#MicroXplorer Configuration settings - do not modify
ADC1.Channel-2\#ChannelRegularConversion=ADC_CHANNEL_1
ADC1.CommonPathInternal=null|ADC_CHANNEL_TEMPSENSOR_ADC1|null|null
ADC1.IPParameters=Rank-2\#ChannelRegularConversion,Channel-2\#ChannelRegularConversion,SamplingTime-2\#ChannelRegularConversion,OffsetNumber-2\#ChannelRegularConversion,NbrOfConversionFlag,master,CommonPathInternal
ADC1.NbrOfConversionFlag=1
ADC1.OffsetNumber-2\#ChannelRegularConversion=ADC_OFFSET_NONE
ADC1.Rank-2\#ChannelRegularConversion=1
ADC1.SamplingTime-2\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5
ADC1.master=1
ADC2.Channel-1\#ChannelRegularConversion=ADC_CHANNEL_VOPAMP2
ADC2.CommonPathInternal=null|null|null|null
ADC2.IPParameters=Rank-1\#ChannelRegularConversion,Channel-1\#ChannelRegularConversion,SamplingTime-1\#ChannelRegularConversion,OffsetNumber-1\#ChannelRegularConversion,NbrOfConversionFlag,CommonPathInternal
ADC2.NbrOfConversionFlag=1
ADC2.OffsetNumber-1\#ChannelRegularConversion=ADC_OFFSET_NONE
ADC2.Rank-1\#ChannelRegularConversion=1
ADC2.SamplingTime-1\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5
CAD.formats=
CAD.pinconfig=
CAD.provider=
FDCAN1.CalculateBaudRateNominal=5000000
FDCAN1.CalculateTimeBitNominal=200
FDCAN1.CalculateTimeQuantumNominal=11.764705882352942
FDCAN1.ClockDivider=FDCAN_CLOCK_DIV1
FDCAN1.DataSyncJumpWidth=1
FDCAN1.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,NominalTimeSeg1,NominalTimeSeg2,DataSyncJumpWidth,ClockDivider,NominalPrescaler
FDCAN1.NominalPrescaler=2
FDCAN1.NominalTimeSeg1=8
FDCAN1.NominalTimeSeg2=8
File.Version=6
GPIO.groupedBy=Group By Peripherals
KeepUserPlacement=false
LPUART1.BaudRate=9600
LPUART1.IPParameters=BaudRate
Mcu.CPN=STM32G431CBU6
Mcu.Family=STM32G4
Mcu.IP0=ADC1
Mcu.IP1=ADC2
Mcu.IP10=OPAMP3
Mcu.IP11=RCC
Mcu.IP12=RNG
Mcu.IP13=SYS
Mcu.IP14=TIM1
Mcu.IP15=TIM3
Mcu.IP16=TIM4
Mcu.IP17=TIM8
Mcu.IP2=CORDIC
Mcu.IP3=CRC
Mcu.IP4=FDCAN1
Mcu.IP5=FMAC
Mcu.IP6=LPUART1
Mcu.IP7=NVIC
Mcu.IP8=OPAMP1
Mcu.IP9=OPAMP2
Mcu.IPNb=18
Mcu.Name=STM32G431C(6-8-B)Ux
Mcu.Package=UFQFPN48
Mcu.Pin0=PC13
Mcu.Pin1=PF0-OSC_IN
Mcu.Pin10=PA6
Mcu.Pin11=PA7
Mcu.Pin12=PC4
Mcu.Pin13=PB0
Mcu.Pin14=PB1
Mcu.Pin15=PB2
Mcu.Pin16=PB10
Mcu.Pin17=PB11
Mcu.Pin18=PB12
Mcu.Pin19=PB13
Mcu.Pin2=PF1-OSC_OUT
Mcu.Pin20=PB14
Mcu.Pin21=PB15
Mcu.Pin22=PC6
Mcu.Pin23=PA8
Mcu.Pin24=PA9
Mcu.Pin25=PA10
Mcu.Pin26=PA11
Mcu.Pin27=PA12
Mcu.Pin28=PA13
Mcu.Pin29=PA14
Mcu.Pin3=PG10-NRST
Mcu.Pin30=PA15
Mcu.Pin31=PC10
Mcu.Pin32=PC11
Mcu.Pin33=PB3
Mcu.Pin34=PB4
Mcu.Pin35=PB5
Mcu.Pin36=PB6
Mcu.Pin37=PB7
Mcu.Pin38=PB8-BOOT0
Mcu.Pin39=PB9
Mcu.Pin4=PA0
Mcu.Pin40=VP_ADC1_OPAMP_INTERNAL1
Mcu.Pin41=VP_ADC1_TempSens_Input
Mcu.Pin42=VP_ADC2_OPAMP_INTERNAL2
Mcu.Pin43=VP_ADC2_OPAMP_INTERNAL3
Mcu.Pin44=VP_CORDIC_VS_CORDIC
Mcu.Pin45=VP_CRC_VS_CRC
Mcu.Pin46=VP_FMAC_VS_FMAC
Mcu.Pin47=VP_RNG_VS_RNG
Mcu.Pin48=VP_SYS_VS_Systick
Mcu.Pin49=VP_SYS_VS_DBSignals
Mcu.Pin5=PA1
Mcu.Pin6=PA2
Mcu.Pin7=PA3
Mcu.Pin8=PA4
Mcu.Pin9=PA5
Mcu.PinsNb=50
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32G431CBUx
MxCube.Version=6.14.0
MxDb.Version=DB.6.0.140
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.FDCAN1_IT0_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.ForceEnableDMAVector=true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.LPUART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
PA0.GPIOParameters=GPIO_Label
PA0.GPIO_Label=MOTOR1_I_U
PA0.Mode=IN1-Single-Ended
PA0.Signal=ADC1_IN1
PA1.GPIOParameters=GPIO_Label
PA1.GPIO_Label=MOTOR1_I_V
PA1.Mode=IN2-Single-Ended
PA1.Signal=ADC1_IN2
PA10.GPIOParameters=GPIO_Label
PA10.GPIO_Label=MOTOR1_3P
PA10.Signal=S_TIM1_CH3
PA11.GPIOParameters=GPIO_Label
PA11.GPIO_Label=CAN_RX
PA11.Mode=FDCAN_Activate
PA11.Signal=FDCAN1_RX
PA12.GPIOParameters=GPIO_Label
PA12.GPIO_Label=CAN_TX
PA12.Mode=FDCAN_Activate
PA12.Signal=FDCAN1_TX
PA13.Mode=Serial_Wire
PA13.Signal=SYS_JTMS-SWDIO
PA14.Mode=Serial_Wire
PA14.Signal=SYS_JTCK-SWCLK
PA15.GPIOParameters=GPIO_Label
PA15.GPIO_Label=MOTOR1_BKIN
PA15.Mode=Activate-Break-Input
PA15.Signal=TIM1_BKIN
PA2.GPIOParameters=GPIO_Label
PA2.GPIO_Label=RS485_TX
PA2.Mode=Asynchronous
PA2.Signal=LPUART1_TX
PA3.GPIOParameters=GPIO_Label
PA3.GPIO_Label=MOTOR2_I_U-
PA3.Mode=standalone Internally connected_IO
PA3.Signal=OPAMP1_VINM0
PA4.GPIOParameters=GPIO_Label
PA4.GPIO_Label=MOTOR1_ENCODER_B
PA4.Signal=S_TIM3_CH2
PA5.GPIOParameters=GPIO_Label
PA5.GPIO_Label=MOTOR2_I_V-
PA5.Mode=standalone Internally connected_IO
PA5.Signal=OPAMP2_VINM0
PA6.GPIOParameters=GPIO_Label
PA6.GPIO_Label=MOTOR2_BKIN
PA6.Mode=Activate-Break-Input
PA6.Signal=TIM8_BKIN
PA7.GPIOParameters=GPIO_Label
PA7.GPIO_Label=MOTOR2_I_U+
PA7.Mode=standalone Internally connected_IO
PA7.Signal=OPAMP1_VINP
PA8.GPIOParameters=GPIO_Label
PA8.GPIO_Label=MOTOR1_1P
PA8.Signal=S_TIM1_CH1
PA9.GPIOParameters=GPIO_Label
PA9.GPIO_Label=MOTOR1_2P
PA9.Signal=S_TIM1_CH2
PB0.GPIOParameters=GPIO_Label
PB0.GPIO_Label=MOTOR2_I_V+
PB0.Mode=standalone Internally connected_IO
PB0.Signal=OPAMP2_VINP
PB1.GPIOParameters=GPIO_Label
PB1.GPIO_Label=RS485_DE
PB1.Mode=Hardware Flow Control (RS485)
PB1.Signal=LPUART1_DE
PB10.GPIOParameters=GPIO_Label
PB10.GPIO_Label=RS485_RX
PB10.Mode=Asynchronous
PB10.Signal=LPUART1_RX
PB11.GPIOParameters=GPIO_Label
PB11.GPIO_Label=MOTOR1_I_W
PB11.Mode=IN14-Single-Ended
PB11.Signal=ADC1_IN14
PB12.GPIOParameters=GPIO_Label
PB12.GPIO_Label=MOTOR_I_LINE
PB12.Mode=IN11-Single-Ended
PB12.Signal=ADC1_IN11
PB13.GPIOParameters=GPIO_Label
PB13.GPIO_Label=MOTOR2_I_W+
PB13.Mode=standalone Internally connected_IO
PB13.Signal=OPAMP3_VINP
PB14.GPIOParameters=GPIO_Label
PB14.GPIO_Label=MOTOR1_2N
PB14.Mode=PWM Generation2 CH2 CH2N
PB14.Signal=TIM1_CH2N
PB15.GPIOParameters=GPIO_Label
PB15.GPIO_Label=MOTOR1_3N
PB15.Mode=PWM Generation3 CH3 CH3N
PB15.Signal=TIM1_CH3N
PB2.GPIOParameters=GPIO_Label
PB2.GPIO_Label=MOTOR2_I_W-
PB2.Mode=standalone Internally connected_IO
PB2.Signal=OPAMP3_VINM0
PB3.GPIOParameters=GPIO_Label
PB3.GPIO_Label=MOTOR1_ENCODER_Z
PB3.Signal=S_TIM3_ETR
PB4.GPIOParameters=GPIO_Label
PB4.GPIO_Label=MOTOR1_ENCODER_A
PB4.Signal=S_TIM3_CH1
PB5.GPIOParameters=GPIO_Label
PB5.GPIO_Label=MOTOR2_3N
PB5.Mode=PWM Generation3 CH3 CH3N
PB5.Signal=TIM8_CH3N
PB6.GPIOParameters=GPIO_Label
PB6.GPIO_Label=MOTOR2_ENCODER_A
PB6.Signal=S_TIM4_CH1
PB7.GPIOParameters=GPIO_Label
PB7.GPIO_Label=MOTOR2_ENCODER_B
PB7.Signal=S_TIM4_CH2
PB8-BOOT0.GPIOParameters=GPIO_Label
PB8-BOOT0.GPIO_Label=MOTOR2_2P
PB8-BOOT0.Signal=S_TIM8_CH2
PB9.GPIOParameters=GPIO_Label
PB9.GPIO_Label=MOTOR2_3P
PB9.Signal=S_TIM8_CH3
PC10.GPIOParameters=GPIO_Label
PC10.GPIO_Label=MOTOR2_1N
PC10.Mode=PWM Generation1 CH1 CH1N
PC10.Signal=TIM8_CH1N
PC11.GPIOParameters=GPIO_Label
PC11.GPIO_Label=MOTOR2_2N
PC11.Mode=PWM Generation2 CH2 CH2N
PC11.Signal=TIM8_CH2N
PC13.GPIOParameters=GPIO_Label
PC13.GPIO_Label=MOTOR1_1N
PC13.Mode=PWM Generation1 CH1 CH1N
PC13.Signal=TIM1_CH1N
PC4.GPIOParameters=GPIO_PuPd,GPIO_Label
PC4.GPIO_Label=RUN_LED
PC4.GPIO_PuPd=GPIO_PULLUP
PC4.Locked=true
PC4.Signal=GPIO_Output
PC6.GPIOParameters=GPIO_Label
PC6.GPIO_Label=MOTOR2_1P
PC6.Signal=S_TIM8_CH1
PF0-OSC_IN.Mode=HSE-External-Oscillator
PF0-OSC_IN.Signal=RCC_OSC_IN
PF1-OSC_OUT.Mode=HSE-External-Oscillator
PF1-OSC_OUT.Signal=RCC_OSC_OUT
PG10-NRST.GPIOParameters=GPIO_PuPd,GPIO_Label
PG10-NRST.GPIO_Label=MOTOR2_Z
PG10-NRST.GPIO_PuPd=GPIO_PULLUP
PG10-NRST.Locked=true
PG10-NRST.Signal=GPXTI10
PinOutPanel.RotationAngle=0
ProjectManager.AskForMigrate=true
ProjectManager.BackupPrevious=false
ProjectManager.CompilerLinker=GCC
ProjectManager.CompilerOptimize=6
ProjectManager.ComputerToolchain=false
ProjectManager.CoupleFile=true
ProjectManager.CustomerFirmwarePackage=
ProjectManager.DefaultFWLocation=true
ProjectManager.DeletePrevious=true
ProjectManager.DeviceId=STM32G431CBUx
ProjectManager.FirmwarePackage=STM32Cube FW_G4 V1.6.1
ProjectManager.FreePins=false
ProjectManager.HalAssertFull=false
ProjectManager.HeapSize=0x200
ProjectManager.KeepUserCode=true
ProjectManager.LastFirmware=true
ProjectManager.LibraryCopy=1
ProjectManager.MainLocation=Core/Src
ProjectManager.NoMain=false
ProjectManager.PreviousToolchain=STM32CubeIDE
ProjectManager.ProjectBuild=false
ProjectManager.ProjectFileName=G431_DOUBLE_MOTOR.ioc
ProjectManager.ProjectName=G431_DOUBLE_MOTOR
ProjectManager.ProjectStructure=
ProjectManager.RegisterCallBack=
ProjectManager.StackSize=0x1000
ProjectManager.TargetToolchain=STM32CubeIDE
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_FDCAN1_Init-FDCAN1-false-HAL-true,4-MX_ADC1_Init-ADC1-false-HAL-true,5-MX_ADC2_Init-ADC2-false-HAL-true,6-MX_CORDIC_Init-CORDIC-false-HAL-true,7-MX_CRC_Init-CRC-false-HAL-true,8-MX_FMAC_Init-FMAC-false-HAL-true,9-MX_LPUART1_UART_Init-LPUART1-false-HAL-true,10-MX_OPAMP1_Init-OPAMP1-false-HAL-true,11-MX_OPAMP2_Init-OPAMP2-false-HAL-true,12-MX_OPAMP3_Init-OPAMP3-false-HAL-true,13-MX_RNG_Init-RNG-false-HAL-true,14-MX_TIM1_Init-TIM1-false-HAL-true,15-MX_TIM3_Init-TIM3-false-HAL-true,16-MX_TIM4_Init-TIM4-false-HAL-true,17-MX_TIM8_Init-TIM8-false-HAL-true
RCC.ADC12Freq_Value=170000000
RCC.AHBFreq_Value=170000000
RCC.APB1Freq_Value=170000000
RCC.APB1TimFreq_Value=170000000
RCC.APB2Freq_Value=170000000
RCC.APB2TimFreq_Value=170000000
RCC.CK48CLockSelection=RCC_USBCLKSOURCE_HSI48
RCC.CRSFreq_Value=48000000
RCC.CortexFreq_Value=170000000
RCC.EXTERNAL_CLOCK_VALUE=12288000
RCC.FCLKCortexFreq_Value=170000000
RCC.FDCANFreq_Value=170000000
RCC.FamilyName=M
RCC.HCLKFreq_Value=170000000
RCC.HSE_VALUE=25000000
RCC.HSI48_VALUE=48000000
RCC.HSI_VALUE=16000000
RCC.I2C1Freq_Value=170000000
RCC.I2C2Freq_Value=170000000
RCC.I2C3Freq_Value=170000000
RCC.I2SFreq_Value=170000000
RCC.IPParameters=ADC12Freq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CK48CLockSelection,CRSFreq_Value,CortexFreq_Value,EXTERNAL_CLOCK_VALUE,FCLKCortexFreq_Value,FDCANFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2SFreq_Value,LPTIM1Freq_Value,LPUART1CLockSelection,LPUART1Freq_Value,LSCOPinFreq_Value,LSE_VALUE,LSI_VALUE,MCO1PinFreq_Value,PLLM,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSourceVirtual,PWRFreq_Value,RNGFreq_Value,SAI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value
RCC.LPTIM1Freq_Value=170000000
RCC.LPUART1CLockSelection=RCC_LPUART1CLKSOURCE_HSI
RCC.LPUART1Freq_Value=16000000
RCC.LSCOPinFreq_Value=32000
RCC.LSE_VALUE=32768
RCC.LSI_VALUE=32000
RCC.MCO1PinFreq_Value=16000000
RCC.PLLM=RCC_PLLM_DIV5
RCC.PLLN=68
RCC.PLLPoutputFreq_Value=170000000
RCC.PLLQoutputFreq_Value=170000000
RCC.PLLRCLKFreq_Value=170000000
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
RCC.PWRFreq_Value=170000000
RCC.RNGFreq_Value=48000000
RCC.SAI1Freq_Value=170000000
RCC.SYSCLKFreq_VALUE=170000000
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
RCC.UART4Freq_Value=170000000
RCC.USART1Freq_Value=170000000
RCC.USART2Freq_Value=170000000
RCC.USART3Freq_Value=170000000
RCC.USBFreq_Value=48000000
RCC.VCOInputFreq_Value=5000000
RCC.VCOOutputFreq_Value=340000000
SH.GPXTI10.0=GPIO_EXTI10
SH.GPXTI10.ConfNb=1
SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1 CH1N
SH.S_TIM1_CH1.ConfNb=1
SH.S_TIM1_CH2.0=TIM1_CH2,PWM Generation2 CH2 CH2N
SH.S_TIM1_CH2.ConfNb=1
SH.S_TIM1_CH3.0=TIM1_CH3,PWM Generation3 CH3 CH3N
SH.S_TIM1_CH3.ConfNb=1
SH.S_TIM3_CH1.0=TIM3_CH1,Encoder_Interface_w_index
SH.S_TIM3_CH1.ConfNb=1
SH.S_TIM3_CH2.0=TIM3_CH2,Encoder_Interface_w_index
SH.S_TIM3_CH2.ConfNb=1
SH.S_TIM3_ETR.0=TIM3_ETR,Encoder_Interface_w_index
SH.S_TIM3_ETR.ConfNb=1
SH.S_TIM4_CH1.0=TIM4_CH1,Encoder_Interface
SH.S_TIM4_CH1.ConfNb=1
SH.S_TIM4_CH2.0=TIM4_CH2,Encoder_Interface
SH.S_TIM4_CH2.ConfNb=1
SH.S_TIM8_CH1.0=TIM8_CH1,PWM Generation1 CH1 CH1N
SH.S_TIM8_CH1.ConfNb=1
SH.S_TIM8_CH2.0=TIM8_CH2,PWM Generation2 CH2 CH2N
SH.S_TIM8_CH2.ConfNb=1
SH.S_TIM8_CH3.0=TIM8_CH3,PWM Generation3 CH3 CH3N
SH.S_TIM8_CH3.ConfNb=1
TIM1.Channel-PWM\ Generation1\ CH1\ CH1N=TIM_CHANNEL_1
TIM1.Channel-PWM\ Generation2\ CH2\ CH2N=TIM_CHANNEL_2
TIM1.Channel-PWM\ Generation3\ CH3\ CH3N=TIM_CHANNEL_3
TIM1.IPParameters=Channel-PWM Generation1 CH1 CH1N,Channel-PWM Generation2 CH2 CH2N,Channel-PWM Generation3 CH3 CH3N
TIM8.Channel-PWM\ Generation1\ CH1\ CH1N=TIM_CHANNEL_1
TIM8.Channel-PWM\ Generation2\ CH2\ CH2N=TIM_CHANNEL_2
TIM8.Channel-PWM\ Generation3\ CH3\ CH3N=TIM_CHANNEL_3
TIM8.IPParameters=Channel-PWM Generation1 CH1 CH1N,Channel-PWM Generation2 CH2 CH2N,Channel-PWM Generation3 CH3 CH3N
VP_ADC1_OPAMP_INTERNAL1.Mode=IN-OPAMP1
VP_ADC1_OPAMP_INTERNAL1.Signal=ADC1_OPAMP_INTERNAL1
VP_ADC1_TempSens_Input.Mode=IN-TempSens
VP_ADC1_TempSens_Input.Signal=ADC1_TempSens_Input
VP_ADC2_OPAMP_INTERNAL2.Mode=IN-OPAMP2
VP_ADC2_OPAMP_INTERNAL2.Signal=ADC2_OPAMP_INTERNAL2
VP_ADC2_OPAMP_INTERNAL3.Mode=IN-OPAMP3
VP_ADC2_OPAMP_INTERNAL3.Signal=ADC2_OPAMP_INTERNAL3
VP_CORDIC_VS_CORDIC.Mode=CORDIC_Activate
VP_CORDIC_VS_CORDIC.Signal=CORDIC_VS_CORDIC
VP_CRC_VS_CRC.Mode=CRC_Activate
VP_CRC_VS_CRC.Signal=CRC_VS_CRC
VP_FMAC_VS_FMAC.Mode=FMAC_Activate
VP_FMAC_VS_FMAC.Signal=FMAC_VS_FMAC
VP_RNG_VS_RNG.Mode=RNG_Activate
VP_RNG_VS_RNG.Signal=RNG_VS_RNG
VP_SYS_VS_DBSignals.Mode=DisableDeadBatterySignals
VP_SYS_VS_DBSignals.Signal=SYS_VS_DBSignals
VP_SYS_VS_Systick.Mode=SysTick
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
board=custom