Pixhawk 4 holybro Arducopter 3.6.9 -> 4.0.1rc3, no control over two motors in an X8 with DSHOT

Check these out: APD F-series

I’ve bought one each F40 and F120 for 6S and 12S respectively, and tried to run motor-test on them with ArduCopter on DShot300 and 600. No cookie.
I’ve seen youtube videos of the F120 on 12S X-class racers running Betaflight.

CUAV V5 nano and Pixhawk 4 Mini have identical hardware (sans a gyro/accel, it seems) so they should have identical capabilities.

I don’t think they do 100%… Unless the documentation is wrong.

From the CUAV Nano v5 documentations -->

M1 - M8 Main Outputs. Servo/motor/D-Shot capable

From the PH4 mini docs -->

The Pixhawk4-Mini supports up to 11 PWM outputs. All 11 outputs support all normal PWM output formats. All outputs except numbers 7 and 8 support DShot.

The first 8 outputs are labelled “MAIN OUT” on the case. The next 3 outputs are labelled CAP1 to CAP3 on the case. The CAP4 pin cannot be used as a PWM output.

In order to use outputs 9, 10 and 11 you need to change BRD_PWM_COUNT to 11.

The 11 PWM outputs are in 4 groups:

  • PWM 1, 2, 3 and 4 in group1
  • PWM 5 and 6 in group2
  • PWM 7 and 8 in group3
  • PWM 9, 10 and 11 in group4

Yes Cornel your post is what I was referring to. “True 10 bit” is interesting. I thought typical Dshot is 11 bit for throttle position. “Brand new firmware from the ground up” isn’t very useful if it’s not supported by the Autopilot firmware you want to run.

Same MCU.
Of course you can route and assign pins differently, and end up with two that are not DShot-capable in the MAIN OUT, like in the PH4Mini, but we’re talking chinese designers here, lol. The next 4 are CAP 1-4. Did you ever read a post asking for PWM read capability in a modern FC !? :smiley: And a whooping 4 dedicated pins, no less !?
Of course, in the end CAP 1-3 save the day, by being capable of both being MAIN OUT and DShot capable.

Dave, they seem happy with whatever signal structure they receive from Betaflight. Remember, we’re a mainly PWM-oriented group. The whoop-racer community started the trend in faster/digital comms between FC and ESC, and they defined the standards. They wrote the book. And those ESCs are running fine.on their particular firmware, being fed with a standard DShot.
It’s “our” DShot that’s lacking…

Cornel, Yes, I agree it’s most likely an Ardupilot issue in support of these ESC’s. All we can do is identify it and hope it get’s picked-up for review.

There is really lots of confusion about supporting DShot in ArduPilot. I’ve found a thread where it is claimed that Pixhawk 4 supports 8 ESCs, some people report that it works…

And also about the Cube:

I don’t want to replace my Pixhawk 4 with anything with a “cube”, as I have a gimbal on the top of the drone and no room for such a “tall” board. I also would want the board to have two Power Module inputs, what is provided in Pixhawk 4 but not in Mini and not in several other boards… so it seems no alternative right now… Durandal would be perfect as it’s relatively small, has two power ports but no 8xDShot? How about the CAPx outputs?

What would almost certainly work with all Dshot outputs are the FC’s with no IOMCU. Matek F765-Wing for example. 13 outputs potentially.

Yes, probably Matek F765 would do the job but I wanted something more advanced for my big copter, with redundant sensors, two power modules and generally higher quality (including the connectors for example). After doing lots of research I came to the conclusion that Holybro Durandal is the way to go. But does it support 8xDSHOT? It has the CAPs outputs. Could someone with the knowledge please clarify on this?

Also, concerning Pixhawk 4, the manual says: “The first 6 of the auxillary PWM outputs support DShot.”, but the funny thing is that I’ve got the working DShot telemetry on outputs 7 & 8. So maybe there is a chance of getting DShot for 8 outputs? After all, Pixhawk 4 is and will be a higher end FC for some time in the future.

I somehow regret now jumping on the DShot wagon, but I don’t want to buy (and solder) 8 new PWM-based ESCs… The only positive fact is that I even more don’t want UAVCAN, after seeing the prices and choice of ESCs and that a short-circuit in a single place could stop the whole CAN bus…

Dshot and ESC telemetry are 2 different things. If you have BLHeli_32 ESC’s that support telemetry it will function no matter what output protocol you are using. You don’t need to buy new “PWM based” ESC’s you have them already (those Racerstars). Set MOT_PWM_TYPE to PWM, Oneshot or Oneshot125 and the ESC’s will autodetect it and you are good to go.

Thanks Dave for your support, I think I will what you suggest and switch back explicitly to PWM. However, there are two issues to consider:

-will the Dshot telemetry work when the ESCs are in the PWM mode? I don’t think so because I would then receive it now, and I do not. The FC is polling the ESCs and they respond one at a time. They cannot broadcast without polling as conflicts would result.

-how about PWM calibration? BLHeli_32’s docs mentions nothing about it. It flies as I’ve seen but it is strongly advised to perform the PWM calibration.

My problem is not just “Pixhawk 4 doesn’t support DShot for 8 motors” as I would probably get it working for the first 6 outputs? And ironically I’ve got it for the last two outputs for whom it is not expected to be supported… Maybe I should update BLHeli_32 firmware?

EDIT: I’ve managed to update the BLHeli_32 firmware on my ESCs from 32.1 to 32.7. I’ve connected using the passthrough feature. But it worked only for outputs 6, 7 and 8. I had to swap the physical connections for other motors, and in this way I’ve noticed that these output numbers do not correspond to the ArduCopter’s numbers. So it seems that DShot works only for one timer group, don’t now to which one. But the upgrade didn’t help with recognizing ESCs by ArduCopter.

EDIT2: But something changes between versions with respect to the DShot problem.

3.6.9 - flies, all motors working,
3.6.12 - motors 7&8 not spinning, just staying stationary
4.0.2rc3 - motors 7&8 spinning chaotically back and forth

telemetry only for 6-8 motors in all cases

I am using Oneshot125 on my Octo. I am using BLHeli_32 ESCs. I get telemetry on all ESCs.

Unless you are using Dshot you need to perform an ESC calibration. I have also noticed that anytime you flash the ESCs you should recalibrate, even if just changing the LED colors (if so equipt)

As Dave confirms and I have mentioned a couple times ESC telemetry is not directly related to Dshot so you should be able to get ESC telemetry with any output protocol.

I suppose this is the reason that only 6 of the 8 Aux outputs on the Pixhawk 4 support Dshot. It works for 2 timer groups but not this one.

Pix4 dshot

Post your parameter file, let’s take a look at your ESC telemetry settings.

OK, but how to do a calibration of BLHeli_32-based ESCs? In the same way as for only-PWM ones? Of course after setting the PWM output from FC? There is a calibration option in the BLHeli_32 settings, but what exactly does it means?

Follow the normal calibration process for anything except Dshot

I’ll post the parameters tomorrow, but I should get more outputs doing DShot. I have 8 motors, so there should be 6 DShots?

You should be able motor 1-6 and aux 1,2 giving you 8 dshot outputs

OK, I’ll try. Not easy to remove 8 propellers, but rather recommended (sometimes I cover the drone with a blanket, at least it shouldn’t take off :slight_smile: )

Do you say that’s possible that I can configure PWM outputs and still have DShot telemetry (if configured so)? Interesting…

“You should be able motor 1-6 and aux 1,2 giving you 8 dshot outputs” - you mean Pixhawk 4? How is it possible? I have my 8 motors connected to 8 aux outputs (FMU).

I attach my parameters downloaded and saved via APM Planner. I’ve tried several versions of DShot, so it’s 5 and not 4 right now. Tested both with MOT_PWM_TYPE and SERVO_BLH_OTYPE.

parameter_dshot_problem.param (20.4 KB)