Repository navigation
Chronoamperometry
Chronoamperometry (CA) applies different potential steps for predefined pulse lengths to an electrochemical cell and measures the resulting cell current. The method implemented by the framework implements chronoamperometry with current averaging over the defined sampling rate. With every sampling rate interval, 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 : sampling rate resolution
- 50 : amount of distinct potential steps
- Potential_Steps
- Pulse_Lengths
- Sampling_Rate
from FreiStat.Methods.run_chronoamperometry import Run_CA
run_CA = Run_CA(logger= Logger,
commnicationMode= CommunicationMode,
wlanSetting= WlanSetting,
mode= Mode
)
strExportPath = run_CA.start(Potential_Steps= [-0.5, 0.0, 1.0],
Pulse_Lengths= [0.5, 2.0, 0.1],
Sampling_Rate = 0.003,
Cycle= 10,
CurrentRange= 45e-6,
FixedWEPotential= True,
MainsFilter= True,
Sinc2_Oversampling= 222,
Sinc3_Oversampling= 2,
EnableOptimizer= True,
LowPerformanceMode= False
)Different settings can be defined, when calling the class for chronoamperometry.
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" :
- Potential_Steps : List of potential steps in V (limited to 50 values)
- Pulse_Lengths : List of pulse lengths in s (need to match length of potential step list)
- Sampling_Rate : Sampling rate 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:
- Sampling rate > 3 ms
- Amount of distinct steps = 50