diff --git a/src/drivers/boards/common/board_common.h b/src/drivers/boards/common/board_common.h index 1148f9f1b8..d2faba5983 100644 --- a/src/drivers/boards/common/board_common.h +++ b/src/drivers/boards/common/board_common.h @@ -132,6 +132,29 @@ # define BOARD_EEPROM_WP_CTRL(on_true) #endif +/* Define an overridable default of 0.0f V for batery v div + * This is done to ensure the missing default trips a low + * voltage lockdown + */ +#if !defined(BOARD_BATTERY1_V_DIV) +#define BOARD_BATTERY1_V_DIV 0.0f +#endif + +#if !defined(BOARD_BATTERY2_V_DIV) +#define BOARD_BATTERY2_V_DIV 0.0f +#endif + +/* Define an overridable default of 0.0f for A per V + * This is done to ensure the default leads to an + * unrealistic current value + */ +#if !defined(BOARD_BATTERY1_A_PER_V) +#define BOARD_BATTERY1_A_PER_V 0.0f +#endif + +#if !defined(BOARD_BATTERY2_A_PER_V) +#define BOARD_BATTERY2_A_PER_V 0.0f +#endif /* Conditional use of FMU GPIO * If the board use the PX4FMU driver and the board provides diff --git a/src/modules/sensors/parameters.cpp b/src/modules/sensors/parameters.cpp index 56b9017690..ed4a132226 100644 --- a/src/modules/sensors/parameters.cpp +++ b/src/modules/sensors/parameters.cpp @@ -416,6 +416,9 @@ int update_parameters(const ParameterHandles ¶meter_handles, Parameters &par } else if (parameters.battery_v_div <= 0.0f) { /* apply scaling according to defaults if set to default */ + + parameters.battery_v_div = BOARD_BATTERY1_V_DIV; + #if defined (CONFIG_ARCH_BOARD_PX4FMU_V4) parameters.battery_v_div = 13.653333333f; #elif defined (CONFIG_ARCH_BOARD_PX4FMU_V2) || defined ( CONFIG_ARCH_BOARD_MINDPX_V2 ) @@ -430,9 +433,6 @@ int update_parameters(const ParameterHandles ¶meter_handles, Parameters &par parameters.battery_v_div = 9.0f; #elif defined (CONFIG_ARCH_BOARD_AEROFC_V1) parameters.battery_v_div = 9.0f; -#else - /* ensure a missing default trips a low voltage lockdown */ - parameters.battery_v_div = 0.0f; #endif param_set(parameter_handles.battery_v_div, ¶meters.battery_v_div); } @@ -443,17 +443,18 @@ int update_parameters(const ParameterHandles ¶meter_handles, Parameters &par } else if (parameters.battery_a_per_v <= 0.0f) { /* apply scaling according to defaults if set to default */ + + parameters.battery_a_per_v = BOARD_BATTERY1_A_PER_V; + #if defined (CONFIG_ARCH_BOARD_PX4FMU_V4) /* current scaling for ACSP4 */ parameters.battery_a_per_v = 36.367515152f; + #elif defined (CONFIG_ARCH_BOARD_PX4FMU_V2) || defined (CONFIG_ARCH_BOARD_MINDPX_V2) || defined (CONFIG_ARCH_BOARD_AEROCORE) || defined (CONFIG_ARCH_BOARD_PX4FMU_V1) /* current scaling for 3DR power brick */ parameters.battery_a_per_v = 15.391030303f; #elif defined (CONFIG_ARCH_BOARD_SITL) parameters.battery_a_per_v = 15.391030303f; -#else - /* ensure a missing default leads to an unrealistic current value */ - parameters.battery_a_per_v = 0.0f; #endif param_set(parameter_handles.battery_a_per_v, ¶meters.battery_a_per_v); } diff --git a/src/modules/sensors/parameters.h b/src/modules/sensors/parameters.h index 07f55f14de..e43afdbc9d 100644 --- a/src/modules/sensors/parameters.h +++ b/src/modules/sensors/parameters.h @@ -40,7 +40,7 @@ * * @author Beat Kueng */ - +#include #include #include