Brushed Motors

ArduPilot supports multiple methods to control brushed motors

  • Brushed motor ESCs that support RC PWM input (PWM signals that are 1ms to 2ms in width) are the easiest to use because no special configuration is required and the rest of this document can be ignored. Most hobby grade RC Car ESCs are of this type
  • “Brushed With Relay” motor drivers accept a duty cycle to control the speed and also have a separate pin used to control direction
  • “Brushed BiPolar” motor drivers accept a duty cycle where 0% duty cycle means full speed in one direction, 100% duty cycle is full speed in the other direction and 50% duty cycle is stopped

Verified Motor Drivers

Connection and Configuration

  • Connect the motor drivers / ESCs to the flight controller’s output pins just as you would for regular brushless ESCs but note the warning at the bottom regarding mixing brushed outputs with servos
  • If using “Brushed With Relay” connect the Relay pin(s) to the motor driver’s direction pin(s). For skid-steering vehicles Relay1 is for the left motor, Relay2 for the right motor
  • Set MOT_PWM_TYPE = 3 for “BrushedWithRelay” or “4” for “BrushedBIPolar” and reboot the flight controller
  • MOT_PWM_FREQ defaults to 16000 but can be changed to any value from 1000 to 20000 to change the output frequency

Warning

If the flight controller will also control servos (which use regular RC PWM) take care that the servos are not in the same “PWM output group” as any motor outputs. The grouping is only documented on some of the AutoPilot Hardware Options pages but for a regular Pixhawk or Cube autopilot MAIN OUT 1 ~ 4 are in group1 meaning that if any brushed motors are configured for MAIN OUT 1 to 4 then servos must be connected to output 5 or higher

Warning

ArduPilot does not currently support controlling both brushed and brushless motors at the same time