Inspiration
Cyclic voltammetry (CV) is an important tool for understanding how battery materials behave as the potential changes. It helps researchers investigate useful voltage ranges and identify signs of unwanted reactions, such as electrolyte decomposition or material degradation. These measurements inform decisions that balance performance with stability and battery lifetime, although additional testing is needed to establish battery safety.
However, interpreting a CV can be difficult, especially for students entering research. A weak return peak or changing current can have several explanations, and relevant papers often use different experimental conditions.
We created BenchCheck to make this process easier: measure what the experiment shows, connect those observations to relevant literature, and suggest practical follow-up checks. Our goal is to help researchers make better-informed experimental decisions while keeping the evidence and assumptions visible.
What it does
BenchCheck helps researchers analyze cyclic voltammetry data and decide what to check next. Users upload a CSV or text file, confirm the columns and units, and describe their experiment. The program measures peaks, charge balance, and changes across cycles. It then applies troubleshooting rules to identify possible explanations.
Using SerpApi’s Google Scholar and Extract APIs, it searches for relevant papers, retrieves passages, and compares experimental conditions. It recommends follow-up checks and shows the measurements, assumptions, and available evidence behind each suggestion. Users can export their results as Markdown, HTML, or JSON.
How we built it
We built the backend with Python and FastAPI, using NumPy and SciPy for numerical analysis. The frontend uses JavaScript, HTML, and CSS, with Plotly.js for interactive graphs.
The recommendation system combines predefined electrochemistry rules with a catalog of follow-up experiments. Literature searches provide context and influence how those checks are ranked. We used Claude Code and OpenAI Codex for implementation, testing, debugging, and interface design.
Challenges we ran into
Instrument exports use different column names, units, delimiters, and current-sign conventions. We needed users to confirm those settings before interpreting their data.
Peak measurements were another challenge because baseline selection and overlapping peaks can change the results. We tested the calculations against simulated data and real data with known answers and documented the remaining limitations.
We also had to distinguish relevant literature from convincing-looking search results. A passage mentioning dissolution does not necessarily establish that dissolution explains someone’s experiment.
Accomplishments that we're proud of
We built a working flow from uploading data to exploring an interactive graph, reviewing possible explanations, retrieving literature, and exporting a report.
The project passed 93 automated tests and 16 numerical evaluation checks. We’re particularly proud of making the reasoning visible: users can inspect the measured features, processing steps, literature passages, and reasons behind each recommended check.
What we learned
Reliable scientific software depends on making assumptions explicit. Units, reference electrodes, scan rates, and baseline choices all affect interpretation.
We also learned that a useful recommendation should help someone distinguish between possible explanations. Showing why an experiment is worth trying is as important as suggesting it.
What's next for BenchCheck
We want to validate the tool on more real laboratory datasets, improve how it evaluates whether literature passages support an explanation, and expand instrument-format support.
We also plan to add scan-rate-series comparisons, charge–discharge analysis, and electrochemical impedance spectroscopy while keeping the calculations and recommendations transparent.
Log in or sign up for Devpost to join the conversation.