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.

LAUNCHXL-CC1350: Contiki webdemo MQTT Range issue

Part Number: LAUNCHXL-CC1350
Other Parts Discussed in Thread: CC1350

Hi,

We are working with CC1350 US Launchpads to create a mesh network (with webdemo code in Nodes and slip radio in Router)and send data via MQTT. But we are getting very poor range (max 40 Meter Line of Sight). We have changed the smart rf settings for 915 MHz and also changed frequency and RSSI thresholds.

Please check the following configurations that we are using,

#ifdef PROP_MODE_CONF_RSSI_THRESHOLD
#define PROP_MODE_RSSI_THRESHOLD PROP_MODE_CONF_RSSI_THRESHOLD
#else
#define PROP_MODE_RSSI_THRESHOLD 0x9C
#endif

#ifdef DOT_15_4G_CONF_FREQUENCY_BAND_ID
#define DOT_15_4G_FREQUENCY_BAND_ID DOT_15_4G_CONF_FREQUENCY_BAND_ID
#else
#define DOT_15_4G_FREQUENCY_BAND_ID DOT_15_4G_FREQUENCY_BAND_915
#endif

/* CMD_PROP_RADIO_DIV_SETUP */
rfc_CMD_PROP_RADIO_DIV_SETUP_t smartrf_settings_cmd_prop_radio_div_setup =
{
.commandNo = 0x3807,
.status = 0x0000,
.pNextOp = 0, // INSERT APPLICABLE POINTER: (uint8_t*)&xxx
.startTime = 0x00000000,
.startTrigger.triggerType = 0x0,
.startTrigger.bEnaCmd = 0x0,
.startTrigger.triggerNo = 0x0,
.startTrigger.pastTrig = 0x0,
.condition.rule = 0x1,
.condition.nSkip = 0x0,
.modulation.modType = 0x1,
.modulation.deviation = 0x64,
.symbolRate.preScale = 0xF,
.symbolRate.rateWord = 0x8000,
.rxBw = 0x24,
.preamConf.nPreamBytes = 0x3,
.preamConf.preamMode = 0x0,
.formatConf.nSwBits = 0x20,
.formatConf.bBitReversal = 0x0,
.formatConf.bMsbFirst = 0x1,
.formatConf.fecMode = 0x0,
.formatConf.whitenMode = 0x0,
.config.frontEndMode = 0x0,
.config.biasMode = 0x1,
.config.analogCfgMode = 0x0,
.config.bNoFsPowerUp = 0x0,
.txPower = 0xAB3F,
.pRegOverride = overrides,
.centerFreq = 0x0393,
.intFreq = 0x8000,
.loDivider = 0x05,
};

static uint32_t overrides[] =
{
// override_use_patch_prop_genfsk.xml
// PHY: Use MCE ROM bank 4, RFE RAM patch
MCE_RFE_OVERRIDE(0,4,0,1,0,0),
// override_synth_prop_863_930_div5.xml
// Synth: Set recommended RTRIM to 7
HW_REG_OVERRIDE(0x4038,0x0037),
// Synth: Set Fref to 4 MHz
(uint32_t)0x000684A3,
// Synth: Configure fine calibration setting
HW_REG_OVERRIDE(0x4020,0x7F00),
// Synth: Configure fine calibration setting
HW_REG_OVERRIDE(0x4064,0x0040),
// Synth: Configure fine calibration setting
(uint32_t)0xB1070503,
// Synth: Configure fine calibration setting
(uint32_t)0x05330523,
// Synth: Set loop bandwidth after lock to 20 kHz
(uint32_t)0x0A480583,
// Synth: Set loop bandwidth after lock to 20 kHz
(uint32_t)0x7AB80603,
// Synth: Configure VCO LDO (in ADI1, set VCOLDOCFG=0x9F to use voltage input reference)
ADI_REG_OVERRIDE(1,4,0x9F),
// Synth: Configure synth LDO (in ADI1, set SLDOCTL0.COMP_CAP=1)
ADI_HALFREG_OVERRIDE(1,7,0x4,0x4),
// Synth: Use 24 MHz XOSC as synth clock, enable extra PLL filtering
(uint32_t)0x02010403,
// Synth: Configure extra PLL filtering
(uint32_t)0x00108463,
// Synth: Increase synth programming timeout (0x04B0 RAT ticks = 300 us)
(uint32_t)0x04B00243,
// override_phy_rx_aaf_bw_0xd.xml
// Rx: Set anti-aliasing filter bandwidth to 0xD (in ADI0, set IFAMPCTL3[7:4]=0xD)
ADI_HALFREG_OVERRIDE(0,61,0xF,0xD),
// override_phy_gfsk_rx.xml
// Rx: Set LNA bias current trim offset to 3
(uint32_t)0x00038883,
// Rx: Freeze RSSI on sync found event
HW_REG_OVERRIDE(0x6084,0x35F1),
// override_phy_gfsk_pa_ramp_agc_reflevel_0x1a.xml
// Tx: Configure PA ramping setting (0x41). Rx: Set AGC reference level to 0x1A.
HW_REG_OVERRIDE(0x6088,0x411A),
// Tx: Configure PA ramping setting
HW_REG_OVERRIDE(0x608C,0x8213),
// override_phy_rx_rssi_offset_5db.xml
// Rx: Set RSSI offset to adjust reported RSSI by +5 dB
(uint32_t)0x00FB88A3,
// TX power override
// Tx: Set PA trim to max (in ADI0, set PACTL0=0xF8)
ADI_REG_OVERRIDE(0,12,0xF8),
(uint32_t)0xFFFFFFFF,
};

Please let me know if we are missing something or doing something wrong. Also what is the maximum range that we can achieve with CC1350 running contiki?

Thanks

Rahul

  • When I tested it on 868 band, it's about 50 meters too.
  • Ok Thanks for your valuable response.
    So please let me know if that is the good range with Contiki that we can achieve or can we achieve more?
  • You can try to use external antenna to see if you can reach more.
  • To test if the settings are correct: Have you tried the Launchpads using SmartRF Studio for range testing?
  • Hi,

    We are creating the settings from smart RF studio and copying it into Contiki, so i assume that the settings will be correct. Right?

    As per my understanding we will get more range if we test with smart rf studio. Please correct me if we are wrong.

    But we want good range when working with Contiki. So please let me know if we can get good range with Contiki.

    Thanks
    Rahul
  • Hi,

    We tried with "W1063" antenna and its adapter cable "MXFR01JA1000" but still we got the same range.

    Thanks
    Rahul
  • The W1063 antenna is more effective than the PCB antenna even with the cable so you should have gotten better range. Since SmartRF Studio and contiki in your case use the same settings you should get the same result. If not, it's something with contiki (not sure what but when getting poor/ strange results I find it useful to use the simplest hardware/ software to test as a reference)
  • Hi,

    You are correct. I totally agree on that. We are testing the range with smart RF studio now and let you know the updates.

    Thanks
    Rahul
  • Hi,

    We tried with smart rf studio and we are getting around 200 meter range. But when we tried the same configuration with Contiki stack we are getting only 40 meter of range. Please check our 1st post where we have provided our configuration. In that we have only replaced those 2 structure like override and other in smart rf setting file of contiki. Please let me know if we need to replace the whole. Or is this due to some other problem in contiki stack. Please let me know your thoughts.

    Thanks

    Rahul

  • I'm not a contiki expert so I forwarded your issue to a couple of others on the team: If you have verified the latest Contiki (with PR 1932 etc) RF performance would be the same. Then the only issue can be the contikiMAC, the problem here is that is uses a CCA threshold in order to BOTH send and receive frames. This effectively limits the sensitivity to -90 dBm (default setting). You can also try nullRDC which doesn't have this limitation
  • Hi,

    Thanks for your support and now we are able to get around 140 meter with nullrdc and nullmac. Also the threshold is #define PROP_MODE_RSSI_THRESHOLD 0x9C.
    Please let me know if that is the maximum we can get or is there anything that we are missing or anything that we can do to increase the range.

    Also it will be really helpful if you could let us know that maximum Range that TI is claiming for Contiki 6LOWPAN Webdemo sending MQTT packets on CC1350LP using on board antenna. It will really help us to evaluate how far we are and the additional efforts required etc.

    Thanks
    Rahul

  • It's unfortunately difficult to compare range tests 1 to 1 since the range will be dependent on how you place the TX and RX units, the place where you test (terrain, buildings, trees etc) and how much background noise there is.

    The excel sheet found here e2e.ti.com/.../375556 gives an estimate. contiki should give the same range as SmartRF Studio/ PER test in the SDK, did you test contiki setup side by side with SmartRF Studio this time?
  • Hi,

    The Range without any packet error in smart rf studio is around 140 meter for our device and we are getting almost same with Contiki also.

    But it seems like for joining the network it needs to be close then we can take the device to a distance where RSSI up to -100db it is transmitting. But when we restart the device at that distance it is not even connecting. Only after coming close enough like 40 meter it is getting connected, then after that it is keeping its connecting till 140 meter.

    So please let me know if there is anything like RSSI checking or something in contiki which is checking its strength while 1st connecting to network? Actually we are planning to place our devices at 140 meter apart and it will be fixed. Also there is a chance that it get restarted also.

    So please let me know your thoughts on not connecting to network when device is placed apart and powered on. 

    Thanks

    Rahul