E2000 Pro (sort of) ESC Flash


I’m trying to flash some ESCs that came off of a DJI M600 Pro with BLHeli firmware but I’m stuck on how to talk with the ESC. It’s not DJI’s run of the mill E2000 propulsion system on the M600, they’ve changed it from the documentation and aren’t willing to give me any details. There are 6 wires (two of them a twisted pair). I’ve read that it uses RS485 so I’ve hooked up the twisted pair to an USB RS485 dongle. The wires are going into the T/R+ and T/R- connections. There is something going on when I open up the DJI ESC updater software, but I think it uses a different protocol than it expects.

I can offer some pictures if you let me know what would be helpful.

Holly molly ! Where did you got the idea that the DJI E2000 is flashable with BLHeli ? If you were lucky enough you managed to fry your esc with the RS485 dongle.
You can use them as they are, min PWM1100 max PWM1900. Normal PWM drive.
No BLHeli, BlHeli32 or SimonK versions support the DJI E2000.

Ok, I’m probably off my rocker.

But I don’t get a response from them when I try to calibrate from the Pixhawk. They chime when the copter arms, and the yellow blinking stops, but they don’t spin up and adding throttle doesn’t spin them up either. What might be the problem?

They cannot be calibrated.As I said min is 1100 max is 1900. Set min and max pwm accordingly. If I recall correctly the grey/black twisted wire is the pwm input.

Huh, I’ve been fiddling around with it off and on for weeks. Just tried again, but I haven’t been able to get the motor to spin. When I’ve got the 6 pin wire connected through the DJI Power distribution board, and the board connected to the Pixhawk, similar to the way it’s connected to the A3, the motors chime when armed, and they stop blinking (they’re receiving signal), but won’t spin. At one point they were blinking rapidly, but with the signal output set to 1100, that’s not an issue anymore. On a sidenote, it only works the first time that I push the safety switch. If I turn on the safety again, the ESCs won’t receive a signal again until I cycle the power.

When I connect the ESC twisted pair directly to the signal on the Pixhawk, the ESC never receives a signal.

I’ve confirmed the ESC is receiving +50 volts. And the Pixhawk shows output on all 6 motor servos when I increase the throttle. Max PWM is set to 1900 and min PWM is set to 1100 on all servo motor outputs (1 through 6 in this case).

What else might I look at to get the motors to spin?

I would throw away the power distribution board as well. It communicates with the ESC’s via CANBUS and who knows what commands are sent…
(At least this is what I did when converted M600 to Pixhawk)

Do you remember how the esc connects to the Pixhawk? Does ground and power need to be connected? Are the twisted pair essentially one wire (positive and negative signals to cancel out noise)?

Will check tomorrow, stay tuned

I did get a response from DJI last night,

“Matrice 600 ESC will only work with Matrice 600 main controller, if the Matrice 600 ESC does not detect communication with the Matrice 600 main controller, it will always prompt an error and cannot take off. We suggest use E2000 propulsion system to assembling customer own aircraft.”

Not an answer though.

Any chance you’ll get around to checking out the connection? I’m stuck.

@cndnflyr Did you ever get this working?

@WesD I did not get it working. It seems the ESCs use a kind of CanBus or Sbus protocol, but it is not documented. The next step is to reverse engineer it, but we have not pursued this.

@cndnflyr thanks for the update. We are trying just replacing the ESCs. At this point the only parts left from the original M600 is the frame, power distribution board, and the motors.

I’ll post what works when I get it figured out.

@WesD I hope the motors work fine with other ESCs. They are advertised as high speed communication I think. Really disappointed the stock arms aren’t just plug and play. Oh well.

I’m curious how DJI developed their M series drones, each one is quite different with unique limitations.

I’m late to the conversation, but I thought I should make an account here and share my experience.
I am using the E2000 pro motor and ESC. I am trying to at some point connect them to an Arduino. Right now, I just have a test setup using a function generator, DC power supply, and oscilloscope. I can get the speed controller to recognize that I am giving it a signal, and it is definitely reading the signal, but it is not spinning up the motor. Here is my train of thought:
-If I power up the ESC without my PWM input, the motor chimes, and the ESC displays a slow blinking yellow light (No signal Input)
-If I give the ESC a function that is not between 1100 and 1900, the low yelow light continues.
-If I give the ESC a function that is 1100, the motor chimes the 1-3-5-6 sequence and the blinking stops. Then if I simulate giving throttle to the motor, nothing happens (but no errors either)
-If instead I power up the ESC without a function input, and then I simulate half or full throttle, I get the rapidly blinking light (Indicating throttle not at lowest level). Then if I simulate zero throttle, I get the 1-3-5-6 tone and all lights turn off.

So the ESC recognises the PWM input, and it is able to measure what I want it to do, it just does not comply. Now, I’m a noob when it comes to RC stuff, but not electronics. I have been able to use this method on other ESCs (smaller), and they wuld spin up just fine.

The youtube link is my test. I think I am having a similar problem, and any advice is appreciated.

@NM78, Thank you for your input on the matter. My experience agrees with your prognosis. I’m keen to hear if anyone has anything further to add.

If the ESCs do use CANbus then I wonder if there is some message that has to be sent inconjunction with the PWM input.