Back

Guides · Applied AI

Battery health from flight logs, and what it teaches about small data.

"We don't have enough data" is the most common reason companies give for not starting a machine learning project. This peer-reviewed study got to a 2.26 percent error from a few hundred drone flights. Here is how, and which of its choices carry over to your own project.

Last updated: September 23, 2026

Battery state of health (SoH) is the share of its original capacity a battery can still deliver, and a drone pack is considered end-of-life at 80 percent. Vozwin's peer-reviewed research with McGill University and Université de Sherbrooke predicted SoH within 2.26 percent on a battery the model had never seen, using only the voltage, current and throttle a flight controller already logs, from 631 flights. It got there without a large dataset by turning each flight into an image so a pretrained vision model could read it, and by transferring what the model learned on one pack type to another.

For anyone deciding whether their own data is enough for machine learning, the method matters more than the battery. This guide explains the problem the research set out to solve, how the data and labels were collected, why the flight logs were turned into pictures, what transfer learning contributed, and how the results compare with conventional models. It then draws out the lessons that apply to any small-data project, what the results change in operations, and where the paper's own limits lie. The paper itself is linked under Sources.

What state of health is, and why it is worth predicting

Every charge and discharge cycle degrades a lithium battery a little. State of health tracks that degradation as remaining capacity: a 2,200 mAh pack that can now hold 1,980 mAh is at 90 percent SoH. Industry practice, and the paper, treat 80 percent as end-of-life, the point at which a pack should leave service before a cell fails outright. The catch is that remaining capacity cannot be measured in flight, only estimated.

That makes SoH a classic prediction target: a number that drives real decisions and costs money to measure directly. Retire packs too early and the spares budget pays for capacity never used. Retire them too late and an aircraft comes down mid-mission. Most fleets split the difference with a cycle count that treats every pack as average. An accurate per-pack prediction turns that guess into a decision with evidence behind it.

Why this is a hard machine learning problem

Machine learning SoH prediction is a mature topic for electric vehicles. Drones had been largely overlooked, because the constraints are different in five ways:

  • Data scarcity. Training data comes from run-to-failure tests, and for drone packs almost none had been published. Each pack has to be flown repeatedly until it dies.
  • Variety. A single airframe accepts packs of many brands, sizes, capacities and voltages, and an operator typically owns several. One model has to cope with all of them.
  • No room for new sensors. Temperature is one of the most informative signals of battery health, but a sensor adds weight, so the paper deliberately works without it. The inputs are limited to what the flight controller already records.
  • Noisy operating conditions. Pilot habits, payload, wind and weather change how a pack is loaded from one flight to the next.
  • Expensive labels. Remaining capacity can only be measured by fully discharging the pack, which itself damages it, so a label cannot be collected after every flight.

Replace "battery" with "pump", "compressor" or "conveyor" and most of that list still reads true. Little history per equipment type, many variants, no appetite for new instrumentation, messy operating conditions and costly ground truth are the normal state of industrial data. That is why this study is worth reading beyond drones.

How the data and labels were collected

Rather than cycling packs on a bench, the team discharged them the way an operator would: by flying. A lightweight quadcopter built around a Holybro Pixhawk 4 Mini flight controller flew take-off, steady flight and landing profiles while the controller logged output voltage and current at 10 Hz. Flights spanned take-off weights of 150 to 250 grams and durations of 5 to 15 minutes, and every pack was recharged with the same protocol after each flight.

BatteryBrandCapacityCellsDischarge ratePacks testedFlight experiments
Type 1SIGP1,100 mAh3S, 11.1 V20C5289
Type 2RoaringTop2,200 mAh3S, 11.1 V25C3342

Both are lithium polymer packs typical of lightweight UAVs. The 2,200 mAh packs produced more flights each because they take more cycles to reach end-of-life.

The labelling design is the part worth copying. Because a full discharge damages the pack, remaining capacity was measured on a battery tester only after every tenth flight, with the ten flights in between flown at the same weight and duration. The capacity for each intermediate flight was interpolated between the two surrounding measurements. The paper states that assumption openly, and it is how all 631 flights ended up with a usable label for a fraction of the measurement cost.

Turning flight logs into images

The central idea is a workaround for data scarcity: instead of training a large time-series model from scratch, reshape each flight's sensor data into a picture and let a vision model that has already learned from 14 million photographs do the feature extraction. Each flight goes through these steps:

  1. Each signal (voltage, current, throttle) is normalized to a 0 to 255 range, the scale of a grayscale pixel.
  2. The series is reshaped into a matrix 112 columns wide, giving one grayscale image per signal. The images still resolve voltage changes of 0.05 V and current changes of 0.0075 A.
  3. The three grayscale images are stacked into one three-channel image, one channel per signal, like the red, green and blue of a photograph.
  4. Because flights differ in length, images are padded to a common size and resized to 80 by 80 pixels for ResNet-50.
  5. A ResNet-50 pretrained on ImageNet, with its weights frozen, turns each image into 2,048 features. No battery-specific training happens at this stage.
  6. Small trainable layers map those features to one number: the predicted remaining capacity after that flight.
  7. The previous flight's remaining capacity is fed in as an extra input, so the model carries history forward instead of judging each flight in isolation.

Because the pretrained model does the heavy lifting with weights nobody has to train, the number of trainable parameters is small enough to learn from a few hundred flights without overfitting. Hyperparameters were tuned by sampling 500 candidate configurations and keeping the one with the lowest validation error over 2,000 epochs.

Transfer learning between two pack types

The second idea addresses variety. The target was the 1,100 mAh pack, which had the smaller dataset: 4 packs and 203 flights for training, and 1 held-out pack with 86 flights for testing. The 342 flights from the 2,200 mAh packs were used to pretrain the model first, then it was fine-tuned on the 1,100 mAh training data. The model learned what degradation looks like on one pack type, then adapted that knowledge to another.

At the final epoch, training loss with transfer learning was 28 percent lower than without it. The practical meaning is that a new pack type does not require starting over: a model trained on the equipment you already have adapts to the next variant with far less data.

The results

The approach was compared with two models commonly used for battery SoH prediction, a convolutional neural network trained from scratch and a transformer, each tuned with the same hyperparameter search. All were evaluated on the same unseen test battery:

ModelTest MSETest error (MAPE)
CNN0.01027.83%
Transformer0.01759.22%
ResNet-50, no transfer learning0.00533.47%
ResNet-50 with transfer learning0.00272.26%

MSE is mean squared error; MAPE is mean absolute percentage error, the average size of the prediction miss relative to the true remaining capacity. Test set: one 1,100 mAh battery and 86 flights the model never saw during training.

The transformer, the most sophisticated model in the comparison, did worst on the test set and overfit the training data heavily. The pretrained vision model alone beat both baselines by a wide margin, and transfer learning then cut its remaining error by a further third. Since publication, training has continued on a larger dataset, and the test error on the current model stands at 1.57 percent.

Six lessons for any small-data AI project

  1. Borrow before you build. A model pretrained on millions of examples, even from a different domain, can do the feature extraction for you. Training only a small layer on top is what makes a few hundred records enough.
  2. Reframe the data to fit the tool. Nothing about battery logs says "image". Reshaping them into one is what unlocked a mature, well-tested family of vision models. Ask what form your data would need to take to use proven tools, not which new tool fits your data.
  3. Transfer from where you have more data. If one equipment variant has more history than another, train on it first and fine-tune on the scarce one. That is usually cheaper than collecting more data on the variant you care about.
  4. Budget for labels, and design how you collect them. Labels are usually the expensive part. Measuring every tenth cycle and interpolating, with the assumption stated, is a pattern that transfers to any setting where ground truth is costly.
  5. Evaluate on units the model never saw. The 2.26 percent figure is on a held-out battery. Accuracy on the training equipment says nothing about the next unit, and it is the number vendors most often quote.
  6. Sophistication is not the goal. The transformer lost. On small datasets the model with the fewest trainable parameters that still captures the signal usually wins. Match the method to the data you have, not to the state of the art.

What the results change in operations

  • Retirement becomes a data decision. Packs are retired when predicted capacity approaches 80 percent, not at a conservative cycle count, and the evidence can be recorded in the maintenance log.
  • Rotation follows health, not age. Two packs bought on the same day do not degrade at the same rate. Per-pack predictions let the healthiest packs carry the longest missions.
  • Endurance margins are real again. Planning against the predicted capacity of the pack on the aircraft, rather than its nameplate, restores the reserve the pilot is counting on.
  • No hardware to add. Voltage, current and throttle are logged by any modern flight controller, so there is no weight penalty and no instrumentation project before value shows up.

The companion guide on predictive maintenance with machine learning covers how to turn a result like this into a project: the readiness check, the build, buy or partner decision, pilot design, funding and crew adoption.

Limits and what comes next

The paper is careful about its scope, and anyone applying its lessons should be too:

  • Only discharge cycles were modelled. Charging data is rarely available from UAV batteries in practice.
  • One airframe, two pack types. Broader validation across drones and chemistries is the next step, and it is what the continued training since publication has been doing.
  • Labels between full-discharge checks are interpolated, which assumes degradation is roughly even across ten similar flights.
  • Temperature was left out on purpose to respect the weight constraint. Where a platform does log it, it should help.

The motor is the next component. Vozwin's follow-on work predicts motor state of health from the accelerometers, gyroscopes, barometer and GPS a drone already carries, plus camera footage to catch the visual instability a degrading motor produces.

Who did the research, and where Vozwin AI fits

The paper was authored by Jiarui Xie, Lingchen Kong and Yaoyao Fiona Zhao of McGill University's Department of Mechanical Engineering; Mohamed Rami Latreche and Elaine Mosconi of Université de Sherbrooke's Department of Information Systems and Quantitative Management Methods; and Sean Smith of Vozwin, the founder of Vermilion. It is part of the PHUMS project established by Vozwin, with UAV design and experiments guided by Fabio Bandera of Vozwin, and it was supported by the Mitacs Accelerate program and the Réseau SDG Innovation Network's collaborative R&D projects in digital, intelligent and sustainable transformation.

Vozwin owns the technology, developed through its Labs division. Vermilion is the production platform built on it, a physics-informed reasoning model now operating as its own company, and Vozwin Aerospace builds UAV platforms that log these signals from the first flight. Vozwin AI brings the method to other operations: assessing whether your data and labels can support a model like this, choosing between a product and a build, designing the pilot, and structuring the work around Canadian R&D funding. If your team has been told it does not have enough data, that is a claim worth testing.

Questions

Questions? We've got answers.

What is battery state of health (SoH)?

The fraction of its original capacity a battery can still deliver, so a 2,200 mAh pack that now holds 1,980 mAh is at 90 percent SoH. Drone batteries are generally considered end-of-life at 80 percent, before a cell fails outright.

How accurately can machine learning predict a drone battery's state of health?

Vozwin's peer-reviewed research with McGill University and Université de Sherbrooke reached a 2.26 percent mean absolute percentage error on a battery the model had never seen, from a dataset of 631 flights. Continued training on more data has since brought that to 1.57 percent.

How much data does a machine learning model need?

It depends on the method more than most people assume. This study used 631 flights on eight packs, and only 203 flights for the target pack type. Using a pretrained model for feature extraction and transfer learning from a second pack type is what made that enough. Well-labelled data matters more than volume.

Why convert flight data into images?

Because large time-series models overfit when data is scarce. Reshaping each flight's signals into an image lets a ResNet-50 pretrained on 14 million photographs extract features with no battery-specific training, leaving only a small set of layers to train on a few hundred flights.

What is transfer learning?

Training a model on one dataset, then fine-tuning it on a related one with less data. Here, pretraining on 342 flights of 2,200 mAh packs before fine-tuning on 1,100 mAh packs cut training loss by 28 percent and test error from 3.47 to 2.26 percent.

Why did the transformer model perform worst?

Transformers have many trainable parameters and need large datasets. On a few hundred flights it overfit the training data heavily and posted a 9.22 percent test error, against 2.26 percent for the pretrained vision model with transfer learning.

Where can I read the full paper?

It is published on arXiv under the title Machine Learning-Based Battery State-of-health Prediction for Unmanned Aerial Vehicles Predictive Maintenance (arXiv:2607.06791), linked under Sources on this page.

To the top

Told you don't have enough data?

Tell us what your equipment records and what outcomes you track. We'll tell you whether a small-data approach like this one could work for you, and what it would take to find out.