The content in this document must be followed in order to ensure safe operation of Nuvation Energy BMS.

Do NOT connect the Current Shunt / +V Power connector to the Low-Voltage BMS until all other connections have been made. Do NOT energize the system until all connections to the Low-Voltage BMS (and G4 Cell Interface modules if applicable) have been made.
The wiring of the battery cell voltage and temperature sensing should be verified before connecting to the Low-Voltage BMS and G4 Cell Interface. The temperature sensing wires must be isolated from the cell voltage sensing leads. Although the Low-Voltage BMS and G4 Cell Interface include protective circuitry to make them more resilient to brief wiring errors, the same circuitry can result in the battery cells being slowly discharged. Over time, these wiring errors can cause damage to the Low-Voltage BMS, G4 Cell Interface, and/or the cells.
Properly insulate or remove any unused wires. Unused wires can couple excessive system noise into Nuvation Energy BMS which can disrupt communication and lead to undesirable behaviors.
Insulated handling is required of any connector carrying potentials over 60 V DC relative to chassis.
Please be aware of high voltages present in your system and follow all necessary safety precautions.
Nuvation Energy BMS relies on your system charger to charge the battery cells; do not leave your charger off while Nuvation Energy BMS is powered from the stack for prolonged periods of time. Nuvation Energy BMS should be shut down when the system is in storage to minimize the drain on the cells.
The provided module enclosures are not fire enclosures.

1. Introduction

Thank you for choosing Nuvation Energy.

Nuvation Energy Low-Voltage BMS is an enterprise-grade Battery Management System with features that extend battery life, ensure safety, provide data analytics, and enable remote management.

You can take advantage of the highly configurable browser-based user interface and custom-tune Nuvation Energy BMS to your specific target application.

1.1. About this Manual

This Nuvation Energy Low-Voltage BMS: Product Manual is a comprehensive manual, providing:

  • Details about all the features offered by your Nuvation Energy Low-Voltage BMS

  • Mounting and wiring instructions to install this product safely

  • Guidance on integrating the device into your Energy Storage System

  • Guidance on operating the Nuvation Energy BMS Operator Interface

If there is a requirement for a Nuvation Energy Low-Voltage BMS to complete a safety certification (such as to UL 1973) there are some additional constraints. These constraints are described in detail in the Nuvation Energy G4 BMS: Safety Manual (available upon request).

This document applies to Nuvation Energy BMS Descartes Update 1 software release (Firmware version 4.109.1, Operator Interface version 1.5.0). Content may be inaccurate or incomplete for other versions.

We thrive on your feedback and what we build is driven by your input.
Please submit support tickets to support@nuvationenergy.com.

2. System Overview

The Nuvation Energy Low-Voltage BMS is a complete Battery Management System that provides cell balancing and charge management for virtually any battery chemistry using a Low-Voltage BMS. The Low-Voltage BMS is designed for input voltage of 11–60 V DC. It can manage up to 12 or 16 battery cells in series and can be expanded to manage additional cells with a Nuvation Energy G4 Cell Interface module.

The input voltage range of 11–60 V DC applies with or without a G4 Cell Interface expansion module.

Available modules are listed below.

Table 1. Low-Voltage BMS Modules
Model Module Name

NUV300-BC-12-NC

Low-Voltage BMS - 12 channel, no CAN

NUV300-BC-16-NC

Low-Voltage BMS - 16 channel, no CAN

NUV300-BC-12

Low-Voltage BMS - 12 channel

NUV300-BC-16

Low-Voltage BMS - 16 channel

Expansion Module

NUV100-CI-12-1

G4 Cell Interface - 12 channel

NUV100-CI-16-1

G4 Cell Interface - 16 channel

An example single-stack system with a 12 or 16 channel configuration is shown in Figure 1, “Nuvation Energy Low-Voltage BMS Single-Stack System Overview”. This configuration requires a single Low-Voltage BMS.

overview single stack
Figure 1. Nuvation Energy Low-Voltage BMS Single-Stack System Overview

An example multi-stack system with a 24-channel configuration is shown in Figure 2, “Nuvation Energy Low-Voltage BMS 24-channel, Multi-stack System Overview”. This configuration requires a Low-Voltage BMS and a G4 Cell Interface expansion module.

overview multi stack
Figure 2. Nuvation Energy Low-Voltage BMS 24-channel, Multi-stack System Overview

2.1. Features

Key software features
  • Manage balancing and provide stack management.

  • Calculates State of Charge and Depth of Discharge at both the cell and stack levels.

  • Communicates with external systems via Modbus TCP (Ethernet), Modbus RTU (RS-485), or CAN bus.

  • Provides access to the Nuvation Energy BMS Operator Interface.

  • Supports firmware upgrades via Ethernet.

RS-485

The Low-Voltage BMS provides an isolated RS-485 (Modbus) port. This interface can be used to control an external battery charger/inverter and for communicating with an external system (vehicle central controller, grid-attached controller, etc.)

Control GPIO

The Low-Voltage BMS provides 4 isolated outputs and 4 general-purpose inputs to connect external systems or external equipment. The functionality of the GPIO interface is configurable by the end-user to match their needs. This connector also has 4 other inputs which perform specific functions, such as Factory Reset, Clear Faults, Shutdown, and BMS Enable.

Link Bus

The Link Bus chain enables power and communication between the Low-Voltage BMS and the series-connected chain G4 Cell Interface modules.

Contactors

The Low-Voltage BMS module’s Contactors connector enabled connecting to up to 4 external high-current contactor coils. The connector provides 24 VDC power for energizing contactor coils, and optionally accepts external coil power input for voltage flexibility.

Current Shunt

This interface is used to connect the Low-Voltage BMS to a current shunt for stack charge and discharge current measurement as well as overall stack voltage measurement.

CAN

An isolated CAN 2.0 port is available on the Low-Voltage BMS for communicating with external systems. This option is not available in no-CAN variants (*-NC).

2.2. Low-Voltage BMS

The Low-Voltage BMS contains analog-to-digital measurement circuitry which reads cell voltage, current, and temperature values. It also contains processing capability and software to support decision making and allow it to operate as a stand-alone Nuvation Energy Low-Voltage BMS.

For systems that require UL 1973 compliance, the Low-Voltage BMS supports up to 7 temperature sensors. For systems that do not require UL 1973 compliance, the Low-Voltage BMS can support up to 8 temperature sensors.

The Low-Voltage BMS is available in the following variants:

  1. The NUV300-BC-12-NC which can monitor up to 12 voltage channels (no CAN support)

  2. The NUV300-BC-16-NC which can monitor up to 16 voltage channels (no CAN support)

  3. The NUV300-BC-12 which can monitor up to 12 voltage channels (includes CAN support)

  4. The NUV300-BC-16 which can monitor up to 16 voltage channels (includes CAN support)

module
Figure 3. Nuvation Energy Low-Voltage BMS Module

The external interfaces to this module are:

  • Cell voltage and temperature sense connector

  • Current shunt connector

  • 4 contactor coil driver outputs

  • 4 optically isolated digital inputs

  • 4 optically isolated digital outputs

  • 10/100 Base-T Ethernet port (Modbus-TCP)

  • Isolated CAN 2.0 port (not available in no-CAN variants (*-NC))

  • Isolated RS-485 (Modbus-RTU) port

  • Expansion interface connector for additional Cell Interface modules

  • Fault and communication indicator LEDs

2.3. G4 Cell Interface

The Nuvation Energy G4 Cell Interface is the direct link between the individual battery stack cells and the rest of the Battery Management System. It facilitates battery monitoring and balancing functionalities.

In a Low-Voltage BMS, a larger battery stack can be accommodated with the addition of one or more G4 Cell Interface modules, provided the total stack voltage does not exceed maximum rating of the default configuration. When coupled with a Low-Voltage BMS, the G4 Cell Interface model must match the Low-Voltage BMS model—i.e. A Low-Voltage BMS - 12 channel can only be coupled with a G4 Cell Interface - 12 channel, and a Low-Voltage BMS - 16 channel can only be coupled with a G4 Cell Interface - 16 channel. The firmware does not support a mixed chain of different Cell Interface variants.

For systems that require UL 1973 compliance, the G4 Cell Interface supports up to 7 temperature sensors. For systems that do not require UL 1973 compliance, the G4 Cell Interface can support up to 8 temperature sensors.

The following are variants of the Nuvation Energy G4 Cell Interface:

  • The NUV100-CI-12-1, G4 Cell Interface - 12 channel can monitor up to 12 series-connected cells

  • The NUV100-CI-16-1, G4 Cell Interface - 16 channel can monitor up to 16 series-connected cells

ci module
Figure 4. Nuvation Energy G4 Cell Interface Module

The external interfaces to this module are:

  • Battery cells connector

  • Temperature sensors connector

  • 2 Link Bus connectors

  • 2 Indicator LEDs

2.4. G4 BMS Software

The Nuvation Energy G4 BMS Software is composed of two parts: the Operator Interface and the G4 BMS Firmware.

2.4.1. Operator Interface

oi laptop dashboard
Figure 5. Operator Interface Dashboard

The Operator Interface is a browser-based graphical view of the system state, data, and configuration.

Key Features
  • Provides Unified View of Entire Battery - Access diagnostics and performance data of the battery stack

  • Statistics - Provides stack-level voltage, temperature & current statistics for all cells

  • Real-Time - Streams measurements and control signals for real-time display and recording

  • Faults and Warnings - Aggregated for system-wide overview, plus detail drill-down for battery pack diagnostics

  • SOC and SOH - Calculates State of Charge (SoC) and State of Health (SoH) for the battery stack

  • Communications Status - Ensures that measurements, control signals, and other data are propagating properly throughout the entire system for safe operation

  • Flow-Through I/O - Provides a single entry point to all measurement and control points in the BMS

2.4.2. G4 BMS Firmware

The G4 BMS Firmware is a highly configurable software that manages the stack operation and controls. It enables the BMS to be used as a protection device against unsafe voltage, temperature, and current conditions in battery systems.

Key Features
  • Configuration Registers - Numerous configuration options, called 'registers', to tune the G4 High-Voltage BMS for the specific end-application.

  • Functional Safety - Functional safety according to UL 1998 specification is accomplished through several key capabilities of the software.

    • Protection Functions - Provides protection functions for a battery against hazardous voltage, temperature, and current conditions.

    • Sensor Fault Detection - Detects sensor faults in cell voltage, temperature, stack voltage, and stack current.

    • Shorted Shunt Detection- Detects short circuit failures, and wiring defects.

  • Under Voltage Lockout - A safety feature to protect a battery from further damage when either cell/stack voltages are critically low.

  • Shutdown Input - An input signal to the Low-Voltage BMS that when asserted will trigger a software managed disconnection of a stack followed by the Low-Voltage BMS powering off.

3. Installation Instructions

3.1. Quick Start Guide

Prior to installation, please review the full set of safety warnings in Important Safety Information.

Overview of the Installation & Setup Process

Install BMS and Batteries

  1. Install Low-Voltage BMS (and G4 Cell Interface, if applicable) to its end application location.

  2. Wire the batteries to the Low-Voltage BMS (and G4 Cell Interface, if applicable).

  3. Power on the BMS and check status LEDs.

Upgrade Firmware and Install Operator Interface

  1. Upgrade the BMS to the latest firmware.

  2. Install the Operator Interface to operate the BMS.

Configure BMS

  1. Generate the initial configuration file.

  2. Verify the correct operation of your configuration file through testing.

    • Trigger each fault and verify the correct action is taken by the BMS.

Calibrate BMS

  1. Calibrate BMS for accurate usable capacity measurements.

The Low-Voltage BMS is now ready for operation

3.2. Low-Voltage BMS Mechanical Installation

3.2.1. Dimensions and Weight

The overall dimensions of the Low-Voltage BMS are 220 mm × 125 mm × 30 mm.

The Low-Voltage BMS weighs approximately 400 g.

mechanical drawing
Figure 6. Mechanical Drawing of Low-Voltage BMS

3.2.2. Installation Location and Position

The Low-Voltage BMS is rated to operate in the temperature range of -10 °C to 60 °C. It is designed for indoor use.

The Low-Voltage BMS should be securely mounted in a vertical orientation, with the label facing out. The Battery Cells and Temperature Sensor connector should be facing up or to the left. If this is to be used with a battery chemistry such as lead-acid—which does not require balancing—the Low-Voltage BMS may be mounted horizontally, with the ventilation slots oriented upwards.

It is not advisable to mount the Low-Voltage BMS on the underside of a horizontal surface.

3.2.2.1. Mounting Clearances

Extra space should be provided around the module to allow for sufficient heat dissipation, and cable installation. The Low-Voltage BMS - 12 channel and Low-Voltage BMS - 16 channel variants produce up to 24 W and 32 W, respectively, during cell balancing.

3.2.3. Mounting Instructions

The Low-Voltage BMS has 2 flanges with 2 clearance holes for #10-32 fasteners and 1 slot on each flange for mounting purposes. Ensure appropriate fasteners (not included) for are used to mount the Low-Voltage BMS. These fasteners will vary depending on the material and construction of the mounting surface.

3.3. Low-Voltage BMS Electrical Connections

3.3.1. Getting Started

To complete the installation of the Low-Voltage BMS, the following is required:

  1. 1x Cable, Voltage, Thermistor, 300VDC

  2. 1x Cable, Current Shunt, +V Power, 300VDC

  3. 1x Cable, Contactors, -V Power, 300VDC

  4. 1x Cable, GPIO, Control, 300VDC

  5. 1x Cable, CAT.5e, UTP, Ethernet, 60VDC

These cables are available for purchase as a kit from https://nstore.nuvationenergy.com.

Additionally, you will need the following items that are appropriately sized for your application:

  1. 1x Current Shunt

  2. 2x Contactors

  3. 1x Pre-charge Contactor [Optional]

These items are available for purchase at https://nstore.nuvationenergy.com

NUV300 BC 16 KIT
Figure 7. Example Low-Voltage BMS kit (NUV300-BC-16-KIT)

The instructions below are for applications using cable harnesses purchased from Nuvation Energy. To build custom cables, refer to Low-Voltage BMS for connector pin-out and specifications.

3.3.2. Review Safety Considerations

Operating power, including primary power source for operating the contactor coils, is provided to the Low-Voltage BMS at two connectors:

The wiring of the battery cell voltage and temperature sensing should be verified before connecting to the Low-Voltage BMS and G4 Cell Interface. The temperature sensing wires must be isolated from the cell voltage sensing leads. Although the Low-Voltage BMS and G4 Cell Interface include protective circuitry to make them more resilient to brief wiring errors, the same circuitry can result in the battery cells being slowly discharged. Over time, these wiring errors can cause damage to the Low-Voltage BMS, G4 Cell Interface, and/or the cells.

3.3.3. Grounding and Fusing

The Low-Voltage BMS enables connection to a series-connected stack of monitored cells up to a total voltage of 60 V DC. The lowest potential (the negative end) of the connected stack also serves as the common return for the contactor coils as well as the reference for the Low-Voltage BMS internal circuitry and power supply. Any connection to earth or chassis ground must be made outside of the Low-Voltage BMS.

The contactor coils return to the same potential as the most negative end of the attached stack regardless of whether this point is connected to ground.

An earth or chassis ground connection may be made to any single point in the connected cell stack as required by the application. The cell stack may also be left isolated from earth or chassis. Fusing of the cell stack where it connects to provide operating power to the Low-Voltage BMS is required externally.

internal powered
Figure 8. Connection example for powering the Low-Voltage BMS from cells
If the load side of the current shunt is grounded
fusing pos gnd
Figure 9. Fusing with stack positive grounding
If the most negative end of the stack is grounded
fusing neg gnd
Figure 10. Fusing with stack negative grounding
If no ground connection exists within the stack or if a ground connection is made somewhere other than at an end
fusing other gnd
Figure 11. Fusing with other grounding or no grounding

Fuses are not supplied and must be selected according to the application. The current rating of the fuse (Ifuse) must be chosen based on the peak open circuit voltage (Voc_max) of the supply to the Low-Voltage BMS (i.e. battery stack voltage). Use Table 2, “Low-Voltage BMS Power Wire Fuse Selection Guide” as a guide to select either one or two fuses of the same capacity.

Table 2. Low-Voltage BMS Power Wire Fuse Selection Guide

Stack Voltage

Fuse Rating

Example Part

Voc_max < 20 V, Ifuse = 100/20 = 5 A

12 V Battery (9–16 V)

5 A

Eaton P/N: BK/ABC-5-R

20 V < Voc_max < 60V, Ifuse = 100/Voc_max

24 V Battery (18–32 V)

3 A

Eaton P/N: BK/ABC-3-R

36 V Battery (27–48 V)

2 A

Eaton P/N: BK/ABC-2-R

48 V Battery (36–60 V)

1.5 A

Eaton P/N: BK/ABC-1-1/2-R

3AB/3AG fast-response cartridge fuses and in-line fuse holders are commonly used for this application

An external 9–60 V DC power source may be used (instead of the connected battery stack) to power the Low-Voltage BMS and power the contactor coils. The positive of this source must connect through a fuse to pin 1 of the Current Shunt / +V Power connector and the negative of this source must connect through a fuse to pin 6 of the Contactors / -V Power connector. In this situation, pin 5 of the Contactors / -V Power connector must be connected directly to the most negative end of the stack. This will connect the negative of the external power source to the most negative end of the attached stack, so caution must be exercised when choosing the power source to ensure that this is acceptable and safe. On the other hand, an external supply that is either NEC Class 2 or a limited power supply (LPS) can be used to power the BMS without external fuses.

While the maximum input voltage to the Low-Voltage BMS will not exceed 60V, precaution should be taken to avoid any short circuits, as high current levels could present a burn and fire hazard.
external powered
Figure 12. Connection example for powering the Low-Voltage BMS from external DC power source

3.3.4. Connect Communication Cables

Four of the Low-Voltage BMS connectors use an RJ45 connector:

Connect the cables that apply to your application.

This connector is used for applications with a G4 Cell Interface expansion module only.

In certain situations, it may be required to monitor more than 16 cells in series, such as with 2 V lead-acid cells. This interface is used to connect the Low-Voltage BMS module to an expansion G4 Cell Interface module to provide monitoring for additional battery cells and thermistors. Connect this interface to the G4 Cell Interface module’s Link In connector. A green LED on this connector indicates Low-Voltage BMS activity

For pin assignment table, refer to Link Out (Connector J1)

3.3.4.2. Ethernet / Modbus TCP (Connector J2)

This interface is used as the primary means of connecting an external system to the Low-Voltage BMS to configure the operating parameters and observe the status and perform maintenance such as firmware upgrades. It is also used as a means of controlling an external battery charger/inverter and communicating with the external system (vehicle central controller, grid-attached site controller, etc.)

For pin assignment table, refer to Ethernet / Modbus TCP (Connector J2)

NUVW D01X00 020
Figure 13. Ethernet cable (NUVW-D01X00-020)

The Ethernet jack is a standard RJ45 Cat5e rated jack. The two LEDs on the Ethernet jack indicate link status (green LED) and network activity (yellow LED).

3.3.4.3. CAN or Unused (Connector J3)

On the no-CAN variant (*-NC) this port is labeled 'Unused J3'. The details below do not apply to no-CAN variants (*-NC) as they do not have a CAN bus interface.

This interface provides an isolated CAN bus 2.0 port which an external controller may use to read and write registers in order to make decisions regarding the overall system.

CAN bus termination is not provided by the Low-Voltage BMS on stock production units. Standard 120 Ω termination must be installed at each end of the CAN bus network. Jumper-selectable resistive bus termination is available upon request.

Connect external equipment to this connector.

The CAN interface connector is a standard RJ45 Cat5e rated jack. A green LED on this connector indicates CAN bus activity.

For pin assignment table, refer to CAN or Unused (Connector J3)

3.3.4.4. RS485 / Modbus RTU (Connector J4)

This interface provides an isolated RS485 (Modbus-RTU) port which an external controller may use to read and write registers in order to make decisions regarding the overall system.

RS485 termination is not provided within the Low-Voltage BMS on stock production units. Standard 120 Ω termination must be installed at each end of the Modbus-RTU network. Jumper-selectable resistive bus termination is available upon request.

Connect external equipment to this connector.

The RS485 / Modbus RTU interface connector is a standard RJ45 Cat5e rated jack. A green LED on this connector indicates Modbus activity

For pin assignment table, refer to RS485 / Modbus RTU (Connector J4)

3.3.5. Control / GPIO (Connector J5)

The GPIO cable is available with either 2 or 4 GPI and GPO connections. Use the cable to connect external equipment to the GPIO-out interface.

NUVW C02Z03 010
Figure 14. GPIO 4 in/4 out cable (NUVW-C02Z03-010)

The functionality of this interface is configured by the end-user to match their needs.

This interface provides connections to isolated general purpose inputs and outputs, and also specific function inputs that can be used to:

  • Enable the power supply

  • Invoke or force a system shutdown

  • Clear system faults

  • Invoke a factory reset

3.3.5.1. GPIO Block

The general-purpose outputs from the Low-Voltage BMS are implemented using optical MOSFET switches. These outputs are non-polarized, presenting an on-resistance of typically 2 Ω and capable of carrying 400 mA DC current when activated. Figure 15, “GPIO Output Circuit Diagram” and Figure 16, “GPIO Input Circuit Diagram” show high-level circuit diagrams for the GPIO Output and Input pins.

gpio overview out
Figure 15. GPIO Output Circuit Diagram
gpio overview in
Figure 16. GPIO Input Circuit Diagram
Table 3. Control / GPIO Connector Pin Assignment
Pin Connection Description Connected to Device

1

GPO_ISO0_A

Digital Output 0

External Equipment

2

GPO_ISO1_A

Digital Output 1

External Equipment

3

GPO_ISO2_A

Digital Output 2

External Equipment

4

GPO_ISO3_A

Digital Output 3

External Equipment

5

+5V_GPIO_ISO

Isolated +5V I/O Power Supply

External Equipment

6

GPI_ISO0_K

Input detector 0

External Equipment

7

GPI_ISO1_K

Input detector 1

External Equipment

8

GPI_ISO2_K

Input detector 2

External Equipment

9

GPI_ISO3_K

Input detector 3

External Equipment

10

FAULT_CLEAR#

Momentary to COMIO to clear faults

Processor GPI via logic elements

11

FACTORY_RESET#

Hold to COMIO during startup to perform a factory reset

Processor GPI via logic elements

12

BMS_ENABLE#

Momentary to VBOT to enable BMS; Hold to VBOT to defeat Shutdown Note the different reference from other inputs

Power supply enable gate

13

GPO_ISO0_B

Digital Output 0

External Equipment

14

GPO_ISO1_B

Digital Output 1

External Equipment

15

GPO_ISO2_B

Digital Output 2

External Equipment

16

GPO_ISO3_B

Digital Output 3

External Equipment

17

COMIO

Isolated I/O Power Supply Common Reference

External Equipment

18

COMIO

Isolated I/O Power Supply Common Reference

External Equipment

19

COMIO

Isolated I/O Power Supply Common Reference

External Equipment

20

COMIO

Isolated I/O Power Supply Common Reference

External Equipment

21

COMIO

Isolated I/O Power Supply Common Reference

External Equipment

22

COMIO

Isolated I/O Power Supply Common Reference

External Equipment

23

SHUTDOWN#

Momentary to COMIO to invoke shutdown; Hold to COMIO to force shutdown

Processor GPI via logic elements, hard shutdown (no software) via logic elements with longer press

24

VBOT

VBOT

The general-purpose inputs, as well as the specific-purpose inputs (FAULT_CLEAR, FACTORY_RESET, SHUTDOWN) to the Low-Voltage BMS are implemented using optical isolation components. The current source for these inputs is provided in the Low-Voltage BMS and each input is activated by providing a simple contact closure to the common point.

Fault Clear Input (FAULT_CLEAR#)

When the FAULT_CLEAR# input to the Low-Voltage BMS is asserted for a minimum duration of at least 200 ms, the BMS will issue a Clear Fault operation. If all fault conditions within the BMS have been cleared by this action, the BMS can be commanded to close its contactors (or the contactors may automatically close if there was a prior request). If faults still exist after this action, the BMS will prevent the contactors from being closed. An operator will have to use the Operator Interface or external communication interfaces to determine the remaining faults in the system. When faults are Tripped, refer to Section 6, “Troubleshooting”.

Shutdown Input (SHUTDOWN#)

When the SHUTDOWN# input to the Low-Voltage BMS is asserted for a minimum duration of 200 ms but less than two seconds, the BMS will issue a graceful shutdown command and disconnect its power. As part of the graceful shutdown sequence, the BMS will:

  1. Request disconnect via stack_control

  2. Wait for stack_control to indicate that disconnection is complete

  3. Wait for all contactors to reach the disconnected state

  4. Disconnect power

    The BMS will power off at the end of the shutdown sequence.

This process can take multiple seconds depending on system state and configuration. If the BMS fails to initiate the shutdown sequence, the SHUTDOWN# input can be asserted continuously for more than two seconds which will cause the BMS hardware to disconnect power. This is only recommended in cases where graceful shutdown fails.

When in service lockout or when exiting service lockout, the BMS will immediately disconnect power and does not go through the steps listed above.
Factory Reset Input (FACTORY_RESET#)

Factory reset loads the factory firmware image and erases the persistent configuration registers stored within the BMS. Refer to Appendix C, Factory Reset for instructions on performing a factory reset.

BMS Enable Input (BMS_ENABLE#)

The BMS_ENABLE# input differs slightly from the other specific-purpose inputs. This control requires a contact closure between the BMS_ENABLE# and VBOT signals and must not be referenced to the common point of the other inputs. It is used to start the Low-Voltage BMS after it has been shut down due to activation of the SHUTDOWN input, low battery, or some other condition invoked under software control. BMS_ENABLE# is pulled up to the battery stack positive (potentially 60 V away from VBOT) so the switch/external controller must be tolerant of the maximum battery stack voltage.

3.3.6. Battery Cells and Temperature (Connector J8)

The Voltage and Thermistor cable has voltage sense wires for the battery cell as well as up to eight 10 kΩ NTC thermistors. This cable connects into the Battery Cells and Temperature (J8) interface on the Low-Voltage BMS.

NUVW C19A03 010
Figure 17. 16 channel, 7 Thermistor UL cable (NUVW-C19A03-010)

For pin assignment table, refer to Battery Cells and Temperature Sensors (Connector J8)

Table 4. Low-Voltage BMS supported cell connections
Low-Voltage BMS Cell groups Total cell inputs per group Max cell voltage per input Max total voltage across group Max total voltage across all groups Min voltage per group

NUV300-BC-12

1

12

5V

60V

60V

11V

NUV300-BC-16

2

8

5V

40V

60V

11V

The wiring of the battery cell voltage and temperature sensing should be verified before connecting to the Low-Voltage BMS and G4 Cell Interface. The temperature sensing wires must be isolated from the cell voltage sensing leads. Although the Low-Voltage BMS and G4 Cell Interface include protective circuitry to make them more resilient to brief wiring errors, the same circuitry can result in the battery cells being slowly discharged. Over time, these wiring errors can cause damage to the Low-Voltage BMS, G4 Cell Interface, and/or the cells.
3.3.6.1. Battery Cells Connections for Low-Voltage BMS - 12 channel

Connected cells are monitored internally by a single functional block. This functional block requires a minimum stack voltage of 11 V to operate and measure its input voltages. The total voltage across the stack can be up to 60 V. Unused cell tap wires should be connected to the last cell in the stack. See Figure 18, “NUV300-BC-12: Connecting to 12 cells” and Figure 19, “NUV300-BC-12: Connecting to 8 cells” for examples of how to connect cells to the NUV300-BC-12.

Connecting to the NUV300-BC-12 is very straightforward since all connected cells belong to a single group.

The cells must be connected in ascending voltage order, such that the negative terminal of the most negative (bottom) cell connects to VCELL0 and the positive terminal of each cell connects in ascending voltage order to VCELL1, VCELL2, etc. If fewer than 12 cells are connected, the top cell and all unused cell inputs between the top cell and VCELL12 must be connected to VCELL12. Inputs VCELL13 through VCELL16 may be left disconnected, as shown in Figure 19, “NUV300-BC-12: Connecting to 8 cells”.

Use a separate wire to connect input VSTACK_SENSE to the negative end of the most negative (bottom) cell.

12 12 cell connection
Figure 18. NUV300-BC-12: Connecting to 12 cells
12 8 cell connection
Figure 19. NUV300-BC-12: Connecting to 8 cells
3.3.6.2. Battery Cells Connections for Low-Voltage BMS - 16 channel

Connected cells are monitored internally by 2 functional blocks, each measuring 8 cells (VCELL0 to VCELL8 and VCELL8 to VCELL16). Each functional block requires a minimum of 11 V across it to operate and measure its input voltages. The total voltage across the stack can be up to 60 V. See Figure 20, “NUV300-BC-16: Connecting to 16 cells”, Figure 21, “NUV300-BC-16: Preferred method of connecting to 11 cells” and Figure 22, “NUV300-BC-16: Less optimal method of connecting to 11 cells” for examples of how to connect cells to the NUV300-BC-12.

Groups do not need to contain the same number of cells but the maximum and minimum voltage limits must be met, as stated in Table 4, “Low-Voltage BMS supported cell connections”.

The NUV300-BC-16 requires division of the connected cells into two groups. Each group comprises a sequentially-connected subset of the connected cells and the groups may be of different cell counts to a maximum of eight cells per group.

It is important to connect all cells in ascending voltage order, such that the negative terminal of the most negative (bottom) cell of the more negative group connects to VCELL0, and the positive terminal of each cell in that group connects in ascending voltage order to VCELL1, VCELL2, etc. If fewer than 8 cells are connected in the more negative group, then that group’s top cell and all unused cell inputs between the group’s top cell and VCELL8 must be connected to VCELL8.

Recognizing that the positive terminal of the top cell of the more negative group always connects to the negative terminal of the bottom cell of the more positive group and to VCELL8, the positive terminals of the cells in the more positive group must connect in ascending voltage order to VCELL9, VCELL10, etc. If fewer than 8 cells are connected in the more positive group, then that group’s top cell and all unused cell inputs between the group’s top cell and VCELL16 must be connected to VCELL16.

Figure 20, “NUV300-BC-16: Connecting to 16 cells” shows the connection of 16 cells to a NUV300-BC-16. It is recommended to use a NUV300-BC-12 for an 11-cell stack, but if a NUV300-BC-16 must be used, an example of the correct connection of 11 cells to a NUV300-BC-16 is presented in Figure 21, “NUV300-BC-16: Preferred method of connecting to 11 cells”. A less desirable connection example is shown in Figure 22, “NUV300-BC-16: Less optimal method of connecting to 11 cells” which assumes three cells are sufficient to provide the required 11 V minimum to the lower group.

Use a separate wire to connect input VSTACK_SENSE to the negative end of the most negative (bottom) cell of the more negative group.

16 16 cell connection
Figure 20. NUV300-BC-16: Connecting to 16 cells
16 11 cell connection preferred
Figure 21. NUV300-BC-16: Preferred method of connecting to 11 cells
16 11 cell connection other
Figure 22. NUV300-BC-16: Less optimal method of connecting to 11 cells
3.3.6.3. Temperature Sensor Connections

The Temperature cable provides 10 kΩ NTC thermistors for temperature measurement of the cells and/or surrounding area. These sensors are used by Nuvation Energy BMS to detect over and under temperature conditions. The sensors supported are negative temperature coefficient (NTC) thermistor type, with a 25° C resistance of 10 kΩ.

2 to 7 thermistors are supported to accommodate systems requiring Nuvation Energy BMS to meet functional safety requirements.
Cable Isolation

Because the sensors are referenced to the VCELL0 input on the Low-Voltage BMS, care must be taken to ensure that they are electrically isolated from any common or ground potential, and from all other cell voltage terminals of the Low-Voltage BMS and/or G4 Cell Interface modules in the system

The thermistors must be isolated from the cell voltage terminals, as well as any metal work or other exposed conductors, in such a way that they will not make an electrical connection to a cell terminal in the event of vibration/failures.

Thermal Consistency

For safety certified systems, there is an additional constraint on thermal consistency for all temperature measurements of the Low-Voltage BMS and G4 Cell Interface. The constraint is described in detail in Section 4.10.9, “Temperature Consistency Check”.

3.3.7. Contactors / -V Power (Connector J6)

NUVW B12Z03 005
Figure 23. Contactor 3-coil and -VPower cable (NUVW-B12Z03-005)

This interface is used to drive up to 4 external contactor coils, as well as select their power source. The negative operating power is also provided in a fused connection to this connector (see Section 3.3.3, “Grounding and Fusing”).

Table 5. Contactors / -V Power Connector Pin Assignment
Pin Connection Description Connected to Device

1

COM

Negative Coil 1

Contactor 1 negative coil connection

2

COM

Negative Coil 2

Contactor 2 negative coil connection

3

COM

Negative Coil 3

Contactor 3 negative coil connection

4

COM

Negative Coil 4

Contactor 4 negative coil connection

5

VCOIL_RETURN

Negative reference for external supply

External Power Supply. Refer to Figure 8, “Connection example for powering the Low-Voltage BMS from cells” and Figure 12, “Connection example for powering the Low-Voltage BMS from external DC power source” for additional requirements

6

-VPOWER

Power return of Low-Voltage BMS

Bottom of Stack

7

COIL1_HI

Positive Coil 1

Contactor 1 positive coil connection

8

COIL2_HI

Positive Coil 2

Contactor 2 positive coil connection

9

COIL3_HI

Positive Coil 3

Contactor 3 positive coil connection

10

COIL4_HI

Positive Coil 4

Contactor 4 positive coil connection

11

+VCOIL

12-24V Contactor Coil Power Supply

Connect to external power supply, or to pin 12 if driving contactor coil from internal power supply

12

+24V

Internal Power Supply

Connect to pin 11 if driving contactor coils from internal power supply

The Low-Voltage BMS provides coil drivers for contactor coils up to 24 V DC. The internal 24 V power supply of the Low-Voltage BMS may be used to power the coils if the following conditions are satisfied:

  • 24 V coils are connected

  • The worst-case coil inrush current is below 1.5 A

  • The sum of all connected coil currents is less than 1 A

To use the internal power supply, connect together pins 11 (+VCOIL) and 12 (+24V) to deliver +24 V DC to the +VCOIL input. Pin 5 (VCOIL_RETURN) is left disconnected and should be insulated to prevent shorts.

Other coil voltages in the 12–24 V range and total currents of up to 1.5 A per coil may be supported through the use of an external DC power source. Such a supply must be connected between +VCOIL (pin 11) and VCOIL_RETURN (pin 5).

As depicted in Figure 12, “Connection example for powering the Low-Voltage BMS from external DC power source”, if an external power supply is used to power the Low-Voltage BMS instead of the battery stack, the VCOIL_RETURN (pin 5) must be externally connected to the bottom of the battery stack. If using a dedicated external power supply to power the contactor coils, connect the common return of that supply to this pin.

Coil back-EMF protection is provided by the Low-Voltage BMS that clamps at 40 V. External clamping diodes of lower voltages may be connected if required.

The bottom of the attached battery stack is internally connected to the common return path for all contactor coils (pins 1 to 5). It is recommended that no ground connection be made at the coils to avoid creating an inadvertent ground fault or ground loop.

Contactor coils are to be connected between the COILn_HI and COM pins as required. When the Low-Voltage BMS activates a contactor, the COILn_HI output is driven to a VCOIL voltage level.

contactor internal powered
Figure 24. Two 24V contactor coils powered from internal supply
contactor external powered
Figure 25. Four contactor coils powered from external supply

In safety certified applications that require a method to externally de-energize the contactors, a switch or relay can optionally be used to interrupt the coil operating power for all contactors. The switch or relay must be rated for the anticipated worse-case current which will occur when all except one coil will be energized and then last coil pulls in its contact. The voltage rating of the switch or relay needs to be rated for 2x the coil voltage or up to 40V to survive transients.

In safety certified applications, two contactors should be used and one of the two contactors needs to be connected to Coil 1 or Coil 2 and the other contactor needs to be connected to Coil 3 or Coil 4. This implementation achieves redundancy against single point failures that would otherwise result in a situation where the battery cannot be disconnected from the external charging source or load.

3.3.8. Current Shunt / +V Power (Connector J7)

NUVW B07Z03 005
Figure 26. Current Shunt, +V Power cable (NUVW-B07Z03-005)

This interface is used to connect the current shunt to the Low-Voltage BMS. The positive operating power is provided in a fused connection to this connector (see Section 3.3.3, “Grounding and Fusing”).

This connection must only be made after all other connections to the Low-Voltage BMS have been made.
Table 6. Current Shunt / +V Power Connector Pin Assignment
Pin Connection Description Connected to Device

1

+VPOWER

Main power supply input

Positive end of the stack or other power source

2

No Connect

Not Connected

No Connect

3

No Connect

Not Connected

No Connect

4

VSHUNT_LOAD

Differential voltage input; Load side

Load side of current shunt

5

VSHUNT_BAT

Differential voltage input; Battery side

Battery side of current shunt

6

VSHUNT_REF

Voltage reference for voltage measurement

Battery side of current shunt

The Low-Voltage BMS requires the shunt to be on the high side (positive end) of the battery stack. The VSHUNT_REF signal is used to compensate for the voltage drop in the sense wires as well as to provide the positive reference for measuring the overall voltage of the stack. VSHUNT_BAT and VSHUNT_LOAD carry the differential voltage measurement from the shunt. VSHUNT_BAT must be closest to the battery cells and VSHUNT_LOAD must be closest to the Stack Fuse so that the measured current has the correct polarity. To minimize outside interference, twist VSHUNT_LOAD and VSHUNT_BAT together to form a twisted pair, then run all 3 wires close together.

power fuse connection
Figure 27. Current Shunt and Power Fuse Connection

3.4. G4 Cell Interface Mechanical Installation

3.4.1. Dimensions and Weight

The overall dimensions of the G4 Cell Interface are 104.4 mm × 121.58 mm × 40.6 mm.

The standard G4 Cell Interface (i.e. with bulkhead) weighs approximately 450 g.

ci bulkhead mechanical drawing
Figure 28. Mechanical Drawing of G4 Cell Interface with Bulkhead Enclosure
3.4.1.1. DIN rail mounting Kit

For applications requiring DIN rail mounting, the G4 Cell Interface Mounting Bracket (Bulkhead-to-DIN) (sold separately) may be used. This kit includes a metal plate and the necessary hardware to securely mount the bulkhead enclosure of the G4 Cell Interface to EN50022-compliant DIN rails.

The Mounting Bracket kit assembly adds an extra 14.2 mm to the overall width of the G4 Cell Interface module, bringing it from 104.4 mm to 118.6 mm. The kit assembly holds the module approximately 7 mm away from the inside lip of the DIN rail.

The Mounting Bracket offsets the G4 Cell Interface module from the center of the DIN rail approximately 30 mm upwards as shown in Figure 29, “Mechanical Drawing of G4 Cell Interface with G4 Cell Interface Mounting Bracket (Bulkhead-to-DIN)”.

A G4 Cell Interface with the Mounting Bracket weighs approximately 540 g.

ci bulkhead din adapter mechanical drawing
Figure 29. Mechanical Drawing of G4 Cell Interface with G4 Cell Interface Mounting Bracket (Bulkhead-to-DIN)

3.4.2. Installation Location and Position

NUV100 CI side by side
Figure 30. Nuvation Energy G4 Cell Interface Module

The G4 Cell Interface is available in a bulkhead-mountable enclosure which has five metal walls, leaving the back of the unit fully exposed. It is designed to mount to a metal bulkhead panel such that the panel covers the exposed back.

The G4 Cell Interface is rated to operate in the temperature range of -10 °C to 60 °C. It is designed for indoor use.

The G4 Cell Interface should be mounted against a flat surface with the 'Link In' and 'Link Out' ports pointing up to the sky.

Ensure the enclosure is connected securely to Earth, either by grounding the mounting surface or by using a dedicated Earth Bonding Conductor.

3.4.2.1. Mounting Clearances

The NUV100-CI-12-1 and NUV100-CI-16-1 variants produce up to 24 W and 32 W, respectively, during cell balancing. A portion of this heat is transferred to the bulkhead.

Extra space should be provided around the module to allow for sufficient heat dissipation, and cable installation.

3.4.3. Mounting Instructions

Ensure appropriate fasteners (not included) are used to mount the G4 Cell Interface. These fasteners will vary depending on the material and construction of the mounting surface.

It is suggested to use #8-32 screws with a split lock washer for the mounting holes provided on each side flange of the G4 Cell Interface.

3.5. G4 Cell Interface Electrical Connections

The Low-Voltage BMS system should not be used with a battery stack that exceeds 60 V DC during normal operation.

Please see Section 3.5.3.1.1, “Safety Considerations” for safety considerations.

3.5.1. Getting Started

To complete the installation of the G4 Cell Interface, the following is required per G4 Cell Interface module:

  1. 1x Battery Cells cable

  2. 1x Thermistor cable

  3. 1x Link Bus (LV to CI) cable

These cables are available for purchase as a kit.

NUV100 CI 12 KIT LV
Figure 31. Example Low-Voltage G4 Cell Interface kit (NUV100-CI-12-KIT-LV-2)

The instructions below are for applications using cable harnesses purchased from Nuvation Energy. To build custom cables, refer to G4 Cell Interface for connector pin-out and specifications.

Connection sequence
The wiring of the battery cell voltage and temperature sensing should be verified before connecting to the Low-Voltage BMS and G4 Cell Interface. The temperature sensing wires must be isolated from the cell voltage sensing leads. Although the Low-Voltage BMS and G4 Cell Interface include protective circuitry to make them more resilient to brief wiring errors, the same circuitry can result in the battery cells being slowly discharged. Over time, these wiring errors can cause damage to the Low-Voltage BMS, G4 Cell Interface, and/or the cells.

3.5.2. Connect Temperature Cable

The Temperature cable provides 10 kΩ NTC thermistors for temperature measurement of the cells and/or surrounding area. These sensors are used by Nuvation Energy BMS to detect over and under temperature conditions and adjust battery current limits to compensate for cell temperature.

NUVW A21A03 009
Figure 32. 7 Thermistor cable (NUVW-A21A03-009)
2 to 7 thermistors are supported to accommodate systems requiring Nuvation Energy BMS to meet functional safety requirements.
Cable Isolation

Because the sensors are referenced to the CELL0 input on the G4 Cell Interface, care must be taken to ensure that they are electrically isolated from any common or ground potential, and from all other cell voltage terminals of all G4 Cell Interface modules in the system

The thermistors must be isolated from the cell voltage terminals, as well as any metal work or other exposed conductors, in such a way that they will not make an electrical connection to a cell terminal in the event of vibration/failures.

Thermal Consistency

For safety certified systems, there is an additional constraint on thermal consistency for all temperature measurements of the Low-Voltage BMS and G4 Cell Interface. The constraint is described in detail in Section 4.10.9, “Temperature Consistency Check”.

3.5.2.1. Connection Procedure
Connect to Surface

It is recommended to use thermally conductive/electrically non-conductive epoxy to adhere the thermistors to the cells.

Connect to G4 Cell Interface

'Temperature' cable connects to the 'Temperature Sensors' port at the bottom of the G4 Cell Interface.

3.5.3. Connect Battery Cells Cable

The Battery Cells cable provides cell voltage input and a means for balancing the cells.

Power Requirements

Cells are connected as two groups and a minimum of 11 V must be present between the most negative and most positive cells of each group.

3.5.3.1. Connection Procedure
Connect to Cells

Connect the cables wires to the battery voltage sense leads. The individual wires are labelled to help with identifying the connections. Verify the cell voltages present on the connector are correct. While the G4 Cell Interface module is tolerant of most wiring errors, incorrect connections may cause the cells to discharge.

Refer to the wiring examples below for the specific G4 Cell Interface module used.

Connect to G4 Cell Interface

'Battery Cells' cable connects to the 'Battery Cells' port at the bottom of the G4 Cell Interface.

3.5.3.1.1. Safety Considerations

The Low-Voltage BMS module’s I/O ports (e.g. Ethernet, CAN, RS485 / Modbus RTU, Control / GPIO, Link Out) are SELV (Safety Extra Low Voltage) rated to 60 V. For example, a system using more than 16 cells of 2V lead-acid could exceed the 60 V maximum of the Low-Voltage BMS module during the equalization phase of the charge profile.

To maintain the SELV rating of the Low-Voltage BMS I/O ports, the negative terminal of the battery stack must be connected to earth ground. This prevents high voltage from propagating out of the I/O ports in the very unlikely event of an internal failure with the current shunt interface. This requirement also means that any device connected to the Low-Voltage BMS must reference its signals to earth ground, as any signal referenced to the top of the battery stack would exceed the 60 V limit of the Low-Voltage BMS.

3.5.3.1.2. Battery Cell Connector for G4 Cell Interface - 12 channel
NUVW A08Z12 020
Figure 33. Battery Cells cable (NUVW-A08Z12-020) for G4 Cell Interface - 12 channel

Figure 34, “G4 Cell Interface - 12 channel Connections to upper 12 cells of 24-cell battery” shows the wiring of the upper 12 cells of a 24-cell battery to the G4 Cell Interface - 12 channel, which would be paired with a Low-Voltage BMS - 12 channel.

ci 24 cell connection
Figure 34. G4 Cell Interface - 12 channel Connections to upper 12 cells of 24-cell battery

If fewer than 24 cells are required, the unused inputs would be connected to the positive terminal of the top cell in the stack. Figure 35, “G4 Cell Interface - 12 channel Connections to upper 8 cells of 20-cell battery” shows the wiring of the upper 8 cells of a 20-cell battery to the G4 Cell Interface - 12 channel, which would be paired with a Low-Voltage BMS - 12 channel.

ci 20 cell connection
Figure 35. G4 Cell Interface - 12 channel Connections to upper 8 cells of 20-cell battery
3.5.3.1.3. Battery Cell Connector for G4 Cell Interface - 16 channel

Figure 36, “G4 Cell Interface - 16 channel Connections to upper 16 cells of 32-cell battery” shows the wiring of the upper 16 cells of a 32-cell battery to the G4 Cell Interface - 16 channel, which would be paired with a Low-Voltage BMS - 16 channel.

ci 32 cell connection
Figure 36. G4 Cell Interface - 16 channel Connections to upper 16 cells of 32-cell battery

If fewer than 32 cells are required, the unused inputs would be connected to the positive terminal of the top cell in the stack. Figure 37, “G4 Cell Interface - 16 channel Connections to upper 11 cells of 27-cell battery” shows the wiring of the upper 11 cells of a 27-cell battery to the G4 Cell Interface - 16 channel, which would be paired with a Low-Voltage BMS - 16 channel.

ci 27 cell connection
Figure 37. G4 Cell Interface - 16 channel Connections to upper 11 cells of 27-cell battery
NUVW D05A00 010
Figure 38. Link Bus cable (NUVW-D05A00-010)

The Link Bus cable is used to connect the Low-Voltage BMS to a G4 Cell Interface module. As long as the system doesn’t exceed the maximum 60 V DC limit, additional G4 Cell Interface modules may be connected in a daisy chain (called the Link Bus chain) using Link Bus cables. The Link Bus provides a data channel and a power source to the G4 Cell Interface.

Connection Procedure
  1. Connect one end of the cable to the 'Link Out' connector on the Low-Voltage BMS.

  2. Connect the other end of the Link Bus cable to the 'Link In' connector on the G4 Cell Interface.

  3. The 'Link Out' on the G4 Cell Interface is to be left un-connected.

3.6. First-time Power-up

Power on the Low-Voltage BMS

Once the Low-Voltage BMS is connected to the battery (including the G4 Cell Interface modules chain), the Low-Voltage BMS can be powered on. The Low-Voltage BMS activity LED (green) should turn ON.

For more details on the Status LEDs, please refer to Section 5.2, “Status LEDs”.

On initial power-up, it is common to see that the fault LED (red) is also ON This indicates that a fault has been detected.

Once the Operator Interface is installed, the faults can be investigated and cleared. This will enable the Low-Voltage BMS to connect the battery to the DC bus.

The Low-Voltage BMS can now be managed from a computer using the Operator Interface. Refer to the subsequent Section 3.8, “Operator Interface Installation” and Section 5.3, “Using the Operator Interface” for instructions on setup and using the Operator Interface.

3.7. First Time Firmware Upgrade

The factory installed firmware version is Ampere Update 1 and the latest firmware version is currently Descartes Update 1.

Before first use of the Low-Voltage BMS, please upgrade to the latest firmware. After the upgrade, please use the latest Operator Interface to operate the Nuvation Energy Low-Voltage BMS.

3.7.1. Download 'Upgrade OI'

Download the 'Descartes Upgrade OI' package which contains an Operator Interface bundled with the 'Descartes Update 1' installation package.

The download link will be provided during the ordering process. If you have trouble locating the link, please contact support@nuvationenergy.com.

Ensure your computer is connected directly to the Low-Voltage BMS via an Ethernet cable. You will need to configure the network adapter on your computer to match the settings on your Low-Voltage BMS.

Identify the Battery Management System IP

By default, Low-Voltage BMS is configured with a static IP address of 192.168.1.21

Identify the parts of the Battery Management System’s IP Address

The IP address has two parts - the network ID and the host ID.

ip address
Figure 39. Parts of an IP address

Write down the network ID and host ID parts of the Low-Voltage BMS’s IP address.

Determine a valid IP address to assign to the PC

The Network ID for the PC IP address must be the same as the Low-Voltage BMS. The Host ID number can be any number from 2 to 255 as long as it is not the same as the Host ID of the Low-Voltage BMS. For example if the Low-Voltage BMS IP address is 192.168.1.21, the IP address of the PC could be 192.168.1.12 or 192.168.1.49 or any 192.168.1.x where x is not 21.

If you have multiple stacks, note down the Host ID from the IP address of each stack’s Low-Voltage BMS. The Host ID number assigned to the PC must be different from this list.
Setup the Static IP address on the PC

Instructions below are for a PC running Windows OS:

  1. Go to Control Panel > Network and Sharing Center

  2. Right-click your network adapter that connects to your Low-Voltage BMS and select Properties

  3. Click Internet Protocol Version 4 (TCP/IPv4) and click Properties

    oi network properties
    Figure 40. Network Adapter Properties on Windows.
  4. Update your network adapter TCP/IPv4 settings to the following:

    • Static IP Address: The IP address must have the same Network ID as the Low-Voltage BMS and a Host ID that isn’t already in use.

      • Refer to the instruction above to determine a valid IP address for the PC.

    • Subnet Mask: 255.255.255.0

    • Default gateway: The Network ID must be the same as the Low-Voltage BMS and the Host ID should be 1.

      • For example, if the Low-Voltage BMS IP address is 192.168.1.21, the gateway address would be 192.168.1.1

        oi network settings
        Figure 41. Network Adapter Settings on Windows
  5. Ensure your computer is on the same network as your Low-Voltage BMS.

    • You can connect an Ethernet cable directly between it and the network adapter of your PC.

3.7.2. Setup Computer’s IP address

Ensure your computer is connected directly to the Low-Voltage BMS via an Ethernet cable. You will need to configure the network adapter on your computer to match the settings on your Low-Voltage BMS.

Identify the Battery Management System IP

By default, Low-Voltage BMS is configured with a static IP address of 192.168.1.21

Identify the parts of the Battery Management System’s IP Address

The IP address has two parts - the network ID and the host ID.

ip address
Figure 42. Parts of an IP address

Write down the network ID and host ID parts of the Low-Voltage BMS’s IP address.

Determine a valid IP address to assign to the PC

The Network ID for the PC IP address must be the same as the Low-Voltage BMS. The Host ID number can be any number from 2 to 255 as long as it is not the same as the Host ID of the Low-Voltage BMS. For example if the Low-Voltage BMS IP address is 192.168.1.21, the IP address of the PC could be 192.168.1.12 or 192.168.1.49 or any 192.168.1.x where x is not 21.

If you have multiple stacks, note down the Host ID from the IP address of each stack’s Low-Voltage BMS. The Host ID number assigned to the PC must be different from this list.
Setup the Static IP address on the PC

Instructions below are for a PC running Windows OS:

  1. Go to Control Panel > Network and Sharing Center

  2. Right-click your network adapter that connects to your Low-Voltage BMS and select Properties

  3. Click Internet Protocol Version 4 (TCP/IPv4) and click Properties

    oi network properties
    Figure 43. Network Adapter Properties on Windows.
  4. Update your network adapter TCP/IPv4 settings to the following:

    • Static IP Address: The IP address must have the same Network ID as the Low-Voltage BMS and a Host ID that isn’t already in use.

      • Refer to the instruction above to determine a valid IP address for the PC.

    • Subnet Mask: 255.255.255.0

    • Default gateway: The Network ID must be the same as the Low-Voltage BMS and the Host ID should be 1.

      • For example, if the Low-Voltage BMS IP address is 192.168.1.21, the gateway address would be 192.168.1.1

        oi network settings
        Figure 44. Network Adapter Settings on Windows
  5. Ensure your computer is on the same network as your Low-Voltage BMS.

    • You can connect an Ethernet cable directly between it and the network adapter of your PC.

3.7.3. Launch 'Upgrade OI'

Un-package the contents of the 'Descartes Upgrade OI' Package.

Launch the Operator Interface by opening the Nuvation-Energy-Operator-Interface.html file in your web browser.

Browser Compatibility

The Operator Interface currently supports the most recent versions of Mozilla Firefox and Google Chrome. Other browsers such as Internet Explorer are not supported. Please install a supported browser before attempting to access the Operator Interface.

The Operator Interface will automatically attempt to connect to the default BMS IP (192.168.1.21) or the last successful BMS IP connection.

If the Operator Interface is unable to connect to the BMS at the assumed IP, a prompt to enter the BMS IP will be displayed. Ensure the computer IP address is on the same network as the BMS IP address. See Section 3.8.2, “Setup PC Network Adapter”.

ssoi ip connection

The Low-Voltage BMS will be in 'Service Lockout' and an upgrade notice will be displayed.

3.7.4. Upgrade Firmware

Upgrade the firmware by clicking the Upgrade button.

On successful upgrade, a 'Upgrade Complete' message wil be displayed. Close the browser window.

After upgrading, the 'Descartes Upgrade OI' package and its files are no longer required and may be deleted.

3.8. Operator Interface Installation

3.8.1. Download and Install

The Operator Interface is used to access the Low-Voltage BMS. It must be installed on a local PC to access the BMS over a network connection.

Download

Visit https://www.nuvationenergy.com/technical-resources to download the latest version of the Operator Interface.

Install

Extract the contents of bms-oi-<version>.zip to a suitable location on your computer. To avoid overwriting other releases or files present in the same directory, it is recommended to extract the package to a folder with the same name as the package.

3.8.2. Setup PC Network Adapter

Ensure your computer is connected directly to the Low-Voltage BMS via an Ethernet cable. You will need to configure the network adapter on your computer to match the settings on your Low-Voltage BMS.

Identify the Battery Management System IP

By default, Low-Voltage BMS is configured with a static IP address of 192.168.1.21

Identify the parts of the Battery Management System’s IP Address

The IP address has two parts - the network ID and the host ID.

ip address
Figure 45. Parts of an IP address

Write down the network ID and host ID parts of the Low-Voltage BMS’s IP address.

Determine a valid IP address to assign to the PC

The Network ID for the PC IP address must be the same as the Low-Voltage BMS. The Host ID number can be any number from 2 to 255 as long as it is not the same as the Host ID of the Low-Voltage BMS. For example if the Low-Voltage BMS IP address is 192.168.1.21, the IP address of the PC could be 192.168.1.12 or 192.168.1.49 or any 192.168.1.x where x is not 21.

If you have multiple stacks, note down the Host ID from the IP address of each stack’s Low-Voltage BMS. The Host ID number assigned to the PC must be different from this list.
Setup the Static IP address on the PC

Instructions below are for a PC running Windows OS:

  1. Go to Control Panel > Network and Sharing Center

  2. Right-click your network adapter that connects to your Low-Voltage BMS and select Properties

  3. Click Internet Protocol Version 4 (TCP/IPv4) and click Properties

    oi network properties
    Figure 46. Network Adapter Properties on Windows.
  4. Update your network adapter TCP/IPv4 settings to the following:

    • Static IP Address: The IP address must have the same Network ID as the Low-Voltage BMS and a Host ID that isn’t already in use.

      • Refer to the instruction above to determine a valid IP address for the PC.

    • Subnet Mask: 255.255.255.0

    • Default gateway: The Network ID must be the same as the Low-Voltage BMS and the Host ID should be 1.

      • For example, if the Low-Voltage BMS IP address is 192.168.1.21, the gateway address would be 192.168.1.1

        oi network settings
        Figure 47. Network Adapter Settings on Windows
  5. Ensure your computer is on the same network as your Low-Voltage BMS.

    • You can connect an Ethernet cable directly between it and the network adapter of your PC.

3.8.3. Launch Operator Interface

Launch the Operator Interface by opening the Nuvation-Energy-Operator-Interface.html file in your web browser.

Browser Compatibility

The Operator Interface currently supports the most recent versions of Mozilla Firefox and Google Chrome. Other browsers such as Internet Explorer are not supported. Please install a supported browser before attempting to access the Operator Interface.

The Operator Interface will automatically attempt to connect to the default BMS IP (192.168.1.21) or the last successful BMS IP connection.

If the Operator Interface is unable to connect to the BMS at the assumed IP, a prompt to enter the BMS IP will be displayed. Ensure the computer IP address is on the same network as the BMS IP address. See Section 3.8.2, “Setup PC Network Adapter”.

ssoi ip connection

3.9. First Time Configuration

3.9.1. Generate Configuration File

The Operator Interface provides tools for importing and exporting configuration files to and from Low-Voltage BMS as a way to set or retrieve the state of all configuration registers.

Low-Voltage BMS needs a valid configuration file to operate. A configuration file specific for the end application must be created and imported into the Operator Interface.

Configuration files are specific to the firmware version installed on the Low-Voltage BMS.

To create the first configuration file for Low-Voltage BMS, please follow the steps below.

Use Quick Start Wizard

Nuvation Energy provides an online tool to assist with generating a basic Configuration file for a system. To generate a new Configuration file:

  1. Visit the Nuvation Energy online portal at https://ncloud.nuvationenergy.com.

  2. Create an account and Login.

  3. Click Configurations

  4. Click Create New Configuration

  5. Follow the instructions in the Quick Start Wizard

  6. Download the .config configuration file

  7. Store the configuration file on the computer running the Operator Interface.

    • If your Low-Voltage BMS is connected to a computer that doesn’t have internet access, use a USB stick to transfer the configuration file between computers.

The generated configuration file will be saved in Configurations for future reference.

nCloud configuration screen
Figure 48. Configuration screen in the nCloud
Fine-tuning the Configuration File (optional)

If you would like to further adjust the configuration to meet the requirements of the end application, you may choose to edit the configuration file.

To edit the configuration, open the the .config file in a Text Editor.

Low-Voltage BMS is a highly customizable product and the Configuration file lets you directly make changes to the BMS settings. However, serious problems might occur if the configuration settings are incorrectly modified.

If you need assistance with modifying the configuration, please contact support@nuvationenergy.com.

3.9.2. Import the Configuration File

Backup existing Configuration

If your Low-Voltage BMS has been configured previously, please 'Export' your configuration file before importing a new one. The Export Configuration feature will generate configuration file with an alphabetical listing of all registers and their set values. Refer to Section 5.3, “Using the Operator Interface” for the following.

To Export a Configuration:

  1. From the menu, select Service

  2. Click Export Configuration

  3. Save this .config file

Import new Configuration File

Low-Voltage BMS must be in Service Lockout before the file can be imported.

To Import a Configuration:

  1. Unlock the Operator Interface by clicking the 'Lock' icon.

    • If the Operator Interface is password protected, please enter the password.

  2. Navigate to 'Service' in the menu and click 'Enter Service Lockout'.

  3. Enable or Disable the Persist Configuration to BMS option.

    • Enabling this option tells Low-Voltage BMS to persist the imported configuration file. If you are using known, good, configuration files you should check this box.

    • Disabling this option tells Low-Voltage BMS to not persist the newly imported configuration file. On reboot, Low-Voltage BMS will revert to the previous configuration file. This is useful when tweaking and testing configuration files. It allows you to recover from incorrect configuration settings by rebooting Low-Voltage BMS

  4. Click Import Configuration

  5. Select the configuration file to use and click Open

  6. A dialog indicating progress will pop-up

    oi configuration import in progress
  7. Wait until a dialog box appears with the configuration import result. It should indicate that the import was successful.

    oi configuration import success
Backup imported Configuration Files

Please backup any imported or exported configuration file for future reference. Low-Voltage BMS does not store the .config file internally. Only the register values set in the configuration file are stored internally.

3.9.2.1. Configuration File Import Troubleshooting
Register Write failure error

During the configuration file import, if you receive a Register Write failure error, check to ensure you have valid entries in your configuration file.

For details on the various registers and their intended use, please refer to Section 4, “Configuration Settings”.

Unable to exit Service Lockout

While exiting the service lockout, if a failure is reported, please see Section 5.3.5, “Understanding the Service Lockout and Self Check” for troubleshooting details.

If the failures persist, please submit a support ticket with as much detail as possible to support@nuvationenergy.com.

3.10. Calibrate Nuvation Energy BMS

Before you start regular operation of your Nuvation Energy BMS, it is recommended that you calibrate it for accurate usable capacity measurements. This calibration should be re-done if the Low-Voltage BMS module or the current shunt is changed in the future.

  1. Refer to Section 4.9, “Measurement Calibration” for steps to calibrate the stack current, voltage, and temperature measurements

  2. Fully charge up the batteries to 100% State-of-Charge (as defined in the configuration file)

  3. Discharge the batteries to 0% State-of-Charge (as defined in the configuration file)

  4. Optionally, charge the batteries back up to 100% State-of-Charge

A power cycle during the State-of-Charge calibration steps will require the State-of-Charge calibration to be redone from the beginning.

4. Configuration Settings

Low-Voltage BMS is a highly customizable product. This section details the various configuration options available.

Configuration settings can be imported via a .config file or modified by using the 'Register Browser' in the Operator Interface. Imported settings can be either 'persisted' (retained after a reboot) or set to not persist. Changes made via the Register Browser are not persisted - i.e. they are not retained after a reboot.

4.1. Background and Terminology

Terminology and technical concepts critical to the operation and configuration of Nuvation Energy BMS are presented in this section.

4.1.1. Register Data Model

Understanding the Register Data Model is key to understanding how to configure Nuvation Energy BMS.

Nuvation Energy BMS implements all data storage and processing using two important software building blocks.

Register

A register is the fundamental unit of data storage within the system. Each register has a unique name and associated type that defines how the value is interpreted. Registers range in size from as small as one byte up to as large as eight bytes.

Component

A component combines a set of related registers with processing rules that operate on those registers to implement a particular BMS function for the system. A given component may have many instances throughout the system. In this case, its associated registers will have the same number of instances.

Complex behavior within the system is achieved by connecting multiple components together, either through configuration or through hard-wired connections in the firmware itself.

Configuration for a system is completely determined by the state of all configuration registers present within the system. Configuration registers are persisted in non-volatile memory and are loaded automatically upon reset.

External protocols are implemented by mapping (and in some cases aggregating) the appropriate BMS registers to CAN bus messages or Modbus registers.

4.1.1.1. Index versus Location

Internally to Nuvation Energy BMS firmware, all register indexing is zero-based. That is, if multiple instances of the same register are present, the first instance is always indexed at zero. This convention is reflected in all register expressions and configuration files.

Operator-facing tools such as Nuvation Energy BMS Operator Interface or the Modbus-based SunSpec Energy Storage Models use one-based location identifiers to refer to physical, countable entities.

For example, the location of the first cell within a stack is defined as Cell Interface 1, Cell 1—i.e. it is the first cell in the first Low-Voltage BMS. The index of this first cell is defined as zero within the firmware.

4.1.1.2. Register Expressions

Registers are accessed by name in Nuvation Energy BMS tools and configuration. Each register also has a unique address that is used internally within the BMS.

4.1.1.2.1. Single Register Instance

This expression is used when assigning to or reading from a single register in the system and is of the form:

component_name.register_name

where:

  • component_name is the name of the component within the system

  • register_name is the name of the register within the component

4.1.1.2.2. Range of Register Instances

These expressions build on the single register references by adding an additional range expression in square brackets:

component_name[range_expression].register_name

The range_expression may take any of the following forms:

  • index - A single instance of component_name.register_name at index. Note that cell[0].voltage is equivalent to cell.voltage.

  • start_index:end_index - All instances from start_index through end_index. The expression cell[0:3].voltage expands into:

    cell[0].voltage
    cell[1].voltage
    cell[2].voltage
    cell[3].voltage
  • start_index:end_index:block_length - All instances from start_index through end_index within a repeating block of block_length across all instances of the register. For example if there were N instances of the register cell.voltage, the expression cell[0:3:16].voltage expands into:

    cell[0].voltage
    cell[1].voltage
    cell[2].voltage
    cell[3].voltage
    cell[16].voltage
    cell[17].voltage
    cell[18].voltage
    cell[19].voltage
    cell[32].voltage
    cell[33].voltage
    cell[34].voltage
    cell[35].voltage
    ...
    cell[N-16].voltage
    cell[N-15].voltage
    cell[N-14].voltage
    cell[N-13].voltage
  • start_index:end_index:block_length:block_count - All instances from start_index through end_index within a repeating block of block_length repeated block_count times. The expression cell[0:3:16:2].voltage expands into:

    cell[0].voltage
    cell[1].voltage
    cell[2].voltage
    cell[3].voltage
    cell[16].voltage
    cell[17].voltage
    cell[18].voltage
    cell[19].voltage

    In this case, only the first 2 blocks of 16 instances are included, rather than all blocks of 16 instances.

4.1.1.2.3. All Register Instances

A compact syntax can be used to expand to all instances of a given register within the system. The expression:

component_name[*].register_name

expands to all instances of component_name.register_name within the system. For example, the expression cell[*].voltage expands into:

cell[0].voltage
cell[1].voltage
cell[2].voltage
cell[3].voltage
cell[4].voltage
cell[5].voltage
cell[6].voltage
cell[7].voltage
cell[8].voltage
cell[9].voltage
cell[10].voltage
cell[11].voltage
cell[12].voltage
cell[13].voltage
cell[14].voltage
cell[15].voltage
cell[16].voltage
.
.
.
cell[N-3].voltage
cell[N-2].voltage
cell[N-1].voltage

where N is the total number of instances of the register cell.voltage within the system.

4.1.1.2.4. Register Address

In some cases, it is necessary to use the address of a register as a configuration value for another register in the system. This is required when assigning input and output pins to functions within the BMS, for example.

The expression:

@component_name.register_name

expands to the address of the register in the system. The single-instance range expression may be used for register addresses. For example:

@component_name[index].register_name

expands to the address of component_name.register_name at index in the system.

4.1.2. Units

A standard set of types/units has been adopted for use within Nuvation Energy BMS for the measurements and configuration settings. Unless otherwise noted, the units used within the firmware should be assumed as defined below.

Table 7. Standard Types and Units
Type Units Variable Type Application

Address

none

uint32

BMS register address

Boolean

false=0, true=1

uint8

Logic value

Charge

mAh

int32

Depth of discharge and throughput

Count

number

uint32

A positive count of some event

Crc16

none

uint16

Used to verify persistent data

Current

mA

int32

Stack and pack currents

CurrentNano

nA

int32

Current in nano amps

Energy

Wh

uint32

Energy capacity of a stack

Farads

μFarads

uint32

Capacitance of cells

Float

value

float

Single precision floating point

Int64

value

int64

Signed 64 bit integer

Impedance

Ω

uint32

Resistance of a stack

ImpedanceMili

uint32

Resistance of a stack

IpAddress

IP

uint32

IP4 address for a stack

LogLevel

none

uint32

Log level applied the BMS firmware

MicroOhms

μΩ

uint32

Resistance of a cell

Microseconds

μs

uint64

Time measurement or period

Percentage

%

uint8

Percentage of a full scale value (e.g. SoC)

PowerW

W

int32

Rated power of a stack

SoftwareId

enum

uint32

Enumeration for type of G4 Cell Interface

Temperature

°C

int16

Thermistor temperatures

String

none

char[8]

Storage for 8 characters

UInt8

value

uint8

Unsigned 8 bit integer

UInt16

value

uint16

Unsigned 16 bit integer

UInt64

value

uint64

Unsigned 64 bit integer

Voltage

mV

int32

Cell and stack voltages

Every register within the firmware has an associated type that defines the expected units for that register.

A negative value for Current represents a charge direction while a positive value represents a discharge direction with respect to the cell/stack. Some Current registers represent the magnitude of the current and are never negative in value. These register exceptions include the following:

  • stack_current_limit.min_charge_current

  • stack_current_limit.max_charge_current

  • stack_current_limit.max_discharge_current

  • stack_charge_status.hold_current

  • stack_control.precharge_max_current

  • stack_control.precharge_bias_current

  • stack_fault_precharge_over_current.thresh

4.1.3. Storage Types

Each register in Nuvation Energy BMS can be one of five storage types.

Volatile
  • Data that is not persisted across a system reset

Configuration
  • Data that is persisted on the service page via loading a configuration file.

Persistent
  • Data that is persisted and regularly saved

Factory
  • Data that is persisted when requested and is typically set at the factory

Manufacturing
  • Data that is persisted and saved at manufacturing time

These types of storage can be read directly from the Operator Interface Registers menu option as discussed in Section 5.3.3.1, “Registers”.

4.1.4. Configuration File

Configuration is stored externally to Nuvation Energy BMS in a plain-text file. This file defines the state of configuration registers as required for a particular system.

To generate a configuration file for a stack, visit the nCloud at: https://ncloud.nuvationenergy.com. nCloud is the Nuvation Energy online portal.

The Operator Interface provides tools for importing and exporting configuration files to and from Nuvation Energy BMS as a way to set or retrieve the state of all configuration registers.

The configuration file format is plain ASCII text with the following syntax:

  • Any lines starting with a leading # are treated as comments.

  • Each non-comment line is treated as a register assignment statement.

A register assignment takes on the form register_expression = value where:

Any standard text editor can be used to edit configuration files (e.g. Notepad++, etc.).

A configuration file cannot be used to configure the IP settings of a stack.

Stack IP configuration is detailed in the Appendix F, BMS Network Configuration.

When a Battery Management System has been configured for Factory Lockdown there are a set of components that will have all their register protected from most write operations. Attempting to perform a write operation via a register addressing (for example using a Digital Inputs) will silently fail. Please refer to Section 4.2.4, “Restricted Register Write Operations” for further details.

4.2. Factory Lockdown

Factory Lockdown is a mechanism for users to lock registers with Factory storage type as read-only. This is typically used to protect safety related configurations for safety certification purposes.

4.2.1. Configuring Factory Registers

Factory registers can be configured in the same way normal configuration registers can be set. They can be set through the Operator Interface Registers menu option (Section 5.3.3.1, “Registers”) or applied by uploading a configuration file. Factory registers can only be configured when the system is not in Factory Lockdown.

4.2.2. Enabling Factory Lockdown

Factory Lockdown can be enabled by writing to specific registers from the Operator Interface. The user must follow the process below for the Nuvation Energy BMS to be considered factory-locked.

  1. Ensure all factory registers are configured to their desired value

  2. Write 1 to sc_factory_lockdown.requested_state

  3. Write 1 to sc_factory_persist.save

  4. Wait until sc_factory_persist.save is equal to 0

  5. Verify sc_factory_lockdown.actual_state is equal to 1

  6. Write 1 to pi_factory_lockdown.requested_state

  7. Write 1 to pi_factory_persist.save

  8. Wait until pi_factory_persist.save is equal to 0

  9. Verify pi_factory_lockdown.actual_state is equal to 1

4.2.3. Clearing Factory Lockdown

A system can only exit Factory Lockdown through a firmware upgrade or a factory reset .

For performing a factory reset, refer to Appendix C, Factory Reset.

4.2.4. Restricted Register Write Operations

When Factory Lockdown has been enabled, all register writes are restricted through external interfaces (e.g. Modbus-TCP, HTTP) with some exceptions. A 'whitelist' of registers which can be written to when in Factory Lockdown and are excluded from write protection are listed in Table 8, “Factory Lockdown Whitelist”.

Table 8. Factory Lockdown Whitelist
Register Name Register Address

sc_op_state.requested_state

279776

sc_boot.requested_state

229376

stack_trigger_summary.clear_faults

131081

stack_trigger_summary.clear_warnings

131082

stack_factory_trigger_summary.clear_faults

221449

stack_factory_trigger_summary.clear_warnings

221450

sc_linkbus.cell_open_wire_manual_scan

69650

sc_linkbus.diagnostics

69653

stack_control.requested_state

200705

stack_contactor.requested_value

102401

stack_breaker.request_state

196610

stack_breaker.reset

196622

sc_gpo.value

94209

sc_client_id.uuid_lsb

279312

sc_client_id.uuid_msb

279313

sc_controller_wdt.expired

221184

sc_controller_heartbeat.value

278784

sc_pcs.state

279296

sc_modbus_rtu.transaction_complete

279041

sc_stackbus_packets.tx_count

77840

sc_stackbus_packets.tx_err_count

77841

sc_stackbus_packets.rx_count

77842

sc_stackbus_packets.rx_err_count

77843

sc_canbus_packets.tx_count

73984

sc_canbus_packets.tx_err_count

73985

sc_canbus_packets.rx_count

73986

sc_canbus_packets.rx_err_count

73987

sc_persist.save

18432

sc_persist.load

18433

sc_persist.error

18434

sc_aux_persist.save

18456

sc_aux_persist.load

18457

sc_aux_persist.error

18458

sc_ci_persist.save

24576

sc_ci_persist.load

24577

sc_ci_persist.error

24578

sc_val_persist.save

18464

sc_val_persist.load

18465

sc_val_persist.error

18466

cell_val_persist.save

18480

cell_val_persist.load

18481

cell_val_persist.error

18482

sc_locked_cfg_persist.save

18496

sc_locked_cfg_persist.load

18497

sc_locked_cfg_persist.error

18498

sc_clock_err_stats.reset

168019

sc_stackbus_stat.reset

212995

sc_stack_stat.reset

213251

sc_linkbus_stat.reset

213507

sc_rom_test_stat.reset

213763

sc_ram_test_stat.reset

214019

stack_cell_soc_stat.update

298573

stack_cell_soc_variance_stat.update

298583

stack_cell_soh_stat.update

274437

stack_balance_stat.update

281349

stack_soc.reset

90115

stack_soc.reset_soc

90116

stack_soc.reset_capacity

90117

stack_soc.measured_capacity

90125

stack_soc.adaptive_soc

90120

stack_soc.accumulative_soc

90119

cell_states.soc

293659

cell_states.vp

293658

cell_states.soc_variance

293661

cell_states.vp_variance

293660

cell_model.instantaneous_resistance

281376

cell_model.polarization_resistance

281378

cell_charge.throughput_reset

233475

cell_model.ohmic_resistance

281377

pi_op_state.requested_state

7712

pi_boot.requested_state

32

pi_fsm_stat.reset

7427

pi_afe_stat.reset

7939

pi_rom_test_stats.reset

7763

pi_stackbus_stat.reset

7683

pi_contactor_stats.reset

7795

pi_clock_err_stats.reset

7779

pi_aux_persist.save

4448

pi_aux_persist.load

4449

pi_aux_persist.error

4450

pi_stackbus_packets.tx_count

7808

pi_stackbus_packets.rx_count

7810

pi_stackbus_packets.tx_err_count

7809

pi_stackbus_packets.rx_err_count

7811

Configuration storage typed registers can be written to and are exempt from this rule. Refer to Section 4.1.3, “Storage Types” for information on register storage types.

4.3. Battery Parameters

These following settings are used to configure State-of-Charge (SoC) and State-of-Health (SoH) algorithms for operation with a particular battery chemistry.

4.3.1. Stack Capacity

Battery stack capacity is defined as the total amount of charge that can be extracted from a battery stack when discharging from full to empty, assuming current limits are properly followed. Nominal (or design) capacity is configured as follows:

stack_soc.nominal_capacity
  • Nominal capacity of the battery stack

  • Set to the capacity that would correspond to a full discharge

The nominal capacity of the stack is identical to that of the cells used within the stack, where a cell may be one or more electro-chemical cells directly connected in parallel. The actual capacity of the battery stack maybe less than this nominal capacity due to imbalances in SoC and capacity fade of the cells with usage. Correct configuration of the nominal capacity is essential for accurate SoC and SoH estimation.

4.3.2. Stack Cycle Count

In addition to the nominal capacity, the nominal cycle count for the battery stack is required for SoH estimation based upon cycle count.

stack_soc.nominal_cycle_count
  • Set to the expected cycle life of the battery stack assuming full discharge cycles at the configured maximum operating current

  • Set to zero to ignore cycle count for SoH

4.3.3. State-of-Health

The State-of-Health (SoH) is a value that can be used to describe the battery’s current performance relative to its performance at beginning of life. Nuvation Energy BMS estimates SoH by using one or both of the following two metrics:

  1. Cycle count: SoH for a specific cell can be defined as the ratio of the number of equivalent cycles to the nominal cycle count. At the stack level, the SoH will be the minimum of the cell SoH values.

  2. Battery capacity: Capacity based SoH can be defined as the ratio of the current measured capacity to the nominal capacity value. Note that this SoH value will also include charge imbalance.

There are two ways State-of-Health can be configured using the above two metrics:

  1. Capacity based SoH:

    1. Configure the nominal capacity as describe in the battery capacity section.

    2. Set the stack_soc.nominal_cycle_count register to zero.

  2. Capacity and cycle count based SoH:

    1. Configure both the battery capacity and cycle count.

    2. The SoH estimate will be the minimum of the stack capacity SoH and the stack cycle count SoH.

Currently, we cannot configure SoH based only on cycle count. SoH will always have a capacity based component to it.

4.3.4. State of Charge (SoC)

The state of charge of a battery is a measure of the percentage of charge contained in the battery that is available for discharge. The BMS can be configured to measure the state of charge using two different methods:

  1. Accumulated SoC: Continuously measures and accumulates the charge that is charged/discharged to/from the battery.

  2. Adaptive SoC: Augments the accumulated measurements with an adaptive SoC algorithm. This latter technique compensates for errors due to integration over long periods of time and for factors such as self discharge which can not be directly measured by a BMS. The algorithm requires a configuration of the open circuit voltage for the battery.

The following parameters are used to select and enable which state of charge for the Nuvation Energy BMS.

Table 9. Current Full Condition Configuration
Register Type Units Description

stack_soc.enable

config

bool

Enables the state of charge measurement when set to one. Applies to both SoC techniques

stack_soc.output_select

config

enum

Selects which technique of state of charge is used for output on the following registers. Zero selects the accumulated SoC measurement and one selects the adaptive SoC algorithm.

stack_soc.soc

output

percentage

The current state of charge of the battery

stack_soc.dod

output

mAhr

The current depth of discharge of the battery

The adaptive state of charge algorithm does require more detailed configuration settings for proper use. Please contact support@nuvationenergy.com for help in configuring this algorithm for your battery chemistry. This algorithm is not currently recommended for LFP chemistries.
The SunSpec Energy Storage Models Modbus point definition for SoC and DoD uses the data from the registers noted above for output.

The end limits for the state of charge (i.e. 0% and 100%) are defined by the full and empty conditions of a battery. The following subsections provide details on these end conditions and how they are configured.

4.3.4.1. Battery Empty Condition

Nuvation Energy BMS supports the definition of the empty condition using either or both min/max and average cell voltages, as configured using the following registers.

stack_soc.vempty
  • Defines fully discharged minimum cell voltage for operation

  • Set as per application requirements, or set to zero to disable

stack_soc.vemptyavg
  • Defines fully discharged average cell voltage for operation

  • Set as per application requirements, or set to zero to disable

When discharging near the bottom of the battery, if the empty conditions are not met the battery will remain at 1% SoC.

For battery chemistries that do not tolerate over-discharge, the empty conditions are typically applied against the minimum cell voltages. stack_soc.vemptyavg should be set to 0 mV for most applications.
These voltage settings must be carefully aligned with the minimum Cell Voltage Thresholds and Stack Voltage Thresholds for proper SoC operation.
4.3.4.2. Battery Full Condition

A battery can reach the full condition while charging (i.e. when the BMS reads negative current measurements) Nuvation Energy BMS supports the definition of the full condition using a combination of cell voltage and battery current measurements. This condition is configurable using the following register settings.

stack_soc.vfull
  • Defines fully charged maximum cell voltage for operation

  • Set as per application requirements, or set to zero to disable

stack_soc.vfullavg
  • Defines fully charged average cell voltage for operation.

  • Set as per application requirements, or set to zero to disable.

stack_soc.ifull
  • Defines the largest negative current before the battery is considered full.

  • Value must be negative to represent a current in the charge direction.

  • Set to a large negative value (default) if this condition is not applicable.

stack_charge_status.hold_current
  • Defines the upper bound for the current full condition.

  • Configured as a positive value.

  • Software will use the negative value of this setting for the full condition.

  • Should be larger than the noise measurement of the current.

stack_soc.ifull_period
  • Defines the period a current must between the prior thresholds before the full current condition is met.

  • Configured as a positive value in microseconds.

  • Set to a value of zero if no period is desired.

A battery is full (reaches 100% SoC) if all three of the following conditions are met:

  1. The full voltage condition is met (either/both maximum or average setting).

  2. The battery current is between the full current threshold and the negative hold current.

  3. The battery current is maintained between the prior thresholds for the duration of the ifull period.

For example, assume the following:

vfull        = 3600 mV
vfullavg     = 0
ifull        = -1000 mA
hold_current = 5 mA
ifull_period = 1000000 microseconds

The full condition would be met when the first cell voltage equals or was greater than 3.6 V AND when the current was between -1000 and -5 mA for a duration of one second.

When charging at the top end of the battery, if the full conditions are not met the battery will remain at 99% SoC.

For battery chemistries that do not tolerate overcharge and make use of electrical balancing circuits to keep cells balanced (e.g. Lithium-Ion), the full conditions are typically applied against the maximum cell voltages. But for chemistries that make use of overcharge during the charging process as a way to balance the stack (e.g. lead acid), the empty conditions are typically applied against the average cell voltage.
These voltage settings must be carefully aligned with the maximum Cell Voltage Thresholds and Stack Voltage Thresholds for proper SoC operation.

4.3.5. Open Circuit Voltage Curve

Nuvation Energy BMS supports the use of a open-circuit voltage (OCV) table for the battery cells. The component stack_ocv_lut stores the voltages unique for each SoC percentage (total of 101 entries). The first table entry represents 0 percent and the last entry represents 100 percent. The voltages must be consistent with the defined the cell voltage range of empty to full.

The OCV curve can be used to estimate the SoC of a stack when it is at rest. Contact support@nuvationenergy.com for details on how to perform this estimation.

4.3.6. Cell Resistance Estimation

The Nuvation Energy BMS can be configured to estimate the per cell resistance of every installed cell during charge/discharge usage. To learn more about this feature and how to configure and use it, please contact support@nuvationenergy.com.

4.3.7. Nameplate Information

Nuvation Energy BMS can be configured to display nameplate information about the battery stack.

stack_nameplate.label0
  • First 8 characters of the battery stack’s name which will be displayed as a banner on the Operator Interface

stack_nameplate.label1
  • Next 8 characters of the battery stack’s name after stack_nameplate.label0

stack_nameplate.label2
  • Next 8 characters of the battery stack’s name after stack_nameplate.label1

stack_nameplate.label3
  • Next 8 characters of the battery stack’s name after stack_nameplate.label2

stack_nameplate.battery_type
  • Type of battery, corresponding to SunSpec (Draft 3) model 801 Point: BatTyp

stack_nameplate.energy_capacity
  • The nameplate energy capacity of the battery stack in Wh, corresponding to SunSpec (Draft 3) model 801 Point: WHRtg

stack_nameplate.max_charge_rate
  • The nameplate maximum rate of energy transfer into the battery stack in W, corresponding to SunSpec (Draft 3) model 801 Point: WMaxChaRte

stack_nameplate.max_discharge_rate
  • The nameplate maximum rate of energy transfer out of the battery stack in W, corresponding to SunSpec (Draft 3) model 801 Point: WMaxDisChaRte

stack_nameplate.max_soc
  • The nameplate maximum state of charge expressed as a percentage, corresponding to SunSpec (Draft 3) model 801 Point: SoCNpMaxPct

stack_nameplate.min_soc
  • The nameplate minimum state of charge expressed as a percentage, corresponding to SunSpec (Draft 3) model 801 Point: SoCNpMinPct

4.4. Stack Topology

Configuring the battery stack topology requires that the following be specified:

  • Which cell voltage taps are actually connected to cells

  • Which thermistor inputs are actually connected to thermistors

4.4.1. Cell Inputs

The Low-Voltage BMS—along with its expansion G4 Cell Interface module—may be connected to fewer cells than the maximum supported number of cell inputs.

The following registers are used to indicate which cells are actually present in the system. The index n is the zero-based index of the cell input.

cell[n].installed
  • Indicates a cell is physically connected

  • Set to 1 if connected

  • Set to 0 if not connected

Cell indexing is statically assigned in such a way that cell[0] always refers to the first cell on the Low-Voltage BMS.

When using a G4 Cell Interface expansion module, cell[16] refers to the first cell in the G4 Cell Interface expansion module.

4.4.2. Thermistor Inputs

The Low-Voltage BMS—along with its expansion G4 Cell Interface module—may be connected to fewer than the maximum supported number of thermistors. The following registers are used to indicate which thermistors are actually present in the stack. The index n is the zero-based index of the thermistor input.

therm[n].installed
  • Indicates a thermistor is physically connected

  • Set to 1 if connected

  • Set to 0 if not connected

Thermistor indexing is statically assigned in such a way that therm[0] always refers to the first thermistor on the Low-Voltage BMS.

When using a G4 Cell Interface expansion module, therm[8] refers to the first thermistor in the G4 Cell Interface expansion module.

4.5. Operational Limits

The operational limits of a battery stack are captured in the form of voltage, temperature, and current thresholds. These thresholds must be set correctly for your battery cells and DC bus system so that the BMS can:

  1. Control current during charging and discharging to keep the battery within normal operating limits.

  2. Warn operators and external systems if the battery is not within normal operating limits

  3. Disconnect the battery from the DC bus under a fault condition if the battery is approaching unsafe limits

Nuvation Energy BMS can either be in an operating or non-operating zone. The operating zone is also known as the All Clear zone while the non-operating zone is further divided into the Warning and Fault zones. All three zones are illustrated below graphically.

system zones
Figure 49. Battery Management System Zones
All Clear
  • The All Clear zone represents the subset of all system states that can be reached under normal, fully controlled operation. With proper configuration and functional control, a system should never leave this zone.

Warning
  • The Warning zone describes the region where the battery cells are not within their normal operating limits and Nuvation Energy BMS is taking action to try and bring the system back into the operating zone.

Fault
  • The Fault zone describes the region where the battery cells are approaching unsafe limits. There are two thresholds within this zone: the Fault Threshold and the Over/Under Fault Threshold. At least one of the two thresholds should be enabled.

    • At the Fault Threshold, Nuvation Energy BMS will gracefully disconnect the battery from the DC bus and shut down the inverter. When the battery cells return to an operable state, Nuvation Energy BMS can be configured to automatically reconnect the battery to the DC bus.

    • At the Over/Under Fault Threshold, Nuvation Energy BMS will disconnect the battery cells as quick as possible. An explicit user action is required to bring the system back into an operating state at this point. These faults must be enabled for functional safety compliance for UL 1973 or UL 9540.

4.5.1. Triggers

The fundamental building block used to define thresholds throughout Nuvation Energy BMS are trigger components. There are four types of trigger components, each described in the following sections.

4.5.1.1. Basic Triggers

A Basic Trigger is the most fundamental type of trigger in Nuvation Energy BMS. This trigger is latching meaning a tripped trigger will not self-clear when the trigger condition is cleared. The trigger will remain tripped until explicitly cleared through an external request via the Operator Interface or a supported protocol.

trigger_name.thresh
  • The input must meet or exceed this threshold to trip the trigger.

trigger_name.disabled
  • Set to 0 to enable the trigger

  • Set to 1 to disable the trigger

4.5.1.2. Boolean Triggers and Standalone Triggers

Boolean and Standalone Triggers are specific types of Basic Triggers where the trigger is tripped based on either a 1 or 0 value. The two triggers are identical except for how they are tripped. Both triggers are latching. The following register is used to configure these types of triggers.

trigger_name.disabled
  • Set to 0 to enable the trigger

  • Set to 1 to disable the trigger

4.5.1.3. Hysteresis Triggers

A Hysteresis Trigger provides a means of hysteresis to the triggering condition. This trigger can be configured to be latching or non-latching. The following registers are used to configure this type of trigger.

trigger_name.thresh
  • The input must meet or exceed this threshold to trip the trigger

trigger_name.time_hyst
  • The elapsed time that the input must meet or exceed the threshold in order to trip the trigger

  • Set to 0 to configure a trigger that trips instantly

trigger_name.end_time_hyst
  • The elapsed time that the input must recover (i.e. remain below the threshold) before the trigger will clear

  • Set to 0 to configure a trigger that clears instantly

  • Set to > 0 to configure a trigger that clears after the defined period of time

trigger_name.latched
  • Set to 1 for latching trigger behavior

  • Set to 0 for non-latching trigger behavior

trigger_name.disabled
  • Set to 0 to enable the trigger

  • Set to 1 to disable the trigger

4.5.1.4. User-Defined Triggers

A user-defined trigger provides a separate way to create a high/low signal based on BMS measurements. The user-defined triggers are not connected into any of the prior warning or fault reporting and operate independently. A user-defined trigger is will not open contactors when triggered. Once configured, the triggered state of any user-defined trigger could be directed to a General Purpose Output for external control/notification outside of Nuvation Energy BMS.

A user-defined trigger is configured identically as the hysteresis trigger.

All user defined triggers have the following two naming formats:

  • stack_trig_<measurement>_<condition>

4.5.2. Cell Voltage Thresholds

The following diagram illustrates how cell voltage trigger thresholds are configured in typical applications.

voltage protection thresholds
Figure 50. Typical Arrangement of Cell Voltage Thresholds

These thresholds also affect the current limits of the system as shown below.

voltage current limits
Figure 51. Typical Arrangement of Cell Voltage Current Limits

Most systems will make use of thresholds configured in the following order of decreasing cell voltage.

Table 10. Cell Voltage Operational Limits
Register Setting

stack_fault_cell_over.thresh

The limit within the fault zone above which an explicit user operation is required to bring the system back into an operating state.

stack_fault_cell_hi.thresh

The upper limit of the warning zone as per cell specifications. Set just below stack_fault_cell_over.thresh to allow a self-clearing range within the fault zone.

stack_warn_cell_hi.thresh

The upper limit of the operating zone. Set just above stack_current_limit.voltage_cell_max.

stack_current_limit.voltage_cell_max

The voltage at which charge limits approach 0%. Set just above stack_soc.vfull.

stack_current_limit.voltage_cell_high

The voltage at which charge current limits are reduced from 100%. Set as per application requirements.

stack_current_limit.voltage_cell_low

The voltage at which discharge current limits are reduced from 100%. Set as per application requirements.

stack_current_limit.voltage_cell_min

The voltage at which discharge limits approach 0%. Set just below stack_soc.vempty.

stack_warn_cell_lo.thresh

The lower limit of the operating zone. Set just below stack_current_limit.voltage_cell_min.

stack_fault_cell_lo.thresh

The lower limit of the warning zone as per cell specifications. Set just above stack_fault_cell_under.thresh to allow a self-clearing range within the fault zone.

stack_fault_cell_under.thresh

The limit within the fault zone below which an explicit user operation is required to bring the system back into an operating state.

stack_uvlo_cell_voltage.thresh

The under-voltage lockout threshold for system shutdown.

The under-voltage lockout trigger itself does not shut down the BMS when a cell voltage drops below this level. The Low-Voltage BMS has built-in power switching hardware that can be driven off of this trigger. Refer to Section 4.10.5, “Under-Voltage Lockout” for more details.

stack_fault_cell_over.thresh may or may not be different from stack_fault_cell_hi.thresh, depending upon system requirements. For example, if a battery system is expected to implement self-clearing (non-latching) faults during operation, the stack_fault_cell_hi.thresh must be set slightly below stack_fault_cell_over.thresh. This allows the stack_fault_cell_hi trigger to prevent the stack_fault_cell_over trigger from engaging, which would require an explicit clear action. If the stack_fault_cell_over.thresh and stack_fault_cell_hi.thresh are identical, it is impossible to implement self-clearing behavior on high voltage conditions. The same applies to under-voltage conditions.

The stack_fault_cell_[over/under] or the stack_fault_cell_[hi/lo] trigger can be disabled if only one behavior is necessary. The stack_fault_cell_[over/under] triggers must be enabled for safety compliance to UL 1973 or UL 9540.

User-defined triggers are also available for high and low cell voltages.

Table 11. User-Defined Cell Voltage Triggers
Register Setting

stack_trig_cell_hi.thresh

User-defined high cell voltage trigger

stack_trig_cell_lo.thresh

User-defined low cell voltage trigger

4.5.3. Thermistor Temperature Thresholds

Separate configuration thresholds are provided for charging and discharging as many cells have different temperature limits in these two modes of operation. Charge triggers will only trip while the stack is charging, while discharge triggers will only trip while the stack is discharging or resting.

The following diagrams illustrates how temperature trigger thresholds are configured in typical applications.

temperature protection thresholds
Figure 52. Typical Arrangement of Temperature Thresholds

These thresholds also affect the current limits of the system as shown below.

temperature current limits
Figure 53. Typical Arrangement of Temperature Current Limits

Most systems will make use of thresholds configured in the following order of decreasing thermistor temperature.

Table 12. Charge Temperature Operational Limits
Register Setting

stack_fault_charge_therm_over.thresh

The limit within the fault zone above which an explicit user operation is required to bring the system back into an operating state.

stack_fault_charge_therm_hi.thresh

The upper limit of the warning charging zone as per cell specification.

stack_warn_charge_therm_hi.thresh

The upper limit of the operating charging zone. Set just above stack_current_limit.temperature_charge_max.

stack_current_limit.temperature_charge_max

The temperature at which current limits approach 0% during charging.

stack_current_limit.temperature_charge_high

The temperature at which current limits are reduced from 100% during charging.

stack_current_limit.temperature_charge_low

The temperature at which current limits are reduced from 100% during charging.

stack_current_limit.temperature_charge_min

The temperature at which current limits approach 0% during charging.

stack_warn_charge_therm_lo.thresh

The lower limit of the operating charging zone. Set just below stack_current_limit.temperature_charge_min.

stack_fault_charge_therm_lo.thresh

The lower limit of the warning charging zone as per cell specification.

stack_fault_charge_therm_under.thresh

The limit within the fault zone below which an explicit user operation is required to bring the system back into an operating state.

Table 13. Discharge Temperature Operational Limits
Register Setting

stack_fault_discharge_therm_over.thresh

The limit within the fault zone above which an explicit user operation is required to bring the system back into an operating state.

stack_fault_discharge_therm_hi.thresh

The upper limit of the warning discharging zone as per cell specification.

stack_warn_discharge_therm_hi.thresh

The upper limit of the operating discharging zone. Set just above stack_current_limit.temperature_discharge_max.

stack_current_limit.temperature_discharge_max

The temperature at which current limits approach 0% during discharging.

stack_current_limit.temperature_discharge_high

The temperature at which current limits are reduced from 100% during discharging.

stack_current_limit.temperature_discharge_low

The temperature at which current limits are reduced from 100% during discharging.

stack_current_limit.temperature_discharge_min

The temperature at which current limits approach 0% during discharging.

stack_warn_discharge_therm_lo.thresh

The lower limit of the operating discharging zone. Set just below stack_current_limit.temperature_discharge_min.

stack_fault_discharge_therm_lo.thresh

The lower limit of the warning discharging zone as per cell specification.

stack_fault_discharge_therm_under.thresh

The limit within the fault zone below which an explicit user operation is required to bring the system back into an operating state.

The temperature charge and discharge thresholds can be configured in a similar manner to how the cell voltage thresholds (Section 4.5.2, “Cell Voltage Thresholds”) are configured.

User-defined triggers are also available for high and low thermistor temperature during both charge and discharge.

Table 14. User-Defined Charge Temperature Triggers
Register Setting

stack_trig_charge_therm_hi.thresh

User-defined threshold for charge high temperature trigger.

stack_trig_charge_therm_lo.thresh

User-defined threshold for charge low temperature trigger.

Table 15. User-Defined Discharge Temperature Triggers
Register Setting

stack_trig_discharge_therm_hi.thresh

User-defined threshold for discharge high temperature trigger.

stack_trig_discharge_therm_lo.thresh

User-defined threshold for discharge low temperature trigger.

4.5.4. Stack Current Thresholds

The following diagrams illustrate how current trigger thresholds are configured in typical applications.

current protection thresholds
Figure 54. Typical Arrangement of Current Thresholds

The stack current thresholds are used to define the limits of the operating zone and non-operating zone for charge and discharge currents. These limits must factor in the specifications of the battery cells as well as the limits of any DC current-carrying paths in the stack.

Table 16. Stack Current Operational Limits
Register Setting

stack_fault_charge_current_over.thresh

The limit within the fault zone above which an explicit user operation is required to bring the system back into an operating state.

stack_fault_charge_current_hi.thresh

The limit of the warning charging zone as per cell specification and stack design limits.

stack_warn_charge_current_hi.thresh

The limit of the operating charging zone as per application requirements.

stack_warn_discharge_current_hi.thresh

The limit of the operating discharging zone as per application requirements.

stack_fault_discharge_current_hi.thresh

The limit of the warning discharging zone as per cell specification and stack design limits.

stack_fault_discharge_current_over.thresh

The limit within the fault zone below which an explicit user operation is required to bring the system back into an operating state.

The stack current thresholds can be configured in a similar manner to how the cell voltage thresholds (Section 4.5.2, “Cell Voltage Thresholds”) are configured. The stack_fault_[charge/discharge]_current_hi faults are typically configured with a small amount of trip time hysteresis (e.g. approximately 100–200 ms).

User-defined triggers are also available for charge and discharge currents.

Table 17. User-Defined Stack Current Triggers
Register Setting

stack_trig_charge_current_hi.thresh

User-defined charge current trigger.

stack_trig_discharge_current_hi.thresh

User-defined discharge current trigger.

Charge current thresholds are specified as negative values and discharge current thresholds are specified as positive values.

4.5.5. Stack Voltage Thresholds

The following diagrams illustrate how stack voltage trigger thresholds are configured in typical applications.

voltage protection thresholds
Figure 55. Typical Arrangement of Stack Voltage Thresholds

These thresholds also affect the current limits of the system as shown below.

voltage current limits
Figure 56. Typical Arrangement of Stack Voltage Current Limits

Stack voltage thresholds are used to define the operating voltage limits of the overall battery stack design. These thresholds are used to enforce the design limits of the battery stack or DC bus as a whole. For example, it may be necessary to limit the overall stack voltage within a certain limited range to maintain compatibility with a specific charger or inverter. Stack voltage limits also are used to ensure that average cell voltage is maintained within specified limits.

Most systems will make use of thresholds configured in the following order of decreasing stack voltage.

Table 18. Stack Voltage Operational Limits
Register Setting

stack_fault_voltage_over.thresh

The limit within the fault zone below which an explicit user operation is required to bring the system back into an operating state.

stack_fault_voltage_hi.thresh

The upper limit of the warning zone as per application requirements.

stack_warn_voltage_hi.thresh

The upper limit of the operating zone. Set just above stack_current_limit.voltage_stack_max.

stack_current_limit.voltage_stack_max

The voltage at which charge limits approach 0%. Set as per application requirements.

stack_current_limit.voltage_stack_high

The voltage at which charge current limits are reduced from 100%. Set as per application requirements.

stack_current_limit.voltage_stack_low

The voltage at which discharge current limits are reduced from 100%. Set as per application requirements.

stack_current_limit.voltage_stack_min

The voltage at which discharge limits approach 0%. Set as per application requirements.

stack_warn_voltage_lo.thresh

The lower limit of the operating zone. Set just below stack_current_limit.voltage_stack_min.

stack_fault_voltage_lo.thresh

The lower limit of the warning zone as per application requirements.

stack_fault_voltage_under.thresh

The limit within the fault zone below which an explicit user operation is required to bring the system back into an operating state.

stack_uvlo_stack_voltage.thresh

The under-voltage lockout threshold for system shutdown.

The under-voltage lockout trigger itself does not shut down the BMS when the stack voltage drops below this level. The Low-Voltage BMS has built-in power switching hardware that can be driven off of this trigger. Refer to Section 4.10.5, “Under-Voltage Lockout” for more details.

The stack voltage thresholds can be configured in a similar manner to how the cell voltage thresholds (Section 4.5.2, “Cell Voltage Thresholds”) are configured.

User-defined triggers are also available for high and low stack voltages.

Table 19. User-Defined Stack Voltage Triggers
Register Setting

stack_trig_voltage_hi.thresh

User-defined high stack voltage trigger.

stack_trig_voltage_lo.thresh

User-defined low stack voltage trigger.

Since stack voltage is measured independently from individual cell voltages in Nuvation Energy BMS, another important configuration threshold is the limit for mismatch between the overall stack voltage measurement and the sum of individual cell voltages.

stack_fault_voltage_sum.thresh
  • The upper limit of the operating voltage mismatch zone

  • Set as per application requirements (typically at least 5–10% of stack_fault_voltage_over.thresh)

4.5.6. External Controller Heartbeat

Nuvation Energy BMS can be configured to require a heartbeat signal from an external controller in order to keep the stack online and out of fault state. A write to the SunSpec controller heartbeat register is expected at least once during the watchdog period. If a multi-stack controller—such as the Nuvation Energy Multi-Stack Controller—is in use, it can periodically write to this register to keep the stack out of fault state.

sc_controller_wdt.period
  • Trip time for watchdog if heartbeat disappears

  • Set to 5 seconds or as per application requirements

sc_fault_controller_wdt.disabled
  • Set to 0 to enable controller watchdog

  • Set to 1 to disable controller watchdog

If this feature is not used, the watchdog fault should be disabled.

4.6. Control Settings

4.6.1. Current Control

Nuvation Energy BMS controls the current flowing through a battery stack:

  1. During connection or disconnection of the battery to prevent harmful transient current events

  2. During operation of a connected battery to keep the battery within its operational limits

  3. During operation of a battery to keep the individual cells at a balanced state of charge

  4. During a fault condition in order to protect the battery

Control for cases (1) and (4) is achieved through external switching devices that are under the control of Nuvation Energy BMS. This control is limited to hard switching. Control for case (2) is achieved through current limiting signals that are used by chargers and inverters to throttle current dynamically. Control for case (3) is implemented within Nuvation Energy BMS itself through passive balancing loads that are under control of a configurable balancing algorithm.

4.6.1.1. Stack Switch Functions

Nuvation Energy BMS defines three contactor switch functions for use within typical battery configurations:

  • Pre-charge Switch: Connected during pre-charge operation only. Disconnected under fault condition.

  • Main Switch: Connected after any pre-charge operation completes. Disconnected under fault condition.

  • Stack Switch: Connected whenever either the pre-charge switch or the main switch is connected. Disconnected under fault condition.

While a pre-charge contactor is optional, virtually all systems require a main contactor to protect the battery from unsafe conditions.

A stack contactor is often used in conjunction with a main contactor, i.e. at the other end of the stack to isolate the battery stack completely from the DC bus and provide a level of contactor redundancy.

Stack connection and disconnection sequencing is illustrated in the state diagram below.

stack control states
Figure 57. Battery Stack States and Transitions

As a system is connected and disconnected from the DC bus, a configurable sequencing delay is inserted before and after the connected state. During the connected state, the BMS uses current limits to control current flowing into and out of the stack. During all other states, current limits are set to zero. This allows for graceful switching behavior with no current flow under normal connect and disconnect requests.

The switch functions defined here must be mapped to appropriate outputs for use in an actual system. This process is covered in detail in Section 4.7, “Input / Output Assignment”.
4.6.1.1.1. Auto-Connection Setting

It is sometimes desired for the Nuvation Energy BMS to automatically initiate a connection of a battery stack when:

  • The BMS powers on

  • After all faults have been cleared

This operation can be configured with the following register setting.

stack_control.auto_connect
  • When set to a value of one, the BMS will initiate a connection of the battery stack if there are no faults triggered

  • When set to a value of zero, the BMS waits for a connection request from the Operator Interface or through one of its external interface. Note a stack will not connect if there is any faults triggered.

4.6.1.1.2. Pre-Charge Switch Settings

If enabled, the pre-charge switch is engaged for a fixed (but configurable) amount of time during the pre-charge state.

A bias current can be read prior to engaging the pre-charge contactor. The bias current measured is subtracted from subsequent pre-charge current measurements. If the pre-charge over-current fault is configured, the pre-charge will terminate if the fault is triggered. At the end of the pre-charge period, the following conditions are evaluated:

  • At least one stack current sample was received

  • The absolute value of the stack current minus the bias current is compared to be smaller than a maximum threshold value

If all of the above conditions are true then the pre-charge operation was successful. Otherwise a pre-charge timeout fault is tripped. Upon successful pre-charge completion, the stack connection sequence continues. During the remaining connection sequence, both the main and pre-charge contactors are engaged. At the end of the connection sequence the pre-charge contactor is de-energized.

Pre-charge behavior is configured through the following registers as required for a particular application.

stack_control.precharge_bias_delay
  • Determines the fixed amount of time prior to pre-charge to measure any bias current in the battery stack

  • The bias current is stored in the register stack_control.precharge_bias_current at the end of this delay

  • The bias current is removed from subsequent pre-charge current measurements before applying pre-charge fault limits.

  • If enabled set to a minimum of 1 second otherwise set to 0 seconds

stack_control.disable_precharge
  • If set to 1 then pre-charge is disabled

  • If pre-charge is disabled the system will skip the pre-charge step and immediately enter the next part of the connection sequence

stack_control.precharge_delay
  • Determines the fixed amount of time the pre-charge path is energized if enabled

  • Set based upon pre-charge hardware power and thermal ratings

  • This delay is limited to a minimum duration of 1 second and a maximum duration of 10 seconds

stack_control.disable_precharge must be set to 0 for this register to have an effect
stack_control.disable_connecting
  • If value is set to 1, the system will immediately enter the connected state after pre-charge completes

stack_control.connect_delay
  • Determines the minimum time both the pre-charge and main contactors are energized during connection

  • This connection delay occurs after the pre-charge delay has successfully completed

  • Set to a minimum of 1 second to ensure both contactors are energized at the end of the duration

  • This delay is limited to a maximum duration of 10 seconds

stack_control.disable_connecting must be set to 0 for this register to have an effect
stack_control.precharge_max_current
  • Determines the maximum current flow at the end of stack_control.precharge_delay under which pre-charge can complete successfully

  • Set to ensure any in-rush currents upon main switch connection are within system ratings

  • Set to zero to disable pre-charge

stack_control.voltage_mismatch_thresh
  • Determines the maximum absolute voltage difference between the stack voltage and the DC Bus voltage at the end of stack_control.precharge_delay under which pre-charge can complete successfully

  • Set to ensure that the stack and DC bus have sufficiently equalized before continuing the connection sequence.

stack_fault_precharge_over_current.thresh
  • Sets the over-current limit at any time during pre-charge

  • If the fault is triggered, pre-charge will terminate immediately

  • Limits the power dissipated of a pre-charge resistor during a short condition allowing for a smaller resistor

stack_fault_precharge_timeout.disabled
  • Must be set to zero if pre-charge is enabled

A pre-charge operation only completes successfully if the stack current magnitude falls below the maximum pre-charge current within the configured delay time and the stack_fault_precharge_over_current does not trip.

If pre-charge is enabled the fault stack_fault_precharge_timeout must also be enabled.
4.6.1.1.3. Sequencing Delays

The following registers are used to configure the sequencing delays used before a stack enters the connected or disconnected state.

stack_control.connect_delay
  • The delay between the contactors connecting and current limits engaging after a connect request

  • This delay is important for systems using pre-charge

  • When pre-charge is used the delay must be a minimum of one second and is limited to 10 seconds maximum

stack_control.disable_connecting must be set to 0 for this register to have an effect, otherwise the system will behave as if this delay is 0s
stack_control.disconnect_delay
  • The delay between current limits disengaging and the contactors disconnecting after a disconnect request

  • This delay is important to allow a PCS time to ramp down before the BMS opens the contactors

  • This delay should not be less than one second and is limited to 10 seconds maximum

The Section 4.10.4, “Fault Pilot” is expected to be configured to allow stack connection to be maintained for stack_control.disconnect_delay period and have the PCS ramp power down before contactors. Please refer to this section for details when that fault pilot period is not maintained. This delayed response to disconnection will help in reducing the number of events that could degrade Section 4.10.10, “Contactor Life Tracking”.

4.6.2. Current Limits

The Nuvation Energy BMS supplies configurable current limits for the charge and discharge directions of a battery stack. The current limits provide a feedback to an external control system to gradually taper the current demanded from the battery as the stack approaches its full (100% SOC) and empty (0% SOC) states.

The current limits are calculated by taking the minimum of the following input variables:

The charge/discharge current limits can be accessed via the following outputs:

BMS Registers

stack_current_limit.charge_current_limit
  • The charge current limit in milliamps.

stack_current_limit.discharge_current_limit
  • The discharge current limit in milliamps.

SunSpec (Draft 3) Modbus Points

SunSpec 802 Model: Maximum Charge Current (MaxBatACha)
  • Modbus address 40106 at unit identifier 1

  • Single point of unsigned data

  • Units of Amperes once scaled

SunSpec 802 Model: Maximum Discharge Current (MaxBatADischa)
  • Modbus address 40107 at unit identifier 1

  • Single point of unsigned data

  • Units of Amperes once scaled

A scaling factor has to be applied to the current limits read from the SunSpec 802 model. The scaling factor can be read from Modbus address 404014 The scaling factor is an exponent of a base 10 adjust applied to the data read. (e.g. a scaling factor of -3 means the current limits are divided by 1000) The scaling factor is constant for the Battery Management System operation.

4.6.2.1. Current Limit Behavior

The calculated current limits are only updated to the outputs only when the Nuvation Energy BMS is in the connected state. Outside of this state, the current limits are set to zero to indicate that the external power controller should not be charging or discharging the battery stack. This behavior is most important during the Disconnecting state. When the current limits do go to zero, there will be a time granted to the external controller to ramp down power before the contactors are opened. Such behaviour allows the contactor life to be protected and avoid opening Battery Management System contactors at elevated currents.

4.6.2.2. Current Limit Configuration

The configuration for the limits of the current limits for each contributing measurement was provided in earlier sections:

The following sections detail additional configuration of current limits.

4.6.2.2.1. Maximum Operating Currents

The maximum continuous operating charge and discharge currents must be configured for current limiting to function properly. These values correspond to the current limit values that will be used during normal wide-open operation (i.e. no throttling).

stack_current_limit.max_charge_current
  • Magnitude of maximum continuous operating charge current

stack_current_limit.max_discharge_current
  • Magnitude of maximum continuous operating discharge current

The current limits given above are magnitudes only—i.e. both charge and discharge current limits are positive.
4.6.2.2.2. Minimum Charge Current

The minimum charge current is the constant charging current that should be applied as the battery reaches the end of its charge cycle. The BMS will ensure that the charge current limit does not fall below this minimum value until the battery has reached its maximum charging voltage.

stack_current_limit.min_charge_current
  • Minimum charge current to be applied at the end of charge cycle

  • Set as per battery manufacturer recommendations (typically below C/20)

This setting must be configured in conjunction with the full thresholds defined by Stack Capacity. For example, the stack can be considered full once the current limit reaches the minimum charge current.

The current limit given above is magnitude only—i.e. charge current limit is positive.
4.6.2.2.3. Current Limiting Response Times

The current limiting control loop can be tuned for stable and responsive behavior in a variety of systems. Two independent settling times are provided to allow independent adjustment of the response to decreases in current limits (attack time) and increases in current limits (decay time).

stack_current_limit.attack_settling_time
  • Settling time for decreases in current limits

  • Typically this is between 1 and 5 seconds

stack_current_limit.decay_settling_time
  • Settling time for increases in current limits

  • Typically this is on the order of 10x larger than stack_current_limit.attack_settling_time

stack_current_limit.nonlinear_rolloff
  • Enables a non-liner roll-off of the current limits when set to True (i.e. a value of one)

  • Current limits will follow a linear response when set to False (i.e. a value of zero)

Since the attack time determines how quickly the current limits can respond before a potential fault conditions opens a switch, it is critical to have sufficient control bandwidth here to avoid tripping faults.

A non-zero settling time is critical in most applications to avoid oscillations in the presence of noise and other imperfections in high-power control of the DC current in the charger and/or inverter.

When the nonlinear roll-off is enabled, the slope of the current limits at the end of the charge/discharge regions will be smaller (closer to zero) than the linear response. A nonlinear roll-off will reduce large changes in variables (such as the cell voltage) on the current limit output.

4.6.3. Passive Cell Balancing

When multiple cells are connected in series to form a larger battery stack, it is important to ensure each cell is giving equal contributions to the system. The effects of a single low State-of-Charge or a single high State-of-Charge cell will dominate the performance of the large battery stack. The act of equalizing State-of-Charge of multiple series-connected cells is called balancing and there are many types of balancing.

Nuvation Energy BMS implements a passive balancing solution. Cells with high State-of-Charge are discharged via internal bleed resistors which are enabled on a per-cell basis. Properly adjusting the algorithm settings for your cells is necessary to achieve a well-performing system.

A number of configurable settings are used to fine-tune the passive balancing algorithm for voltage, temperature, current, and duty cycle.

Cell balancing is achieved by monitoring the cell voltages and apply balancing to the cells with the highest voltages. The balancer must be first enabled for balancing to take place.

stack_cell_balancer.enabled
  • Enables or disables balancing operation

  • Set to 1 to enable

  • Set to 0 to disable

4.6.3.1. Voltage Based Cell Balancing
4.6.3.1.1. Settings for Voltage Based Cell Balancing

Both absolute and relative cell voltage thresholds are used to safely balance a stack of batteries.

min_enable_voltage is the absolute threshold that determines the voltage below which a cell will not be balanced. This prevents over discharging in a system even with large imbalances.

voltage_delta is the relative threshold that is used to determine when a system is balanced. Balancing for a given cell will take place when that cell’s voltage is at least voltage_delta millivolts higher than the minimum cell voltage.

stack_cell_balancer.min_enable_voltage
  • Minimum voltage threshold for balancing (mV). The minimum cell voltage threshold for balancing must be greater than, or equal to, 1.1 V.

  • Typically this is set higher than stack_current_limit.voltage_cell_high

stack_cell_balancer.voltage_delta
  • Delta voltage threshold for balancing (mV)

  • Delta between a given cell’s voltage and the minimum cell voltage

  • Typically this is set between 5 and 25 mV

If stack_cell_balancer.voltage_delta is set to zero, the system will continue balancing down all cells (even if the difference between min and max is zero) until they reach stack_cell_balancer.min_enable_voltage. This mode can be used to passively balance all cells in a stack to a specific open-circuit voltage.
4.6.3.1.2. Cell Balancing Temperature Settings

Temperature limits are used to prevent the cells and the BMS module from overheating. If the following temperature threshold is exceeded, balancing is disabled for all cells in the stack.

stack_cell_balancer.max_enable_temperature
  • The upper cell temperature limit, in degrees °C, as measured by thermistors external to the BMS

  • Set per application requirements.

4.6.3.1.3. Cell Balancing Current Settings

Thresholds based on stack current allow the balancer to be fine-tuned to run during specific portions of the charge and discharge cycle.

stack_cell_balancer.min_enable_current
  • The minimum current at which balancing remains enabled (mA)

  • This is typically set to a negative value to enable balancing below certain charge currents

  • For example, a value of -10000 causes balancing to be disabled when charging at greater than 10 A

stack_cell_balancer.max_enable_current
  • The maximum current at which balancing remains enabled (mA)

  • This may be a negative or positive value depending upon application requirements

  • For example, a value of 200 causes balancing to be disabled when discharging at greater than 200 mA

The two most common use cases are:

  1. Balance only while charging: In this case, both the minimum and maximum current thresholds are set to negative values that correspond to the range of charge currents under which balancing should take place.

  2. Balance while charging and holding: In this case, the maximum current threshold is set to a slightly positive value so that the stack will balance when it is idle or disconnected. The level of discharge current flow tolerated during idle balancing is application-specific and is thus configurable.

4.6.3.2. Cell Balancing Duty Cycle

All the energy that is removed from a cell by passive balancing is dissipated as heat. If the amount of heat dissipated is too great, its desirable to reduce the amount of balancing applied to the cells. Passive balancing is applied for the majority of a cell voltage scan period defined by the register sc_linkbus[0].scan_period. Balancing is disabled every linkbus scan cycle to measure the cell voltages. The register sc_linkbus[0].balance_settle_period provides the period of time balancing is turned off before measuring cell voltages. The duration of balancing applied to all cells can be reduced by increasing this delay period.

The sc_linkbus[0].balance_settle_period register value must be between a minimum of 50 ms and must be smaller then the linkbus scan period.

4.6.4. Breaker Interruption

The Nuvation Energy BMS can be configured to accept an external input to open the contactors via a fault. The input is provided through a General Purpose Digital Input. The GPI is directed via configuration to a trigger which can generate a fault forcing the contactors to open. The following table provides the configuration to enable an externally triggered breaker interruption.

Register Type Description Value

stack_breaker[0].enable

Bool

Enables the breaker operation

1

stack_breaker[0].tripped_address_enable

Bool

Enables the forwarding of data to the breaker

1

stack_breaker[0].tripped_address

Address

Address of the GPI which to read from

Refer to address config

stack_fault_breaker_tripped[0].disabled

Bool

Enable the breaker fault

1

General trigger configuration

Follow general trigger configuration to desired operation

4.7. Input / Output Assignment

The Low-Voltage BMS implements the following inputs and outputs:

  • Fault Pilot output signal (internal)

  • Fault Pilot input signal (internal)

  • Fault Clear input signal

  • Shutdown input signal

  • Factory Reset input signal

  • Four general purpose digital outputs

  • Four general purpose digital inputs

  • Four contactor output drivers

The Fault Pilot signaling mechanism is a dedicated hardware signaling path between the Low-Voltage BMS module’s stack controller and power interface subsystems that is used to rapidly open the contactors in the case of a fault condition or processor failure. It is configurable for advanced applications that may require customized behavior (Section 4.10.4, “Fault Pilot”).

Contactor outputs and general purpose digital inputs and outputs present on Nuvation Energy BMS are implemented to allow for assignment of pin functions through configuration rather than through hard-wired implementation. This means that the pins connected to any external contactors, switches, or other digital inputs or outputs must be mapped in configuration to the appropriate BMS function for that system.

Refer to Control / GPIO (Connector J5) for more information on the Fault Clear, Shutdown, and Factory Reset input signals.

4.7.1. Contactor Outputs

Contactor output drivers are assigned to stack switching functions through configuration.

Contactors are also configured as directional or non-directional. A directional contactor has a preferred direction for breaking current. Nuvation Energy BMS will open any non-directional contactors or directional contactors aligned with stack current flow first. Directional contactors that are opposed to stack current flow will be opened after a configurable delay. An optional feedback mechanism can be configured for contactors with a feedback line. Once a contactor’s feedback output is wired into a GPI and configured, if the contactor fails to open/close, the feedback line will indicate the problem and the BMS can flag a fault.

The following registers are used to configure the contactor outputs.

The index n is the zero-based index of the hardware contactor coil output.

stack_contactor[n].address_enabled
  • Set to 1 to enable the contactor function specified in stack_contactor[n].address

stack_contactor[n].inverted
  • When set to 0, contactor is energized when assigned function value is 1

  • When set to 1, contactor is energized when assigned function value is 0

stack_contactor[n].address
  • Determines the function mapped to the contactor

  • Set to @stack_control.main_switch_stateto function as main switch

  • Set to @stack_control.stack_switch_stateto function as stack switch

  • Set to @stack_control.precharge_switch_stateto function as pre-charge switch

stack_contactor[n].direction
  • Set to 0 for a non-directional contactor that breaks any current

  • Set to 1 for a directional contactor that breaks charge current

  • Set to 2 for a directional contactor that breaks discharge current

stack_contactor[n].delay
  • Time to wait before opening the contactor in the non-preferred direction

  • When directional contactors are used, set this delay to a minimum of 1 second, otherwise set the delay to 0 seconds

stack_contactor[n].installed
  • Set to 1 to indicate a contactor is physically wired into the BMS

  • Only installed contactors will flag hardware failures via the stack_contactor[n].coil_error or stack_contactor[n].feedback_error

stack_contactor[n].feedback_enable
  • Set to 1 to enable contactor feedback from a configured input

  • State mismatches between stack_contactor[n].feedback_value and stack_contactor[n].value will result in stack_contactor[n].feedback_error being set to 1

For advanced applications, contactor outputs may be configured to be driven from any Boolean register within Nuvation Energy BMS.

4.7.2. General Purpose Digital Outputs

The most commonly used General Purpose Digital Output functions are:

  • Charge current disable: A control signal that is asserted when charging should be disabled

  • Discharge current disable: A control signal that is asserted when discharging should be disabled

  • Fault state: A signal that is asserted when faults are present within the system

  • Trigger state: A trigger signal for external devices that is asserted when a specific trigger within the system is tripped

General Purpose Digital Output functions are assigned through the following configuration registers. The index n is the zero-based index of the General Purpose Digital Output hardware pin.

sc_gpo[n].address_enabled
  • Set this to 1 to enable the function specified in sc_gpo[n].address

sc_gpo[n].inverted
  • When set to 0, GPO output switch is closed when assigned function value is 0

  • When set to 1, GPO output switch is closed when assigned function value is 1

sc_gpo[n].address
  • Determines the function mapped to output

The configuration settings for the most common functions are illustrated in the table below.

Table 20. Common Assignments for General Purpose Digital Output
Function sc_gpo[n].address sc_gpo[n].inverted

Charge Current Enable

@stack_current_limit.charge_current_disable

0

Discharge Current Enable

@stack_current_limit.discharge_current_disable

0

Fault State

@stack_trigger_summary.fault

1

Trigger State

@trigger_name.trig

1

For advanced applications, General Purpose Digital Outputs may be configured to be driven from any Boolean register within the BMS.

The Low-Voltage BMS module’s power interface subsystem also has GPOs via the pi_gpo but these should not be configured for general usage.

4.7.3. General Purpose Digital Inputs

The most commonly used General Purpose Digital Input functions are:

  • Clear faults: Hardware input to clear any latched fault conditions

  • Connect request: Request to connect the battery stack to the DC bus

  • Auxiliary contactor feedback: Provides feedback to compare an auxiliary contactor state with current contactor state.

The Low-Voltage BMS has a dedicated input for clearing faults. Refer to [lvbms-installation-electrical-control-gpio-fault-clear] for details. The general purpose digital inputs do not have to be used.

General Purpose Digital Input functions are assigned through the following configuration registers. The index n is the zero-based index of the General Purpose Digital Input hardware pin.

sc_gpi[n].address_enabled
  • When set to 1, the state of the input pin is propagated to the destination register address

sc_gpi[n].inverted
  • When set to 0, GPI input value is 1 if hardware GPI is asserted

  • When set to 1, GPI input value is 0 if hardware GPI is asserted

sc_gpi[n].address
  • The destination register address to populate with the state of the input pin

sc_gpi[n].rising_edge_triggered
  • When set to 1, the input value will be populated to the destination upon detection of a rising edge

sc_gpi[n].falling_edge_triggered
  • When set to 1, the input value will be populated to the destination upon detection of a falling edge

If the General Purpose Digital Input is configured as neither rising nor falling edge triggered, the input value is continuously populated into the destination address. The configuration settings for the most common functions are illustrated in the table below.

Table 21. Common Assignments for General Purpose Digital Input
Function sc_gpi[n].address sc_gpi[n].inverted sc_gpi[n].rising_edge_triggered

Clear Faults

@stack_trigger_summary.clear_faults

0

1

Connect Request

@stack_control.requested_state

0

1

Contactor Feedback

@stack_contactor[m].feedback_value

0

0

For advanced applications, General Purpose Digital Input may be configured to drive any Boolean register within the BMS.

4.8. External Communication Interface Settings

The Low-Voltage BMS supports the following interfaces for connection with external systems:

  • 10/100 Ethernet for Modbus TCP and Operator Interface connectivity

  • CAN Bus (not available in no-CAN variants (*-NC))

  • RS485 for Modbus RTU

4.8.1. CAN Bus

The details below do not apply to no-CAN variants (*-NC) as they do not have a CAN bus interface.

Nuvation Energy BMS uses a flexible CAN reporting implementation which maps BMS registers to CAN message identifiers.

Refer to Section 5.4.2, “CAN Bus Protocol Support” for more information on using this interface.

Up to 64 individual registers may be configured for periodic reporting by the BMS. Additionally, 4 configurable bulk report blocks are available for reporting repeating blocks of registers such as cell voltage and temperature.

The basic CAN configuration can be done with the components and registers described below.

sc_canbus.enabled
  • A flag which enables the CAN bus interface

  • Set to 1 to enable CAN reporting

sc_canbus.base_can_address
  • The base CAN bus message ID

  • Messages are assigned sequential IDs starting at this value

All reports starting at the base ID must fit into the 11-bit CAN bus message ID.
sc_canbus.report_interval
  • The periodic reporting period for CAN message broadcasts

sc_canbus.report_msg_interval
  • The inter-message delay interval for outgoing CAN messages This register should not be set to zero to allow fair sharing of the CAN bus with other devices.

sc_canbus_packets.err_rate_window
  • The time window to average communication errors over when calculating the error rate

The standard configuration uses the following CAN reporting base settings:

Table 22. Standard Configuration for CAN Reporting
Register Setting Note

sc_canbus.enable

1

Set to 1 to enable CAN reports.

sc_canbus.base_can_address

0x100

sc_canbus.report_interval

500000

sc_canbus.report_msg_interval

1000

See Section 4.8.1.3, “Inter Report Message Interval”

sc_canbus_packets.err_rate_window

30000000

4.8.1.1. Individual Register Mapping

Nuvation Energy BMS has a standard set of mapped registers that covers common use cases suitable for most systems. The addresses of the 64 registers associated with this reporting are configured in the following registers.

sc_canbus_map[0:63].address
  • The register address of a value to map over CAN bus. A value of 0 disables the associated message.

sc_canbus_map[0:63].command
  • Set to 1 to enable command messages for the associated register. Set to 0 to enable reported messages for the associated register.

These mapped messages are ordered and will have sequential CAN IDs starting at sc_canbus.base_can_address.

A standard configuration for CAN messages of individual registers uses the following settings:

Table 23. Standard Configuration for Individual Register CAN Mapping
Register Setting

sc_canbus_map[0].address

@sc_clock.seconds

sc_canbus_map[1].address

@stack_power.voltage

sc_canbus_map[2].address

@stack_power.current

sc_canbus_map[3].address

@stack_soc.soc

sc_canbus_map[4].address

@stack_soc.dod

sc_canbus_map[5].address

@stack_cell_stat.max

sc_canbus_map[6].address

@stack_cell_stat.min

sc_canbus_map[7].address

@stack_cell_stat.avg

sc_canbus_map[8].address

@stack_therm_stat.max

sc_canbus_map[9].address

@stack_therm_stat.min

sc_canbus_map[10].address

@stack_therm_stat.avg

sc_canbus_map[11].address

@stack_trigger_summary.no_faults

sc_canbus_map[12].address

@stack_current_limit.charge_current_disable

sc_canbus_map[13].address

@stack_current_limit.discharge_current_disable

sc_canbus_map[14].address

@stack_current_limit.charge_current_limit

sc_canbus_map[15].address

@stack_current_limit.charge_current_percent

sc_canbus_map[16].address

@stack_current_limit.discharge_current_limit

sc_canbus_map[17].address

@stack_current_limit.discharge_current_percent

sc_canbus_map[18].address

@stack_control.connection_state

sc_canbus_map[19].address

@stack_trigger_summary.clear_faults

sc_canbus_map[20].address

@stack_control.requested_state

sc_canbus_map[21].address

@sc_controller_heartbeat.value

sc_canbus_map[22:63].address

0

sc_canbus_map[0:18].command

0

sc_canbus_map[19:21].command

1

sc_canbus_map[22:63].command

0

With sc_canbus.base_can_address = 0x100, the above configuration would result in the following CAN message IDs:

Table 24. CAN IDs for Individual Registers Using the Standard Configuration
CAN ID Message Unit

0x100

Clock

Seconds

0x101

Stack Voltage

mV

0x102

Stack Current

mA

0x103

State of Charge

%

0x104

Depth of Discharge

mAhr

0x105

Maximum Cell Voltage

mV

0x106

Minimum Cell Voltage

mV

0x107

Average Cell Voltage

mV

0x108

Maximum Temperature

°C

0x109

Minimum Temperature

°C

0x10A

Average Temperature

°C

0x10B

Overall Safe

Boolean

0x10C

Safe to Charge

Boolean

0x10D

Safe to Discharge

Boolean

0x10E

Charge Current Limit

mA

0x10F

Charge Percent Limit

%

0x110

Discharge Current Limit

mA

0x111

Discharge Percent Limit

%

0x112

Stack Control Connection State

Enumeration

The enumerated values for Stack Control Connection State are as follows

  • 0 = Disconnected

  • 1 = Precharge

  • 2 = Connecting

  • 3 = Connected

  • 4 = Disconnecting

4.8.1.2. Bulk Register Reporting

In addition to individual register reporting, four configurable bulk report blocks are available for reporting repeating blocks of registers such as cell voltage and temperature.

From the receiver’s point of view, there is no difference between a message for individual registers and a message for bulk registers. The main difference is in the configuration.

Repeating blocks of CAN bus messages are configured using the following registers.

sc_canbus_bulk_map[0:3].baseaddress
  • The register address from which to start bulk reading

  • A value of 0 disables the associated messages from being broadcast

sc_canbus_bulk_map[0:3].baseenableaddress
  • The register address used to enable transmission of a CAN message

sc_canbus_bulk_map[0:3].offset
  • The offset to add to the base addresses between each read

  • This should equal the number of registers in the component being mapped

  • For example, if the component stack_cell_soh has 2 registers (soh and service) then an offset of 2 would mean that only soh is reported for each cell, skipping over service

sc_canbus_bulk_map[0:3].numtoread
  • The number of registers to read and report in total for this bulk report

The addresses used for baseaddress and baseenableaddress need to be based from the same component such as cell or therm.

The messages for bulk reports are ordered and have sequential CAN IDs. The first bulk report (associated with sc_canbus_bulk_map[0]) uses CAN IDs starting at sc_canbus.base_can_address + 64.

The next bulk report (associated with sc_canbus_bulk_map[1]) uses CAN IDs starting at (sc_canbus.base_can_address + 64 + sc_canbus_bulk_map[0].numtoread).

Changing sc_canbus_bulk_map[n].numtoread shifts the CAN IDs of the subsequent bulk reports (sc_canbus_bulk_map[n+1], …​, sc_canbus_bulk_map[3]).

A standard configuration for CAN reporting of bulk registers uses the following settings (for a system with only one set of cells and thermistors):

Table 25. Standard Configuration for Bulk Register CAN Reporting
Register Setting

sc_canbus_bulk_map[0].baseaddress

@cell.voltage

sc_canbus_bulk_map[0].baseenabledaddress

@cell.installed

sc_canbus_bulk_map[0].offset

6

sc_canbus_bulk_map[0].numtoread

16

sc_canbus_bulk_map[1].baseaddress

@therm.temperature

sc_canbus_bulk_map[1].baseenabledaddress

@therm.installed

sc_canbus_bulk_map[1].offset

4

sc_canbus_bulk_map[1].numtoread

8

sc_canbus_bulk_map[2:3].baseaddress

0

sc_canbus_bulk_map[2:3].baseenabledaddress

0

sc_canbus_bulk_map[2:3].offset

0

sc_canbus_bulk_map[2:3].numtoread

0

With sc_canbus.base_can_address = 0x100, the above configuration would result in the following CAN message IDs:

Table 26. CAN IDs for Bulk Register Using the Standard Configuration
CAN ID Message Unit

0x140

Cell 0 Voltage

mV

0x141

Cell 1 Voltage

mV

0x142

Cell 2 Voltage

mV

0x143

Cell 3 Voltage

mV

0x144

Cell 4 Voltage

mV

0x145

Cell 5 Voltage

mV

0x146

Cell 6 Voltage

mV

0x147

Cell 7 Voltage

mV

0x148

Cell 8 Voltage

mV

0x149

Cell 9 Voltage

mV

0x14A

Cell 10 Voltage

mV

0x14B

Cell 11 Voltage

mV

0x14C

Cell 12 Voltage

mV

0x14D

Cell 13 Voltage

mV

0x14E

Cell 14 Voltage

mV

0x14F

Cell 15 Voltage

mV

0x150

Thermistor 0 Temperature

°C

0x151

Thermistor 1 Temperature

°C

0x152

Thermistor 2 Temperature

°C

0x153

Thermistor 3 Temperature

°C

0x154

Thermistor 4 Temperature

°C

0x155

Thermistor 5 Temperature

°C

0x156

Thermistor 6 Temperature

°C

0x157

Thermistor 7 Temperature

°C

Some repeating blocks of registers may have instances whose addresses are not immediately adjacent, due to provisioning of registers for systems with a higher channel count.

For example, in a system with two sets of 12 cells, each set of registers may span 16 register blocks. In this scenario, sc_canbus_bulk_map[0:3].numtoread should be set to 32, not 24. sc_canbus_bulk_map[0:3].numtoread should be a multiple of 16 for bulk registers associated with cells regardless of cell[0:799].installed.

sc_canbus_bulk_map[0:3].numtoread should be a multiple of 8 for bulk registers associated with thermistor regardless of therm[0:399].installed.

A system with two sets of 12 cells and two sets of 8 thermistors would have sc_canbus_bulk_map[0].numtoread = 32 and sc_canbus_bulk_map[1].numtoread = 16.

With this modification, the above configuration would result in the following CAN message IDs:

Table 27. CAN IDs for Bulk Register Using the Standard Configuration
CAN ID Message Unit Note

0x140

Cell 0 Voltage

mV

1st cell of 1st set

0x141

Cell 1 Voltage

mV

2nd cell of 1st set

0x142

Cell 2 Voltage

mV

3rd cell of 1st set

0x143

Cell 3 Voltage

mV

4th cell of 1st set

0x144

Cell 4 Voltage

mV

5th cell of 1st set

0x145

Cell 5 Voltage

mV

6th cell of 1st set

0x146

Cell 6 Voltage

mV

7th cell of 1st set

0x147

Cell 7 Voltage

mV

8th cell of 1st set

0x148

Cell 8 Voltage

mV

9th cell of 1st set

0x149

Cell 9 Voltage

mV

10th cell of 1st set

0x14A

Cell 10 Voltage

mV

11th cell of 1st set

0x14B

Cell 11 Voltage

mV

12th cell of 1st set

0x150

Cell 16 Voltage

mV

1st cell of 2nd set

0x151

Cell 17 Voltage

mV

2nd cell of 2nd set

0x152

Cell 18 Voltage

mV

3rd cell of 2nd set

0x153

Cell 19 Voltage

mV

4th cell of 2nd set

0x154

Cell 20 Voltage

mV

5th cell of 2nd set

0x155

Cell 21 Voltage

mV

6th cell of 2nd set

0x156

Cell 22 Voltage

mV

7th cell of 2nd set

0x157

Cell 23 Voltage

mV

8th cell of 2nd set

0x158

Cell 24 Voltage

mV

9th cell of 2nd set

0x159

Cell 25 Voltage

mV

10th cell of 2nd set

0x15A

Cell 26 Voltage

mV

11th cell of 2nd set

0x15B

Cell 27 Voltage

mV

12th cell of 2nd set

0x160

Thermistor 0 Temperature

°C

1st thermistor of 1st set

0x161

Thermistor 1 Temperature

°C

2nd thermistor of 1st set

0x162

Thermistor 2 Temperature

°C

3rd thermistor of 1st set

0x163

Thermistor 3 Temperature

°C

4th thermistor of 1st set

0x164

Thermistor 4 Temperature

°C

5th thermistor of 1st set

0x165

Thermistor 5 Temperature

°C

6th thermistor of 1st set

0x166

Thermistor 6 Temperature

°C

7th thermistor of 1st set

0x167

Thermistor 7 Temperature

°C

8th thermistor of 1st set

0x168

Thermistor 8 Temperature

°C

1st thermistor of 2nd set

0x169

Thermistor 9 Temperature

°C

2nd thermistor of 2nd set

0x16A

Thermistor 10 Temperature

°C

3rd thermistor of 2nd set

0x16B

Thermistor 11 Temperature

°C

4th thermistor of 2nd set

0x16C

Thermistor 12 Temperature

°C

5th thermistor of 2nd set

0x16D

Thermistor 13 Temperature

°C

6th thermistor of 2nd set

0x16E

Thermistor 14 Temperature

°C

7th thermistor of 2nd set

0x16F

Thermistor 15 Temperature

°C

8th thermistor of 2nd set

4.8.1.3. Inter Report Message Interval

By default the CAN report messages are sent successively one after another. Some CAN receivers will experience issues receiving CAN messages at this maximum rate. The Battery Management System can be configured to inject a pause between report messages. This delay is configured using the register sc_canbus[0].report_msg_interval. The value of this register represents the number of microseconds inserted between CAN report messages. This delay applies to all CAN report messages. A delay inserted between report messages will also allow better CAN bus arbitration with master devices on the CAN bus that are attempting to send the Battery Management System CAN command messages.

The time to transfer the total number of CAN report messages plus the inter-report interval per message must be less than the CAN report interval or there will be performance related issues with the CAN bus operation. Any additional CAN traffic on the bus from other devices must also be considered.
4.8.1.4. Command Message Mapping

The Battery Management System can be configured to accept specific CAN IDs as command message inputs to perform actions such as:

  • Connect/disconnect a battery to the DC bus

  • Clear faults and warnings

  • Update the controller heartbeat

A CAN ID is configured as a command message by the configuration register settings:

sc_canbus_map[N].command = 1
sc_canbus_map[N].address = @<component[].register>

Messages have a CAN IDs of sc_canbus.base_can_address + N.

This command configuration means that if a CAN message with the correct CAN ID is transmitted on the CAN bus, the BMS will receive the message and write the data received into the configured register address. The data sent with the message must match the expected size and sign of the register.

Table 28. CAN Command Register Configuration
Register Operation

stack_trigger_summary[0].clear_faults

Set to 1 to clear faults

stack_trigger_summary[0].clear_warnings

Set to 1 to clear warnings

stack_control[0].requested_state

Set to 1 or 0 to connect or disconnect (respectively) a battery from the DC bus

sc_controller_heartbeat[0].value

Write any value to update the controller heartbeat and prevent the watchdog timer from expiring (if configured)

4.8.1.5. Special Application Note: Conditional Message Transmission

In some cases, it may be desirable to only broadcast a message when a certain condition is true. For example, an application may require that a message be broadcast when a GPI is set. This can be achieved by utilizing bulk reporting and setting sc_canbus_bulk_map[0].baseenabledaddress to the same thing as sc_canbus_bulk_map[0].baseaddress. Thus, the following configuration would result in Nuvation Energy BMS only transmitting a message when GPI[0] is 1:

Table 29. Special Application of Bulk CAN Reporting
Register Setting

sc_gpi[0].address_enabled

1

sc_gpi[0].inverted

0

sc_canbus_bulk_map[0].baseaddress

@sc_gpi[0].value

sc_canbus_bulk_map[0].baseenabled

@sc_gpi[0].value

sc_canbus_bulk_map[0].numtoread

1

4.8.2. RS485 Modbus RTU

Refer to Section 5.4.1, “Modbus Protocol Support” for more information on using this interface.

The slave device address used by the BMS for Modbus RTU may be customized as required.

sc_modbus_rtu.device_address
  • Set to the desired Modbus RTU slave device address

4.9. Measurement Calibration

The Nuvation Energy BMS provides calibration settings which allow the system to be fine-tuned for integration with a variety of measurement sensors. The preset values that ship with the BMS can be adjusted as required.

4.9.1. Thermistor Calibration

Nuvation Energy BMS can be configured to use any thermistor. A function that converts measured voltage into temperature must be determined and configured for the particular thermistor in use.

A sixth-order polynomial is used within the BMS to model this transfer function:

\[\operatorname{T}(v) = C_0 + C_1 \cdot v + C_2 \cdot v^2 + C_3 \cdot v^3 + C_4 \cdot v^4 + C_5 \cdot v^5 + C_6 \cdot v^6\]
stack_therm_poly.coeff0 (Factory)
  • Set to C0 (Floating-point value)

stack_therm_poly.coeff1 (Factory)
  • Set to C1 (Floating-point value)

stack_therm_poly.coeff2 (Factory)
  • Set to C2 (Floating-point value)

stack_therm_poly.coeff3 (Factory)
  • Set to C3 (Floating-point value)

stack_therm_poly.coeff4 (Factory)
  • Set to C4 (Floating-point value)

stack_therm_poly.coeff5 (Factory)
  • Set to C5 (Floating-point value)

stack_therm_poly.coeff6 (Factory)
  • Set to C6 (Floating-point value)

The thermistor voltage is read by a 10 kΩ pull-up to 3.00 V DC. The first step in calculating coefficients for a thermistor is to create a table in Microsoft ExcelTM or equivalent spreadsheet application with the following columns:

Temperature ( °C ) Resistance ( Ω ) Vadc ( V )

-40

334274

2.91286

-35

241323

2.88063

. . . .

. . . .

. . . .

125

336.75

0.09773

Temperature and resistance values are taken from the datasheet of the thermistor. Vadc is calculated using the following formula:

\[V_{adc} = 3.0 \left( \frac{R}{R+10000} \right)\]

Using the line plot feature, create a graph of Vadc vs Temperature and turn on the trend line. Then modify the trend line to be a 6th order polynomial type, and display the equation on the chart. The equation will look like:

\[\operatorname{T}(V) = (151.68) + (-352.94)V + (549.33)V^2 + (-482.08)V^3 + (223.69)V^4 + (-51.518)V^5 + (4.5693)V^6\]

These polynomial coefficients can then be used to configure Nuvation Energy BMS for this thermistor. An example plot of these measurements is shown in the next figure.

thermistor calibration
Figure 58. Typical Voltage ADC vs Thermistor Plot

4.9.2. Stack Current Calibration

Current measurements are made using a current sensing analog front-end (AFE) that may be configured for a wide range of current shunt resistances.

4.9.2.1. Stack Current Factory Calibration

The factory calibration of current readings is implemented according to the following formula that converts ADC readings into a current:

\[\operatorname{I}(\mathit{currentadc}) = \mathit{currentadc} \left( \frac{\mathit{multiplier}}{\mathit{divider}} \right)\]

The multiplier and divider are set in configuration as follows.

pi_afe_iadc.multiplier (Factory)
  • Calculated calibration setting

  • Set as per current shunt selection

pi_afe_iadc.divider (Factory)
  • Calculated calibration setting

  • Set as per current shunt selection

Calculating an appropriate multiplier and divider is best illustrated through an example. Assume a 5 mΩ current shunt is chosen that will have 50 mV across its terminals at 10 A. This voltage across the shunt at 10 A will be used to determine the multiplier and divider.

The first step is to calculate the conversion factor between the measured voltage and the calculated current value using the following equation:

\[a = \frac{\mathit{current}}{\left(\frac{V_{adc}}{300}\right) 2^{31}}\]

In this example, the conversion factor is 0.000027939 (10000mA and Vadc is 50 mV). The next step is to express this factor according to the following equation:

\[a = \frac{\mathit{multiplier}}{\mathit{divider}}\]

The easiest approach is to use the divider to achieve the desired precision and then use the multiplier to achieve the desired accuracy, keeping in mind that both values must be expressed as integers. In this case, the divider can be 10000000 and the multiplier can then be 279.

Additional work can still be done to refine these values. Searching for more accurate multipliers and dividers through a spreadsheet or trial and error can reduce rounding error.

For example a divider of 111000 and a multiplier of 31 are more accurate by a decimal place than the previous values. Running experimental calibration using an external tool to measure current (such as a multimeter) provides the best estimate.

For older versions of firmware, specifically versions before 4.58.0, these settings were different. To migrate multiplier/divider settings from before 4.58.0 to later versions, ensure the multiplier is reduced by a factor of 256. For example: if the old multiplier was 1024, the new multiplier should be 1024/256 = 4.
4.9.2.2. Stack Current Field Calibration

Units that have been factory locked may still require tuning for variability in shunts on a per-unit basis. The equation for Stack Current Field Calibration adjustment is:

\[\operatorname{I}(\mathit{rawcurrent}) = \mathit{rawcurrent} \left(1 + \frac{gain}{100000}\right)\]

The gain is set in the configuration as follows.

stack_power.current_gain (Configuration)
  • Fine tuning gain for raw current values.

  • A value of 1000 = +1% adjustment (rawcurrent * 1.01)

  • A value of -1000 = -1% adjustment (rawcurrent * 0.99).

At the factory, appropriate limits for the gain are defined to ensure a user does not misconfigure the system. The gain limit is set in the configuration as follows:

stack_power.current_gain_limit (Factory)
  • Absolute value of the limit for gains on raw current values.

  • If the stack_power.current_gain register is set to outside of this limit, the gain applied will be limited to this value.

4.9.2.3. Charge Deadband Setting

In addition to calibrating current readings, it is also necessary to define the deadband that will be used to determine whether the battery stack is charging, discharging, or at rest (holding).

stack_charge_status.hold_current (Factory)
  • The battery stack is considered at rest unless the absolute value of current exceeds this threshold

  • Set as required by application (typically between 50 and 100 mA)

While this threshold is used to qualify certain aspects of SoC estimation, Coulomb counting takes place continuously regardless of the configured hold current value. Other functions that require knowledge of the charge or discharge state of the stack (e.g. the thermistor temperature thresholds) also make use of this threshold.

4.9.3. Stack Voltage Calibration

Stack voltage measurements are made using a voltage sensing analog front-end (AFE) that must be configured for Nuvation Energy BMS.

4.9.3.1. Stack Voltage Factory Calibration

Factory calibration operates according to the following formula that converts an ADC reading to a voltage:

\[\operatorname{I}(\mathit{voltageadc}) = \mathit{voltageadc} \left( \frac{\mathit{multiplier}}{\mathit{divider}} \right)\]

pi_afe_vadc.multiplier (Factory)::

  • Default calibration: set to -1

    pi_afe_vadc.divider (Factory)

  • Default calibration: set to 28436

While these defaults are likely acceptable for most applications, the calibration can be fine-tuned as needed for particular situations.

4.9.3.2. Stack Voltage Field Calibration

Units that have been factory locked may still require tuning for variability on a per-unit basis. The equation for Stack Voltage Field Calibration adjustment is:

\[\operatorname{V}(\mathit{rawvoltage}) = \mathit{rawvoltage} \left(1 + \frac{gain}{100000}\right)\]

The gain is set in the configuration as follows.

stack_power.voltage_gain (Configuration)
  • Fine tuning gain for raw voltage values. A value of 1000 = +1% adjustment (rawvoltage * 1.01). A value of -1000 = -1% adjustment (rawvoltage * 0.99).

At the factory, appropriate limits for the gain are defined to ensure a user does not misconfigure the system. The gain limit is set in the configuration as follows:

stack_power.voltage_gain_limit (Factory)
  • Absolute value of the limit for gains on raw voltage values.

  • If the stack_power.voltage_gain register is set to outside of this limit, the gain applied will be limited to this value.

4.10. Hardware Settings

For Low-Voltage BMS systems, the following configuration registers must be set as per the Low-Voltage BMS variant in use for your application.

sc_linkbus.softwareid
  • Selection of Low-Voltage BMS variant

  • Set to 0 for NUV300-BC-12

  • Set to 1 for NUV300-BC-16

sc_linkbus.cicount
  • Set to 1 for a stand-alone NUV300-BC-12 and NUV300-BC-16

  • Set to 2 when using a G4 Cell Interface expansion module

sc_linkbus.power_mode
  • Set to 2 for NUV300-BC-12 and NUV300-BC-16

The Low-Voltage BMS cannot power the G4 Cell Interface module through the Link Bus.

Refer to Section 4.10.5, “Under-Voltage Lockout” for details on how to configure the under-voltage feature for the Low-Voltage BMS.

The rate at which cell voltage and temperature measurements are updated is determined by a configurable Link Bus scan period. All cell voltages are measured every scan cycle. Thermistor temperature measurement is multiplexed across eight consecutive scan cycles. One thermistor in each group of cells (monitored by a single BMS module) is measured during each cycle, so the effective scan period of any given thermistor in the system is 8 times the Link Bus scan period.

sc_linkbus.scan_period
  • Measurement period for cell voltages

  • This is typically set to 1 second

Performance of passive balancing is also closely related to the scan period. In Nuvation Energy BMS, a single wiring harness is used to measure cell voltage as well as bleed off passive cell balancing current. It is not possible to make accurate voltage measurements while simultaneously balancing cells. To ensure accurate measurement, balancing current flow must stop before measurement can start (and any transient effects associated with that current flow must be allowed to settle). This is handled automatically by Nuvation Energy BMS. This means that passive balancing has some duty cycle that is less than 100% in practical systems.

The Link Bus has a configurable settling period for balancing that corresponds to the amount of time balancing is left off before voltage measurements are taken.

sc_linkbus.balance_settle_period
  • Settling period during which balancing is disabled before cell voltage measurement.

  • Typically set between 50 and 100 ms

For most systems, values between 50 and 100 ms yield accurate, stable measurements. When coupled with a scan period of 1000 ms, balancing duty cycles above 90% are achievable.

For some applications, it may be desirable to de-rate the effective passive balancing current by increasing the balancing settling period as a way to decrease the balancing duty cycle. If the balancing settling period is increased beyond the scan period, the actual scan rate of the system will start to decrease below the configured value.

The actual Link Bus scan period can be observed by reading the register:

sc_linkbus.actual_scan_period
  • Actual measured scan period of the Link Bus

  • Value be should be approximately equal to the desired scan period configured in sc_linkbus.scan_period

4.10.2. Cell Voltage Low-Pass Filter

One of two low-pass filters (LPF) are available for cell voltage measurement. This cell voltage low-pass filter is also referred to as the 'Measurement Anti-Aliasing Filter'. The filters are implemented in hardware and are selected via the following configuration.

sc_linkbus.cell_voltage_lpf_bw
  • A value of 0 selects a 7 kHz LPF (i.e OFF)

  • A value of 1 selects a 26 Hz LPF (i.e. ON)

The 7 kHz LPF cannot be used with the Low-Voltage BMS

4.10.3. Cell Open Wire Detection and Diagnostics

The Battery Management System is capable of detecting wiring and circuit problems on each cell voltage channel. The following scenarios are detectable:

  • Open circuits

  • Short circuits

  • High impedance connections/wiring

  • Internal Battery Management System hardware failures

The Nuvation Energy Low-Voltage BMS can only detect open wires when its low-pass filter is configured to 26 Hz. Refer to Section 4.10.2, “Cell Voltage Low-Pass Filter” for details on configuration.

All installed channels are scanned for wiring and circuit problems when the Battery Management System is not in Service Lockout and its contactors are closed. Open wires and circuit problems are reported for each cell through the cell.open_wire flag. The common configurable settings for open wire detection on all modules are listed and described below.

sc_linkbus.cell_open_wire_disabled
  • Typically this is set to 0

  • Setting this to 1 will disable all open wire reporting

sc_linkbus.cell_open_wire_period
  • The configurable period for scanning all channels for open wires

  • Typically this is set to 3600000000 (one hour)

Open wires are only scanned according to this period when the batteries are connected to the DC bus during typical operation.
sc_linkbus.cell_open_wire_thresh
  • The configurable count for positive open wire detections before the cell.open_wire flag is set

  • This is to ensure noise triggered false positives are filtered

  • Typically this is set to 3

sc_linkbus.cell_open_wire_max
  • The configurable maximum count for positive open wire detections

  • This variable is used to prevent windup of each channel’s counter

  • It also dictates how many Link Bus scan cycles should be used to collect enough samples to detect open wires

  • Typically set to 10 and cannot be less than sc_linkbus.cell_open_wire_thresh

sc_linkbus.cell_open_wire_ratio_lower
  • The ratio below which the channel has an error, represented as an integer between 0 and 1000, (0 = 0.0, and 1000 = 1.0)

  • Channels that have low ratios are indicative of high impedance connections between the cell and channel input, possibly due to loose connections or bad terminals.

  • Very low ratios indicate an open wire or a Battery Management System hardware failure

  • Typically set to 800, representing 0.8

sc_linkbus.cell_open_wire_ratio_upper
  • The ratio above which the channel has an error, represented as an integer between 0 and 1000, (0 = 0.0, and 1000 = 1.0)

  • Channels that have high ratios are indicative of either short circuits or a Battery Management System hardware failure

  • This is typically 970, representing 0.97

4.10.4. Fault Pilot

The Fault Pilot refers to internal hardware control for the Nuvation Energy BMS that is used to open the contactors through a secondary control path in the case of a fault condition. When the system is faulted, the Fault Pilot will guarantee that the contactor coils are de-energized, regardless of the state of the coil control software.

In most applications, the Fault Pilot operates as a delayed version of the overall fault state of the BMS. This small delay allows for the opening of contactors according to any delays configured as part of the contactor output settings (Section 4.7.1, “Contactor Outputs”).

In Nuvation Energy Low-Voltage BMS systems, the fault pilot is an internal signal on the Low-Voltage BMS between the two MCUs.

sc_gpo_fault_pilot.fault_enabled
  • Set to 1 to enable Fault Pilot to assert when stack_factory_trigger_summary.fault is tripped

sc_gpo_fault_pilot.fault_delay
  • Set according to application (typically, between 100 and 5000 ms)

4.10.5. Under-Voltage Lockout

Some Battery Management System products have the hardware feature to shut off the power when the battery is at a critically low voltage level. This feature is referred to as a Under-Voltage Lockout (UVLO).

The Under-Voltage Lockout feature integrates with the same mechanism used by the Shutdown input of the Low-Voltage BMS (Control / GPIO (Connector J5)). When a UVLO condition is detected the Nuvation Energy BMS will initiate its own shutdown.

The Enable input ([lvbms-installation-electrical-control-gpio-bms-enable]) can be asserted to override the UVLO feature and keep the Nuvation Energy BMS powered on to address the UVLO condition. It is possible to configure the Battery Management System to allow the contactors to close and charge the battery from this critically low state. Please contact support@nuvationenergy.com for assistance.

4.10.5.1. Configuration

The following registers need to be configured to manage this feature. A combined Under Voltage Lock Out (UVLO) trigger is used to provide a shutdown input for either a critically low stack or cell voltage.

stack_uvlo_cell_voltage.thresh
  • Set to a cell voltage that is greater than stack_fault_cell_under.thresh and less than stack_fault_cell_lo.thresh.

stack_uvlo_stack_voltage.thresh
  • Set to a stack voltage that is greater than stack_fault_voltage_under.thresh and less than stack_fault_voltage_lo.thresh.

The above triggers are logically OR’d together into a combined trigger named stack_uvlo_combined. The output of this trigger needs to be directed to the internal shutdown of the Low-Voltage BMS using the following register configuration.

sc_gpo_shutdown.address
  • Set to @stack_uvlo_combined.trig

sc_gpo_shutdown.inverted
  • Set to 1

sc_gpo_shutdown.address_enabled
  • Set to 1

When UVLO is disabled, set both registers sc_gpo_shutdown.address and sc_gpo_shutdown.address_enabled to zero.

4.10.6. Clock Verification

The Low-Voltage BMS module’s two subsystems (power interface and stack controller subsystems) each have an independent clock and these are checked against each other regularly to ensure proper operation. The following components are associated with clock checking diagnostics.

sc_fault_clocks.disabled
  • Setting to 1 enables clock checking on the stack controller subsystem

  • Disabling this fault will prevent the BMS from tripping a fault if the stack controller subsystem detects that the power interface subsystem clock is out of sync

  • Typically set to 1

pi_clock_check.enabled
  • Setting to 1 enables clock checking on the power interface subsystem

  • No fault is associated with this feature and the power interface subsystem will directly disconnect the contactors if a clock error is detected

  • Typically set to 1 The G5 Stack Switchgear will perform periodic self checks for its internal clocks to ensure proper operation. The following components are associated with clock checking diagnostics.

sc_fault_clocks.disabled
  • Setting to 1 enables clock checking on the G5 Stack Switchgear

  • Disabling this fault will prevent the BMS from opening contactors if the G5 Stack Switchgear detects that the unit’s internal clock is not operating properly.

4.10.7. Open Shunt Detection and Diagnostics

Nuvation Energy BMS is capable of detecting improperly installed, loose, or disconnected sense wires that are used to measure the stack voltage and stack current by tracking the correlation between the two measurements.

stack_open_shunt_detector.enabled
  • Set to 1 to enable the open shunt detection algorithm

stack_open_shunt_detector.current_activity_threshold
  • Current measurements above this threshold are used for tracking the correlation between stack voltage and stack current

  • Typically set to the same value as the stack_short_shunt_detector.current_activity_threshold register

stack_open_shunt_detector.minimum_resistance_threshold
  • The threshold value below which resistance estimates are considered faulty

  • The threshold value (RT), calculated in Ω, can be determined using the equation below, where (Rc) is the cell resistance in Ω and (Ncell) is the number of cells connected in series for a stack

  • The value of the BMS register minimum_resistane_threshold in μΩ can be calculated by multiplying the value of RT by 1000000

\[R_{T} = \frac{R_{c} \cdot N_{cell}}{10000}\]
stack_open_shunt_detector.filter_sample_count
  • This register is used to adjust how much noise is filtered out to prevent false trips due to noisy signals

  • A higher value will result in a greater amount of filtering

  • Typically set to 10

stack_fault_open_shunt.thresh
  • The minimum percent of faulty samples required to trip an open shunt fault

  • These faulty samples are current and voltage measurements that do not correlate with each other

  • Typically set to 50

4.10.8. Shorted Shunt Detection and Diagnostics

Nuvation Energy BMS can detect shorts in the stack current and stack voltage sensing circuit by tracking the correlation between the stack voltage and stack current.

stack_short_shunt_detector.enabled
  • Set to 1 to enable the short shunt detection algorithm

stack_short_shunt_detector.current_activity_threshold
  • If a short circuit exists, the measured current would fall below this threshold value

  • The threshold value (Ia), calculated in A, can be determined using the equation below, where (Ifuse) is the fuse rating of the stack in A

  • The value of the BMS register current_activity_threshold in mA can be calculated by multiplying the value of Ia by 1000

\[I_{a} = 0.0056 \cdot I_{fuse}\]
stack_short_shunt_detector.voltage_activity_threshold
  • If voltage activity is detected above this threshold value, the detector looks for correlation between the stack voltage and stack current.

  • The threshold value (Va), calculated in V, can be determined using the equation below, where Ia is current activity threshold value calculated above and Rstack is the stack resistance in Ω

  • The value of the BMS register voltage_activity_threshold in mV can be calculated by multiplying the value of Va by 1000

\[V_{a} = 10 \cdot I_{a} \cdot R_{stack}\]

If the value of the stack resistance is not known, it can be calculated using the cell resistance (Rc) in Ω and the number of cells in the stack (Ncell).

\[R_{stack} = N_{cell} \cdot R_{c}\]
stack_short_shunt_detector.current_time_constant
  • The time constant of the filter used to remove noise in the current signal

  • Typically set to 1000000

stack_short_shunt_detector.voltage_time_constant
  • The time constant of the filter used to remove noise in the voltage signal

  • Typically this is set to 1000000

stack_short_shunt_detector.activity_detection_time
  • The settling time of the filter used to detect gradual changes in stack voltage The value also represents the time required to detect these changes.

  • Typically set to 1800000000

stack_short_shunt_detector.ramp_detection_time
  • The time constant of the filter used to detect rapid changes in stack voltage. The value also represents the time required to detect these changes.

  • Typically set to 10000000

stack_short_shunt_detector.filter_sample_count
  • Used to adjust how much noise is filtered out to prevent false trips due to noisy signals

  • A higher value will result in a greater amount of filtering

  • Typically set to 100

stack_fault_short_shunt.thresh
  • The minimum percent of faulty samples required to trip a short shunt fault

  • These faulty samples are current and voltage measurements that do not correlate with each other

  • Typically this is set to 50

If the short shunt fault has tripped, it cannot be cleared by pressing Clear Faults until the activity falls below its threshold. It may take several minutes for this transition to occur.

4.10.9. Temperature Consistency Check

The temperature consistency check will calculate the maximum deviation between the smallest and largest measured temperature on the Low-Voltage BMS. When using a G4 Cell Interface expansion module, the temperature consistency check also calculates the smallest and largest measured temperature on the G4 Cell Interface (independently from the Low-Voltage BMS).

If the deviation exceeds a configurable threshold value, a fault will be tripped.

stack_fault_ci_therm_consistency.thresh
  • The maximum temperature deviation, in units of °C, that is allowed between thermistors of a single Low-Voltage BMS or G4 Cell Interface module

  • Typically this is set to 15

In order to minimize this temperature deviation and prevent false trips, consider the following recommendations below.

4.10.9.1. Recommendation for Temperature Consistency Check

There are two main factors that need to be considered when connecting the thermistors. First, it is important to ensure that the thermal cooling environment for each of thermistors is similar. One approach is to place the thermistors orthogonal to the cooling air direction.

Consider the following scenario where the cooling air flow is in the same direction as the installed thermistors.

g4 lvbms temperature consistency scenario 1
Figure 59. Thermistor arrangement scenario one

A temperature gradient will develop in the direction of the air flow, where the cells to the far left will be cooled more than the ones to the right. This can result in a large temperature deviation within the cell grouping. To minimize this, the cells can be rearranged as shown below.

g4 lvbms temperature consistency scenario 2
Figure 60. Thermistor arrangement scenario two

The effect of the temperature gradient can be attenuated by grouping thermistors orthogonal to the gradient. During operation, the temperature measurements within this group increase and decrease and therefore, when a failure occurs, the problematic thermistor will begin to deviate from the rest of the group.

A second factor that can be considered to minimize the temperature deviation within cell grouping is battery State-of-Health. It is advantageous to group cells with similar State-of-Health values together since they would have similar thermal responses to current activity.

4.10.10. Contactor Life Tracking

Nuvation Energy BMS provides a mechanism to track the life of each contactor and to trigger a fault when it is end-of-life. The life of each contactor at any given time is determined by the various opening currents the contactor has experienced. Each contactor can be individually configured for contactor life tracking where ssg_contactor_monitor[n] and ssg_contactor_life_tracker[n] corresponds to stack_contactor[n].

Typically, a contactor will specify the number of make/break cycles it is rated for within a current range. For example, if contactor XYZ has the following ratings:

  • 1000V, 200A max, 50 cycles make/break

  • 1000V, 100A max, 6000 cycles make/break

Depending on the application, it may be safe to assume that above a number of rated make/break cycles, contactor life tracking is not required. In this example, we will assume that anything above 6000 cycles does not need to be tracked.

This will translate to the following contactor life tracking configuration:

  • ssg_contactor_monitor[0].enabled = 1

  • ssg_contactor_life_tracker[0].enabled = 1

  • ssg_contactor_life_tracker[0].min_opening_current = 100

  • ssg_contactor_life_tracker[0].max_opening_current = 200

  • ssg_contactor_life_tracker[0].max_rated_current = 199

  • ssg_contactor_life_tracker[0].max_life = 50

Consult with your contactor manufacturer to determine the exact life ratings of the contactors used in your switch gear design.

A complete list of all contactor life tracking registers is shown below.

ssg_contactor_monitor[n].enabled
  • Set to 1 to enable monitoring of contactor n for contactor life tracking

ssg_contactor_life_tracker[n].enabled
  • Set to 1 to enable contactor life tracking for contactor n

ssg_contactor_life_tracker[n].is_precharge
  • Set to 1 if the contactor is configured as the pre-charge contactor

ssg_contactor_life_tracker[n].current_capture_window
  • Window of current samples to consider for an opening current, centered around when the contactor opens. The largest value in this window is used

  • Typical value is 2000000 (2 seconds). This would mean current measurements taken 1 second before and 1 second after the contactor opening event will be considered

ssg_contactor_life_tracker[n].min_opening_current
  • Minimum opening current, above which the contactor life will increment

  • This is typically set to the minimum current at which the contactor make/break cycles is limited

ssg_contactor_life_tracker[n].max_opening_current
  • Maximum opening current, above which the contactor is immediately considered end-of-life

ssg_contactor_life_tracker[n].max_rated_current
  • Current to assume the contactor opened at if the opening event could not be monitored

  • Typically set to between ssg_contactor_life_tracker[n].min_opening_current and ssg_contactor_life_tracker[n].max_opening_current

ssg_contactor_life_tracker[n].max_life
  • Maximum life of the contactor, above which the contactor is considered end-of-life

  • This should be set to the number of make/break cycles the contactor is rated for between ssg_contactor_life_tracker[n].min_opening_current and ssg_contactor_life_tracker[n].max_opening_current

ssg_warn_contactor_end_of_life.thresh
  • The threshold below which a warning is triggered around the contactor’s remaining life

  • This value is a Percentage, indicating the remaining life of the contactor

ssg_fault_contactor_end_of_life.thresh
  • The threshold below which a fault is triggered around the contactor’s remaining life

  • This value is a Percentage, indicating the remaining life of the contactor. This should be set to 0

Please contact support@nuvationenergy.com if this feature is required for your application’s functional safety.

4.11. Watchdogs and Freshness

Watchdog timers are employed in Nuvation Energy BMS to ensure specific functions execute regularly. If a watchdog timer is not periodically reset, the timer will expire and an associated fault will trip and disconnect the contactors. The watchdog timers are exposed by the BMS through multiple watchdog components.

wdt.expired
  • 1 indicates that the timer has not been reset within the configured time and is considered expired

  • 0 indicates the timer has not expired.

wdt.period
  • The time period within which the timer needs to be reset before it expires

The watchdogs configurations are described below.

Table 30. Nuvation Energy BMS Watchdog Components
Watchdog Component Notes

sc_ram_test_wdt

Configures the watchdog timer for the RAM testing. Typically period is 60000000 (60 s).

sc_rom_test_wdt

Configures the watchdog timer for the ROM testing. Typically period is 60000000 (60 s).

sc_controller_wdt

Configures the watchdog timer for the external controller update. The period is dependant on the responsiveness to external controller to periodically update the BMS watchdog.

4.11.1. Freshness

Freshness is a mechanism in Nuvation Energy BMS to guarantee data within the system is up to date.

Measurements such as cell voltage, cell temperatures, and stack voltage are captured and aggregated on different subsystem. Points of failures in different subsystems can result in data reported by the BMS to be stale.

Regardless of how and where data stops being propagated, freshness provides a mechanism for the system to detect these failures and perform the necessary procedures to keep the system safe.

The freshness mechanism is exposed by the BMS through multiple freshness component.

fresh.stale
  • 1 indicates that the associated data has not been updated within the configured time and is considered stale

  • 0 indicates the data is still fresh

fresh.period
  • The time period within which the associated data needs to be updated before it is considered to be stale

Freshness components are mapped to certain types of data such as cell data, stack data, and so on. When a freshness component becomes stale, it means that its associated data has not been updated within the configured time period.

Table 31. Nuvation Energy BMS Freshness Components
Freshness Component Associated Data Notes

stack_cell_fresh

cell.voltage
cell.open_wire

Ensures cell information is updated. Only installed cells are checked for freshness. The period must be longer than sc_linkbus.scan_period, typically 3000000 (3 seconds).

stack_therm_fresh

therm.temperature
therm.circuit_fail

Ensures thermistor information is updated. Only installed thermistors are checked for freshness. The period must be longer than 8x sc_linkbus.scan_period, typically 10000000 (10 seconds).

sc_ci_fresh

ci.supply_error
ci.mux_error

Ensures Cell Interface operational information is updated. Only installed Cell Interface modules are checked for freshness. The period must be longer than sc_linkbus.scan_period, typically 3000000 (3 seconds).

stack_cell_open_wire_fresh

stack_cell_summary_stat.cell_open_wire_executions

Ensures open-wire detection occurs periodically. The period must be set longer than sc_linkbus.cell_open_wire_period, typically 120000000 (120 seconds).

stack_power_fresh

stack_power.voltage
stack_power.current

Ensures stack power information is updated. The period must be set longer than pi_afe.sample_period, typically 60000000 (60 seconds).

stack_linkbus_fresh

sc_linkbus.power_error

Ensures Link Bus checks occur periodically. The period must be longer than sc_linkbus.scan_period, typically 3000000 (3 seconds).

sc_factory_verify_fresh

sc_factory_persist.verification_error

Ensures factory configuration verification of the stack controller subsystem occurs periodically. The period is typically 60000000 (60 seconds).

pi_factory_verify_fresh

pi_fault_config_factory_verify.error

Ensures factory configuration verification of the power interface subsystem occurs periodically. The period is typically 60000000 (60 seconds).

ssg_contactor_life_verify_fresh

ssg_contactor_life_persist.verification_error

Ensures verification of the contactor life data occurs periodically. The period is typically 60000000 (60 seconds)

ssg_contactor_end_of_life_fresh

ssg_contactor_life_tracker_summary.min_life_remaining

Ensures contactor life is evaluated periodically. The period is typically 60000000 (60 seconds)

ssg_contactor_monitor_fresh

ssg_contactor_monitor.status

Ensures contactor monitoring occurs periodically. The period is typically 10000000 (10 seconds)

5. Operating Instructions

5.1. Operating Limits

5.1.1. Low-Voltage BMS

Exceeding the maximum ratings will damage the Low-Voltage BMS module.
5.1.1.1. Electrical Characteristics
Symbol Parameter Conditions Min Typ Max Units

Stack Power Specifications

+VPOWER

Input DC Voltage

-

11

48

60

V

Input Current

+VPOWER = 48 V DC

70

580

1250

mA

Battery Cells Specifications

C(n)

Input Cell Voltage Range

-

0

-

5

V DC

Vsum

Voltage between C0 and C12

Low-Voltage BMS - 12 channel

11

-

60

V DC

Voltage between C0 and C16

Low-Voltage BMS - 16 channel

22

-

60

V DC

Voltage between C0 and C8

Low-Voltage BMS - 16 channel

11

-

40

V DC

Voltage between C8 and C16

Low-Voltage BMS - 16 channel

11

-

40

V DC

TME

Total Measurement Error

-

±0.1

±1.2

±1.6

mV DC

I(n)

Cell Balancing Current

C(n) = 4 V DC

304

307

310

mA DC

Vbal

Cell Voltage for Balancing

1.1

-

-

V DC

Temperature Sensors Specifications

I(n)

Output Current to Temperature Sensor

-

-

-

300

μA

Rt(n)

Temperature Sensor Resistance at 25C

-

-

10

-

T(n)

Input Temperature Sensor Voltage Range

Cell 0 = 0 V DC

0

-

3

V

Contactors Specifications

+VCOIL

External Coil Power Supply Input

-

5

24

40

V DC

External Coil Power Supply Continuous Current

+VCOIL = 24 V DC

-

-

2.8

A DC

External Coil Power Supply Pulse Current (<150 ms)

+VCOIL = 24 V DC

-

-

20

A DC

+24V

Output Voltage

-

-

24

-

V DC

Output Continuous Current

-

-

-

1

A DC

Output Pulse Current (<150 ms)

-

-

-

2.4

A DC

COIL(n)

Coil Driver Output Voltage

-

-

+VCOIL

-

V DC

Coil Driver Output Continuous Current

+VCOIL = 24 V DC

-

-

2.8

A DC

Coil Driver Output Pulse Current (<150ms)

+VCOIL = 24 V DC

-

-

5

A DC

Reverse Clamp Voltage

+VCOIL = 24 V DC

40

-

49

V DC

Ethernet Specifications

ETH_Protocol

Ethernet data speeds

-

10

-

100

Base-T

ETH_Connector

Ethernet jack rating

-

-

Cat5e

-

Current Shunt Specifications

VSHUNT_REF

Reference Output Voltage

-

-

1.25

-

V DC

Reference Output Current

-

-250

0

250

μA DC

Vdiff

Differential voltage between VSHUNT_BAT and VSHUNT_LOAD

-

-1.0

0

1.0

V DC

Vmes

Measurement resolution

-

-

143

-

nV DC

GPIO-Out Specifications

Vmax

Open Blocking Voltage

Between *_A and *_B, or between *_B and *_A

-

-

60

V DC

Imax

Closed Maximum Current

Between *_A and *_B, or between *_B and *_A

-

-

400

mA DC

Ron

Closed-State Resistance

Between *_A and *_B, or between *_B and *_A

-

-

2

Ω

GPIO-In Specifications

Turn-On

Turn On Threshold Voltage

-

0

-

3.8

V DC

Turn-On Threshold Current

-

-

0.25

2

mA DC

Turn-Off

Turn-Off Threshold Voltage

-

4.8

-

5

V DC

Turn-Off Threshold Current

-

0.1

0.2

-

mA DC

Vmax

Off Voltage

Iin = 0 mA

-

-

5

V DC

Imax

On Current

Vin = 0 V

-

-

9

mA DC

RS-485 Modbus-RTU Specifications

Rterm

Termination resistance tolerance

-

118.8

120

121.2

Ω

Power rating

-

-

-

0.125

W

|Vod|

Driver differential output

-

1.5

2

-

V

Io

Output current

-

-60

-

60

mA

tr

Output Signal Rise Time

-

0.3

0.7

1.2

μs

tf

Output Signal Fall Time

-

0.3

0.7

1.2

μs

Isolation

Rated Isolation

-

-

-

60

V

Link Out Specifications

IP_LINK

Output Current

-

-

-

20

mA DC

IN_LINK

Output Current

-

-

-

20

mA DC

CAN Specifications (not available in no-CAN variants (*-NC))

Rterm

Termination resistance tolerance

-

118.8

120

121.2

Ω

Power rating

-

-

-

0.125

W

CAN_P

Dominant Output

-

2.9

3.5

4.5

V DC

Recessive Output

-

2

2.3

3

V DC

Output Current

-

10

-

70

mA DC

Output Signal Rise Time

-

-

20

50

ns

Output Signal Fall Time

-

-

20

50

ns

CAN_N

Dominant Output

-

0.8

1.2

1.5

V DC

Recessive Output

-

2

2.3

3

V DC

Output Current

-

10

-

70

mA DC

Output Signal Rise Time

-

-

20

50

ns

Output Signal Fall Time

-

-

20

50

ns

Isolation

Rated Isolation

-

-

-

60

V

While Low-Voltage BMS is designed for an input voltage of 11–60 V DC, testing has confirmed that the unit experiences no degradation when using an input voltage up to 68 V DC. However, for applications that exceed 60 V DC, please consider Nuvation Energy G4 High-Voltage BMS or contact support@nuvationenergy.com.
The +VPOWER input current depending on the loads the Low-Voltage BMS is driving. Without contactors, the Low-Voltage BMS draws approximately 70 mA at 48 V DC. With all contactors connected and energized, it can draw up to 1.25 A at 48 V DC.
Nuvation Energy BMS does not include an internal free-wheeling protection diode on contactor coil-driver circuits, as it has been found to cause premature contactor failure.
5.1.1.2. Environmental Conditions
Symbol Parameter Min Typ Max Units

Thermal Specifications

Ta

Operating Temperature

-40

25

50

°C

Storage Temperature

-40

25

50

°C

Humidity Specifications

RH

Operational RH

5

-

85

%

Storage RH

5

-

85

%

Shock and Vibration Specifications

Vertical

Vertical shock/vibration

-

-

10

m/s2

Longitudinal

Longitudinal shock/vibration

-

-

10

m/s2

Transverse

Transverse shock/vibration

-

-

10

m/s2

Pulse vibration

On each axis

-

-

245

m/s2

Altitude Specifications

Aa

Operating Altitude

-

-

2000

m

The Low-Voltage BMS has been designed to meet the requirements of SAE J2464 (shock) and SAE J2380 (random vibration).

5.1.1.3. Standards and Certifications

The Low-Voltage BMS is designed to comply with industry EMC standards for FCC and IC Class A, and European EN55032 Class A. It is designed for EMI and ESD performance to EN55024, including the IEC/EN 61000-4-X series of tests. All components are EU RoHS / China RoHS compliant.

Standard/Certification

Stationary Battery Safety

UL Recognized

UL 1973 (file no. MH64071)

Functional Safety

UL Recognized

UL 991 (file no. MH64071)
UL 1998 (file no. MH64071)

UL 1973 recognition ensures safe battery operation and significantly reduces the effort of certifying the energy storage solution to meet UL 1973 and UL 9540.

5.1.2. G4 Cell Interface

Exceeding the maximum ratings will damage the G4 Cell Interface module.
When using a G4 Cell Interface expansion module, please ensure the total maximum stack voltage does not exceed 60 V DC.
5.1.2.1. Electrical Characteristics
Symbol Parameter Conditions Min Typ Max Units

Link In Specifications

+VBUS

Input Voltage

-

9

24

60

V DC

Input Current, CI-12

+VBUS = 24 V DC, Link Out disconnected

-

-

25.5

mA DC

Input Current, CI-16

+VBUS = 24 V DC, Link Out disconnected

-

-

31.7

mA DC

IP_LINK

Output Current

-

-

-

20

mA DC

IN_LINK

Output Current

-

-

-

20

mA DC

Link Out Specifications

+VBUS

Output Voltage

-

-

+VBUS

-

V DC

Output Current per CI-12

+VBUS = 24 V DC

-

-

25.5

mA DC

Output Current per CI-16

+VBUS = 24 V DC

-

-

31.7

mA DC

IP_LINK

Output Current

-

-

-

20

mA DC

IN_LINK

Output Current

-

-

-

20

mA DC

Battery Cells Specifications

C(n) - C(n-1)

Input Cell Voltage Range

CI-12, CI-16

0

-

5

V DC

Vsum

Voltage between C0 and C12

CI-12, +VBUS = 0 V DC

11

-

60

V DC

Voltage between C0 and C8

CI-16, +VBUS = 0 V DC

11

-

40

V DC

Voltage between C8 and C16

CI-16, +VBUS = 0 V DC

11

-

40

V DC

TME

Total Measurement Error

CI-12, CI-16, +VBUS = 24 V DC

±0.1

±1.2

±1.6

mV DC

I(n)

Cell Balancing Current (only for CI-12 and CI-16)

C(n) - C(n-1) = 4 V DC

304

307

310

mA DC

Vbal

Cell Voltage for Balancing

CI-12 and CI-16

1.1

-

-

V DC

Temperature Sensors Specifications

I(n)

Output Current to Temperature Sensor

-

-

-

300

μA

Rt(n)

Temperature Sensor Resistance at 25 °C

-

-

10

-

T(n)

Input Temperature Sensor Voltage Range

Cell 0 = 0 V

0

-

3

V

5.1.2.2. Environmental Conditions
Symbol Parameter Min Typ Max Units

Thermal Specifications

Ta

Operating Temperature

-10

25

60

°C

Storage Temperature

-20

25

60

°C

Humidity Specifications

RH

Operational RH

5

-

85

%

Storage RH

5

-

85

%

Shock and Vibration Specifications

Vertical

Vertical shock/vibration

-

-

10

m/s2

Longitudinal

Longitudinal shock/vibration

-

-

10

m/s2

Transverse

Transverse shock/vibration

-

-

10

m/s2

Pulse vibration

On each axis

-

-

245

m/s2

Altitude Specifications

Aa

Operating Altitude

-

-

2000

m

5.1.2.3. Standards and Certifications

The G4 Cell Interface meets industry standards CISPR 22 Class A and IEC/EN 61000-4-2 for EMC/EMI and ESD respectively. It has been designed to meet EN 60950 high voltage creepage/clearance distances for reinforced insulation rated to 1250 V DC. All components are EU RoHS / China RoHS compliant.

Certification/Report

Stationary Battery Safety

UL Recognized - UL 1973 (file no. MH64071)

Functional Safety

- UL Recognized - UL 991 (file no. MH64071)
- UL Recognized - UL 1998 (file no. MH64071)

Electrical Safety

IEC 62368-1:2014 (Second Edition), IEC 62368-3:2017

Industrial Immunity

EN/IEC 61000-6-2 2019

Shock and Vibration

Designed to meet the requirements of SAE J2464 and SAE J2380

UL 1973 recognition ensures safe battery operation and significantly reduces the effort of certifying the energy storage solution to meet UL 1973 and UL 9540.

5.2. Status LEDs

When the Low-Voltage BMS is powered up, the status LEDs on the modules provide indication of the functional status of the module. A more detailed status may be accessible via the Operator Interface.

5.2.1. Low-Voltage BMS

Fault

The Fault LED indicates that the Nuvation Energy BMS has detected a fault condition in the system.

Activity

This LED on the Link-Out RJ-45 connector indicates that the Low-Voltage BMS is communicating over the Link Bus.

5.2.2. G4 Cell Interface

The 2 status LEDs on the face of the G4 Cell Interface indicate the functional status of the module.

Activity

This LED indicates that the G4 Cell Interface module has received a communication packet over the Link Bus.

Fault

This LED is not used in normal operations. It is available to support on-site troubleshooting.

5.3. Using the Operator Interface

Launch the Operator Interface by opening the Nuvation-Energy-Operator-Interface.html file in your web browser.

Browser Compatibility

The Operator Interface currently supports the most recent versions of Mozilla Firefox and Google Chrome. Other browsers such as Internet Explorer are not supported. Please install a supported browser before attempting to access the Operator Interface.

The Operator Interface will automatically attempt to connect to the default BMS IP (192.168.1.21) or the last successful BMS IP connection.

If the Operator Interface is unable to connect to the BMS at the assumed IP, a prompt to enter the BMS IP will be displayed. Ensure the computer IP address is on the same network as the BMS IP address. See Section 3.8.2, “Setup PC Network Adapter”.

ssoi ip connection

5.3.1. The Dashboard Tab

The default tab of the Operator Interface is the Dashboard. The Dashboard contains a high-level overview on the state of the battery stack. This is the only page required for daily monitoring of the battery stack.

oi dashboard
Figure 61. Nuvation Energy BMS Operator Interface Dashboard screenshot
5.3.1.1. Warnings and Faults

Before going into the details of the gauges and information presented in the dashboard, it is important to understand what a fault and a warning Nuvation Energy BMS status means.

oi all ok

An ALL OK indicates that there are no faults or warning. This is the normal state for Nuvation Energy BMS.

oi warning

A Warning indicates the state of the battery system has been detected outside of its normal operational range. The cause of the warning should be identified and a corrective action should be performed. For instance, if the warning is a thermistor temperature measurement has become too hot, the battery system should be cooled to bring the measurement back into the normal operational range.

oi fault

A Fault indicates the state of the battery system has been detected outside of its safe operational range. The cause of the fault must be identified and a corrective action must be performed. For instance, if the fault is a cell voltage measurement has become too low, the cell maintenance manual must be reviewed to identify what remedial actions are required.

A Fault is more severe than a Warning and the source of the fault must be discovered and resolved before attempting to clear and continue operating the battery system.

5.3.1.2. Stack Voltage

The stack voltage radial meter shows the total battery stack voltage.

ssoi gauge stack voltage
5.3.1.3. Stack Current

The stack current radial gauge shows the battery stack current as well as the maximum charge current limit and the maximum discharge current limit. The acceptable current range is visualized on the gauge by the blue arc. An absence of the blue arc indicates the battery stack cannot be charged or discharged in its present condition.

A negative current value indicates the battery stack is charging. A positive current value indicates the battery stack is discharging.

ssoi gauge stack current
5.3.1.4. State-of-Charge

The State-of-Charge radial gauge shows the battery stack’s State-of-Charge. The battery stack is empty when the State-of-Charge value is 0% and full when the State-of-Charge value is 100%.

ssoi gauge soc
5.3.1.5. Depth-of-Discharge

The Depth-of-Discharge radial gauge shows how much energy has been taken out of the battery stack. In an ideal Energy Storage System, defined as a system with no power losses, the amount of energy shown in this gauge needs to be added back into the battery stack to fill it back up to 100% State-of-Charge.

ssoi gauge dod
5.3.1.6. Cell Voltage

The cell voltage bar gauge shows the maximum, minimum, and average cell voltage measurements within the stack.

The high cell voltage and low cell voltage warning and fault threshold is visualized on the gauge with yellow and red segments. The blue segment depicts the acceptable cell voltage range.

If a triangle enters the yellow segment, a warning has occurred. If a triangle enters the red segment, a fault has occurred.

The maximum and minimum cell location in the stack and their voltage values are shown below the gauge, along with the average cell voltage value.

ssoi gauge cell voltage
5.3.1.7. Temperature

The temperature bar gauge shows the maximum, minimum, and average cell temperature measurements within the stack.

The high cell temperature and low cell temperature warning and fault threshold is visualized on the gauge with yellow and red segments. The blue segment depicts the acceptable cell temperature range.

If a triangle enters the yellow segment, a warning has occurred. If a triangle enters the red segment, a fault has occurred.

The maximum and minimum cell location in the stack and their temperature values are shown below the gauge, along with the average cell temperature value.

ssoi gauge cell temperature
5.3.1.8. Nuvation Energy BMS Status

Nuvation Energy BMS status information contains information on the overall safety status of the battery stacks, the battery stack connection state, number of cells balancing, maximum charge current limit, maximum discharge current, and the time and date of the last update of the Dashboard.

5.3.1.8.1. Operation Status

Nuvation Energy BMS operation state is shown in the big status circular indicator.

oi possible bms status
Figure 62. Three possible Nuvation Energy BMS operation states

The normal state is All OK and the color of the indicator will be green. The warning state is Warning and the color of the indicator will be orange. The fault state is Fault and the color of the indicator will be red.

Clicking on the indicator will jump to a comprehensive status list of warnings and faults active in the battery stack.

Clicking on the Clear button below the state will cancel any warnings and faults that are not self-clearing.

5.3.1.8.2. Connection State

The battery stack connection state is shown in the oval indicator.

oi possible connection status
Figure 63. Three possible connection states

Stack Disconnected in a red oval indicates the SSG contactors are open, and the battery stack is unavailable to be charged or discharged.

Stack Pre-charging in an orange oval indicates the battery stack has connected its pre-charge circuit and is attempting to equalize the battery stack voltage to the system DC bus voltage.

Stack Connected in a green oval indicates the battery stack is available to be charged or discharged.

Clicking the Connect button initiates the stack connection sequence of events. Nuvation Energy BMS must be in the All OK state for the Connect button to be available.

Clicking the Disconnect button will disconnect the battery stack from the system DC bus.

5.3.1.8.3. Information Table

The information table shows the number of cells that are having excess energy bled off to maintain a balanced battery stack.

oi dashboard info table

The Charge Limit shows the maximum charge current limit value. The Discharge Limit shows the maximum discharge current limit value.

The Charge Limit and Discharge Limit values are visualized on the Stack Current radial gauge as the limits of the blue arc.

5.3.1.8.4. Last Update

The Updated time and date shows the last time the Operator Interface had successfully communicated with Nuvation Energy BMS and updated all items in the Dashboard with values from Nuvation Energy BMS. The time and date is based on the local computer/tablet; it does not come from Nuvation Energy BMS.

If the communication with a Nuvation Energy BMS is lost, a notification banner appears at the top of the display screen. The information shown on the Dashboard represents the last data received and is no longer recent.

5.3.2. The Details Tab

The Details tab contains a much more detailed view into the status of Nuvation Energy BMS. The data values shown in this tab can be easily copied into a spreadsheet as a means of capturing the current state of Nuvation Energy BMS for manual data recording purposes.

The Details tab has multiple sub-sections called accordions that can be expanded to reveal more information. You can have multiple accordions expanded at the same time.

ssoi details tab
Figure 64. Nuvation Energy BMS Operator Interface Details tab screenshot
support button
Figure 65. Operator Interface Support Button
The SUPPORT button can be used to direct the operator to the Nuvation Energy website to contact Support.
5.3.2.1. Addressing

The Addressing accordion presents the addressing information for your Nuvation Energy BMS. Refer to Appendix F, BMS Network Configuration for details on how to change your Nuvation Energy BMS IP address.

ssoi details tab addressing
Figure 66. Addressing accordion in Details Tab
5.3.2.2. Battery

The Battery accordion contains values on the overall battery stack and the maximum charge current limit, the maximum discharge current limit, and the number of cells balancing in the battery stack. This information is identical to the values shown in the radial gauges, the bar gauges and the Information Table on the Dashboard.

ssoi details tab battery
Figure 67. Battery accordion in Details Tab
5.3.2.3. Contactor Life

The Contactor Life accordion contains values that track the life of contactors. See Contactor Life Tracking for further information.

ssoi details tab contactor life
Figure 68. Contactor Life accordion in Details Tab
5.3.2.4. SoC Calibration

The State of Charge Calibration accordion allows for calibration of SoC and reset of the measured capacity estimate. This accordion is only visible if the OCV is enabled (stack_soc.ocv_enabled). Both of these operations are only enabled when the battery is operational (not in service lockout) but disconnected (stack_control.actual_state == 0).

ssoi details tab soc calibration
Figure 69. SoC Calibration accordion in Details Tab
5.3.2.4.1. Charge Calibration

SoC charge calibration resets the SoC based on the open-circuit voltage curve. More specifically, it uses the measured voltage in the cell and the OCV curve to calculate a cell level SoC estimate. The SoC estimates are aggregated to determine the stack level SoC that is seen on the dashboard. Since the SoC calibration uses the OCV, the curve needs to be enabled.

A user can reset the SoC only if the stack is disconnected. For chemistries like LFP, it is also beneficial to wait 1 hour after disconnection before resetting the SoC. This will allow the battery to relax and reach equilibrium before a reset calculation is conducted. Although it is recommended to wait 1 hour, the period is not enforced on the Operator Interface.

The SoC reset is used to provide a rough initial estimate of SoC before a calibration can occur. This is usually when the BMS is initially connected and setup up. It should not be used as a replacement for SoC calibration, which can be done by charging the battery to FULL.

5.3.2.4.2. Capacity Reset

Capacity calibration resets the SoC to the nominal capacity. Note that if the stack is imbalanced, it will update the nominal capacity to account for this imbalance. This is done by calculating the SoC for each cell.

The recommendations for SoC calibration described above can be followed here as well for determining when to do a capacity reset.

The user should reset the capacity if the measured capacity value is significantly different from the nominal capacity and the battery degradation is known. Once again, the reset provides a rough capacity estimate. The ideal approach for determining measured capacity is to conduct a charge to FULL and a discharge to EMPTY calibration cycle.

5.3.2.5. Safety

The Safety accordion contains a comprehensive list of all possible Nuvation Energy BMS faults, warnings and user triggers as well as the overall status of the battery stack. An active fault is shown as Tripped. An active warning or user trigger is shown as Triggered. A fault, warning or user trigger that has not completed its Self Check is shown as Checking. In normal operation, all user triggers, warnings and faults should be Clear.

ssoi details tab safety
Figure 70. Safety accordion in Details Tab

Clicking on the Clear Faults and Warnings button at the bottom of this accordion will clear any faults and warnings that are not self-clearing. The Clear button on the Dashboard can also be used.

ssoi details tab safety clear faults
Figure 71. Bottom of Safety accordion in Details Tab

Clicking on the Generate Report button at the bottom of this accordion will generate a safety report JSON file with a list of the Nuvation Energy BMS faults and warnings and their current state as well as the current firmware versions.

5.3.2.6. Cell Voltages

The Cell Voltages accordion lists voltage measurements for all Cells configured in the Configuration file. Cells that are not configured are displayed as a - (hyphen). Voltages in red indicate measurements which have triggered a Nuvation Energy BMS fault. Voltages that are highlighted in yellow are open wires. There is no differentiation between cells that are in the normal operating voltage range and cells that have triggered a Nuvation Energy BMS warning. There is also no indication of which particular cells are currently being balanced by the BMS.

For Low-Voltage BMS systems, CI1 refers to the Low-Voltage BMS module. If a G4 Cell Interface expansion module is installed, then CI2 would refer to the first G4 Cell Interface installed.
ssoi details tab cell voltages
Figure 72. Cell Voltages accordion in Details Tab
ssoi details tab cell voltages open wire
Figure 73. Cell Voltages with open wires accordion in Details Tab
5.3.2.6.1. Filtering

You can filter the display to highlight cells with voltages above or below a value you specify. The values that match the criteria will be bolded and all other values will be faded.

ssoi filter on voltage
5.3.2.7. Thermistor Temperatures

The Thermistor Temperatures accordion lists temperature measurements for all Thermistors configured in the Configuration file. Thermistors that are not configured are displayed as a dash. Temperatures in red indicate measurements which have triggered a Nuvation Energy BMS fault. There is no differentiation between thermistors that are in the normal operating temperature range and thermistors that have triggered a Nuvation Energy BMS warning.

For Low-Voltage BMS systems, CI1 refers to the Low-Voltage BMS module. If a G4 Cell Interface expansion module is installed, then CI2 would refer to the first G4 Cell Interface installed.
ssoi details tab thermistor temperature lvbms
Figure 74. Thermistor accordion in Details Tab
5.3.2.7.1. Filtering

You can filter the display to highlight cells with temperatures above or below a value you specify. The values that match the criteria will be bolded and all other values will be faded.

ssoi filter on temperature
5.3.2.8. Open Wire

The Open Wire accordion lists open wire diagnostics for all Cells configured in the Configuration file. Cells that are not configured are displayed as a - (hyphen). Diagnostic data that is highlighted in yellow indicates an open wire.

ssoi details tab open wire acquire
Figure 75. Open Wire accordion in Details Tab

To trigger diagnostics on all cells, click the "Acquire Open Wire Ratios" button. Once clicked, the open wire scanning process begins.

ssoi details tab open wire acquiring
Figure 76. Open Wire acquiring accordion in Details Tab

Once the open wire scanning has completed and all diagnostics data is collected it is displayed in a tabular format with open wires highlighted in yellow.

For Low-Voltage BMS systems, CI1 refers to the Low-Voltage BMS module. If a G4 Cell Interface expansion module is installed, then CI2 would refer to the first G4 Cell Interface installed.
ssoi details tab open wire
Figure 77. Open Wire diagnostics accordion in Details Tab

The diagnostic values displayed are ratios of Voltage. Values very close to one ( > 0.97) indicate a short condition. Values approaching zero (0.0 to 0.4) indicate an open wire connection.

Depending on whether you are using G4 Cell Interface - 12 channel or G4 Cell Interface - 16 channel modules or G4 Cell Interface - 12V 4 channel modules, they will display different diagnostics information.

5.3.2.8.1. Filtering

Use the filter to highlight ratios of Voltage that are above or below the specified value. The values that match the criteria will be bolded and all other values will be faded.

ssoi filter on open wire
5.3.2.9. Resistance
Resistance accordion in Details Tab

The Resistance accordion contains cell resistance estimate values of every installed cell. This accordion is only visible if the cell model estimator is enabled (stack_cell_model_estimator.enabled). See Cell Resistance Estimation for further information.

Filtering is available for resistance values. Use the filter to highlight resistance values that are above or below the specified value. The values that match the criteria will be bolded and all other values will be faded.

ssoi details tab resistance
Figure 78. Resistance accordion in Details Tab

5.3.3. The Menu Options

The menu to the right of the Operator Interface provides access to tools and advanced options. Some of these options may be locked to prevent accidental changes.

The following options are available:

  • Registers

  • Service

  • Connection

  • Unlock

  • About

5.3.3.1. Registers

This menu option navigates to the Register Browser. This screen allows you to read and write to registers.

When the Operator Interface is locked, the Register Browser is in a view-only mode, restricting the editing of registers.

register browser
Figure 79. Register Browser
5.3.3.2. Service

This screen allows you to enter and exit Service Lockout in-order to perform an upgrade or configuration file import. For more details refer to Section 5.3.5, “Understanding the Service Lockout and Self Check”.

5.3.3.2.1. Importing a Configuration File
This is a restricted option requiring the Operator Interface to be unlocked to access this option.

This menu option allows you to import a configuration file.

If you have a configuration file ready to import, refer to Section 3.9.2, “Import the Configuration File” for instructions.

If you need to generate a configuration file, refer to Section 3.9.1, “Generate Configuration File” for instructions.

5.3.3.2.2. Exporting a Configuration File
Nuvation Energy BMS does not preserve the originally imported configuration file with comments and formatting. The export feature will export a configuration file with an alphabetical listing of all registers and their set values.

To export your configuration file:

  1. From the menu, select Service

  2. Click Export Configuration

5.3.3.2.3. Upgrade
This is restricted option requiring the Operator Interface to be unlocked to access this option.

The Operator Interface is packaged with the appropriate version of Nuvation Energy BMS firmware. The firmware for Nuvation Energy BMS can be upgraded using the Operator Interface.

To upgrade the firmware Nuvation Energy BMS must be in Service Lockout. Please see Section 5.3.5, “Understanding the Service Lockout and Self Check” for more details.

Upgrading the Firmware

The Upgrade option will be available when Nuvation Energy BMS successfully enters Service Lockout. If a newer firmware version is available, proceed with the firmware upgrade.

Backup the Config file

The firmware upgrade will erase the configuration file on your Nuvation Energy BMS. If this is not a new install and you have a configuration file loaded on your Nuvation Energy BMS, please remember to export and save it. You can import this file after the upgrade is complete. If upgrading to a new firmware version, you may need to edit the file for compatibility before uploading it.

  1. Click the Upgrade button to begin the upgrade. A progress bar allows you to monitor the upgrade process.

    oi upgrade in progress
  2. Wait until a dialog box appears with the upgrade result. It should indicate that the firmware upgrade is complete.

    oi upgrade complete
  3. Once the upgrade is successful, you will be returned to the dashboard. Nuvation Energy BMS will remain in Service Lockout.

    oi dashboard service lockout
You will need to import a valid configuration file before attempting to exit Service Lockout.
Upgrade Troubleshooting

During the firmware upgrade, if a failure is reported, retry the upgrade.

If the failures persist, please submit a support ticket with as much detail as possible to support@nuvationenergy.com.
The firmware upgrade will erase the configuration file on your Nuvation Energy BMS. Please remember to export and save your current configuration file to save your current configuration file for future reference.
5.3.3.2.4. Updating a Label

A label is the string displayed on the top banner of the Operator Interface. An owner can configure a name for each stack using the label. When the Operator Interface connects to a stack the operator knows immediately what stack they are connected to.

oi label

To update a label:

  1. From the menu, select Service

  2. Click Edit under the label section

oi label section
  1. Enter a suitable name for the stack

  2. Click Apply

The Operator Interface automatically saves the label in persistent storage when applied.
A label does not handle spaces. Use hyphens or underscores to delineate words.
oi label hyphen
5.3.3.2.5. Editing an IP Address

To edit an IP address:

  1. From the menu, select Service

  2. Click Edit under the ethernet section

oi ethernet
  1. Enter the IP address of your choice

  2. Click Apply

The updated IP is saved and in immediate use after the Apply action. Any prior connections via Modbus TCP would have to be reconnected using the updated IP.
Applying changes will disconnect the battery and restart the BMS.
5.3.3.3. Connection

The connection page allows you to change the IP address and timeout of the Nuvation Energy BMS that you are trying to access.

If you are connecting to a Nuvation Energy BMS that does not use the default IP address (192.168.1.21), you will need to change the connection settings in the Operator Interface to match the BMS.

In scenarios where there are multiple BMS systems, it is possible to direct multiple instances of the Operator Interface at the different BMS IP addresses.
5.3.3.4. Locking and Unlocking

The Operator Interface can be locked to prevent accidental or unintentional changes that could have serious impacts on the system. To further secure the system, a password can be set to ensure only authorized individuals can access these critical sections of the Operator Interface

When the Operator Interface is unlocked, the lock indicator will be replaced with an unlocked indicator.

oi lock
Figure 80. Operator Interface Locked indicator
oi unlock
Figure 81. Operator Interface Unlocked indicator
5.3.3.4.1. Lock the Operator Interface

To lock the Operator Interface, simply click the Unlocked indicator or bring up the settings menu and select Lock.

To prevent accidental changes to your Nuvation Energy BMS, always lock the Operator Interface after making your changes.

It is possible to require a password to unlock the Operator Interface.

5.3.3.4.2. Unlock the Operator Interface

To Unlock the Operator Interface, simply click the Locked indicator or bring up the settings menu and select Unlock. If a password has been set, the correct password will need to be entered to complete the unlocking process.

5.3.3.5. About

This screen displays version details for the underlying software for your Nuvation Energy BMS. The name and number of the current software release are displayed at the top of the About screen.

In the screenshot below, the release name is at the top in large blue letters. The version number following the release name has a format of yy.mm with yy representing the year and mm representing the month within that year that this Nuvation Energy BMS package was released.

The version numbers below the release name are the version numbers of the individual software packages running on your Nuvation Energy BMS.

When contacting support, please include the details in your About screen.

ssoi about
Figure 82. Sample About Screen
Not all information is displayed unless the BMS is factory locked. Additional information for identifying the configuration and images is provided to ensure the correct version of firmware and configuration is being used as specified at the factory.

5.3.4. The Status Banner

The banner at the top of the screen is used to indicate high level changes in system status. During typical operation nothing is displayed and this indicates the Operator Interface is communicating with the BMS and the BMS is fully operational with no major diagnostics problems.

5.3.4.1. Service Lockout Indication

When the system is either entering or is in service lockout, a banner is displayed indicating this to the user.

oi status service lockout
Figure 83. Operator Interface Service Lockout indicator
oi status entering lockout
Figure 84. Operator Interface Entering Service Lockout indicator
5.3.4.2. Self Check Indication

When the system is either exiting service lockout or has just booted, the system will execute a Self Check to verify a safe operation. A banner is displayed indicating the Self Check execution to the user.

oi status self check
Figure 85. Operator Interface Self Check indicator
5.3.4.3. Communication Loss

When the Operator Interface can no longer communicate with the Battery Management System, a communication lost banner is displayed at the top of the display. It will provide the amount of time since disconnected and updates each second.

oi status comm lost
Figure 86. Operator Interface Communication lost indicator

5.3.5. Understanding the Service Lockout and Self Check

Service Lockout allows you to put your Nuvation Energy BMS into a Lockout state while you perform maintenance on your energy storage installation such as loading new configurations, or upgrading the firmware.

If you are making physical wiring changes, you should enter Service Lockout before powering down Nuvation Energy BMS.

When in Service Lockout, Nuvation Energy BMS will set all faults and warnings as tripped.

A Self Check is a self-test that is executed when:

  1. Exiting Service Lockout

  2. When booting the Battery Management System

A Self Check is a verification to make sure that the configured Battery Management System is ready for operation. A Battery Management System remains in Self Check until the issues preventing a successful Self Check are corrected. Refer to Section 5.3.5.3, “Self Check” for further details about the Self Check.

The status for the Service Lockout and Self Check are displayed in the status banner of the Operator Interface as indicated in Section 5.3.4, “The Status Banner”
5.3.5.1. Entering Service Lockout
  1. Unlock the Operator Interface by clicking the Lock indicator and enter the password if prompted.

  2. From the menu, select Service to bring up the Service page

    oi menu service
  3. Click Enter Service Lockout to enter Service Lockout

    oi service lockout button
Entering Service Lockout will open all contactors and GPOs and halt all cell voltage/temperature and stack voltage/current data acquisition.
When in Service Lockout, you will not be able to access the Operator Interface dashboard.
5.3.5.1.1. Shutdown Timer for Low-Voltage BMS

To protect your batteries, the Low-Voltage BMS automatically shuts down after an hour of being in Service Lockout.

If the Enable input is asserted, ([lvbms-installation-electrical-control-gpio-bms-enable]) , this built-in protection will be disabled and the Low-Voltage BMS will remain powered up after 1 hour has expired. Note, the Low-Voltage BMS will apply a small load on the cells even in Service Lockout so disabling the automatic shutdown must be done with care as it is possible to over-discharge the cells if left in this state for a significant duration.

5.3.5.2. Exiting Service Lockout
  1. Unlock the Operator Interface by clicking the Locked indicator and enter the password if prompted.

  2. From the menu, select Service to bring up the Service page

    oi menu service
  3. Exit the Service Lockout by clicking Exit Service Lockout

Exiting Service Lockout may close contactors
  1. A Self Check will be initiated and its banner will be displayed on the Operator Interface. Refer to Section 5.3.4.2, “Self Check Indication” for banner details.

5.3.5.3. Self Check

The Self Check verifies that all configured data inputs for the faults and warnings of the Battery Management System are being received. The Battery Management System will remain in Self Check until all these data inputs are received. The Self Check is executed continuously unless the Battery Management System is returned back to Service Lockout. If the issue(s) that were preventing a successful Self Check are corrected, the Battery Management System will enter operation. You will be able to access the dashboard controls once Nuvation Energy BMS has successfully completed the Self Check.

5.3.5.4. Self Check Troubleshooting

If Nuvation Energy BMS fails its Self Check, you will receive an error notification. The reason for the failure is that some form of input to the Battery Management System was not received. This means that the Battery Management System was expecting some measurement (e.g. cell voltage, current) but it never was received by the software. Because of this lack of data, the Battery Management System should not be operated and the issue(s) needs to be resolved. There are two main causes for a lack of Self Check failures:

  • Misconfiguration: The current configuration does not match the Battery Management System deployment.

  • Incomplete setup: There is an issue in the setup of the Battery Management System (e.g. cables are missing or faulty)

You can identify the parts of the Battery Management System that have not completed their Self Check by referring to the Details > Safety accordion section. The faults/warnings that are currently failing Self Check are indicated by the red text "Checking" on the right side of the display.

Refer to Section 6.1, “Faults and Self Check Failures” for details on on how to address the Self Check failures.

If you just imported a configuration file, re-import a known-good configuration file. You can download a previously generated configuration file from the nCloud (https://ncloud.nuvationenergy.com).

If the failures persist, please submit a support ticket with as much detail as possible to support@nuvationenergy.com.

5.4. Communication Protocols

5.4.1. Modbus Protocol Support

Low-Voltage BMS implements the SunSpec Energy Storage Models (Draft 3) as the top-level Modbus interface to the product. Specifically the Low-Voltage BMS implements the 800 series Models.

5.4.1.1. Modbus RTU

This protocol is used in serial communications. The default configuration is as follows:

  • Baud rate: 38400

  • Parity: even

  • Data bits: 8

  • Stop bits: 1

The Modbus RTU slave address must be set through software configuration. The default slave address value is 1.

A slave address of zero is used as a broadcast address and should not be used as the Modbus RTU slave address.
5.4.1.2. Modbus TCP

This protocol is used for communications over TCP/IP networks. A single Modbus TCP connection is supported over port 502 for read and write access. All register data is transmitted as big-endian (most significant byte first).

5.4.1.3. Implemented SunSpec Energy Storage Models

The SunSpec Energy Storage Models contain a number of 'Models' that can be implemented by vendors to describe a storage device at various levels of detail.

The Models implemented by Nuvation Energy BMS are described in the sections below. The SunSpec Information Model Reference (SunSpec-Energy-Storage-Information-Models_Draft_3.xlsx) is available for download under the Low-Voltage BMS section on the Nuvation Energy technical resources page located at https://www.nuvationenergy.com/technical-resources.

5.4.1.3.1. Common Model

This model primarily contains information to identify the device (e.g. manufacturer, model, serial number) as well as the version of software running on the device. The Modbus address of this model is 40000. Table 32, “Common Model Points” describes the points of the Common Model as implemented in the BMS. A full description of the Common Model can be found in the SunSpec specification bundle.

Table 32. Common Model Points
Point Name Address Description Note

SunSpec_ID

40000

Identifies this as a SunSpec Modbus Map

Set to 0x53756e53

ID

40002

Identifies Common Model Block

Set to 0x0001

L

40003

Length of block

Set to 66

Mn

40004

Device Manufacturer

Set to "Nuvation Engineering"

Md

40020

Device Model Number

Contents of BMS registers sc_mfg_info.manufacturing<0-3>`

Opt

40036

Options

Set to "Fully Loaded"

Vr

40044

Version Information

Contents of the sc_fw_image.build_version​ and sc_fw_image.build_id BMS registers separated by a colon

SN

40052

Device Serial Number

Contents of BMS registers sc_mfg_info.serialnumber<0-1>

DA

40068

Device Address

Set to 0x1234

5.4.1.3.2. 801 (Energy Storage Base Model)

This model describes an energy storage device at the highest possible level. State-of-Charge and overall alarm and warning states are found here. All mandatory points are implemented. The Modbus address of this model is 40070.

5.4.1.3.3. 802 (Battery Base Model)

This model describes a battery storage device. At this level, the critical operational information includes the charge and discharge current limits. All mandatory points are implemented. The Modbus address of this model is 40094.

5.4.1.3.4. 803 (Lithium-Ion Battery Model)

This model describes a lithium-ion battery in detail. Voltage, temperature, and current statistics are available at the pack and stack level within this model. All mandatory and most optional points are implemented. The Modbus address of this model is 40116.

5.4.1.3.5. End Model

This model marks the end of the implemented Modbus address space.

5.4.1.4. SunSpec Energy Storage Models Structure and Nomenclature

This section is a clarification of terms used to describe SunSpec Energy Storage Models. It is used to understand the terminology in the spreadsheet presented in the previous section.

5.4.1.4.1. Points

All SunSpec Energy Storage Models are a collection of points (i.e. Modbus registers). These points can be one or more Modbus registers in length. By definition, each Modbus register is 16 bits wide. For points that are larger than one Modbus register, partial read accesses are not allowed. A Modbus request to a SunSpec point must read all registers that make up the point. Otherwise, a Modbus read/write error is returned on such an access.

For example, the SunSpec 802 model has the Evt1 point which is of type bitfield32. In this case, the point spans 2 Modbus registers and so a request to read this point must read 2 Modbus registers.

5.4.1.4.2. Fixed/Repeating Blocks

SunSpec Energy Storage Models are described as collections of Fixed and Repeating blocks of points. A Fixed block is a set of points that is always defined and never changes in its size. A Repeating block describes a set of related points (i.e. usually for a string of batteries) of which there could be multiple instances of the Repeating blocks. The points within a repeating block are the same but these sets of blocks are concatenated sequentially.

For a single-stack Nuvation Energy BMS there is only one 803 repeating block.

If a stack/string is configured in Nuvation Energy BMS software to be installed, then accessing its 803 repeating block will provide a valid Modbus response.

Repeating blocks are taken into account in the length indicated in the model header.

5.4.1.4.3. Unimplemented Points

Any SunSpec point that is not implemented by a vendor will generate an unimplemented response. The response will be a valid Modbus read response but all point data returned will report unimplemented values. The unimplemented values vary by type as listed in the following table.

Table 33. Unimplemented Point Values
Type Width (bits) Unimplemented Value (hexadecimal)

signed int

16

0x8000

unsigned int

16

0xFFFF

signed int

32

0x80000000

unsigned int

32

0xFFFFFFFF

enumeration

16

0xFFFF

enumeration

32

0xFFFFFFFF

A write to a writeable SunSpec point that is unimplemented will generate a Modbus write error.

The SunSpec implementation on Nuvation Energy BMS has unimplemented points as follows:

Table 34. Unimplemented SunSpec Points
Model Point Name Description

801

Evt

Event status bitfield

801

DisChaRate

Self Discharge Rate

801

MaxRsvPct

Maximum Reserve Percent

801

MinRsvPct

Minimum Reserve Percent

801

ChaSt

Charge Status

801

DerAlarmReset

Alarm Reset (read is unimplemented)

802

CycleCt

Cycle Count

802

WMaxDisChaRte

NamePlate Max Discharge Rate

802

SoH

State of Health (reported in 803 model per string)

802

BatReqPCSSt

PCS State Request

802

BatReqW

Battery Power Request

802

SoH_SF

State of Health Scale Factor

802

BatReqW_SF

Battery Power Request Scale Factor

803

StrEvt2

String Event 2

803

StrConFail

String Connection Fail

5.4.1.4.4. Scale Factors

All SunSpec points are integer values (signed or unsigned). To account for different range values beyond the data size (i.e. greater than 65535 for an unsigned 16 bit value) or some fractional value (i.e. 1.1), some SunSpec points have scale factors associated with them. The scale factor is another point within the model which contains a signed integer exponent of base 10 that scales a corresponding point value. For example, a scale factor of 2 would result in multiplying the corresponding point by 100. Likewise a scale factor of -3 would result in a scale factor of 0.001. Refer to the prior SunSpec Energy Storage Models spreadsheet for the relationship between Points and their scale factors. All scale factors are fixed for a Model and do not change in value.

5.4.1.5. Operational Cases for SunSpec Modbus Interface

There are two main operational cases for the control of Nuvation Energy BMS over its SunSpec interface:

  1. An external controller (sometimes called "Energy Storage Controller") is used to coordinate power control functions of the BMS in conjunction with some other equipment (such as an inverter). This controller requires periodic and rapid responses of SunSpec point reads as well as some control over the operation of the BMS (such as stack connectivity). If there is a loss of communication between this controller and the BMS, the BMS will disconnect the stack(s) as a safety precaution.

  2. An owner/operator of a battery system requires control of the BMS to monitor the activity of the batteries and track battery usage and its charge/discharge activities. This information can then be used to characterize the usage of the Battery Management System and to validate battery warranties of a vendor.

Read and write Modbus TCP operations can be performed over the standard Modbus port 502 (only a single connection is supported on this port).

The shortest polling periods expected for the SunSpec Energy Storage Models during operation are listed below:

  • All fixed model blocks: 100ms

  • 801: less than 100ms

  • 802: less than 100ms

  • 803 Fixed Block: less than 100ms

  • 803 Repeating Block(s): less than 100ms (single block)

Depending on BMS system load and size, some requests could take up to 1000ms. The BMS typically samples data at between 250ms to 1000ms depending on configuration, so reading the data faster than this will not improve system behaviour and incurs unnecessary overhead.

These two operational cases will be discussed in detail in the following sections.

5.4.1.5.1. External Controller Communicating Over SunSpec Modbus Interface

An external controller typically polls Nuvation Energy BMS battery control points at a rate of 2–4 Hz. This controller reads data points required to manage current flow in the system. The following table summarizes the most important points an external controller may want to read from the BMS.

Table 35. SunSpec Points Read by an External Controller
Model Block Point Name Address Scale Factor Purpose

801

Fixed

DERHb

40086

No

BMS Heartbeat counter incremented every second

802

Fixed

Evt1

40101

No

Bit field of all faults/warnings of a the BMS

802

Fixed

Vol

40105

Yes

External DC voltage of the battery system

802

Fixed

MaxBatACha

40106

Yes

Charge current limit calculated by the BMS

802

Fixed

MaxBatADischa

40107

Yes

Discharge current limit calculated by the BMS

803

Fixed

BTotDCCur

40127

Yes

Total DC current of the battery system

A controller may also want to command Nuvation Energy BMS to perform certain actions, such as connecting/disconnecting the battery. The following table provides the different writeable points in the SunSpec interface for different control functions:

Table 36. SunSpec Points Written to by an External Controller
Model Block Point Name Address Purpose

801

Fixed

ControllerHb

40087

Heartbeat register for external controller

801

Fixed

DERAlarmReset

40088

Clears all latched alarms in the BMS

802

Fixed

BSetOperation

40110

Commands Nuvation Energy BMS to connect/disconnect the battery

When configured, the heartbeat controller can be used to update the watchdog timer of Nuvation Energy BMS on single-stack and multi-stack implementations. If the heartbeat point is not updated within the watchdog timer period, a fault will be generated on the BMS stack and its corresponding contactors will be opened. The value written to the heartbeat point must increase in value and roll over to zero when the 16 bit range limit is reached.

The clearing of alarms of Nuvation Energy BMS is accomplished by writing a value of 1 to the DERAlarmReset point. This point is erroneously identified as read-only in the SunSpec Energy Storage Models spreadsheet referenced earlier. Note that the alarm will not be cleared if the alarm condition is still present.

Only BMS Faults are cleared using this point. BMS Warnings are not cleared.

Commanding the Nuvation Energy BMS stack/string to connect/disconnect is accomplished through the BSetOperation point. This point accepts the enumerated values for these connect/disconnect operations. Additional connection logic (such as separate pre-charge circuitry) is managed automatically by the BMS when it is configured for such an operation.

5.4.1.5.2. External Nuvation Energy BMS Monitoring Over SunSpec Interface

An external data logger may want to access a variety of data from the BMS. In general, a data logger will not actively manage Nuvation Energy BMS; normally, it will not initiate actions such as connecting a battery stack to the DC voltage bus or clearing faults. A data logger should connect to one of the read-only Modbus connections (if available) to allow the writable Modbus connection to be available for separate external control functions. The following table contains the SunSpec Energy Storage Models Points exposed by the BMS that could be collected for logging purposes.

Table 37. SunSpec Points Read by External Data Logger
Model Block Point Name Address Scale Factor Purpose

801

Fixed

SoC

40081

Yes

BMS State of Charge

801

Fixed

DERHb

40086

No

BMS Heartbeat counter incremented every second

802

Fixed

Evt1

40101

No

Bit field of all faults/warnings of a BMS

802

Fixed

Vol

40105

Yes

External DC voltage of the battery system

802

Fixed

MaxBatACha

40106

Yes

Charge current limit calculated by BMS

802

Fixed

MaxBatADischa

40107

Yes

Discharge current limit calculated by BMS

802

Fixed

BSetOperation

40110

No

BMS requested connection state of all stacks/strings

803

Fixed

BConStrCt

40118

No

Number of stacks/strings with contactor closed

803

Fixed

BMaxCellVol

40119

Yes

Maximum cell voltage measured

803

Fixed

BMaxCellVolLoc

40120

No

Module/String location of maximum cell voltage

803

Fixed

BMinCellVol

40121

Yes

Minimum cell voltage measured

803

Fixed

BMinCellVolLoc

40122

No

Module/String location of minimum cell voltage

803

Fixed

BMaxModTmp

40123

Yes

Maximum module temperature

803

Fixed

BMaxModTmpLoc

40124

No

Module/String location for maximum module temperature

803

Fixed

BMinModTmp

40125

Yes

Minimum module temperature

803

Fixed

BMinModTmpLoc

40126

No

Module/String location for minimum module temperature

803

Fixed

BTotDCCur

40127

Yes

Total DC current of the battery system

803

Fixed

BMaxStrCur

40128

Yes

Largest DC current reported by a stack/string

803

Fixed

BMinStrCur

40129

Yes

Smallest DC current reported by a stack/string

803

Repeat

StrSoC

40135 +Index

No

State of charge for a stack/string

803

Repeat

StrSoH

40136 +Index

Yes

State of health for a stack/string

803

Repeat

StrCur

40137 +Index

Yes

Current of a stack/string

803

Repeat

StrMaxCellVol

40138 +Index

Yes

Maximum cell voltage of a stack/string

803

Repeat

StrMinCellVol

40139 +Index

Yes

Minimum cell voltage of a stack/string

803

Repeat

StrCellVolLoc

40140 +Index

No

Location of min/max cell voltages of a stack/string

803

Repeat

StrMaxModTmp

40141 +Index

Yes

Maximum module temperature of a stack/string

803

Repeat

StrMinModTemp

40142 +Index

Yes

Minimum module temperature of a stack/string

803

Repeat

StrModTmpLoc

40143 +Index

No

Location of min/max module temperatures of a stack/string

803

Repeat

StrEvt1

40144 +Index

No

Alarms warnings and status bitfield of a stack/string

The term Index in the Repeating block addresses used in the above table refers to a calculation of Index = Stack Index * Length of Repeating block. By definition, the 803 Repeating block is 16 Modbus registers in length.
5.4.1.6. Accessing SunSpec Energy Storage Models

SunSpec Energy Storage Models are located contiguously in the Modbus address space starting at a base address of 40000. The Common Model is always located first in this space. The End Model is always last and is used to denote the end of SunSpec Modbus registers. Each model located between the Common Model and the End Model has a numeric identifier as well as a length. A handy tool that can be used to explore the SunSpec Modbus registers for Nuvation Energy BMS is modpoll.exe. It is available for free download at http://www.modbusdriver.com/modpoll.html.

Using modpoll.exe, the Common Model can be polled from a using the following command (assuming the device has an IP address of 192.168.1.21)

Polling example with BMS IP address of 192.168.1.21
modpoll.exe -m tcp -0 -r 40000 -c 70 192.168.1.21

modpoll 3.4 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2013 proconX Pty Ltd
Visit http://www.modbusdriver.com for Modbus libraries and tools.

Protocol configuration: MODBUS/TCP
Slave configuration...: address = 1, start reference = 40000 (PDU), count = 70
Communication.........: 192.168.1.21, port 502, t/o 1.00 s, poll rate 1000 ms
Data type.............: 16-bit register, output (holding) register table

-- Polling slave... (Ctrl-C to stop)
[40000]: 21365
[40001]: 28243
[40002]: 1
[40003]: 66
.
.
.
[40068]: 4660
[40069]: -32768

As another example, the complete 802 model for a system with one stack could be polled using the following command:

Example with BMS IP address of 192.168.1.21
modpoll.exe -m tcp -0 -r 40094 -c 22 192.168.1.21

modpoll 3.4 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2013 proconX Pty Ltd
Visit http://www.modbusdriver.com for Modbus libraries and tools.

Protocol configuration: MODBUS/TCP
Slave configuration...: address = 1, start reference = 40094 (PDU), count = 22
Communication.........: 192.168.1.21, port 502, t/o 1.00 s, poll rate 1000 ms
Data type.............: 16-bit register, output (holding) register table

-- Polling slave... (Ctrl-C to stop)
[40094]: 802
[40095]: 20
.
.
.
[40114]: -2
[40115]: -32768

5.4.2. CAN Bus Protocol Support

The details below do not apply to no-CAN variants (*-NC) as they do not have a CAN bus interface.

Nuvation Energy BMS uses a flexible CAN reporting implementation which maps BMS software registers to CAN message identifiers. It is based on the CAN 2.0 standard, with the exception that Remote Transmission Requests (RTR) are not supported.

The parameters for the CAN interface are:

  • Baud: 500 kbit/s

  • CAN ID: 11-bit Identifier (Base frame format)

  • CAN payload length: variable from 1 byte to 8 bytes based on register size

5.4.2.1. CAN Reporting and Commands

The CAN interface provides the following capabilities through configuration:

  • Reporting of up to 64 individual registers within the Battery Management System.

  • Bulk-reporting of registers that represent sets of measurements (e.g. cell voltages and temperatures)

  • Creation of customizable commands to the Battery Management System to implement actions such as:

    • connecting/disconnecting the battery to the DC bus

    • clearing faults and/or warnings

    • updating the controller heartbeat (i.e. watchdog)

These capabilities are described in Section 4.8.1, “CAN Bus”.

5.4.2.2. Data Format

The protocol is based on the CAN message frames. A reference for the CAN message frames can be found at https://en.wikipedia.org/wiki/CAN_bus. All register data is transmitted as little-endian (least significant byte first).

5.4.2.3. Data Size

The size of the register data transmitted/received in a CAN frame will depend on the variable type of the register. The type and corresponding variable type for all registers used in Battery Management System can be found in Section 4.1.2, “Units”. For example, a variable type of int32 represents a signed 32-bit integer and is 4 bytes in length. All register types can be read from the Operator Interface Registers menu option as discussed in Section 5.3.3.1, “Registers”

6. Troubleshooting

6.1. Faults and Self Check Failures

During initial setup and usage of a Nuvation Energy BMS, there are two main classes of failures that prevent stack connection:

  1. 'Self Check' failures

  2. Triggering of faults

When either of these failures occur, an operator of the Operator Interface can open the Details > Safety accordion (Section 5.3.2.5, “Safety”). That screen presents a list of faults, warnings and user triggers which can have the following states:

Table 38. States for Faults, Warnings and User Triggers
Self Check State Faults, Warnings, User Triggers States of Faults, Warnings, User Triggers

Incomplete Self Check

Faults, Warnings, User Triggers

Checking

Completed Self Check

Faults

Clear or Tripped

Completed Self Check

Warnings or User Triggers

Clear or Triggered

All faults, warnings and user triggers that are in a Checking state indicate that the Self Check operation is still executing. All fault, warning, and user triggers in this state are not receiving all of their configured input data. The Self Check will continue to execute when there is still at least one fault,warning or user trigger in the Checking state. The contactors are not allowed to close while the Self Check is executing.

After the Self Check has completed and when one or more faults are in the Tripped state, the Nuvation Energy BMS enters its faulted state and opens all contactors. The contactors can not be commanded to close again until all faults are back in the Clear state.

This section will describe the condition the fault monitors and the meaning when that fault has triggered. In addition this section describes how the Self Check failures can occur for the different classes of faults/warnings/user.

In general, all warnings and user triggers have a similar trigger condition as their corresponding fault. The following discussion will focus on the term fault and all descriptions can be applied to the compatible warning or user trigger. Each fault has a descriptive name (e.g. Cell Over Voltage) and a name for the corresponding trigger component (e.g. stack_fault_cell_over). Both names are shown on the details tab of the OI, refer to Section 5.3.2.5, “Safety” for details.

6.1.1. Cell Voltage Faults

Cell Over Voltage | stack_fault_cell_over
  • Fault that is triggered when an installed cell voltage is above the over fault threshold.

Cell High Voltage | stack_fault_cell_hi
  • Fault that is triggered when an installed cell voltage is above the high fault threshold.

Cell Low Voltage | stack_fault_cell_lo
  • Fault that is triggered when an installed cell voltage is below the low fault threshold.

Cell Under Voltage | stack_fault_cell_under
  • Fault that is triggered when an installed cell voltage is below the under fault threshold.

6.1.1.1. Self Check Issues

These faults could fail Self Check through a number of possible conditions such as:

  1. Missing or misconfigured Low-Voltage BMS or G4 Cell Interface modules, preventing the software from completing a full scan of the cell voltage and temperature measurements.

  2. Misconfiguration on the number of Low-Voltage BMS or G4 Cell Interface modules. Refer to the register sc_linkbus.cicount. (Note that Low-Voltage BMS is counted as one G4 Cell Interface).

  3. Incorrect Low-Voltage BMS or G4 Cell Interface configuration. For example if the type of Low-Voltage BMS or G4 Cell Interface defined in sc_linkbus.softwareid is incorrect, it may prevent the cell voltage measurement.

  4. Failure in the Link Bus communication. Any interruptions of the bus can prevent the cell voltages from completing a Self Check. Such a failure could happen if:

    • Not all G4 Cell Interface modules are connected.

    • Link Bus cables are connected to the wrong port (i.e. Link Out instead of Link In).

    • Link Bus cables are damaged.

    • Not enough cells are connected to the Low-Voltage BMS and/or the G4 Cell Interface expansion module.

    • Please refer to the Nuvation Energy Low-Voltage BMS: NUV300 Datasheet on the minimum cell voltage required.

6.1.2. Stack Voltage Faults

Stack Over Voltage | stack_fault_voltage_over
  • Fault that is triggered when the stack voltage is above the over fault threshold.

Stack High Voltage | stack_fault_voltage_hi
  • Fault that is triggered when the stack voltage is above the high fault threshold.

Stack Low Voltage | stack_fault_voltage_lo
  • Fault that is triggered when the stack voltage is below the low fault threshold.

Stack Under Voltage | stack_fault_voltage_under
  • Fault that is triggered when the stack voltage is below the under fault threshold.

Voltage Sum Check | stack_fault_voltage_sum
  • Fault that is triggered when the absolute difference between the measured stack voltage and sum of all cell voltages in the stack exceeds the fault threshold.

6.1.2.1. Self Check Issues

These faults have the following Self Check issues:

Fault Self Check Issues

stack_fault_voltage_hi

Power Interface subsystem’s AFE is configured to be disabled

stack_fault_voltage_lo

stack_fault_voltage_sum

Same issues regarding cell voltage Self Check issues (Section 6.1.1.1, “Self Check Issues”)

6.1.3. Thermal Faults

Discharge Under Temperature | stack_fault_discharge_therm_over
  • Fault that is triggered when any thermistor measurement is above the over fault threshold during discharge.

Discharge High Temperature | stack_fault_discharge_therm_hi
  • Fault that is triggered when any thermistor measurement is above the high fault threshold during discharge.

Discharge Low Temperature | stack_fault_discharge_therm_lo
  • Fault that is triggered when any thermistor measurement is below the low fault threshold during discharge.

Discharge Under Temperature | stack_fault_discharge_therm_under
  • Fault that is triggered when any thermistor measurement is below the under fault threshold during discharge.

Charge Over Temperature | stack_fault_charge_therm_over
  • Fault that is triggered when any thermistor measurement is above the over fault threshold during charge.

Charge High Temperature | stack_fault_charge_therm_hi
  • Fault that is triggered when any thermistor measurement is above the high fault threshold during charge.

Charge Low Temperature | stack_fault_charge_therm_lo
  • Fault that is triggered when any thermistor measurement is below the low fault threshold during charge.

Charge Under Temperature | stack_fault_charge_therm_under
  • Fault that is triggered when any thermistor measurement is below the under fault threshold during charge.

6.1.3.1. Self Check Issues

All of the temperature measurements are communicated through over the Link Bus using the same mechanism as the cell voltages. Thus, the Self Check failures for the temperature measurements are exactly the same. Refer to Section 6.1.1.1, “Self Check Issues” for further details.

6.1.4. Stack Current Faults

Discharge Over Current | stack_fault_discharge_current_over
  • Fault that is triggered when the stack current is above the over discharge fault threshold.

Discharge High Current | stack_fault_discharge_current_hi
  • Fault that is triggered when the stack current is above the high discharge fault threshold.

Charge High Current | stack_fault_charge_current_hi
  • Fault that is triggered when any stack current is above the high charge fault threshold.

Charge Over Current | stack_fault_charge_current_over
  • Fault that is triggered when any stack current is above the over charge fault threshold.

Both of these prior faults could trigger if the current shunt is not properly connected or has not been configured for its proper measurement range.
6.1.4.1. Self Check Issues

The stack current is measured from the Power Interface subsystem’s Analog Front End (AFE). The following issues can contribute to these faults failing a Self Check:

  1. Power interface subsystem AFE is not enabled.

  2. Communication failure between the stack controller subsystem and power interface subsystem.

6.1.5. Pre-charge Faults

Pre-charge Timeout | stack_fault_precharge_timeout
  • Fault that is triggered at the end of the pre-charge period. Reasons for fault include:

Pre-charge Error Code Error Code Description

1

The delay set by stack_control.precharge_delay expired before a current is measured.

2

The measured current exceeds stack_control.precharge_max_current.

  • The value of stack_control.precharge_error (listed above) can be used to determine the reason for triggering the fault.

    Pre-charge Over Current | stack_fault_precharge_over_current
  • Fault that is triggered at any time during the pre-charge connection period if the stack current exceeds the fault threshold.

6.1.5.1. Self Check Issues

These faults are directly related to the current faults detailed previously. Refer to Section 6.1.4.1, “Self Check Issues” for details.

6.1.6. Contactor Faults

Contactor Coil Drive Check | stack_fault_coil_fail
  • Fault that is generated when there is a difference between the commanded state of the contactor coil and the observed state read from the hardware. This fault is a consistency check on the drive state of the coil. This fault will trigger when contactors are unconnected or have a short in their circuit. If the fault pilot signal is asserted, this fault will trigger and can not be used to determine if there is a inconsistent contactor drive state.

Contactor Feedback Check | stack_fault_contactor_feedback_fail
  • Fault that is generated when there is a mismatch between the contactor state and the contactor feedback signal provided. Note that the feedback is provided through a GPI.

Fault Pilot Check | sc_fault_fault_pilot_state_mismatch
  • Fault that is generated when the fault pilot state set by the stack controller subsystem does not match the detected state on the power interface subsystem.

sc_fault_fault_pilot_state_mismatch.time_hyst must be set to at least 500ms.
6.1.6.1. Self Check Issues

All of these faults are dependent on the stack bus communication between the

The following table summarizes these Self Check issues:

Fault Self Check Issues

sc_fault_pi_interlock

Stack Bus failure

sc_fault_fault_pilot_state_mismatch

Stack Bus failure

stack_fault_coil_fail

Power interface subsystem’s AFE disabled.

stack_fault_contactor_feedback_fail

GPI not configured
Power interface subsystem’s AFE disabled
Stack Bus failure.

A stack bus is internal to the Low-Voltage BMS product. Please contact support@nuvationenergy.com if you are experiencing these faults.

6.1.7. Diagnostics Faults

Cell Open Wire Test | stack_fault_cell_open_wire
  • Fault indicating there is an open wire on an installed cell channel.

  • This can also trip due to misconfigured or incorrectly installed cells.

Cell Open Wire Test | stack_warn_cell_open_wire
  • Warning triggering on the same data as stack_fault_cell_open_wire.

Thermistor Circuit Test | stack_fault_therm_circuit_fail
  • Fault indicating there is a circuit failure on a thermistor channel on the Low-Voltage BMS or on the expansion G4 Cell Interface module.

  • This can also trip due to misconfigured or incorrectly installed thermistors.

Thermistor Consistency Check | stack_fault_ci_therm_consistency
  • Fault indicating the difference between thermal readings on the Low-Voltage BMS or on the expansion G4 Cell Interface module is too large.

Cell Interface Measurement Check | sc_fault_ci
  • Fault indicating there was an internal hardware failure on the Low-Voltage BMS or on the expansion G4 Cell Interface module.

Current Shunt Open Wire Check | stack_fault_open_shunt
  • Fault indicating the current shunt is open circuit.

Current Shunt Short Circuit Check | stack_fault_short_shunt
Contactor End-Of-Life | ssg_fault_contactor_end_of_life
Stack Switchgear Contactor Life Sanity Check | ssg_fault_contactor_life_sanity_check
  • Fault indicating a sanity check error on the contactor life data.

Stack Switchgear Contactor Life Memory Error | ssg_fault_config_contactor_life
  • Fault indicating an error saving or loading the contactor life data.

Stack Switchgear Contactor Life Memory Check | ssg_fault_config_contactor_life_verify
  • Fault indicating a validation error on the contactor life data.

6.1.7.1. Known Issues
6.1.7.1.1. Short Shunt Fault on Self Check
Issue

In rare occasions, the stack_fault_short_shunt can accidentally trip when performing a Self Check. If the contactors remain open and no current has flowed through the batteries, the fault does not indicate a short on the current shunt. Note that this issue only occurs within a minute of performing a Self Check and faults that happen outside this window should be investigated further.

Workaround

The operator of the Operator Interface can attempt to clear the fault as described in Section 5.3.2.5, “Safety”.

6.1.7.1.2. Clearing the Short Shunt Fault Is Not Immediate
Issue

Clearing the stack_fault_short_shunt fault might not occur immediately.

Workaround

To determine when the fault can be cleared, read the values of the stack_short_shunt_detector.voltage_activity_threshold and stack_short_shunt_detector.inactivity_envelope registers. Wait until the value in the inactivity envelope is smaller than the voltage activity threshold. At this point the stack_fault_short_shunt fault can be cleared. The maximum time required for the inactivity envelope to fall below the threshold can be determined by reading the stack_short_shunt_detector.activity_detection_time register, with the value given in μs.

6.1.7.2. Self Check Issues

The stack_fault_cell_open_wire, stack_fault_therm_circuit_fail, stack_fault_ci_therm_consistency, and sc_fault_ci can fail a Self Check due to problems with the Link Bus. Refer to Section 6.1.1.1, “Self Check Issues” for further details.

The stack_fault_open_shunt and stack_fault_short_shunt can fail a Self Check if the associated algorithms are not enabled, the power interface subsystem’s AFE is not enabled, or there is Stack Bus communication errors.

6.1.8. Breaker Faults

Breaker Tripped Check | stack_fault_breaker_tripped
  • Fault that is triggered to indicate that the breaker has tripped.(i.e. opened)

Breaker Conflict Check | stack_fault_breaker_conflict
  • Fault that is triggered to indicate that the breaker state differs from the expected state of the breaker.

6.1.8.1. Self Check Issues

Most Self Check failures for these faults are caused by an invalid configuration of the GPI(s) used to read the breaker state.

6.1.9. Watchdog Faults

Power Interface Measurement Watchdog | stack_fault_power_wdt
  • Fault indicating stack voltage and current data has not been updated periodically.

Cell Voltage Measurement Watchdog | stack_fault_cell_wdt
  • Fault indicating all cell data has not been updated periodically for every installed cell.

Temperature Measurement Watchdog | stack_fault_therm_wdt
  • Fault indicating all thermistor data has not been updated periodically for every installed thermistor.

Cell Interface Measurement Watchdog | stack_fault_ci_wdt
  • Fault indicating G4 Cell Interface data has not been updated periodically for every installed G4 Cell Interface.

Cell Open Wire Measurement Watchdog | stack_fault_open_wire_wdt
  • Fault indicating open wire scanning has not been occurring periodically when connected to the DC bus.

Controller Heartbeat Watchdog | sc_fault_controller_wdt
  • Fault indicating that an external controller to the Battery Management System was not updating its watchdog timer (via the SunSpec heartbeat).

Controller Heartbeat Watchdog | sc_warn_controller_wdt
  • Warning triggered from the same data as sc_fault_controller_wdt.

StackBus Receive Watchdog | sc_fault_stackbus_rxwdt
  • Fault indicating that there was a receive communication failure over the Stack Bus.

StackBus Transmit Watchdog | sc_fault_stackbus_txwdt
  • Fault indicating that there was a transmit communication failure over the Stack Bus.

Power Interface AFE Watchdog | sc_fault_pi_afe_wdt
  • Fault indicating that there was a communication failure between the AFE and the power interface subsystem.

LinkBus Communication Watchdog | sc_fault_linkbus_wdt
  • Fault indicating that there was an internal communication failure relating to Link Bus data. Please contact Nuvation Energy at support@nuvationenergy.com if you are experiencing this fault.

Stack Controller RAM Test Watchdog | sc_fault_ram_test_wdt
  • Fault indicating the internal RAM testing has not been executing periodically.

Stack Controller ROM Test Watchdog | sc_fault_rom_test_wdt
  • Fault indicating the internal ROM testing has not been executing periodically.

Stack Controller Factory Configuration | sc_fault_factory_verify_wdt
  • Fault indicating the factory registers on the stack controller subsystem

6.2. Lost/Forgotten IP Address

If a Nuvation Energy BMS has been configured with a static IP address and it has been forgotten, follow the steps below to recover it.

Depending on the network interface used on the PC, this process may not work due to differing security and IP configurations. If the only IP discovered is the IP of the PC, the network interface is not suitable and another one will need to be used. This issue is most common with USB to Ethernet dongles.

6.2.1. Wireshark (Windows/Linux)

  1. Download/install Wireshark on a PC (https://www.wireshark.org/)

  2. Connect the PC directly to the Ethernet port on the Low-Voltage BMS

  3. Start a Wireshark capture on the network interface connected to the Low-Voltage BMS

  4. In the 'filter' field, enter in arp.isgratuitous and press enter

  5. Either reboot the Low-Voltage BMS, or unplug/plug the Ethernet cable

  6. The device should send a 'Gratuitous ARP' on the Ethernet network. In Wireshark the 'Info' field looks like: Gratuitous ARP for <IP> (Request) where the <IP> is the address for the Low-Voltage BMS

  7. Once that is complete, update the PC network settings to match the Low-Voltage BMS and connect the Operator Interface.

6.2.2. Netdiscover (Linux only)

  1. Install netdiscover on a PC (on Debian based systems use: sudo apt install netdiscover)

  2. Connect the PC directly to the Ethernet port on the Low-Voltage BMS

  3. Run sudo netdiscover -i <interface> -p where <interface> is the network interface connected to the Low-Voltage BMS

  4. Either reboot the Low-Voltage BMS, or unplug/plug the Ethernet cable

  5. The device address and MAC will show up in netdiscover once an ARP packet is sent

  6. Once that is complete, update the PC network settings to match the Low-Voltage BMS and connect the Operator Interface.

In the event the IP address cannot be discovered, a factory reset operation must be carried out to restore the BMS to its default IP configuration.

Appendix A: Ordering Information

Low-Voltage BMS

Product part numbers for ordering a Low-Voltage BMS are listed in Table 39, “Low-Voltage BMS Ordering Information”.

Low-Voltage BMS kits—which include the Low-Voltage BMS module and cables—are available to get you started quickly. Please visit https://nstore.nuvationenergy.com for more details.
Table 39. Low-Voltage BMS Ordering Information
Part Number Product Name

NUV300-BC-12-NC-P

Low-Voltage BMS - 12 channel, no CAN

NUV300-BC-12-NC-U

Low-Voltage BMS - 12 channel, no CAN, PCB assembly only (no enclosure)

NUV300-BC-12-NC-KIT-nnn

Low-Voltage BMS Kit - 12 channel, no CAN (nnn denotes cable options)

NUV300-BC-16-NC-P

Low-Voltage BMS - 16 channel, no CAN

NUV300-BC-16-NC-U

Low-Voltage BMS - 16 channel, no CAN, PCB assembly only (no enclosure)

NUV300-BC-16-NC-KIT-nnn

Low-Voltage BMS Kit - 16 channel, no CAN (nnn denotes cable options)

Available as special order

NUV300-BC-12-P

Low-Voltage BMS - 12 channel

NUV300-BC-12-U

Low-Voltage BMS - 12 channel, PCB assembly only (no enclosure)

NUV300-BC-12-KIT-nnn

Low-Voltage BMS Kit - 12 channel (nnn denotes cable options)

NUV300-BC-16-P

Low-Voltage BMS - 16 channel

NUV300-BC-16-U

Low-Voltage BMS - 16 channel, PCB assembly only (no enclosure)

NUV300-BC-16-KIT-nnn

Low-Voltage BMS Kit - 16 channel (nnn denotes cable options)

G4 Cell Interface

Product part numbers for ordering a G4 Cell Interface are listed in Table 40, “G4 Cell Interface Ordering Information”. Accessory kits are listed in Table 41, “G4 Cell Interface Accessory Kits Ordering Information”.

G4 Cell Interface kits—which include the G4 Cell Interface module and cables—are available to get you started quickly. Please visit https://nstore.nuvationenergy.com for more details.
Table 40. G4 Cell Interface Ordering Information
Part Number Product Name

NUV100-CI-12-1

G4 Cell Interface - 12 channel, Bulkhead

NUV100-CI-12-U

G4 Cell Interface - 12 channel, PCB assembly only (no enclosure)

NUV100-CI-12-KIT

G4 Cell Interface Kit - 12 channel

NUV100-CI-16-1

G4 Cell Interface - 16 channel, Bulkhead

NUV100-CI-16-U

G4 Cell Interface - 16 channel, PCB assembly only (no enclosure)

NUV100-CI-16-KIT

G4 Cell Interface Kit - 16 channel

Table 41. G4 Cell Interface Accessory Kits Ordering Information
Part Number Product Name

NUVP-CI-DIN-MB

G4 Cell Interface Mounting Bracket (Bulkhead-to-DIN)

Appendix B: External Interfaces

Low-Voltage BMS

Four of the connectors use an RJ45 connector:

Table 42, “RJ45 Plug Details” describes a typical compatible plug for each of the RJ45 jacks.

Table 42. RJ45 Plug Details
connector RJ45

Conec 391J00039X

Manufacturer

Conec

Housing

391J00039X

Housing material

Polycarbonate UL94V-0

Circuits

8

Crimp terminal

insulation displacement

Wire gauge range

AWG24–26 stranded or solid

The Link Out interface connector is a standard RJ45 Cat5e rated jack. A green LED on this connector indicates Low-Voltage BMS activity

Table 43. Link Out Connector Pin Assignment
Pin Connection Description Connected to Device

1

No Connect

Not Connected

No Connect

2

No Connect

Not Connected

No Connect

3

No Connect

Not Connected

No Connect

4

No Connect

Not Connected

No Connect

5

No Connect

Not Connected

No Connect

6

No Connect

Not Connected

No Connect

7

LINKBUS_N

Link Bus differential pair negative

G4 Cell Interface

8

LINKBUS_P

Link Bus differential pair positive

G4 Cell Interface

Ethernet / Modbus TCP (Connector J2)

The Ethernet jack is a standard RJ45 Cat5e rated jack.

Table 44. Ethernet / Modbus TCP Connector Pin Assignment
Pin Connection Description Connected to Device

1

TD_P

Transmit differential pair positive

External Equipment

2

TD_N

Transmit differential pair negative

External Equipment

3

RD_P

Receive differential pair positive

External Equipment

4

NUL45

Unused; connected to Pin 5 and terminated

External Equipment

5

NUL45

Unused; connected to Pin 4 and terminated

External Equipment

6

RD_N

Receive differential pair negative

External Equipment

7

NUL78

Unused; connected to Pin 8 and terminated

External Equipment

8

NUL78

Unused; connected to Pin 7 and terminated

External Equipment

CAN or Unused (Connector J3)

On the no-CAN variant (*-NC) this port is labeled 'Unused J3'. The details below do not apply to no-CAN variants (*-NC) as they do not have a CAN bus interface.

CAN bus termination is not provided by the Low-Voltage BMS on stock production units. Standard 120 Ω termination must be installed at each end of the CAN bus network. Jumper-selectable resistive bus termination is available upon request.

The CAN interface connector is a standard RJ45 Cat5e rated jack. A green LED on this connector indicates CAN bus activity.

Table 45. CAN Connector Pin Assignment
Pin Connection Description Connected to Device

1

CAN_P

CAN bus differential pair positive

External Equipment

2

CAN_N

CAN bus differential pair negative

External Equipment

3

COMIO

Common reference shared with GPIO

External Equipment

4

No Connect

Not Connected

No Connect

5

No Connect

Not Connected

No Connect

6

No Connect

Not Connected

No Connect

7

COMIO

Common reference shared with GPIO

External Equipment

8

No Connect

Not Connected

No Connect

RS485 / Modbus RTU (Connector J4)

RS485 termination is not provided within the Low-Voltage BMS on stock production units. Standard 120 Ω termination must be installed at each end of the Modbus-RTU network. Jumper-selectable resistive bus termination is available upon request.

The RS485 / Modbus RTU interface connector is a standard RJ45 Cat5e rated jack. A green LED on this connector indicates Modbus-RTU activity.

Table 46. RS485 / Modbus RTU Connector Pin Assignment
Pin Connection Description Connected to Device

1

No Connect

Not Connected

No Connect

2

No Connect

Not Connected

No Connect

3

No Connect

Not Connected

No Connect

4

MODBUS_P

MODBUS differential pair positive

External Equipment

5

MODBUS_N

MODBUS differential pair negative

External Equipment

6

No Connect

Not Connected

No Connect

7

No Connect

Not Connected

No Connect

8

COMIO

Common reference shared with GPIO

External Equipment

Control / GPIO (Connector J5)

Table 47. Control / GPIO: Samtec Mini Mate® Connector
connector gpio

Samtec IPD1-12-D

Manufacturer

Samtec Inc

Housing

IPD1-12-D-K

Housing material

Nylon (Zytel® PA66) UL94V-2

Circuits

24

Crimp terminal

CC79R-2024-01-L

Wire gauge range

AWG20–24 stranded


Table 48. Control / GPIO Connector Pin Assignment
Pin Connection Description Connected to Device

1

GPO_ISO0_A

Digital Output 0

External Equipment

2

GPO_ISO1_A

Digital Output 1

External Equipment

3

GPO_ISO2_A

Digital Output 2

External Equipment

4

GPO_ISO3_A

Digital Output 3

External Equipment

5

+5V_GPIO_ISO

Isolated +5V I/O Power Supply

External Equipment

6

GPI_ISO0_K

Input detector 0

External Equipment

7

GPI_ISO1_K

Input detector 1

External Equipment

8

GPI_ISO2_K

Input detector 2

External Equipment

9

GPI_ISO3_K

Input detector 3

External Equipment

10

FAULT_CLEAR#

Momentary to COMIO to clear faults

Processor GPI via logic elements

11

FACTORY_RESET#

Hold to COMIO during startup to perform a factory reset

Processor GPI via logic elements

12

BMS_ENABLE#

Momentary to VBOT to enable BMS; Hold to VBOT to defeat Shutdown. Note the different reference from other inputs

Power supply enable gate

13

GPO_ISO0_B

Digital Output 0

External Equipment

14

GPO_ISO1_B

Digital Output 1

External Equipment

15

GPO_ISO2_B

Digital Output 2

External Equipment

16

GPO_ISO3_B

Digital Output 3

External Equipment

17

COMIO

Isolated I/O Power Supply Common Reference

External Equipment

18

COMIO

Isolated I/O Power Supply Common Reference

External Equipment

19

COMIO

Isolated I/O Power Supply Common Reference

External Equipment

20

COMIO

Isolated I/O Power Supply Common Reference

External Equipment

21

COMIO

Isolated I/O Power Supply Common Reference

External Equipment

22

COMIO

Isolated I/O Power Supply Common Reference

External Equipment

23

SHUTDOWN#

Momentary to COMIO to invoke shutdown; Hold to COMIO to force shutdown

Processor GPI via logic elements, hard shutdown (no software) via logic elements with longer press

24

VBOT

VBOT

Contactors / -V Power (Connector J6)

Table 49. Contactors / -V Power: Molex MiniFit Jr Connector
connector contactor

Molex 39-01-2125

Manufacturer

Molex Incorporated

Housing

39-01-2125

Housing material

Nylon UL94V-0

Circuits

12

Crimp terminal

39-00-0073

Wire gauge range

AWG18–24 stranded


Table 50. Contactors / -V Power Connector Pin Assignment
Pin Connection Description Connected to Device

1

COM

Negative Coil 1

Contactor 1 negative coil connection

2

COM

Negative Coil 2

Contactor 2 negative coil connection

3

COM

Negative Coil 3

Contactor 3 negative coil connection

4

COM

Negative Coil 4

Contactor 4 negative coil connection

5

VCOIL_RETURN

Negative reference for external supply

External Power Supply. Refer to Figure 8, “Connection example for powering the Low-Voltage BMS from cells” and Figure 12, “Connection example for powering the Low-Voltage BMS from external DC power source” for additional requirements

6

-VPOWER

Power return of Low-Voltage BMS

Bottom of Stack

7

COIL1_HI

Positive Coil 1

Contactor 1 positive coil connection

8

COIL2_HI

Positive Coil 2

Contactor 2 positive coil connection

9

COIL3_HI

Positive Coil 3

Contactor 3 positive coil connection

10

COIL4_HI

Positive Coil 4

Contactor 4 positive coil connection

11

+VCOIL

12-24V Contactor Coil Power Supply

Connect to external power supply, or to pin 12 if driving contactor coil from internal power supply

12

+24V

Internal Power Supply

Connect to pin 11 if driving contactor coils from internal power supply

Current Shunt / +V Power (Connector J7)

Table 51. Current Shunt / +V Power: Molex MiniFit Jr Connector
connector shunt

Molex 39-01-2065

Manufacturer

Molex Incorporated

Housing

39-01-2065

Housing material

Nylon UL94V-0

Circuits

6

Crimp terminal

39-00-0073

Wire gauge range

AWG18–24 stranded


Table 52. Current Shunt / +V Power Connector Pin Assignment
Pin Connection Description Connected to Device

1

+VPOWER

Main power supply input

Positive end of the stack or other power source

2

No Connect

Not Connected

No Connect

3

No Connect

Not Connected

No Connect

4

VSHUNT_LOAD

Differential voltage input; Load side

Load side of current shunt

5

VSHUNT_BAT

Differential voltage input; Battery side

Battery side of current shunt

6

VSHUNT_REF

Voltage reference for voltage measurement

Battery side of current shunt

Battery Cells and Temperature Sensors (Connector J8)

Table 53. Cell Voltage / Temperature: Samtec Mini Mate® Connector
connector voltage temp

Samtec IPD1-20-D

Manufacturer

Samtec Inc

Housing

IPD1-20-D-K

Housing material

Nylon (Zytel® PA66) UL94V-2

Circuits

40

Crimp terminal

CC79R-2024-01-L

Wire gauge range

AWG20–24 stranded


Table 54. Cell Voltage / Temperature Connector Pin Assignment
Pin Connection Description Connected to Device

1

TPROBE1

External Temperature Probe Input 1

10 kΩ NTC Thermistor

2

VBOT_TEMP

External Temperature Probe Reference 1

10 kΩ NTC Thermistor

3

TPROBE2

External Temperature Probe Input 2

10 kΩ NTC Thermistor

4

VBOT_TEMP

External Temperature Probe Reference 2

10 kΩ NTC Thermistor

5

TPROBE3

External Temperature Probe Input 3

10 kΩ NTC Thermistor

6

VBOT_TEMP

External Temperature Probe Reference 3

10 kΩ NTC Thermistor

7

TPROBE4

External Temperature Probe Input 4

10 kΩ NTC Thermistor

8

VBOT_TEMP

External Temperature Probe Reference 4

10 kΩ NTC Thermistor

9

TPROBE5

External Temperature Probe Input 5

10 kΩ NTC Thermistor

10

VBOT_TEMP

External Temperature Probe Reference 5

10 kΩ NTC Thermistor

11

TPROBE6

External Temperature Probe Input 6

10 kΩ NTC Thermistor

12

VBOT_TEMP

External Temperature Probe Reference 6

10 kΩ NTC Thermistor

13

TPROBE7

External Temperature Probe Input 7

10 kΩ NTC Thermistor

14

VBOT_TEMP

External Temperature Probe Reference 7

10 kΩ NTC Thermistor

15

TPROBE8

External Temperature Probe Input 8

10 kΩ NTC Thermistor

16

VBOT_TEMP

External Temperature Probe Reference 8

10 kΩ NTC Thermistor

17

NC

No connect

18

NC

No connect

19

NC

No connect

20

NC

No connect

21

NC

No connect

22

NC

No connect

23

VCELL16

Cell 16 voltage sense

Connect to positive terminal of Cell 15

24

VCELL15

Cell 15 voltage sense

Connect to positive terminal of Cell 14

25

VCELL14

Cell 14 voltage sense

Connect to positive terminal of Cell 13

26

VCELL13

Cell 13 voltage sense

Connect to positive terminal of Cell 12

27

VCELL12

Cell 12 voltage sense

Connect to positive terminal of Cell 11

28

VCELL11

Cell 11 voltage sense

Connect to positive terminal of Cell 10

29

VCELL10

Cell 10 voltage sense

Connect to positive terminal of Cell 9

30

VCELL9

Cell 9 voltage sense

Connect to positive terminal of Cell 8

31

VCELL8

Cell 8 voltage sense

Connect to positive terminal of Cell 7

32

VCELL7

Cell 7 voltage sense

Connect to positive terminal of Cell 6

33

VCELL6

Cell 6 voltage sense

Connect to positive terminal of Cell 5

34

VCELL5

Cell 5 voltage sense

Connect to positive terminal of Cell 4

35

VCELL4

Cell 4 voltage sense

Connect to positive terminal of Cell 3

36

VCELL3

Cell 3 voltage sense

Connect to positive terminal of Cell 2

37

VCELL2

Cell 2 voltage sense

Connect to positive terminal of Cell 1

38

VCELL1

Cell 1 voltage sense

Connect to positive terminal of the lowest cell in the 12 or 16 cell module

39

VCELL0

Bottom of stack reference

Connect to negative terminal of the lowest cell in the 12 or 16 cell module

40

VSTACK_SENSE

Voltage sense reference

Connect to negative terminal of the lowest cell in the 12 or 16 cell module

Temperature Sensor Connections

The sensors supported are negative temperature coefficient (NTC) thermistor type, with a 25° C resistance of 10 kΩ. Thermistors supplied with the standard wiring harnesses may be one of the sensors listed below:

Table 55. Thermistor details
Manufacturer Part number Type R25 Range

US Sensor

USP10982

NTC thermistor

10kΩ

-55 °C to 80 °C

Thermistors are 2-leaded non-polarized devices. One lead of each sensor is to be connected to the TPROBEn pin, where n denotes the channel on which that sensor’s signal is measured. The other lead of each sensor is to be connected to one of the VBOT_TEMP pins. Unused temperature input wires should be properly insulated or removed.

For safety certified applications there must be at least 2—but no more than 7—thermistors installed on the Low-Voltage BMS in a specific pattern. The following table lists the expected pattern of thermistor installation approved for safety certification.
Table 56. Safety Certified Thermistor Installation
Total Thermistors TEMP1_R TEMP2_R TEMP3_R TEMP4_R TEMP5_R TEMP6_R TEMP7_R TEMP8_R

7

Installed

Installed

Installed

Installed

Installed

Installed

Installed

Not Installed

6

Installed

Installed

Installed

Installed

Not Installed

Installed

Installed

Not Installed

5

Installed

Installed

Not Installed

Installed

Not Installed

Installed

Installed

Not Installed

4

Not Installed

Installed

Installed

Installed

Installed

Not Installed

Not Installed

Not Installed

3

Not Installed

Installed

Installed

Installed

Not Installed

Not Installed

Not Installed

Not Installed

2

Not Installed

Installed

Installed

Not Installed

Not Installed

Not Installed

Not Installed

Not Installed

Thermal Consistency

For safety certified systems, there is an additional constraint on thermal consistency for all temperature measurements for the Low-Voltage BMS. The constraint is described in detail in Section 4.10.9, “Temperature Consistency Check”.

G4 Cell Interface

Battery Cells

The Battery Cells connector provides cell voltage input and a means for balancing the cells. The cable wire should be rated for at least 750 mA to survive worse-case currents.

Pins 8, 16, 17, and 18 are No Connect in the G4 Cell Interface - 12 channel model. Pins 2, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, and 17 are No Connect in the G4 Cell Interface - 12V 4 channel model.

All unused voltage inputs should be tied to the next highest potential voltage sense input. In this way, all pins should be connected with the exception of pins 8, 16, 17 and 18 in the G4 Cell Interface - 12 channel model and pins 2, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, and 17 in the G4 Cell Interface - 12V 4 channel model.

The wiring of the battery cell voltage and temperature sensing should be verified before connecting to the G4 Cell Interface modules. The temperature sensing wires must be isolated from the cell voltage sensing leads. Although the G4 Cell Interface includes protective circuitry to make it more resilient to brief wiring errors, the same circuitry can result in the battery cells being slowly discharged. Over time, these wiring errors can cause damage to the G4 Cell Interface and/or the cells.
Table 57. Battery Cells: Molex Micro-Fit 3.0 Connector
connector hv battery cells

Molex 43025-1800

Manufacturer

Molex Incorporated

Housing

43025-1800

Housing material

Nylon UL94V-0

Circuits

18

Crimp terminal

43030-0002

Wire gauge range

AWG20–24 stranded

Battery Cell Connector for G4 Cell Interface - 12 channel
Table 58. G4 Cell Interface - 12 channel Battery Cell Connector Pin Assignment
Pin Connection Description Connected to Device

1

CELL0

Bottom reference of G4 Cell Interface

Connect to negative terminal of the lowest cell (Cell 1)

2

CELL2

Cell 2 voltage sense

Connect to positive terminal of Cell 2

3

CELL4

Cell 4 voltage sense

Connect to positive terminal of Cell 4

4

CELL6

Cell 6 voltage sense

Connect to positive terminal of Cell 6

5

CELL8

Cell 8 voltage sense

Connect to positive terminal of Cell 8

6

CELL10

Cell 10 voltage sense

Connect to positive terminal of Cell 10

7

CELL12

Cell 12 voltage sense

Connect to positive terminal of Cell 12

8

No Connect

Not Connected

No Connect

9

No Connect

Not Connected

No Connect

10

CELL1

Cell 1 voltage sense

Connect to positive terminal of the lowest cell (Cell 1)

11

CELL3

Cell 3 voltage sense

Connect to positive terminal of Cell 3

12

CELL5

Cell 5 voltage sense

Connect to positive terminal of Cell 5

13

CELL7

Cell 7 voltage sense

Connect to positive terminal of Cell 7

14

CELL9

Cell 9 voltage sense

Connect to positive terminal of Cell 9

15

CELL11

Cell 11 voltage sense

Connect to positive terminal of Cell 11

16

No Connect

Not Connected

No Connect

17

No Connect

Not Connected

No Connect

18

No Connect

Not Connected

No Connect

Battery Cell Connector for G4 Cell Interface - 16 channel
Table 59. G4 Cell Interface - 16 channel Battery Cell Connector Pin Assignment
Pin Connection Description Connected to Device

1

CELL0

Bottom reference of G4 Cell Interface

Connect to negative terminal of the lowest cell (Cell 1)

2

CELL2

Cell 2 voltage sense

Connect to positive terminal of Cell 2

3

CELL4

Cell 4 voltage sense

Connect to positive terminal of Cell 4

4

CELL6

Cell 6 voltage sense

Connect to positive terminal of Cell 6

5

CELL8

Cell 8 voltage sense

Connect to positive terminal of Cell 8

6

CELL10

Cell 10 voltage sense

Connect to positive terminal of Cell 10

7

CELL12

Cell 12 voltage sense

Connect to positive terminal of Cell 12

8

CELL14

Cell 14 voltage sense

Connect to positive terminal of Cell 14

9

No Connect

Not Connected

No Connect

10

CELL1

Cell 1 voltage sense

Connect to positive terminal of the lowest cell (Cell 1)

11

CELL3

Cell 3 voltage sense

Connect to positive terminal of Cell 3

12

CELL5

Cell 5 voltage sense

Connect to positive terminal of Cell 5

13

CELL7

Cell 7 voltage sense

Connect to positive terminal of Cell 7

14

CELL9

Cell 9 voltage sense

Connect to positive terminal of Cell 9

15

CELL11

Cell 11 voltage sense

Connect to positive terminal of Cell 11

16

CELL13

Cell 13 voltage sense

Connect to positive terminal of Cell 13

17

CELL15

Cell 15 voltage sense

Connect to positive terminal of Cell 15

18

CELL16

Cell 16 voltage sense

Connect to positive terminal of Cell 16

Temperature Sensors

The Temperature Sensors connector provides NTC thermistor inputs for temperature measurement of the cells and/or surrounding area. Because the sensors are referenced to the CELL0 input on the G4 Cell Interface, care must be taken to ensure that they are electrically isolated from any common or ground potential, and from all other cell voltage terminals of all G4 Cell Interface modules in the system. The thermistors must be isolated from the cell voltage terminals in such a way that they will not make an electrical connection to a cell terminal in the event of vibration/failures.

Connect up to eight 10 kΩ NTC thermistors to this connector.

2 to 7 thermistors are supported to accommodate systems requiring Nuvation Energy BMS to meet functional safety requirements.
Table 60. Temperature Sensors: Molex Micro-Fit 3.0 Connector
connector hv temperature sensors

Molex 43025-1600

Manufacturer

Molex Incorporated

Housing

43025-1600

Housing material

Nylon UL94V-0

Circuits

16

Crimp terminal

43030-0002

Wire gauge range

AWG20–24 stranded


Table 61. Temperature Sensors Connector Pin Assignment
Pin Connection Description Connected to Device

1

VBOT

External Temperature Probe Reference 1

10 kΩ NTC Thermistor

2

VBOT

External Temperature Probe Reference 2

10 kΩ NTC Thermistor

3

VBOT

External Temperature Probe Reference 3

10 kΩ NTC Thermistor

4

VBOT

External Temperature Probe Reference 4

10 kΩ NTC Thermistor

5

VBOT

External Temperature Probe Reference 5

10 kΩ NTC Thermistor

6

VBOT

External Temperature Probe Reference 6

10 kΩ NTC Thermistor

7

VBOT

External Temperature Probe Reference 7

10 kΩ NTC Thermistor

8

VBOT

External Temperature Probe Reference 8

10 kΩ NTC Thermistor

9

TEMP1_R

External Temperature Probe Input 1

10 kΩ NTC Thermistor

10

TEMP2_R

External Temperature Probe Input 2

10 kΩ NTC Thermistor

11

TEMP3_R

External Temperature Probe Input 3

10 kΩ NTC Thermistor

12

TEMP4_R

External Temperature Probe Input 4

10 kΩ NTC Thermistor

13

TEMP5_R

External Temperature Probe Input 5

10 kΩ NTC Thermistor

14

TEMP6_R

External Temperature Probe Input 6

10 kΩ NTC Thermistor

15

TEMP7_R

External Temperature Probe Input 7

10 kΩ NTC Thermistor

16

TEMP8_R

External Temperature Probe Input 8

10 kΩ NTC Thermistor

For safety certified applications there must be at least 2—but no more than 7—thermistors installed per G4 Cell Interface module in a specific pattern. The following table lists the expected pattern of thermistor installation approved for safety certification.
Table 62. Safety Certified Thermistor Installation
Total Thermistors TEMP1_R TEMP2_R TEMP3_R TEMP4_R TEMP5_R TEMP6_R TEMP7_R TEMP8_R

7

Installed

Installed

Installed

Installed

Installed

Installed

Installed

Not Installed

6

Installed

Installed

Installed

Installed

Not Installed

Installed

Installed

Not Installed

5

Installed

Installed

Not Installed

Installed

Not Installed

Installed

Installed

Not Installed

4

Not Installed

Installed

Installed

Installed

Installed

Not Installed

Not Installed

Not Installed

3

Not Installed

Installed

Installed

Installed

Not Installed

Not Installed

Not Installed

Not Installed

2

Not Installed

Installed

Installed

Not Installed

Not Installed

Not Installed

Not Installed

Not Installed

Thermal Consistency

For safety certified systems, there is an additional constraint on thermal consistency for all temperature measurements for each G4 Cell Interface. The constraint is described in detail in Section 4.10.9, “Temperature Consistency Check”.

This interface is used, with a Link Bus cable, to connect a single G4 Cell Interface module to the Low-Voltage BMS. Connect this interface to the Link Out connector on the Low-Voltage BMS.

The Low-Voltage BMS cannot power the G4 Cell Interface module through the Link Bus.
Table 63. Link In: Molex Micro-Fit 3.0 Connector
connector molex 43025 0400

Molex 43025-0400

Manufacturer

Molex Incorporated

Housing

43025-0400

Housing material

Nylon UL94V-0

Circuits

4

Crimp terminal

43030-0002

Wire gauge range

AWG20–24 stranded


Table 64. Link In Connector Pin Assignment
Pin Connection Description Connected to Device

1

VBUS

No Connect

No Connect

2

COM

No Connect

No Connect

3

IPA

Link Bus differential pair plus

Low-Voltage BMS

4

IMA

Link Bus differential pair minus

Low-Voltage BMS

This interface is used to provide a data channel to subsequent G4 Cell Interface modules in the Link Bus chain.

Connect this interface to the Link In connector on the subsequent G4 Cell Interface module in the Link Bus chain. The Link Out interface of the last G4 Cell Interface module in the Link Bus chain is to be left unconnected.

Table 65. Link Out: Molex Micro-Fit 3.0 Connector
connector molex 43025 0400

Molex 43025-0400

Manufacturer

Molex Incorporated

Housing

43025-0400

Housing material

Nylon UL94V-0

Circuits

4

Crimp terminal

43030-0002

Wire gauge range

AWG20–24 stranded


Table 66. Link Out Connector Pin Assignment
Pin Connection Description Connected to Device

1

VBUS

DC power from , with Fault Pilot Signal

Subsequent G4 Cell Interface module in the Link Bus chain

2

COM

Power return from Low-Voltage BMS

Subsequent G4 Cell Interface module in the Link Bus chain

3

IPA

Link Bus differential pair plus

Subsequent G4 Cell Interface module in the Link Bus chain

4

IMA

Link Bus differential pair minus

Subsequent G4 Cell Interface module in the Link Bus chain

Appendix C: Factory Reset

In the unlikely event Low-Voltage BMS becomes inaccessible due to a forgotten password or invalid network configuration; a factory reset operation must be performed to restore the system to the default settings. Follow the steps below to reset Low-Voltage BMS to factory defaults:

  1. Fully power off the Low-Voltage BMS

  2. On the Control / GPIO connector, short the FACTORY_RESET# input to one of the COMIO wires

  3. Boot the Low-Voltage BMS and continue to short the FACTORY_RESET# input to COMIO for 2 seconds

  4. De-asserted the FACTORY_RESET# input by disconnecting it from COMIO

  5. The process of asserting and de-asserting the FACTORY_RESET# input should all happen within the first 10 seconds of boot up If successful, the Link Out connector’s LED will blink briefly.

  6. After this LED stops blinking, reboot the Low-Voltage BMS to complete the Factory Reset process

The Factory Reset input to the Low-Voltage BMS is read by the processor only during boot up. No action is taken on this input after the Low-Voltage BMS has booted.

The Low-Voltage BMS has a dedicated input for triggering a factory reset.

Low-Voltage BMS should now be reset to the factory firmware version, default password, and default network configuration.

<<

Appendix D: Battery Topology Terminology

Energy storage systems are hierarchical in nature. Nuvation Energy has adopted the following definitions for battery pack topology:

Cell

A Cell is the smallest unit of energy storage distinguishable by the Battery Management System. One Cell, as defined from the perspective of the BMS, may actually consist of one or more electrochemical cells connected in parallel. This subtlety is reflected in the nomenclature for completeness. For example, a "1p" Cell refers to a single electrochemical cell, while a "2p" Cell refers to two electrochemical cells connected together in parallel. From the perspective of the BMS, these topologies appear identical except for the capacity of the Cells.

Group

A Group is a set of Cells connected in series and managed together. For example, 12 "1p" Cells in series are referred to as a "12s1p" Group, while 16 "2p" Cells in series are referred to as a "16s2p" Group. Grouping of Cells is highly application-specific and is defined in how BMS hardware interfaces are physically wired up to Cells.

Stack

A Stack is one or more Groups connected in series. For example, five "14s2p" Groups connected in series could be described as a "5g14s2p" Stack. However, it is far more common to describe it as a "70s2p" Stack.

Bank

A Bank is one or more stacks connected in parallel. For example, three "70s2p" Stacks connected in parallel are referred to as a "3x70s2p" Bank.

Pack

A Pack is one or more Banks connected in series.

Appendix E: Best Practices

This section describes important concepts which need special attention to achieve a reliable installation.

Excess Cable Management

During the first prototype system build, it is possible to encounter cable lengths that are too long for your system. Leaving the excess cable length unmanaged can result in a messy system installation.

If reducing the cable length is not feasible or if there is no time to physically modify the lengths, a common solution is to wrap the excess cable length in a coil and fasten the wire loop in the cabinet. This basic tactic has the undesirable effect of creating an air-core transformer which will couple EMI into the cable extremely well.

The best solution to cable length management is to bundle the excess length in a figure-8 pattern. This prevents the bundle from turning into an air-core transformer since the direction of current in one side of the figure-8 turns opposite to the current in the other side. It is recommended to use the figure-8 method if physically reducing the cable length is not possible.

excess cable management
Figure 87. Excess Cable Management Examples

Security

This section is provided as guidance only and experts in security and the broader system must be consulted on any security decisions.
Security for the entire system and site must be considered, not just for individual Nuvation Energy products.

It is recommended evaluating each site and system to assess the risk level and impacts of the system not operating properly. Security restrictions protect against both accidental misuse and intentional attacks. Each added layer of security will impact the ability to diagnose and resolve system problems and analyze system performance. The costs of system security should be proportional to the risk level of that system.

The sections below outline the best practices for maintaining a secure system.

Physical Security

Physical security measures are designed to deny unauthorized physical access to Nuvation Energy products and the larger systems. Physical security can include barriers, locks, access control, surveillance, guards, intrusion detection/alarms, and other physical security systems.

Ensuring all equipment is physically secure is the first and most important step in protecting the system. Below are some recommended best practices for the physical security of the products:

  • Nuvation Energy products should be physically secured in a locked enclosure, room, or building to restrict access. This physically secured area will be referred to as the 'secure zone'.

  • The 'secure zone' access should be restricted to authorized personnel only.

  • Authorized personnel should be trained to operate the equipment and follow the security process.

  • Any unauthorized personnel should be supervised at all times.

Outside the products themselves, access to equipment and connections should also be secured, such as:

  • Cells/battery modules

  • PCS/inverters

  • SCADA systems

  • UPS/emergency power equipment

  • High and low power cables and measurement wires

  • Communication cables (i.e. Ethernet, USB, Linkbus, Stackbus, etc.)

  • Networking equipment (i.e. routers, switches, transceivers, etc.)

  • Buttons/control panels (i.e. E-stop, touchscreens, etc.)

  • Any other critical equipment/connections that might compromise the site

Network Security

The networking on Nuvation Energy products uses Ethernet-based TCP/IP communications. Throughout this section, references to the nController apply to both Nuvation Energy Multi-Stack Controller and Energy Management System products. A network security analysis for any third party equipment on the network should be conducted in consultation with the equipments' manufacturer. Below are some recommended best practices for network security of Nuvation Energy products:

  • Nuvation Energy products should be on an isolated network where only trusted equipment can operate, and trusted personnel can access. This network will be referred to as the 'secure network'.

  • The 'secure network' should be within the 'secure zone' (see the Physical Security for details)

  • The 'secure network' should be established through either a:

    • Physically isolated network (i.e. no connection to any other network, otherwise known as 'air gapped')

    • Firewall isolated network (i.e. router, smart switch, or other equipment with packet filtering to the 'secure network')

  • The nController should be used to isolate the stack BMSs from the site network through the nController 'Internal/Bridge' network. These two networks must be isolated on separate subnetworks with separated IP address ranges.

An example of a 'secure network' topology with a router based firewall, Multi-Stack Controller, and Nuvation Energy stack BMS units isolated on the 'Internal/Bridge' network is below:

msc 5 stacks secure network
Figure 88. Networking configuration for a Multi-Stack Controller with secure and internal network
Inbound Protocols and Ports

All the open ports listening on the Low-Voltage BMS with the network protocols are listed below. Unless specified, the protocols are not encrypted or authenticated.

  • TCP Port 80 (HTTP)

  • TCP Port 502 (Modbus)

  • TCP Ports 8080/8081 (Multi-Stack Controller Bridge)

Outbound Protocols

All Nuvation Energy products implement the essential outbound services for proper operation with modern networking equipment, listed below. Unless specified, the protocols are not encrypted or authenticated.

  • Broadcast on network segment (ARP, STP)

  • UDP Port 67/68 (DHCP)

Blocking outbound protocols can be done in a similar way to inbound protocols (i.e. firewalls). For more information on the above services and to configure or disable services, contact support@nuvationenergy.com. Some services such as mDNS cannot be disabled.

Operator Interface Unlock Password

The Operator Interface for both single and multi-stack systems can be configured with a password which restricts some features in the products. The unlock password protects against accidental misuse of the products during normal operation.

The Operator Interface uses HTTP which does not encrypt connections and requires a secured network to protect against malicious intent.

Appendix F: BMS Network Configuration

Nuvation Energy BMS is flexible and allows changing its network configuration if you need the IP address of Nuvation Energy BMS to match your existing network settings.

Improperly modifying the network settings can result in a Nuvation Energy BMS that cannot communicate over Ethernet.

To restore Nuvation Energy BMS to its default IP address (192.168.1.21), you must initiate a factory reset action—refer to the Appendix C, Factory Reset for instructions.

Be sure to record the updated IP address, netmask, and gateway settings if you decide to make changes to these settings.

Modifying the Network Settings

  1. Unlock the Operator Interface by clicking the menu and Unlock

    • You will need the Operator Interface password if the Operator Interface is password-protected

  2. Follow the instructions in Section 5.3.3.2.5, “Editing an IP Address” to update the IP.

From time to time Nuvation Energy will make updates to products in response to changes in available technologies, client requests, emerging energy storage standards, and other industry requirements. The product specifications in this document, therefore, are subject to change without notice.

© Nuvation Energy

Registers