How to detect lost of rc control reception

Hi folks. I've readed in the comments in the ardupilot that it´s imposible to detect the lost of the rc control because in case of lost of connection, the rc receptor just cut´s down the engine and it´s imposible to know if that comes from a lost of connection or if I just cut´s the engine manually.Well, I was thinking in a posible solution to that. What if after 5 or 10 seconds of having no orders from receiver, and I mean, nothing like moving rudder, ailerons, engine, etc. I could consider that as a lost of connection and, in first place, enable stabilization. Then after 5 or 10 seconds more, enable autopilot to return to home.Anyone thinking that could be posibble?Thanks

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Thank you people for all the ideas. I have a Futaba 2.4 Ghz receiver, so as mentioned by bcr, I will use the led state to know if I lost the transmitter signal.
    No code changes needed. Just a simple circuit to activate the autopilot and that´s all.
    I´ll test it and comment my results here.
    Thanks again
  • Lots of people seem to think this is a major challenge. It's not really.

    Spektrum RX have a digital output for signal strength, packet count, etc. Not sure if the protocol is documented but Eagle Tree can log it and it probably is not too hard to rev eng with a ghetto logic analyzer (MCU of your choice). Then you can get real data on how poor their 2 fixed freq tech is.

    The Futaba 2.4GHz RX has a bi-color LED; green means it hears the TX, red means not. Just wire one pin of the LED to a digital input on the autopilot and you're done.

    Flying 72MHz? 1945 called, it recommends an upgrade to FHSS.
  • If you're using Spektrum receivers (at least the AR6100 series) with a DX7 or compatible transmitter, there's a fun trick that makes this easy.

    The receiver lets you set a failsafe value for the throttle channel. This is the throttle value that will be used when the receiver loses the transmitter signal. I set this value to be lower than the normal low-throttle value, and then a signal-lost throttle value becomes easily discernible from real, transmitted values.

    I do this by setting the throttle channel's Servo Travel value to 150% and trimming it all the way low before binding the receiver to the transmitter. This binding process sets the failsafe throttle value super low. Then I set the throttle channel settings back to normal on the transmitter.

    Now in your code, to detect a lost-connection, just watch for throttle channel pulses that are less than about 950us. Your failsafe should now be about 900us instead of about 1100us for a true low-throttle stick position.

    The only other thing to watch out for in your code is that if you pass the throttle value through from the receiver to the ESC, you need to be careful never to actually send these super-low values to the ESC. If you do, the ESC may use this as its new low-throttle value, meaning that when you do get a connection back, and try to turn the throttle off, the ESC will think that these 1100us pulses are actually not all the way off, since it now thinks that 900us pulses mean "off".

    I imagine this would work on any radio system that allows setting a receiver-side failsafe value for the throttle channel, but I don't know much about other systems.

    Maybe ArduPilot could contain multiple, configurable methods for detecting signal loss on different radio hardware combinations, and then common behavior when a loss is detected.
  • 3D Robotics
    It's totally possible, even easy to implement. But not everyone would want it, since some people just fly that way. Again it's easy to come up with a custom signal-loss test. It's very hard to come up with a general one on modern equipment.
This reply was deleted.

Activity

Neville Rodrigues liked Neville Rodrigues's profile
Jun 30
Santiago Perez liked Santiago Perez's profile
Jun 21
More…