How to methodically configure and tune any ArduCopter

Change the battery voltages as per manufacturer specification.

Make sure to correctly calibrate voltage and current measurement gains.

If you do that the vehicle will remain stable. But if the voltage drops too far it will crash. Multicopters can not operate on empty batteries

1 Like

In this case, in the range between 2.7 and 3.0, the rate PIDs will effectively become lower than you tuned them as the voltage drops. The difference will be at most 10% (that is, (3.0 - 2.7) / 3.0 = 0.1), which theoretically will not cause significant instability.

Generally, it is safe for control purposes to set MOT_BAT_VOLT_MIN lower than the battery minimum usable voltage. However, it may be somewhat less safe for battery life, because if maintaining the intended control precision requires aggressive outputs, this will impose higher discharge currents on a nearly depleted battery. Note that the discharge current increases anyway solely because you need to keep constant output power to hover - but it might be safer for the battery if the copter does not respond very sharply to your inputs or wind gusts when the battery is fully depleted.

For all my machines I know that it is completely unlikely for me set a battery on fire by any landing actions, so I set MOT_BAT_VOLT_MIN very low to ensure good attitude control at emergency landings.

1 Like

Thank you for the detailed response and sharing your experience with logic. Much appreciated :+1:

Hi

Does anyone know if it is due to my system or the script file (tempcal_IMU.py)?

warnings.warn("Unable to import Axes3D.

$ pip3 show matplotlib
Name: matplotlib
Version: 3.9.0
Summary: Python plotting package
Home-page: https://matplotlib.org
Author: John D. Hunter, Michael Droettboom
Author-email: Unknown <matplotlib-users@python.org>
/home/pi/.local/lib/python3.10/site-packages/[matplotlib](https://pypi.org/project/matplotlib/)/projections/__init__.py:63: UserWarning: Unable to import Axes3D. This may be due to multiple versions of Matplotlib being installed (e.g. as a system package and as a pip package). As a result, the 3D projection is not available.
  warnings.warn("Unable to import Axes3D. This may be due to multiple versions of "
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Processing log 72 01-01-1980 08-00-00.bin
Using orientation 0
TCAL[2] enabled
TCAL[1] enabled
TCAL[0] enabled
Loaded 8262 accel and 8262 gyro samples

Doe it still produce output? Can you post the png files?

Yes, it still produces the two PNG files.
I got this warning only today, last time I didn’t get this warning.


You are using the original script instead of the improved version included in the ArduPilot Methodic configurator that saves you the trouble on installing python and the dependencies. Why are you doing that?

Is an adhoc drone previously didn’t do IMU temp calibration and before ArduPilot Methodic configurator was born.

What about ESC rpm?
Does the LOG_BITMASK only affects the sampling rate of the SIDD logs?

If it’s serial port telemetry there is a parameter for that. If it’s from Bdshot the rate is very high. Each DShot frame from the FC gets acknowledged by a frame from the ESC containing the current eRPM

I have it plugged in serial 6 and set serial6_protocol to esc telemetry. The Dshot is set to Dshot600. what is the param to change the sampling rate for the data log?

…………

servo_blh_trate but this isn’t directly related to logging rate. Give it a try and see if it does what you want.

1 Like

ESCs get logged with this 400Hz frequency or so (actually 100), if I am not mistaken: the last frame that’s arrived gets logged in most of the cases, unless the code actually collects biggest/worst values to present.

I once proposed rate limiting for ESC messages, and even implemented logging of a subset of ESCs to increase the (tiny) storage available on most of my boards. This was not accepted for the reason below.

The “real” solution is to use LOG_BLK_RATEMAX and to set it to some value you are comfortable with. This will limit the rate of other messages too, but often this is what you want (if not, you have “unlimited” space and need not bother limiting rates at all).

1 Like

If I have a heater in the flight controller (Cube Orange+) that maintains the constant temperature of the Gyro and Accel, is temperature calibration required as in the instructions?

Its not required, but its recommended.

Will you always wait 2 minutes on the ground powered by battery before taking off?
Then you do not need it at all.

If you want to plug in a battery and fly ASAP, you need it, because the CubeOrange+ heater is not as fast as you.

and here are some more details:

Yes, I always wait a few minutes for the IMU temperature to reach the appropriate level, without the appropriate temperature the drone will not arm (that’s how I have it set), it’s a good time to check and turn everything on before flight.

The filter settings don’t look right to me based in the graph so I figured I would ask for assistance.

Lower BW to 10 and Enable Multi-Source. Also set INS_HNTCH_REF to calculated value from MOT_THST_HOVER.

Multi source on a throttle based notch filter does not make sense unless you are using 4.6.0 or newer.