Mashed Potato — FuNII Lab
Instrumentation Tools

Mashed Potato

The Arduino shield potentiostat · Web Serial · CV · LSV · SWV · DPV · CA · OCP · Chrome / Edge

Board Not connected Connect the Uno over USB, or try the simulated demo board.

Method

Current and ADC

Advanced ADC settings

Before and after

Label

Series of runs
drag to zoom · double-click to reset
Points
—
Elapsed
—
Potential
—
Current
—
Range
—

Runs

NameMethodRoleConc.Status

Analysis

Manual control

Current— Potential (measured)— Spare input J4— Raw counts— State—

Calibration constants

Stored in the board's EEPROM. Each run keeps a copy of the values used to convert it.

Calibration wizards

Run them in this order. Each one writes the new constants to the board; press Save to EEPROM when you are happy.

1 · Current offsets

The counter electrode switch is opened, so no current flows. Electrodes may stay connected. Reads every range at zero current.

2 · Potential (DAC)

Connect a resistor of 1–100 kΩ from WE to RE and CE joined together (or a dummy cell). Applies −0.8 V and +0.8 V and measures the real potential.

3 · Range resistors

Connect a precision resistor from WE to RE and CE joined together and enter its value. Ranges where it gives 10–90 % of full scale are calibrated: 1 kΩ does ranges 0–1, 100 kΩ ranges 2–3, 10 MΩ range 4.

Ω

Demo board

A simulated board and cell so you can try the page without hardware. It behaves like the firmware, including timing.

Serial console


    

Getting started

  1. Upload the Mashed Potato firmware, RodeoShield.ino, to the Uno with the Arduino IDE (board: Arduino Uno). It only needs the built-in Wire and EEPROM libraries.
  2. Plug the shield on the Uno and connect USB. Open this page in Chrome or Edge (desktop) and press Connect. Pick the Uno's port.
  3. The page resets the Uno, reads the firmware version and the calibration, and enables Run.
  4. No board yet? Press Demo board for a simulated board with a redox couple or resistors.

All data stays in this page. The board streams every point as it is measured, so runs have no length limit. The session is autosaved in this browser. Use Save session to keep a file and Export data CSV for spreadsheets.

Techniques

  • CV: start → vertex 1 → vertex 2 → start, repeated for the number of scans. Set vertex 2 equal to the start for a single return sweep.
  • LSV: one staircase sweep from start to end.
  • SWV: staircase with a square wave on top (amplitude = half peak-to-peak). Current is sampled at the end of each half-cycle; ΔI = forward − reverse.
  • DPV: each period holds the base potential, then pulses by the amplitude in the scan direction. ΔI = end of pulse − end of base.
  • CA: holds the rest potential during the quiet time, then steps to E₁ (and optionally E₂). Time zero is the step.
  • OCP: the counter electrode is disconnected and the cell potential is recorded.

Potentials are WE vs RE, from about −1.65 V to +1.65 V in 0.8 mV steps. Staircase methods sample at the end of each step. Auto ADC rate picks the slowest (least noisy) conversion that fits in half of each step. Slower rates average longer and give less noise.

Series: the same method several times

Open Series under the method and tick Run as a series. Pick the parameter (any field of the technique, or the conditioning E/time or quiet time) and how it changes: add a step, multiply by a factor, or type a list (for example 10, 25, 50, 100, 200). Each run is saved as its own run, named after the value, so the runs overlay in the plot and can be analysed separately. A Pause between runs gives time to stir or let the solution rest. Stop ends the current run and cancels the rest of the series.

Randles–Sevcik in one go: CV, series on scan rate × 2 for 5 runs. Then in Analysis pick Maximum (direction Forward), Plot it against scan rate, and either √x (straight line through the origin) or log x with log |Value| (slope ≈ 0.5 for diffusion control).

CA pulse trains

In chronoamperometry, Pulses repeats step 1 + step 2 that many times in one continuous recording, so step 2 works as the rest between pulses. Change each pulse can move the step 1 or step 2 potential (mV per pulse) or lengthen/shorten either step (s per pulse). Time runs on continuously across all pulses. The data CSV has pulse and step columns so the trace can be split later. Needs firmware 5.

When the current is sampled

By default the current is measured at the end of every step (CV, LSV), half-cycle (SWV) or pulse (DPV). The ADC integrates over its whole conversion, so the summary under the method shows exactly which part of each pulse is used (for example "15–20 ms into each 20 ms half-cycle"). Under Advanced you can start the sample at a set percentage of the step or pulse instead. Sampling earlier gives larger peaks, because the faradaic current decays as t−½ during each pulse, but it also picks up more double-layer charging current. Sampling late rejects the charging current, which is the point of pulse methods. The DPV base current is always taken at the end of the base period. This needs firmware 4 or newer.

Taking curves to Excel, Google Sheets or Origin

Export plot… above the plot exports the curves as they are plotted, including blank subtraction, the scan selection and the x choice, in the plot's units:

  • Copy curves: paste straight into Excel, Google Sheets, Origin or LibreOffice (tab-separated, with names and units).
  • Excel workbook: the data plus a ready-made chart in the run colours, and a sheet describing each run. Google Sheets (File → Import), LibreOffice and Origin open it too.
  • Origin-ready text: header rows for Long Name, Units and Comments. Drag the file into Origin.
  • Picture: the plot as a PNG.

Export data CSV (Runs) saves every column of every visible run (time, potential, current, range…), unaffected by the plot settings.

Current ranges

RangeFull scaleResolution (1 count)
0±1.1 mA42 nA
1±110 µA4.2 nA
2±11 µA0.42 nA
3±1.1 µA42 pA
4±110 nA4.2 pA

Points close to full scale are marked with red dots and the run gets a clipped badge. Use a less sensitive range or autorange (CA, LSV and CV).

Analysis

Give runs a role. Blank runs can be subtracted from the others. Standards with a concentration build the calibration line. Samples and tests get a concentration from that line. The value is taken from the plotted curve between x₁ and x₂. For CV, pick the scan and the direction first. LOD = 3.3·s/slope, using the SD of at least three blanks, or the fit's residual SD otherwise.

Plotting results against other things

Below the value selector, Plot it against chooses the x axis of the results plot: concentration (the calibration line), scan rate, SWV frequency, any method setting that differs between the runs (for example conditioning time = deposition time), run number, time of the run, or a custom value you type into the table (pH, temperature, volume added…). The x values can be shown as x, √x, log x or 1/x, and the y as the value, its magnitude, its log, or the position of the peak. Untick Fit to leave a run out of the line. Some classic plots:

  • Peak current vs √(scan rate): straight through the origin for diffusion control (Randles–Sevcik).
  • log |peak current| vs log scan rate: slope 0.5 for diffusion, 1 for an adsorbed species.
  • Peak position vs log scan rate: no shift for a reversible couple, a shift for slow electron transfer (Laviron).
  • Peak position vs pH (custom value): 59 mV/pH means equal numbers of protons and electrons.
  • OCP vs log concentration: 59.2/z mV per decade for a Nernstian electrode.
  • Chronoamperometry: switch the main plot's x to t−½ for a Cottrell plot.

Calibration

On the Board & calibration tab, run the three wizards in order (offsets, potential, resistors) and then Save to EEPROM. Each run stores the calibration it used. Recalc (↻) on a run converts it again with the current constants.

About the name

Mashed Potato is a homage to Oliver Rodríguez and his two potatoes. Soft Potato is his open-source electrochemical simulator and toolkit, and Hard Potato is his Python library for controlling commercial potentiostats (CH Instruments, PalmSens) and automating experiments, developed with Joaquín Rodríguez-López at the University of Illinois. Oliver did his PhD with Guy Denuault at the University of Southampton and now works on digital electrochemistry at the UK's National Physical Laboratory. This project mixes the two: hardware you control from the browser, and a simulated cell (the demo board) to learn and test with. Hence, mashed.

Rodríguez, O. Soft Potato: an open source electrochemical simulator and toolkit. ChemRxiv (2022), doi:10.26434/chemrxiv-2022-4bs3w · Rodríguez, O.; Pence, M. A.; Rodríguez-López, J. Hard Potato: a Python library to control commercial potentiostats and to automate electrochemical experiments. Anal. Chem. 2023, 95, 4840–4845, doi:10.1021/acs.analchem.2c04862

Credits

Hardware derived from IO Rodeo's Rodeostat (CC BY 4.0).