A PWM device is on an output that DShot or an LED strip has taken over
What ArduPilot says:
- PreArm: SERVON_FUNCTION=N on disabled channel
Outputs come in groups that share one timer, and a timer speaks one protocol. When an output of a group is digital (a DShot motor, a NeoPixel or ProfiLED strip), the others in that group cannot give ordinary PWM and are switched off. The message names such an output that has a PWM function (the number after “=”): a servo there would get no signal. Motor, LED and scripting functions are exempt.
What to do, most likely first
A servo, gimbal or other PWM device shares its timer group with a DShot motor or an LED strip.
CheckThe start-up line “RCOut: DS300:1-4 PWM:5-8” lists the groups: the output named sits in a DShot (DS) or NeoPixel (NeoP) one.
FixMove the device to an output in a PWM group and give that output the function; the Board & Wiring Planner shows your board's timer groups. Reboot.
The function is left over on an output nothing is plugged into.
CheckLook at what is really wired to the output named.
FixSet that
SERVOn_FUNCTIONto 0 and reboot.An LED strip was put on an output in the same group as the servos.
FixMove the LED strip, or the servos, so that each group carries one kind of signal.
Parameters to look at
| Parameter | What it is |
|---|---|
SERVO5_FUNCTION | Servo output function |
SERVO6_FUNCTION | Servo output function |
MOT_PWM_TYPE | Output PWM type |
SERVO_BLH_MASK | BLHeli Channel Bitmask |
SERVO_GPIO_MASK | Servo GPIO mask |
Where to do it:Board & Wiring PlannerSetup & Tuning Guide
The code that sends it
PreArm: SERVON_FUNCTION=N on disabled channel
libraries/AP_Arming/AP_Arming.cpp AP_Arming::servo_checks() · Open in ArduPilot Copter-4.7.1