Skip to main content
March 30, 2026
ECM parameterization, resistance scaling, custom variables, and BaSyTec reader

ECM parameterization

A new ECM parameterization page lets you upload cycling data, select 0–5 RC pairs with a live circuit diagram, and view fitted parameters including OCV and R0. Results can be downloaded as CSV.Find out more →

Adjust resistance in protocol simulations

The protocol simulator now uses Equivalent Circuit Models (ECM) instead of SPM for faster, more robust cycler protocol simulations. ECM parameter sets are available for all six supported chemistries, and a new resistance scaling parameter in the UI lets you adjust the overall cell resistance before running a simulation.Find out more →

Custom variables on models

You can now define custom derived quantities on models — such as electrode potentials or temperature in different units — as PyBaMM expressions stored in the model configuration. These custom variables are evaluated at simulation time and included in result data, making it easy to track application-specific metrics across design sweeps.Find out more →

BaSyTec battery cycler reader

The data processing library now supports BaSyTec CSV exports (CTS, X50 series). The reader auto-detects BaSyTec files by header signature, parses HH:MM:SS.sss timestamps (including values above 24 hours), applies the correct current sign convention, and extracts start times from companion _meta.txt files.Find out more →
Improvements
  • Added dark mode with a theme toggle in the dashboard header.
  • Moved optimization templates from organization scope to project scope with project-level management pages.
  • Made optimization name optional when creating optimizations.
  • Added pagination to cell specification, instance, and measurement list endpoints.
  • Added OCV traces to drive cycle simulation result plots.
  • Unified EIS column naming to Z_Re [Ohm] / Z_Im [Ohm] across simulation, measurement ingestion, and frontend rendering.
  • Migrated experiment template metrics from code-string evaluation to serializable ionworkspipeline metric configs.
  • Completed removal of deprecated slug and additional_data columns from cell models.
Fixes
  • Fixed datafit processor receiving unresolved db: refs during validation.
  • Fixed LumpedSPMR model crash due to missing self.param attribute.
  • Fixed mutating datafit setup configuration between runs.
Improvements
  • Added support for computing lithium inventory from maximum stoichiometries without requiring maximum concentration values.
  • Adopted PyBaMM’s native to_config/from_config for model and experiment serialization, removing custom parser logic.
  • Added abs as a unary operation for composed metrics.
Fixes
  • Fixed thermal model using incorrect heat generation variable in ECM.
  • Fixed trailing space in electrode balancing direction parameter names.
  • Fixed validation to discover sub-parameters inside FunctionParameter nodes.
  • Fixed parser to handle sampler configurations and expanded schema sync tests.
  • Fixed pandas/polars/DataLoader compatibility issues.
Improvements
  • Unified EIS impedance columns to Z_Re [Ohm] / Z_Im [Ohm] with SI units and standard sign convention.
Fixes
  • Fixed CCCV resolution to apply consistently to all sub-steps within a protocol.
Improvements
  • Added local data caching for cell measurements, reducing repeated downloads.
  • Added pagination support (limit/offset) to cell list methods, returning a PaginatedList with a .total attribute.
  • Completed removal of deprecated slug and additional_data fields from cell models.
  • Improved sign detection algorithm for measurement current data.
Improvements
  • Added BioLogic plain CSV reader for non-MPR exports.
  • Added automatic derivation of Z_Re and Z_Im from Z_Mod and Z_Phase when impedance components are missing.
  • Moved cell data caching logic into ionworks-api for reuse across packages.
Fixes
  • Fixed CSV reader to skip auto-detection for explicitly mapped columns.
  • Fixed plotting bugs in data visualization utilities.