Accurate current and voltage readings are critical for FPV drones. They tell you your battery level, how much capacity has been used, and how much is left. An incorrectly calibrated voltage and current sensor can lead to premature landings or, worse, over-discharging your LiPo. Current sensor can also show how much current the motors are drawing in real time. In this guide, I’ll walk you through the step-by-step calibration process for both voltage and current sensors in Betaflight.
All of our recommended FC/ESC stack comes with current sensor: https://oscarliang.com/flight-controller/#The-Best-FC-Recommendations
Table of Contents
How to Calibrate Voltage
Usually, voltage sensor is fairly accurate out of the box on a Betaflight flight controller, and you may not need to calibrate it. However, it’s always a good idea to check.
- Simply take a battery and check its voltage using either a battery checker or a multimeter.
- Then connect it to your drone. Make sure you remove the propellers first for safety.
- In Betaflight Configurator, if the reported voltage (circled in red in the image below) is significantly different from your measured voltage, you should calibrate the voltage sensor. A difference within 0.1V is generally acceptable.
If your voltage sensor isn’t working, make sure Voltage Meter Source is set to Onboard ADC in the Power & Battery tab in the configurator.
To calibrate voltage:
- Click the Calibrate button at the bottom right.
- Enter the measured voltage.
- Click Calibrate. Betaflight will then ask to apply a new voltage scale.
That’s it. Within 0.1V is accurate enough.
Now you can put voltage in your OSD. You can display Battery Voltage (total voltage), or Battery average cell voltage, or both.
Why Current Sensor Is Useful
Having voltage displayed is useful, but due to voltage sag, the reading can fluctuate during flight, so it’s not always the most accurate indicator of battery level. For general flying such as freestyle and cinematic flying, using voltage alone is usually good enough. But for long-range and racing, where knowing exactly how much battery is left and when you should land is critical, that’s where the current sensor comes in.
There are two current sensor-related readings that you should know about:
Battery current mAh drawn: This shows LiPo battery consumption and tells you how much battery capacity has been used.Battery current draw: This shows real-time current draw. It is a good indicator of how power-hungry your motor and propeller combination is at different throttle positions, and you can use it to test different setups
However, poor calibration can cause incorrect mAh consumption and current draw readings, making them confusing and basically useless. Therefore, it’s important to calibrate the sensor before relying on it.
How to Enable Current Sensor and Put It in OSD
Does your ESC have a current sensor? It usually looks like a large resistor near the power pads.
If it does, you can enable it by going to the Power & Battery tab in Betaflight Configurator and selecting Onboard ADC under Current Meter Source. Some 32-bit ESCs also support ESC Sensor (via ESC telemetry) as the Current Meter Source, but it’s usually easier to just use the ADC sensor.
If your ESC does not have a current sensor and you select Onboard ADC, you will get some random current readings.
You can then display Battery current draw and Battery current mAh drawn in the OSD.
How to Check if Current Sensor Is Accurate
The easiest way to verify if your current sensor is working correctly, is to fly a battery and see if Battery current mAh drawn matches the capacity of the battery pack.
To do this:
- Fully charge a LiPo to 4.20V per cell, or 4.35V per cell if it’s LiHV.
- Fly the pack until the voltage drops to 3.3V per cell. I usually fly until 3.5V per cell, then hover close to myself until it reaches 3.3V so I don’t accidentally discharge the battery too low.
Battery current mAh drawnshould roughly equal to the actual capacity of the pack, or maybe a few percent lower because you land before the battery is completely empty.- If
Battery current mAh drawnis no where close to the battery’s capacity, then you should calibrate it.
How to Calibrate Current Sensor
To calibrate the current sensor, you basically need to adjust the scale and offset values.
You can find these settings in the Power & Battery tab, under Amperage Meter.
You can strap your quad to the bench, and measure current draw using a power meter, or a clamp meter while running the motors. However, as you can imagine it’s not the safest option, and it also requires additional equipment that most people probably don’t have. Therefore I prefer the trial and error method I describe below:
Fly a Battery
- Fully charge a battery, for example 4.2V per cell for LiPo or 4.35V per cell for LiHV.
- Put the OSD element
Battery current mAh drawnon your screen. - Fly the battery until it is nearly empty. For LiPo and LiHV, that would be around 3.5V per cell.
- After landing, note the
Battery current mAh drawnvalue shown in the OSD.
Recharge That Battery
- Recharge the battery fully to 4.2V per cell.
- See how much mAh your charger puts back into the battery.
Update Current Scale
- Connect your flight controller to Betaflight Configurator.
- Go to the Power & Battery tab and write down the
Amperage Meter Scalevalue.
Use this formula to calculate the new current sensor scale:
new_scale = old_scale x (OSD_mAh_consumed / mAh_charged)
I made this tool to simplify things. Just enter the numbers to get the new scale:
https://oscarliang.com/js/current_scale.html
In this example:
- OSD_mAh_consumed = 1520
- mAh_charged = 1703
- old_scale = 400
- new_scale = 357
Important: When entering the new scale in Betaflight, only enter a whole number. Round it if the result is a decimal.
You might have to repeat this process 2 or 3 more times to achieve an accurate scale.
You can usually leave the offset at zero.
Calibration in the Field
You can also calibrate the current sensor without access to a charger or computer by using trial and error. It may take a few more tries, but it can still be very effective.
- Bring 3 to 4 fully charged batteries with you.
- Fly one until it is nearly empty, then write down the
Battery current mAh drawnvalue shown in the OSD. - Compare that number to the battery capacity. To make the current sensor read lower, you need to increase the scale number.
- For example, if
Battery current mAh drawnis 10% higher than the battery capacity, increase the scale by 10%. - Or you can simply use the calculator if this feels too complicated.
- For example, if
- Repeat with another fully charged battery until you are happy with the accuracy.
Let me give you an example:
- Right now, your current sensor scale is 400.
- You fly a fully charged battery, a 1000mAh pack, until it is empty (e.g. 3.3V per cell).
- The OSD shows 900mAh drawn.
- So you want the OSD to read 10% higher (or a little higher to account for the small amount of charge left in the pack), which means you need to reduce the scale by 10%.
- New scale = 400 × 90% = 360
- Repeat until you are happy with the accuracy.
You can also enter the new scale value in the OSD menu (Features -> Power -> IBAT Scale) if you do not have access to Betaflight Configurator.
Pro tip: When calibrating current sensor, it’s best to use a battery in good condition. Old or abused batteries often have degraded capacity, which can throw off your calibration.
Virtual Current Sensor Setup
If your quad does not have a physical current sensor, you can still set up a virtual current sensor. This is a feature in Betaflight where current consumption is estimated based on throttle position. It is not the most accurate method, but when it’s setup properly, it’s better than nothing.
Tutorial: http://intofpv.com/t-virtual-current-sensor-with-cleanflight-betaflight
Final Thoughts
Calibrating voltage and current in Betaflight is one of those small setup steps that makes a huge difference in real-world flying.
Once dialed in:
- Your battery warnings become reliable
- Your flight time becomes predictable and you can maximizing flight time without risking overdischarging battery
- You can better understand the power demand of your motors and propellers and compare different combos
If you’ve never done this before, take 10–15 minutes and do it—it’s absolutely worth it.
Edit History
- Apr 2017 – Tutorial created
- Nov 2022 – Updated for Betaflight 4.3
- Apr 2026 – Updated for Betaflight 2025.12, with more focus on the trial-and-error method since it is safer and does not require extra equipment

56 comments
Betaflight wiki has a nice article on a battery monitoring and calibration. Especially ADC sensor calibration with multimeter is covered there. It can be done on the bench within a few minutes and it’s quite accurate. betaflight.com/docs/development/Battery#adc-sensor
Your article got me going on this – Have now calibrated my 3 small Flywoo quads. One more to go.
I have multimeters, so – I made a test cable out of XT30 conns and multimeter banana plugs – and plugged it between the battery and the quad with the multimeter in between set to sense current <10A.
Measured current when armed with the vTx on, looked at what the BF OSD was reporting, adjusted scale, did it a couple more times until the BF OSD current and the multimeter current matched – and it was done.
Then I verified with a full flight. Spot on – the amount I put back while charging matched what BF said I'd used up on the OSD post flight. Actually within a couple mah.
Love your articles.
If anyone is interested in a tool to easily calibrate the current sensor on their flight controller, check out my fc-current-calibrator project at the link below.
github.com/jwidess/fc-current-calibrator
What about battery charge/discharge (in)efficiency? no battery puts out the same mAh during discharge that it needs to take back in to get to the same state-of-charge. Shouldn’t this be measured also (simply by doing a couple of charge/discharge cycles and noting the mAh during each) and then considered in the current sensor calibration equation?
Even if the measurement is a bit off due to inefficiency, it doesn’t really matter that much as long as it’s consistent.
Based on my experience you might need to repeat the calibration process at least 2-3 times to get decent result.
Thanks for the clarification and additional data. In fact I just used the voltage calibration method you suggested in your Betaflight article[1] and found Betaflight can’t calibrate voltage closer than 0.05V or so due to the courseness of its “scale” field (one value gets me 0.03V less, and the next gives me 0.03V more than what I measure with my voltmeter). So it seems Betaflight limits precision anyway.
[1]https://oscarliang.com/betaflight-firmware-setup/#Voltage-Calibration
In my experience, as long as it’s accurate to 0.1V it should be fine.
Hi Oscar
I have a cine80a AM32 connected to a TMotor F7pro. I can see the current values by telemetry. but they very wrong. ( 40 A without any throttle).
How can I calibrate these values? Note that when I choose ESC Sensor as source of current sensor, I don’t see scale parameters.
Thanks.
When using the first method of fly-and-replace tracking. What is the purpose of the offset? If we receive an out of calibration FC with an offset should we just remove it and then start the calibration process as normal?
I normally adjust offset to make the amp draw zero (or as close to zero as possible) when the quad is on the ground, but you rarely need to do this and when you do you only need a small amount.
Hello Oscar,
I have build this winter 4s sub250 with moonlight VTX. My FC doesn’t have internal BEC so I connected this VTX straight to battery pins. I belive that’s the case when I should include this offset in equation, but I am struggling with this for days. What should I set first? Scale or offset? changing each heavily influences the outcome value, so using the method with flying and charging seems to be kind of infinite circle. Should I disconnect VTX first to check which one (VTX and FC) drains how much? or is there an easier method? should I then substract or add VTX value as offset? I also tried that method with spreadsheet but somehow I failed (maybe I tried on too low currents, but I’m powering from desktop DC power supply, and I don’t want to fry anything, so 6A is max).
Kind Regards
Can we get an update for BF 4.5
Not much changed, these methods still work in BF4.5.
How can I measure mAh charged with Whoopstor V3 (1s charger)? Any solution?
Hola. Muy buena la nota, felicitaciones. ¿En INAV el análisis es el mismo?
Screenshot for current calibration shows voltage calibration section
new_scale = old_scale x (OSD_mAh_consumed / mAh_charged) is this something I type in the cli tab or where do I type those numbers in at thank you
Hi Oscar,
hope you ca help, since i upgraded from 4.2.9 to 4.3.1 – I get an un steady current measurement both for low and high currents, using speedbee V2 . Both the configurator and OSD show me an unstable current reading fluctuations.
seems to me betaflight doesn’t average the samples . Same setup was perfect in 4.2.9, any idea what happened?
Make sure the current sensor pin from the ESC is actually matching the current sensor on the FC if you are using the ribbon cable.
Or it could just bad current sensor, it does happen to some ESC. In that case just calibrate it the best you can.
Hi
I am not using the ESC for current sense, I use the on board ADC with amp scale 168 as manufacturer recommend for speedybee F7 V2
it was working perfect in 4.2.9,looks like wrong hysteresis (averaging) setting…
any Idea?
I have the same fluctuating reading in betaflight 4.4.1, speedy bee f405 v3 :*(
Hi Oscar, why don’t you also explain how to use the method with the spreadsheet that can be found here directly on the betaflight wiki?
You can find it here: https://docs.google.com/spreadsheets/d/1lkL-X_FT9x2oqrwQEctDsEUhgdY19upNGc78M6FfJXY/
Personally I don’t like this method, the current value jumps a lot on both OSD and multimeter at low current draw (for example you may see 3.2A-3.7A, some current sensors jump even more than that), it’s really hard to take precise measurements.
Also not everyone has the needed equipment like multimeter or the necessary cables.
I still found it way more practical to just do the trial and error method.
But thanks for mentioning it i will add a link to the post just in case anyone is interested.
Hi Oscar
My current sensor is way off. In goggles it reported 545Mah used from a 1300Mah battery, at this point the voltage said land (3.5v per cell).
When I recharged the battery it said it put a full 1.30ah in.
100 is the scale in Betaflight currently.
I’ve used your formula, which in this case is 100 X (545/1300) which returns a result of 42. Should I set my new scale to 40??
Thanks
Gavin
Give that a try, and check mah in OSD and compare that with the number from your charger?
It’s likely that you have to repeat this process 2-3 times until you get it right.
Hello Oscar! Thanks for the article. Been calibrating my 7 inch for a while but I’m constantly rising the scale or lowering..never satisfied. But than I noticed, that until I don’t arm the quad, the amp stays on 0! But ofcourse it is consuming, vtx, camera, gps…So until I wait to get gps fix it should be let’s say 50 mah used or more, but it is 0. It is just a bug(bf 4.2) or should I play with the offset? Somethimes, at the end of flying, osd shows 3000 but in reality I used 3200, and sometimes(same scale) osd 3200, real mah=3000. Is this normal? It is a Mamba stack f405 mk3.
Resource: https://github.com/betaflight/betaflight/blob/master/docs/Battery.md
amperage_meter_scale = old_amperage_meter_scale * (mAh_recharged / cleanflight_reported_mAh_drawn)
For example, assuming:
An amount recharged of 1500 mAh
A Cleanflight reported current drawn of 2000 mAh
An existing amperage_meter_scale value of 400 (the default)
Then the updated amperage_meter_scale is:
amperage_meter_scale = old_amperage_meter_scale * (mAh_recharged / cleanflight_reported_mAh_drawn)
= 400 * (1500 / 2000)
= 300
I have tested whit an Tyro79 Virtual Current Sensor:
Scale: 400 / used 444 / recharged 334 = new scale 334
control test:
Scale:301 / used 304 / recharged 307 = new scale 304
Our formula is wrong! I used this: old_amperage_meter_scale * (mAh_recharged / cleanflight_reported_mAh_drawn)
(Tyro whit Betaflight 4.2)
I think this on our page is wrong: new_scale = old_scale x (OSD_mAh_consumed / mAh_charged)
shouldn’t that mean old_scale * (mAh_charged / OSD_mAh_consumed) (Github)
or am I wrong?
So heres a interesting one for you. I have three quads that I have calibrated the current sensor on with this method, however my 4th one wants to be special. When I plug the battery in disarmed it says Im running 70a. I tried messing with the offset but it didnt seem to change anything. I have the scale set to 13,000 and it still says that its running 2a before arming. Is this a sign of a sensor gone wrong?
I just soldered up my current sensor on f4 ominibus, all fine but i accidently soldered the + on the left of the current sensor not just to the pad it was supposed to go on to, but it soldered directly to the side of the current sensor, im guessing this will still be ok? or have a made a grande mistake?
My mAh going up and up as soon o plug ThE battery, no matter if it calibrated or not. Im using aikon f4 FC and current sensor from matek pdb. If iuse multishot mAh reads are correct . With dshot not. Any idea?
very helpful!
Hi,
doing the second method “Bench Test and Power Meter” without any Props on the motors, won´t deliver reliable results? I need to have props on in any case?
Thanks.
Jann
My used mah is over 1000 when my battery used is only 350. How do I actually adjust it so it reads accurately in my osd?
Calibrate it?
New scale = Old scale x (1000/350)
Then repoeat the process until you are happy with the result.
Sorry, what scale or value am I changing in betaflight?
Hi Oscar,
I would like to use the current sensor of my PDB instead of the one of my F4PRO-V2, but where to link the output wire ?
it’s usually not possible to override the built-in current sensor in the flight controller because it’s “hard-wired” to the MCU. Unless your FC has allows external current sensor (has a dedicated pin)
Hey, hope you can help me out. I have a hobbywing xrotor 45a esc which has a current sensor, and a OMNIBUS F4 Nano v6 with LC filter which supports Telemetry. Can I connect the wire from the esc current sensor to the flight controller telemetry and still get current sensing. Thanks
please answer this,.. I got the hobbywing xrotor g2 stack with xrotor micro 45a esc and I cant get esc sensor to work even though its in the breakout cable that plugs from esc to fc..
Hi – what is considered to be to high of an amp draw? Trying to get a good motor prop combo…
Hi Oscar,
Mi OSD is reading current and the mAh is increasing when putting the batterie with no throttle. The increase seems to be the same with no relation with flying or not… You linear method doesn’t resolve this problem. Any idea? Thanks
Please join our forum for further troubleshoot:
IntoFPV.com
Man you cover all topics in quad universe!:D love it <3
Hi
I got a pdb equipped with this function but I don’t want to use it. If I didn’t wire the current sensor terminal would this affect the other wirings ?
Thanks
no, it won’t affect anything, you can just leave it if you don’t want to use it.
appreciated, thanks the informative blogs.
Dear Oscar,
I think, the correct formula is:
old_scale : OSD_mAh_consumed = new_scale : mAh_charged
old_scale x mAh_charged = new_scale x OSD_mAh_consumed
new_scale = old_scale x (mAh_charged / OSD_mAh_consumed )
Peter
This formula can’t be correct, at least not with Betaflight.
If the current measurement is too high, you have to increase the scale value. Using this formula would decrease the scale. The example by Oscar shows it the right way.
My guess is, that this is different to Cleanflight. Their documentation shows your formula as correct.
I agree, Peter. The correct formula is scale x actual mAh / estimated mAh.
/QUOTE
• Fly a fully charged LiPo pack and land when “mAh consumed” reaches a whole number, for example 1000mah or 1200mah or 1400mah…
/UNQUOTE
Dear Oscar,
do you think is really necessary to land the quad when a whole number is reached?
In theory, since I know the total mAh capacity of the battery, any value is good for calculation… eithe 998 consumed mAh, 655, 1247 etc..
It’s all a matter of calculations no? I’m I somehow wrong?
Thanks a lot for your clear and exhaustive article and forgive me if my question is silly…
Best regards,
bragee
Oscar,
Thanks for your very usefull knowledge sharing blog. In fact, I could calibrate precisely the Typhoon32 4 in 1 4 X 35A ESC connected to the OMNIBUS PRO F4 V5. With the soft method I obtained 230 to put on the Betaflight onboard current sensor tab..
Best reguards
Benoit
my current sensor readout is backwards, how do i fix it?
By the way, for Matek FCHUB-6S the scale value specified in documentation. mateksys.com/?portfolio=fchub-6s
Okay I have wraith esc they have current sensing and matek fchub 6 w current sensing and f7 can I connect my swift w osd to flight controller because it has filtering for camera or do I have to connect to pdb to use current sensing capabilities?
Thank you,
Steven