This version is outdated by a newer approved version.DiffThis version (27 Feb 2024 00:58) was approved by Joyce Velasco.The Previously approved version (26 Feb 2024 07:50) is available.Diff

This is an old revision of the document!

EVAL-ADBMS6830BMSW Software User Guide

This software guide provides the essential steps for USB-to-SPI firmware installation, launching the GUI, configuring the launcher, establishing interface connections, and utilizing various tabs for effective device evaluation. This covers tasks such as daisy chain configuration, quick measurements, custom command sequences, scheduling, memory mapping, plotting, data recall, diagnostics, and EIS measurements.


Evaluation GUI for ADI Broadmarket BMS products:


Installing the Firmware

  1. Connect the microcontroller board (for this example, SDP-K1) to the host PC.
  2. Go to the USB_TO_SPI_FIRMWARE directory and find the latest firmware.
  3. Drag and drop the appropriate firmware file (e.g., SDP_K1_PyBMS_USB_TO_SPI_Bytes_Debug_USB_Port.hex or usb-to-spi-max32690.hex) onto the corresponding MCU's USB drive (e.g., SDP USB drive) to update the firmware.

This software setup uses the SDP-K1 as microcontroller board, but users may also use the AD-APARD32690-SL.

In order to flash the firmware image on the AD-APARD32690-SL MCU board, it needs to be connected to the MAX32625PICO programming adapter board.

Click here for instructions on how to flash the firmware image using the MAX32625PICO

Click here for instructions on how to flash the firmware image using the MAX32625PICO

  1. Access the MAX32625PICO Firmware Repository and download the image for the specific MCU (e.g., MAX32690).
  2. Do not connect the MAX32625PICO from the PC and the MCU board that you are using (e.g., AD-APARDMAX32690-SL, MAX32670 MCU base board).
  3. Plug the micro-USB cable only in the MAX32625PICO.
  4. Press the button on the MAX32625PICO and then plug the other end of the micro-USB cable into the PC. (Do not release the button until the MAINTENANCE drive is mounted).
  5. Release the button once the MAINTENANCE drive is mounted.
  6. Drag and drop (to the MAINTENANCE drive) the firmware image.
  7. After a few seconds, the MAINTENANCE drive will disappear and be replaced by a drive named DAPLINK. This indicates that the process is complete, and the MAX32625PICO can now be used to flash the firmware to the MAXIM MCU (e.g., AD-APARDMAX32690-SL, MAX32670 MCU base board) as indicated by step #3 in “Installing the Software”.

Application Software (GUI)

The EVAL-ADBMS6830BMSW comes with a graphical user interface (GUI) that continuously monitors crucial BMS parameters. This interface facilitates complete system control, enabling faster prototyping and development.

Launching the Graphical User Interface

  1. To launch the GUI, navigate to the BMS_BROWSER_GUI_BroadMarket_V2.0.0 directory.
  2. Double-click BMS_BROWSER_GUI_BroadMarket_V2.0.0.exe.

Launcher Configuration

  1. Use the launcher page to configure a daisy chain of ADBMS devices.
  2. Select an appropriately flashed microcontroller board (for this example, SDP-K1).
  3. Launch the evaluation GUI.

Establishing Interface Connection

  1. The Interface Connection section displays available SDP-K1 devices on the left.
  2. Left-side selection determines the device for launching the evaluation GUI with the Launch Button.
  3. If the GUI is open, the connected COM port appears on the right.
  4. Click Disconnect to terminate the connection for a new one.
  5. Use the refresh button to reload the available MCU boards list.

Daisy Chain Connection

The Daisy Chain section facilitates the creation of a daisy chain using compatible ADBMS devices. This process involves selecting a generation of ADBMS devices, adding devices to the daisy chain, and configuring the setup for the evaluation GUI.

  1. Select ADBMS Generation:
    • Navigate to the Daisy Chain section.
    • Use the first option to choose a specific generation of ADBMS devices.
    • Note: Devices within a selected generation are compatible and can be used together in the evaluation GUI.
  2. Add Devices to the Daisy Chain:
    • After selecting the generation, locate the available devices list.
    • Choose a device for the daisy chain.
    • Press the right chevron button to append the selected device to the daisy chain.
    • This added device becomes the next farthest in the daisy chain.
  3. Remove Devices from the Daisy Chain:
    • To remove a device, go to the daisy chain table.
    • Select the device you want to remove.
    • Press the trash can button to delete the selected device from the daisy chain.
  4. Configure Daisy Chain for GUI Launch:
    • In the Interface Connection section, select the desired MCU board.
    • Configure the daisy chain in the Daisy Chain section.
    • Click on the launch button to initiate the evaluation GUI.

Graphical User Interface Tabs

Quick Measure

The Quick Measure tab simplifies metric measurement with a preloaded command sequence. Note that it supports a single device in the daisy chain, and key features enhance configuration and visualization.

  1. Preloaded Commands:
    • Access the Quick Measure tab for easy metric measurement with a preloaded command sequence.
  2. Daisy Chain Limitation:
    • Note: Quick Measure tab supports only a single device in the daisy chain, configured for the last device.
  3. Quick Configuration:
    • Utilize the lower-left section for swift changes to commonly modified bitfields.
  4. Numeric Data Display:
    • In the lower-right section, view numeric data returned from devices.
    • Control plotted data on the central plot using checkboxes.
  5. Central Plot Visualization:
    • The central plot provides a graphical representation of captured data.
    • X-axis: Sample number; Y-axis: Metric-specific variation.
  6. Measurement Loop Control:
    • Initiate and terminate the measurement loop with the top button.
    • The button turns yellow during loop activation and green when deactivated.


The Sequences tab enables the creation and management of custom command sequences. Load and save sequences, divided into Init and Loop lists. The Init list initializes the daisy chain once, while the Loop list runs continuously until stopped. Toggle between lists using the corresponding buttons at the top.

  1. Load Existing Sequence:
    • Use the Existing Sequence Files select bar to choose an existing sequence file.
    • Select the desired sequence from the Existing Sequences select bar.
  2. Save Sequence:
    • In the New Sequence File text area, enter the name for the new sequence file.
    • Specify the sequence name in the New Sequence Name text area.
    • Press the save button to save the sequence.
  3. Load Defaults:
    • Load the default command list for the Quick Measure tab by pressing the Load Defaults button.
    • All sequence files are saved in the installation location under the data/sequence directory.
  4. Add Command:
    • On the left side of the screen, use the select boxes and buttons to add a command to the selected command list.
    • Select a command from the Commands select box to load available bitfields on the bottom left.
    • Modify bitfields as needed and press Add to add the command to the list on the right side.
  5. Manage Commands:
    • On the right side, select a command to highlight it for modification.
    • Replace, move (drag and drop), or delete the highlighted command using the corresponding buttons.
  6. SPI Bus and Chip Select:
    • Under the Command select bar, use the SPI Bus and SPI CS Select bars to change the SDP-K1 SPI bus and chip select for the command.
  7. Optional Map Key:
    • Below the SPI Bus and SPI CS Select bars, use the optional Map Key field to apply a label to the command.
    • Labels organize output data, grouping commands with the same label together for focused data analysis.


The Scheduler tab provides insights into the execution time of sequences from the Sequences tab. It allows combining sequences for a complete execution loop. Key features enable precise timing adjustments and visualization.

  1. Timing Adjustments:
    • Utilize the SPI Clock field to adjust timings based on the system SPI clock frequency (kHz).
    • The MCU Command To Command Overhead field adjusts timing between commands to accommodate MCU transaction timings.
    • The FDTI field represents the total loop time, used for margin calculations.
  2. Initialization and Sequence Management:
    • Choose the Initialization field to pick the sequence for daisy chain initialization.
    • The Available Cycle Sequences list displays all available sequences for scheduling.
    • Use the Add button to add selected cycles to the schedule.
  3. Hardware Timers and Timing Verification:
    • Add hardware timers to cycle sequences with the Add Cycle Timers field for timing verification in freerun mode.
  4. Schedule Management:
    • Remove and Clear buttons allow removal of cycles from the schedule.
    • Drag and drop cycles to rearrange them within the schedule.
  5. Schedule Overview:
    • The schedule table displays added cycles, their execution time, and margin for the selected daisy chain.
    • The plot at the bottom visually represents the same information in a waterfall format.
  6. Transfer for Real Hardware Timing:
    • Use the Transfer button to move all cycles into a single sequence in the Sequences tab.
    • Run the transferred sequence to assess real hardware timing.

Memory Map

The Memory Map tab provides a numerical output for the active command loop, organized into tables for user convenience. It offers customization and error highlighting for effective data analysis.

  1. Organized Data Display:
    • Access the Memory Map tab for a numerical output of the currently running command loop.
    • Multiple tables organize the data into useful groups.
  2. Table Management:
    • Each table can be minimized for a more streamlined view.
  3. Default View and Map Key Selection:
    • The default view presents all data from the command list.
    • Use the Map Key select bar to switch to a specific group of data for focused analysis.
  4. Device-specific Data:
    • Tables contain data returned by all devices in the daisy chain.
  5. Error Highlighting:
    • Rows highlight in orange if data returned with a PEC error.
    • Valid data does not have any highlighting for easy differentiation.


The Plots tab provides a graphical representation of data collected through the running command loop. It offers customization options for focused analysis and allows for the export of captured data for further analysis.

  1. Plot Selection:
    • Use the Plot Selection area at the top to control the central Plot.
    • Checkboxes in the Plot Filter area at the bottom filter data for the Plot.
  2. Metric Plotting:
    • Check the Plot Filter checkboxes for desired metrics and device numbers.
    • Additional checkboxes allow for plotting all devices for a metric, all metrics for a device, or all metrics for all devices.
  3. Save and Load Filter Setups:
    • Save a filter setup for future use by providing a name in the Save Plot Filter text box and clicking Save.
    • Load existing filter setups using the Load Plot Filter select.
  4. Map Key Group Selection:
    • Narrow data to a specific map key group using the Map Key select in the Plot Selection area.
  5. Plot Options:
    • Choose between line chart and histogram using the Plot Selection Type select.
  6. Export Data:
    • Click the Export Data button to export captured data as a CSV file for further analysis.
    • Data is exported to the data directory, grouped by map key.

Data Recall

The Data Recall tab allows you to retrieve and plot data from previous freerun sessions stored in a database file. The interface is similar to the Plots tab with added functionality for selecting the database file and test run.

  1. Access Data Recall Tab:
    • Navigate to the Data Recall tab for recalling and plotting data from previous freerun sessions.
  2. Database File Selection:
    • Click on the select box under the Database Names label.
    • Choose the desired database file; the default is data.db.
  3. Test Run Selection:
    • Click on the select box under the Test Run IDs label.
    • Pick the specific test run from the list, arranged chronologically and UTC timestamped.
  4. Load Test Run:
    • Click the Load Test Run button to recall data from the selected database file and test run.
  5. Customize Plot:
    • After loading the test run, customize the plot using the same methods as the Plots tab.


The Diagnostics tab offers a straightforward way to execute on-device diagnostics following the device's safety manual. It displays available diagnostics, test logs, and results for a single device.

  1. Access Diagnostics Tab:
    • Navigate to the Diagnostics tab for on-device diagnostics execution.
  2. Device Selection:
    • Use the Device Selection bar to switch between devices.
  3. Run Diagnostics:
    • In the Functions section on the left, click on the button with the name of the desired diagnostic.
    • The diagnostic runs, and results are displayed on the right side: highlighted green for pass and red for failure.
  4. Diagnostic Log:
    • A log of diagnostic-specific data appears in the center of the screen.
    • The log provides context for understanding why a diagnostic may have failed.

Custom GUI Configuration

The configuration settings in the GUI's config.json file allow users to tailor the software to their specific needs, providing a more customized and efficient experience.

This section explores the three key settings: auto_detect_sdp, limit_usb_polling, and display_user_manual_on_start - that users can adjust to better align the software to their intended applications.

Key Settings


  • Purpose: Determines whether the software automatically connects to all comports or requires manual selection of the NUCLEO comport.
  • Default Setting: true
  • Modification:
    • Open the config.json file located in the base directory of the software.
    • Locate the “auto_detect_sdp” setting and change its value to false.
    • Save the changes.


  • Purpose: Controls the poll rate of the NUCLEO comport, balancing CPU usage and sample rate.
  • Default Setting: false
  • Modification:
    • Open the config.json file.
    • Find the “limit_usb_polling” setting and change its value to true if a reduced poll rate is preferred.
    • Save the changes.


  • Purpose: Governs whether the user manual is displayed each time the software starts.
  • Default Setting: true
  • Modification:
    • Open the config.json file.
    • Locate the “display_user_manual_on_start” setting and change its value to false if you prefer not to see the manual on startup.
    • Save the changes.

By adjusting these configuration settings in the config.json file, users can optimize the software's behavior to better suit their requirements. Whether it's fine-tuning comport connections, managing CPU usage, or controlling the display of the user manual, these settings provide a flexible approach to enhancing the software's usability. Make sure to save your changes and restart the software for the modifications to take effect.

Further Help

For questions and more information about this product, connect with us through the Analog Devices Engineer Zone.

Click here to read the EVAL-ADBMS6830BMSW Hardware User Guide

resources/eval/user-guides/eval-adbms6830bmsw/software.1708991917.txt.gz · Last modified: 27 Feb 2024 00:58 by Joyce Velasco