diff --git a/include/gnss/processor/processor_tracker_gnss.h b/include/gnss/processor/processor_tracker_gnss.h
index 51b2fe8824ad6bb53d1cecaa1ca55e322f1eae9f..31c834b5dc71146d4aa995fb003fd9eddd15a136 100644
--- a/include/gnss/processor/processor_tracker_gnss.h
+++ b/include/gnss/processor/processor_tracker_gnss.h
@@ -37,8 +37,8 @@ struct ParamsProcessorTrackerGnss : public ParamsProcessorTrackerFeature
         pseudo_ranges               = _server.getParam<bool>    (prefix + _unique_name + "/pseudo_ranges");
 
         // GNSS OPTIONS (see rtklib.h)
-        gnss_opt.sateph     =        _server.getParam<int>   (prefix + _unique_name + "/gnss/sateph");  // satellite ephemeris/clock (0:broadcast ephemeris,1:precise ephemeris,2:broadcast + SBAS,3:ephemeris option: broadcast + SSR_APC,4:broadcast + SSR_COM,5: QZSS LEX ephemeris
-        gnss_opt.ionoopt    =        _server.getParam<int>   (prefix + _unique_name + "/gnss/ionoopt"); // ionosphere option (0:correction off,1:broadcast mode,2:SBAS model,3:L1/L2 or L1/L5,4:estimation,5:IONEX TEC model,6:QZSS broadcast,7:QZSS LEX ionosphere,8:SLANT TEC mode)
+        gnss_opt.sateph     =        _server.getParam<int>   (prefix + _unique_name + "/gnss/sateph");  // satellite ephemeris option: EPHOPT_BRDC(0):broadcast ephemeris, EPHOPT_PREC(1): precise ephemeris, EPHOPT_SBAS(2): broadcast + SBAS, EPHOPT_SSRAPC(3): broadcast + SSR_APC, EPHOPT_SSRCOM(4): broadcast + SSR_COM, EPHOPT_LEX(5): QZSS LEX ephemeris, EPHOPT_SBAS2(6):broadcast + SBAS(sats with SBAS corr and sats with BRDC eph), EPHOPT_SBAS3(7):broadcast + SBAS(EPHOPT_SBAS if possible, otherwise EPHOPT_SBAS2), EPHOPT_SBAS4(8):broadcast + SBAS(EPHOPT_SBAS if possible, otherwise EPHOPT_BRDC)
+        gnss_opt.ionoopt    =        _server.getParam<int>   (prefix + _unique_name + "/gnss/ionoopt"); // ionosphere option: IONOOPT_OFF(0):correction off, IONOOPT_BRDC(1):broadcast mode, IONOOPT_SBAS(2):SBAS model, IONOOPT_IFLC(3):L1/L2 or L1/L5, IONOOPT_EST(4):estimation, IONOOPT_TEC(5):IONEX TEC model, IONOOPT_QZS(6):QZSS broadcast, IONOOPT_LEX(7):QZSS LEX ionosphere, IONOOPT_STEC(8):SLANT TEC mode, IONOOPT_SBAS2(9):broadcast + SBAS(sats with SBAS corr and sats with BRDC eph), IONOOPT_SBAS3(10):broadcast + SBAS(IONOOPT_SBAS if possible, otherwise IONOOPT_SBAS2), IONOOPT_SBAS4(8):broadcast + SBAS(IONOOPT_SBAS if possible, otherwise IONOOPT_BRDC)
         gnss_opt.tropopt    =        _server.getParam<int>   (prefix + _unique_name + "/gnss/tropopt"); // troposphere option: (0:correction off,1:Saastamoinen model,2:SBAS model,3:troposphere option: ZTD estimation,4:ZTD+grad estimation,5:ZTD correction,6:ZTD+grad correction)
         gnss_opt.sbascorr   =        _server.getParam<int>   (prefix + _unique_name + "/gnss/sbascorr");// SBAS option (1:long term correction,2:fast correction,4:ionosphere correction,8:ranging)
         gnss_opt.raim       =        _server.getParam<int>   (prefix + _unique_name + "/gnss/raim");    // RAIM enabled
@@ -82,6 +82,16 @@ struct ParamsProcessorTrackerGnss : public ParamsProcessorTrackerFeature
         // COMPUTE FIX OPTIONS (RAIM)
         fix_opt.elmin = 0;
         fix_opt.maxgdop = 30;
+        fix_opt.raim = gnss_opt.raim;
+        // same constellations
+        fix_opt.GPS = gnss_opt.GPS;
+        fix_opt.SBS = gnss_opt.SBS;
+        fix_opt.GLO = gnss_opt.GLO;
+        fix_opt.GAL = gnss_opt.GAL;
+        fix_opt.QZS = gnss_opt.QZS;
+        fix_opt.CMP = gnss_opt.CMP;
+        fix_opt.IRN = gnss_opt.IRN;
+        fix_opt.LEO = gnss_opt.LEO;
     }
 
     std::string print() const
diff --git a/src/processor/processor_tracker_gnss.cpp b/src/processor/processor_tracker_gnss.cpp
index 3c8bdf9b09497c10d76af3b25f60786853dcec61..a26e2978a74f63e1d80063545386d1e19c7f76ae 100644
--- a/src/processor/processor_tracker_gnss.cpp
+++ b/src/processor/processor_tracker_gnss.cpp
@@ -63,10 +63,15 @@ void ProcessorTrackerGnss::preProcess()
     }
 
     // Set ECEF-ENU
-    if (!sensor_gnss_->isEnuDefined() and sensor_gnss_->isEnuModeAuto() and fix_incoming_.success)
+    if (!sensor_gnss_->isEnuDefined() and sensor_gnss_->isEnuModeAuto() )
     {
-        WOLF_DEBUG("setting ECEF-ENU: ", fix_incoming_.pos.transpose());
-        sensor_gnss_->setEcefEnu(fix_incoming_.pos, true);
+        if (fix_incoming_.success)
+        {
+            WOLF_DEBUG("setting ECEF-ENU: ", fix_incoming_.pos.transpose());
+            sensor_gnss_->setEcefEnu(fix_incoming_.pos, true);
+        }
+        else
+            WOLF_WARN("Failed to compute fix to set ECEF-ENU in auto mode. Message: ", fix_incoming_.msg);
     }
     // Fix ENU-MAP
     if ((fix_incoming_.pos - first_pos_).norm() > params_tracker_gnss_->enu_map_fix_dist)
@@ -105,9 +110,13 @@ void ProcessorTrackerGnss::preProcess()
         untracked_incoming_features_[feat->satNumber()] = feat;
     }
 
+    std::string discarded_str;
+    for (auto sat : fix_incoming_.discarded_sats)
+        discarded_str += std::to_string(sat) + " ";
+
     WOLF_DEBUG("ProcessorTrackerGnss::preProcess()",
               "\n\tinitial observations: ", n_initial,
-              "\n\tRTKLIB discarded: ", fix_incoming_.discarded_sats.size(),
+              "\n\tRTKLIB discarded: ", fix_incoming_.discarded_sats.size(), " (", discarded_str, ")",
               "\n\tgnssutils discarded: ", n_initial - untracked_incoming_features_.size() - fix_incoming_.discarded_sats.size(),
               "\n\tdetected incoming features: ", untracked_incoming_features_.size());
 }