diff --git a/src/modules/commander/HealthAndArmingChecks/checks/sdcardCheck.cpp b/src/modules/commander/HealthAndArmingChecks/checks/sdcardCheck.cpp
index 6766b5376c..2f55233e9f 100644
--- a/src/modules/commander/HealthAndArmingChecks/checks/sdcardCheck.cpp
+++ b/src/modules/commander/HealthAndArmingChecks/checks/sdcardCheck.cpp
@@ -178,5 +178,44 @@ void SdCardChecks::checkAndReport(const Context &context, Report &reporter)
#endif /* CONFIG_MODULES_TASK_WATCHDOG */
#endif /* __PX4_NUTTX */
+ // Check if SDLOG parameters are set to non-default values while SD card logging is disabled
+ int32_t sdlog_backend = 0;
+ param_get(_param_sdlog_backend, &sdlog_backend);
+ const bool sdcard_logging_enabled = (sdlog_backend & 1) != 0;
+
+ if (!sdcard_logging_enabled) {
+ // Check if any SDLOG parameter differs from its default
+ auto param_changed = [](param_t p) {
+ int32_t val, def;
+ return (param_get(p, &val) == 0 && param_get_default_value(p, &def) == 0 && val != def);
+ };
+
+ const bool sdlog_params_changed = (param_changed(_param_sdlog_mode) ||
+ param_changed(_param_sdlog_profile) ||
+ param_changed(_param_sdlog_mission) ||
+ param_changed(_param_sdlog_dirs_max));
+
+ if (sdlog_params_changed) {
+
+ /* EVENT
+ * @description
+ * SD logging parameters (SDLOG_*) have been modified, but SD card logging
+ * is not enabled in SDLOG_BACKEND. These parameters will have no effect.
+ *
+ *
+ * Either enable SD card logging in SDLOG_BACKEND,
+ * or reset the SDLOG parameters to their default values.
+ *
+ */
+ reporter.healthFailure(NavModes::None, health_component_t::logging,
+ events::ID("check_sdlog_params_no_sdcard"),
+ events::Log::Warning, "SDLOG parameters ineffective without SD card logging");
+
+ if (reporter.mavlink_log_pub()) {
+ mavlink_log_warning(reporter.mavlink_log_pub(), "SDLOG parameters set but SD card logging disabled");
+ }
+ }
+ }
+
#endif /* PX4_STORAGEDIR */
}
diff --git a/src/modules/commander/HealthAndArmingChecks/checks/sdcardCheck.hpp b/src/modules/commander/HealthAndArmingChecks/checks/sdcardCheck.hpp
index b8a0ac70bb..e599a6ab92 100644
--- a/src/modules/commander/HealthAndArmingChecks/checks/sdcardCheck.hpp
+++ b/src/modules/commander/HealthAndArmingChecks/checks/sdcardCheck.hpp
@@ -55,6 +55,13 @@ private:
#endif
#endif
+ // SDLOG parameters are from logger module, access via param_find
+ param_t _param_sdlog_backend{param_find("SDLOG_BACKEND")};
+ param_t _param_sdlog_mode{param_find("SDLOG_MODE")};
+ param_t _param_sdlog_profile{param_find("SDLOG_PROFILE")};
+ param_t _param_sdlog_mission{param_find("SDLOG_MISSION")};
+ param_t _param_sdlog_dirs_max{param_find("SDLOG_DIRS_MAX")};
+
DEFINE_PARAMETERS_CUSTOM_PARENT(HealthAndArmingCheckBase,
(ParamInt) _param_com_arm_sdcard,
(ParamBool) _param_com_arm_hardfault_check