diff --git a/python_payload/st3m/power.py b/python_payload/st3m/power.py index 81979791cb41951fee58a414817d3a06a9dd939e..f93c430ce68e2574c9cd6037de8ce39136677671 100644 --- a/python_payload/st3m/power.py +++ b/python_payload/st3m/power.py @@ -28,8 +28,8 @@ class Power: self._adc = machine.ADC(self._adc_pin, atten=machine.ADC.ATTN_11DB) self._battery_voltage = self._battery_voltage_sample() - self._prev_battery_percentages = [1, 1, 1] - self._battery_percentage = 1 + self._prev_battery_percentages = [-1, -1, -1] + self._battery_percentage = -1 # LUT created from Joulescope measurement of "official" 2Ah Battery at 650mW discharge at 26°C and decimated from ~42k samples self._batLUT = [ (99, 4.114), @@ -138,7 +138,7 @@ class Power: # speeding up the process to get an intial settled value because recursion is hard for i in range(5): - self._approximate_battery_percentage() + self._battery_percentage = self._approximate_battery_percentage() self._ts = time.ticks_ms() def _battery_voltage_sample(self) -> float: @@ -207,6 +207,9 @@ class Power: # log.debug("prev: " + str(self._prev_battery_percentages) + " %") percent_list = self._prev_battery_percentages + if -1 in percent_list: + return percentage + # avoid division by zero in weird edge cases listsum = sum(percent_list) if (listsum == 0) or (percent_list[0] == 0):