diff --git a/platforms/common/include/px4_platform_common/board_common.h b/platforms/common/include/px4_platform_common/board_common.h index 5058a7ad19d..9d87fcf9bdd 100644 --- a/platforms/common/include/px4_platform_common/board_common.h +++ b/platforms/common/include/px4_platform_common/board_common.h @@ -147,6 +147,14 @@ #define ADC_3V3_SCALE (2.0f) // The scale factor defined by HW's resistive divider (Rt+Rb)/ Rb #endif +#ifndef BOARD_ADC_POS_REF_V_FOR_CURRENT_CHAN +#define BOARD_ADC_POS_REF_V_FOR_CURRENT_CHAN (3.3f) // Reference voltage for reading out the current channel +#endif + +#ifndef BOARD_ADC_POS_REF_V_FOR_VOLTAGE_CHAN +#define BOARD_ADC_POS_REF_V_FOR_VOLTAGE_CHAN (3.3f) // Reference voltage for reading out the voltage channel +#endif + /* Provide define for Bricks and Battery */ /* Define the default maximum voltage resulting from the bias on ADC termination */ diff --git a/src/modules/battery_status/parameters.cpp b/src/modules/battery_status/parameters.cpp index 371aaaf0182..0cca5700692 100644 --- a/src/modules/battery_status/parameters.cpp +++ b/src/modules/battery_status/parameters.cpp @@ -40,6 +40,7 @@ #include "parameters.h" #include +#include #include namespace battery_status @@ -68,7 +69,7 @@ int update_parameters(const ParameterHandles ¶meter_handles, Parameters &par } else if (parameters.battery_voltage_scaling < 0.0f) { /* apply scaling according to defaults if set to default */ - parameters.battery_voltage_scaling = (3.3f / px4_arch_adc_dn_fullcount()); + parameters.battery_voltage_scaling = (BOARD_ADC_POS_REF_V_FOR_VOLTAGE_CHAN / px4_arch_adc_dn_fullcount()); param_set_no_notification(parameter_handles.battery_voltage_scaling, ¶meters.battery_voltage_scaling); } @@ -78,7 +79,7 @@ int update_parameters(const ParameterHandles ¶meter_handles, Parameters &par } else if (parameters.battery_current_scaling < 0.0f) { /* apply scaling according to defaults if set to default */ - parameters.battery_current_scaling = (3.3f / px4_arch_adc_dn_fullcount()); + parameters.battery_current_scaling = (BOARD_ADC_POS_REF_V_FOR_CURRENT_CHAN / px4_arch_adc_dn_fullcount()); param_set_no_notification(parameter_handles.battery_current_scaling, ¶meters.battery_current_scaling); }