GCS heartbeat failsafe

Hello all,
I’ve recently updated to 3.1.0, and I’m also attempting to implement some of the failsafe modes.

Previous to the firmware update there were no failsafes implemented and I executed numerous missions.

I went out tonight for the first flights with the new firmware and failsafe settings. On 3 separate flights, shortly after toggling into Auto it failsafe’d and RTL’d. I can see from the log that the MSG was : No GCS heartbeat.

FS_LONG_ACTN is currently set to 1 (ReturnToLaunch). I realize I could set it to 0 (Continue) but I’d like to know what’s happening and why there is no mavlink heartbeat?

Can anyone suggest where I should look in the log or how I can troubleshoot this?

Thanks so much,


This may seem like a silly question but were you using a telemetry radio and ground station laptop/tablet?

Thanks for the reply, and I apologize for not proving more details on the setup.

Yes, I’m using Pixhawk APM, 3DR uBlox GPS, and the 3DR 915Mhz radio.


And actually… upon looking more closely at the log, I’m seeing the FS kick in immediately on powerup and goes into Circle mode?

Further to this… if I can successfully ‘connect’ with the 3DR Radio and see the info in the HUD (current flight mode,airspeed, voltage, etc…) , is my telemetry not connected and working?

Does anyone else have the GCS failsafe enabled?


@wmedernach, if I understand this correctly, the GS Heartbeat loss indicates that the remote (airborne) link receiver does not receive heartbeat packets from the groundstation. The Ground Station link receiver might still be receiveing the packets from the plane, thus presenting updated telemetry data to you.

I had exactly that experience while performing a range test recently in which the limiting factor turned out to be the remote RSSI / triggering FAILSAFE and no GCS Heartbeats alert.

I have still to figure out why the the airborne RX loses the GS link signal while the GS link RX indicates 99% link quality. Factors to consider might be: Noise levels and interfering transmissions prouduced onboard the aircraft (e.g. video TX, ESC, BEC, digital noise) or from powerful ground transmissions (mobile phonenetwork masts, broadcast mast) in the vicinity. Or by unsymmetric power settings on the two link radio units.

Thank you snurre!

Ok, that makes sense then, because just like you mentioned it was indicating above 95% link quality. There is no video on-board this bird so I’ll need to try to isolate some of the other things a bit to track this down.

Is there anyway to trace/visualize this on the bench?


While reviewing my 433MHz radio setups I discovered that I had indeed assymetric power settings on the two radio modems. The ground station radio was only at 1/10 of full power while the airborne was at 100%. I had reduced it during bench testes long time ago and then forgotten about it :blush:
That might explain the phenomena I experienced as described previously.


I have the same problem.

I use pixhawk with 3dr radio with Mission Planner 1 and 2 (don’t work in both). I compile the code myself.

In the OBC library, the value “last_heartbeat_ms” never change and stay around 1s, as if it’s never renewed. The autopilote clairly receive data from the GCS (I can change waypoint target and other settings). Does someone know why ?

Thank you

Julien Huot

Dear Julien, sorry for the delay, one year later.

It’s seems that with APM Mission Planner do not send the heartbeat, but Mission Planner 1 send it.

You can also send change the time used by the delay related to the rssi.