How does BatMon work?

Batteries are an integral part of drones. However, hobbyists and other custom drone manufacturers have been using batteries in rather interesting ways. They are either too destructive on the battery – draining it beyond recommended limits – or too conservative and not utilizing the entire battery completely.

Smart batteries are batteries with multiple sensors and a processing unit to find the accurate remaining capacity of the battery and its health. THATS IT!! THATS ALL IT DOES..

BatMon enables you to build a smart battery from your existing “Dumb Batteries”. You can assemble BatMon to your batteries and see battery health and status in an OLED screen. BatMon can talk SMBUS protocol to communicate real time battery information to your favorite platform such as Arduino or autopilots such as ArduPilot and PX4.

Why do I need BatMon?

  • Battery voltage doesn’t accurately show a battery’s remaining capacity
  • The physically separate power modules that are used on drones do not have accurate information about battery’s health and depth-of-charge. They cannot be relied on for critical information about the battery
  • Its time consuming to check and manage large number of batteries by plugging in voltmeter to each one
  • Automated balancing of individual cells in a battery pack
How the remaining capacity of battery is measured now, without BatMon ?

Though not supported in software yet, some of these features are in the pipeline:

  • Automated battery discharging to enhance battery longevity. Storing Lithium batteries at around 30% or lower significantly reduces the degradation of battery capacity over time. 
  • Unique ID for every battery, which helps track a battery for safety and health
  • BatMon logs temperature from multiple thermistors. This can be used to estimate the temperature dependent variations of a battery. For example, we know that when the temperature is closing to freezing, batteries have significantly lower capacity.
  • Cycle count of battery

Why battery voltage doesn’t accurately show battery remaining?

Lets do a simple experiment measuring voltage and current when you drain a battery. A circuit is shown below of the test setup.

A simple battery testing circuit

The graph below shows the voltage measured on a battery when it’s drained and stopped intermittently. Watch how the voltage rises and falls based on the load-on and load-off setting. What this means is the voltage cannot be used to find the capacity.

Voltage and Current on a battery discharged from 100% to 0%

What’s worse is that the voltage changes with different constant load. The graph below shows the voltage of the same battery but at different current drain. The x-axis shows the voltage measured on the cell, and y-axis shows the true capacity remaining on the battery. The green line is at 1C, blue line at 6C and red at 16C. Watch how the same reading of 2.9 volt could represent different capacity remaining. 

Draining a battery at different current (C rate)

So, voltage alone cannot be used to find the charge state of a battery.

How does BatMon work?

BatMon measures the voltage of the cell along with the instantaneous current to estimate the state of charge of the battery.

The voltage is measured using a high speed ADC. The current is calculated by measuring the voltage across a resistor(called a shunt resistor in this case). It’s a little tricky to calculate current though. We are interested in knowing the accumulated current drained through the battery, and not the instantaneous current. A traditional ADC measures the instantaneous value of a signal. Accumulated current is calculated using an integrating ADC which performs analog integration of the current providing an accurate sum of current. This is called coulomb counting.

Though BatMon logs the temperature of the battery, it does not use it to learn the changes of battery capacity at different temperatures. At least, not yet…

Though the concept of smart battery is decades old, a smart battery for drones has few differences. Smart batteries for ground robots and other electronic systems require an electronic cutoff to prevent overdrain/overcharge. However, most drones have very high power requirements and adding an additional power cutoff circuitry in a battery is heavy and introduces additional power loss.

Moreover, a smart battery shouldn’t be given the autonomy to switch off power. The autopilot should always be in charge of powering down the system. A worst case scenario that the autopilot should be able to command is a flight plan which destroys the battery, but saves the aircraft with a softer landing. Hence, BatMon does not have a cutoff mechanism. 

BatMon can be connected to development drone for displaying voltages and connecting to Autopilot

BatMon can be connected to the drone to visualize battery voltages and communicate individual cell voltages and current to the autopilot. However, this will not provide Smart Battery capabilities such as the ability to learn individual battery’s capacity over time and accurate battery remaining. 

BatMon mounted on a drone

Features of BatMon

BatMon can be integrated on multi-cell Lithium ion and Lithium Polymer batteries. There are currently two versions:

  • BatMon 2-6 for monitoring 2 to 6 cells 
  • BatMon 6-10 for monitoring 6 to 10 cells

The module can be easily shifted to newer battery pack after the first battery’s lifespan. The module supports two of the popular battery chemistry. Customized profiles for new batteries can be added on request.

SMBUS compatible for common autopilots and architectures

BatMon is currently compatible with

  • Autopilots
    • Pixhawk
    • Ardupilot
  • Embedded systems
    • Arduino
    • Raspberry Pi using ROS

Various parameters of the battery can be visualized on a ground station such as QGroundControl, when BatMon enabled smart batteries are connected on a drone and the data wires(SMBUS) are connected to the I2C lines of the autopilot. Some of the parameters which are already available are 

  • Individual cell voltages
  • Battery temperature from different thermisters
  • Current
  • Estimated battery remaining
BatMon data on QGroundControl: Individual cell voltages of 6S cell during flight

Automatic cell-balancing

Each cell in a multi-cell battery packs will have physical and chemical differences which results in slight changes of voltage and capacity in each of the cell. These differences over time can accumulate and result in performance and safety concerns for the pack. It is hence common for packs to be balanced by using the balanced lead. BatMon has an integrated cell-balancer which monitor these differences and equalize the pack so that you do not have to connect the balance leads for every charging cycle. 

Integrated auto cell-balancing for BatMon

Sunlight readable OLED

Many field tests and drone flights are conducted outdoors and in bright sunlight. It’s important to read the battery information and decide whether to change the battery or select the right one to fly.

BatMon OLED is easily viewable in sunlight

Making Smart Battery using BatMon

Custom cases can be built for BatMon or for the entire battery pack.

We know batteries have varying dimensions and users have different space constraints for a smart battery. Battery packs of various different sizes can be built using BatMon.

Opensource case design for a 6S Smart Battery

Robust and lightweight custom battery cases can be print from ABS or PETG material. 

3D printed BatMon case for 6S 18650 battery

BatMon has been designed keeping ease of attachment to batteries and cases. Three mounting holes are available for screw attachment.  

How to assemble your own Smart Battery

Tools required to assemble BatMon into battery packs

If you need custom smart batteries to be assembled, please contact us at

BatMon can be assembled using the following tools:

  1.  High wattage soldering iron: Soldering the balance leads and power wires to pack
  2.  Heat shrink tubing: For wrapping the battery after packing BatMon
  3.  Hot air gun: For heating the heat shrink tubing
  4.  Exacto knife: Cleaning up the extra heat shrink tubing, cutting a hole around the buttons and the OLED monitor 

Other recommended parts for assembling Smart Battery

  • XT90-I connectors: Single connector for both power and SMBUS data
  • BatMon cases: Protection and a robust smart battery. This can be 3D printed 

We recommend using XT90-I connectors which have around 90 Amp current rating and integrated data pins. This is a seamless experience for using BatMon for both on-ground user-experience and in-flight data monitoring.  

XT90-I connectors provide a convenient option for both power and data

Submodules and connections of BatMon

BatMon connections