BMS Error Codes and Battery Protection States Glossary

Updated 6 September 2026 · By SolarNevs Research Desk, Dealer surveys + verified sources · 5 sources · Method ↗

Lithium battery module status LEDs and hybrid inverter display mounted in a solar power utility room. — SolarNevs spec card

Key Takeaways

  • A BMS alarm is an informational warning (flashing red ALM LED) where power transfer continues, whereas a protection state (solid red ALM LED, all other LEDs off) isolates internal MOSFETs to halt charge or discharge.
  • Low-temperature charging cutoffs below 0°C (within the standard 0–55°C charging window) are essential protective mechanisms that prevent permanent metallic lithium plating.
  • Typical LiFePO4 cell over-voltage protection (OVP) trips at ~3.60–3.65 V per cell (~57.6–58.4 V for a 16-cell pack — typical values; your BMS's datasheet governs — valid within the 0–55°C charge window), while under-voltage protection (UVP) features an absolute floor of 2.50 V (with 2.8–3.0 V common setpoints).
  • Inverter error codes such as Deye F58 (double-sourced) or Growatt Warning 20 and Solis CAN_Comm-Fail (single-source third-party reported) signal digital communication loss over CAN or RS485, rather than internal battery hardware failure.

Quick Answer: How to identify and interpret BMS protection states

A Battery Management System (BMS) manages 48 V-class LiFePO4 rack modules (typically 51.2 V nominal with 16×3.2 V cells, or 15-cell/48 V configurations such as Pylontech US series) by monitoring cell voltages, pack currents, and temperatures. When operating boundaries are breached, the BMS executes an automated safety shutdown.

Following standard LiFePO4 rack conventions (documented in Pylontech US-series manuals), a flashing red ALM LED indicates an operational alarm where the battery continues working, while a solid red ALM LED (with all other LEDs off) indicates a full protection lockout where the BMS has turned its charge MOS or discharge MOS off.

To restore operation, identify the underlying trigger—such as a cell exceeding ~3.60–3.65 V OVP, temperature falling below 0°C or exceeding 55°C, or an overcurrent event—allow internal conditions to clear, and perform a full power-cycle of the battery pack.

Master Glossary: BMS Protection States and Error Codes

The table below compiles typical BMS protection thresholds and reported inverter alarm displays across major solar systems:

Protection State / Error String

Typical Trigger Setpoint

Inverter-Side Alarm / Fault Code

Recovery Threshold / Behavior

Primary Cause / Mitigation

Cell Over-Voltage Protection (OVP)

~3.60–3.65 V per cell (~57.6–58.4 V on 16-cell pack — typical values; your BMS's datasheet governs)

Deye F60 (over/under-volt under BMS protection)

Charge MOS off; clears once cell voltages settle below threshold

Cell imbalance or high absorption voltage; lower charge ceiling and allow pack to balance (valid within the 0–55°C charge window)

Cell Under-Voltage Protection (UVP)

2.50 V absolute floor (2.8–3.0 V common setpoint)

Deye F60 (over/under-volt under BMS protection)

Discharge MOS off; restores when charging current is detected

Deep discharge or extended outage; initiate controlled DC recharge

Charge Over-Temperature Protection (OTP-C)

Exceeding 55°C ceiling (charge window 0–55°C)

BMS alarm strings: "temperature protection" / "charge disabled"

Charge MOS off; restores when pack cools into 0–55°C window

High ambient summer heat or inadequate room ventilation (50°C+ casing touch threshold requires immediate disconnection)

Charge Under-Temperature Protection (UTP-C)

<0°C (charging below 0°C prohibited)

BMS alarm strings: "low temperature", "cell temperature low", "charge disabled"

Charge MOS off; automatically restores when temperature rises above 0°C

Winter freezing in northern regions; protective cutoff prevents irreversible metallic lithium plating

Discharge Over-Temperature Protection (OTP-D)

Exceeding 55°C/60°C ceiling (discharge window −10°C to 55°C/60°C)

BMS alarm string: "temperature protection"

Discharge MOS off; restores once pack cools into operating window

Sustained heavy discharge loads during peak ambient temperatures

Discharge Under-Temperature Protection (UTP-D)

Below −10°C floor (discharge window −10°C to 55°C/60°C)

BMS alarm string: "low temperature"

Discharge MOS off; restores when temperature rises above −10°C

Extreme winter cold; prevents cell voltage collapse under discharge load

Charge Over-Current Protection (OCCP)

Exceeds module charge current limit (per-model datasheet governs)

BMS alarm string: "charge MOS off" / OCP alarm

Charge MOS off; auto-recovery or requires pack power-cycle

Inverter charge current programmed above manufacturer specification

Discharge Over-Current Protection (DOCP)

Exceeds module discharge current rating (per-model datasheet governs)

Deye F61 (overcurrent under BMS protection)

Discharge MOS off; clears after load reduction and power-cycle

Inverter surge load exceeds continuous module rating

Short Circuit Protection (SCP)

Instantaneous short-circuit current (hardware protection trip)

BMS SCP trip / Inverter DC breaker trip

Immediate contactor/MOSFET open; manual power-cycle required after clearing fault

Direct short across DC cables or busbars; inspect cable insulation and polarity

BMS Communication Loss

CAN / RS485 digital packet timeout

Deye F58 (BMS comms) / Growatt Warning 20 / Solis CAN_Comm-Fail / GoodWe BMS fail / Inverex BMS lost

Inverter enters standby or open-loop mode; restores on valid packet reception

Damaged RJ45 cable, mismatched CAN/RS485 pinouts (Pins 4/5 for CAN), or wrong DIP address

BMS Stopped Operation

Generic internal BMS trip

Deye F62 (BMS stopped charge/discharge)

Inverter halts energy transfer; clears once battery BMS resolves internal trip condition

Master BMS commanded inverter to halt energy transfer due to active protection state

Deye F58 is double-sourced; Deye F60, F61, F62 and the Growatt, Solis, GoodWe, and Inverex code names are single-source third-party reported — confirm against your inverter manual.

Step-by-Step Diagnostic and Resolution Protocols

1. Distinguishing Alarms from Protection Lockouts

Understanding front-panel LED behavior prevents misdiagnosing normal operation:

  • Green RUN LED: Flashes during idle standby (~every 3.5s) or active discharge (~every 1.5s with SOC LEDs solid); glows solid green during active charging.
  • Red ALM LED (Flashing): Signals a recoverable alarm (such as high ambient temperature or minor parameter drift). The battery continues to supply energy to connected loads.
  • Red ALM LED (Solid): Indicates an active protection lockout. The BMS has turned its charge MOS or discharge MOS off, isolating power paths. Under protection, all other LEDs turn off, and a power-cycle after clearing the cause is the documented recovery.

2. Cell Over-Voltage (OVP) and Imbalance Recovery

When a lithium pack charges toward full capacity, the cell with the highest internal resistance reaches ~3.60–3.65 V first, triggering OVP even if overall pack voltage appears normal:

  • Protection Action: The BMS turns the Charge MOS OFF, terminating charge current while still allowing discharge.
  • Imbalance Resolution: Allow the high cell to rest and settle below the OVP threshold before resuming charge. Lower the inverter charge voltage ceiling (e.g. from 58.4 V down to 57.6 V on 16-cell packs — typical values; your BMS's datasheet governs) to prevent recurrent over-voltage trips during solar peaks.

3. Temperature Protection Boundaries

LiFePO4 chemistry requires strict thermal management across the operating window:

  • Low-Temperature Lockout (<0°C): Forcing charge current into cold cells below 0°C causes metallic lithium plating, resulting in permanent cell damage. The BMS disables charging until cell temperatures rise above 0°C.
  • High-Temperature Lockout (>55°C): Ambient heat combined with internal resistance degrades cell chemistry. If a battery feels hot (50°C+ to the touch, a community-reported threshold from PakWheels), take it off charge immediately and improve room ventilation.

4. Communication Fault Remediation (Deye F58 / Growatt Warning 20)

When inverters lose digital communication packets over CAN or RS485:

  • Port & Transceiver Verification: CAN and RS485 are not interchangeable; CAN to RS485 will not work. Verify that the communication cable is seated in the battery CAN port.
  • Pinout Alignment: Standard Pylontech CAN pinouts use Pin 4 (CANH) and Pin 5 (CANL) with Pin 2 GND (Pins 1, 3, 6–8 unused). Deye CAN utilizes Pins 4/5 (straight-through Ethernet cable), while Solis uses Pin 4 (CAN-H) and Pin 5 (CAN-L).
  • Cable Discipline: Use manufacturer-supplied cables rather than standard LAN patch leads. Ensure no bent pins or wrong Link-In/Link-Out connections.
  • Addressing Configuration: In multi-module banks, Battery 1 must be set as master (address 0/1) via DIP switch, display, or software; incorrect addressing causes total communication failure.

5. Multi-Module Parallel String Protection Coordination

In multi-module parallel strings (stackable up to ~16 modules per string on 48 V LiFePO4 rack systems):

  • Individual Module Isolation: If a single slave module experiences high temperature or cell imbalance, its internal BMS turns its charge or discharge MOS off, isolating only that specific unit while remaining modules continue operating.
  • System-Wide Command: If the master module encounters an unrecoverable fault or communication failure, it commands the connected hybrid inverter via CAN bus to halt charge and discharge transfer (manifesting as Deye error F62, single-source third-party reported).

For communication cable wiring and pinouts, consult our master guide on lithium communication wiring: CAN vs RS485 pinouts. If battery capacity percentage jumps erratically, see battery SOC stuck or jumping fixes. If your inverter refuses to draw from a charged battery, review battery not discharging troubleshooting. Understand core protection circuits in BMS functions and battery protection.

Safety: BMS Protection and High-Voltage Protocols

Observe these mandatory safety rules when troubleshooting lithium protection trips:

  • Never Bypass Protection Lockouts: Never attempt to bypass an open BMS contactor or MOSFET by applying raw external charging current to battery terminals. Bypassing BMS protections on a locked-out pack creates severe fire hazards.
  • Capacitor Discharge Time: Wait at least 5 minutes after switching off inverter DC breakers before disconnecting battery cables to allow lethal high-voltage DC bus capacitors to discharge safely.
  • Swollen Battery Procedure: If a battery case exhibits swelling or physical deformation, stop charging, isolate the pack, and replace it immediately. Never puncture or attempt to burp a swollen lithium module.
  • Insulated Tooling: Always kill power first, use insulated tools, and disconnect the negative terminal first when working around energized 48 V DC busbars, as a spanner across a bank shorts hundreds of amps.

When to call a technician instead

Contact a certified solar technician or authorized battery distributor under the following conditions:

  • The BMS triggers a permanent hardware protection lockout (solid red ALM light that persists after resolving the root trigger and completing a full DC power-cycle).
  • The battery pack exhibits physical casing swelling, overheating (50°C+ to the touch), burning odors, or smoke.
  • Internal BMS communication fails permanently across all master/slave addressing modes and verified RJ45 cables.

For professional escalation standards, consult our guide on when to call a solar technician.

Figures as of August 2026.

Frequently asked questions

What is the difference between a BMS alarm and a BMS protection lockout?

Following standard LiFePO4 rack conventions (documented on Pylontech US series), an alarm is an early warning (flashing red ALM LED) indicating an operating parameter is nearing its safe limit while the battery continues normal operation. A protection lockout is an emergency safety state (solid red ALM LED with all other LEDs off) where the BMS opens its internal charge or discharge MOSFETs, completely disconnecting power transfer until the condition clears and the pack is power-cycled.

Why does my lithium battery refuse to charge in cold winter conditions?

LiFePO4 chemistry cannot safely accept charge below 0°C without inducing irreversible metallic lithium plating and permanent internal cell damage. The BMS low-temperature charging cutoff (<0°C within the standard 0–55°C charge operating window) is protective behavior that turns the charge MOS off until cell temperatures rise back into the safe charging zone.

What do inverter fault codes Deye F58, Growatt Warning 20, or Solis CAN_Comm-Fail mean?

These codes indicate a loss of digital communication between the inverter and the battery BMS over CAN or RS485 bus lines (Deye F58 is double-sourced; Growatt Warning 20 and Solis CAN_Comm-Fail are single-source third-party reported). The inverter cannot read cell state, SOC, or voltage ceilings, typically forcing it into safe standby or open-loop mode.

How do I clear a BMS cell over-voltage protection (OVP) state?

Typical 16-cell LiFePO4 BMS thresholds trip OVP at ~3.60–3.65 V per cell (~57.6–58.4 V pack level on 16-cell packs — typical values; your BMS's datasheet governs — valid within the 0–55°C charge window). When OVP trips, the BMS turns the charge MOS off. Operation clears once cell voltage drops back below threshold through natural resting or small discharge loads, followed by a system power-cycle.

Can I bypass an active BMS protection lockout to force a battery to charge?

Never attempt to bypass an active BMS protection lockout. BMS protection states—such as low-temperature cutoff (<0°C), cell over-voltage (~3.60–3.65 V), or cell under-voltage (2.50 V absolute floor)—isolate current paths for cause to prevent lithium plating, cell destruction, or fire hazards. The root cause must be resolved before power-cycling the pack.

References

Related guides

More from inverter errors & fixes.