Grove GSR sensor - exact skin resistance calculation?

Hello. I am using a Grove GSR sensor (Grove - GSR Sensor | Seeed Studio Wiki) for my PhD project, and I need to extract the exact skin resistance data in Ohms. Unfortunately, I am having problems understanding the formula provided with the sensor.

Human Resistance = ((1024+2*Serial_Port_Reading)*10000)/(512-Serial_Port_Reading)
Could someone please explain how this formula works? Thank you.

im not exactly sure but 1024 is the maximum analog reading for an 8 bit ADC Analog to Digital Converter so the 512 is half that value so

1024 + (2*sensor)*10,000


512 - sensor

the maximum reading would be 1024 @: 1024+(2*1024)*10,000=20,481,024
divided by 512-1024 = -512

equals -40,000 ?

the maximum reading would be 0000 @: 1024+(2*0000)*10,000= 1024
divided by 512-0000 = 512

equals 2?

anyway that doesnt make any sence to me so i would say just experiment withknown resistnce
and see what you get
the main thing is you want to adjust the circuitry so that the maximum value you want to read will give a sensor value (Serial Port Reading) of 1024 and the lowest value will be 0

i hope that helped CWG

As far as I can understand:

  1. 1024+2×Serial_Port_Reading: This part of the formula is related to the raw reading from the sensor. The sensor output is a value between 0 and 1023, and this part scales and adjusts the reading.
  2. 512−Serial_Port_Reading512−Serial_Port_Reading: This part is used to create a ratio that represents the difference between a mid-range value (512) and the actual sensor reading.
  3. The entire expression is a ratio of the two values obtained in steps 1 and 2.
  4. Multiplying by 10000 is a scaling factor, bringing the result to a suitable range for skin resistance.
  5. The final result is the calculated skin resistance in Ohms.

Thank you fellas.
The product has a variable resistor that is supposed to be calibrated so the default output of the device is half of the bit ratio, in this case - 512. 10,000 does look like a scaling factor, given that human skin resistance is pretty low and should be amplified to get the result in Ohms.

I would just find some known values and plot them and see if it is a linear relationship or what and write the equation that way… then go back and test and see if it is tracking

In my icebreaker wheel project, which delves into understanding human physiological responses, I’m relying on this sensor to provide accurate skin resistance data in Ohms. The formula supplied for this purpose seems to hold a layer of complexity that eludes my comprehension. My concerted efforts to grasp its intricacies, the equation remains shrouded in mystery, leaving me perplexed about its underlying mechanics and how it precisely converts the sensor’s readings into tangible resistance values.

The sensor is not an ohm meter, it is a logic unit an Analog to Digital Converter
as such you have to feed it known data and calibrate it

therefore you have to have some known data
i have no idea what the high and low range of resistance of skin may be
what i do know is the high and low range of an 10 bit analog to digital converter (ADC) is 1023 to 0

so for example you need THREE test resisters lets say 10 Units of Skin Ohms you connect it across the leads and read a value which will be high voltage because the resistance is low
this will give a high analog voltage resulting in a high ADC value… lets say 1000
therefore 10 Units of Skin = 1000 ADC

next you place a second test resistor lets say 1000 Units of Skin Ohms
this will give you a low voltage because the resistance is high
this will give you a low analog voltage resulting in low ADC value… lets say 10
therefore 1000 Units of Skin = 10 ADC

thru linear interpolation you can now assume that 500 ADC = 500 Skin Units
you should verify results by placing the 500 Units of Skin Ohms into the circuit
the result should confirm by returning 500 ADC

If not the relationship is not linear lets say the result is 800 ADC
you will know 500 Skin Units Ohms = 800ADC

the relationship may be exponential and you will have to derive the mathematical formula for Skin Unit Ohms v/s ADC

for scientific research you should test several other points and graph the results to calebrate your equipment

you should also calebrate your instruments every day and know if your supply voltage is not regulated than all values will be rubbish

hope this helps

1 Like

The formula is derived through reverse deduction and cannot accurately determine the exact value of human body resistance. It should be used for reference purposes only.