Connect the 10-pin SWD ribbon cable to the MAX32666FTHR.
Connect the other end to the MAX32625PICO.
Connect the MAX32625PICO to your PC using a micro-USB cable.
Download the MAX32625PICO image (see link above).
Extract the contents of the archive and locate the MAX32625_PICO.bin file.
Copy the MAX32625_PICO.bin file into the MAINTENANCE folder of the connected MAX32625PICO.
Wait for the transfer to complete.
Figure 1 Uploading the MAX32625_PICO.bin file
Successful installation indicators:
The device renames to DAPLINK.
A MAX32666.HTM file appears in the folder.
Pre-built Binaries
Pre-built HEX files are provided in the bin/ folder for supported
boards. No additional toolchain or build setup is required. Copy the
appropriate file onto the MAX32625PICO DAPLINK debugger drive.
The number of active devices is determined at runtime by the VSEL jumper:
LOW = 1 device / 48V
HIGH = 2 devices / 96V
If a different example or configuration is required, build the firmware
binaries from source.
Flash the Pre-built Binary File into the MAX32666FTHR
Download the AD-BMSE2E3WLC-SLFirmware1.0.0 package.
Copy the matching HEX file (select based on the MCU board used) from the bin/ folder to the DAPLINK drive.
The MAX32625PICO debugger flashes the MCU and remounts the drive when complete.
Verification:
A successful upload is indicated by the absence of a FAIL.TXT file
in the DAPLINK folder.
Command Line Interface
The AD-BMSE2E3WLC-SL firmware allows device monitoring and diagnostics through a command-line interface (CLI).
For this purpose, a terminal emulator such as Tera Term is recommended.
Open the Tera Term application (other terminals can also be used, but Tera Term is recommended).
Select Serial, then choose the correct COM port number associated with the microcontroller.
Click the Setup tab, then SerialPort.
Set the speed to 115200.
Then, click the Newsetting button.
Click the Setup tab, then Terminal.
Under the New-line setting, set Receive to AUTO.
Click the hardware RESET button on the microcontroller board.
The BMS data will be printed on the Tera Term terminal.
Sample reading:
Figure 2 Sample BMS Data Output
Building the Firmware from Source
Since the AD-BMSE2E3WLC-48V baseboard is MCU-agnostic, users can swap the MAX32666FTHR MCU with any supported Maxim MCU.
The firmware can be built from scratch by following the instructions below:
Requirements
Extract the contents of the downloaded AD-BMSE2E3WLC-SLFirmware1.0.0 zip file. The package already includes no-OS and all
required sources. No git cloning or submodule initialization is required.
Select the desired example by editing the Makefile:
# Select the example measurement (Note: Select 1 example at a time)ADBMS1816_BASIC=n
ADBMS1816_BALANCING=n
ADBMS1816_DCC_BALANCING=n
ADBMS1816_FUEL_GAUGE=n
IIO_EXAMPLE=y
Note
Only one example should be set to y at a time.
Board Auto-Detection
Supported TARGET suffixes:
max32665fthr - MAX32665/MAX32666FTHR
max32690apard - APARD32690
max32690fthr - MAX32690FTHR
max32690 - defaults to APARD32690
Note
The Maxim toolchain uses max32665 for both MAX32665 and MAX32666.
Use max32665fthr when building for MAX32666FTHR.
# Total Number of ADBMS devices in the chainNUM_DEV=2# Delay in millisecondsMEASUREMENTS_FREQ_MS=1000# Set to 0 for continuous measurementsNUM_MEAS_LOOP=1# Set to y when measuring execution timeTIME_PROFILING?=n
# Use a separate serial portNO_OS_USB_UART=y
Note
NUM_DEV is a compile-time setting. The actual number of active devices
is determined at runtime by the VSEL jumper.
Jumper LOW -> 48V stack / 1 device
Jumper HIGH -> 96V stack / 2 devices
Ensure that the jumper position matches the hardware configuration.
The ACE plugin requires libiio v0.26 to function correctly.
If an earlier version is installed (for example, v0.25), please upgrade to v0.26 using the following link:
The AD-BMSE2E3WLC GUI provides real-time monitoring of
battery-pack parameters, cell voltages, current measurements,
operating state, and temperature information. The dashboard is
designed to provide a quick overview of battery health and
system status during evaluation and testing.
Figure 13 AD-BMSE2E3WLC-SL GUI
Main Dashboard Layout
The GUI is divided into three primary sections:
System Status Indicators (Top Middle Section)
Vehicle State and Temperature Monitoring (Top Right Section)
Individual Cell Voltage Monitoring (Bottom Section)
Stack Voltage Gauge
The Stack Voltage gauge displays the total voltage of the
battery pack.
Purpose
Monitors overall pack voltage.
Confirms proper connectivity of all battery cells.
Verifies battery charging and discharging behavior.
Displayed Information:
Real-time pack voltage value.
Green indicator showing normal operation.
Gauge range covering the supported battery stack voltage.
Example
Displayed value: 86.70V
Module Current Gauge
The Module Current gauge displays the instantaneous battery
current.
Purpose
Indicates whether the battery is charging or discharging.
Monitors load current and charging current.
Current Direction
Positive (+) Current: Charging
Negative (-) Current: Discharging
Example
Displayed value: -1.95A
Indicates the battery is supplying current to a load.
Max Charge Current Gauge
The Max Charge Current gauge displays the allowable charging
current configured by the BMS.
Purpose
Indicates the maximum current permitted during charging.
May be limited by battery conditions, temperature, or safety
requirements.
Monitoring Use
Verify charging limits before connecting a charger.
Validate BMS protection settings.
Example
Displayed value: 0A
Max Discharge Current Gauge
The Max Discharge Current gauge displays the allowable
discharge current.
Purpose
Indicates the maximum current available to the load.
Helps validate discharge protection behavior.
Monitoring Use
Verify discharge capability during driving conditions.
Observe current-limit changes caused by faults or temperature
restrictions.
Example
Displayed value: 1.95A
Vehicle State Selection
The Vehicle State panel allows the user to select and
monitor the current operating mode.
Available States:
State
Description
Parked
Low-activity mode; output path disabled or
limited.
Driving
Vehicle is actively supplying power to the load.
Charging
Battery is connected to a charging source.
Fault
System enters protection mode due to an
abnormal condition.
Purpose
Vehicle states control the behavior of the BMS and allow users
to evaluate operating-state transitions during system testing.
Temperature Sensors
The Temperature Sensors section displays temperature
measurements from connected thermistors.
Displayed Information
BMS 1 temperature channels
BMS 2 temperature channels
Purpose
Monitor battery-pack temperature.
Verify thermistor operation.
Evaluate thermal protection functionality.
Typical Applications
Overtemperature testing
Thermal characterization
Cell Voltage Monitoring
The lower section of the GUI displays individual cell voltages
for each monitored battery cell.
BMS 1 Cell Monitor
Cells 1 to 16
Individual voltage readings
Battery charge indicators
BMS 2 Cell Monitor
Cells 1 to 16
Individual voltage readings
Battery charge indicators
Visual Indicators
Indicator
Meaning
Green Check Mark
Parameter or cell voltage is within
the normal operating range.
Battery Icon
Visual representation of the cell
level or status.
Green Battery Level
Cell voltage is present and measured
successfully.
Voltage Reading
Actual measured cell voltage value.
Gauge Pointer in Green
Region
Measurement is within expected
operating limits.
Fault State Selected
Protective action is active or a
fault condition has been detected.
The dashboard serves as the primary real-time monitoring
interface for validating pack voltage, current flow, cell voltages,
temperatures, and operating-state transitions during evaluation.
Functional Testing Using GUI
Hardware Connectivity Verification Test
Change the pin header setting for the EVAL-ADBMS1816WLC from pin 2→3 to pin 1→2