Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

IWR1443BOOST: Downloading the data using vital Sign demo

Part Number: IWR1443BOOST
Other Parts Discussed in Thread: IWR1443, IWR6843AOP, , IWR6843, AWR1642BOOST, AWR1642, AWR6843AOP

Hello,

I need to gather vital signs data for a student project involving the IWR1443 and DCA1000 evms. I have a couple of inquiries:

1. Can the data be downloaded while the vital sign lab is running?

2. May I have the code of TI for the vital sign recognition?

3. What are the correct settings for StaticConfig, DataConfig, and SensorConfig? I planned to take vital signs data for 2-5 minutes.

If any of the TI engineers could help me with the above questions, I would be grateful.

Best Regards

Arjun

  • Hi Arjun,

    Thank you for your interest in vital signs detection with mmWave radar. Can you please tell me which vital signs lab you are currently using?

    Thank you,

    Angie 

  • Hi Angie,

    I wanted to use the vital sign lab version 1.4. 

    Could you please recommend to me any appropriate vital sign lab that might assist me to achieve the aforementioned goal?

    I would appreciate it if you could provide me with a detailed protocol for using the vital sign lab rather than a brief procedure.

    Regards

    Arjun

  • Hi Angie,

    I am yet to receive your response to the above queries in this post.

    Regards

    Arjun

  • Hi Arjun,

    My apologies, this thread was temporarily improperly classified. If you ever go 24 hrs + without a reply feel free to reply on a thread to ping the thread owner as you did here. 

    If you are using the IWR1443 I would recommend exploring our 14xx Vital Signs lab in our industrial toolbox here. This lab has a support guide, developers guide and user's guide to guide you through the process. It also features source code for the firmware and the GUI if you download the lab.

    Our latest vital signs lab uses the IWR6843AOP device and is titled Vital Signs with People Tracking.

    Thanks,

    Angie

  • Hi Angie,

    Which version of the vital sign lab demo would be most suitable for the IWR1443BOOST?.

    May I use the latest vital signs lab that uses IWR6843AOP with IWR1443BOOST?

    Regards

    Arjun

  • Hi Arjun,

    The latest vital signs demo suitable for the IWR1443Boost would be the 14xx Vital Signs lab.

    Thank you,

    Angie

  • Hi Arjun,

    I notice you are making multiple threads about the same topic, vital signs with our mmwave devices using the DCA1000. Can you please consolidate all these threads into one thread on the topic? 

    Please see our e2e guidelines: https://e2e.ti.com/support/site-support-group/site-support/f/site-support-forum/693054/faq-what-are-the-guidelines-for-posting-on-e2e-support-forums 

    If you keep making multiple threads a day on this topic we may need to take action. Duplicate threads and questions will be removed. 

    Thank you,

    Angie

  • Hi Angie,

    I recorded the heart rate using the vital sign demo GUI under two conditions:

    1) When the user is stationary and breathing normally.

    2) When the user is at rest after a run and breathing normally.

    In the second condition, I noticed that the heart rate did not increase and remained between 77 and 93. A motion was being detected at a high heart rate.  What is the reason for this?

    I verified my heart rate with my smartwatch, which showed 145bpm while the radar showed 93.

    Regards

    Arjun

  • Hi Arjun,

    In the logic for this lab there are filters set for the heart rate and breath rate values. This is determined by the filter arrays set at line 1243 in main.c. Have you built this lab in CCS or have you been using the pre-built binary?

    If you are hoping to get numbers as high as 145bpm you will need to ensure your firmware is designed to use the pFilterCoefsHeart_4Hz (not the pFilterCoefsHeart).

    Thank you,

    Angie

  • Hi Angie,

    I used the pre-built binary. Are there any updated documents on building the lab in CCS?

    How to ensure the firmware is designed to use the pFilterCoefsHeart_4Hz (not the pFilterCoefsHeart) and make changes to it if it does not use pFilterCoefHeart_4Hz?. 

    Regards

    Arjun

  • Hi Arjun,

    Please look at the guide for our out of box demo and follow the developer's guide to get a feel for building a lab in CCS. After this you can use the .projectspec files to build the vital signs lab in ccs.

    Please ensure the second input on line 620 of main.c is for pFilterCoefsHeart_4Hz

        outputFilterHeartOut  = filter_IIR_BiquadCascade(phaseUsedComputation,  obj->pFilterCoefsHeart_4Hz,  obj->pScaleValsHeart_4Hz,  obj->pDelayHeart,   IIR_FILTER_HEART_NUM_STAGES);

    Thank you,

    Angie

  • Hi Angie,

    I have been using CCS to get a feel for building a lab. I have a few questions regarding data collection for vital signs based project: 

    1. Does the vital sign lab uses all the Tx and Rx antenna to detect vital signs?

    2. How I can I collect the data for 2 min using below chirp configuration.

    • ADC Sampling rate: 5000 Ksps
    • Idle Time: 150 us
    • Ramp End Time: 50 us
    • Slow Time Axis Sampling(Fs): Slow time axis sampling is 5000 as each chirp is 50us (chirp) + 150 us (idle).
    • Fast Time Axis Sampling(Fs_fast): Fast time sampling rate is the ADC sampling rate: 5000K sample per second (5e6)
    • Number of Chirp in each frame: 128
    • Number of Frames : infinite

    Please give a example so that I can understand the calculation for 2 minutes. 

    Regards

    Arjun

     

  • Hi Arjun,

    The lab you are looking at only uses 1TX and 1RX to perform vital signs.

    Please see our sensing estimator tool: https://dev.ti.com/gallery/view/mmwave/mmWaveSensingEstimator/ver/2.0.0/. In the second tab of this tool you can modify the cfg parameters. I would recommend loading your vital signs cfg into the second tab and then editing to get your desired to cfg within this gui.

    Thank you,

    Angie

  • Hi Angie,

    As you said previously to ensure the use of the pFilterCoefsHeart_4Hz filter, I ensure that the second input on line 620 of main.c is for pFilterCoefsHeart_4Hz. Despite of this filter, I am unable to get a higher heart rate(HR) above 93 bpm. Please see the pic.

    I followed the guideline "Vital Signs Xwr1443xx Developers Guide" with CCS for the first time. I believe radar should collect the HR between 48 to 240 but it does not.

    The data collection environment was this; I ran for 5 minutes and sat before the radar idlely 

    Questions:

    1. What to do in order to collect high HR (0.8 to 4Hz)?
    2. Does chest displacement, and movement create an issue in detecting high HR? Is there a way to control it?
    3. Does a number of Tx and Rx play a role in getting high-quality data? If yes, then what is the appropriate number for vital sign detection?

    Regards

    Arjun

  • Hi Arjun,

    I am glad you got the lab working in CCS and you are now able to see the source code, I hope this will help you dive deeper into this lab.

    Questions:

    1. What to do in order to collect high HR (0.8 to 4Hz)?
      1. I am going to follow up on this question after talking with a team member
    2. Does chest displacement, and movement create an issue in detecting high HR? Is there a way to control it?
      1. Movement like talking or even slightly moving can create an issue. It is best to have the subject sitting in a chair with a solid back. Swivel chairs or chairs with adjustable backs can cause a problem. 
    3. Does a number of Tx and Rx play a role in getting high-quality data? If yes, then what is the appropriate number for vital sign detection?
      1. There are two ways to improve quality of data:
        1. Continue to use the 1TX by 1RX set up in this vital signs lab but add a radar lens to improve quality of data
        2. Use 3TX and 4RX on the board with BPM MIMO enabled (vitals signs and people tracking does this)

    Thanks,

    Angie

  • Hi Angie,

    Thank you for providing detailed information.

    I have been waiting for your response to the first question asked yesterday.

    My questions about your responses to 3rd question:

    1. What exactly is the radar lens?
    2. IWR6843 AOP uses the vital signs and people tracking lab. Is the BPM MIMO feature included in the IWR1443BOOST?

    Regards

    Arjun

    1. What is a radar lens?. I heard it the first time.
      1. At TI we are experts in our device and not in the systems that surround the device. Pictured below is a radar lens, however I cannot give out design tips on radar lenses on this forum.
    2. The vital signs and people tracking lab is for IWR6843 AOP. Does the BPM MIMO feature available in IWR1443BOOST?
      1. We do not have an example of BPM MIMO on IWR1443BOOST

    Thank you,

    Angie

  • Hi Angie,

    I'm a beginner trying to learn everything I can about the device. I hope this makes sense.

    I am still waiting for your response to the previous question.

    1. I found a thread where a TI expert discussed radar lenses, but it's 5 years old. https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/611900/iwr1443boost-lens-for-vitals-signs?tisearch=e2e-quicksearch&keymatch=vital

    Could you please share a document about radar lenses and BPM MIMO?

    Is it possible to download data while using the vital signs lab? 

    Regards

    Arjun

  • Hello Arjun,

    We do not have any documentation on radar lenses and we have done not development on lenses with BPM MIMO. This is why we have only used lenses with labs with a 1TX by 1RX configuration. 

    What sort of data are you looking to download?

    For your other question:

    The demo only supports HR values up to 2 Hz. The algorithm will search for peaks within the interval [0.8 – 2 Hz] for the vital signs estimation. The peaks within the interval [1.6  – 4 Hz] are assumed to be the 2nd harmonic of the heart-rate.

    in the function  “MmwDemo_dataPathInitVitalSign()” they can try modifying  heart_endFreqHz  to 4.

    obj->heart_startFreq_Hz = 0.8;    // Heart-Rate peak search Start-Frequency

    obj->heart_endFreq_Hz   = 2

     

    This has not been tested hence no guarantees about its working

     

    void MmwDemo_dataPathInitVitalSigns(MmwDemo_DSS_DataPathObj *obj)

    {

     

        /* Obtain Parameters from the Command Line Interface */

        VitalSignsDemo_ParamsCfg  vitalSignsParamCLI;

        vitalSignsParamCLI = obj->cliCfg->vitalSignsParamsCfg;

     

        obj->circularBufferSizeHeart    = vitalSignsParamCLI.winLen_heartRate;

        obj->circularBufferSizeBreath   = vitalSignsParamCLI.winLen_breathing;

        obj->rxAntennaProcess           = vitalSignsParamCLI.rxAntennaProcess;

        obj->alpha_breathing            = vitalSignsParamCLI.alpha_breathingWfm;

        obj->alpha_heart                = vitalSignsParamCLI.alpha_heartWfm;

        obj->scale_breathingWfm         = vitalSignsParamCLI.scale_breathingWfm;

        obj->scale_heartWfm             = vitalSignsParamCLI.scale_heartWfm;

     

        // Make sure that the RX-channel to process is valid

        obj->rxAntennaProcess = (obj->rxAntennaProcess < 1) ? 1 : obj->rxAntennaProcess;

        obj->rxAntennaProcess = (obj->rxAntennaProcess > obj->numRxAntennas) ? obj->numRxAntennas : obj->rxAntennaProcess;

     

        obj->samplingFreq_Hz = (float) 1000 / (obj->framePeriodicity_ms); // 1000 to convert from ms to seconds

        obj->freqIncrement_Hz = obj->samplingFreq_Hz  / PHASE_FFT_SIZE;

     

        obj->noiseImpulse_Thresh   = 1.5;

        obj->motionDetection_Thresh = obj->cliCfg->motionDetectionParamsCfg.threshold;      //1.0;   // Threshold for Large Motions

        obj->motionDetection_BlockSize = obj->cliCfg->motionDetectionParamsCfg.blockSize;   //20;    // Block Size for Large Motion

     

        float rangeStart_meter = vitalSignsParamCLI.startRange_m;    // Get the Start Range. Read from the configuration file

        float rangeEnd_meter   = vitalSignsParamCLI.endRange_m;      // Get the End Range. Read from the configuration file

     

        obj->rangeBinStartIndex = floor(rangeStart_meter/(obj->rangeBinSize_meter));    // Range-bin index corresponding to the Starting range in meters

        obj->rangeBinEndIndex   = floor(rangeEnd_meter/(obj->rangeBinSize_meter));      // Range-bin index corresponding to the Ending range in meters

        obj->numRangeBinProcessed = obj->rangeBinEndIndex - obj->rangeBinStartIndex + 1;          // Number of range bins that can be processed

     

        obj->breathingWfm_Spectrum_FftSize = PHASE_FFT_SIZE;

        obj->heartWfm_Spectrum_FftSize = PHASE_FFT_SIZE;

     

        obj->scale_breathingWfm = (obj->scale_breathingWfm == 0) ? 10000 : obj->scale_breathingWfm;

        obj->scale_heartWfm     = (obj->scale_heartWfm == 0) ? 10000 : obj->scale_heartWfm;

     

        // Vital-signs peak search frequencies may be different from the Band-pass filter cut-off frequencies

        obj->breath_startFreq_Hz = 0.1;   // Breathing-Rate peak search Start-Frequency

        obj->breath_endFreq_Hz   = 0.6;   // Breathing-Rate peak search End-Frequency

     

        obj->heart_startFreq_Hz = 0.8;    // Heart-Rate peak search Start-Frequency

        obj->heart_endFreq_Hz   = 2.0;    // Heart-Rate peak search End-Frequency

    Thank you,

    Angie

  • Hi Angie,

    Thank you for the code and instructions. I will use it and let you know.

    I needed to get data for vital sign recognition. The quality of data should be high for detailed analysis, such as heart rate variability analysis, the study of various cardiac activities, and so on.

    Because the vital signs lab can easily find the heart. I was wondering if I could use this in conjunction with the DCA1000 to collect data.

    I'd appreciate it if you could show me an efficient way to collect data for my goal.

    Regards

    Arjun

  • Hi Angie,

    Thank you.

    I plan to buy an AWR1642BOOST radar for vital signs detection. 

    1. Can you tell me the difference between AWR1642 and AWR6843AOP?
    2. Which one would be more suitable?

    It would be great if you could give your honest opinion about the EVMs for vital signs detection.

    Regards

    Arjun

  • Hi Arjun,

    As I have told you before, our latest and most improved labs and algorithms are developed on the xWR6843AOP devices. To learn more about the differences between these devices please refer to the data sheets.

    Thank you,

    Angie

  • Hi Angie,

    I remember it but my project requirement is to use AWR1642BOOST. I bought a few AWR1642BOOST devices.

    1. May I know to how to create a chirp configuration(.cfg file ) and pass it to the EVM? I never tried this. Is there any document for it?
    2. Are data collected through DCA1000 using IWR1443BOOST and AWR1642BOOST are different?

    Regards

    Arjun

  • Hello Arjun.

    To answer your questions

    1.  You can use the sensing estimator along with any of the available chirp configurations to create a new configuration for your use case.  You can also refer to the sdk user guide and the tracking and detection layer documents in the people counting folder for information on what these commands are used for.  There are also configurations in the chirp database folder of the toolbox you can use for reference.  

    2.  The data format for data collected between different boards will be the same as they both collect raw adc data.  However, the data itself may be different if the sensor is pointed at different environments.  You can take a look at the DCA user guide linked here for more information on this.

    Sincerely,

    Santosh

  • Hi Santosh,

    Thanks for the detailed answer and share the documents. I have already gone through these.

    1. If both EVMs capture the same type of data, what distinguishes them other than the digital signal processing system in AWR1642**? Please provide an example with a use case if possible.

    I have to collect the data for vital signs recognition. It means using either of the board(iwr1443 or awr1642) will contain the same data for vital signs recognition. Please correct me if I am wrong.

    Regards

    Arjun

  • Hello Arjun.

    The data will be similar between the boards if the scene/environment that the radar is facing is similar, but the data will have differences due to the difference in antenna pattern(one is 4Rx3Tx and one is 4Rx2Tx), and the difference in the number of transmitters.  As Angie mentioned before, you cannot collect this raw data while running vital signs on one device, but you can capture the raw data on one device, and run vitals signs on another and compare the results.

    Sincerely,

    Santosh

  • Hi Santosh,

    While running the TI vital signs lab, I understood that one could not capture the raw data using DCA1000.

    1. Should I create my own vital signs detection program and compare the results to those of the TI vital signs lab?
    2. Is it possible to run the TI vital signs lab program on the captured data to generate a plot of interest (heart rate, breathing rate, etc.)?

    Regards

    Arjun

  • Hello Arjun.

    1)You can write your own algorithms to process the raw data and get the vital signs data, but there is no existing code to support this for the 1642 device. 

    2)You cannot run a lab on previously saved raw data, but if you want to replay data saved from the UART stream you are welcome to add that functionality to the vital signs visualizer.

    Sincerely,

    Santosh

  • Hi Santosh,

    Previously Angie suggested me to change the functionMmwDemo_dataPathInitVitalSign() to improve the frequency to capture the high heart rate. However, she did not ensure of its work. 

    i would like to know if TI has tested to record the heart rate lower than 60 per minute using vital sign demo?

    I will make changes to the vital sign demo and update you. Please clarify the above question.

    regards

    Arjun

  • Hi Arjun,

    We have not tested heart rates lower then 50 per minute.

    Thank you,

    Angie

  • Hi Angie,

    For some reason, our customer can't reply to this thread. He has further inquiries as follows.

    Sensor:- AWR1642BOOST

    Subject: Selection of target range bin and removal of motion corrupt segment in vital signs lab

    Question-1: It is mentioned in the vital sign lab version 1.4 that target range bin is selected by finding the max value in the range profile.

    It is not clear max function is applied along the range bin(fast time or arc samples) or slow time(chirp number). Please clarify along which max value function is applied.

    Question-2: How the motion corrupted segment is removed.

    Question-3: Can you please indicate the code segment for above two questions in the vital signs lab demo code?

    Please elaborate the answer.

    Regards,

    Danilo

  • Hi Danilo,

    I am looking into this and will have an answer later today.

    Thank you,

    Angie

  • Hi Danilo,

    I now realize this is our in-cabin vitals demo and I am re-routing this question to the correct team.

    Thank you,

    Angie

  • Hi, Danilo:

    Unfortunately, we no longer support in-cabin vital demo demo.   We always refer the vital sign demo lab inside TI Radar Industrial toolbox. 

    https://dev.ti.com/tirex/explore/node?node=A__AGdOR-BOoroFq3OuWBP6vQ__com.ti.mmwave_industrial_toolbox__VLyFKFf__LATEST

    Best,

    Zigang

  • Hi Angie and Zigang, 

    Please see our customer's response below.

    It is mentioned in the vital sign lab version 1.4 for IWR1443 that the target range bin is selected by finding the max value in the range profile. It needs to be clarified max function is applied along the fast time (range bin or ADC samples) or slow time(chirp number). Traditionally, a variance is applied to the data along the fast time(Range bin or ADC samples), and then the max variance is calculated to find the target bin. Following this, a range-FFT is applied to calculate the distance.

    Questions:
    Please clarify which max function is applied.
    How the motion corrupted segment is removed.
    Please indicate the code segment in the vital signs lab demo code for the above two questions.
    I could not an option to control the range in mmwave studio.

    Requesting you please elaborate on your response. It will help me to fix the issues on the weekend.

    Regards,

    Danilo

  • Hi, Danilo:

    Please go through the documentation first, https://dev.ti.com/tirex/explore/node?node=A__APopVrbGviZJDyscKY19dQ__com.ti.mmwave_industrial_toolbox__VLyFKFf__LATEST

    If you want to check the target code implementation, I would recommend go through xWR6843 vital sign demo code instead. Because xWR1443 vital sign demo is implemented with hardware accelerator (HWA), much harder to understand.    Therefore, search for MmwDemo_interFrameProcessing function under C:\ti\mmwave_industrial_toolbox_4_12_0\labs\Vital_Signs\68xx_vital_signs\src\dss 

    Can you provide more details on your definition of "motion corrupted segment"?

    You do have an option to control the range, you can define the minimum and maximum range for the range search window in the CLI command. 

    Best,

    Zigang

    Best,

    Zigang