Problems with Idle throttle (Copter 3.3.3)

Hi all,
Hopefully someone can help me with this:
I don’t know if my ESCs are super-sensitive or what but here goes:
When I arm my quad using the default settings, all 4 motors will start at a fairly high RPM (almost enough to lift off). There is no “gap” between too much power and zero power (I had to “jump-land” my quad when testing this the first time, not a fun experience with a shiny new unit :slight_smile: ).

I can see that if I set MOT_SPIN_ARMED to anything below 70, the motors won’t engage in idle, so I’ve left them there - I don’t mind a slow spin just to make sure all 4 motors engage at the same time.
However, playing with the THR_MIN (basically adjusting it down) I notice weird things happening (right now I have THR_MIN set to 75), and the moment I give a little bit of stick, one of the motors will actually STOP while the others rev up. If I continue to give throttle slowly the stopped motor will engage at around 25% throttle.

The machine flies great, but there’s definetely something wrong with the throttle config, and today the wind almost bumped it over while I was waiting for the “last” motor to engage.

So, all in all:
To high THR_MIN and the thing is hard to land, since there’s nothing between idle and hover rpms. Too low THR_MIN and all 4 motors don’t engage at the same time. (btw, this is not an ESC issue. I can see in mission planner that the pixhawk gives different values to the 4 motors, so this is a 100% apm problem as far as I can see)

Also, I notice that giving just barely any throttle at all, my motors are actually increasing in RPM. APM seems to feed them more and more power without me adjusting the throttle stick. Since this is all in Stabilize mode, I guess the unit is trying to correct itself. However, there needs to be a “ramp-up” where the stabilization routines don’t kick in at the very lower end of the throttle (like zero throttle + one “notch”). If I set MOT_SPIN_ARMED so that the motors run slowly, apm will actually stop one or two motors when I give a tiny bit of throttle.

As I’m playing more with this, here’s another oddity I can’t make sense of. Leaving MOT_SPIN_ARMED at its default value of 70, I’m playing with THR_MIN. In the motor test window I know that my motors engage at 9% so I figured 90 would be a good value. Arming with THR_MIN at 90 spins the motors, and all 4 motor pwm outs send pwm 1147 to the ESCs. However, if I lower THR_MIN to 75, the ESCs receive pwm 1156. How can a lower THR_MIN result in higher pwm outputs?

It would be nice to see a log for this copter. ESC calibration set them so that it knows what the range is for your transmitter. Typical values will be like 1000 min and 2000 max. Not all transmitters fit that range.

Motors will engage at about 1090 or so and if they are at the low end will cause them to stop or brake and stop. If your copter is to light and too large a prop is used it can cause premature flight.

How did you calibrate the ESC’s for this copter? All at once or individually using channel 3 on the receiver?

Mike

Hi
I also have this problem

I callibrate them by using a reciever and RC, my speed controllers are turnigy multistar opto,

I lowered the min endpoint of throttle channel, callibrated the motors and raised it to previous value. it was good but the problem of rising motors speed was emerged that i dont know its reason.

it would make me happy if any one give me a clue fixing this problem
thank you

I tried calibrating them both one by one and all at once, without seeing any difference. The ESCs are well calibrated as far as I can see. Part of the problem is probably the fact that this is a small-ish copter with large-ish rotors, so it will take off on less throttle than what is usual (it will be weighed down by camera setup later). The main problem here is that THR_MIN turned out to actually increase pwm to the motors if it was set to low, as my previous post described. From there I was able to find the lowest value pwm that pixhawk would send to the motors, which turned out to be at around 85. Lower than that and the pwm would start increasing again (which is something I consider a huge bug).

It’s flying well now.

SO do you mean that this is bug of Pixhawk to increase the motors speed gradually and without making any change to throttle value?

Well, that’s not a bug in itself. The pixhawk believes you want to take off, so it does that to level out the copter - which is totally understandable.

The way I tuned it was:

  1. Figure out what throttle the motors start at. The “motor tester” is really good here. Mine start at 9%. Also make sure that all motors start at the same percentage, if not you need to calibrate your escs.
  2. 9% means that THR_MIN should be set to 90% as a starting point. Test it from there, and try reducing it lower. At some point the motors will start spin faster instead of slower as you reduce the value. I ended up at 86 (you can view te ch1-4out values to see the pwm out-value. You want it as low as possible where the motors are still spinning.

After doing this, my copter spins the motors very slowly at arm (this can be tuned with MOT_SPIN_ARMED), and I have a good area of “deadband” before the copter takes off.

I have no idea why it is like this, but that’s what I had to do anyways.

1 Like

Same problem…adjusting THR_MIN did nothing… all of this seems to be related to a firmware update… since it wasn’t a problem previously. We need some serious help here

Forgot to mention that while running the COMPASS MOTOR CALIBRATION the throttle acceleration works perfectly …what the heck!

Again, this mode just allows the throttle to go straight though.

I have been running 3.3.3 for months and do not have your issues.

We need to see your flight logs to see what is really going on here.

Mike

FMT, 128, 89, FMT, BBnNZ, Type,Length,Name,Format,Columns
FMT, 129, 23, PARM, Nf, Name,Value
FMT, 130, 45, GPS, BIHBcLLeeEefI, Status,TimeMS,Week,NSats,HDop,Lat,Lng,RelAlt,Alt,Spd,GCrs,VZ,T
FMT, 131, 31, IMU, Iffffff, TimeMS,GyrX,GyrY,GyrZ,AccX,AccY,AccZ
FMT, 132, 67, MSG, Z, Message
FMT, 133, 35, RCIN, Ihhhhhhhhhhhhhh, TimeMS,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14
FMT, 134, 23, RCOU, Ihhhhhhhh, TimeMS,Chan1,Chan2,Chan3,Chan4,Chan5,Chan6,Chan7,Chan8
FMT, 136, 21, BARO, Iffcf, TimeMS,Alt,Press,Temp,CRt
FMT, 137, 13, POWR, ICCH, TimeMS,Vcc,VServo,Flags
FMT, 145, 41, CMD, IHHHfffffff, TimeMS,CTot,CNum,CId,Prm1,Prm2,Prm3,Prm4,Lat,Lng,Alt
FMT, 146, 16, RAD, IBBBBBHH, TimeMS,RSSI,RemRSSI,TxBuf,Noise,RemNoise,RxErrors,Fixed
FMT, 148, 31, CAM, IHLLeeccC, GPSTime,GPSWeek,Lat,Lng,Alt,RelAlt,Roll,Pitch,Yaw
FMT, 25, 25, ATUN, BBfffff, Axis,TuneStep,RateMin,RateMax,RPGain,RDGain,SPGain
FMT, 26, 9, ATDE, cf, Angle,Rate
FMT, 9, 23, CURR, IhIhhhf, TimeMS,ThrOut,ThrInt,Volt,Curr,Vcc,CurrTot
FMT, 12, 20, OF, hhBccee, Dx,Dy,SQual,X,Y,Roll,Pitch
FMT, 5, 47, NTUN, Iffffffffff, TimeMS,DPosX,DPosY,PosX,PosY,DVelX,DVelY,VelX,VelY,DAccX,DAccY
FMT, 4, 33, CTUN, Ihhhffecchh, TimeMS,ThrIn,AngBst,ThrOut,DAlt,Alt,BarAlt,DSAlt,SAlt,DCRt,CRt
FMT, 15, 25, MAG, Ihhhhhhhhh, TimeMS,MagX,MagY,MagZ,OfsX,OfsY,OfsZ,MOfsX,MOfsY,MOfsZ
FMT, 6, 17, PM, HHIhBHB, NLon,NLoop,MaxT,PMT,I2CErr,INSErr,INAVErr
FMT, 1, 23, ATT, IccccCCCC, TimeMS,DesRoll,Roll,DesPitch,Pitch,DesYaw,Yaw,ErrRP,ErrYaw
FMT, 3, 6, MODE, Mh, Mode,ThrCrs
FMT, 10, 3, STRT, ,
FMT, 13, 4, EV, B, Id
FMT, 20, 6, D16, Bh, Id,Value
FMT, 21, 6, DU16, BH, Id,Value
FMT, 22, 8, D32, Bi, Id,Value
FMT, 23, 8, DU32, BI, Id,Value
FMT, 24, 8, DFLT, Bf, Id,Value
FMT, 19, 5, ERR, BB, Subsys,ECode
PARM, SYSID_SW_MREV, 120
PARM, SYSID_SW_TYPE, 10
PARM, SYSID_THISMAV, 1
PARM, SYSID_MYGCS, 255
PARM, SERIAL0_BAUD, 115
PARM, SERIAL1_BAUD, 57
PARM, TELEM_DELAY, 0
PARM, RTL_ALT, 3048
PARM, RNGFND_GAIN, 0.8
PARM, FS_BATT_ENABLE, 0
PARM, FS_BATT_VOLTAGE, 10.5
PARM, FS_BATT_MAH, 0
PARM, FS_GPS_ENABLE, 0
PARM, FS_GCS_ENABLE, 1
PARM, GPS_HDOP_GOOD, 230
PARM, MAG_ENABLE, 1
PARM, FLOW_ENABLE, 0
PARM, SUPER_SIMPLE, 0
PARM, RTL_ALT_FINAL, 0
PARM, RSSI_PIN, -1
PARM, RSSI_RANGE, 5
PARM, WP_YAW_BEHAVIOR, 2
PARM, RTL_LOIT_TIME, 5000
PARM, LAND_SPEED, 50
PARM, PILOT_VELZ_MAX, 250
PARM, PILOT_ACCEL_Z, 250
PARM, THR_MIN, 130
PARM, THR_MAX, 80
PARM, FS_THR_ENABLE, 0
PARM, FS_THR_VALUE, 975
PARM, TRIM_THROTTLE, 60
PARM, THR_MID, 510
PARM, THR_DZ, 100
PARM, FLTMODE1, 0
PARM, FLTMODE2, 0
PARM, FLTMODE3, 0
PARM, FLTMODE4, 0
PARM, FLTMODE5, 0
PARM, FLTMODE6, 0
PARM, SIMPLE, 0
PARM, LOG_BITMASK, 26622
PARM, ESC, 0
PARM, TUNE, 0
PARM, TUNE_LOW, 0
PARM, TUNE_HIGH, 1000
PARM, FRAME, 0
PARM, CH7_OPT, 0
PARM, CH8_OPT, 0
PARM, ARMING_CHECK, 127
PARM, ANGLE_MAX, 4500
PARM, RC_FEEL_RP, 100
PARM, PHLD_BRAKE_RATE, 8
PARM, PHLD_BRAKE_ANGLE, 3000
PARM, LAND_REPOSITION, 1
PARM, EKF_CHECK_THRESH, 0.8
PARM, DCM_CHECK_THRESH, 0.8
PARM, RC1_MIN, 1107
PARM, RC1_TRIM, 1519
PARM, RC1_MAX, 1932
PARM, RC1_REV, 1
PARM, RC1_DZ, 30
PARM, RC2_MIN, 1107
PARM, RC2_TRIM, 1519
PARM, RC2_MAX, 1932
PARM, RC2_REV, 1
PARM, RC2_DZ, 30
PARM, RC3_MIN, 965
PARM, RC3_TRIM, 966
PARM, RC3_MAX, 1932
PARM, RC3_REV, 1
PARM, RC3_DZ, 30
PARM, RC4_MIN, 1106
PARM, RC4_TRIM, 1519
PARM, RC4_MAX, 1932
PARM, RC4_REV, 1
PARM, RC4_DZ, 40
PARM, RC5_MIN, 963
PARM, RC5_TRIM, 967
PARM, RC5_MAX, 2072
PARM, RC5_REV, 1
PARM, RC5_DZ, 0
PARM, RC5_FUNCTION, 0
PARM, RC6_MIN, 1497
PARM, RC6_TRIM, 1497
PARM, RC6_MAX, 1498
PARM, RC6_REV, 1
PARM, RC6_DZ, 0
PARM, RC6_FUNCTION, 0
PARM, RC7_MIN, 1497
PARM, RC7_TRIM, 1498
PARM, RC7_MAX, 1498
PARM, RC7_REV, 1
PARM, RC7_DZ, 0
PARM, RC7_FUNCTION, 0
PARM, RC8_MIN, 1497
PARM, RC8_TRIM, 1498
PARM, RC8_MAX, 1498
PARM, RC8_REV, 1
PARM, RC8_DZ, 0
PARM, RC8_FUNCTION, 0
PARM, RC10_MIN, 1100
PARM, RC10_TRIM, 1500
PARM, RC10_MAX, 1900
PARM, RC10_REV, 1
PARM, RC10_DZ, 0
PARM, RC10_FUNCTION, 0
PARM, RC11_MIN, 1100
PARM, RC11_TRIM, 1500
PARM, RC11_MAX, 1900
PARM, RC11_REV, 1
PARM, RC11_DZ, 0
PARM, RC11_FUNCTION, 0
PARM, RC_SPEED, 490
PARM, ACRO_RP_P, 4.5
PARM, ACRO_YAW_P, 4.5
PARM, ACRO_BAL_ROLL, 1
PARM, ACRO_BAL_PITCH, 1
PARM, ACRO_TRAINER, 2
PARM, ACRO_EXPO, 0.3
PARM, RATE_RLL_P, 0.10244
PARM, RATE_RLL_I, 0.10244
PARM, RATE_RLL_D, 0.003
PARM, RATE_RLL_IMAX, 1000
PARM, RATE_PIT_P, 0.10244
PARM, RATE_PIT_I, 0.10244
PARM, RATE_PIT_D, 0.0055
PARM, RATE_PIT_IMAX, 1000
PARM, RATE_YAW_P, 0.17
PARM, RATE_YAW_I, 0.02
PARM, RATE_YAW_D, 0.003
PARM, RATE_YAW_IMAX, 1000
PARM, LOITER_LAT_P, 1
PARM, LOITER_LAT_I, 0.5
PARM, LOITER_LAT_D, 0
PARM, LOITER_LAT_IMAX, 1000
PARM, LOITER_LON_P, 1
PARM, LOITER_LON_I, 0.5
PARM, LOITER_LON_D, 0
PARM, LOITER_LON_IMAX, 1000
PARM, THR_RATE_P, 5
PARM, THR_ACCEL_P, 0.3658
PARM, THR_ACCEL_I, 0.7316
PARM, THR_ACCEL_D, 0
PARM, THR_ACCEL_IMAX, 800
PARM, OF_RLL_P, 2.5
PARM, OF_RLL_I, 0.5
PARM, OF_RLL_D, 0.12
PARM, OF_RLL_IMAX, 100
PARM, OF_PIT_P, 2.5
PARM, OF_PIT_I, 0.5
PARM, OF_PIT_D, 0.12
PARM, OF_PIT_IMAX, 100
PARM, STB_RLL_P, 4.875
PARM, STB_PIT_P, 4.875
PARM, STB_YAW_P, 4
PARM, THR_ALT_P, 1
PARM, HLD_LAT_P, 1
PARM, CAM_TRIGG_TYPE, 1
PARM, CAM_DURATION, 1
PARM, CAM_SERVO_ON, 1300
PARM, CAM_SERVO_OFF, 1100
PARM, CAM_TRIGG_DIST, 0
PARM, RELAY_PIN, 13
PARM, RELAY_PIN2, -1
PARM, COMPASS_OFS_X, -73
PARM, COMPASS_OFS_Y, 66
PARM, COMPASS_OFS_Z, -38
PARM, COMPASS_DEC, -0.2040021
PARM, COMPASS_LEARN, 0
PARM, COMPASS_USE, 1
PARM, COMPASS_AUTODEC, 1
PARM, COMPASS_MOTCT, 0
PARM, COMPASS_MOT_X, 0
PARM, COMPASS_MOT_Y, 0
PARM, COMPASS_MOT_Z, 0
PARM, COMPASS_ORIENT, 0
PARM, COMPASS_EXTERNAL, 0
PARM, INS_PRODUCT_ID, 0
PARM, INS_ACCSCAL_X, 0.9803438
PARM, INS_ACCSCAL_Y, 1.00412
PARM, INS_ACCSCAL_Z, 0.974082
PARM, INS_ACCOFFS_X, -0.08474413
PARM, INS_ACCOFFS_Y, 0.2303997
PARM, INS_ACCOFFS_Z, 0.7616323
PARM, INS_GYROFFS_X, -0.0222209
PARM, INS_GYROFFS_Y, -0.06122454
PARM, INS_GYROFFS_Z, 0.03529485
PARM, INS_MPU6K_FILTER, 0
PARM, INAV_TC_XY, 2.5
PARM, INAV_TC_Z, 5
PARM, WPNAV_SPEED, 500
PARM, WPNAV_RADIUS, 182.88
PARM, WPNAV_SPEED_UP, 250
PARM, WPNAV_SPEED_DN, 150
PARM, WPNAV_LOIT_SPEED, 1000
PARM, WPNAV_ACCEL, 100
PARM, WPNAV_ACCEL_Z, 100
PARM, WPNAV_LOIT_JERK, 1000
PARM, CIRCLE_RADIUS, 1000
PARM, CIRCLE_RATE, 20
PARM, ATC_RATE_RP_MAX, 18000
PARM, ATC_RATE_Y_MAX, 9000
PARM, ATC_SLEW_YAW, 1000
PARM, ATC_ACCEL_RP_MAX, 0
PARM, ATC_ACCEL_Y_MAX, 0
PARM, ATC_RATE_FF_ENAB, 0
PARM, POSCON_THR_HOVER, 60
PARM, SR0_RAW_SENS, 2
PARM, SR0_EXT_STAT, 2
PARM, SR0_RC_CHAN, 2
PARM, SR0_RAW_CTRL, 2
PARM, SR0_POSITION, 2
PARM, SR0_EXTRA1, 6
PARM, SR0_EXTRA2, 6
PARM, SR0_EXTRA3, 2
PARM, SR0_PARAMS, 10
PARM, SR1_RAW_SENS, 2
PARM, SR1_EXT_STAT, 2
PARM, SR1_RC_CHAN, 2
PARM, SR1_RAW_CTRL, 2
PARM, SR1_POSITION, 2
PARM, SR1_EXTRA1, 2
PARM, SR1_EXTRA2, 2
PARM, SR1_EXTRA3, 2
PARM, SR1_PARAMS, 0
PARM, AHRS_GPS_GAIN, 0.98
PARM, AHRS_GPS_USE, 1
PARM, AHRS_YAW_P, 0.1
PARM, AHRS_RP_P, 0.1
PARM, AHRS_WIND_MAX, 0
PARM, AHRS_TRIM_X, -0.0523592
PARM, AHRS_TRIM_Y, 0.02636117
PARM, AHRS_TRIM_Z, 0
PARM, AHRS_ORIENTATION, 0
PARM, AHRS_COMP_BETA, 0.1
PARM, AHRS_GPS_MINSATS, 6
PARM, MNT_MODE, 3
PARM, MNT_RETRACT_X, 0
PARM, MNT_RETRACT_Y, 0
PARM, MNT_RETRACT_Z, 0
PARM, MNT_NEUTRAL_X, 0
PARM, MNT_NEUTRAL_Y, 0
PARM, MNT_NEUTRAL_Z, 0
PARM, MNT_CONTROL_X, 0
PARM, MNT_CONTROL_Y, 0
PARM, MNT_CONTROL_Z, 0
PARM, MNT_STAB_ROLL, 1
PARM, MNT_STAB_TILT, 1
PARM, MNT_STAB_PAN, 0
PARM, MNT_RC_IN_ROLL, 0
PARM, MNT_ANGMIN_ROL, -4500
PARM, MNT_ANGMAX_ROL, 4500
PARM, MNT_RC_IN_TILT, 6
PARM, MNT_ANGMIN_TIL, -9000
PARM, MNT_ANGMAX_TIL, 0
PARM, MNT_RC_IN_PAN, 0
PARM, MNT_ANGMIN_PAN, -4500
PARM, MNT_ANGMAX_PAN, 4500
PARM, MNT_JSTICK_SPD, 0
PARM, BATT_MONITOR, 4
PARM, BATT_VOLT_PIN, 13
PARM, BATT_CURR_PIN, 12
PARM, BATT_VOLT_MULT, 10.10101
PARM, BATT_AMP_PERVOLT, 18.0018
PARM, BATT_AMP_OFFSET, 0
PARM, BATT_CAPACITY, 2200
PARM, BATT_VOLT2_PIN, -1
PARM, BATT_VOLT2_MULT, 1
PARM, GND_ABS_PRESS, 102068.3
PARM, GND_TEMP, 31.05074
PARM, GND_ALT_OFFSET, 0
PARM, GPS_TYPE, 1
PARM, GPS_NAVFILTER, 8
PARM, SCHED_DEBUG, 0
PARM, FENCE_ENABLE, 0
PARM, FENCE_TYPE, 1
PARM, FENCE_ACTION, 1
PARM, FENCE_ALT_MAX, 100
PARM, FENCE_RADIUS, 300
PARM, FENCE_MARGIN, 2
PARM, GPSGLITCH_ENABLE, 1
PARM, GPSGLITCH_RADIUS, 200
PARM, GPSGLITCH_ACCEL, 1000
PARM, BAROGLTCH_ENABLE, 1
PARM, BAROGLTCH_DIST, 500
PARM, BAROGLTCH_ACCEL, 1500
PARM, MOT_TCRV_ENABLE, 1
PARM, MOT_TCRV_MIDPCT, 52
PARM, MOT_TCRV_MAXPCT, 93
PARM, MOT_SPIN_ARMED, 70

Your radio throttle range is way too low. 965 is below cutoff. A nice range would be 997 - 2006.

When the Pixhawk powers the ESC’s it starts at 1010 and goes up which is going to cause your motors to spin to fast. Either get a new radio or recalibrate the range or even use the trim tabs and get it closer to a normal range. You will have to redo the ESC calibration after that.

Mike

Thanks Mike but I found a clue in the log that the THR_MAX was set to 80. It turned out that the actual problem was the ESC’s somehow lost their calibration. Did a recalibration and that fixed it.
I have a theory on why this may have happened…I’m using deans connectors from the bats and the connection does not always fit smoothly resulting in a brief partial connection which may have erased the calibration.
An ESC recalibration might be the solution for everyone re this issue.
Thanks again for your thoughts.

@trondhindenes - did you set thr_mid?
http://ardupilot.org/copter/docs/ac_throttlemid.html
I found on craft with higher power to weight ratio that setting mot_spin_armed so it’s high enough to actually spin the motors slowly, and setting thr_mid correctly made a big difference in reducing the ‘jump’ at the bottom of throttle range.
Also worth to try setting the various thrust curve params.

I started having the same problem with low end throttle control after upgrading to Mission Planner 1.3.38 Build 1.1.5983.12141. This is happening on my Walkera 350 quad. Was flying fine last week until I upgraded MP today and wanted to make a minor adjustment to the Pitch and Roll. Now there is really no slow throttle past startup at idle speed. Increase the throttle just a hair and the motors spin up well over 50%. I don’t dare put the props on or it will fly away and the only way to get the RPM down is to disarm the copter.
I am going to try and download the previous version and reload the software so I can use the quad and will just wait for this bug to be resolved.

I am having the same issue with my quad. I am running the latest BLHeli firmware on my ESCs and the throttle effect is exactly as you describe. This was never a problem with 3.2.1. Is there a configuration setting I need to make to address this?

I can just reiterate on my solution (workaround) to this problem since many are experiencing the same:

  1. use mission planner’s motor test to determine the lowest number that will spin the motors. Normally around 7-8.
  2. use the value from the previous step x10 as a starting point for idle speed (so 7 --> 70).
  3. Experiment with lower and lower numbers (69, 68, 67 etc) while keeping an eye on the pwm out to one of the motors (again using mission planner). At some point as you reduce the idle number the pwm will stop reducing and instead start increasing. (Let’s say this will happen at idle value 65). This means that idle 66 is the lowest idle spin you’ll get from your setup.

The fact that pwm starts increasing at some point is obviously a bug or caused by something at least I’m not bright enough to understand, but the outline above is a workaround I’ve used two setups. Both of them rather overpowered (which is what I think is the root cause of the effect)