Servers by jDrones

DShot and BLHeli ESC Telemetry support


(Luca Ceccarelli) #8


congrats for the great jobs, is it mandatory to configure the DSHOT? Because I would like just have the ESC telemetry.

(rmackay9) #9


I think for the moment at least the telemetry requires using dShot. The reason is that because the ESCs’ telemetry connections (which are serial) are all connected to a single serial port on the flight controller, we need to use the dShot connection to tell the ESC when the line is clear for them to send their message. If we didn’t do this then the messages from the ESCs could (and probably would) arrive at the same time and they would end up corrupted.

(Luca Ceccarelli) #10

Thanks for clear reply… for the moment i’ll use kg 4in1 blheli_32 esc as a standard esc, i.e. with pwm waiting for the 3.6 final release.

(Nathan E) #11

Spoke with @tridge yesterday about reverse thrust support ( Hopefully coming soon! The rest works well on plane 3.9 beta1.

(wkf94025) #12

Nate, glad to see you are pursuing this. I just read your issue 8579 writeup. It implies that reverse throttle works as expected for non-dShot. Is that the case?

What are you doing/thinking re ESC telemetry display while in flight?


(Nathan E) #13

I think I tested reverse thrust on the bench and it worked well with PWM (continuous smooth throttle range). I haven’t flown with it yet, but I don’t anticipate any issues.

I would really like to see the percent throttle for every motor while in-flight. For my twin-engine planes, that would be a -100% to 100% range for each motor. That way I can monitor their health and tune.

(wkf94025) #14

Now seeing rpm, amps, temp in ESC fields of DF log. What’s next step toward getting real-time display of those in either GCS or OSD?


(priseborough) #15

Does the baud rate setting on the serial port connected to the ESC matter? The wiki doesn’t mention what to set it to.

(tridge) #16

It is automatically set to 115200, so it doesn’t matter what the parameter is set to

(James Pattison) #17

It should set itself to 115200 when you assign the function to the uart.

(tridge) #18

support for realtime ESC telemetry is now in master. It is also in the latest releases of pymavlink and MAVProxy.
What we need next is a way to display it in MissionPlanner and QGC

(priseborough) #19

I am using a pixracer and due to the need to run a second GPS on the Telem2 port, was trying to use the FRsky connector for the ESC telemetry connection, which according to this page is serial 4, however this may not be the case as I am also not able to get that port to read a known working GPS receiver.

(Fnoop) #20

That port’s got a hardware inverter hasn’t it?

(priseborough) #21

That would explain it :slight_smile: Telemetry works when connected to Telem2.

(priseborough) #22

I might be able to use the debug port

(tridge) #23

There are several solutions I can think of:

  • we can change in the hwdef.dat to add the UART7 debug port to UART_ORDER list, and add a hal.uartG and SERIAL6, so we allow for 6 configurable ports on pixracer.
  • we can make the FrSky_INV control pin be user configurable. I’ve opened a PR for that just now (see That will allow RELAY_* settings to control if FrSky port is inverted or not
  • we could add a BRD_* parameter for controlling FrSky invert

(priseborough) #24

I’ve read the documentation for the RELAY* parameters here and looking at the schematic here: it is not clear to me how those parameters would need to be set for this use case.

(tridge) #25

The RELAY parameters can be used to set any GPIO. For example, if you apply my PR and then set this:

then from MAVProxy you could do:
relay set 0 0
that will bring the relay pin low. If you do:
relay set 0 1
then it will bring the relay pin high.
You can also set RELAY_DEFAULT to the value at boot.

The relay system isn’t really meant for controlling things like inverting a uart, it’s meant for things like bottle drop releases, but it can be used for arbitrary GPIO control.
Then we can implement a better method, perhaps with a BRD_* parameter if this works for you.

(priseborough) #26

So should the relay be on or off? Looking at the schematic, the pin connects to pins 1 and 5 on the inverter chip. However i don’t know if setting RELAY_DEFAULT to 0 pulls pin 69low or high.

(priseborough) #27

Setting REPLAY_DEFAULT to 0 works :smile: thanks for the advice.