Bio-Logic's .mpr is the most common file format nobody's parser fully trusts. Versions drift, flags corrupt, and channel metadata hides in binary headers. Here's the workflow that actually works.
Option A — Python (galvani):
from galvani import BioLogic
mpr = BioLogic.MPRfile("battery_01.mpr")
df = mpr.data # columns: time/s, Ecell/V, I/mA, ...
df.to_csv("battery_01.csv", index=False)
print(df[["time/s", "Ecell/V", "I/mA"]].head())Option B — no code: upload the .mpr at /tools/biologic-mpr. The server parses the header metadata best-effort and hands back an honest extraction report — for the full time series it walks you through the one-click EC-Lab export (File → Export → CSV/TSV), then ingests the CSV into a governed dataset. Free tier, no card.
3 failure modes to check for in the wild:
- Version mismatch — old EC-Lab writes headers newer readers reject; the metadata parser reports the version it found instead of misreading silently.
- Corrupt technique flags — a truncated write can mark every row one technique; check the technique column before trusting labels.
- Channel drift between sessions — reference drift looks like capacity fade; keep per-file calibration metadata so you compare like with like.
Limits (honest): the binary .mpr path is metadata-only by design; unknown versions return a best-effort header plus the CSV-export instructions, never a silent guess. Odd techniques — tell us via /contact, we add the parser openly.
FAQ: Is my data used for training? No — account-scoped, never pooled. Can I export? Yes — CSV plus RO-Crate with source hash. What does it cost? Parsing is free-tier; compute credits only apply to real physics runs.