While I understand your observation, the only valid conclusion here is that Cube power module current sensors are poor at accurately reporting low current values (which is fairly well known).
BATT_AMP_OFFSET doesn’t magically activate a current sensor, and always offsetting by -7mV probably isn’t a proper conclusion. It is simply an offset used to set the zero point. It is perhaps poorly named, as the unit is volts, and it is a raw offset of the voltage read from the current pin’s ADC. Description per source code documentation:
Voltage offset at zero current on current sensor for Analog Sensors. For Synthetic Current sensor, this offset is the zero throttle system current and is added to the calculated throttle base current.
Single line of code where the value is applied (_curr_amp_offset
is the variable to which BATT_AMP_OFFSET is assigned):
_state.current_amps = (_curr_pin_analog_source->voltage_average() - _curr_amp_offset) * _curr_amp_per_volt;
You would set this value per a current sensor’s datasheet (or if you noticed a consistent offset from measured truth data across the entire linear range of measurement).
Lastly, one would not expect this value to be set automatically. Here are the default parameters from the Cube’s hwdef (amp offset being notably and correctly absent):
# setup correct defaults for battery monitoring for cube power brick
BATT2_CURR_PIN 4
BATT2_VOLT_PIN 13
BATT_AMP_PERVLT 39.877
BATT_VOLT_MULT 12.02
BATT2_AMP_PERVLT 39.877
BATT2_VOLT_MULT 12.02
# setup ADSB
ADSB_TYPE 1
SERIAL5_BAUD 57
SERIAL5_PROTOCOL 1
EK2_PRIMARY 1
EK3_PRIMARY 1
Put another way, your value of -0.007 means that you always subtract about 1/4 ampere from the current sensed by a Cube power module (assuming otherwise default BATT parameters).