Dynamic

Cyclic Voltammetry

Cyclic Voltammetry block in the Custom Experiment Builder, with input fields for start bias, first vertex, second vertex, end bias, step height, scan rate, ODR, number of cycles, R drop, autorange, current range, turn limit checks, upper and lower turn value, and dataset name.

The scan always starts at the start bias and then moves to the first and then the second vertex. It does not matter whether the first or second vertex is larger or smaller, and the scan rate is always specified as positive. The number of cycles is a multiple of 0.5.

This CV job can be carried out potentiostatically or galvanostatically. If the potentiostat was previously switched on galvanostatically, then the CV is also executed galvanostatically and the voltage parameters become currents and the current parameters become voltages.

The upper and lower turn values can be set so that the scan direction is not changed at the vertices, but earlier, when a current has been exceeded.

Zahner Lab Experiments

The primitive of the block is used by the following Zahner Lab experiments:

API

The primitive of the block is also available with the following API:

Staircase

Staircase block in the Custom Experiment Builder, with input fields for start bias, end bias, scan rate, step height, ODR, autorange, current range, and dataset name.

This primitive can be used to output a stairs with a defined step height and scan rate between two current or voltage values. The smallest possible step height can be used with height 0.

Zahner Lab Experiments

The primitive of the block is used by the following Zahner Lab experiments:

API

The primitive of the block is also available with the following API:

Ramp - Current Voltage Curve

Ramp - Current Voltage Curve block in the Custom Experiment Builder, with input fields for start bias, end bias, scan rate, ODR, autorange, current range, and dataset name.

This primitive can be used to output a ramp with a defined scan rate between two current or voltage values.

Zahner Lab Experiments

The primitive of the block is used by the following Zahner Lab experiments:

API

The primitive of the block is also available with the following API:

Steady State Staircase

Steady State Staircase block in the Custom Experiment Builder, with input fields for start value, end value, step time, step height, hold time, stability, ODR, autorange, current range, and dataset name.

This primitive can be used to output slower steps, whereby each step has a termination criterion based on a change tolerance. For example, voltage steps can be terminated if the current change falls below a certain value.

Each step runs for at least the specified step time, but can terminate early when the stability criterion is met. The stability criterion is evaluated only after the hold time has elapsed.

Zahner Lab Experiments

The primitive of the block is used by the following Zahner Lab experiments:

API

The primitive of the block is also available with the following API:

Wave - Custom Waveform

Custom Waveform block in the Custom Experiment Builder, with input fields for CSV file, value rate, ODR, current range, and dataset name.

Outputs an arbitrary sequence of current or voltage values at a high, constant rate. This primitive is designed for fast processes, such as pulse sequences, where the dead time of the Ramp and Polarization primitives cannot be neglected.

Use this block when you want to output a waveform that you have generated outside of Zahner Lab, for example with a spreadsheet or a script. For slow processes, use Ramp or Polarization instead, as these primitives support autoranging and are parameterized directly in the block. For the established pulse methods, use the dedicated DPV, NPV or SWV blocks, which already generate the correct waveform.

The values are read from a CSV file and are output as either current or voltage, depending on the mode in which the potentiostat was switched on. Current and voltage cannot be mixed within one wave.

Because the primitive is optimized for fast processes, autoranging is not available: a fixed current range must be selected. See Primitives vs Wave for the background on when to use this primitive.

Parameters

  • CSV file: Path to a CSV file that contains the list of current or voltage values to be output, one after another, at the value rate.

  • Value rate: Rate in 1/s at which the values from the CSV file are output.

  • Repetitions: Number of times that values from the CSV file are repeated consecutively.

  • ODR: Output data rate in 1/s at which the measured data is recorded. The device samples internally at a much higher rate and averages down to the ODR (see Sampling Rate vs Output Data Rate).

  • Current range: Fixed current range, given as the maximum absolute current. As autoranging is disabled, choose a range that covers the expected current.

The CSV file contains one value per line. For example, a small pulse that steps up and back down:

0
0.01
0.02
0.03
0.02
0.01
0

API

The primitive of the block is also available with the following API:

Fast Cycling

Fast Cycling block in the Custom Experiment Builder, with input fields for first step, second step, end value, step time, ODR, number of cycles, an autorange checkbox, current range, a turn limit checks checkbox, upper and lower turn value, and dataset name.

The Polarization primitive is a good fit for slow cycling processes. For charging processes that take place on the order of seconds, however, the dead time between primitives can no longer be ignored. The Fast Cycling primitive is designed for exactly these fast processes. Instead of chaining several separate primitives together, it runs the complete charge/discharge cycling inside a single primitive: the cell is repeatedly driven back and forth, for example between two voltage limits. Because every cycle is handled by this one primitive, there is no dead time between the individual charging and discharging steps.

The cycling can be carried out either potentiostatically or galvanostatically. If the potentiostat was previously switched on galvanostatically, the cycling runs galvanostatically as well: the voltage parameters then become currents, while the current parameters become voltages.

Once the cycling has finished, the end_value parameter can be used to hold the cell at a fixed DC value. Depending on the mode, this is either a voltage or a current.

API

The primitive of the block is also available with the following API: