4-point resistance measurements

This experiment report shall present 4-point resistance measurements performed on a proton membrane sample, as well as a detailed explanation on how to use the created scripts to perform measurements in similar configuration where the sourcemeter Keithley 2600 Series and the climate chamber espec SH-222 is used. The link leads to a page containing more information on the instruments, as well as some operating instructions, and required libraries. The python script used in this experiment will be linked in the document, and presented in a scrollable text element as well. Some general information on how to get started with python can be found here.

Measurement process

The general idea behind a 4-point resistance measurement is to circumvent the unknown contact resistance contribution to the resistance measurement. A 4-point resistance measurement supplies a current usually via the outer contacts and just measures the voltage drop between the inner 2 contacts. This greatly improves measurement confidence and accuracy as contact losses don't skew the measurement, as voltage drop gets measured for whichever current ends up passing through the sample.

Different behaviour is expected for thin film samples (sample thickness much smaller than the measured distance) and thick film samples (distance between measuring probes smaller than sample thickness). In both cases the current spreads radially around the contact points, whereby it drops with a factor of r² in thicker samples, and in thin films with just 1/rt, where t is the film thickness and should be constant. More detailed information on the 4-point resistance measurement method can be found here.

Before running the scripts, make sure that all the required libraries are available for the script to find when importing. Make sure that the sourcemeter and climate chamber are properly connected and can be found by the PC (check if IP addresses are correct). In case eLab is used, the imported eLab library needs to be modified with user specific information. If eLab is not used, it is recommended to comment out or delete all lines referencing to eLab to avoid uneccesary error prompts. It is expected that the climate chamber will take a long time to reach any specified temperature, and therefore it is recommended to try to get everything else working first (just set climate chamber to room temp, and give large tolerances for temp. and humidity).

This experiment is dealing with measuring the electrical resistance of a proton-exchange membrane of a fuel cell. Proton membranes are used in fuel cells, where they are intended to prevent electrons from passing through, while allowing for proton exchange. Since the mobile electrons are traditionally the current carriers, we would expect to see the membrane act as a resistor. However, current can be carried through other mechanisms as well, and with careful consideration, important properties could be inferred just from simple but accurate resistance measurements.


By default, the script will for each temperature/humidity point save the resistance measurements in .csv format, and a graph of it in as a pdf. An example is shown in the csv and resulting graph, as seen below. This one is taken at 40 ℃ and 50% humidity.

As seen on the graph above, 2-wire resistance measurements are performed as well. The constant voltage resistance measurement is an interesting option to have, but was disabled in this case. It's respective section in the script is commented and can be made operational with a few added lines. The script also can be easily modified to perform current/voltage sweeps instead of measuring at the same point every time. To do this, just modify the current/voltage definitions to depend on the looping variable "i".

As is, multiple measuremtns are done at the same temperature and humidity combination to get some statical confidence in the data. Therefore, to observe a trend, a plot of average measured resistances for each tuple is made. In our case, we've managed to get a measurement run from 35 to 70 ℃ and back in steps of 5 ℃.


As seen in the graph above, the proton membrane showed a slight temperature dependency. There is also a clearly visible hysteresis, possibly caused by temperature of the sample lagging behind the climate chamber. In general, fuel cells, and hence proton membranes as well, operate at higher temperatures (80 ℃ and above). By naive logic, the charge carrier mobility is also expected to increase, and for an initially highly resistive material, an improved conductivity is expected. We've unfortunately not been able to produce conclusive results due to only producing one set of measurements across a temperature sweep. There were multiple sources of error and suspicion that would ideally be improved upon, which would then lead to better data with more certainty.

Ironically, a source of problems for this measurement is the contact quality. Using a 4-wire measurement allows us to circumvent the issue of not knowning the contact resistances, but this time there is the issue of material integrity. Namely, the membrane is very brittle and falls apart easily. Since the membrane is very thin, it is difficult to know that there is no tears or cracks in the material that may skew the measurement at those specific contacts. Additionaly, graphene and similar carbon based materials were found to quickly deposit on the contact used for measurements, and cause extremely large resistance offsets. Therefore, it is advisable to keep in mind that the contact probes may get compromised, and that they may require to be sanded, or cleaned in another way.

Ideas for improvements and future experiments