Current sensor is often used in multirotors to monitor real-time current draw and capacity consumption during flight in OSD or Telemetry. In this article we will discuss the benefits of current sensor and how to calibrate it to get more accurate readings.
Benefits of current sensor
Knowing your “amp draw” and how much “mah” has been used are very useful.
- LiPo battery consumption (aka “mah consumed”) tells you directly when your battery is depleted. In my opinion, it’s a much better battery indicator than voltage (VBAT) which sags with throttle
- A good indicator if your battery is getting old and should be retired – if voltage is reaching 3.5V from 4.2V, but your mah used is only 80% of the original capacity, then you know the pack is getting old
- You can easily compare the current draw of different motor and propeller combinations in real flights
Types of current sensor
- Built-in Current Sensor in PDB and flight controller
- External current sensor that connects between your battery and PDB
For mini quad builds, I don’t recommend external current sensor, which are heavy and large in size. They are probably more suitable for larger builds like a 450. FC ro PDB with integrated current sensor and OSD are becoming popular for tight builds like mini quads.
Virtual Current Sensor
Virtual current sensor is a feature in Cleanflight and Betaflight. It doesn’t require any of the current sensor hardware, but the current consumption is purely estimated by throttle level. It can be a handy tool to have in your quad if you wish to have current sensor capability but not have the hardware.
Wrong current readings?
Current sensors are useful, however sometimes these current sensors came uncalibrated from factory. Even 2 identical current sensors could give you slightly different results due to the resistance difference in the circuit, therefore it’s important to verify and calibrate them.
If the data of current sensor is not correct, then there is no point of having a current sensor at all. So you should calibrate it.
How to calibrate
Current sensors use a simple equation to allow users to adjust/calibrate the output:
y = ax + b
a is the scale, and b is the offset.
(line diagrame of wrong current sensor, and power meter)
For example in Betaflight… here are some screenshots from Betaflight configurator, and MWOSD configurator.
However I cannot suggest any offset or scale values since this is going to be different in every situation. You will have to following the rest of this guide to determine the correct value for scale and offset.
Ways of calibration
Since there are normally 2 variables we need to work out: scale and offset, I found it easier to work out scale first, then the offset. And I found offset can often be left at zero for most current sensors I’ve worked with, so it’s really just a matter of changing scale.
There are 2 ways I normally use to calibrate current sensors.
Trial and Error
This is a safer way and doesn’t require any additional equipment. However it could take longer to get it done.
- Fly a fully charged LiPo pack, and land when it reaches exactly a certain mah number, for example at 1000mah or 1200mah or 1400mah…
- Charge the Lipo back to 4.2V, and see how much has been put back by the charger (use fast charger if you have this option on the charger, because balance charger might not be accurate as it’s constantly taking out and pumping in mah in order to balance all cells)
- Compare the 2 figures, and adjust the scale accordingly, for example, if the charger is 110% of what was shown in the OSD, then you increase the scale by 10%
- by repeating these steps, you will eventually get very close to accurate current sensor readings
Bench Test and Power Meter
This way might be much quicker and more accurate to work out the scale and offset for your current sensor. Basically it requires you to strap your quad on the bench, attach a power meter to the quad so you can measure the voltage/current draw while running the motors.
This way can be dangerous, so do it at your own risk. You could also put reverse props on the motors so they don’t spin up but down.
You will need a power meter (watt meter) to begin with: https://oscarliang.com/turnigy-7in1-mega-watt-meter/ or this http://bit.ly/2pcP4Eg
Use motor tab to spin up the motors, and avoid using your radio transmitter and throttle up because when PID controller is active, motors speed could be constantly changing and affects your current readings. Motor tab gives you more stable current draw.
Now you can record real-time current draw from OSD, as well as from the power meter. First you are going to notice there is current draw when the motors are not spinning. If the error of current sensor is within 0.1A I would probably just leave it. If not you can try to adjust the offset there to make it as close to the power meter as possible. I found offset at 0 works for most current sensors.
Now spin up the motors and you are going to notice a current draw. Aim for a certain current value, such as 30A (30A displayed on the power meter).
For example, if your OSD gave you 35A, now you knew you should adjust the scale, but you don’t know how significant the scale is. So you had to change it by a certain amount and see what affect i will have on the result, say by +50. Do the test again and this time you got 27A, and you know if by raising scale, you could decrease the reading. And we can work out the relationship between current and scale: (27-35)/50 = -0.16A / 1 scale unit increase.
We are 3A lower than the expected value, so we know we need to lower the scale in this example by 3/-0.16 = -18.75.