IDLE Motor RPM (mot_spin_arm) still too high

Hello.

Radio and ESC are calibrated normally. and The drone works pretty Good.
But, the mot_spin_arm RPM is higher than the expected. (It feels a little threatening.)

param value : 0.0:Low, 0.15:Default, 0.3:High

I tried changing 0.15 → 0.0 and values in between.
but, The result observed with an infrared RPM meter seems does not change.
(parameter changes don’t seem to adopt)

Is there any other (safe) way to decrease mot_spin_arm ?

Waiting for a suggestion, thanks.

Strange that the RPM is not affected by changing the parameter. I can think of a few ways to help debug this:

  • What is the actual PWM value being output after arming? Mission Planner will be able to tell you. Make sure the value matches MOT_PWM_MIN + MOT_SPIN_ARM * (MOT_PWM_MAX - MOT_PWM_MIN).
  • Have you tried changing MOT_SPIN_MIN? If the drone thinks it is flying, that might explain why it the RPM seems too high and MOT_SPIN_ARM does nothing.
  • If you have a servo tester, you could try hooking that up to an ESC to make sure that the motor spins at a sane speed at the intended minimum PWM.

Thank you, sorry for the late reply.

Before seeing your answer, I tried lowering the IDLE RPM by adjusting MOT_PWM_MIN.
However, half success and half failure.

The IDLE RPM was lowered as desired, but it did not satisfy the reasons for wanting to adjust the IDLE RPM.

This is not the case when using FC such as DJI or JIYI in the same copter, but only when Ardupilot (pixhawk4) is used, there is vibration after arming before takeoff.
so I wanted to adjust the ILDE RPM, but I did not get the desired result even after adjusting enough. (Loiter Mode of a large quad/HEXA copter for agriculture with a 34-36 inch prop and a 20-30 kg payload)

If the motor RPMs are similar on the same copter platform, the level of vibrations generated should also be similar.

Ardupilot tries Attitude Control immediately after starting up and even in idle state before takeoff, so that each motor RPM changes and vibration is amplified.

In the case of DJI or SIYI, Attitude Control is not performed after arming, but self-control control starts the moment the throttle rises after takeoff. In the idle state after arming, the overall motor RPM of the copter is the same, showing a safe vibration level.

(The vibration of the copter before take-off causes an amplification of the anxious mind of the novice pilot. Of course, I think the Ardupilot is better after take-off.)

(I think that the timing of Attitude Control is set this way due to legacy such as Stabilized mode. And it is necessary to control the IDLE state optimized for each flight mode)

of course,
I’ll look further into Ardupilot to see if there’s a workaround I’ve missed. thank you.

Set LOG_DISARMED,1 just to be sure of capturing everything, do an arm/disarm cycle or even attempt to fly, then set LOG_DISARMED,0
Let’s see that .bin log file.
It could be something like yaw PID too high.

Change the log_disarmed flag to 1 and attach the arming log. (Log Bitmask is NearlyAll.)

idle.zip (796.4 KB)

You have ATC_ACCEL_Y_MAX,0 which cant be helping. It would need to be about 20000 just as a starting point, since we don’t know enough about your aircraft yet. (the Alt A plugin mentioned below will set this and some other things too)

This is too high ATC_RAT_YAW_P,2 , set it to about 0.75 for a start, and set ATC_RAT_YAW_I,0.075
This will cause arm-shake and various crazy symptoms.

There’s a few other settings you need to do:
Make sure MissionPlanner is updated, connect to MissionPlanner and press Alt A and step through that dialogue - accept everything it offers after you put in your prop size and battery cell count.

I suggest setting these:
MOT_SPIN_ARM,0.09
MOT_SPIN_MIN,0.12
BATT_FS_CRT_ACT,1
BATT_FS_LOW_ACT,2

The MissionPlanner motor test can be used to test those MOT_SPIN values.
MOT_SPIN_ARM should be the slowest reliable startup speed.
MOT_SPIN_MIN should be the minimum prop speed during flight. Too low and the ESCs will lose sync and not be able to turn the motor correctly under load.

Level the whole craft (across the top of the motors) front to back, side to side, diagonals. Pack the landing gear to get it exactly level. Dont assume the floor or ground is level - it wont be.
Then press the “Calibrate Level” button in the MissionPlanner Accel calibration screen.

Do you have MOT_PWM_MAX,1920 and MOT_PWM_MIN,950 set for your specific ESCs ?
What ESCs are they?

First, the PWM range of the ESC I use is 1050~1940, but the MOT_SPIN_MIN parameter does not work. So, MOT_PWM MIN MAX was adjusted to lower the IDLE RPM. *(Please read the thread above)

The initial parameter guide are used with thanks.
After all the tuning was done, I adjusted the yaw value. (In my experience, The ATC_ACCEL_Y_MAX value should be lowered for large Copters), the flight is fairly stable.

I’ll change the P,I values and test as you suggested.

And the management of the level status,
I have experience in manufacturing nearly a thousand agricultural ardupilot drones and I think they are properly managed.

If the prop is removed and the aircraft is moved(tilt or roll) in idle state after arming, the output state of each motor changes continuously. I think this is under Attitude control in ardupilot.

In the case of a motor with a large prop in Low KV, I suspect that attitude control is the cause of the IDLE vibration, thinking that it is disturbed by the vibration caused by the motor/prop system in the idle state of low RPM.

BATT_FS_LOW_ACT, BATT_FS_CRT_ACT
I have a method (radio script or app) that replaces the first battery Failsafe (LOW_ACT).

Hopefully, it will be more useful if the first battery Failsafe (LOW_ACT) can be selected to warn with LED or buzzer without any action(land , rtl …).

Thanks for your attention and advice.