Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Universal Battery Database

The Universal Battery Database is an open source software for managing Lithium-ion cell data. Its primary purposes are:

  1. Organize and parse experimental measurement (e.g. long term cycling and electrochemical impedance spectroscopy) data files of Lithium-ion cells.
  2. Perform sophisticated modelling using machine learning and physics-based approaches.
  3. Describe and organize the design and chemistry information of cells (e.g. electrodes, electrolytes, geometry), as well as experimental conditions (e.g. temperature).
  4. Automatically refresh a database as new data comes in.
  5. Visualize experimental results.
  6. Quickly search and find data of interest.
  7. Quality control.

The Universal Battery Database was developed at the Jeff Dahn Research Group at Dalhousie University.

Table of Contents

Preliminary Results

alt text

Figure 1: Model measurements and make predictions using

Data Management Software Demo

alt text

Figure 2: Fix anomologous cycling data using the web browser provided by



Two Installation Options

  1. If you only want to play around with modelling and you have a compiled dataset from somewhere else, you can install without a database. This option is simpler and you can always install a database later.
  2. If you want to use the full database features such as parsing and organising experimental data and metadata, you should install with a database.

Using the Software

Use to see the web page and use its analytic features.

Use to use the machine learning model and see the results.

Physics and Computer Science Behind the Software

We hypothesize that we can make good generalizations by approximating the functions that map one degradation mechanism to another using neural networks.

We aim to develop a theory of lithium-ion cells. We first break down the machine learning problem into smaller sub-problems. From there, we develop frameworks to convert the theory to practical implementations. Finally, we apply the method to experimental data and evaluate the result.


Code Conventions

Generally, we follow Google's Python Style Guide.