Currently, using PWM ESCs, the autopilot will output a disarmed PWM value (typically 1000 us) once pre-arm button is pressed. This is not sent on DRONECAN, making initialization of some ESCs troublesome since they then require an ARM-DISARM-ARM sequence in order to initialize properly.
Describe your preferred solution
Introducing a disarmed value for DRONECAN motors (similar to PWM_MAIN_DISx), and handling this the same way as for PWM during pre-arm. This value could be named UAVCAN_EC_DISx.
Describe possible alternatives
Have tried configuring ESCs, changing settings so that arming will ensure proper value to ESCs etc, but these solutions all have drawbacks leading to bad performance.
The most realistic alternative may be to introduce a timer of configurable length (0 - 3 seconds or so) that when entering armed state, will output 0 for this time before changing to UAVCAN_EC_MINx. This is more of a workaround but may be done by only adding one parameter (or it can be hardcoded to e.g. 1 second).
Additional context
This is close to this issue, but not the exact equal. Still, it could be they should be considered the same.
Describe problem solved by the proposed feature
Currently, using PWM ESCs, the autopilot will output a disarmed PWM value (typically 1000 us) once pre-arm button is pressed. This is not sent on DRONECAN, making initialization of some ESCs troublesome since they then require an ARM-DISARM-ARM sequence in order to initialize properly.
Describe your preferred solution
Introducing a disarmed value for DRONECAN motors (similar to
PWM_MAIN_DISx
), and handling this the same way as for PWM during pre-arm. This value could be namedUAVCAN_EC_DISx
.Describe possible alternatives
Have tried configuring ESCs, changing settings so that arming will ensure proper value to ESCs etc, but these solutions all have drawbacks leading to bad performance. The most realistic alternative may be to introduce a timer of configurable length (0 - 3 seconds or so) that when entering armed state, will output 0 for this time before changing to
UAVCAN_EC_MINx
. This is more of a workaround but may be done by only adding one parameter (or it can be hardcoded to e.g. 1 second).Additional context
This is close to this issue, but not the exact equal. Still, it could be they should be considered the same.