BDshot issues for obtaining ESC telemetry in arduplane versus arducopter

I have got an issue with arduplane versus arducopter treatment of ESC telemetry using BDshot. In all my copters builds I integrate the option to display the ESC temperature.

However, in arduplane, with the same hardware setup (same 4 x 1 60 A Speedybee ESC, Matek 741 Wing or Copter), I can not get the ESC temperature using esc_telem:get_temperature ().

The main difference that in arduplane, there is SERVO_BLH_MASK, but no SERVO_BLH_BDMASK. Not sure if there is this SERVO_BLH_BDMASK in arduplane.

So my question is how to obtain the ESC telemetry using BDShot for arduplane (it is a VTOL where the VTOL ESC works on the temperature limit!)

There is SERVO_BLH_BDMASK in Arduplane, at least according to the complete parameter list.

To the best of my impression, this subsystem is vehicle-independent. However, for boards with potentially funny DMA channel layout there are versions with or without BDshot. You might be flashing Plane binaries without BDshot support. At least for MatekH743, correct versions exist (ArduPilot firmware : /Plane/stable-4.6.3/MatekH743-bdshot).

(It might be that something in the build system is somehow broken, but by a vehicle independence argument this should also have resurfaced in Copter too).

In Arduplane there is SERVO_BLH_MASK, not SERVO_BLH_BDMASK. Not sure if they are the same. I marked motor channels on this SERVO_BLH_MASK, but I can not get the ESC telemetry. I am using 4.6.3. I am able to connect the ESC configurator and change settings, so the bidirectional protocol must be working.

They are not and as @MaxBuzz says there is a SERVO_BLH_BDMASK in Plane.

What board do you have? Can’t be a Matek 741 Wing. Have the Bdshot version of firmware loaded?

Strange, I do not have SERVO_BLH_BDMASK…

It’s a Matek H743-Wing with the Bdshot version of firmware flashed?

It is Matek 743 Wing. I believe it should be BDshot version… I will reflash it just in case

The right way to do that is to grab the .apj from here Matek H743-bdshot and use Load Custom Firmware in Mission Planner. Then you know for sure,

1 Like

thanks a lot

That solved the issue, the SERVO_BLH_BDMASK appeared!

2 Likes

Not so fast, it was premature to close this topic…

It does not work.

The quad motors do not run now…

And, the scripts subdirectory is gone, and despite disabling and reenabling the SCR_ENABLE, still the subdirectory does not appear… THAT ONE WAS MY FAULT, CARD POPED OUT…

I uploaded 4.7.0, trying with this one… the motors do not work,

Went back to 4.6.3 non BD Matek wing 743, which I believe I had installed originally and with which the motors worked fine.

Still nothing. I can not make the motors run. I begin to suspect that somehow the ESC got daamged, but:

When plugging in power, the motors emit start-up music.

And I can connect to ESC configurator.

This means that the ESC should be OK, both the power modules and the communication module, but the motors do not run.

On Servo Output Tab, I do get an increase of PWM when forcing arming and increasing throttle in Qstabilize mode.

I would check that you have not enabled EDT arming in AM32 on that one. To test if the ESC works you could disable DShot and use PWM.

I am using BL HELI 16. Finally, I got the motors running, but only without BD, on version 4.6.3. Not sure why. Also, the RCIN which was on UART 6 stopped working. I changed to UART 2 (both in Mission Planner, and physically), and it works OK, but I begin to suspect that maybe the Matek board has some issues.

What is “bl heli 16” do you mean blheli_s? If so, you need bluejay firmware for BDShot support.

Sorry, I have blue jay uploaded, version 21. I have it on all ESCs, and they work fine, but on copters, with BD and ESC telemetry. Not sure where I got the problem this time.

Could you please upload your parameter file, just in case something funny happens with your motor-to-channel assignment?

1 Like

VTOL QUAD 2026 04 23.param (38.3 KB)

Now, I was able to make the motors run, although I am not sure what I did. They run both on Matek 743 Wing and Matek 743 Wing Bdshot, 4.6.3.

However, I do not get the ESC telemetry (temperature).

This is the lua script:

VTOL SMALL.lua (9.6 KB)

I had two settings wrong, SERVO_DSHOT_ESC was temporarily set to 2, now I switched it back to 4. Once, I got two channels with temperature values, but after that, again it turned to 0.

Not sure if 40 cm. cables for BDshot is too much? Could it be signal conditioning issues?

Yeah, I was writing about that (SERVO_DSHOT_ESC: 2 => 4). Motors vs channels seem OK to me.

Could you please check ESC entries in the logs, especially the error percentage they show?

By the way, your RC6 issues are likely mentioned here (Mateksys H743-Wing/SLIM/MINI/WLITE — Copter documentation), assuming your RC is one of these old-fashioned ones. (Should have been that way on copters too).

1 Like