Repository navigation
Free software (GPL-3.0-or-later) that turns battery cycling data into checked numbers and journal-ready figures. It reads BioLogic EC-Lab .mpr and .mpt files, LANHE (LAND) .cex files, and the text or Excel exports of Arbin, Maccor, Neware, BaSyTec, Novonix, PEC and Landt cyclers, and learns any other cycler's export from one file.
New in 0.9.1
- LANHE
.cexfiles with pauses and restarts open. 0.9.0 refused the second.cexlayout seen (05 00 04 00) and any test that had been paused or stopped. 0.9.1 reads both. A pause is read as it is, and the check of the record time against the tester's clock allows for it. When the tester stopped and then resumed from a state it had saved shortly before, it records those seconds twice and its own capacity counter drops their charge: Cyclara keeps every record and that charge, warns at each restart, and treats the interrupted branch as partial, so its cycle has no efficiency or retention (and no cycle has a retention when that cycle is the reference, until another reference cycle is chosen); the branch has no dQ/dE unless the restart falls in a constant-voltage hold at the start or end of the branch. Events in an order not seen before, a restart unlike the ones seen, and a place where the records break are refused with the reason. Verified on a second real file; a comparison with LANHE's own Excel export is still to come. - No dQ/dE across an interruption. A branch in which the time goes back, the current is missing or the instrument flagged an error has no dQ/dE: the potential after the break need not continue the curve before it, and at the restarts of the second real file such curves showed false peaks. As a precaution, a branch a LANHE tester paused partway, however briefly, has none either (at the pauses seen, the cell relaxed by a few millivolts and the curves did not change visibly). A pause leaves the capacities, efficiency and retention as they are. Only an interruption or pause between the first and last point of the curve counts, so one inside a constant-voltage hold at the start or end of a branch does not (the cycle still has no efficiency when it was a restart), and rows that only share a time stamp are not a break. The dQ/dE figures, views and peak tables leave such a branch out; the cycle notes, the dQ/dE view and the peak tables say which branch has no curve, a peak whose partner branch has none says so, and a figure with no curve at all says why.
- The summary names the cycles it leaves out, not only an unfinished last one, and says when the reference cycle is not complete, so that no cycle has a retention; the methods paragraph says so too, and names the actual cause of each interruption.
- Fixed: an export in which no branch of the cycles had a dQ/dE curve stopped with an error at the 3D figure (since 0.8.0). Each dQ/dE figure, and the dQ/dE view, now says why it is empty.
- Peak tables: "first cycle only" and "appears from cycle k" are judged, for each direction, over the cycles in which that direction has a dQ/dE curve, and a new last column of
dqde_peaks.csv,no_curve_cycles, lists the cycles whose branch has none. So a file that opens with an unpaired discharge no longer reports every charge peak as appearing from cycle 2, a direction with a curve in one cycle only is reported as "one cycle analysed", and a first-cycle-only peak names its cycle insummary.json. The cycles a peak is seen in are written as ranges over every cycle of the file, so a range breaks at any cycle without a curve in its direction, now also one in which no branch has a curve (0.9.0 ran through it). - The record time of a
.cexis checked against the tester's clock interval by interval, so one change of the tester's clock (a summer-time change, for example) is reported with its place instead of refusing the file. - Known, and unchanged from earlier versions: the Landt Excel export checked prints the time to 0.01 h, so most consecutive rows share a time, and no cycle of it gets an efficiency or a retention (capacities and dQ/dE are given). Each cycle's note now says how many intervals were not integrated.
Install
Windows 10 (version 1903 or later) or 11, 64-bit: run Cyclara-0.9.1-Setup.exe, then Next, Install, Finish. No administrator password is needed, and it installs over 0.9.0. The first time, SmartScreen may say "Windows protected your PC", because the installer is not signed with a paid certificate: click More info, then Run anyway.
macOS 14 or later: unzip Cyclara-0.9.1-macOS-AppleSilicon.zip (M1 to M4) or Cyclara-0.9.1-macOS-Intel.zip, drag Cyclara.app to Applications and open it. The first time, macOS says it cannot verify the app: click Done, then System Settings > Privacy & Security > Open Anyway, and open it again. On macOS 14, right-click the app and choose Open.
The handout (Cyclara_handout_v0.9.1.pdf) shows every step with pictures.
Check your download
Download only from this page. If someone sends you the file another way, compare its SHA-256 with this list (also attached as SHA256SUMS.txt):
0cebaaa303d6789fa7554d96eb5b7947ed6f7a9a09f43a8d339b42d82a994e60 Cyclara-0.9.1-Setup.exe
a7aba4e5c990a179a6464ddf475637446c480f32bf248c7f5019534c24f4d082 Cyclara-0.9.1-macOS-AppleSilicon.zip
f17ee24df544d08ffca4955f773bc30ec9640a0a76e5843f9e21dcca6970ea30 Cyclara-0.9.1-macOS-Intel.zip
b22bd6fc9480d370865ecf1edf0e17924189538acaf2a85325ff16ccd0f23fc1 Cyclara_handout_v0.9.1.pdf
- Windows, PowerShell:
Get-FileHash .\Cyclara-0.9.1-Setup.exe - Windows, Command Prompt:
certutil -hashfile Cyclara-0.9.1-Setup.exe SHA256 - macOS, Terminal:
shasum -a 256 ~/Downloads/Cyclara-0.9.1-macOS-AppleSilicon.zip - With the GitHub CLI, against GitHub's signed record of this release:
gh release verify-asset v0.9.1 Cyclara-0.9.1-Setup.exe -R asajeevan/electrochem-toolkit
Tested
The installers were built from a clean checkout of commit 668b3ad, the source of this release; the commit after it adds only these checksums, the build evidence and documentation under docs/, none of which is inside the installers. On that checkout all 1067 tests pass on Linux. The Windows program, run with its bundled Python under Wine, opens every view of the demonstration file and passes its own suite (1046 tests); this installer, run under Wine over 0.9.0, installed a tree identical file for file to the one tested, and uninstalled cleanly. Before the build, five reviewers who had not written the code compared, in turn and each after the fixes of the one before, the statements about the new work in these notes, the handout and the documentation with the code; what they found is fixed (docs/handoffs/Project_Status_Addendum_2026-10-21b.md). The new code was also checked with 94 deliberate faults: 93 made a test fail, and the other one turned out not to change what the program does. On the 23 public measurement files in the repository that Cyclara analyses directly, every value of every cycle and of the summary, and every dQ/dE curve and peak, is the same as in 0.9.0; the differences are in notes and wording. Not yet run on a physical Windows PC or Mac: reports are welcome through Help > Report a problem.
Cite
Shyma Sajeevan, A. (2026). Cyclara: traceable analysis of battery cycling data (Version 0.9.1) [Computer software]. https://github.com/asajeevan/electrochem-toolkit