Step by Step Guide

The Custom Experiment Builder is a visual programming interface that allows you to create sophisticated electrochemical experiments without traditional programming knowledge. Using drag-and-drop blocks from the toolbar on the left, you can assemble your own custom experiments by combining individual measurement and control blocks in a logical sequence.

This step-by-step guide demonstrates how to build a practical experiment that performs CV measurements at different scan rates at the OCV/OCP. Through this example, you’ll learn the fundamental workflow of creating custom experiments: from measuring initial conditions, through configuring measurements, to organizing and naming your data.

This guide provides an overview with links to detailed documentation for each block. For workspace navigation, keyboard shortcuts, and other helpful features, see the Tips & Tricks section. You can also open documentation on the blocks via the “Help” context menu of the Custom Experiment Builder.

Start an Experiment at Open Circuit Voltage

First, we use the Open Circuit Voltage Determination block to measure the OCV. The result is stored in a variable called OCV, and a message box displays the measured value to the user.

Open Circuit Voltage Determination block storing its result in the OCV variable, followed by a message box that displays the measured OCV value to the user.

The following image shows the message box displaying the measured OCV value.

Message box in Zahner Lab showing the open circuit voltage value measured by the Open Circuit Voltage Determination block.

The message box can be removed since it was only used for demonstration purposes.

Before taking any measurements, the potentiostat must be explicitly switched on. This is done using the Switch On block, with the OCV variable setting the bias voltage.

After switching on the potentiostat, we use a Polarization block to precondition the sample at the OCV for 10 seconds.

Finally, the potentiostat is switched off.

Block sequence that switches on the potentiostat at the OCV bias, preconditions the sample with a 10 second Polarization block, and then switches the potentiostat off.

Perform a Single Cyclic Voltammetry Measurement

Next, we add a Cyclic Voltammetry block to perform a single CV measurement. The Open Circuit Voltage Determination block can be collapsed using the context menu for a cleaner layout.

The OCV variable sets both the start and end bias voltages. Two arithmetic blocks (one for addition and one for subtraction) from the Math category set the vertex voltages to OCV + 1 V and OCV - 1 V. The scan rate is set to 0.1 V/s.

A single Cyclic Voltammetry block using the OCV variable for the start and end voltages, math blocks setting the vertex voltages to OCV plus 1 V and OCV minus 1 V, and a scan rate of 0.1 V/s.

Perform Multiple Cyclic Voltammetry Measurements

To perform multiple CV measurements with different scan rates, we add a second CV block below the first one. However, you can see that the workspace quickly becomes cluttered when adding multiple blocks of the same type.

Two stacked Cyclic Voltammetry blocks, illustrating how the workspace quickly becomes cluttered when the same block type is duplicated for different scan rates.

To solve this problem, we add a for-each loop that iterates over a list of scan rates. The list contains scan rates of 0.1 V/s, 0.5 V/s, and 2 V/s.

This significantly reduces block duplication. Additionally, you only need to edit one CV block when changing parameters like the vertex voltages.

The following screenshot shows Zahner Lab after executing the experiment with the for-each loop. In the Project widget on the left, you can see three Cyclic Voltammetry datasets that were created during experiment execution. However, without opening each dataset, you can’t tell which scan rate was used (they’re sorted chronologically).

Zahner Lab after running the experiment with a for-each loop over the scan rates, with the Project widget on the left showing the three resulting Cyclic Voltammetry datasets sorted chronologically.

Extend CV with Custom Dataset Naming

To make the generated data more transparent, you can assign custom dataset names that include, for example, the scan rate, as shown in the following example in the Project widget on the left.

Zahner Lab Project widget on the left showing the Cyclic Voltammetry datasets with custom names that include the scan rate, such as "CV_0.10", "CV_0.50", and "CV_2.00".

This makes it easy to map the datasets to the experiments and blocks.

Since the scan rate is a floating-point value, embedding it directly can lead to inconsistent names. Here, the Format Number block helps you control precision and padding, so that names like “CV_0.10”, “CV_0.50”, and “CV_2.00” stay tidy and sort correctly in the project widget.

Using the context menu in the project widget, you can export all datasets in a folder or individual datasets. It is also possible to drag and drop the datasets into the file system explorer to a desired location or directly into Zahner Analysis for analysis.

Summary

This guide has demonstrated the most commonly used features and the basic steps involved in creating a custom experiment using the Custom Experiment Builder:

As shown in the following image, you can also combine CV with EIS or other measurement techniques.

Extended custom experiment that combines the multi-scan-rate cyclic voltammetry with an additional EIS measurement, showing the combined datasets in the Zahner Lab Project widget.

This guide provides you with a solid foundation for creating your own custom experiments using the Custom Experiment Builder. For more complex experiments, check out the templates and examples, and visit the Tips & Tricks section for additional workspace features.