Repository navigation
Differential Pulse Voltammetry
Differential pulse voltammetry (DPV) applies a staircase potential to an electrochemical cell. At the start of new staircase potential, a peak occurs for a defined time. This peak is a constant onset onto the staircase potential. The cell current is then measured at the end of each potential peak and before a new staircase potential is applied. The method implemented by the framework implements differential pulse voltammetry with current averaging over the sampling duration at the end of each applied potential. At the end of every applied potential, the data is sampled an either send as a JSON telegram to the python framework or stored directly on an SD-card, depending on the chosen operation mode (see Installation).
- Current averaging
- 537 μV : step size resolution
- 3 ms : potential step resolution
- StartVoltage
- StopVoltage
- DeltaV_Staircase
- DeltaV_Peak
- Pulse_Lengths
- Sampling_Duration
from FreiStat.Methods.run_differential_pulse_voltammetry import Run_DPV
run_DPV = Run_DPV(logger= Logger,
commnicationMode= CommunicationMode,
wlanSetting= WlanSetting,
mode= Mode
)
strExportPath = run_DPV.start(StartVoltage= 0.2,
StopVoltage= 1.2,
DeltaV_Staircase= 0.002,
DeltaV_Peak = 0.04,
Pulse_Lengths= [0.04, 0.04],
Sampling_Duration= 0.005,
Cycle= 10,
CurrentRange= 90e-6,
FixedWEPotential= True,
MainsFilter= False,
Sinc2_Oversampling= 44,
Sinc3_Oversampling= 4,
EnableOptimizer= True,
LowPerformanceMode= False
)Different settings can be defined, when calling the class for differential pulse voltammetry.
The logger allows to access the internal logging structure of the framework, to redirect the logging output to a custom location.
The logger is thereby an object of the type logging.logger.
The communication mode allows the user to define if the FreiStat should be operated in FreiStat-USB or FreiStat-WiFi mode (FreiStat-Standalone omitted, since it doesn't require the python framework).
Defined "Keywords" :
- FREISTAT_SERIAL : FreiStat-USB mode
- FREISTAT_WLAN : FreiStat-WiFi mode
The Wlan or WiFi setting allows the user to define the connection parameters between the FreiStat and the Python framework (see Communication). As shown below, the data is defined as an array of strings and integers with 4 entries. If this variable is not defined (e.g., for the USB-mode), default values are used as placeholders.
Structure:
wlanSetting = [FREISTAT_UDP_SERVER_IP,
FREISTAT_UDP_SERVER_PORT,
FREISTAT_UDP_CLIENT_IP,
FREISTAT_UDP_CLIENT_PORT]- FREISTAT_UDP_SERVER_IP : IP of the device the Python Framework is running on
- FREISTAT_UDP_SERVER_PORT : Port of the device the Python Framework is running on
- FREISTAT_UDP_CLIENT_IP : IP of the FreiStat
- FREISTAT_UDP_CLIENT_PORT : Port of the FreiStat
Example:
wlanSetting = ["192.168.0.101",
20000,
"192.168.0.201",
20001]By defining the Mode variable, the user can use the Python framework either as a standalone software or as a backend (Important! See implementation example)
Defined "Keywords" :
- FREISTAT_STANDALONE: The Python Framework is used as a standalone software
- FREISTAT_BACKEND: The Python Framework is used as a backend
After defining the class parameters, the actual experiment parameters need to be defined.
Defined "Parameters" :
- StartVoltage : Potential of the first peak in V
- StopVoltage : Potential of the last peak in V
- DeltaV_Staircase : Increment per peak in V
- DeltaV_Peak : Size of the peak in V
- Pulse_Lengths [Tau' Tau] : Pulse lengths in s
- Sampling_Duration : Time defining how long data should be sampled at the end of each step in s.
- Cycle : Amount of cycles
- CurrentRange : Current range at which the potentiostat should operate in A
- FixedWEPotential : Use a fixed potential for the working electrode
- MainsFilter : Activate the 50/ 60 Hz mains filter
- Sinc2_Oversampling : Oversampling rate for Sinc2
- Sinc3_Oversampling : Oversampling rate for Sinc3
- EnableOptimizer : Enable the optimizer which tunes the parameters
- LowPerformanceMode : Disabling the plotting of the data
Return value:
- strExportPath : OS path as string
Limits of operation:
- Tau and Tau' > 3 ms
- Sinc2_Oversampling * Sinc3_Oversampling / 800 000 Hz < Sampling_Duration