From b4cfb5141303dd054c2df5cd8f4ff48ad7bf07d3 Mon Sep 17 00:00:00 2001 From: Matthew Kennedy Date: Sat, 26 Jul 2025 19:12:13 -0700 Subject: [PATCH] better voltage sense guards --- firmware/boards/f1_dual/wideband_board_config.h | 1 + firmware/boards/f1_dual_rev1/wideband_board_config.h | 1 + firmware/boards/f1_rev2/wideband_board_config.h | 1 + firmware/boards/f1_rev3/wideband_board_config.h | 1 + firmware/sampling.cpp | 4 ++-- firmware/sampling.h | 2 +- 6 files changed, 7 insertions(+), 3 deletions(-) diff --git a/firmware/boards/f1_dual/wideband_board_config.h b/firmware/boards/f1_dual/wideband_board_config.h index 107e854..317825d 100644 --- a/firmware/boards/f1_dual/wideband_board_config.h +++ b/firmware/boards/f1_dual/wideband_board_config.h @@ -23,6 +23,7 @@ // ******************************* // 100K + 10K divider #define BATTERY_INPUT_DIVIDER (10.0 / (10.0 + 100.0)) +#define BOARD_HAS_VOLTAGE_SENSE // ******************************* // Heater low side Sensing diff --git a/firmware/boards/f1_dual_rev1/wideband_board_config.h b/firmware/boards/f1_dual_rev1/wideband_board_config.h index b62b1ae..17d2e9d 100644 --- a/firmware/boards/f1_dual_rev1/wideband_board_config.h +++ b/firmware/boards/f1_dual_rev1/wideband_board_config.h @@ -28,6 +28,7 @@ // ******************************* // 100K + 10K divider #define BATTERY_INPUT_DIVIDER (10.0 / (10.0 + 100.0)) +#define BOARD_HAS_VOLTAGE_SENSE // ******************************* // Heater low side Sensing diff --git a/firmware/boards/f1_rev2/wideband_board_config.h b/firmware/boards/f1_rev2/wideband_board_config.h index a7650a6..d0ff0ab 100644 --- a/firmware/boards/f1_rev2/wideband_board_config.h +++ b/firmware/boards/f1_rev2/wideband_board_config.h @@ -19,6 +19,7 @@ // ******************************* // 100K + 10K divider #define BATTERY_INPUT_DIVIDER (10.0 / (10.0 + 100.0)) +#define BOARD_HAS_VOLTAGE_SENSE // ******************************* // Heater low side Sensing diff --git a/firmware/boards/f1_rev3/wideband_board_config.h b/firmware/boards/f1_rev3/wideband_board_config.h index a7650a6..d0ff0ab 100644 --- a/firmware/boards/f1_rev3/wideband_board_config.h +++ b/firmware/boards/f1_rev3/wideband_board_config.h @@ -19,6 +19,7 @@ // ******************************* // 100K + 10K divider #define BATTERY_INPUT_DIVIDER (10.0 / (10.0 + 100.0)) +#define BOARD_HAS_VOLTAGE_SENSE // ******************************* // Heater low side Sensing diff --git a/firmware/sampling.cpp b/firmware/sampling.cpp index 415e5ca..629ad36 100644 --- a/firmware/sampling.cpp +++ b/firmware/sampling.cpp @@ -40,7 +40,7 @@ float Sampler::GetPumpNominalCurrent() const float Sampler::GetInternalHeaterVoltage() const { -#ifdef BATTERY_INPUT_DIVIDER +#ifdef BOARD_HAS_VOLTAGE_SENSE // Dual HW can measure heater voltage for each channel // by measuring voltage on Heater- while FET is off return internalHeaterVoltage; @@ -114,7 +114,7 @@ void Sampler::ApplySample(AnalogChannelResult& result, float virtualGroundVoltag (1 - PUMP_FILTER_ALPHA) * pumpCurrentSenseVoltage + PUMP_FILTER_ALPHA * (result.PumpCurrentVoltage - virtualGroundVoltageInt); -#ifdef BATTERY_INPUT_DIVIDER +#ifdef BOARD_HAS_VOLTAGE_SENSE internalHeaterVoltage = result.HeaterSupplyVoltage; #endif diff --git a/firmware/sampling.h b/firmware/sampling.h index ece40ab..50b8702 100644 --- a/firmware/sampling.h +++ b/firmware/sampling.h @@ -37,7 +37,7 @@ private: float nernstDc = 0; float pumpCurrentSenseVoltage = 0; -#ifdef BATTERY_INPUT_DIVIDER +#ifdef BOARD_HAS_VOLTAGE_SENSE float internalHeaterVoltage = 0; #endif