Is there anything like, if our flight controller has a main controller and an IO controller, then the safety switch is permanently ON. even if we set BRD_SAFETY_DEFLT to 0.
Same answer as for your other thread.
Some more details would be helpful for you
In my case,
I have FC in which both the main and IO controller is present, when I press the safety switch, it’s working, like giving a prearm error.
But the problem is if I set BRD_SAFETY_DEFLT to 0, then also the safety switch giving a prearm error, but it should not work if I set the parameter to 0.
It should work only if i set parameter to 1.
I seen some code like
#elif defined(HAL_WITH_IO_MCU)
// if we have an IOMCU then enable by default
# define BOARD_SAFETY_ENABLE_DEFAULT HAL_WITH_IO_MCU
#else
So my question is, if we have an IO controller, then is this BRD_SAFETY_DEFLT parameter of no use?
BRD_SAFETY_DEFLT is only the default value of the safety switch that is set after completing the initialization. Safety switch can’t be fully disabled, IIRC because it is used in the boot sequence.
Did you read the wiki
and follow the links to the parmeter itself
If I understand this correctly the BRD_SAFETY_DEFLT only control the behaviour on boot_up.
But how the system uses the Safety Switch information after boot_up is controlled by the other two parameter.
So this parameter BRD_SAFETY_DEFLT is not controlling if you have a switch or not. It is only take care that the motors are not uncontrolled spinning during boot.