添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Part Number: AWR1642BOOST
Other Parts Discussed in Thread: TIDEP-0090 , AWR1642 , MATHLIB , TIDEP-0092

Hello Ti Radar Team,

I have been trying to run the  TIDEP-0090 Tracking algorithm on my AWR1642. I have followed the steps as in the guide coming with package. All the steps worked fine until executing the command mmw_demo 5 10 4 mmw_tm_demo.cfg 1 on the command prompt. The Matlab gui starts and only views the configuration table. The CCS aborts and writes the following message:

*****************

CCS Console

******************

[Cortex_R4_0] Debug: MMWDemoMSS Received CLI sensorStart Event
[ C674X_0] Number of ADC samples must be multiple of 16
{module#8}: "dss/dss_main.c", line 1372: error {id:0x10000, args:[0x814054, 0x814054]}
xdc.runtime.Error.raise: terminating execution

*********************************************************

I have linked my ".bat" file below with all the packages versions shown. And the command prompt messages after executing the "gmake all" command. And the CCS7 error and abort message above.

I have noticed one "mistake" that is included in the "mmw_tm_demo.cfg"  file that sets the adcbufCfg to "0 1 1 1" , while in the mmwave sdk 1.0.0.5 user guide it say to be set to "0 0 1 1".

Nevertheless, the same error exists for both the adcbufCfg configuration.

I hope that the info provided is enough? So how can i fix it?

I am also wondering if i should configure the dss_linker.cmd file as well?

*******************************************************

FILE NAME: mmwave_sdk_setupenv.bat

********************************************************

set R4F_CODEGEN_INSTALL_PATH=C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.1.LTS
set MMWAVE_SDK_INSTALL_PATH=C:/ti/mmwave_sdk_01_00_00_05/packages
set BIOS_INSTALL_PATH=c:/ti/bios_6_52_00_12/packages
set XDC_INSTALL_PATH=c:/ti/xdctools_3_50_00_10_core
set PERL_INSTALL_PATH=C:/Strawberry/perl/bin
set C674_CODEGEN_INSTALL_PATH=C:/ti/c6000_7.4.16
set C64Px_DSPLIB_INSTALL_PATH=C:/ti/Trackingdemo/mmwave_demo_dev/lib/dsplib_c64Px_3_4_0_0
set C674x_MATHLIB_INSTALL_PATH=C:/ti/mathlib_c674x_3_1_2_1
set XWR16XX_RADARSS_IMAGE_BIN=C:/ti/mmwave_sdk_01_00_00_05/firmware/radarss/xwr16xx_radarss_rprc.bin

*****************************************

Command Prompt

***************************************

lib -o xwr16xx_mmw_demo_dss.xe674
<Linking>
" dss/dss_mmw_linker.cmd", line 49: warning #10068-D: no matching section
Built the DSS Millimeter Wave Demo [Preparing the BIN Format]
Parsing the input object file, xwr16xx_mmw_demo_dss.xe674.
Appending zeros 8484320
Appending zeros 8502064
Appending zeros 8511640
File conversion complete!
******************************************************************************
Built the DSS Millimeter Wave OUT & BIN Formats
******************************************************************************
C:/ti/mmwave_sdk_01_00_00_05/packages\scripts\ImageCreator\xwr16xx\multicore_image_generator\MulticoreImageGen.exe LE 37 0x01000005 iwr16xx_mmw_demo.bin 0x35510000 xwr16xx_mmw_demo_mss.bin 0xb5510000 C:/ti/mmwave_sdk_01_00_00_05/firmware/radarss/xwr16xx_radarss_rprc.bin 0xd5510000 xwr16xx_mmw_demo_dss.bin
Number of Input Files 3
Number of zeros 48
Number of zeros 8
Number of zeros 56

call C:/ti/mmwave_sdk_01_00_00_05/packages\scripts\ImageCreator\xwr16xx\crc_multicore_image\crc_multicore_image.exe iwr16xx_mmw_demo.bin iwr16xx_mmw_demo.bin.tmp
size of App Image is 508544 bytes
cur_crc_read_addr 128
cur_crc_read_addr 115200
cur_crc_read_addr 251392
Failed to remove CRC temp file

perl C:/ti/mmwave_sdk_01_00_00_05/packages\scripts\ImageCreator\xwr16xx\append_bin_crc\gen_bincrc32.pl iwr16xx_mmw_demo.bin
>>>> Binary CRC32 = 2e2675fb <<<<
>>>> Total bytes in binary file 508548 <<<<
******************************************************************************
Built the mmw Demo Flash Binary
******************************************************************************

********************************

CCS7 Console

**********************************

[C674X_0] Debug: Logging UART Instance @00815560 has been opened successfully
Debug: DSS Mailbox Handle @0080f550
Debug: MMWDemoDSS create event handle succeeded
Debug: MMWDemoDSS mmWave Control Initialization succeeded
[Cortex_R4_0] **********************************************
Debug: Launching the Millimeter Wave Demo
**********************************************
Debug: MMWDemoMSS Launched the Initialization Task
Debug: MMWDemoMSS mmWave Control Initialization was successful
Debug: CLI is operational
[C674X_0] Debug: MMWDemoDSS ADCBUF Instance(0) @00815530 has been opened successfully
Debug: MMWDemoDSS Data Path init succeeded
Debug: MMWDemoDSS initTask exit

**********************************

Rabah

Hello Rabah,
As the error says, have you used a configuration that has Number of ADC sample that is not multiple of 16 in your configuration?
The other 2 highlighted build logs are warnings. These are false notifications and are not an issue.
-Raghu

Hello Raghu,

The adc configuration that comes with the file "mmw_tm_demo.cfg" is already configured to 16 bits. I did not change it.

Anyhow,  I have built and run the TIPED-0092, and it works fine. But i want to load my own configuration that i generated from the mmWave Sensing estimator to run with the TIPED-0090 or the TIPED-0092 (basically with the tracking algo). However,  my configuration has a high Max Velocity of "200 km/h", and the latest Tracking algo (TIPED-0092) can only reach 90 km/h.

So, as i understand, a new binary file should be generated and flashed on the AWR1642 that has my own customized configurations and includes the tracking algorithm.

How can i do that?

Rabah

Hi Rabah,

From what I understand, you'd like to modify TIDEP0092 (or the SRR TI design) to use a chirp configuration that can reach unambiguously estimate velocities as high as 200 km/hr. Is that correct? If so, what is your range requirement?

The 'SRR TI Design' doesn't directly accept the configuration from the 'mmWave Sensing Estimator' because it is intended to be a demonstration of some of the more advanced features of the AWR1642 devices. For example, it is a multi-mode radar, meaning that it can track objects at 80m travelling at 90kmph with ~35 cm range resolution (we will call this SRR80 configuration) and objects at 20m travelling at ~36kmph with ~4 cm range resolution (call this the USRR20 configuration).

The SRR80 configuration uses a max-velocity enhancement algorithm that allows us to triple the max-velocity that can be estimated from a given chirp configuration (details and references are given in the design document @ www.ti.com/.../TIDEP-0092) . In other words, if this max-vel enhancement algorithm weren't used the maximum unambiguous velocity would be ~55kmph. With this algorithm, the maximum unambiguous velocity is 165 kmph. However, we've only tested till ~100 kmph, and hence the 90kmph limit in the document. If you are OK with testing the design as is, and seeing whether it meets your requirement please do.

Once you've understood the algorithms used in SRR80, you can start modifying the configuration. The SRR80 configuration can be modified from the .h file located at  (C:\ti\mmwave_sdk_01_01_00_02\packages\ti\demo\xwr16xx\srr\common\srr_config_chirp_design_SRR80.h).


Regards
Anil

Hi Anil,

Thank you for your reply.

You have understood correct. My max unambiguous velocity is 200km/h. My max range is 56-57 meters. This range was selected on the 'mmWave Sensing Estimator' so the cube size still fits in memory. Taking into consideration other parameters changes to achieve the required cube size which are: range resolution of 100cm, velocity resolution of 1km/h, and finally 2 RX 1 Tx.

However, i recently made the TIDEP-0090 work and it has a CLI command to start the sensor in which the configuration is sent through a ".cfg" file. What i tried to do is loading my configuration obtained from the  'mmWave Sensing Estimator'  into this file (although various of its content is not generated by the estimator) so i had configuration failed error. I have chosen the TIDEP-0090 since i have found a clear tracker ID that is sent through the UART.

As for the algorithm used in SRR80, this algorithm will not detect velocities of 200km/h relying on chirp configuration only. I can attach my saved configuration generated from the 'mmWave Sensing Estimator' so you can have a look and decide how to load it?

Best Regards

Rabah

Thank you for your input. I am a colleague of Rabah's.
We are currently developing a solution which collects data over UART and we require tracked object with unique identifiers, which is something we couldn't find in TIDEP-0092, and thus had to fall back on TIDEP-0090 where the data structure includes a "TrackID".
As for our configuration, we are having a hard time getting it to run.
We used Sensing Estimator to get the required values for our configuration, which is as follows:
"platform": "xWR1642",
"num_rx": 4,
"num_tx": 1,
"tx_gain": 9,
"rx_gain": 9,
"frequency_range": "76 - 77",
"maximum_bandwidth": 1000,
"tx_power": 12,
"ambient_temperature_degC": 20,
"maximum_detectable_range": 57,
"range_resolution": 90,
"maximum_velocity_kmph": 190,
"velocity_resolution_kmph": 2,
"measurement_rate": 25,
"typical_detected_object": "Car",
"detection_loss": 1,
"system_loss": 1,
"implementation_margin": 2,
"detection_SNR": 12,
"maximum_radar_cube_size": 768,
"maximum_RF_bandwidth": 5,
"maximum_sampling_frequency": 6.25,
"sensor_maximum_bandwidth": 1000,
"maximum_allowed_bandwidth": 1000,
"starting_frequency": 76,
"maximum_velocity": 52.77777777777778,
"velocity_resolution": 0.5555555555555556,
"valid_sweep_bandwidth": 166.66666666666666,
"idle_time": 2,
"adc_valid_start_time": 4.2,
"excess_ramping_time": 1,
"periodicity": 40,
"ambient_temperature": 293.15,
"noise_figure": 16,
"num_virtual_rx": 4,
"non_coherent_combining_loss": 2,
"rcs_value": 5,
"combined_factor_in_dB": -4,
"combined_factor_linear": 0.39810717055349726,
"inter_chirp_time": 7.2,
"aux_comp_coeff_a": 76083333333.33333,
"aux_comp_coeff_b": -872552.6315789474,
"chirp_time": 11.468380699832824,
"ramp_slope_init": 14.532711376515097,
"ramp_slope_parameter": 301,
"ramp_slope": 14.532208442687988,
"aux_comp_T1": 1,
"maximum_beat_frequency": 5.5222392082214355,
"sampling_frequency": 6.135821342468262,
"number_of_samples_per_chirp": 71,
"total_sweep_bandwidth": 243.72537863881965,
"idle_time_minimum": 2,
"ramp_end_time": 16.771392978570457,
"carrier_frequency": 76.06103739215885,
"aux_comp_T2": 3.2,
"adc_valid_start_time_2": 4.2,
"lambda": 3.944200740429647,
"max_chirp_repetition_period": 19,
"chirp_repetition_period": 19,
"num_range_fft_bins": 128,
"min_num_of_chirp_loops": 187,
"max_range_for_typical_detectable_object": 77.85950674640894,
"min_rcs_detectable_at_max_range": 1.4362261663205205,
"num_doppler_fft_bins": 256,
"active_frame_time": 3.553,
"range_inter_bin_resolution": 49.921875,
"velocity_inter_bin_resolution": 0.40581597222222227,
"radar_cube_size": 374
Using values found here to generate the proper parameters for the mmwave demo config file, I have come up with the following configuration:
dfeDataOutputMode 1
channelCfg 15 1 0
adcCfg 2 1
adcbufCfg 0 1 1 1
profileCfg 0 76 2 4.2 16.77 12 0 14.533 1 71 6136 0 0 9
chirpCfg 0 0 0 0 0 0 0 1
frameCfg 0 0 187 0 40 1 0
lowPower 0 0
guiMonitor 1 0 0 0
cfarCfg 4 4 15 16 8 4 0 63 0
doaCfg 3 1047 3 600 10 50
dbscanCfg 1 4 12 13 20 3 128
trackingCfg 1 10 10 2 3 25
sensorStart
However, when I try to run the demo (in debug mode, with CCS 7) , with this configuration, I get an error of -13008 , which corresponds to a failed profileCfg configuration according to mmwave.h under "mmwave_sdk_01_00_00_05\packages\ti\control\mmwave\" .
Could you please shed some light on why this is happening? As I stated earlier, I got the profileCfg parameters by finding the corresponding fields in the json file generated by Sensing Estimator, following the descriptions found in the "chirpParams_TMdemo.xlsx" file found under the "gui" folder in tmdemo.
Also, Sensing Estimator only provides configuration values for the SDK configs, but doesn't generate anything related to cfarCfg, doaCfg, dbscanCfg and trackingCfg. Is there some sort of tool or a sheet which could guide through finding the optimum values for these configurations corresponding to our solution's setup?
Thank you in advance

Hi Jad,

The traffic monitoring demo is in the process of being updated to a new tracking filter, and it (in its current state) is no longer supported. That being said, the errors that you're seeing can be fixed. Compare the configurations that you're sending to the template given in the mmwave SDK user guide.

For e.g. the profile config command has a few errors

profileCfg 0 76 2 4.2 16.77 12 0 14.533 1 71 6136 0 0 9

"profileCfg",  "<profileId> <startFreq> <idleTime> <adcStartTime> <rampEndTime> <txOutPower> <txPhaseShifter> <freqSlopeConst> <txStartTime> <numAdcSamples> <digOutSampleRate> <hpfCornerFreq1> <hpfCornerFreq2> <rxGain> ",

you can try the following alternate command.

profileCfg 0 76 2 4.2 16.77 0 0 14.533 1 71 6136 0 0 40

Regards

As for the second question, I'd urge you to read the documents from the TIDEP0090 design page and also try and understand the code organization so that you can understand the parameters and make the necessary modifications.
Regards
Dear Anil,
Following your suggestion, I have fixed the txpower and rxgain to be as you provided.
Yet the configuration still doesn't seem to start.
Our configuration changed a bit since our last post, so I'm including the json file generated by Sensing Estimator:
"platform": "xWR1642",
"num_rx": 2,
"num_tx": 1,
"tx_gain": 9,
"rx_gain": 9,
"frequency_range": "76 - 77",
"maximum_bandwidth": 300,
"tx_power": 12,
"ambient_temperature_degC": 20,
"maximum_detectable_range": 57,
"range_resolution": 100,
"maximum_velocity_kmph": 200,
"velocity_resolution_kmph": 1,
"measurement_rate": 25,
"typical_detected_object": "Car",
"detection_loss": 1,
"system_loss": 1,
"implementation_margin": 2,
"detection_SNR": 12,
"maximum_radar_cube_size": 768,
"maximum_RF_bandwidth": 5,
"maximum_sampling_frequency": 6.25,
"sensor_maximum_bandwidth": 1000,
"maximum_allowed_bandwidth": 300,
"starting_frequency": 76,
"maximum_velocity": 55.55555555555556,
"velocity_resolution": 0.2777777777777778,
"valid_sweep_bandwidth": 150,
"idle_time": 2,
"adc_valid_start_time": 4.2,
"excess_ramping_time": 1,
"periodicity": 40,
"ambient_temperature": 293.15,
"noise_figure": 16,
"num_virtual_rx": 2,
"non_coherent_combining_loss": 1,
"rcs_value": 5,
"combined_factor_in_dB": -3,
"combined_factor_linear": 0.5011872336272722,
"inter_chirp_time": 7.2,
"aux_comp_coeff_a": 76075000000,
"aux_comp_coeff_b": -801630,
"chirp_time": 10.537364442983897,
"ramp_slope_init": 14.23505856816736,
"ramp_slope_parameter": 295,
"ramp_slope": 14.24252986907959,
"aux_comp_T1": 1,
"maximum_beat_frequency": 5.412161350250244,
"sampling_frequency": 6.01351261138916,
"number_of_samples_per_chirp": 64,
"total_sweep_bandwidth": 225.6401026876349,
"idle_time_minimum": 2,
"ramp_end_time": 15.842698225790464,
"carrier_frequency": 76.0598206453081,
"aux_comp_T2": 3.2,
"adc_valid_start_time_2": 4.2,
"lambda": 3.9442638367371186,
"max_chirp_repetition_period": 18,
"chirp_repetition_period": 18,
"num_range_fft_bins": 64,
"min_num_of_chirp_loops": 395,
"max_range_for_typical_detectable_object": 81.85665055530121,
"min_rcs_detectable_at_max_range": 1.1755836760595009,
"num_doppler_fft_bins": 512,
"active_frame_time": 7.11,
"range_inter_bin_resolution": 100,
"velocity_inter_bin_resolution": 0.2143012152777778,
"radar_cube_size": 197.5
And here is our config file based on this design file:
dfeDataOutputMode 1
channelCfg 3 1 0
adcCfg 2 1
adcbufCfg 0 1 1 1
profileCfg 0 76 2 4.2 15.84 0 0 14.24 1 64 6014 0 0 48
chirpCfg 0 0 0 0 0 0 0 1
frameCfg 0 0 395 0 40 1 0
lowPower 0 0
guiMonitor 1 0 0 0
cfarCfg 4 4 15 16 8 4 0 63 0
doaCfg 3 1047 3 600 10 50
dbscanCfg 1 4 12 13 20 3 128
trackingCfg 1 10 10 2 3 25
sensorStart
(P.S: I have tried both 40 and 48 as the rxgain at the end of the profilecfg , nothing seems to change)
When I try to launch this configuration, I get an error:
Error: MMWDemoMSS mmWave Configuration failed [Error code -13010]
The error code points to a frame configuration error, yet in frameCfg, there's really not much to change except the number of chirps per frame, in our case 395, which is what Sensing Estimator gave us, as seen in the json file.
Your help is very appreciated.
One more thing.
We have read and researched almost all documents we could find on TI about this, from the AWR1642 documents to the TIDEP 90 documents, but this is the first time I see the table in the screen capture in your reply. Would you kindly refer me to the document from which this was extracted?
Thanks

Hi Jad,

To answer the question of documentation of the following command, you can look at C:\ti\mmwave_sdk_01_01_00_02\docs\mmwave_sdk_user_guide.pdf where descriptions of the 'mmwave SDK api's are given.  Most of the CLI commands (like profileCfg) would be available here. Note that these CLI commands are only high level APIs, and they internally (on the Master sub system)  call the mmwavelink APIs which are low level APIs. These lower level APIs are described in the mmwave ICD (Download the mmwave DFP package and check in D:\ti\mmwave_dfp_01_00_00_01\docs for these documents. Limits, error code definitions etc are also given here.

Some commands like doaCfg, dbscanCfg, trackingCfg are specific to the 'traffic monitoring' demo. To understand their use, you would need to grep through the code.

you can modify the frame config command as follows

dfeDataOutputMode 1

channelCfg 3 1 0

adcCfg 2 1

adcbufCfg 0 1 1 1

profileCfg 0 76 2 4.2 15.84 0 0 14.24 1 64 6014 0 0 48

chirpCfg 0 4 0 0 0 0 0 1

frameCfg 0 4 79 0 40 1 0

lowPower 0 0

guiMonitor 1 0 0 0

cfarCfg 4 4 15 16 8 4 0 63 0

doaCfg 3 1047 3 600 10 50

dbscanCfg 1 4 12 13 20 3 128

trackingCfg 1 10 10 2 3 25

sensorStart

The change that I've done is to take into account the limits on the number of loops in the 'frame Config command' (3rd parameter). The maximum number of loops of a given set of chirps possible is 255 (you can see this limit in the mmwave ICD corresponding to the frameConfig). In order to generate a larger number of chirps, you have to create more kinds of chirps and then loop through the chirps. In the example given above, I've programmed 5 kinds of chirps (with the same parameters), and in the frame config, I loop through them 79 times, to generate the necessary 395 chirps.

Regards

Thank you for the clarification.
I have tried altering the configuration as you stated, and I don't get the frame error anymore.
However, we are getting the following errors:
[Cortex_R4_0] Debug: MMWDemoMSS Received CLI sensorStart Event
DDR Heap : size 0 (0x0), used 0 (0x0)
LL2 Heap : size 73728 (0x12000), used 0 (0x0)
LL1 Scratch : size 8448 (0x2100), used 0 (0x0)
Debug: MMWDemoMSS mmWave config succeeded
[C674X_0] processCreate: (radarProcessInstance_t *)0x8057f8
processCreate: (RADARDEMO_rangeProc_handle *)0x805894
processCreate: (RADARDEMO_dopplerProc_handle *)0x805a10
processCreate: (RADARDEMO_detectionCFAR_handle *)0x805f50
processCreate: (RADARDEMO_aoAEstBF_handle *)0x806960
processCreate: (RADARDEMO_clusteringDBscanInstance *)0x809828
processCreate: (RADARDEMO_clusterTracker_handle *)0x80d708
processCreate: (radarProcessBenchmarkObj *)0x810fe8
processCreate: heatmap (float *)0x20009e00
DDR Heap : size 655360 (0xa0000), used 77620 (0x12f34)
LL2 Heap : size 56832 (0xde00), used 47844 (0xbae4)
LL2 Scratch : size 5376 (0x1500), used 3620 (0xe24)
LL1 Scratch : size 16384 (0x4000), used 16384 (0x4000)
HSRAM Heap : size 8192 (0x2000), used 0 (0x0)
{module#8}: "dss/dss_main.c", line 178: error {id:0x10000, args:[0x81919c, 0x81919c]}
xdc.runtime.Error.raise: terminating execution
[Cortex_R4_0] xdc.runtime.Main: "mss/mss_main.c", line 755: assertion failure
xdc.runtime.Error.raise: terminating execution
tracing the code, the MSS reports this as a CPU fault error (mss_main.c line 755)
/************************************************************************
* BSS event:: CPU fault
************************************************************************/
if(event & MMWDEMO_BSS_CPUFAULT_EVT)
DebugP_assert(0);
break;
and the DSS error is related to the chirp process token (dss_main.c line 178)
/* Increment interrupt counter for debugging purpose */
gMmwDssMCB.stats.chirpIntCounter++;
gMmwDssMCB.dataPathObj.chirpStartTimeStamp = Cycleprofiler_getTimeStamp();
if (gMmwDssMCB.dataPathObj.chirpCount == 0)
gMmwDssMCB.dataPathObj.frameStartTimeStamp = gMmwDssMCB.dataPathObj.chirpStartTimeStamp;
/* Check if previous chirp processing has completed*/
//MmwDemo_processChirp(&(gMmwDssMCB.dataPathObj));
DebugP_assert(gMmwDssMCB.dataPathObj.chirpProcToken == 0);
gMmwDssMCB.dataPathObj.chirpProcToken++;
We have tried following the code in debug mode and setting breakpoints before the asserts, however, the execution terminates regardless, never stopping at the breakpoints.
Your assistance would be greatly appreciated

adcbufCfg 0 1 1 1

profileCfg 0 76 2 4.2 15.84 0 0 14.24 1 64 6014 0 0 48

chirpCfg 0 0 0 0 0 0 0 1

frameCfg 0 0 128 0 40 1 0

lowPower 0 0

guiMonitor 1 0 0 0

cfarCfg 4 4 15 16 8 4 0 63 0

doaCfg 3 1047 3 600 10 50

dbscanCfg 1 4 12 13 20 3 128

trackingCfg 1 10 10 2 3 25

sensorStart

I've reduced the number of chirps to 128 (from 395). I just realized that sample application cannot process a non 'power-of-2 number of chirps'  as the 2nd dimension FFT expects a power of 2 input.

If that doesn't work, I'd seriously suggest going one of two routes.

1. Try the People Counting Demo, which has a tracker (with a track ID) .

2. Modify the SRR TI Design to add a track ID, it shouldn't be too difficult, and I can help you make that change.


Regards

Hello Anil,

I am Jad's colleague. We have been trying all the configurations that you suggested and many more. But it doesn't work. We have read all the documentations for this product and followed it step by step. But unfortunately, our configuration is not willing to run. What is frustrating about it is that the tools for this product says that the configuration should work.

Maybe if you try our configuration ( profileCfg, chirpCfg, and frameCfg) you can better trace the errors we had ( -13008, -13004, -13010......) which are all pointing to either frame configuration error or profile configuration one. And the errors are not traceable to a specific condition that should be met within the code, rather to a variety of conditions that are " not " selected from any configuration parameters sent through the cfg file.

Thank you for your help.

Rabah

Dear Anil ,

Thank you for your continuous support,

I have already seen this limitation (I forgot if I saw it in the code directly or in one of the user manual files) , and had already tried this configuration you sent, but still no luck.

Also, if you check the demo cfg files with tmdemo, their values are not powers of 2 . For example the mmw_tm_demo_longRange.cfg file has the following parameters:

frameCfg 0 0 117 0 40 1 0

and the mmw_tm_demo.cfg file has the following parameters:

frameCfg 0 1 46 0 40 1 0

Both of which have a value that is not a power of 2 for the number of chirp loops in a frame.

However, there's something else I had noticed, and it was rather strange and intriguing, and it was made even more strange when I found the Traffic Monitoring Radar page through the link you provided in the TI Resource Explorer:

This page (attached) can be found by downloading the mmwave_industrial_toolbox_2_0_0.zip file by clicking on "Download all" in the People Counting Demo page , under the "chirps" folder within the zip file.

Under Step 2. Chirp Configuration, if you click on "Load in Sensing Estimator" (both the short and the long range) , you will find that the parameters in Sensing Estimator are different than those find in their relative cfg files, found in the same page a bit below, Step 3: OOB Demo Configuration File.

I noticed that in both configuration files (short and long range) , there are certain parameters that seem to be "fixed":

in mmw_tm_demo.cfg: profileCfg 0 76 5 0 48 0 0  9.125 1 206 5000 0 0 48

in mmw_tm_demo_longRange.cfg: profileCfg 0 76 5 0 48 0 0  3.766 1 199 5000 0 0 48

While in Sensing Estimator, the values for Idle Time, ADC Start Time, Ramp End Time and Sampling Rate are as follows:

short range: 2 , 4.8 , 50.31 , 4381

long range: 2 , 6 , 48.94 , 3219

Keep in mind that both the Sensing Estimator output and their respective cfg file are found on the same page, so there seems to be a discrepancy between the output values of Sensing Estimator and the demo's accepted values for the configuration files. Is this better documented somewhere else so we can know how to provide a config file that the demo would accept.

This would probably be our last trial before we take the approach you suggested of adding a TrackID to the TIDEP 0092 demo.

Regards

Traffic+Monitoring+Radar.html
<!DOCTYPE html><html><head>
  <meta charset="UTF-8">
  <title>Traffic Monitoring Radar</title>
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
  <script src="../.metadata/.html/scripts/toolbox.js"></script>
  <script>
    $(window).ready(function() {
      $("a:contains('Load in Sensing Estimator')").addClass('btn btn-primary');
      $("a[href^='https://dev.ti.com/gallery']").attr("target", "_blank");
      $("a[href^='http://dev.ti.com/gallery']").attr("target", "_blank");
      $("a[href^='http://dev.ti.com/mmWaveSensingEstimator']").attr("target", "_blank");
      $("a[href^='http://dev.ti.com/mmWaveDemoVisualizer']").attr("target", "_blank");
      $("a[href^='https://dev.ti.com/mmWaveSensingEstimator']").attr("target", "_blank");
      $("a[href^='https://dev.ti.com/mmWaveDemoVisualizer']").attr("target", "_blank");
      var re = new RegExp("(?:.*?link=)(.*)");
      $("a[href*='dev.ti.com/tirex/#']").each(function() {
        var link = $(this);
        var href = link.attr("href");
        console.log(href);
        link.removeAttr("href");
        var item = re.exec(href)[1];
        item = item.replace(/%252F/g, "/");
        item = item.replace(/%2520/g, " ");
        var path = item.split("/");
        var mergedPath = path[path.length - 2] + "/" + path[path.length - 1];
        link.on("click", function() {
          console.log(mergedPath);
          load_link(mergedPath);
      $('body').scrollspy({
        target: '.bs-docs-sidebar',
        offset: 40
      var modalImageWidth = 0;
      $('.img-responsive').on('click', function() {
        $('.imagepreview').attr('src', $(this).attr('src'));
        modalImageWidth = $(this).prop('naturalWidth');
        $('#imagemodal').modal('show');
      // Allow max sized modal
      $('#imagemodal').on('shown.bs.modal', function () {
        console.log($(this).find('.imagepreview').get(0));
        imgWidth = modalImageWidth + 60;
        //$('<img/>').attr('src', $(this).find('img').attr('src')).load(function(){imgWidth=this.width+40});
        modalWidth = $('#imagemodal').width() - 60;
        minWidth = Math.min(imgWidth, modalWidth);
        //$(this).find('.modal-dialog').css('max-width', minWidth+'px');
        $(this).find('.modal-dialog').css({width: minWidth+'px',
                                   height:'auto',
                                  'max-height':'100%'});
  </script>
  <link rel="stylesheet" href="../.metadata/.html/styles/link.css">
  <link rel="stylesheet" href="../.metadata/.html/scripts/strapdown/v/0.2/fonts/ubuntu-regular-woff.css">
  <link rel="stylesheet" href="../.metadata/.html/scripts/strapdown/v/0.2/fonts/glyphicons-halflings-regular.css">
  <link rel="stylesheet" href="../.metadata/.html/scripts/strapdown/v/0.2/themes/united2.min.css">
  <link rel="stylesheet" href="../.metadata/.html/scripts/strapdown/v/0.2/themes/bootstrap-responsive.min.css">
  <style>
    .img-responsive {
      max-height: 300px;
      margin-left: auto;
      margin-right: auto;
    .btn-primary {
      margin: 5px;
  </style>
</head>
<body style="">
  <div class="container">
    <nav class="navbar navbar-default navbar-static-top">
      <div class="container-fluid">
        <div class="navbar-header">
          <div id="headline" class="navbar-brand">Traffic Monitoring Radar</div>
    <div class="container">
      <div class="row row-offcanvas row-offcanvas-left">
        <div class="col-xs-12 col-sm-9" id="content"><h1 id="-introduction-"><strong>Introduction</strong></h1><p>This use case provides the sensing configuration for a Medium to Long Range Traffic Monitoring Radar which is typically mounted on a post on the opposite side of the intersection to detect vehicles across multiple lanes and track their position and velocity as they approach the intersection and the stop bar. This use case is based on <a href="http://www.ti.com/tool/tidep-0090">TI's mmWave Traffic Monitoring Object Detection and Tracking Reference Design</a> and the reader is encouraged to visit the <a href="http://www.ti.com/tool/tidep-0090">design webpage</a> for more details.</p><p><img style="height:400;" src="./images/Traffic+Monitoring+Radar/traffic_monitoring.jpeg" class="img-responsive"></p><h1 id="-step-1-system-parameters-"><strong>Step 1: System Parameters<br></strong></h1><table class="table table-striped table-bordered"><tbody><tr><th class="highlight-grey" data-highlight-colour="grey"> Parameter</th><th class="highlight-grey" data-highlight-colour="grey">Case-1, Mid Range (MIMO)</th><th class="highlight-grey" data-highlight-colour="grey">Case-2, Long Range (Non-MIMO)</th></tr><tr><td colspan="1">Device Type</td><td colspan="1">IWR1642</td><td colspan="1">IWR1642</td></tr><tr><td>Maximum range (m)</td><td>70</td><td>120</td></tr><tr><td>Range resolution (m)</td><td>0.40</td><td>1.0</td></tr><tr><td colspan="1">Range accuracy (m)</td><td colspan="1">0.07</td><td colspan="1">0.18</td></tr><tr><td>Maximum velocity (km/h)</td><td><p>34</p></td><td><p>70</p></td></tr><tr><td>Velocity resolution (km/hr)</td><td>1.5</td><td>1.2</td></tr><tr><td>Total Sweep Bandwidth (MHz)</td><td>426</td><td>178</td></tr><tr><td>RCS (m<sup>2</sup> @ range)</td><td>Car (5m<sup>2</sup>) @ 77m</td><td>Car (5m<sup>2</sup>) @ 107m</td></tr><tr><td>Update rate (Hz)</td><td>25</td><td>25</td></tr><tr><td>Radar Cube Size (KB)</td><td>368</td><td>468</td></tr></tbody></table><h1 id="-step-2-chirp-configuration-"><strong>Step 2: Chirp Configuration</strong></h1><table class="table table-striped table-bordered"><tbody><tr><td colspan="1">1.</td><td colspan="1"><p><strong>Chirp Configuration</strong></p></td><td><div class="content-wrapper"><p><strong>Case-1, Mid Range (MIMO)</strong></p><p><strong><a href="https://dev.ti.com/gallery/view/1792614/mmWaveSensingEstimator/?platform=xWR1642&num_rx=4&num_tx=2&tx_gain=8&rx_gain=8&freq_range=76&bandwidth=1000&tx_power=12&temp=20&range=70&range_resolution=40&velocity=33.9&velocity_resolution=1.5&fps=25&rcs=5">Load in Sensing Estimator</a></strong></p></div></td><td><div class="content-wrapper"><p><strong>Case-2, Long Range (Non-MIMO)</strong></p><p><strong><a href="https://dev.ti.com/gallery/view/1792614/mmWaveSensingEstimator/?platform=xWR1642&num_rx=4&num_tx=1&tx_gain=10&rx_gain=10&freq_range=76&bandwidth=1000&tx_power=12&temp=20&range=120&range_resolution=100&velocity=70&velocity_resolution=1.2&fps=25&rcs=5">Load in Sensing Estimator</a></strong></p></div></td></tr><tr><td>2.</td><td>Special considerations, Limitations etc</td><td colspan="2"><div class="content-wrapper"><p>The Chirp Configuration used in <a href="http://www.ti.com/tool/tidep-0090">TI's mmWave Traffic Monitoring Object Detection and Tracking Reference Design</a> assumes a fixed sampling rate of 5 Msps whereas the Sensing Estimator calculates the minimum required sampling rate based on the maximum beat frequency. Because of this, the chirp configuration presented here does not exactly match the one used in the TI Design.</p></div></td></tr></tbody></table><h1 id="-step-3-oob-demo-configuration-file-"><strong>Step 3: OOB Demo Configuration File</strong></h1><table class="table table-striped table-bordered"><tbody><tr><td colspan="1"><br></td><td class="highlight-grey" colspan="1" data-highlight-colour="grey"><strong>Use Case</strong></td><td class="highlight-grey" colspan="1" data-highlight-colour="grey"><strong>OOB Demo Configuration File</strong></td></tr><tr><td colspan="1">1</td><td colspan="1">Traffic Monitoring Case-1, Mid Range (MIMO)</td><td colspan="1"><div class="content-wrapper"><p><a href="./images/Traffic+Monitoring+Radar/mmw_tm_demo.cfg" class="btn btn-primary">mmw_tm_demo.cfg</a></p></div></td></tr><tr><td colspan="1">2</td><td colspan="1">Traffic Monitoring Case-2, Long Range (Non-MIMO)</td><td colspan="1"><div class="content-wrapper"><p><a href="./images/Traffic+Monitoring+Radar/mmw_tm_demo_longRange.cfg" class="btn btn-primary">mmw_tm_demo_longRange.cfg</a></p></div></td></tr></tbody></table><h1 id="-assumptions-and-miscellaneous-information-"><strong>Assumptions and Miscellaneous Information</strong></h1><table class="table table-striped table-bordered"><tbody><tr><th colspan="3">System Level Assumptions</th></tr><tr><td colspan="1"><br></td><td class="highlight-blue" colspan="1" data-highlight-colour="blue"><strong>Case-1, Mid Range (MIMO)</strong></td><td class="highlight-blue" colspan="1" data-highlight-colour="blue"><strong>Case-2, Long Range (Non-MIMO)<br></strong></td></tr><tr><td colspan="1">Starting frequency <strong>(GHz)</strong></td><td colspan="1">76</td><td colspan="1">76</td></tr><tr><td colspan="1">TX Antenna Gain <strong>(dB)</strong></td><td colspan="1">8</td><td colspan="1">10</td></tr><tr><td colspan="1">RX Antenna Gain <strong>(dB)</strong></td><td colspan="1">8</td><td colspan="1">10</td></tr><tr><td colspan="1">Device Type</td><td colspan="1">IWR1642</td><td colspan="1">IWR1642</td></tr><tr><td colspan="1">Number  of TX Antennas used</td><td colspan="1">2</td><td colspan="1">1</td></tr><tr><td colspan="1">Number of RX Antennas used</td><td colspan="1">4</td><td colspan="1">4</td></tr></tbody></table><h1 id="-testing-and-results-"><strong>Testing and Results</strong></h1><p>For details on Test Setup and Results, please refer to the <strong>Testing and Results </strong>section of the <a href="http://www.ti.com/lit/pdf/tidud31">Design Guide</a> for the <a href="http://www.ti.com/tool/tidep-0090">Traffic Monitoring Object Detection and Tracking Reference Design</a>.</p><p><br></p></div>
        <div class="col-xs-4 col-sm-2 sidebar-offcanvas bs-docs-sidebar hidden-print" id="sidebar-overview"><ul class="nav nav-stacked fixed" id="sidebar"><li><a href="#-introduction-">Introduction</a></li><li><a href="#-step-1-system-parameters-">Step 1: System Parameters</a></li><li><a href="#-step-2-chirp-configuration-">Step 2: Chirp Configuration</a></li><li><a href="#-step-3-oob-demo-configuration-file-">Step 3: OOB Demo Configuration File</a></li><li><a href="#-assumptions-and-miscellaneous-information-">Assumptions and Miscellaneous Information</a></li><li><a href="#-testing-and-results-">Testing and Results</a></li></ul></div>
  <script src="../.metadata/.html/scripts/strapdown/vendor/bootstrap.min.js"></script>
  <div class="modal" id="imagemodal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="vertical-alignment-helper">
      <div class="modal-dialog vertical-align-center">
        <div class="modal-dialog">
          <div class="modal-content" style="margin-left: auto;margin-right: auto;">
            <div class="modal-body">
              <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <img src="" class="imagepreview"> </div>
					

Dear Anil, 

We have given up on using the TIDEP-0090 and have reverted to using TIDEP-0092. 

We were able to configure it with our desired configuration, and we would like to add a TrackID to the trackers. 

Is it possible to get some assistance in that regard?

Regards

Hi Jad,

Most of the configurations that we generate for the demos are hand generated. It isn't difficult, once you understand the different parameters of an FMCW chirp/frame, and how they relate to requirements (like max-velocity, max-range or range resolution).  We typically don't use the sensing estimator. It is simply a tool to help customers generate a useful configuration quicker.

I will pull in other folks to answer your questions on the traffic monitoring configuration not passing. Could you let us know what the error was with the previous configuration? Could you also try the following.

dfeDataOutputMode 1

channelCfg 15 3 0

adcCfg 2 1

adcbufCfg 0 1 1 1

profileCfg 0 76 2 4.2 15.84 0 0 14.24 1 64 6014 0 0 48

chirpCfg 0 0 0 0 0 0 0 1

frameCfg 0 0 128 0 40 1 0

lowPower 0 0

guiMonitor 1 0 0 0

cfarCfg 4 4 15 16 8 4 0 63 0

doaCfg 3 1047 3 600 10 50

dbscanCfg 1 4 12 13 20 3 128

trackingCfg 1 10 10 2 3 25

sensorStart  

Regards