EIS Analyzer - Professional Impedance Analysis

Electrochemical impedance spectroscopy (EIS) analysis software for battery impedance testing, fuel cell diagnostics, and electrochemical R&D. Features automated circuit fitting, DRT analysis, Kramers-Kronig validation, and Batalyse Collect integration. Free for Data Analysis customers.

EIS Analyzer - Professional Impedance Analysis background

EIS Analyzer

Professional-grade impedance spectroscopy analysis software for battery impedance testing, fuel cells, electrolysis, and redox-flow batteries. Supports Gamry, Solartron, Bio-Logic, PalmSens, and more.
Circuit Fitting
Circuit Fitting
Fit EIS data to 14+ equivalent circuit models and 14 Transmission Line Models (TLM) for porous electrode analysis - with constrained fitting, parameter bounds, and batch fitting
DRT Analysis
DRT Analysis
Distribution of Relaxation Times analysis identifies time constants and automatically recommends optimal circuit models
Data Validation
Data Validation
Kramers-Kronig validation detects measurement errors, drift, or noise in your EIS data
SOH Prediction
SOH Prediction
Machine learning-based State of Health and temperature estimation from EIS features
Batch Processing
Batch Processing
Multi-threaded parallel analysis for processing multiple files simultaneously
Collect Integration
Collect Integration
Direct connection to Batalyse Collect for seamless data import, analysis, and result upload
Origin Export
Origin Export
Export analysis results as editable OriginLab .opju project files with fully formatted graphs ready for publication
Customization
Customization
Extensive graph customization options for colors, markers, line styles, fonts, axis scaling, and more - with import/export of style presets
Multiple File Formats & Data Sources

Multiple File Formats & Data Sources

Import EIS data from Gamry (.DTA), Solartron (.z), Bio-Logic (.mpr), PalmSens (.pssession), or text formats (.txt, .dat, .csv, .mpt). Connect directly to MySQL/SQL Server databases or Batalyse Collect cloud platform.

One-Click Automated Analysis

One-Click Automated Analysis

Run DRT analysis, circuit fitting, validation, and predictions simultaneously with the auto-analysis pipeline. Export results as JSON, CSV, or PNG – or upload directly to Collect with KPI tables.

Customization

Customization

Customize every aspect of your graph exports with the dedicated Customize Graphs tab. Set per-file dataset styling including colors, markers, and line widths. Configure font settings with bold and italic options for titles, axis labels, and legends. Control axis scaling, gridlines, and select which plots to generate. Save and share your styling presets via JSON export/import.

Kramers-Kronig Validation

Kramers-Kronig Validation

Verify the quality of your EIS measurements with Kramers-Kronig transformation. Detect drift, noise, or non-linear behavior in your data before analysis. The validation highlights problematic frequency ranges and helps ensure reliable circuit fitting results.

Distribution of Relaxation Times

Distribution of Relaxation Times

Identify electrochemical processes and their time constants with Distribution of Relaxation Times analysis. Extended configuration options let you fine-tune regularization parameters, frequency ranges, and peak detection sensitivity. Add peaks manually by clicking directly on the DRT graph or let the algorithm auto-detect them. DRT results automatically suggest optimal equivalent circuit models for subsequent fitting.

Equivalent Circuit Modeling

Equivalent Circuit Modeling

Fit your EIS data to 14+ built-in equivalent circuit models including R, R-C, R-RC, R-RQ, R-RC-RC, R-RQ-RQ, Randles, and models with Warburg diffusion elements. Analyze porous electrodes with 14 Transmission Line Model (TLM) circuits including blocking, RC, CPE, Warburg, two-rail, and nested configurations. Use constrained fitting with parameter bounds, fix/free controls, and mathematical expressions. Need a custom configuration? Enter your own circuit string to define individual equivalent circuits tailored to your specific electrochemical system.

Save and manage projects

Save and manage projects

Save complete analysis sessions as projects to preserve all settings, fitted parameters, and results. Reopen projects anytime to continue your work or compare results across different measurements.

Flexible Export Options

Flexible Export Options

Export your analysis results in multiple formats: JSON for programmatic access, CSV for spreadsheet analysis, PNG for publication-ready graphs, or editable OriginLab .opju projects. Upload results directly to Batalyse Collect for centralized data management and team collaboration.

Free for Data Analysis Customers

EIS Analyzer is included with your Data Analysis license at no additional cost. It has its own separate license and evaluation tracking—using it doesn't count against your Data Analysis evaluations.

Changelog

Version 2.2.3
  • Origin .opju export: every fit (current + history) now exported with matching colors and circuit-model labels
  • Origin .opju export: Bode plots now overlay all fit curves (previously missing)
  • Origin .opju export: new KK_Nyquist graph (measured data + K-K reconstruction)
  • Plots tab: removes the duplicated per-file section when only one file is loaded
  • Fitting tab: new Sweep picker with per-sweep progress in ‘Evaluate (selected)’
  • Fit result card: shows Fix / Shared / Min / Max / Expression / Initial-Value badges per parameter
  • Initial parameter values table: row-level mutual exclusion between Fix and Min/Max/Expression/Shared
  • Plots: fit legend entries now include the circuit model name everywhere (Nyquist, Bode, areal, electrode-group)
  • Graphs ZIP export: K-K Nyquist comparison PNG added alongside K-K residuals
  • Sidebar: silent update check on startup with visible ‘New version available’ banner and one-click install
  • Sidebar: rollback list visible on startup, capped at the 3 most recent versions
  • Sidebar: app version now displayed in the main ‘EIS Analyzer’ headline
  • License diagnostics: detailed per-check report (offline, firewall, machine ID checks)
  • Joint shared-params batch fit: per-sweep status ticker shows each sweep’s chi² as it completes
  • Numerous bug fixes and UX improvements
Version 2.2.2
  • Unified Initial Parameter Values and Advanced Constraints into a single table with Value, Fix, Shared, Min, Max, Expression columns
  • Shared parameters now apply across ALL sweeps of ALL files (previously limited to active sweep only)
  • K-K Validation: unified quality scoring — eliminates contradictory ‘Grade A + Failed’ results
  • Fitting: DRT-guided initial guesses (Wan et al. 2022), half-circle C_dl estimation, multi-start TRF optimization
  • Fitting tab compact plots: show all sweeps + fit history, match main Plots tab colors and legend
  • Column tooltips on parameter table describe each column’s effect on fitting
  • Fit Residuals header shows selected sweep name
  • Auto-analysis: parameter errors no longer zeroed (uses real backend values)
  • DRT: unified peak threshold 0.1 (was inconsistent 0.15 vs 0.1 between display and recommendation)
  • Graph ZIP export CSP fix: dataUrlToBlob replaces fetch(data:…) blocked by Content Security Policy
  • Graph ZIP export now auto-renders plots before capture (previously failed if Plots tab not visited)
  • Fix R_s suggestion: UI tip with one-click button when R_s is well-determined and chi² is mediocre
  • TLM CPE exponent naming: n_dl → gamma in R-TLMrq, R-TLMtrq, L-R-TLMrq, R-TLMnest (fixes missing bounds)
  • Disabled button styling for btn-outline-primary/secondary (e.g., Polarization when no data)
  • Error messages display for 10 seconds (was 5) so users can read them
Version 2.1.1
  • Fixed missing fit residuals graph when frequency range is filtered
  • Fixed untranslated DRT recommendation (confidence, description, reasoning) on language switch
  • Fixed untranslated K-K validation quality grades on language switch
  • Fixed untranslated export tab badges on language switch
  • Added custom circuit validation gating: Evaluate button blocked until circuit is validated
  • Improved custom circuit auto-estimation of initial parameters from data
  • Improved NaN-filling for partial user-provided initial guesses
  • Backend DRT reasoning now returns structured i18n keys instead of English strings
Older versions

Version 2.2.0

  • Advanced fitting: Method selection (TRF, LM, Nelder-Mead, Basin-Hopping, Differential Evolution)
  • Advanced fitting: Weighting schemes (Proportional, Unweighted, Per-component)
  • Advanced fitting: Monte Carlo uncertainty estimation
  • Advanced fitting: Fix/free parameter constraints with inline checkboxes
  • European decimal comma support in parameter inputs
  • Failed fit error cards with settings display and recovery tips
  • Fit history delete button with promote-from-history
  • KPI table: Chi-squared (unweighted), Fixed Params, MC Simulations columns
  • Progress timer for single fits (not just batch)
  • SSE heartbeat for long-running analyses (prevents timeout)
  • Improved error messages for server errors and connection loss
  • UI alignment improvements in Fitting tab
  • Fix: Custom circuit fitting (extract_circuit_parameters import)

Version 2.1.0

  • Added 10 Transmission Line Model (TLM) elements for porous electrode analysis
  • Added 14 new TLM circuit models (blocking, RC, CPE, Warburg, two-rail, nested)
  • Added constrained fitting with parameter bounds, fix/free, and expressions (lmfit)
  • Added batch fitting with shared parameters across files
  • Added multi-language support (EN, DE, FR, ES, PT, ZH, JA, KO, HI)
  • Added DRT-based TLM model recommendation for porous electrode detection
  • Improved visual frequency selection with multi-file and multi-sweep overlay
  • Improved fitting tab layout with compact CSS grid design
  • Improved fit failure error display with detailed messages
  • Improved DRT and Features summary with compact 2-column card layout
  • Improved fit settings display on auto-analysis result cards
  • Improved DRT result box with compact parameter footer
  • Improved bug report form with mandatory name/email validation and license prefill
  • Improved sweep card highlight follows active sweep selection across all tabs
  • Fixed Randles circuit topologies to standard form: C_dl || (R_ct + W)
  • Fixed DRT recommendation false positives for Warburg, porous, and inductance detection
  • Fixed DRT L-curve lambda selection and GCV hat matrix computation
  • Fixed outlier detection edge-padding artifacts in data quality scoring
  • Fixed auto-analysis polarization requiring fit results for iR correction
  • Fixed duplicate fit result cards after auto-analysis re-fit
  • Fixed parameter error display on history fit cards
  • Fixed TLMnest unit labels mismatch
  • Fixed numpy.bool_ JSON serialization for 3-electrode .mpr files
  • Fixed Plotly plot sizing in collapsible sections
  • Fixed fit result timestamps showing absolute date/time
  • Fixed i18n language switch destroying license checkboxes and step numbers
  • Fixed fit settings not showing on auto-analysis result cards
  • Fixed XSS vulnerabilities across frontend (filenames, curve labels, error messages)
  • Fixed path traversal in Origin export filename
  • Added project import size limit (500 MB)

Version 2.0.2

  • Update downloads now use .zip packages to avoid browser security warnings
  • Support for both .zip and .exe update packages with automatic extraction
  • Fix application not closing properly during updates (file lock issues)
  • Improved installer reliability for non-admin users
  • Fix pyarrow dependency crash on fresh installations
  • Fix sidebar showing wrong version number after update

Version 2.0.1

  • Compact 2-column grid layout for K-K and fit sweep results
  • Origin .opju downloads available immediately after generation (incremental cache refresh)
  • Fix Origin export filename preserving sweep/electrode labels
  • Improved clear-all cleanup for K-K and DRT UI sections
  • Fix AutoAnalyzeFileResult type for K-K validation fields

Version 2.0.0

  • Complete rewrite: New FastAPI + TypeScript web architecture (replaces Streamlit)
  • Native desktop window via pywebview with browser fallback
  • DRT Analysis with circuit model recommendation
  • SOH and temperature estimation from EIS features
  • Auto-Analysis pipeline with trend analysis
  • Graph customization with preset library
  • Project import/export (.batalyse files)
  • SQL database connectivity (MySQL + SQL Server)
  • Origin .opju export with multi-sheet workbooks
  • PalmSens .pssession file format support
  • Kramers-Kronig validation improvements
  • Bug report submission from within the app
  • Automatic update checking with rollback support

Version 1.0.8

  • New Customization Library for saving and loading graph presets
  • Position-based defaults for single-test presets in Customization Library
  • DRT Analysis: Added multiple new configuration options
  • DRT Analysis: Add peaks manually or by clicking on the graph
  • Auto Analysis: DRT settings can now be modified before running
  • Added DRT peak information to Origin export with Peak_type column
  • Auto-extract DRT peaks when running Auto Analysis and exporting
  • Added Test X: prefix to Styles menu for clarity
  • Fixed bugs when loading parameters from presets
  • Improved default column tooltip in Customization Library
  • Bug fixes and performance improvements

Version 1.0.7

  • Fixed startup crash when installed in protected directories (Program Files)
  • Application log now writes to user directory instead of install directory
  • Added SQL injection protection for custom database query configurations
  • Created comprehensive security documentation for IT departments
  • Fixed Solartron ZPLOT2 .z file parsing (extended column format support)

Version 1.0.6

  • Added Customize Graphs tab with full graph export customization
  • Added per-file dataset styling (color, marker, line width)
  • Added bold/italic font settings for titles, axis labels, legends
  • Added JSON customization export/import for sharing settings
  • Added export graphs selection to control which plots are generated
  • Added Nyquist_Areal graph for area-normalized impedance plots
  • Added PalmSens .pssession file format support
  • Fixed combined Origin export for multi-file graphs
  • Improved fitting failure messages with model name and error details

Version 1.0.5

  • Added Origin export with KK_Nyquist graph (Experimental vs K-K Fit)
  • Improved Origin detection with registry scanning and refresh button
  • Fixed Kramers-Kronig validation to use proper linKK function
  • Enhanced KK validation error display with residual data and plots
  • Fixed local graph export (PNG ZIP) to include Nyquist and Bode plots
  • Added terms acceptance documentation to license requests
  • Fixed Origin uploads to Collect

Version 1.0.4

  • Added Fitting Options expander to Auto Analysis with configurable parameters
  • Improved MPR parser to handle high-impedance data (raised filter from 1kΩ to 1MΩ)
  • Fixed UI reloads when modifying fitting options using Streamlit fragments

Version 1.0.3

  • Added combined DRT comparison plot for multi-file exports
  • Added combined KK validation plot for multi-file exports
  • Combined Nyquist/Bode plots now generated automatically for comparison uploads
  • Online licenses now re-validate on each app startup
  • Enhanced offline license activation with key decryption capability

Version 1.0.2

  • Fixed license validation on app startup and browser refresh
  • Resolved tab-switching issue when interacting with checkboxes
  • Bug Report tab now accessible without valid license

Version 1.0.1

  • Replaced pyodbc with mssql-python for SQL Server connectivity
  • Added sidebar expand button when collapsed
  • Made Origin packages Windows-only to fix install errors

Credits

We gratefully acknowledge the following open-source projects that form the foundation of Batalyse EIS Analyzer and the BMFTR for co-funding this work with project BaetterAI.
BMFTR BaetterAI