ADPD4100 Respiration Rate Monitoring

The ADPD4100 is listed as a featured product for Respiration Rate Monitoring on the following Analog Devices website:

However, I cannot find much other information about how to perform respiration monitoring with the ADPD4100 on the Analog Devices website or elsewhere. 

Can I please get some guidance?

Are components besides the ADPD4100 needed for respiration rate monitoring? Is the AD5933 (which is also listed as a featured product) needed?

Are there any examples or figures for the circuits / programming needed available?


  • +1
    •  Analog Employees 
    on Jun 18, 2021 12:31 PM

    Hi Brian,

    The ADPD4100 respiration measurement is based on impedance change of the chest during the respiration cycles.  A reference circuit can be found in Figure 5(a) in this article Multiparameter Vital Signs Monitoring Is Easier Than Ever Before | Analog Devices. In this circuit, the excitation is from GPIO2 and excitation current is applied to the body through the RC circuit (GPIO2-10k-1nF-electrodes/body-1nF-10k-GND). IN7 and IN8 form a differential pair to measure the voltage across the two electrodes (body). 

    The components needed for this design are the resistors and capacitors to form a path from the GPIO to ground for applying the excitation to the body.


    Glen B.

  • Thanks for the information, Glen!

    Follow up question - there are many options to select from for GPIO pin output (snippet of options for GPIOOUT1, ADPD4100 datasheet pg 87, shown below). Which of them would be used for respiration rate?

  • +1
    •  Analog Employees 
    on Jun 18, 2021 5:30 PM in reply to MX_bwuerstle

    Hi Brian,

    In the config example below, the GPIO2 outputs the timeslot A LED pulse. The respiration is measured at IN7 and IN8. The circuit I posted previously serves as a reference design. The Rs-Cs-Rs is for ECG measurement. You can either keep it or remove it.


    Glen B.


    Config example:

    #ADPD410x Respiration Measurement Example: GPIO2 stimulation (LED pulses), IN7&IN8 receiving
    0009 0080 # 32MHz trim
    000B 02F2 # 1MHz trim
    000D 0D05 # Sampling rate
    000F 0006 # 1MHz osc
    0010 0200 # Timeslot A
    0020 0002 # Float input 3&4, 5&6, 7&8 during sleep
    0021 000E # IN7/IN8 (impedance) configured as a differential pair
    0022 0083 # gpio0 out invert, gpio2 output normal
    0023 0002 # gpio0 int x
    0024 0030 # GPIO2 = timeslot A LED pulse,
    0014 8000 # FIFO to int x

    # Slots config
    ### Timeslot A - Respiration measurement ###
    ### IN7 and IN8 as differential pair ###
    0100 0000 # Input resistor 500 ohms 0000, 6.25k ohms 0400
    0101 40E6 # 8us preconditioning, No bpf
    0102 7000 # IN7&IN8 differential pair to CH 1
    0103 5000 # precon diff pair to TIA_VREF, no pulsing VCx
    0104 0280 # TIA gain, 200k, Vref = 0.88V
    0105 0000 # LEDs off
    0106 0000 # LEDs off
    0107 0140 # 64 pulses
    0108 0014 # Cont TIA, pulse period 20us
    0109 0310 # LED width, offset
    010A 0004 # Int width
    010B 0180 # Integrator timing offset 12us for ProSim8
    010C 0000 # Mod pulse width, mod offset
    010D 0099 # Chop
    0118 000F # Swap the input polarity to make it positive
    010E 0000
    010F 0000
    0110 0003 # 3 bytes sig

  • This is perfect - thanks, Glen! This really helped.

  • Hello Glen, do you mind explaining the theory of operation a bit here? From what I can tell, the excitation current waveform is a periodic pulse with a width of 3us and period of 20us. How should impedance be accurately extracted from the measured voltage response? Do you have any equations for this? Some background information and an explanation of the theory of operation would be much appreciated!