Throttle and pitch problems - (Beginner)
Throttle and pitch problems - (Beginner)
Hi, I'm new to the forum and were not sure where to post, hope here is ok.
Short background.. Besides being new here I am also quite new to flying this or any kind of RC anything. I built my tricopter around four years ago but never got it to fly until some weeks back. Being unstable and inexperienced on the sticks I decided after a few flights and just as many crashes to go for a multiWii which seems like a really awesome board (previously had one of hobbyking's first kk copies).
problem: After trying to think through every setting in the firmware before flying I got these two main problems when I did.
1) The copter lifts much more in the tail and the result is a flip over when attempting to lift This I also experienced in the apartment holding it with the motors on trying to adjust the PID's (It wants to rotate forward all the time).
2) It seems like the throttle is a little jumpy at lower RPM's. It sometimes goes "mid speed" (raises a lot) and when turning it down it suddenly goes to "super slow speed" like if it was missing a part of the register. Besides this the throttle works just fine and this behavior seems to be a little random.
My setup and what I've done with it is as follows
Hardware: MultiWii crius AIO pro board from hobbyking running MultiWii 2.2 (didn't get v2.3 to work) with Turnigy Plush 18A ESC's flashed with BLHeli
MultiWii settings: MINTHROTTLE set to 1064 as per simonk ESC's
ACROTRAINER_MODE active
DEADBAND 6
I've set the motors not to run until throttle is raised when armed (like it best that way).
I have calibrated the ESC's manually though the Throttle channel on the RC receiver and they all seem to start at the same time with equal speed. Only difference on the rear ESC is that the rotation is set to "reverse" in the firmware settings as a fix because I soldered the wires wrong. I don't know if this can cause the error? I soldered the wires recently as not to have any connectors and have only tried it this way with the multiwii board.
Flying the heli I couldn't take off unless I used "level mode" which worked really great. I guess the P value of the PID controller could be decreased a little bit as it seems to oscillate a little but it felt steady.
In the video you see me trying to lift of first without "auto level mode" where it flips over and later I try it with and it lifts without problems. When I override the autolevel through moving the sticks I experience that it wants to roll forward as described before. That I later lost it far in the horizon is just bad skills. Had to walk quite a bit to find it, happily for me the battery was low and it was beeping so I could find it quite easily.
Short background.. Besides being new here I am also quite new to flying this or any kind of RC anything. I built my tricopter around four years ago but never got it to fly until some weeks back. Being unstable and inexperienced on the sticks I decided after a few flights and just as many crashes to go for a multiWii which seems like a really awesome board (previously had one of hobbyking's first kk copies).
problem: After trying to think through every setting in the firmware before flying I got these two main problems when I did.
1) The copter lifts much more in the tail and the result is a flip over when attempting to lift This I also experienced in the apartment holding it with the motors on trying to adjust the PID's (It wants to rotate forward all the time).
2) It seems like the throttle is a little jumpy at lower RPM's. It sometimes goes "mid speed" (raises a lot) and when turning it down it suddenly goes to "super slow speed" like if it was missing a part of the register. Besides this the throttle works just fine and this behavior seems to be a little random.
My setup and what I've done with it is as follows
Hardware: MultiWii crius AIO pro board from hobbyking running MultiWii 2.2 (didn't get v2.3 to work) with Turnigy Plush 18A ESC's flashed with BLHeli
MultiWii settings: MINTHROTTLE set to 1064 as per simonk ESC's
ACROTRAINER_MODE active
DEADBAND 6
I've set the motors not to run until throttle is raised when armed (like it best that way).
I have calibrated the ESC's manually though the Throttle channel on the RC receiver and they all seem to start at the same time with equal speed. Only difference on the rear ESC is that the rotation is set to "reverse" in the firmware settings as a fix because I soldered the wires wrong. I don't know if this can cause the error? I soldered the wires recently as not to have any connectors and have only tried it this way with the multiwii board.
Flying the heli I couldn't take off unless I used "level mode" which worked really great. I guess the P value of the PID controller could be decreased a little bit as it seems to oscillate a little but it felt steady.
In the video you see me trying to lift of first without "auto level mode" where it flips over and later I try it with and it lifts without problems. When I override the autolevel through moving the sticks I experience that it wants to roll forward as described before. That I later lost it far in the horizon is just bad skills. Had to walk quite a bit to find it, happily for me the battery was low and it was beeping so I could find it quite easily.
Re: Throttle and pitch problems - (Beginner)
On the video I see that you have some oscilations going on...lower PID's and set MPU6050 - LPF_FILTER to 42Hz.
Re: Throttle and pitch problems - (Beginner)
scrat wrote:On the video I see that you have some oscilations going on...lower PID's and set MPU6050 - LPF_FILTER to 42Hz.
Thanx for the advice. I've lowered from the original 3.3 to 3 on the roll P value. About the LPF_Filter, it says only to use in extreme cases, and how do we reason as to which frequency to choose? I guess it is the "#define MPU6050_LPF_42HZ" I'm supposed to uncomment. Will try that to. Right now I'm waiting for new landing gear, when it arrives well go for another flight.
One thing I should maybe do first is to balance the motors and the props before activating the filter? I haven't done this but experienced very little vibrations on the arms running the motors. Have not tried with the props on as I am afraid of running them indoors.
Here is a screenshot of when the motors are running at full speed without props.
Re: Throttle and pitch problems - (Beginner)
That is a lot of vibration on the ACC without props. Those motors could use balancing.
As to which gryo filter to use: This is a done by trial, Maybe start with the 42Hz filter to see if it helps. Then increase the filter freq until the problem comes back and the decrease by one filter. You want to use the highest freq filter that makes the copter fly well.
As to which gryo filter to use: This is a done by trial, Maybe start with the 42Hz filter to see if it helps. Then increase the filter freq until the problem comes back and the decrease by one filter. You want to use the highest freq filter that makes the copter fly well.
Re: Throttle and pitch problems - (Beginner)
Hi,
Recently I installed a Witespy MultiWii PRO Ez3.0 Black on my Xcopter. For me it was strange to configure the LPF at 42 Hz on this board like it was on the original MW 2.3 from the vendor. I made some tests without propellers first with my previous FC, a Crius 0.2 SE that never had any LPF filter and never shown vibration noise on the MultiWiiGui:
But without any filter the MultiWii PRO show many vibrations:
With the LPF at 42 His like this:
I don't think that my frame has vibrations problems that would prevent it from flying well. I never had problems related with the vibrations and you can see that with the Crius FC no vibration is shown. My doubt now by wish factor I should scale the PID setting for this LPF filter value. Should I reduce them about 3/4, more or less?
Regards,
Luis Sismeiro
Recently I installed a Witespy MultiWii PRO Ez3.0 Black on my Xcopter. For me it was strange to configure the LPF at 42 Hz on this board like it was on the original MW 2.3 from the vendor. I made some tests without propellers first with my previous FC, a Crius 0.2 SE that never had any LPF filter and never shown vibration noise on the MultiWiiGui:
But without any filter the MultiWii PRO show many vibrations:
With the LPF at 42 His like this:
I don't think that my frame has vibrations problems that would prevent it from flying well. I never had problems related with the vibrations and you can see that with the Crius FC no vibration is shown. My doubt now by wish factor I should scale the PID setting for this LPF filter value. Should I reduce them about 3/4, more or less?
Regards,
Luis Sismeiro
Re: Throttle and pitch problems - (Beginner)
waltr wrote:That is a lot of vibration on the ACC without props. Those motors could use balancing.
As to which gryo filter to use: This is a done by trial, Maybe start with the 42Hz filter to see if it helps. Then increase the filter freq until the problem comes back and the decrease by one filter. You want to use the highest freq filter that makes the copter fly well.
Okey, thank you for the advice. I will try to balance the motors as good as I can and then compare with and without filter. Another question. Is it important when flashing the board to also empty epromt or is that just important when doing major updates like going from v2.2 to 2.3 for ex.
Also thank you Sismeiro for sharing your videos. It gives me a good idea of how it looks for others. One question though, have you flied with the nice graphs settings and tried how it works?
Re: Throttle and pitch problems - (Beginner)
philsson wrote:Also thank you Sismeiro for sharing your videos. It gives me a good idea of how it looks for others. One question though, have you flied with the nice graphs settings and tried how it works?
Not yet, lately I could not fly on the weekends and I am anxious to try the new flight controller. I will have to test and retest all PID values again after two years fine tuning them with the other FC. I hope I don't need two years again...
Re: Throttle and pitch problems - (Beginner)
Running the clear_EEPROM sketch is needed if change MW versions. It might be needed when just making a change in the same MW version (like enabling FS). I try the mod'ed sketch first and if it doesn't work or values are really messed up in the GUI then run the clear_EEPROM and re-load MW.
Re: Throttle and pitch problems - (Beginner)
waltr wrote:Running the clear_EEPROM sketch is needed if change MW versions. It might be needed when just making a change in the same MW version (like enabling FS). I try the mod'ed sketch first and if it doesn't work or values are really messed up in the GUI then run the clear_EEPROM and re-load MW.
Two years sounds like a real lot.
I went off to balance my motors today. Two of them felt really smooth and the third had some bad bearings so I changed them. I can't feel much of a vibration on any of the arms. Here is a full throttle screenshot of multiwiiconf.
I have not balanced the props as I'm scared of running them indoors. I did also reflash all ESC's and made sure they rotated the right way inverting the cables instead of reversing them in firmware. Now trying to "fly" holding the tri with my hand the strength of the motors seem to be more balanced. If the weather allows it I'm of flying it tomorrow.
Does someone know btw how to turn off the servo when board is not activated? I have a problem with the platform oscillating because of long landing gear.
Re: Throttle and pitch problems - (Beginner)
philsson wrote:Does someone know btw how to turn off the servo when board is not activated? I have a problem with the platform oscillating because of long landing gear.
Excellent question! One I would like to know a simple answer to.
I deal with the oscillations as well. In fact, I tried stiffening my landing gear to reduce it, and it did, somewhat. Instead of slow wobble, it raised the oscillation frequency.
It now makes it wobble at the exact resonant frequency that is introduced by the Yaw servo.
If my Yaw servo moves while the copter is on the ground, the whole copter starts to sway back and forth, driven by the oscillating servo. The only way to stop it is to grab the tail boom with my hand for a few seconds.
So, disabling it with the motors disarmed would be really nice!
I'm sure I could hack the code, but that is a bit drastic if there is already an option for it that I am not aware of.
Re: Throttle and pitch problems - (Beginner)
AkaMrBill wrote:philsson wrote:Does someone know btw how to turn off the servo when board is not activated? I have a problem with the platform oscillating because of long landing gear.
Excellent question! One I would like to know a simple answer to.
I deal with the oscillations as well. In fact, I tried stiffening my landing gear to reduce it, and it did, somewhat. Instead of slow wobble, it raised the oscillation frequency.
It now makes it wobble at the exact resonant frequency that is introduced by the Yaw servo.
If my Yaw servo moves while the copter is on the ground, the whole copter starts to sway back and forth, driven by the oscillating servo. The only way to stop it is to grab the tail boom with my hand for a few seconds.
So, disabling it with the motors disarmed would be really nice!
I'm sure I could hack the code, but that is a bit drastic if there is already an option for it that I am not aware of.
What you describe is exactly how it is for me too. This problem I did not have with the kk clone I had before. Will try googleling a little more to see if there is any solution.
EDIT: found the fix and have tried it myself
In the file Output.ino there is a section
Code: Select all
#ifdef TRI
motor[0] = PIDMIX( 0,+4/3, 0); //REAR
motor[1] = PIDMIX(-1,-2/3, 0); //RIGHT
motor[2] = PIDMIX(+1,-2/3, 0); //LEFT
servo[5] = constrain(conf.tri_yaw_middle + YAW_DIRECTION * axisPID[YAW], TRI_YAW_CONSTRAINT_MIN, TRI_YAW_CONSTRAINT_MAX); //REAR
#endif
Change into
Code: Select all
#ifdef TRI
motor[0] = PIDMIX( 0,+4/3, 0); //REAR
motor[1] = PIDMIX(-1,-2/3, 0); //RIGHT
motor[2] = PIDMIX(+1,-2/3, 0); //LEFT
if (f.ARMED)
{
servo[5] = constrain(conf.tri_yaw_middle + YAW_DIRECTION * axisPID[YAW], TRI_YAW_CONSTRAINT_MIN, TRI_YAW_CONSTRAINT_MAX); //REAR
}
else
servo[5] = conf.tri_yaw_middle;
#endif
I also thought of mentioning another feature that I think goes together with this that I like from the old KK board which allows the motors to be still when armed until moving the stick. It is activated by uncommenting the line which says
Code: Select all
#define MOTOR_STOP
EDIT 2:
I am trying to update to v2.3 again and had to change the code to the following for the servo. Did not work with the same code as in v2.2. So if you use 2.3 then here it is. Have not tried it yet though.
Code: Select all
if (!f.ARMED)
servo[5] = get_middle(5);
else
servo[5] = get_middle(5) + YAW_DIRECTION*(SERVODIR(5, 1) * axisPID[YAW]); //REAR
EDIT 3:
I tried it and it works nicely.
A question about the yaw. Which way should the stick go when the motor turns say left? As My config is now if I turn the stick left the servo and motor goes right. Also they don't move so much. Have to see what I can do to make them respond more to the remote.
Re: Throttle and pitch problems - (Beginner)
philsson wrote:...
I am trying to update to v2.3 again and had to change the code to the following for the servo. Did not work with the same code as in v2.2. So if you use 2.3 then here it is. Have not tried it yet though.Code: Select all
if (!f.ARMED)
servo[5] = get_middle(5);
else
servo[5] = get_middle(5) + YAW_DIRECTION*(SERVODIR(5, 1) * axisPID[YAW]); //REAR
EDIT 3:
I tried it and it works nicely.
A question about the yaw. Which way should the stick go when the motor turns say left? As My config is now if I turn the stick left the servo and motor goes right. Also they don't move so much. Have to see what I can do to make them respond more to the remote.
That is exactly the type of hack I was considering.
I'll give it a shot shortly.
To get more Yaw response during flight, just increase the "Rate" value for Yaw in the GUI. I have mine around "0.15". Granted, I am a new flyer, but I saw the need and went with it.
Re: Throttle and pitch problems - (Beginner)
philsson wrote:....Code: Select all
if (!f.ARMED)
servo[5] = get_middle(5);
else
servo[5] = get_middle(5) + YAW_DIRECTION*(SERVODIR(5, 1) * axisPID[YAW]); //REAR
EDIT 3:
I tried it and it works nicely.
A question about the yaw. Which way should the stick go when the motor turns say left? As My config is now if I turn the stick left the servo and motor goes right. Also they don't move so much. Have to see what I can do to make them respond more to the remote.
Just trying to be completely accurate here. (I know some folks, aka "Hamburger", don't like it when you explain how to edit code outside of "Config.h".)
The section of code Philsson is referring to in v2.3 is in "Output.cpp" in the " main Mix Table " block.
The correct edit should look like this:
Code: Select all
#elif defined( TRI )
motor[0] = PIDMIX( 0,+4/3, 0); //REAR
motor[1] = PIDMIX(-1,-2/3, 0); //RIGHT
motor[2] = PIDMIX(+1,-2/3, 0); //LEFT
if (!f.ARMED)
{
servo[5] = get_middle(5);
}
else
{
servo[5] = (SERVODIR(5, 1) * axisPID[YAW]) + get_middle(5); //REAR
}
Re: Throttle and pitch problems - (Beginner)
AkaMrBill wrote:
To get more Yaw response during flight, just increase the "Rate" value for Yaw in the GUI. I have mine around "0.15". Granted, I am a new flyer, but I saw the need and went with it.
Thanx, I tried that before I read your post but saw that I had full yaw movement at around 2.0 in rate. That is maybe too much? What else can go wrong? Or is it only the rate regarding the remote...
Re: Throttle and pitch problems - (Beginner)
I flew the tri today and it flew really well with the new pids!.. I started out directly with autolevel and it lifted of like a charm hovering nicely being really controllable, just drifting a little very slowly. I'm impressed with "my skills" (Autolevel and baro). Crashed really hard though when trying to land with "baro" active. The props did not stop and smashed the asfalt pretty hard.. Maybe that is supposed to happen with baro active? Then another thing I'd like to ask about. The throttle, I don't like it.. I have to give a lot to lift of. I will try next time to run with 0.7 on both expo and mid. Another thing is that I have MIN_THROTTLE on 1047. I wanted the motors to be still before applying any gas and to spin up slowly and controllable when lifting the throttle. Does the min value affect the overall curve of the throttle?
A video from today
A video from today
Re: Throttle and pitch problems - (Beginner)
Hi,
As far as I know you should _not_ lift or land with baro active.
Did you calibrate the ESCs? You can do it using MultiWii but you should remove the propellers before. See how to do it in the end of config.h. Also you can configure the MOTOR_STOP define in config.h and when you arm the motors will be stopped.I think the min value can affect the throttle curve, you need to test it.
Regards,
Luis Sismeiro
philsson wrote:Crashed really hard though when trying to land with "baro" active. The props did not stop and smashed the asfalt pretty hard.. Maybe that is supposed to happen with baro active?
As far as I know you should _not_ lift or land with baro active.
philsson wrote:Then another thing I'd like to ask about. The throttle, I don't like it.. I have to give a lot to lift of. I will try next time to run with 0.7 on both expo and mid. Another thing is that I have MIN_THROTTLE on 1047. I wanted the motors to be still before applying any gas and to spin up slowly and controllable when lifting the throttle. Does the min value affect the overall curve of the throttle?
Did you calibrate the ESCs? You can do it using MultiWii but you should remove the propellers before. See how to do it in the end of config.h. Also you can configure the MOTOR_STOP define in config.h and when you arm the motors will be stopped.I think the min value can affect the throttle curve, you need to test it.
Regards,
Luis Sismeiro
Re: Throttle and pitch problems - (Beginner)
sismeiro wrote: Hi,As far as I know you should _not_ lift or land with baro active.
I flew yesterday again and I realized this myself. It seems like the motors will not stop spinning in baro mode.
sismeiro wrote:Did you calibrate the ESCs? You can do it using MultiWii but you should remove the propellers before. See how to do it in the end of config.h. Also you can configure the MOTOR_STOP define in config.h and when you arm the motors will be stopped.I think the min value can affect the throttle curve, you need to test it.
Regards,
Luis Sismeiro
Yes, they are calibrated with the receiver alone, it felt best that way. I am running with MOTOR_STOP but with the MIN_THROTTLE at 1150 (Standard value) the motors still spin when throttle is set to the bottom when armed. I played around with the values until I got something that would keep them still while armed but also did not demand half the stick to be lifted to start spinning. I ended up using a value of 1100 together with changing the expo rate for the throttle to 0.7 / 0.7 on both mid and expo. It felt much nicer actually so I might have solved that, was scared at first it had something to do with my speed controllers that went bad after flashing them.
Yesterday was my first time landing without a crash. I'm improving my skills (or it could just be the help of autolevel).
At the same time I'm experiencing the first flights long enough to empty my batteries. I am using 2200mA 3S lipo 20C and have a beeper for low battery. Got surprised as the beeper just barely starts warning me before the copter almost does not have the power to hover and starts loosing height even at max throttle. Is it like that for you (everyone else) too? I estimate the flight time to a little less than 5 minutes. Now really enjoying my multiwii.. just have to do something to mark what is the front and what is the back that I can see when the copter gets a little further away as it now seem to be the biggest reason to crashes.
Re: Throttle and pitch problems - (Beginner)
AkaMrBill wrote:Just trying to be completely accurate here. (I know some folks, aka "Hamburger", don't like it when you explain how to edit code outside of "Config.h".)
The section of code Philsson is referring to in v2.3 is in "Output.cpp" in the " main Mix Table " block.
The correct edit should look like this:Code: Select all
#elif defined( TRI )
motor[0] = PIDMIX( 0,+4/3, 0); //REAR
motor[1] = PIDMIX(-1,-2/3, 0); //RIGHT
motor[2] = PIDMIX(+1,-2/3, 0); //LEFT
if (!f.ARMED)
{
servo[5] = get_middle(5);
}
else
{
servo[5] = (SERVODIR(5, -1) * axisPID[YAW]) + get_middle(5); //REAR
}
I finally got an opportunity to test this code modification, and yes, it works great!
philsson wrote:...
Yesterday was my first time landing without a crash. I'm improving my skills (or it could just be the help of autolevel).
At the same time I'm experiencing the first flights long enough to empty my batteries. I am using 2200mA 3S lipo 20C and have a beeper for low battery..... I estimate the flight time to a little less than 5 minutes......
It sounds like our set up is very similar. I run 2200mA 3S 20C, but my flight time is more like 10 minutes. I am using 8045 props on 2212/13 1000kv motors.
Maybe you can improve your flight time by a few minutes with some minor changes.
Re: Throttle and pitch problems - (Beginner)
AkaMrBill wrote:
I finally got an opportunity to test this code modification, and yes, it works great!
Nice!.. I like it much better like that
AkaMrBill wrote:It sounds like our set up is very similar. I run 2200mA 3S 20C, but my flight time is more like 10 minutes. I am using 8045 props on 2212/13 1000kv motors.
Maybe you can improve your flight time by a few minutes with some minor changes.
10 minutes sounds good. I might be wrong about my flighttime, I haven't clocked it. I'm running 750kv motors and 1045 propps. Changing to 1147 soon as they are the recommended ones for my motors. Also now i Have 20cm arms and am going for 35cm to get a more stable platform for filming. Tried it with a fixed camera mount last time and came up with this video.. No stabilization, gimbal or anything, just a camera fixed pointing straight ahead.
Re: Throttle and pitch problems - (Beginner)
AkaMrBill wrote:Just trying to be completely accurate here. (I know some folks, aka "Hamburger", don't like it when you explain how to edit code outside of "Config.h".)
The section of code Philsson is referring to in v2.3 is in "Output.cpp" in the " main Mix Table " block.
The correct edit should look like this:Code: Select all
#elif defined( TRI )
motor[0] = PIDMIX( 0,+4/3, 0); //REAR
motor[1] = PIDMIX(-1,-2/3, 0); //RIGHT
motor[2] = PIDMIX(+1,-2/3, 0); //LEFT
if (!f.ARMED)
{
servo[5] = get_middle(5);
}
else
{
servo[5] = (SERVODIR(5, -1) * axisPID[YAW]) + get_middle(5); //REAR
}
...
I just learned a new trick!
It is actually not new, and is already used in the MW code, but it is new to me.
An alternative to the edit I showed above would be to do it like this:
Code: Select all
#elif defined( TRI )
motor[0] = PIDMIX( 0,+4/3, 0); //REAR
motor[1] = PIDMIX(-1,-2/3, 0); //RIGHT
motor[2] = PIDMIX(+1,-2/3, 0); //LEFT
(!f.ARMED) ? servo[5] = get_middle(5) : servo[5] = (SERVODIR(5, -1) * axisPID[YAW]) + get_middle(5); //REAR
Ah the joys of C++ and C#.