Latest › Build a Drone with a Bot: Software and Hardware Series
Power and Battery Sizing Sanity Checks, with a Bot Doing the Arithmetic
ExplainerBy Bot Tutorials · Published Nov 5, 2026 · Facts last verified Nov 1, 2026
Have a bot check current draw, ESC headroom and rough flight time from maker numbers. Unit-tested formulas, power module setup and LiPo safety.
The power system is where enthusiasm meets physics. Motors pull current, the ESCs have to carry it, the battery has to deliver it, and the flight controller has to measure it so the failsafes can bring the drone home before the pack runs flat. A bot is a handy calculator and explainer here, as long as the numbers come from spec sheets and your own measurements, not from the bot's memory.
This explainer shows how to set up those sanity checks, gives two unit-tested formulas you can reuse, and covers the LiPo safety habits that matter more than any calculation.
The numbers you need, and where they come from
| Number | Source |
|---|---|
| Battery nominal voltage and cell count | Battery label and spec sheet |
| Battery capacity (mAh) | Battery label |
| Battery maximum continuous discharge | Battery spec sheet, read with healthy scepticism |
| Motor current at your prop and voltage | Motor maker's thrust table, at hover and full throttle |
| ESC continuous and burst current rating | ESC spec sheet |
| All-up weight | Your kitchen scale, with everything installed |
Ask the bot to help you find the right field on each sheet, and to tell you when a number isn't there. Don't let it fill gaps. A useful prompt:
I'll paste text from my motor's thrust table. Using only that text, list the current draw at the throttle points given for my prop size and cell count. Write "not stated" for anything missing.
Check 1: ESC headroom
The rule is simple: each ESC's continuous rating should sit comfortably above the highest current its motor draws, per the manufacturer's table for your prop and voltage. How much headroom to leave is a judgement call. Many builders leave a margin for hot days, aggressive flying and props that are slightly bigger than planned. Ask the bot to lay out the numbers in a table so you can see the margin for yourself, and don't accept an ESC that's under the motor's maximum draw.
Check 2: total current vs battery
Add up the maximum current of all motors, plus a small allowance for the flight controller, camera, video transmitter and companion computer. Compare that with the battery's continuous discharge rating. Some battery ratings are optimistic, which is one more reason to leave margin and to check real current in your logs later.
Check 3: a rough flight time, clearly labelled as rough
Here are two formulas we unit-tested, so you can check a bot's arithmetic against them:
"""Unit-tested sanity math for battery sizing (examples only; use your manufacturer's numbers)."""
def amps_from_watts(watts, volts):
return watts / volts
def flight_minutes(capacity_mah, avg_current_a, usable_fraction=0.8):
return capacity_mah / 1000 * usable_fraction / avg_current_a * 60
def test_amps():
assert abs(amps_from_watts(222, 14.8) - 15.0) < 0.01
def test_minutes():
assert abs(flight_minutes(1500, 18) - 4.0) < 0.01
if __name__ == "__main__":
test_amps(); test_minutes(); print("ok")
Testing status: this file runs and its two tests pass under Python 3.13. The example numbers are for illustration only, not a recommendation: 222 W at 14.8 V is 15 A, and a 1,500 mAh pack at an 18 A average gives about 4 minutes when you only use 80% of it.
Two cautions belong next to these formulas:
- The "usable fraction" is a choice, not a law. Draining a LiPo too far damages it. Choose a conservative landing voltage based on the battery maker's guidance, and set your failsafe to match.
- Average current is the unknown. Hover current from a thrust table is a starting point. Your real average comes from your logs (see the log analysis piece in this series), and it changes with wind, weight and how hard you fly.
When a bot gives you a flight time, ask: "Which current did you assume, where did it come from, and what fraction of capacity?" If it can't answer, it guessed.
Let the flight controller measure it: power modules
ArduPilot's Power Module Configuration page explains how a power module (or an ESC's current sensor) lets the autopilot measure voltage and current, and how to calibrate the readings against a multimeter. This is where hardware meets software: ArduPilot's battery failsafe (see its Failsafes pages) can trigger an action when voltage or remaining capacity drops below thresholds you set. Our geofence and failsafe review covers that logic in detail.
A good bot task here is explaining parameters, not choosing values. For example:
Explain what ArduPilot's battery failsafe parameters do, with links to the official parameter list. Don't suggest values. Tell me what information I need to choose them myself.
Then read the definitions on ArduPilot's parameter list. Parameter names and behaviours change between firmware versions, so make sure you're reading the docs for the version you run.
Measure, don't assume
The best way to size power is to measure it:
- Calibrate the power module's voltage and current per the docs.
- Fly short, gentle hops in an open, legal area, and land early.
- Download the log and look at current and voltage over time.
- Then ask the bot to help interpret the plot, and to recompute flight-time estimates from your measured average current.
LiPo battery safety
This matters more than any spreadsheet:
- Charge with a balance charger, set to the right chemistry and cell count, on a non-flammable surface, and never leave it unattended.
- Don't charge, fly or store a damaged or swollen ("puffed") pack. Retire it following the manufacturer's disposal guidance.
- Store packs at the storage voltage recommended by the battery or charger maker, not fully charged, when you won't fly for a while.
- Let packs cool before charging after a flight.
- Transport them safely. Many people use LiPo-safe bags or boxes. Check carrier rules before flying with batteries.
- Never short the leads. Connectors and wiring are covered in our wiring checklist.
A bot can remind you of these steps. It can't see your battery, so when a pack looks or feels wrong, stop and trust the manufacturer's instructions.
Safety and legal: read this before anything leaves the ground
This series is about hobby, camera and learning drones only. A bot is a helper, not an authority, and everything it says about flight has to be checked.
- Simulate before you fly. Run every script and every parameter change in a simulator (ArduPilot SITL, or PX4 SITL with Gazebo) before it goes near a real aircraft. Bot-written code that has never run in simulation does not go on a vehicle.
- Check bot advice against official sources. Compare every answer with the ArduPilot, PX4, MAVLink or Betaflight documentation and with the manufacturer's spec sheet for each part. If the bot and the docs disagree, the docs win.
- Props off on the bench. Take the propellers off whenever the battery is connected for setup, motor tests or firmware work.
- Keep failsafes and geofences on. Don't let a bot talk you into disabling radio, battery or GCS failsafes, or into getting around a geofence or airspace restriction.
- Follow the FAA rules in the US. The FAA requires registration for drones of 250 grams (0.55 lb) or more, and for any drone flown under Part 107. Recreational flyers must pass the free TRUST test and carry proof of it. Registered drones need Remote ID, either built in, through a broadcast module, or by flying at an FAA-Recognized Identification Area. Commercial flights need a Part 107 certificate. Stay away from airports and controlled airspace unless you have authorization, keep the drone in sight, and don't fly over people.
- Treat LiPo batteries with respect. Charge on a fireproof surface with a balance charger, never leave a charging pack unattended, and retire swollen or damaged packs following the manufacturer's instructions.
- Never fly untested code near people. Test first flights in an open, legal area with nobody nearby.
Outside the US, check your national aviation authority's rules. They may be different.
FAQ
Can a bot tell me my flight time?
Only roughly. It can do the arithmetic from your measured or manufacturer-published current draw, but real flight time depends on weight, wind, flying style and battery condition. Measure it in real flights, starting short.
Where do the current numbers come from?
From the motor manufacturer's thrust table for your exact prop and voltage, and later from your own flight logs. A bot shouldn't supply them from memory.
Why does a power module matter?
It lets the flight controller measure voltage and current. ArduPilot's battery failsafes depend on those readings, and its docs describe calibrating them.
Sources
- ArduPilot Copter: Power Module Configuration
- ArduPilot Copter: Failsafes
- ArduPilot Copter: Connect ESCs and Motors
- ArduPilot Copter: Complete Parameter List
Video outline (coming)
- Why power math matters
- Gathering numbers from spec sheets
- Current, power and headroom
- Rough flight time and why it's rough
- Power module setup and calibration
- LiPo safety basics
- Recap
The narrated video for this piece is in production; this outline is what it will cover.
More fresh reading
- Turn Boxes of Paper Into Searchable PDFs With OCR and a Bot (Guide, Nov 5, 2026)
- Ask for the Lesson, Not the Answer: Study Modes in ChatGPT and Perplexity (Deep dive, Nov 5, 2026)
- Bring Back RSS: Build a Calm News Feed With a Bot's Help (Guide, Nov 4, 2026)
- Your First Bot-Written MAVLink Script: Reading Telemetry with pymavlink (Deep dive, Nov 4, 2026)
Bot advice can be wrong. We cite official docs; check them yourself before acting, especially for anything involving money, safety or flight.