Post Go back to editing

Using 2 or 4 electrodes for 4-Wire, Bio-Isolated Impedance?

I beg an excuse for my stupid question.

It is about  4-Wire, Bio-Isolated Impedance Measurement Applications (described in AN-1302).

We want to build into a wrist held device this type of measurement. The SW is mostly ready but the HW is still open because is not clear (for stupid me) how to use and how to place these 4 electrodes

Let's have look at the following picture:

There are 2 opinions:

1) The 4 wires are used to eliminate the influence on the voltage drop in wires on the measurement results. Then UNKNOWN Z is the human body. That means for a wrist held device that only 2 (two) electrodes are required, and because it we would like to use Bio-Isolated Impedance the external capacitors (Ciso) and the OpAmp AD8226 are required. It is also unclear about Raccess resistors - should they be or not.

2) The 4 wires are connected to 4 (four) electrodes in contact with human skin. In this case the positioning of electrodes might be important. Before posting this question I did some Googling. It is obvious, I could not find the answer, but I saw implementations where the electrodes are in one line and the excitation electrodes are at the both ends while the measurement electrodes are placed in between.

In our setup the 4 electrodes are in the corners of a square with a side approx 12mm.

I have tried to calibrate the sensor using different resistors and 4 wires connected to 2 electrodes. This was working perfect. I tried to connect myself instead of UNKNOWN Z and got a magnitude between 20-40kOhm.

Then I attached the board with 4 electrodes on it to my skin and the magnitude in this case was in the range or below 1kOhm.

Now I am puzzled what to do? What is the right way to use the ADuMC350 for 4-wire Bio-Isolated Impedance Measurement Application???

We spent a lot of time trying to find the correct answer and now we are completely out of time,  i.e. as usual - having an answer is more than urgent! Help!!!

Best Regards,


  • Hi,

    This Ezone link will help answer your questions above: Bioimpedance Measurement Using ADuCM350 

    1) Raccess Resistor represents the impedance of your cable/wire connection to Zunknown. It doesn't have to be installed on board.

    2) I did not quite get the question here, but I'd say that the 1K resistor connected on your skin is correct. You can follow the instructions on the link above for Bioimpedance Measurement. There is a user code and document attached on the link on using the BIO3Z board


  • Hi Mark,


    First of all – thank you very much for the replay!

    It is such a tough time for me so any helping hand is welcome!


    Let me explain the situation.

    There is a prove of concept project for a device connected via BT to a smartphone.

    The device is full with sensors, incl. PPG, ECG, Bio-Imp, Accelerometer etc.

    I have to make the FW for this embedded platform, another colleague – to investigate the sensors and a third person has to make the smartphone application.

    I was almost ready with the initial version of the FW when it came to the Bio-Impedance sensor. First of all, I had to connect it to the system using the SPI bus. Thanks to the examples provided by Analog Devices I managed it relatively fast.


    The next problem was the measurement itself.

    Initially I was not aware that it is required to stream data on a certain rate > 20Hz because the purpose of the bio-impedance sensor in our case is to detect the deviations due to the blood flow (it has another scientific name but I do not know it by heart).


    I had to learn more about the ADuCM350, sequencer etc to tune the measuring sequence and here you can help me with an advice:

    In my implementation I use a part of the script from the AD demo doing only the current and voltage measurement, but recently I came upon example from Engineering Zone (for example, the one you mentioned below) and found that in this examples the sequence includes also the calibration steps (the gray area blow is more or less the part used to do repeating measurements in my code)


    /* Sequence for 4-Wire Bio-Impedance measurement, performs 2 DFTs:  */
    /*     TIA (Current) and AN_A (Voltage)                               */
    uint32_t seq_afe_acmeasBioZ_4wire[] = {
        0x001D001A,   /* Safety word: bits 31:16 = command count, bits 7:0 = CRC                */
        0x84005818,   /* AFE_FIFO_CFG: DATA_FIFO_SOURCE_SEL = 10                                */
        0x8A000034,   /* AFE_WG_CFG: TYPE_SEL = 10                                              */
        0x98000000,   /* AFE_WG_CFG: SINE_FCW = 0 (placeholder, user programmable)              */
        0x9E000000,   /* AFE_WG_AMPLITUDE: SINE_AMPLITUDE = 0 (placeholder, user programmable)  */
        0x88000F00,   /* DAC_CFG: DAC_ATTEN_EN = 0                                              */
        0xA0000002,   /* AFE_ADC_CFG: MUX_SEL = 00010, GAIN_OFFS_SEL = 00 */
        /* RCAL */
        0x86008811,   /* DMUX_STATE = 1, PMUX_STATE = 1, NMUX_STATE = 8, TMUX_STATE = 8 */
        0x00000640,   /* Wait 100us */
        0x80024EF0,   /* AFE_CFG: WAVEGEN_EN = 1 */
        0x00000C80,   /* Wait 200us */
        0x8002CFF0,   /* AFE_CFG: ADC_CONV_EN = 1, DFT_EN = 1 */
        0x00032340,   /* Wait 13ms */
        0x80024EF0,   /* AFE_CFG: ADC_CONV_EN = 0, DFT_EN = 0 */
        /* TIA  */
        0x86007788,   /* DMUX_STATE = 8, PMUX_STATE = 8, NMUX_STATE = 7, TMUX_STATE = 7         */
        0x00000640,   /* Wait 100us */
        //0x0080E800,   /* Wait 528ms.                                                            */
                      /* This is the worst case settling time:                                  */
                      /* Rcm=10M, Ciso=22nF(20%tol) => settling time = 2*RC = 528 ms            */
                      /* This settling time is only required the first time the switches are    */
                      /* closed.                                                                */
        0x80024EF0,   /* AFE_CFG: WAVEGEN_EN = 1                                                */
        0x00000C80,   /* Wait 200us                                                             */
        0x8002CFF0,   /* AFE_CFG: ADC_CONV_EN = 1, DFT_EN = 1                                   */
        0x00032340,   /* Wait 13ms ( -148us to stop at midscale)                                */
        0x80020EF0,   /* AFE_CFG: ADC_CONV_EN = 0, DFT_EN = 0                                   */
        /* AN_A */
        0xA0000208,   /* AFE_ADC_CFG: AN_A, Use GAIN and OFFSET AUX                             */
        0x00000640,   /* Wait 100us                                                             */
        0x80024EF0,   /* AFE_CFG: WAVEGEN_EN = 1                                                */
        0x00000C80,   /* Wait 200us                                                             */
        0x8002CFF0,   /* AFE_CFG: ADC_CONV_EN = 1, DFT_EN = 1                                   */
        0x00032340,   /* Wait 13ms                                                              */
        0x80020EF0,   /* AFE_CFG: WAVEGEN_EN, ADC_CONV_EN = 0, DFT_EN = 0                       */
        0x86000000,   /* DMUX_STATE = 0, PMUX_STATE = 0, NMUX_STATE = 0, TMUX_STATE = 0         */
        0x82000002,   /* AFE_SEQ_CFG: SEQ_EN = 0                                                */


    What would be your advice – repeat the whole sequence (including toggling of the AFE switch) or set the switch and keep toggling the ADC mux?


    Anyhow, investing more and more time in understanding bio-Impedance measurements and in using ADuCM350 in particular, I was able to go through the simulation testing steps using  resistors and capacitors. It was working perfectly and here we came to the next problem, described in question about using 2 or 4 wires and about their location.




    1) E1- left index finger, E4 – left thumb, E2 – right index, E3 – right thumb   - Magnitude was approx.. 2.5k  after >10sec

    2) E4- left index finger, E3 – left thumb, E1 – right index, E2 – right thumb   - Magnitude was approx.. 2.5k  after >10sec

    3) Nothing connected – 256 Ohm (????)

    4) All 4 electrodes touching the skin on wrist – 20 - 30 Ohm.

    5) Connect E1&E2 and E3&E4, and using 2 wires connect to 2 electrodes (paper clips) fixed to the wrist


    Unfortunately, we are most interested in the case #4


    What am I doing wrong?

    I am going to repeat the measurements with the EVAL board to be sure it is not HW implementation error but I do not have the 4 Wire Bio Board with the USB connector so I am not sur how to connect it to my wrist.



    Thank you for your help!

    Have a nice day



  • Hi,

    On your first question: "What would be your advice – repeat the whole sequence (including toggling of the AFE switch) or set the switch and keep toggling the ADC mux?", you can do two sequences, one is for the calibration routine which you'll only call once and the other is for the measurement routine where you'll toggle between adc channels. 

    The 4-wire Bio-Isolated Impedance is designed to connect E1 to E2, and E3 to E4, more like the one's you did on your scenario 5. E1 and E4 will measure the current through Zunknown using the TIA while E2 and E3 will measure the voltage across Zunknown. I'm not sure what will happen on your scenario 4 where leads are separated from each other.


  • Hi Mark,


    Thank you again for answering my questions!

    Finally I understood (more or less) what does the ADuCM350 chip and what is the main reason for our problem - the geometry of our setup!


    As I said the target is a wrist held device which could detect the heart beat in the bio-impedance measurements. The electrodes are small (4x4mm) and the distance between the (centers of) electrodes  is also small (15 mm  square).

    Due to the small distance between the electrodes the resistance is also small (in the range of 100 Ohm or lower) and the resolution, in number of ADC steps, in far too low.

    I understood why, when I had connected electrodes in pairs, I got a higher resistance / magnitude! When using 2 electrodes the Raccess is not excluded thus the magnitude value included also 2xRaccess.


    Last two days I spent thinking how to solve the problem.  

    There are almost no options:

    1) Decrease RCAL from 1kOhm to 100 Ohm to have it in the range of the Zunknown?

    2) Increase the gain of  the AD8226 OpAmp to fit better to the ADC input range? But there are some  bandwidth limitation so the gain and/or the excitation frequency has to be limited? Use two OpAmps?

    3) Decrease somehow the Raccess to increase the voltage thus the current on Zuknown?

    4) Use 4-wires not Bio-Isolated ?? I do not see why it might be better in our case but just to mention it


    What would be your approach? Is there a "magical solution"?


    Best Regards,
  • Hi,

    If you're using 4wire measurement, Raccess won't be included in the measurement, only the Zunknown. 

    You should adjust your RCAL to match the minimum expected Zunknown on your system. Adjusting RCAL would also mean adjusting the RTIA. Refer to AN-1271 for calculations.


  • This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.

    Thank you,
    EZ Admin