These outputs cannot produce DShot or drive an LED strip
What ArduPilot says:
- Chan N to N, …: …
- Chan N, …: …
The outputs named at the start share one timer of the processor. They were asked for DShot or an addressable LED strip, which need DMA, a hardware channel that feeds data to the timer. “failed, no DMA”: this timer has none on this board, and the outputs fall back to plain PWM. “failed to allocate DMA” or “…DMA buffer”: the channel or its memory could not be had. “failed to match clock speed”: the timer cannot make that bit rate. The middle word is the protocol the outputs have now.
What to do, most likely first
A DShot ESC or an LED strip is on outputs whose timer has no DMA.
CheckThe Board & Wiring Planner shows your board's outputs by timer group and which groups have DMA.
FixMove it to outputs with DMA and change the
SERVOn_FUNCTIONnumbers to match. Props off for any motor test afterwards.SERVO_BLH_MASKorSERVO_BLH_BDMASKincludes outputs that carry no DShot ESC.FixTick only the outputs that really go to DShot ESCs, and reboot.
The same DMA channel is shared with a serial port or another timer on this board.
FixUse another output group, or free the channel by not using the serial port that shares it.
A motor on an output that fell back to PWM while its ESC expects DShot will not spin, or will not arm. Check the start-up line “RCOut: …” to see what each output really sends.
Parameters to look at
| Parameter | What it is |
|---|---|
MOT_PWM_TYPE | Output PWM type |
SERVO_BLH_MASK | BLHeli Channel Bitmask |
SERVO_BLH_OTYPE | BLHeli output type override |
SERVO_BLH_BDMASK | BLHeli bitmask of bi-directional dshot channels |
NTF_LED_TYPES | LED Driver Types |
Where to do it:Board & Wiring PlannerSetup & Tuning Guide
The code that sends it
Chan N to N, …: …
libraries/AP_HAL_ChibiOS/RCOutput.cpp RCOutput::print_group_setup_error() · Open in ArduPilot Copter-4.7.1
Chan N, …: …
libraries/AP_HAL_ChibiOS/RCOutput.cpp RCOutput::print_group_setup_error() · Open in ArduPilot Copter-4.7.1