I have been running the copter version 3.1.5 in my quad for quite long time now and been happy with it in all aspects, but recently I felt the need to have a second GPS unit + I would like to play with the optical flow sensor so I decide to upgrade to firmware version 3.2.1.
Everything was going well until I decide to test my radio failsafe.
The way that I have it set is as follow:
I use Taranis Radio + X8R receiver. X8R receiver allows me to set failsafe to a user-determined state on lost signal. So in case that I run out of range or for any reason my radio goes off, the receiver will send a signal to pixhawk to set Yaw / Roll / Pitch to center position and Throttle to 50% and channel 5(flight mode) to RTL position.
Additionally channel 6 in the taranis is where I have pitch control of my camera and it is also set to a determined position so I can have my camera pointed to desire position in case that I lost signal.
Regarding to flight modes, I have one 3-position switch set to Stabilize / Alt Hold / Loiter, and one another switch set to RTL.
Well, everything works fine in version 3.1.5.
In version 3.2.1 it doesn’t work. In the flight logs I can see that the receiver set the channel 5 to a value of 1700(RTL flight mode) and the pixhawk sees that but for some reason it doesn’t trigger RTL.
Also, I use the RC10 to control the pitch servo in my camera gimbal and as I said before it’s also set to a pre-determined position in case of signal lost, and it also doesn’t work with firmware version 3.2.1
Once I downgrade back to 3.1.5 everything is working again.
To make things a bit worst, after that I found out that RTL didn’t work I decided to make a simple test, I was hovering in loiter and I added a small input in the YAW and holding the stick in that position I turned off my radio. Guess what happened? The copter kept spinning until I powered the radio again, so I understand that the pixhawk hold the last signal received. What would happen if I was flying forward and let’s say that I didn’t turned off my radio, let’s say that I’m flying far and for some reason I lost signal? Well, probably the copter would keep flying forward until it crashes in somewhere or something.
My QUAD is very light and small but what about this guy (http://diydrones.com/forum/topics/no-rtl-after-radio-failsafe-log-included) flying a 17Kg X8. I’m not 100% sure what happened in his case but I suspect it could be the problem described here.
I wish we could have the attention of developer to clarify why this changes has been made and how can we get those lost functionalities back in the next release 3.3
Please if you upgraded from 3.1.5 to 3.2.1 and you had a RTL triggered in a similar way that I have, please test it before you have to actually use it. Also if you could post your findings here, it would be awesome.
If I’m not misunderstanding all this situation we have to advise people and also find a solution.
For last but not least, I would like to say that I truly admire this open source project and I would like to say thank you to everyone that contributed, and I’m happy that today I had the opportunity to maybe help by in some way.
rc3_1_5-RTL radio off.BIN - in this log the RTL worked when I turned off my radio.
rc3_2_1-RTL radio off.BIN - in this log the RTL didn't work when I turned off my radio.
Obs.: This post does not apply to people that have configured failsafe in any different way than the one specified here. I haven’t test the other failsafe setups in 3.2.1 version.
Receiver is set to pre-determined position in case of lost of signal... just look at logs and you will see it
If receiver failsafe is not supported anymore, it should be removed from wiki, it would avoid people getting in trouble.
I still think that there is a lot of people out there setting up failsafe same as me and they need to be award of that.
I have my RC failsafe set up the same as yours, but I have not tested it while actually flying. I have tested it while the APM is connected to mission planner via USB. Turning off my radio results the flight mode changing to RTL in the flight mode setup page. I assume you have also done this test?
I use a Frsky L9R receiver. Your results are unexpected because if the failsafe is set up correctly on the receiver, the signals sent from the receiver to the flight controller should be identical to if you centered your sticks and switched the flight mode to RTL. The flight controller shouldn't be able to tell the difference, or at least this is what I would expect.
Your two tests show inconsistent things. Your plot of channel 5 when you turn off the radio shows the receiver changing the PWM, as it should, but the flight controller not responding. Your yaw test shows that the receiver is apparently not changing the PWM values. Is it possible your conditions changed between these two tests? For example, in your first test is it possible you didn't have the flight modes set up correctly? And in the second test is it possible you rebound the receiver and failed to re-setup the failsafe? Frsky receivers default to keeping the same PWM values if failsafe is not set up, as you probably know.
I'm just covering the simplest cases here. Since my failsafe is set up the same, I want to know if there is a problem with my setup.
When connect to mission planner via USB if I turn off your radio in the flight mode screen I will see the flight mode changing to RTL as well, but if you have a look at the flight data screen in your HUD you will see that once you turn off your radio the flight mode will keep the same, like if you was in stabilize and you turn off your radio it should change to RTL, but if you do the test you will see that the flight controller will keep in stabilize.
I'm also using L9R receiver, and the problem is the same... as I said in firmware version 3.1.5 everything works, in 3.2.1 doesn't... this is a firmware problem.
Flight controller not responding is a prove that there is a problem with the firmware, if you compare the log from 3.1.5 with 3.2.1 you will see that the receiver send the exactly same signal but flight controller behaves differently.
The QUAD is the same in both tests with the same settings in the radio and in the mission planner and with the exactly same flight controller board, the only difference is the firmware, what again proves that 3.2.1 has a problem.
I didn't add the log when I tested the yaw, those two logs attached shows only the RTL problem.
Definitely not the case, after that I made the tests with firmware 3.2.1 I downgraded to 3.1.5 and everything was working again without I have to re-do anything, besides that, if you see in the logs the receiver is sending the same signal to pixhawk, and pixhawk sees it but doesn't change to RTL on 3.2.1 version.
There is a lot of people that have the same setup as our one and that's what worries me most... I'm glad that you came to here and you saw my post, if I can save one person from crash, it was worthy to take my time and show this to people.
As a suggestion to you, just hover in Loiter like at 1 meter from ground and switch off your radio, I can bet that it would keep hovering and will not activate RTL.
remember to keep your throttle at 50% and when you turn your radio back on, if you have the throttle warning and switch warning from taranis, just press the exit button on the radio until the warnings are cleared, DONOT LOWER YOUR THROTTLE, if you do your copter will come down.
If you could do your test and come back here and post the results it would be important, I'm trying hard to get attention from developers about the issue, that for me is a very serious one.
I haven't been able to look at your log files yet. In your yaw test, it seems like the receiver does not change the pwm values because your craft keeps yawing. Are you saying that the receiver is in fact changing the yaw pwm when you turn off the transmitter and the pixhawk is ignoring the change?
If this is the case a log would show your yaw pwm changing while the desired yaw remained unchanged. This is a contradiction that would demand attention.
receiver changes PWM value but copter keeps spinning(yawing).
That is exactly what is happening, just look at logs, is the same for RTL, receiver changes the value to 1700 but RTL is not triggered (FC ignores it).
I think that now you are starting to realize how serious is what I'm reporting here.
I have taken a printscreen of the log that I tested the yaw and I have attached the file. You can see that receiver changes the signal for yaw, fc sees it, but ignores.
fc holds yaw.jpg
Your 3.2.1 log show you did NOT activate the Throttle failsafe, so it is normal it does not work ! (parameter FS_THR_ENABLE is at zero).
Your problem a misconfiguration of your failsafe parameters and NOT an issue with 3.2.1.
Thanks for your interest here... If you read the OP carefully you would see that I'm not referring to Throttle Failsafe(FS_THR_ENABLE).
Go to http://copter.ardupilot.com/wiki/configuration/throttle-failsafe/ and read item 5 - Using the receiver to set flight mode.
Thanks for posting and any further input would be much appreciated.
You have to choose your objective as you talk about two different things at the same time : either as you state in your second paragraph you want to setup a throttle failsafe when you fly too far away, either you just want to configure a RTL flight mode which is activated by a functioning radio link (it is not a failsafe in that case). In the first case you have to set the parameter as I mentioned previously and you have to set your receiver to emit either no signal (best) or emit a low PWM value below the minimum throttle value of your transmitter ( typically below 930 and this certainly not 1500 as you configure it). In the second case , a simple mode switch should work without issue if rightly selected on your transmitter and configured for the corresponding PWM range in mission planner.
To complement and clarify my own post above, when i said "you have to clarify your objective", I mean more precisely "what is it you try to reach?"
Also throttle failsafe expects a low PWM value on channel 3 (Throttle) while flight modes are based on channel 5, just for the clarity. And also, just to append myself, one objective (failsafe) does not exclude a flight mode setting, of course.
you are misunderstanding the post... I clearly state that this is regarding to "receiver failsafe" and not to "Throttle Failsafe", please understand that.
If you don't know what is a receiver failsafe please go to the link that I send to you above and scroll down to the bottom of the page. you will see:
Using the receiver to set the flight mode (not recommended)
Instead of setting up the receiver and flight controller as described above (i.e. “Low-Throttle” and “No Signal” methods) the receiver can be set-up to set channel 5 (flight mode channel) to a flight mode slot that has been set to RTL. For example the receiver could be setup to move ch5’s pwm value to 1700 which is “Flight Mode 5″ which could then be set to RTL on the Mission Planner’s Initial Setup >> Mandatory Hardware >> Flight Modes screen.
Although this mostly works it is not recommended because it will not trigger if the receiver loses power or if the wires between the receiver and flight controller are broken.
This was working in firmware version 3.1.5 and is not working in 3.2.1 as my practical test demonstrates... Logs are attached. but the jpg file attached clearly shows that in 3.1.54 the RTL have been activated once that radio is turned off and ch5 PWM value goes to 1700... the same doesn't happen in 3.2.1
Is that clear what I'm trying to show here? if you need any further explanation please let me know...
Thanks for your input.