Okay I’m reporting my full findings here in case it helps someone in the future. This is meant to supplement the limited information on this page:
https://ardupilot.org/copter/docs/common-holybro-kakutef7aio.html
The Kakute F7 V1.5 (non-aio version) has an onboard voltage sensor but it does not have an onboard current sensor. However, it has a analog input current sense pin that can be used, if provided from an external signal from a current shunt on a different device.
Both the voltage and current analog sensing pins are looking for a 0-3.3V signal. The voltage pin is virtual pin 13 and gets a signal straight from the board, so there’s no physical connection to be made for the voltage sensor. The current pin is virtual pin 12, and a physical connection has to be made to supply this pin with a signal. The physical connection is through the ESC connector, following the pin-out from the Kakute documention:
http://www.holybro.com/manual/Holybro_Kakute_F7_V1.5_Manual.pdf
The analog scaling from the arducopter documentation for the voltage pin is reportedly 10.1, but I did not find this to be accurate.
The current scaling from the arducopter documentation is not correct (relevant?) for the non-aio board, because a current shunt doesn’t exist on the non-aio board. Instead, the current scaling will correspond to whatever signal you attach to it.
Now, for the Tekko32 4-in-1 metal ESC. It has an onboard current shunt and outputs an analog signal voltage on the “I” pin of the connector, which conveniently goes to the right place on the Kakute FC. I have discovered the nominal scaling of this signal to be 60 A/V. NOT the reported “168” that is in the Tekko32 documentation.
To confuse matters, the Tekko32 always provides data through the BLHeli32 telemetry connection. Specifically, it spits out a voltage. But NOT a current. Holybro decided not to provide the current in the telemetry since they’re providing the analog voltage scaled to the current.
Here’s the rub: the BLHeli32 telemetry appears to have an accurate voltage. The onboard voltage meter in the Kakute does not. The onboard voltage meter could perhaps be improved simply by fixing the scaling. However, I do not know what that scaling should be (other than 10.1). However, I’ve got a good voltage coming from the BLHeli32 telemetry.
So I am using the voltage out of the BLHeli32 telemetry, and I am using the analog voltage signal from the ESC going to the FC. Now, setting that up in MP parameters is not completely intuitive.
First, for the current monitoring:
BATT_MONITOR, 4 (this is supposedly analog voltage and current sensing, but we’re going to disable the voltage portion. There is no option in this parameter for analog current sensing only.)
BATT_VOLT_PIN, -1 this is to turn off the voltage part of the monitoring
BATT_CURR_PIN, 12 this is where the ESC signal gets routed to through the cable, to the FC
BATT_AMP_PERVLT, 60 this is the nominal scaling; I have one that is 59A/V and another that is 64A/V. Best to modify this using the ratiometric scaling method. Reminder about that at the bottom.
that takes care of the current sensing. The battery monitor GUI will no longer be sensible, now that we have chosen “Analog Voltage and Current Sensing” but in the back turned off the voltage pin.
Second, for the voltage monitoring:
BATT2_MONITOR, 9 for BLHeli telemetry monitoring
that’s all we have to do for that I believe (maybe voltage and current pins need to be set to disabled still? can’t remember what I had for those)
Then voltage comes through on the battery 2 monitor.
hopefully that lengthy explanation helps someone else, at least people that happen to be using the combination of Kakute F7 V1.5 non-aio with Tekko32 ESC.
Ratiometric scaling method reminder:
- charge a pack fully
- go use most of the pack and record the consumption that was reported (in mAh, either to the radio via telemetry or when monitoring in mission planner, or via logs after the fact)
- re-charge the pack fully and note the mAh that went back in (as reported by the charger)
- apply the correction: new scaling factor = old scaling factor * (charged Ah/logged Ah)
- enter the new scaling factor to BATT_AMP_PERVLT and go through the whole process again to check how it worked