Understanding Battery Types for Robotics: NiMH, LiPo, and Beyond

Compare NiMH, LiPo, Li-ion, and other battery types for robotics. Learn voltage, capacity, C-ratings, safety, and how to choose the right battery for your robot.

Understanding Battery Types for Robotics: NiMH, LiPo, and Beyond

Robotics batteries come in several chemistries—each with distinct voltage profiles, energy densities, discharge characteristics, safety requirements, and cost trade-offs—with Lithium Polymer (LiPo) batteries dominating modern hobby and competition robotics due to their exceptional energy density and high discharge current capability, while Nickel-Metal Hydride (NiMH) batteries remain popular for their safety and simplicity, and Lithium-Ion (Li-ion) cylindrical cells are standard in professional and commercial robot systems. Choosing the right battery chemistry, cell count, and capacity for a robot requires matching the battery’s voltage, current delivery capability, and total energy to the robot’s power requirements while accounting for weight, size, recharging infrastructure, and safe handling requirements.

Introduction

Somewhere in almost every robot project timeline there is a moment of battery confusion: the robot runs for three minutes instead of thirty, the motors lose power as the battery discharges, the electronics reset when the motors start, the battery gets alarmingly hot during use, or the robot performs perfectly in testing but dies halfway through a competition run. All of these problems trace back to battery selection or usage errors—and they’re all entirely preventable with a solid understanding of how different battery chemistries work.

Batteries are not interchangeable. A NiMH pack that works perfectly in one robot may be completely wrong for another. A LiPo battery that powers a racing drone may be dangerous if used incorrectly in an educational robot. The differences between battery chemistries are deep and consequential: they affect voltage levels (and how voltage changes during discharge), maximum current delivery, total energy storage, weight, cycle life, temperature sensitivity, charging requirements, and failure modes.

This article builds a complete understanding of every battery type commonly used in robotics—the chemistry behind each, its practical characteristics, where it excels, where it falls short, and how to select and use it safely and effectively.

Battery Fundamentals: The Language of Battery Specifications

Before comparing specific chemistries, you need to understand the fundamental parameters that describe any battery’s performance. These terms appear in every battery datasheet and product listing, and misunderstanding them leads to poor selections and dangerous situations.

Voltage (V)

Battery voltage is determined by the chemistry of the electrochemical cells inside. Each cell chemistry has a characteristic nominal voltage—the average voltage the cell maintains during a significant portion of its discharge cycle. Cells are combined in series (increasing voltage) and parallel (increasing capacity) to achieve desired pack voltage.

Nominal voltage is the voltage used for specifications and labeling—it represents the average usable voltage, not a precise measurement at any specific charge state. A 3.7V LiPo cell actually sits at about 4.2V when fully charged and delivers useful current down to about 3.0V before being considered discharged.

Fully charged voltage is the maximum voltage after a complete charge cycle. Exceeding this voltage—through overcharging—causes rapid degradation and safety hazards in lithium-based batteries.

Minimum discharge voltage (cutoff voltage) is the lowest voltage at which the battery should be discharged. Going below this voltage causes irreversible capacity loss in some chemistries and potential cell reversal (a dangerous condition where overdischarged cells become reverse-biased in a series pack).

Plaintext
Voltage range summary by chemistry:

NiMH cell:   Nominal 1.2V  | Full charge 1.45V | Cutoff 1.0V
NiCd cell:   Nominal 1.2V  | Full charge 1.45V | Cutoff 1.0V
Li-ion cell: Nominal 3.6V  | Full charge 4.2V  | Cutoff 3.0V
LiPo cell:   Nominal 3.7V  | Full charge 4.2V  | Cutoff 3.0V
LiFePO4 cell: Nominal 3.2V | Full charge 3.65V | Cutoff 2.5V
Lead acid cell: Nominal 2V | Full charge 2.4V  | Cutoff 1.75V

For a 3-cell LiPo (3S) pack in series: nominal voltage = 3 × 3.7V = 11.1V, full charge = 3 × 4.2V = 12.6V, cutoff = 3 × 3.0V = 9.0V.

Capacity (mAh or Ah)

Capacity is the total charge a battery can deliver before reaching its cutoff voltage, measured in milliampere-hours (mAh) or ampere-hours (Ah). A battery with 2000 mAh capacity can theoretically deliver:

  • 2000 mA (2A) for 1 hour
  • 1000 mA (1A) for 2 hours
  • 500 mA (0.5A) for 4 hours

In practice, the actual runtime is less than the theoretical value because internal resistance causes voltage losses at high currents, reducing the usable energy before the cutoff voltage is reached. At low currents, actual capacity is close to rated capacity. At high currents (near maximum discharge rate), actual capacity may be 70–80% of rated capacity due to these internal resistance effects.

C-Rating: Maximum Discharge Current

The C-rating is one of the most important specifications for robotics batteries, yet one of the most commonly misunderstood. A battery’s C-rating defines its maximum safe discharge current as a multiple of its capacity.

Plaintext
Maximum discharge current = Capacity (Ah) × C-rating

Example: 2000 mAh (2Ah) battery with 20C rating
Maximum discharge current = 2Ah × 20C = 40A

A 5000 mAh battery with 10C rating:
Maximum discharge current = 5Ah × 10C = 50A

Exceeding the C-rating causes excessive heating inside the battery, voltage sag under load, accelerated degradation, and in severe cases, swelling, fire, or rupture. Always select a battery whose C-rating provides maximum current well above the robot’s peak current draw.

The C-rating also describes the charge rate. A 1C charge rate means charging at a current equal to the capacity value—2000 mAh at 1C means 2A charging current. Most batteries can be safely charged at 1C; many lithium batteries support 2C or 3C fast charging.

Energy Density

Energy density is the total energy stored per unit weight (gravimetric energy density, Wh/kg) or per unit volume (volumetric energy density, Wh/L). For mobile robots, gravimetric energy density is critical—more energy per gram means longer runtime without increasing robot weight.

Plaintext
Total energy in battery = Capacity (Ah) × Nominal voltage (V)
                        = Energy in Watt-hours (Wh)

A 2000 mAh, 11.1V (3S LiPo) pack:
Energy = 2.0 Ah × 11.1V = 22.2 Wh

If the robot consumes 10W average:
Runtime = 22.2 Wh / 10W = 2.22 hours (theoretical maximum)
Practical runtime ≈ 80% of theoretical = 1.78 hours

Internal Resistance

Every battery has internal electrical resistance that causes a voltage drop under load and generates heat during discharge. High internal resistance causes severe voltage sag—the battery voltage drops significantly when current is drawn, potentially causing electronics to reset or brownout even when the battery still has charge remaining.

Internal resistance increases as batteries age, are discharged deeply, or are damaged by overheating. A battery that measures correct open-circuit voltage but causes voltage sag under load has high internal resistance and should be replaced.

NiMH Batteries: Safe, Reliable, and Forgiving

Nickel-Metal Hydride batteries were the dominant choice for robotics before the widespread adoption of LiPo technology and remain popular today for their safety profile, simplicity, and resistance to misuse.

Chemistry and Characteristics

NiMH cells use nickel oxyhydroxide as the positive electrode and a hydrogen-absorbing metal hydride alloy as the negative electrode. The nominal cell voltage is 1.2V—lower than lithium chemistries—requiring more cells in series to achieve the same pack voltage.

Voltage profile: NiMH cells maintain a relatively flat discharge curve through most of their capacity, then drop steeply near the end. This flat profile is useful because the robot’s electronics see relatively consistent voltage through most of the battery’s useful life.

Temperature performance: NiMH batteries perform acceptably in cold conditions (down to about -10°C), better than LiPo in this regard. They do generate significant heat during fast charging and high-rate discharge.

Cycle life: Properly maintained NiMH batteries typically last 500–1000 charge cycles before capacity degrades significantly—adequate for most robotics applications.

Self-discharge: Standard NiMH batteries self-discharge significantly when stored—losing 20–30% of charge per month at room temperature. Low self-discharge (LSD) NiMH cells (like Eneloop brand AA cells) reduce this to 1–2% per month and are far better for applications where the robot may sit unused for weeks.

Memory effect: Modern NiMH cells have minimal memory effect compared to older NiCd (Nickel-Cadmium) batteries. Partial discharge-recharge cycles don’t significantly reduce capacity in quality NiMH cells.

NiMH in Robotics

NiMH pack voltages are built by combining 1.2V cells in series. Common robotics configurations:

  • 6 cells: 7.2V (standard for hobby cars and small robots)
  • 7 cells: 8.4V
  • 8 cells: 9.6V
  • 10 cells: 12V

NiMH packs come in stick, sub-C, and custom configurations to fit various robot shapes. The sub-C cell (the physical size common in RC racing packs) has high capacity (typically 3000–4500 mAh) and good discharge current capability.

NiMH advantages in robotics:

  • Very safe compared to LiPo—tolerant of short circuits, overcharging, and physical damage without fire risk
  • No special balance charging required
  • Can be charged with simple, inexpensive chargers
  • Available as standard AA and AAA cells (using battery holders) for educational robots
  • No voltage sag alarm needed—voltage drops gradually
  • Robust to storage in any state of charge

NiMH disadvantages:

  • Lower energy density than LiPo (approximately 60–120 Wh/kg vs. 100–265 Wh/kg for LiPo)
  • Lower maximum discharge C-ratings than LiPo (typically 5–20C vs. 20–100C for LiPo)
  • More cells needed for the same voltage (1.2V/cell vs. 3.7V/cell for LiPo)
  • More weight for the same energy storage

For beginner robots, educational platforms, and any application where safety simplicity outweighs performance, NiMH remains an excellent choice.

LiPo Batteries: High Performance, High Responsibility

Lithium Polymer (LiPo) batteries have transformed hobby and competition robotics by offering extraordinary energy density and discharge current capability in lightweight, flexible packages. They are now the dominant battery technology in drones, RC vehicles, FPV racing, and high-performance robot competition.

Chemistry and Characteristics

LiPo cells use lithium cobalt oxide or related lithium compounds as the positive electrode, a graphite anode, and a lithium-salt electrolyte in a polymer matrix rather than liquid form. This polymer electrolyte allows the cell to be manufactured in thin, flexible pouches rather than rigid cylindrical or prismatic cases—enabling the flat, rectangular pack shapes ubiquitous in robotics.

Nominal cell voltage: 3.7V (some high-voltage variants: 3.8V) Full charge voltage: 4.2V per cell (high-voltage variants: 4.35V) Minimum safe voltage: 3.0V per cell (3.5V conservative minimum for long life)

Voltage profile: LiPo cells show a relatively flat discharge curve between 3.7V and 3.5V per cell, then decline more steeply toward 3.0V. The flat section makes voltage monitoring less urgent than in some other chemistries—but the steep final drop is rapid and can catch unmonitored systems off guard.

Cell count notation: LiPo packs are described by the number of cells in series (S) and parallel (P):

Plaintext
1S: 3.7V nominal, 4.2V max
2S: 7.4V nominal, 8.4V max
3S: 11.1V nominal, 12.6V max
4S: 14.8V nominal, 16.8V max
6S: 22.2V nominal, 25.2V max

A 3S 5000mAh LiPo: 11.1V nominal, 5000mAh capacity
A 2S 2P 2200mAh: 7.4V nominal, 4400mAh capacity
(two cells in series, two pairs in parallel)

C-ratings: LiPo batteries are available with C-ratings from 15C (light discharge, long life) to 100C or more (racing applications). For most robotics:

  • 20–30C: adequate for most wheeled robots and arms
  • 40–65C: competition robots, aggressive maneuvers
  • 100C+: FPV racing, sumo robots, maximum power applications

LiPo Safety: Non-Negotiable Practices

LiPo batteries contain a flammable electrolyte and can release significant energy if mishandled. The potential consequences of improper use—fire, toxic fumes, explosion—are serious enough that LiPo safety must be treated as non-negotiable, not optional.

Critical LiPo safety rules:

Never over-discharge below 3.0V per cell. Lithium plating and electrolyte decomposition begin below 3.0V. Over-discharged cells have reduced capacity, higher internal resistance, and increased risk of thermal runaway on the next charge. Use a battery voltage alarm or low-voltage cutoff (LVC) in every LiPo-powered robot.

Never overcharge above 4.2V per cell. Use only a LiPo-compatible balance charger that charges to exactly 4.2V per cell. Standard NiMH chargers will damage LiPo cells and create fire risk if used.

Balance charge every time. A multi-cell LiPo pack can develop cell imbalance—individual cells at slightly different voltages. Balance charging uses the balance connector (the multi-pin white connector with one wire per cell) to charge each cell individually to exactly 4.2V. Charging without balancing gradually worsens cell imbalance until the weakest cell is over-discharged during use while the pack voltage is still “safe.”

Store at storage voltage (3.8–3.85V per cell). Storing a LiPo fully charged or fully discharged both accelerate capacity loss and aging. If the robot won’t be used for more than a week, use the charger’s storage mode to bring cells to the storage voltage. Most quality balance chargers have a dedicated storage function.

Never charge unattended. LiPo fires typically develop over minutes, not seconds. A person present can respond to early warning signs (heat, swelling, off-gassing) and prevent catastrophe.

Charge and store in a LiPo-safe bag or metal container. These fireproof bags contain any fire or explosion within the bag, preventing damage to the surrounding area.

Inspect before charging. Swollen (puffed) LiPo cells have experienced internal gas generation from decomposition reactions. A noticeably swollen pack should not be used or charged—it should be safely discharged to 0V (using a dedicated LiPo killer device) and properly disposed of. Do not puncture a swollen LiPo; the internal gases are flammable.

C++
LiPo voltage monitoring in Arduino:
// Simple LiPo voltage alarm using voltage divider

const int BATT_PIN = A0;
const float R1 = 10000.0;  // Voltage divider top resistor
const float R2 = 4700.0;   // Voltage divider bottom resistor
const int CELL_COUNT = 3;  // 3S LiPo
const float MIN_CELL_V = 3.5;  // Conservative minimum per cell
const float MIN_TOTAL_V = MIN_CELL_V * CELL_COUNT;  // 10.5V

float readBatteryVoltage() {
  int raw = analogRead(BATT_PIN);
  float measuredV = (raw / 1023.0) * 5.0;
  return measuredV * (R1 + R2) / R2;  // Scale back to battery voltage
}

void checkBattery() {
  float voltage = readBatteryVoltage();
  float perCell = voltage / CELL_COUNT;
  
  Serial.print("Battery: "); Serial.print(voltage, 2); Serial.print("V (");
  Serial.print(perCell, 2); Serial.println("V/cell)");
  
  if (voltage < MIN_TOTAL_V) {
    Serial.println("WARNING: Battery low! Land/stop immediately!");
    // Trigger alarm, slow down motors, or initiate safe shutdown
    activateLowBatteryAlarm();
  }
}

void loop() {
  checkBattery();
  delay(5000);  // Check every 5 seconds
}

LiPo Advantages in Robotics

  • Highest energy density of common robotics batteries (100–265 Wh/kg)
  • Highest available C-ratings (20–100C+)
  • Wide voltage range through cell count selection (3.7V to 22.2V+ in common configurations)
  • Lightweight and flat form factor fits any chassis shape
  • Widely available and standardized connectors (XT30, XT60, balance connectors)
  • Low internal resistance maintains voltage under heavy load

LiPo Disadvantages

  • Requires careful handling and LiPo-specific charger
  • Cannot be over-discharged or overcharged without permanent damage or fire risk
  • Degrades in storage if not maintained at storage voltage
  • Performance degrades significantly in cold (below 0°C)
  • More expensive than NiMH per unit capacity
  • Regulations limit LiPo transport on commercial aircraft

Li-Ion Cylindrical Cells: The Professional Standard

While LiPo dominates hobby and competition robotics, Lithium-Ion cylindrical cells—the type used in laptop batteries, power tools, and the Tesla Model S battery pack—are the standard in professional and commercial robot systems.

The 18650 and 21700 Cell Standards

The most common cylindrical Li-ion cells are named by their dimensions:

  • 18650: 18mm diameter, 65.0mm length — the standard laptop/flashlight cell
  • 21700: 21mm diameter, 70.0mm length — larger, higher capacity, increasingly common in power tools and EVs

Both formats use similar lithium-ion chemistry with nominal voltage of 3.6–3.7V per cell, full charge to 4.2V, and cutoff at 3.0V.

Key differences from LiPo:

  • Form factor: Rigid cylindrical metal can vs. LiPo’s soft pouch. More robust physically but doesn’t conform to chassis shapes.
  • Safety: The metal case provides better containment of failure modes. Higher tolerance for physical abuse than LiPo.
  • Energy density: Competitive with LiPo (200–300 Wh/kg for premium cells like Samsung 40T, LG M50T)
  • Cycle life: Superior to LiPo—premium 21700 cells are rated for 500–1000 cycles at 80% capacity retention vs. 150–300 cycles for most LiPo packs.
  • Internal resistance: High-drain cells (rated for 20A+ continuous) have very low internal resistance comparable to LiPo. Standard cells are lower drain.

Why professionals use them:

  • Greater reliability and longer life in continuous operation robots
  • Better defined failure modes (venting rather than thermal runaway fire)
  • Cell-level quality data available from established manufacturers (Panasonic, Samsung SDI, LG Chem)
  • Custom battery management systems (BMS) can be designed around them
  • Long-term supply chain reliability for production systems

For one-off hobby robots, the extra complexity of building cylindrical cell packs with spot-welded nickel strips and custom BMS boards typically isn’t justified. For production robots, mobile platforms running 8 hours daily, or any system where cycle life and reliability are critical, cylindrical Li-ion cells are the superior choice.

LiFePO4 (Lithium Iron Phosphate): The Safe Lithium

Lithium Iron Phosphate batteries occupy an interesting niche: they offer lithium-class energy density with significantly better safety than LiPo, at the cost of lower voltage and somewhat lower energy density.

Key Characteristics

Nominal cell voltage: 3.2V (lower than LiPo’s 3.7V) Full charge: 3.65V per cell Minimum voltage: 2.5V per cell

LiFePO4 cells are thermally and chemically stable in ways LiPo cells are not. The iron phosphate cathode material does not release oxygen during thermal breakdown, eliminating the main driver of LiPo thermal runaway. LiFePO4 cells can be punctured, short-circuited, or overcharged without catching fire—they may vent gas, but they don’t burn.

Energy density: Lower than LiPo (90–120 Wh/kg vs. 100–265 Wh/kg for LiPo), but competitive with NiMH.

Cycle life: Exceptional—2000–5000 charge cycles before significant capacity loss, compared to 300–500 for LiPo. This makes LiFePO4 the best choice for robots that cycle batteries daily for years.

Applications in robotics: Robots that operate in safety-critical environments (near people, in confined spaces), outdoor commercial robots that experience wide temperature ranges, agricultural robots, security patrol robots, and any platform where the fire risk of LiPo is unacceptable.

The tradeoff: for a given robot system voltage, more LiFePO4 cells are needed than LiPo cells (3.2V vs. 3.7V per cell), which slightly increases pack size and weight.

Lead-Acid Batteries: Heavy but Dependable

Lead-acid batteries are the oldest rechargeable chemistry and still appear in larger, stationary, or slow-moving robots where weight is less critical than cost, availability, and simplicity.

Key Characteristics

Nominal cell voltage: 2V (6 cells = 12V, the standard lead-acid voltage) Energy density: 30–50 Wh/kg — dramatically lower than any lithium chemistry Cycle life: 200–500 cycles — lower than modern alternatives Cost: Very low — lowest cost per Wh of any common rechargeable chemistry

Sealed Lead-Acid (SLA) and Valve-Regulated Lead-Acid (VRLA) batteries are safe, robust, and widely available. They don’t require special chargers and are tolerant of abuse within limits.

Where lead-acid still makes sense in robotics:

  • Very large, stationary or slow-moving robots where weight doesn’t matter
  • Budget-constrained educational platforms where the lowest possible cost dominates
  • Backup power systems and uninterruptible power supplies integrated with robots
  • Outdoor solar-powered robots (lead-acid pairs well with solar charging applications)

For any mobile robot where weight affects performance—which is most robots—lead-acid batteries are now obsolete in favor of lithium chemistries.

Alkaline and Primary Batteries: One-Time Use

Standard alkaline AA, AAA, C, and D cells are primary (non-rechargeable) batteries used in many simple educational and prototype robots.

When they make sense:

  • Very light-duty robots with minimal current requirements
  • Educational robots for classroom use where charging infrastructure is unavailable
  • Emergency backup power
  • Robots used infrequently where self-discharge of NiMH or LiPo storage would be a problem

When they don’t:

  • Any robot drawing significant current (alkaline batteries have high internal resistance under load, causing rapid voltage sag)
  • Any robot used more than a few hours total (cost of frequent replacement exceeds rechargeable battery cost quickly)
  • Competition robots (voltage drops unpredictably during discharge)

Comprehensive Battery Type Comparison Table

PropertyNiMHLiPoLi-Ion (18650/21700)LiFePO4Lead-Acid
Nominal cell voltage1.2V3.7V3.6V3.2V2.0V
Energy density (Wh/kg)60–120100–265150–30090–12030–50
Typical C-rating5–20C20–100C5–30C5–10C1–5C
Cycle life500–1000150–500300–10002000–5000200–500
SafetyVery goodRequires careGoodExcellentGood
Cold temperatureGoodPoorModerateModeratePoor
Charger complexitySimpleBalance charger requiredBMS recommendedBMS recommendedSimple
Self-dischargeModerate (LSD: low)LowLowVery lowModerate
Relative costLowModerateModerate–HighModerateVery low
Best forEducation, safety-criticalCompetition, high performanceProfessional/commercialSafety-critical mobileLarge stationary robots
Biggest weaknessLower energy densityFire risk if mishandledRigid form factorLower voltage per cellHeavy

Selecting a Battery for Your Robot: A Decision Framework

With all battery chemistries understood, here’s a systematic process for selecting the right battery for a specific robot.

Step 1: Determine Required Voltage

Your robot’s electronics and motor drivers have a required operating voltage range. Identify the common voltage used by most of your systems—typically 5V for logic and 6–12V for motors. Select a battery that, after any voltage regulation, provides sufficient voltage.

For a robot using 12V motor drivers and a 5V logic system (regulated from the battery):

  • Battery voltage range: 9–14V while keeping regulators in spec
  • LiPo: 3S (11.1V nominal, 9.0V–12.6V range) — good match
  • NiMH: 8 cells (9.6V nominal, 8.0V–11.5V range) — lower end, may work
  • LiPo: 2S (7.4V nominal, 6.0V–8.4V range) — too low for 12V motors

Step 2: Calculate Required Capacity

Estimate the robot’s average current draw from each subsystem, then calculate the required capacity for the desired runtime:

Plaintext
Required capacity (Ah) = Average current (A) × Desired runtime (hours) × Safety factor (1.25 typical)

Example robot power budget:
Two drive motors (running): 2 × 0.8A = 1.6A
Motor drivers (quiescent):  0.1A
Arduino Mega:               0.1A
Raspberry Pi 4:             0.7A
Camera, sensors:            0.3A
Total average:              2.8A

Desired runtime: 1 hour
Required capacity = 2.8A × 1h × 1.25 = 3.5Ah = 3500 mAh
Select: 4000–5000 mAh battery to have comfortable margin

Step 3: Verify C-Rating for Peak Current

The robot’s peak current draw—typically when both motors are under maximum load simultaneously—must be within the battery’s C-rating.

Plaintext
Peak current estimate:
Two drive motors (stall): 2 × 4A = 8A
All other electronics:  1.5A
Peak total: 9.5A

Required C-rating = Peak current / Battery capacity
                  = 9.5A / 4.5Ah = 2.1C

Even a 5C battery easily handles this. For safety margin, select 10C+.

Step 4: Check Weight and Dimensions

Calculate the battery’s contribution to total robot weight as a percentage. If the battery would be more than 30–40% of total robot weight, consider higher energy density options (LiPo vs. NiMH) to reduce battery weight for the same capacity.

Check that the physical dimensions fit the planned battery bay.

Step 5: Match Safety Requirements to Environment

Is the robot used near people, by children, or in environments where a LiPo fire would be catastrophic? Choose NiMH or LiFePO4. Is maximum performance and minimum weight the top priority in a controlled environment with experienced operators? LiPo is appropriate.

Step 6: Consider Charging Infrastructure

Do you have a LiPo balance charger? Can you commit to the storage voltage and monitoring requirements? If not, starting with NiMH or Li-ion with an integrated BMS is more appropriate than attempting LiPo without proper charger and safety practices.

Charging Infrastructure and Best Practices

The charger is as important as the battery itself. Using the wrong charger damages batteries and creates hazards.

Charger Selection

For NiMH: A dedicated NiMH charger with delta-peak detection (detects the slight voltage drop that signals full charge) or a smart charger with NiMH mode. Never use a cheap “trickle charger”—these overcharge cells and cause premature failure.

For LiPo: A balance charger is mandatory. The charger must match the cell count (S rating) and support balance charging through the balance connector. Good beginner-friendly options: ISDT Q6, Junsi iCharger series, HTRC chargers. Set charge rate to 1C (never exceed 2C without specific pack approval for fast charging).

For Li-ion cylindrical cells: Cells built into packs with an integrated BMS can be charged via the BMS with a CC/CV (constant current/constant voltage) charger at the correct pack voltage. Individual cells require a dedicated Li-ion charger.

For LiFePO4: A LiFePO4-specific charger or a multi-chemistry charger set to LiFePO4 mode. The charge voltage is 3.65V per cell—using a LiPo charger (4.2V/cell) will overcharge and damage LiFePO4 cells.

Storage and Disposal

LiPo storage: Bring to 3.8–3.85V per cell (storage voltage) before storing. Check voltage monthly during long storage periods.

Dispose of damaged batteries properly: Don’t place LiPo or Li-ion batteries in regular trash. Take to a battery recycling location (many electronics retailers accept them). Fully discharge to 0V before disposal (using a LiPo discharger device or resistive load) to reduce energy content.

Safe disposal of swollen LiPo: Submerge in a bucket of salt water for 2–3 weeks to fully discharge and neutralize the chemistry, then dispose of as normal battery waste (check local regulations).

Summary

Battery selection in robotics requires matching several independent parameters—voltage, capacity, C-rating, weight, cycle life, safety, and charging infrastructure—to the specific demands of your robot and operating environment.

NiMH batteries offer the best safety and simplicity profile, making them the right choice for beginner robots, educational platforms, and any application where LiPo’s hazards are unacceptable. LiPo batteries provide unmatched energy density and discharge current, making them the standard for competition, high-performance, and weight-critical applications—but require careful handling, a proper balance charger, and disciplined storage and monitoring practices. Cylindrical Li-ion cells are the professional standard for commercial robots requiring long cycle life and reliability. LiFePO4 offers lithium-level energy density with excellent safety for service robots and safety-critical applications. Lead-acid remains relevant only for large, stationary, or very budget-constrained systems.

The practical takeaway: for a beginner’s first robot, NiMH is the safest and most forgiving choice. For a competition robot or performance-focused project where you’re committed to learning proper LiPo practices, LiPo is worth the additional care. For a commercial product that must operate reliably for years, Li-ion cylindrical cells with a proper BMS are the professional standard.

Whatever chemistry you choose, monitor voltage during operation, charge with the right charger, store properly, and replace batteries before they degrade to the point of affecting robot performance. Batteries are consumables—they have finite lives—and treating them accordingly keeps your robot performing and your workspace safe.

The next article builds directly on this battery knowledge by walking through the process of calculating your robot’s total power requirements—the systematic approach to estimating current draw from each subsystem and sizing the battery and wiring for reliable, safe operation.

Real-World Battery Performance: What the Specs Don’t Tell You

Battery datasheets give you nominal values measured under controlled laboratory conditions. Real-world robotics use differs from laboratory conditions in ways that significantly affect actual performance. Understanding these gaps helps you make better selections and set realistic expectations.

Voltage Sag Under Load

The most common real-world surprise is voltage sag—the instantaneous voltage drop when a high current is suddenly drawn, such as when drive motors start accelerating. Even a healthy battery with adequate capacity can sag significantly under surge loads.

Voltage sag is caused by internal resistance (Ri) and follows Ohm’s law:

Plaintext
Voltage sag = Current drawn × Internal resistance
Vactual = Vnominal - (I × Ri)

Example:
Battery: 3S LiPo, 11.1V nominal, Ri = 0.025 Ω per cell (total pack Ri = 0.075 Ω)
Current surge: 30A (both drive motors starting simultaneously)

Voltage sag = 30A × 0.075 Ω = 2.25V
Actual voltage during surge = 11.1V - 2.25V = 8.85V

If the motor driver has a minimum operating voltage of 9V,
this 2.25V sag will cause a brownout reset—even though the battery
appears fully charged at no-load.

This is why adding a large capacitor across the power bus (470–2200 µF, 25V rating) near the motor driver is good practice: it acts as a local charge reservoir that supplies the instantaneous current surge, preventing the sag from reaching the rest of the electronics.

Temperature Effects on Capacity

All battery chemistries deliver reduced capacity at low temperatures because the electrochemical reactions inside cells proceed more slowly in the cold. LiPo batteries are particularly affected:

Plaintext
LiPo capacity at temperature (approximate):
25°C:   100% rated capacity
10°C:   85-90% rated capacity
0°C:    70-80% rated capacity
-10°C:  50-60% rated capacity
-20°C:  30-40% rated capacity

NiMH at temperature:
25°C:   100%
0°C:    80-85%
-10°C:  65-75%

For outdoor robots in cold climates, battery capacity must be derated significantly. A robot expected to operate in sub-zero temperatures should use NiMH (better cold performance) or a LiPo battery at oversized capacity to compensate for the cold-weather derating.

The practical fix for LiPo in cold weather: keep the battery warm before use (inside a jacket pocket, heated storage bag, or insulated battery compartment). A LiPo that starts warm maintains reasonable performance even as ambient temperature drops.

The Effect of Discharge Rate on Usable Capacity

A battery discharged slowly delivers more usable energy than the same battery discharged quickly. This is because at high current, the internal resistance losses consume a greater proportion of total energy as heat, and the terminal voltage drops sooner, reaching the cutoff voltage before all stored energy is extracted.

Plaintext
Approximate capacity vs. discharge rate for LiPo:
0.5C discharge:  105% rated capacity (slightly more than nominal)
1C discharge:    100% rated capacity
2C discharge:    95% rated capacity
5C discharge:    88% rated capacity
10C discharge:   80% rated capacity
20C discharge:   70% rated capacity

A 3000 mAh LiPo discharged at 20C (60A):
Usable capacity ≈ 3000 × 0.70 = 2100 mAh
Runtime at 60A = 2100 mAh / 60,000 mA × 60 min = 2.1 minutes

This explains why high-performance competition robots (FPV drones, sumo robots, racing robots) run for only a few minutes on batteries that would power a slower robot for an hour. The high discharge rate dramatically reduces usable capacity.

For robots with highly variable loads—drive motors at rest much of the time but occasionally at full power—the average discharge rate governs capacity. Calculate average current (not peak current) for runtime estimation, and ensure the peak current is within the C-rating for safety.

Battery Aging: Planning for Degradation

All rechargeable batteries degrade with each charge cycle, losing capacity over time. Understanding degradation helps you plan battery replacement schedules and budget for operating costs.

Plaintext
Approximate cycle life to 80% capacity retention:
Quality LiPo (properly used):    300–500 cycles
Budget LiPo:                     100–200 cycles
Samsung/LG Li-ion 21700:         500–1000 cycles
NiMH (quality, Eneloop-class):   1000–2000 cycles
LiFePO4:                         2000–5000 cycles
Lead-acid (SLA):                 200–400 cycles

For a robot used in daily operation: a LiPo battery cycled once daily reaches 80% capacity in 300–500 days (~1–1.5 years). Planning for annual battery replacement in high-use robots is realistic. For intermittent hobby use (once per week), the same battery lasts 6–10 years—calendar aging (chemical degradation from just existing, regardless of cycling) limits life to about 3–5 years for LiPo stored well.

Signs a battery needs replacement:

  • Noticeably shorter runtime than when new
  • Swelling or puffing visible on LiPo pouch
  • High voltage sag under load (indicates increased internal resistance)
  • Individual cell voltages diverging significantly during discharge
  • Battery gets unusually warm during normal-rate discharge

Parallel Battery Configuration for Extended Runtime

When a single battery can’t provide adequate runtime without becoming too heavy or large, multiple batteries can be connected in parallel. Parallel connection adds capacity (mAh) while keeping voltage the same:

Plaintext
Two 3S 3000mAh packs in parallel:
Combined voltage: 11.1V (same as each pack)
Combined capacity: 6000mAh (double each pack)
Combined C-rating for current: both packs share the load
                               (each contributes half the total current)

IMPORTANT: When connecting LiPo packs in parallel,
both packs MUST be at the same voltage (within 0.05V) before connecting.
Connecting packs at different charge states causes high current to flow
between them, potentially damaging cells.

Always fully charge both packs to the same level before parallel operation.

Parallel connection also effectively doubles the continuous current capability, since each pack supplies half the total current. A 20C 3000mAh pack with a partner in parallel becomes a 20C 6000mAh combined pack—with maximum current of 120A (each pack contributing 60A).

Building a Battery Monitoring System for Any Robot

Regardless of battery chemistry, monitoring battery state during operation protects the battery, extends its life, and prevents unexpected power loss during critical robot operations. Here is a practical, reusable battery monitor for any robot:

C++
// Universal battery monitor with low-voltage alarm
// Works with any battery chemistry by adjusting the parameters below

// ============================================================
// CONFIGURATION — adjust for your battery
// ============================================================
const int   CELL_COUNT    = 3;       // Number of cells in series
const float CELL_NOMINAL  = 3.7;     // Nominal voltage per cell (LiPo: 3.7, NiMH: 1.2)
const float CELL_FULL     = 4.2;     // Full charge voltage per cell
const float CELL_WARN     = 3.6;     // Warning threshold per cell
const float CELL_CUTOFF   = 3.4;     // Critical threshold per cell (stop operations)

// Hardware divider (voltage divider to bring battery voltage to ADC range)
const float R_TOP    = 10000.0;      // Top resistor (ohms)
const float R_BOTTOM =  4700.0;      // Bottom resistor (ohms)
const float ADC_REF  = 5.0;          // ADC reference voltage

// Pin assignments
const int BATT_PIN    = A0;
const int ALARM_PIN   = 8;           // Buzzer or LED for alarm
// ============================================================

float readBatteryVoltage() {
  // Average 16 readings for stability
  long sum = 0;
  for (int i = 0; i < 16; i++) {
    sum += analogRead(BATT_PIN);
    delay(1);
  }
  float avgRaw = sum / 16.0;
  float adcVoltage = (avgRaw / 1023.0) * ADC_REF;
  // Scale back through voltage divider
  return adcVoltage * (R_TOP + R_BOTTOM) / R_BOTTOM;
}

float calculateStateOfCharge(float voltage) {
  // Very approximate SoC estimation
  float cellVoltage = voltage / CELL_COUNT;
  float soc = (cellVoltage - CELL_CUTOFF) / (CELL_FULL - CELL_CUTOFF) * 100.0;
  return constrain(soc, 0.0, 100.0);
}

void printBatteryStatus(float voltage) {
  float cellV = voltage / CELL_COUNT;
  float soc   = calculateStateOfCharge(voltage);

  Serial.print("Battery: "); Serial.print(voltage, 2); Serial.print("V | ");
  Serial.print("Per cell: "); Serial.print(cellV, 3); Serial.print("V | ");
  Serial.print("SoC ~"); Serial.print(soc, 0); Serial.print("% | ");

  if      (cellV >= CELL_WARN)   Serial.println("OK");
  else if (cellV >= CELL_CUTOFF) Serial.println("LOW — consider stopping");
  else                           Serial.println("CRITICAL — stop now!");
}

bool isBatteryCritical(float voltage) {
  return (voltage / CELL_COUNT) < CELL_CUTOFF;
}

bool isBatteryLow(float voltage) {
  return (voltage / CELL_COUNT) < CELL_WARN;
}

void setup() {
  Serial.begin(9600);
  pinMode(ALARM_PIN, OUTPUT);
  Serial.println("Battery monitor started.");
}

unsigned long lastCheck = 0;

void loop() {
  if (millis() - lastCheck >= 5000) {   // Check every 5 seconds
    float voltage = readBatteryVoltage();
    printBatteryStatus(voltage);

    if (isBatteryCritical(voltage)) {
      // Pulse alarm rapidly
      for (int i = 0; i < 5; i++) {
        digitalWrite(ALARM_PIN, HIGH); delay(100);
        digitalWrite(ALARM_PIN, LOW);  delay(100);
      }
      // In a real robot: trigger safe shutdown or stop motors here
    } else if (isBatteryLow(voltage)) {
      // Single beep warning
      digitalWrite(ALARM_PIN, HIGH); delay(500);
      digitalWrite(ALARM_PIN, LOW);
    }

    lastCheck = millis();
  }
}

This monitor correctly handles any number of series cells and any chemistry by changing the configuration constants. The state-of-charge calculation is approximate (a linear interpolation between cutoff and full charge voltage); more accurate SoC estimation requires coulomb counting—tracking the integral of current over time—but the voltage-based estimate is sufficient for most robotics applications.

Share:
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments

Discover More

Basic Robot Kinematics: Understanding Motion in Robotics

Learn how robot kinematics, trajectory planning and dynamics work together to optimize motion in robotics…

SoftBank Doubles Down on AI Infrastructure with a Potential DigitalBridge Deal

SoftBank’s reported DigitalBridge deal highlights the race to secure data centers, fiber, and edge capacity…

The Five Fundamental Systems Every Robot Needs

Learn the five essential systems that every robot requires to function. Understand sensing, control, actuation,…

Polynomial Regression: When Linear Isn't Enough

Polynomial Regression: When Linear Isn’t Enough

Learn polynomial regression — how to model curved relationships by adding polynomial features. Includes degree…

Inline Functions: When and Why to Use Them

Learn C++ inline functions with this complete guide. Understand inline keyword, performance benefits, when to…

Sensors in Robotics: Types and Applications

Discover the types of sensors in robotics, their advanced applications and how they are transforming…

Click For More
0
Would love your thoughts, please comment.x
()
x