Electrodermal Activity Using Arduino

I have written before that Arduino could be considered a valid platform for data collection. In this article I will describe one such application, namely collecting electrodermal activity (EDA) data.

The general idea behind collecting this type of data is based on the physiological reaction of increased sweat during states of arousal or excitation, leading to increased conductivity of the skin. This increased conductivity can be measured by applying some current to the skin from one electrode and measuring how much passes through to another electrode.

Using the “Graph” example sketch from the Arduino software and a couple of components, it is not that hard to get data from the Arduino and plot it on the screen. As seen in Figure 1 below, all we need is a resistor connected to analog pin A0 and ground pin (here I used a 10k Ohm resistor). We also need two electrodes, one to the same analog pin as the resistor and one to the 5 volts pin. I have used dry surface Ag/AgCl electrodes, but you could use anything at hand. Check out this article for an idea of how to use tin-foil to make your electrodes.

Figure 1: Photo of the Arduino Uno and electrodes used for this project. Connections are highlighted with white bars in the top-left corner.

The limitation of this device (and, admittedly, of my knowledge in electronics) is measuring the actual conductance of the skin instead of how much voltage gets through to the analog pin.

Now, to be able to use this device for data collection, we need to save the data somewhere for later analysis. For this i have written a very simple python script that reads the data sent by the Arduino over serial and saves it as a CSV file (comma-separated values). You can see a plot of the data I collected in Figure 2 below.

Figure 2: Line plot of the electrodermal activity data (arbitrary unit) over time (ms). Red and blue lines indicate peaks onset and offset, respectively.

Stay tuned as I will make a shiny app to process this data to get some useful information out of this data.

If you have any questions or comments on this projects, or if you would like to use such a solution in your project, feel free to contact me through this form or on social media.

Disclaimer: Please note that this project is not intended for medical use. It is for research purposes only and cannot be used to take serious decisions. Use at your own risk.