Introduction: GSR Exposer

Your siblings might have eaten your Thin Mints and they all claim they didn’t, but you are sure one of them did. A real lie detector can cost a lot of money and would not be practical for only situation like this. This DIY arduino polygraph costs less than $25 and is easy to use and you can find out who is telling the truth and who did afterall, eat your Thin Mints.

The project is a DIY arduino polygraph. It measures your galvanic skin response which is an electrodermal response from the skin. Your skin momentarily becomes a better conductor of electricity when either external or internal stimuli occur that are physiologically arousing. There is a piece of tin foil with velcro around it that goes around the fingers of the subject. When the subject gets nervous, their skin will be a better conductor of electricity and the conductivity will be sent to the computer where it will be sent to the Arduino IDE program where the data will be interpreted and sent to the Processing 3 application where it will be graphed. A spike in the graph means a spike in conductivity which means the subject is nervous.

Step 1: Gather Materials

You will need:

Arduino Duemilanove (This should work with other arduino boards as well)

Aluminum foil


Jumper Wires

10k resistor


Step 2: Create the Electrodes

We will be using the aluminum foil to create the electrodes. First, tape an exposed end of a jumper wire to a piece of aluminum foil. Attach the rough side of Velcro, or the hook (approximately the size of the entire strip of foil) over the taped wire. On the other side of the aluminum foil, attach the soft side, or the loop of Velcro. (small piece)

Step 3: Wiring the Circuit Board

Wire the circuit board according to the diagram.

Step 4: Loading the Code Part 1 - Arduino IDE

Download and install the Arduino software onto your computer if you haven't done so. Then, connect your arduino to your computer. Copy this code and upload it to the board:

void setup() {  
void loop() {  

Step 5: Loading the Code Part 2 - Processing

Download and install Processing 3 with the following link: Processing 3

Copy and Paste this code into the Processing application and click run:

import processing.serial.*;
Serial myPort;        // The serial port
int xPos = 1;         // horizontal position of the graph
float inByte = 0;
void setup () { 
 // Open whatever port is the one you're using.  
void draw () {  
// draw the line:  
stroke(127, 34, 255);  
line(xPos, height, xPos, height - inByte); 
if (xPos >= width) {    
xPos = 0;    
else {   
void serialEvent (Serial myPort) {  
String inString = myPort.readStringUntil('\n');  
if (inString != null) {    
inString = trim(inString);    
inByte = float(inString);    println(inByte);    
inByte = map(inByte, 0, 1023, 0, height);  

Step 6: Using the Polygraph

Wrap the electrodes around the fingers. After you click run on the Processing application, a graph should pop up. The height of the graph line represents the conductivity of the skin. The higher the line, the higher the conductivity, the higher likelihood that the subject is lying.