Hello. I've been trying to use the IWR1443 to measure distances from an UAV at a distance of 50 meters. I've earlier used it for measuring objects at a distance of 30 meters with succes. When i did that i used the mmWave Demo Visualiser tool to produce the following profile:
% ***************************************************************
% Created for SDK ver:01.02
% Created using Visualizer ver:2.0.0.0
% Frequency:77
% Platform:xWR14xx
% Scene Classifier:best_range_res
% Azimuth Resolution(deg):90
% Range Resolution(m):0.04
% Maximum unambiguous Range(m):29.65
% Maximum Radial Velocity(m/s):0.32
% Radial velocity resolution(m/s):0.04
% Frame Duration(msec):200
% Range Detection Threshold (dB):25
% Range Peak Grouping:enabled
% Doppler Peak Grouping:disabled
% Static clutter removal:disabled
% ***************************************************************
sensorStop
flushCfg
dfeDataOutputMode 1
channelCfg 3 1 0
adcCfg 2 1
adcbufCfg 0 1 0 1
profileCfg 0 77 2929 7 114.29 0 0 35 1 912 8580 0 0 30
chirpCfg 0 0 0 0 0 0 0 1
chirpCfg 1 1 0 0 0 0 0 0
frameCfg 0 0 16 0 200 1 0
lowPower 0 0
guiMonitor 1 1 0 0 0 0
cfarCfg 0 2 8 4 3 0 2134
peakGrouping 1 1 0 1 920
multiObjBeamForming 1 0.5
clutterRemoval 0
calibDcRangeSig 0 -5 8 256
compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
measureRangeBiasAndRxChanPhase 0 1.5 0.2
CQRxSatMonitor 0 3 11 121 0
CQSigImgMonitor 0 113 16
analogMonitor 1 1
sensorStart
The mmWave Demo Visualiser tool however doesn't have the capability to go up to 50 meters range. I am therefore using the mmWaveSensingEstimator tool to do this and modifying the profileCFG line in the profile above. The results i get is:
profileCFG: 0 77 7 4.1 220.89 0 0 18.1 1 1447 6706 0 0 30
This produces the reply “wrong configuration”. Furthermore i have tried to only change the Frequency Slope constant i.e. changing 35 to 18.1 in the same line. This produces an error aswell.
Following is a copy of the associated JSON-file from the mmWaveSensingEstimator tool:
{
"configGenerator": {
"createdBy": "mmWaveSensingEstimator",
"createdOn": "2020-01-05T13:01:29.740Z",
"isConfigIntermediate": 0
},
"currentVersion": {
"jsonCfgVersion": {
"major": 0,
"minor": 4,
"patch": 0
},
"DFPVersion": {
"major": 1,
"minor": 2,
"patch": 0
},
"SDKVersion": {
"major": 3,
"minor": 0,
"patch": 0
},
"mmwavelinkVersion": {
"major": 1,
"minor": 2,
"patch": 0
}
},
"lastBackwardCompatibleVersion": {
"DFPVersion": {
"major": 1,
"minor": 1,
"patch": 0
},
"SDKVersion": {
"major": 2,
"minor": 0,
"patch": 0
},
"mmwavelinkVersion": {
"major": 1,
"minor": 1,
"patch": 0
}
},
"systemConfig": {
"summary": "",
"sceneParameters": {
"ambientTemperature_degC": 20,
"maxDetectableRange_m": 50,
"rangeResolution_cm": 3.84,
"maxVelocity_kmph": 15,
"velocityResolution_kmph": 50,
"measurementRate": 10,
"typicalDetectedObjectRCS": 1
}
},
"regulatoryRestrictions": {
"frequencyRangeBegin_GHz": 77,
"frequencyRangeEnd_GHz": 81,
"maxBandwidthAllowed_MHz": 4000,
"maxTransmitPowerAllowed_dBm": 12
},
"processingChainConfig": {
"detectionChain": {
"name": "",
"detectionLoss": 1,
"systemLoss": 1,
"implementationMargin": 2,
"detectionSNR": 12,
"theoreticalRxAntennaGain": 9,
"theoreticalTxAntennaGain": 9
}
},
"mmWaveDevices": [
{
"mmWaveDeviceId": 0,
"rfConfig": {
"summary": "",
"waveformType": "singleFrameChirp",
"MIMOScheme": "TDM",
"rlChanCfg_t": {
"rxChannelEn": "0x3",
"txChannelEn": "0x1"
},
"rlAdcOutCfg_t": {
"fmt": {
"b2AdcBits": 2,
"b8FullScaleReducFctr": 0,
"b2AdcOutFmt": 2
}
},
"rlLowPowerModeCfg_t": {},
"rlProfiles": [
{
"rlProfileCfg_t": {
"profileId": 0,
"pfVcoSelect": "0x0",
"pfCalLutUpdate": "0x0",
"startFreqConst_GHz": 77,
"idleTimeConst_usec": 7,
"adcStartTimeConst_usec": 4.1,
"rampEndTime_usec": 220.8922804622222,
"txOutPowerBackoffCode": "0x0",
"txPhaseShifter": "0x0",
"freqSlopeConst_MHz_usec": 18.104910850524902,
"txStartTime_usec": 1,
"numAdcSamples": 1447,
"digOutSampleRate": 10000,
"hpfCornerFreq1": 0,
"hpfCornerFreq2": 0,
"rxGain_dB": "0x1E"
}
}
],
"rlChirps": [
{
"rlChirpCfg_t": {
"chirpStartIdx": 0,
"chirpEndIdx": 0,
"profileId": 0,
"startFreqVar_MHz": 0,
"freqSlopeVar_KHz_usec": 0,
"idleTimeVar_usec": 0,
"adcStartTimeVar_usec": 0,
"txEnable": "0x1"
}
}
],
"rlRfCalMonTimeUntConf_t": {
"calibMonTimeUnit": 1
},
"rlRfCalMonFreqLimitConf_t": {
"freqLimitLow_GHz": 77,
"freqLimitHigh_GHz": 81
},
"rlRfInitCalConf_t": {
"calibEnMask": "0x1FF0"
},
"rlRunTimeCalibConf_t": {
"oneTimeCalibEnMask": "0x0",
"periodicCalibEnMask": "0x0",
"calibPeriodicity": 10,
"reportEn": 1,
"txPowerCalMode": 0
},
"rlFrameCfg_t": {
"chirpEndIdx": 0,
"chirpStartIdx": 0,
"numLoops": 1,
"numFrames": 0,
"framePeriodicity_msec": 0.228
}
},
"rawDataCaptureConfig": {
"rlDevDataFmtCfg_t": {
"iqSwapSel": 0,
"chInterleave": 1
}
},
"monitoringConfig": {}
}
]
}
One thing i find weird about this file is that the DigOutSampleRate is 10000 in the JSON-file but the sampling rate in the mmWaveEstimator is only 6706.
If anybody can shed some light on this problem, the help would be much appreciated.
Kind regards Jonas.