Body Composition Using BIA

17,525

26

19

Introduction: Body Composition Using BIA

Body impedance analysis is a quick and relatively simple way to determine body fat content. The circuit passes a small amount of current through the body and detects the impedance. Lean tissue is mostly water and has a much lower impedance than fatty tissue. Equations have been developed based on empirical data to calculate fat free mass (FFM) and body fat percentage based on the measured impedance and the person's height and weight. We used an Arduino to read the impedance and do the calculations for percent body fat. Enjoy!

Step 1: What You Need

1 x AD5933

1 x capacitor

10 x resistors

3 x TL072 op amps

1 x Instrumentation amplifier

1 x Arduino Uno

4 x Electrodes

Plenty of wires


What we used:

Resistors:

2 x 1 MOhm

1 x 100 kOhm

4 x 1 kOhm

2 x 10 kOhm

Capacitor: 1 x 10 nF

We used a INA118P for the instrumentation amplifier

Step 2: Circuit Diagram

The circuit is composed of 5 major components:

1. AD5933

2. High Pass Filter with voltage follower

3. Transconductance Amplifier

4. Instrumentation Amplifier

5. Arduino Uno

These parts will be discussed individually next.

Step 3: High Pass Filter

We used a 10 nF capacitor and 100 kOhm resistor to make the high pass filter. The AD5933 supplies an input voltage of 2V. The code programs it to perform a frequency sweep from 50 kHz to 50.5 kHz. The filter is intended to attenuate noise at frequencies below the range of the sweep. A voltage follower was included to prevent the current setting resistor from loading the filter.

Step 4: Transconductance Stage

This stage begins with the current setting resistor. We used a 1 MOhm resistor to obtain a constant current of 2 uA. It is important to pick a large enough resistor to set the current low enough to be safe (this current will be flowing through the body). Another 1 MOhm resistor is connected as a feedback resistor that protects the body from excess current from the output of the op amp. One current electrode is connected to the negative terminal of the op amp and the other is connected to the output of the op amp. The detection electrodes (electrodes 3 and 4) then feed into the two input terminals of the instrumentation amplifier.

Step 5: Instrumentation Amplifier

We used a INA 118P amplifier and a 100 kOhm resistor for Rg. Since the AD5933 can only read positive voltages, we input 2.5V into the Vref terminal. This was accomplished with a voltage divider using the 5V source of the arduino uno and two 1 kOhm resistors. A 1 kOhm resistor is connected between the output of the INA 118P and the Vin port of the AD5933. Another 1 kOhm resistor is connected between the Vin port and the RFB port.

Step 6: AD5933

The AD5933 outputs a 2V signal from Vout and is coded to sweep from 50 kHz to 50.5 kHz. It takes the signal back in through Vin and RFB and then outputs to the Arduino. 10 kOhm pull up resistors are required between the AD5933 and the Arduino.

Step 7: Calibration

The AD5933 needs to calibrate the gain factor before use. The process can be found in the AD5933 datasheet. In short, place a known resistance in place of the body. Record the magnitude given by the Arduino. The gain factor equals (1/Resistance)/Magnitude. Then unknown impedances can be calculated by 1/(GF*Magnitude).

Step 8: Arduino

The Arduino takes the resistance and conductance readings from the AD5933 and calculates impedance, fat free mass, and percent body fat.

The subjects height and weight should be entered into the code for a proper reading.

Here is our code:

Step 9: Electrode Placement

Current electrodes = Electrodes 1 and 2

Voltage electrodes = Electrodes 3 and 4

Step 10: Results

The first picture is for a 5'0" (154 cm) tall and 118 lbs person.

The second is a 5'8" (172 cm) tall and 225 lbs person.

Step 11: More Pictures of the Circuit

Have Fun!

Be the First to Share

    Recommendations

    • Pi Day Speed Challenge

      Pi Day Speed Challenge
    • Trash to Treasure Contest

      Trash to Treasure Contest
    • Microcontroller Contest

      Microcontroller Contest

    19 Comments

    0
    chris.nasseh
    chris.nasseh

    3 months ago

    Using an AD5934 instead of AD5933, the serial monitor isn't printing anything. Any idea on how to fix that please?

    0
    mpentland07
    mpentland07

    Question 1 year ago

    My serial monitor isn't printing anything? Is the circuit diagram correct?

    0
    angelotronics
    angelotronics

    1 year ago

    Hi, but is it possible to create a circuit of bioresonance circuit with the same circuit?

    0
    MatheusB11
    MatheusB11

    2 years ago

    For those who had the same issue that i had (after everything connected no data is printed in the serial monitor), all you have to do is take the TL072 from the 5V devider, and connect the 2.5V directly to the REF pin on INA118P. Then you should be fine, i think... good luck!

    0
    dslpb
    dslpb

    Reply 2 years ago

    Hi Matheus, did that work for you???

    0
    micheledellaguardia
    micheledellaguardia

    Reply 2 years ago

    Hi, I wasn't able to get any data in the serial monitor even after that change. Does anyone has an update diagram with updated connections? I also had to use TL074P and INA128P because of I wasn't able to find TL072 and INA118P. Thanks a lot

    0
    RiryC
    RiryC

    Reply 2 years ago

    Can you help me? I Need a link for the AD5933.

    0
    MESHAAL
    MESHAAL

    5 years ago

    Would you please explain me why you define button 2 in code .

    I'm trying to do the same project but the code is not showing anything on serial monitor . Do I missing somthing ?

    0
    16pec016
    16pec016

    Reply 2 years ago

    Brother, I am trying to interface arduino uno board with ad5933 using I2C protocol. I am using the same program and facing the same problem as you. Please help.

    0
    ganeshbandi
    ganeshbandi

    Reply 2 years ago

    Brother ,can you share the ad5933 and ina118 amplifier link i will buy it....

    1
    ganeshbandi
    ganeshbandi

    2 years ago

    hello, can you share the link of ad5933 and ina118 amplifier please help me....

    thanks in advance

    0
    MatheusB52
    MatheusB52

    3 years ago

    Hi dude, where can i find the Chip AD5933 (which already has the solder like yours) i searched and only found a super expensive board, please any links? thanks a lot

    0
    juliasus92
    juliasus92

    4 years ago

    Well this looks really good,
    I have just one question
    Can we calculate Heart rate from the same setup and code?

    0
    bam_project
    bam_project

    5 years ago

    What sort of electrodes are you using?

    0
    bashid
    bashid

    5 years ago

    "

    A 1 k Ohm resistor is connected between the output of the INA 118P and the Vin port of the AD5933"

    "

    What is the reason?

    hello , good project :) . Can I use a mega instead of one ? what changes do I have to do in the code ?

    0
    amberrayh
    amberrayh

    5 years ago on Introduction

    This is cool. Thanks for sharing! Probably much more accurate than using height v. weight or calipers :)