Lie Detector Polygraph – Project Details

The lie detector circuit is quite complicated and went through many, many modifications until arriving at the final design. The goal was to use all analog, discrete parts. We ended up using digital components only for the display and conversion of the heartrate and for use in packaged chips like the led bar display. Everything else maintains the spirit of the Stanford EE 122 course: Analog Circuit Design.

Read First: Lie Detector Project post


Merits of our project:
– Acquires live, biological data from a human subject which is interpreted real-time by the circuits.
– Contains many circuits studied in class (different classes of op amp amplifier configurations, Schmitt triggers, filters, integrators, comparators)
– Successfully extracts pulse from a very small pass band
– Has circuits that are combinations of the class (amps with offset, push-pull, PWM)
– Has hacked electronics (hair dryer) with custom made interface circuits and sensors
– Has circuits working outside of specs (F-to-V converters)
– Has optical circuits (pulse, blink, CdS)
– Has digital circuits and the A/D circuitry to interface to the rest of the project
– Has improvised components (chest saline solution resistor)
– Has no practical use at all in lie detection … yet; but includes foundational concepts used readily in the medical world and analog electronics
– Fun to work on

Not so good things:
– Some circuits could be further optimized by removing some components
– Mechanical devices (sensors, particularly) very unreliable and zero durability
– Initial slow progress because many components could not be tested without completely building the circuit with sensors
– Not having put anyone on the spot with everything going

Thanks to everyone in EE122, especially to Bob, Greg, James, and Omer.


This is the full schematic that we mounted to a poster board in order to present our project. It is quite large. If you click on it, be prepared for lots of scrolling. The close button is in the lower right!

Full Schematic
Transimpedence amplifier – Current input from photodiode amplified to a negative voltage with 7.2Hz low-pass filter
One-pole low-pass filter – 0.48Hz cutoff
Noninverting amplifier – 101 gain with 7.2 Hz low-pass filter
One-pole low-pass filter – 0.48Hz cutoff
Sallen-Key low-pass filter – 4Hz cutoff, this component also corrects the voltage by providing a 180° phase shift
One-pole low-pass filter – 0.48Hz cutoff
Noninverting amplifier – 69 gain with 7.2 Hz low-pass

Heartbeat Counter
Clock Generation – 138.9Hz clock generated by a 3 inverter ring oscillator circuit
14-stage binary counter – Acts as a divide-by-n on the frequency to make the clock period longer so it triggered the one-shot when we wanted to reset the count value
LM555 – Configured as monostable timer to send a pulse to the reset of 4-bit binary counter in order to reset the count back to zero
4-bit binary counter – Feeds the count up signal from an LT1011 comparator pulling up every time the pulse signal goes above 0.65V which is the threshold value that we used to indicate a heartbeat
4-bit binary counter – Feeds the binary to 7-segment driver to drive the common anode 7-segment LED display

Breathing Monitoring
Comparator – Compares 2.5V against the output of the chest/pot voltage divider
Pulse-Width Modulator (Hair Dryer Circuit)
Square-wave generator – Provides 6.08kHz square waves
Integrator – Produces and amplifies triangle waves from the square wave output to ±10V
Comparator – Passes PWM signal with respiration circuit signal
Push-pull amplifier – Drives gate of IRLZ34N from 0v to 12v
IRLZ34N – Controls current like a switch for the hair-dyer/ping-pong, includes flyback diode and a capacitor to allow enough time for the diode to switch on (did not have Schottky diode)

Blink Detection
Transimpedance amplifier – Current input from photodiode amplified to a positive voltage with 7.2Hz low-pass cutoff
Inverting amplifier – +2.5V to -2.5V adjustable offset and -0.1 to -5.1 adjustable gain

LM2907 – Converted the frequency of the blink, respirator, and pulse circuits to voltages. The values we used were calculated by Excel optimization using equations on the datasheet (with worst case values) and Bob’s suggestions.

Decision Circuit
Pots (Pulse-6k?, Respiration-53.2k?, Blink-8k?) – Calibrated the voltage each of the four channels; the value for the pot for pulse was specifically chosen to rail the Schmitt trigger with a heart rate above 102bpm by itself (our magic “lying” threshold)
SPST switches – Manually selected which signals to factor into the addition in the summing amplifier
Summing amplifier – Combined all of the signals
Inverter – subsequently inverts the signal because it was suggested by TI documentation to not build a noninverting summing amplifier
Schmitt trigger – Goes high when the input voltage exceeds Vu=7.66V. Vl=5.63V (curious fact: only part of the circuit whose component values did not change at all from the first draft of the project)
LEDs – Green LED remained illuminated until the Schmitt trigger sensed 7.66V. Then the voltage switched and the red LED illuminated and the buzzer went off until the Schmitt trigger voltage fell below 5.63V as seen in the figure.

All circuits utilize ±12V from the bench power supply.
The hair drying uses its own power supply due to its extensive draw on current.
Where special ±5V is needed, it is provided by either an LM7805 or an LT1033.Currents:
The +12V rail on the first power supplies 260mA
The -12V rail supplies 130mA.
The power supply for the hair dryer pumps out 520mA at +10V while the hair dryer is on and 80mA at +12V while the dryer is off.

Entire project maximum power dissipation (with the hair dryer on) is 3.12 + 1.56 + 5.2 = 9.88W.

We kept strict color coding to help consistently wire our circuit.
Red: +12V rail
Blue: -12V rail
Green: Human input or datapath
Yellow: Feedback, digital datapaths, and miscellaneous connections
Brown: Voltage divider connections
Violet: +5V rail
Orange: -5V rail
Grey: 0V or ground reference

Pulse LED Bar Graph
Follows pulse waveform as a stack of LEDs driven by an LM3914.

Noninverting amplifier – 6.6 gain
LED bar graph driver – Resistor values used were from datasheet
LED bar graph – Used in common anode configuration

Read more about Lie Detector Polygraph Project on the original post.

Tags: , , , , , , , , , , , ,

3 Responses

  1. BJ says:

    Unfortunately the ‘lie detector’ was for a class and dismantled shortly thereafter. If you are working on your own project, I would suggest targeting heart rate and galvanic skin response if you are doing this on your own–or if you are serious about this area, look into finding a deprecated polygraph machine. It is possible to find older models that use ink that might satisfy your curiosity.


  2. Shobhit Aggarwal says:

    Hello Sir,
    I am student, pursuing B.Tech. from IP univ, Delhi.

    We are working on a project Polygraph machine, almost same as lie detector. We are just trotting your path.

    Can you guide us to make a successful project.
    Thanks n regards,


  3. BJ says:

    Hi Shobhit,

    I would suggest taking a look here:

    Try to divide the schematic into stages–and decide which things you would like to incorporate. The schematic itself lists all the specific parts we used. In your project, you probably won’t be making the complete design. Just build out parts of the design and customize it as per your needs. As for the numbers of things like resistors, we chose values as we built out the design bit by bit , adjusting to get ranges within the limits of each stage. Just start small and build out one stage at a time.

    Good luck!



  • slide
  • slide
  • slide
  • slide