diff --git a/conf/airframes/fraser_lisa_m_rotorcraft.xml b/conf/airframes/fraser_lisa_m_rotorcraft.xml
index 90e696b2af..e564c86dfe 100644
--- a/conf/airframes/fraser_lisa_m_rotorcraft.xml
+++ b/conf/airframes/fraser_lisa_m_rotorcraft.xml
@@ -25,7 +25,7 @@
-
+
diff --git a/sw/airborne/subsystems/ahrs/ahrs_int_cmpl.c b/sw/airborne/subsystems/ahrs/ahrs_int_cmpl.c
index f25d78149b..5ed6e29148 100644
--- a/sw/airborne/subsystems/ahrs/ahrs_int_cmpl.c
+++ b/sw/airborne/subsystems/ahrs/ahrs_int_cmpl.c
@@ -23,7 +23,6 @@
// TODO
//
// gravity heuristic
-// gps update for yaw on fixed wing ?
//
#include "subsystems/ahrs/ahrs_int_cmpl.h"
@@ -321,6 +320,60 @@ void ahrs_update_gps(void) {
ahrs_impl.ltp_vel_norm_valid = FALSE;
}
#endif
+
+#if AHRS_USE_GPS_HEADING && USE_GPS
+ //got a 3d fix and ground speed is more than 0.5 m/s
+ if(gps.fix == GPS_FIX_3D && gps.gspeed>= 500) {
+ // gps.course is in rad * 1e7, we need it in rad * 2^INT32_ANGLE_FRAC
+ int32_t course = gps.course * ((1<