Repository navigation
Normal Pulse Voltammetry
Normal pulse voltammetry (NPV) applies a base potential to an electrochemical cell. From this potential, potential peaks are applied for a defined time to the cell, which increase with each step until a certain stop potential is reached. The cell current is then measured at the end of each potential peak and base potential. The method implemented by the framework implements normal 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
- BaseVoltage
- StartVoltage
- StopVoltage
- DeltaV_Staircase
- Pulse_Lengths
- Sampling_Duration
from FreiStat.Methods.run_normal_pulse_voltammetry import Run_NPV
run_NPV = Run_NPV(logger= Logger,
commnicationMode= CommunicationMode,
wlanSetting= WlanSetting,
mode= Mode
)
strExportPath = run_NPV.start(BaseVoltage= 0.0,
StartVoltage= 0.2,
StopVoltage= 1.2,
DeltaV_Staircase= 0.004,
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 normal 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" :
- BaseVoltage : Base Potential which the FreiStat should apply in V
- StartVoltage : Potential of the first peak in V
- StopVoltage : Potential of the last peak in V
- DeltaV_Staircase : Increment per 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