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.
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.
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.
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.
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