Overview
An embedded-oriented battery-modeling study combines equivalent-circuit estimation, an extended Kalman filter, a reaction-rate proxy, and adaptive output limiting. Python processes public discharge data; C implements the estimation and control pipeline.
Problem definition
Voltage alone does not describe a battery’s state of charge, resistance growth, or thermal risk under changing load. The project studies how modeled state estimates can inform a response policy.
Research motivation
The research connects battery degradation estimation with high-current FPV use, while separating dataset comparisons and synthetic flight profiles from physical battery-abuse validation.
System architecture
A 1RC equivalent circuit feeds a five-state EKF with SOC, RC voltage, R0, R1, and C1. Resistance-based SOH is passed to an Arrhenius-style accumulated-reaction model.
controller.c applies NORMAL / WARNING / CRITICAL states with output limits of 100%, 70%, and 0%. The prototype tests these policies in software; it does not demonstrate a flight-qualified motor-control or fire-prevention system.
Methodology
Python derives OCV lookup tables and ECM parameters from NASA PCoE discharge records. C11 code performs estimation, a modeled remaining-time calculation, and policy updates. A separate RK4 FPV simulator supplies synthetic load and temperature profiles.
The reported comparisons cover 1RC versus 2RC circuits, coulomb counting versus EKF SOC, resistance- versus capacity-based SOH, temperature thresholds versus reaction-model alerts, and fixed versus adaptive output.
Experimental setup
The report uses NASA PCoE batteries B0005, B0006, B0007, and B0018, with a reported 168-cycle evaluation. A separate simulator repeats a hardcoded freestyle sequence.
The dataset’s slow sampling and the simulator’s simplified current and temperature models are part of the experimental conditions. Neither supplies measured FPV thermal-runaway onset times.
Results
The report describes approximately 22% lower SOC RMSE for EKF than coulomb counting, and 34% lower cumulative modeled risk-exposure time under adaptive limiting. These are the report’s comparison metrics, not independently verified safety outcomes.
The original comparison page below shows the resistance-based SOH, alert behavior, and policy comparison. Simulated time-to-critical over repeated endurance sequences must not be interpreted as physical flight endurance or a calibrated countdown to fire.

Discussion
The source implements the Arrhenius term with fixed reaction parameters and a degradation multiplier. That calculation is a model output whose physical calibration requires separate evidence.
The adaptive policy illustrates how estimates can affect system behavior. Cutting output in a simulation is distinct from establishing a safe response for an airborne aircraft.
Limitations
The report notes roughly 0.056 Hz dataset sampling and float-precision effects that can skip the WARNING state. Real-time STM32 deployment and actual FPV flight-data validation are further work.
NASA discharge-data comparison and synthetic flight simulation do not validate real thermal-runaway prevention. No physical prevention effectiveness or deployment qualification is claimed here.
References and resources
Sources: FPV-LiPo-Thermal-Runaway-Guard README, c/src/ekf.c, arrhenius.c, controller.c, and docs/Report_EN.pdf. The reviewed source revision and report are linked below.
Project resources
Implementation & data
Source files at the reviewed repository revision.
Extended Kalman filterReaction-rate modelAdaptive output policyContent checked against the original report and linked implementation where available. Reported simulation or dataset results are distinct from physical validation.
