Skip to content

Chronoamperometry

Mark Jasper edited this page Feb 28, 2022 · 3 revisions

Overview

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).

General Features

  • Current averaging
  • 537 μV : step size resolution
  • 3 ms : sampling rate resolution
  • 50 : amount of distinct potential steps

Cell Potential

  1. Potential_Steps
  2. Pulse_Lengths
  3. Sampling_Rate

Implementing the method

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
                             )

Run_CA

Different settings can be defined, when calling the class for chronoamperometry.

Logger

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.

CommunicationMode

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

WlanSetting

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]

Mode

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

Run_CA.start

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

Clone this wiki locally