DJI M600 Pro esc working with PWM input

I was looking for a solution to use DJI M600 Pro escs with a regular PWM input from any FC.
I found a few topics about it like:

And

But it seemed to me, that nobody found an easy solution.
So I tried myself and just got it working.
Unfortunately I just created my account so O cannot reply to the previously mentioned topics… I think.

If someone is still interested, I think I am able to help.

1 Like

Hi Steff, I would like to hear more about your solution. Just got hold on some E2000’s and would like to see them spin.

Hello Alex, so it is actually pretty easy. The ESC expected an inverse PWM signal.
Additional the signal limits need to be set to 1100 and 1900.
Unfortunately I cannot check the other settings, since I killed my FC on a different project with a crash.
For the signal input I used the PWM signal pad on the eSC itself, not the regular cable. Next to this pad is a GND pad I used to complete the signal cable.

Please come back to me if you need more help.

1 Like

Checking in to let anyone interested know we’re about to start such a conversion. Thanks for everyone who shared their experiences. We’ll do the same.

Hi, can you elaborate this more. I am having problem which when I gave a slight yaw input, the motors output went to full yaw output. The copter does not stop yawing. Haven’t set the MOT_PWM to 1120-1920 and RC_SPEED was at default 490Hz.

Copter : DJI Agras MG-1P
ESC & Motor : E2000 Pro
Pixhawk : 4.0
Firmware : 4.1.2

I take it you simply sent PWM and that was enough to get the motors spinning, even if it is not flying right. Is that correct?

By inverse PWM signal you mean:

  • HIGH/LOW swapped or
  • 1100 being full throttle and 1900 min throttle?
  • something else?

Also, you said:

…I used the PWM signal pad on the eSC itself, not the regular cable.

I suspect you are talking about the small test pad pointed out in the picture. Right?

1 Like

Hi I am using DJI agras mg-1s how to use the esc with normal battery setup

We are currently trying to reverse engineer the communication protocol between the A3 controller and the ESCs. Our efforts to run the motors with PWM only have not been fruitful, although we might have missed something.

Tapping into the motor PWM control lines as reveals a somewhat typical signal, ranging from 1100-1900 microseconds, as indicated by other contributors to this thread.

The iESC port on the A3, however, seems to poll the ESCs using RS485. We have identified 6 pairs of bytes which are looking like control signals as well. We believe the ESCs have a custom firmware which expects both signals for whatever reason.

We are working on a microcontroller code to publish all data as ROS messages. As we progress I will report back.

1 Like

Figure out a solution myself, not a nice solution, but it works.
On the M600 ESCs is a “PWM” pad, this pad works, if a reversed PWM motor signal is used.
By reversed I mean reversing like when a servo turns the wrong direction. I cannot recall which parameter to use, maybe this one " MOT_PWM_TYPE: Output PWM type"

or setting up via the individual servo/motor parameters:
" MOT_PWM_MIN and MOT_PWM_MAX specify the PWM range sent to motors (e.g. where SERVOx_FUNCTION = “Motor1”, “Motor2”, etc). See ESC Calibration for info on aligning the autopilot’s output range with the ESC’s input range."

In betaflight you can use the CLI command “set motor_pwm_inversion = on”, which inverts all motor PWM input signals.

Then with PWM limits set to min=1120, max=1920 and min. control input to 1100.
I cannot say anything regarding a communication via the original 6pin connector…

Sorry for the late response, never got any notifictions on this thread

1 Like