Showing results for 
Search instead for 
Did you mean: 

Cyclic Voltammetry (CV) Simulator Written in Microsoft Excel

Cyclic Voltammetry (CV) Simulator Written in Microsoft Excel



The attached file is an updated version of a simple cyclic voltammetry (CV) simulator written in Microsoft Excel.1 The spreadsheet supports up to four chemical species that can undergo up to four redox processes each. The calculations assume that the first process is an electron transfer. Experimental CVs containing up to 10,000 data points in text format can be copied/pasted into the spreadsheet for comparison to the simulation. The spreadsheet can be operated in protected mode or unprotected and modified as needed. The spreadsheet is provided with no guarantee and it may not be suitable for all applications. System requirements: Microsoft Windows 8.1 Office software or later. New version (v_21) uploaded to the ACS Network on 12/5/20.


Potential values


List your formal redox potential (Eo') values in decreasing order if reduction occurs during the forward sweep.2 Reverse this order if oxidation occurs during the forward sweep. Set the Eo' values of unused peaks beyond the switching potential (E2) in the order noted above to exclude them from the model. Set the starting potential (E1) value greater than the switching potential (E2) if reduction occurs during the forward sweep. Reverse this order if oxidation occurs during the forward sweep.


Least-squares optimization


The spreadsheet contains a least-squares optimization macro to help you simulate experimental data. To use the macro, click on a parameter and then press [Ctrl] o. The macro will adjust the selected setting and attempt to reduce the root-mean-square (RMS) error of the simulation. If the optimization is successful, the macro keeps the new setting. If the optimization fails, the macro returns the old setting. The more calculations a parameter affects, the longer the process takes to complete. Note that the macro could generate a local minimum, rather than a true optimization, so visual inspection is necessary to ensure that the simulation has been improved.


Software updates


Simplified the equations associated with the first- and second-order homogeneous reactions to increase the speed of the calculations on 12/5/20. This update will improve the performance of the spreadsheet. But you now have to enter the homogeneous rate constants for each subspecies rather than relying on the earlier homogeneous reactions in the cycle.


Incorporated the adsorption code from v_11 on 11/28/20. To simulate adsorption peaks, click on the Adsorption tab in the spreadsheet. The adsorption peaks are simulated as electrochemically reversible Nernstian systems with Langmuir isotherms for simplicity.2 Attenuation coefficients (a1, a2) were added to the original code in order to approximate chemically irreversible behavior.


Current convention variable added on 7/28/20. Setting the current convention (CC) equal to the letter I (for IUPAC) defines the simulated anodic and cathodic currents as positive and negative respectively. Setting CC equal to the letter P (for Polarographic) reverses these definitions. Note that you may need to adjust the graphics in the spreadsheet if you change the current convention. The species concentration setting was moved to a location above the redox parameters to make room for the new option.


The resolution of the potential axis was increased from 200 to 600 points to better accommodate wide sweep widths on 3/10/20. The total simulation graphic was then brought to the foreground for clarity. This revision tripled the size of the Excel file and caused a slight delay in some of the calculations. The Excel multi-threaded calculation option is now enabled to minimize the delays.


Improved control of the boundary conditions to allow simulations with the first redox potential (Eo') value placed before the starting potential (E1) on 11/15/19. The diffusion profiles will now show what happens in that situation. There was no change in the version number for this minor improvement.


Incorporated separate diffusion coefficients for all subspecies on 9/20/19. Previous versions of this spreadsheet used “common” diffusion coefficients for members of the same redox couple to simplify the calculations. This update provides better control of the diffusion coefficients.


Improved the diffusion profile graphics on 6/4/19. The spreadsheet now automatically recognizes when symmetry in the model generates the same species on the forward and return sweeps and avoids graphing the same species twice.


Added a Total simulation graphic to the Import data page to help users optimize the background parameters on 5/31/18. First, copy/paste your experimental data into the Import data page. Then adjust the Offset parameter to zero the baseline of your CV. Next, click on the Species 1 tab to begin your simulation. You can then return to the Import data page at any time to optimize your Gain and Offset parameters based on your simulation.


Incorporated the Saul’yev RL variant to simulate Fick’s Second Law of Diffusion on 1/8/17. This method can calculate thinner reaction layers than the combined Taylor series that was used previously.3 Reducing the variable xScale reduces the length of the diffusion grids and places the concentration points closer to the working electrode surface. However, using diffusion grids that are too short or long will distort your simulations, so adjust this parameter only as needed.


Separated the equations involving the number of electrons in the rate-determining step from the total number of electrons transferred on 12/22/16. The number of electrons in the rate-determining step (na) now controls the peak width.2 The total number of electrons transferred (n) now controls the total current.


Spreadsheet variables


Several variables from the original spreadsheet were renamed to incorporate new features. The following table describes the variables that are used in the newest version of the spreadsheet. Symbols in the spreadsheet that appear as subscripts in parentheses after a variable indicate which subspecies the variable is operating on.




Value and/or unit(s)


Surface area of the working electrode.



Transfer coefficient for a redox couple.

≈ 0.5 (unitless)

a1, a2

Attenuation coefficients for the reactant and product adsorption currents respectively.

0–1 (unitless) 

b1, b2

Variables related to the relative strength of adsorption for the reactant and product respectively. If b1 = b2 then adsorption peak is centered at Eoˊ. Setting b1 > b2 causes a post-wave. Setting b1 < b2 causes a pre-wave.



Concentration of the bulk solution.



Current convention that will be used for the simulated current.

Letter I or P


Diffusion coefficient for a subspecies.

≈ 1 x 10-5 cm2/s


Starting potential of the CV experiment.



Switching potential of the CV experiment.



Formal potential for a redox couple.



Surface coverage of reactant adsorbed on working electrode surface.

≈ 1 x 10-10 mol/cm2


Amplification factor for the experimental background.

Unitless multiplier


Standard heterogeneous rate constant for an electron transfer.



Homogeneous rate constant for a first-order reaction that removes a subspecies from the electron transfer cycle



Homogeneous rate constant for a second-order reaction that removes a subspecies from the electron transfer cycle



Total number of electrons transferred per subspecies (controls total peak area).



Number of electrons transferred in rate determining step (controls peak width).



Constant added to experimental current.



Sample temperature during experiment.



Scan rate used during the experiment.



Compress or expand x-axes of diffusion grids.

Percentage (%)


Bug report


Minor typo corrected the standard heterogeneous rate constant for the second redox couple on 11/2/20. Bug in the data selection process was corrected on 1/14/20. Bug in the diffusion profile graphics was corrected on 6/26/19. Minor bug in the Import data graphics corrected on 12/31/15. Bug in the concentration calculations of the 4th redox couple oxidized form corrected on 12/8/15. Bug in the time increment calculations was corrected on 11/16/15.


References cited

1. J. H. Brown, J. Chem. Educ., 2016, 93 (7), 1326–1329. DOI: 10.1021/acs.jchemed.6b00052.

2. A. J. Bard, L. R. Faulkner, Electrochemical Methods: Fundamentals and Applications, Wiley: New York, 1980, ISBN: 0-471-05542-5.

3. D. Britz, Digital Simulation in Electrochemistry 3ed ed., Springer: Berlin, 2010, ISBN: 978-3-642-06307-7.