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.
I finally got to test my receiver failsafe, and it worked as expected. I have an Arduflyer 2.5 clone running 3.2.1 firmware. I have a turnigy 9x transmitter with Frsky XJT module and Frsky L9R receiver. I have throttle PWM failsafe in the FC disabled. I set up my receiver to center the throttle and cyclic sticks and switch the flight mode to RTL upon losing signal from the Tx.
In my test, I hovered about 1m from the ground in stabilize mode, then turned off my transmitter. In about 1 sec, the quadcopter entered RTL mode, rose to the set altitude, returned to home, and landed.
RdanielK, I don't know what could be the cause of your problem.
Thanks for reporting back your tests... I received another 2 pixhawk boards and I repeated the tests and I got the same results... receiver failsafe not working in ac3.2.1
When I have the firmware 3.1.5 loaded everything works, load the ac3.2.1 version it doesn't, based on that I assume that the hardware is okay but software is not...
Would you be able to send me the log from your tests?
Sorry for the delay. Unfortunately, the computer I use with missionplanner was reset and the logs were lost. I can do the test again and save the log if it would still be helpful. Have you found any new info about your problem?
Does anyone knows if we have any developer looking into this issue?
I think we can now summarize the point of RDanielK with good confidence we are not saying something wrong, i.e.:
-either firmware versions starting from 3.2.1, when a receiver is configured to hold the last PWM values on all of its channels in case of radio failsafe, Pixhawk sees values are not moving anymore and do not take anymore into account the held input values. (These last held values in case of failsafe were taken into account in previous 3.1.5 firmware.)
->if this is the case then we should request a wiki/documentation update to remove this obsolete information
-either it was not the DEV's objective to suppress this "last held values" function from newer firmware versions and in that case it is indeed a bug that needs reporting to the DEVs for correction in a future release.
Did I sum up right ?
Thanks Hugues! I'm glad that you got to see what I'm trying to demonstrate here...
Hope we could have some of the DEVs looking into it.
And is not just about RTL, on 3.1.5 I could have my camera pointing to a specific direction in case of failsafe, now this function doesn't work anymore, FC will hold last position before loose signal.
I have failsafe working too on 3.2.1 but APM and Hitec radio, but what I do to check if works I turn off the radio but with the copter on the floor, more safe and you can see if works too.
I too use an l9r on a pixhawk running ac 3.2.1and have no problem with the failsafe at all.
But I set mine to use throttle failsafe as thats what its there for. I have a momentary switch on my taranis which forces throttle out to below the failsafe threshold, this effectively gives me rtl on a switch separate to the flight mode switch.
At the same time though, if my quad goes out of control range, or if I turn off the taranis, it also triggers the throttle failsafe.
Your problem sounds like you have bound your receiver in a way that tells it to maintain last output rather than specific positions. I would still recommend setting up the throttle failsafe, it just works.
and as I said in the opening post, the problem is when you set failsafe using the receiver failsafe.
as per wiki instructions( http://copter.ardupilot.com/wiki/configuration/throttle-failsafe/ ) there is 3 ways that you can set radio failsafe.
No signal method
The problem that I'm reporting here refers to the third option - receiver method.