diff --git a/conf/flight_plans/versatile.xml b/conf/flight_plans/versatile.xml
index 6c55c3030e..8599576e58 100644
--- a/conf/flight_plans/versatile.xml
+++ b/conf/flight_plans/versatile.xml
@@ -37,11 +37,11 @@
-
+
-
+
@@ -53,10 +53,6 @@
-
-
-
-
diff --git a/conf/messages.xml b/conf/messages.xml
index c9fbd4b355..f5c51d8b5a 100644
--- a/conf/messages.xml
+++ b/conf/messages.xml
@@ -113,6 +113,13 @@
+
+
+
+
+
+
+
diff --git a/conf/settings/tuning.xml b/conf/settings/tuning.xml
index af350b709a..554a7f1c77 100644
--- a/conf/settings/tuning.xml
+++ b/conf/settings/tuning.xml
@@ -64,8 +64,8 @@
-
-
+
+
diff --git a/conf/telemetry/default.xml b/conf/telemetry/default.xml
index 73cc868df2..2515a5cbff 100644
--- a/conf/telemetry/default.xml
+++ b/conf/telemetry/default.xml
@@ -25,6 +25,7 @@
+
diff --git a/conf/ubx.xml b/conf/ubx.xml
index 9c7e5e7afa..5c858e780f 100644
--- a/conf/ubx.xml
+++ b/conf/ubx.xml
@@ -15,6 +15,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sw/airborne/ap_downlink.h b/sw/airborne/ap_downlink.h
index da351bed8a..232254bdd0 100644
--- a/sw/airborne/ap_downlink.h
+++ b/sw/airborne/ap_downlink.h
@@ -171,5 +171,9 @@
#define PERIODIC_SEND_TUNE_ROLL() DOWNLINK_SEND_TUNE_ROLL(&estimator_p,&estimator_phi, &h_ctl_roll_setpoint);
+#ifdef GPS
+#define PERIODIC_SEND_GPS_SOL() DOWNLINK_SEND_GPS_SOL(&gps_Pacc, &gps_Sacc, &gps_PDOP, &gps_numSV)
+#endif
+
#endif /* AP_DOWNLINK_H */
diff --git a/sw/airborne/enose.c b/sw/airborne/enose.c
index 196d5b374b..35f27216dc 100644
--- a/sw/airborne/enose.c
+++ b/sw/airborne/enose.c
@@ -61,7 +61,6 @@ void enose_periodic( void ) {
enose_conf_requested = FALSE;
}
else if (enose_status == ENOSE_IDLE) {
- LED_OFF(2);
enose_status = ENOSE_MEASURING_WR;
const uint8_t msg[] = { ENOSE_DATA_ADDR };
memcpy(i2c_buf, msg, sizeof(msg));
@@ -74,7 +73,6 @@ void enose_periodic( void ) {
enose_i2c_done = FALSE;
}
else if (enose_status == ENOSE_MEASURING_RD) {
- LED_ON(2);
enose_val[0] = (i2c_buf[0]<<8) | i2c_buf[1];
enose_val[1] = (i2c_buf[2]<<8) | i2c_buf[3];
enose_val[2] = (i2c_buf[4]<<8) | i2c_buf[5];
diff --git a/sw/airborne/gps.h b/sw/airborne/gps.h
index 19791167ac..cb5860d808 100644
--- a/sw/airborne/gps.h
+++ b/sw/airborne/gps.h
@@ -52,6 +52,10 @@ extern int16_t gps_course; /* decideg */
extern int32_t gps_utm_east, gps_utm_north; /** cm */
extern uint8_t gps_utm_zone;
extern int32_t gps_lat, gps_lon; /* 1e7 deg */
+extern uint16_t gps_PDOP;
+extern uint32_t gps_Pacc, gps_Sacc;
+extern uint8_t gps_numSV;
+
extern uint16_t last_gps_msg_t; /** cputime of the last gps message */
diff --git a/sw/airborne/gps_ubx.c b/sw/airborne/gps_ubx.c
index f25f1cd050..60fd1ce876 100644
--- a/sw/airborne/gps_ubx.c
+++ b/sw/airborne/gps_ubx.c
@@ -75,6 +75,10 @@ bool_t gps_pos_available;
uint8_t ubx_id, ubx_class;
int32_t gps_lat, gps_lon;
+uint16_t gps_PDOP;
+uint32_t gps_Pacc, gps_Sacc;
+uint8_t gps_numSV;
+
#define UTM_HEM_NORTH 0
#define UTM_HEM_SOUTH 1
@@ -159,6 +163,11 @@ void parse_gps_msg( void ) {
gps_itow = UBX_NAV_VELNED_ITOW(ubx_msg_buf);
gps_pos_available = TRUE; /* The 3 UBX messages are sent in one rafale */
+ } else if (ubx_id == UBX_NAV_SOL_ID) {
+ gps_PDOP = UBX_NAV_SOL_PDOP(ubx_msg_buf);
+ gps_Pacc = UBX_NAV_SOL_Pacc(ubx_msg_buf);
+ gps_Sacc = UBX_NAV_SOL_Sacc(ubx_msg_buf);
+ gps_numSV = UBX_NAV_SOL_numSV(ubx_msg_buf);
} else if (ubx_id == UBX_NAV_SVINFO_ID) {
gps_nb_channels = UBX_NAV_SVINFO_NCH(ubx_msg_buf);
uint8_t i;