How to methodically tune (almost) any multicopter using ArduCopter 4.4.x

Hi Amilcar

thank for your Job. I made the IMU temperature calibration just time ago over two FC: Pixhawk 6C (2 IMUs) and Pixhack V3x (3 IMUs). I want to share my results in order to know your opinion about the results:
Pixhawk 6C


In this case, my doubt is about the temperature behavior, it doesn’t look like a “classic” algorithm curve, the rate looks soo high. do you think?

Pixhack V3x :


In this case my doubt is about the Accel curves (all IMUs); it shows a slope in the “uncorrected Y” and “corrected Y” (point by red arrow). I don’t know if it is a sign of movement during the calibration period.

Thank you for your time, and whoever wants to comments

It could be movement, but it was slow. Just repeat the calibration.

@iampete can you please delete your first post in this thread so that I can extend the first post into a second one? Thanks.

I will change the (current) third post, so I repost it here so that it will not get lost:

Thank you @iampete for building the webtools. I am missing one though: https://github.com/ArduPilot/ardupilot/blob/master/Tools/scripts/tempcal_IMU.py

If that one gets implemented, the users will not need to install python on their computers.

And having a step-response settling-time @ 5 % calculation on the PID Review Tool would make it easier to quantify the quality of the results.

@amilcarlucas do you think its worth installing bluejay onto blheli-s controllers to get esc telemetry on small quads in order to a better tune?

Yes, of course. In 2024 not having ESC telemetry should be considered a crime.

You need a very good reason not to have telemetry.

3 Likes

See Help 5 inch racing FPV drone Tunning using Ardupilot - #7 by amilcarlucas for a parameter analysis

Another methodic review, this user was more methodic and accurate:

2 Likes

I’ve been using your Annotation script and it’s working really well. Do you have (or know of) a script that will pull all the non-default parameters from a full parameter file? I know MP has an option to show non-default parameters but it won’t extract just those to a file.

1 Like

Currently, I extract the default by amilcarlucas from a bin file and use a software to compare it, I see the changes make to the default values.

1 Like

I have scripts that do that, but they are not open source.

1 Like

@amilcarlucas Hey i saw there is something like.
Z vibrations are caused by the downwash of each blade hitting the arm and the forward traveling propeller hitting the oncoming air when moving.
how i could fix that?

Stiffen the frame, use stiffer props.

1 Like

I open sourced it in the form of a PR for ArduPilot extract_default_params.py.

Enjoy

1 Like

I installed bluejay then went to install the bd firmware and discovered there isnt a bdshot fimware for hte speedybeef405mini or the JHEMCU-GSF405A that I have. Is there a reason those boards dont support it?

They both support bidirectional DShot. It’s the opposite - there is no firmware version for them, which does not support BDShot.

1 Like

what should SERVO_DSHOT_ESC be set for to use bluejay escs on blheli-s?

I don’t really know whether the answer is right, but it seems from experience that Bluejay understands options 2 and 4 for SERVO_DSHOT_ESC (that is, both related to blheli_s).

At least they work well in flight, and option 4 enables extended telemetry. There is not really much coming via extended telemetry in the case of typical hardware running Bluejay, but I am working on supporting Extended DShot Telemetry v2 in Ardupilot, which will bring some status information about how much an ESC struggles to keep it going.

3 Likes

The RPM is coming through now thank you.

1 Like

The process can be automated with the new ArduPilot Methodic Configurator available from ArduPilot Methodic Configurator github repository

3 Likes

2 or 4. The reason the settings are different is because BLHeli_S/BlueJay use MCUs that are not able to leverage some of the newer features of 32-bit MCUs (e.g. DMA) and thus are quite timing sensitive (they use bit-banging instead). The settings change the calculation of the high/low period for dshot in a way that these firmware’s seem happier with. Why don’t they follow the standard you might reasonably ask? Well first off there isn’t really a “standard” for dshot timing. The output bitrates are fixed, but the duty cycle within that is not. Second off, blame BetaFlight - my suspicion is that many ESC manufacturers only test against BetaFlight in development - so if it works in BetaFlight they assume “job done” and move on. But BetaFlight itself also has some variability in timing because it also uses bit-banging in many instances. So what this boils down to is us trying to replicate BetaFlight timings on a very different platform, without a standard - and surprise, surprise, not everything works as expected.

4 Likes