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.

CC2650: contiki/6lbr: communication is terriable while using contikimac_driver

Part Number: CC2650

Hi all,

I'm trying cc26xx-web-demo example on a CC2650STK with deferent RDC driver (of course, rdc of slip-radio was changed accordingly). Everything works like a charm with nullrdc_driver. MQTT gets message every 30 seconds as programmed. However with contikimac_driver, MQTT broker only get message every few minutes. I tried both IBM MQTT server and local broker with same behavior.
It seems that cc26xx node doesn't send out ACK in time and cause lots TCP_DUP_ACK from the broker.

wireshark screenshot while using nullrdc_driver

wireshark sniffer while using contikimac_driver

My project-config.h:

#define IEEE802154_CONF_PANID            0xABCD
#define RF_CORE_CONF_CHANNEL                 25
#define RF_BLE_CONF_ENABLED                   0
#define UIP_CONF_DS6_DEFAULT_PREFIX     0xfd00
/*---------------------------------------------------------------------------*/
/* Enable/Disable Components of this Demo */
#define CC26XX_WEB_DEMO_CONF_MQTT_CLIENT      1
#define CC26XX_WEB_DEMO_CONF_6LBR_CLIENT      1
#define CC26XX_WEB_DEMO_CONF_COAP_SERVER      0
#define CC26XX_WEB_DEMO_CONF_NET_UART         0

/*
 * ADC sensor functionality. To test this, an external voltage source should be
 * connected to DIO23
 * Enable/Disable DIO23 ADC reading by setting CC26XX_WEB_DEMO_CONF_ADC_DEMO
 */
#define CC26XX_WEB_DEMO_CONF_ADC_DEMO         0
/*---------------------------------------------------------------------------*/
/* Enable the ROM bootloader */
#define ROM_BOOTLOADER_ENABLE                 1
/*---------------------------------------------------------------------------*/
/*
 * Shrink the size of the uIP buffer, routing table and ND cache.
 * Set the TCP MSS
 */
#define UIP_CONF_BUFFER_SIZE                900
#define NBR_TABLE_CONF_MAX_NEIGHBORS          5
#define UIP_CONF_MAX_ROUTES                   5   
#define UIP_CONF_TCP_MSS                    128

#define CC2650_FAST_RADIO_STARTUP 0

#ifndef NETSTACK_CONF_MAC
#define NETSTACK_CONF_MAC           csma_driver
#endif

#ifndef NETSTACK_CONF_RDC
//#define NETSTACK_CONF_RDC           nullrdc_driver
#define NETSTACK_CONF_RDC           contikimac_driver
#endif

  • I suggest you to test Contiki-NG instead of Contiki.
  • Thank you for your reply. Contiki-ng is relatively new and under active development. But it appears to use different netstack. 

    Simon Duquennoy @simonduq Nov 22 2017 19:05  gitter.im/.../Developers
    hi @necropaz
    ContikiMAC is no longer supported in NG. We only maintain standard protocols (while still providing hooks for experimentation with anything). At the MAC layer that is currently CSMA (15.4 non-beacon enabled) and 15.4-2015 TSCH. 15.4-2015 CSL (similar to ContikiMAC) is on the roadmap as a long-term goal.

  • Yes, I know this. Do you have any specific reason need to use Contiki instead of Contiki-NG?
  • As I understand contikimac is quite energy optimized supporting Sleepy Routers. Also contiki is a working system which has been around for many years already. I just want to figure out how to make it work. There's guarantee that contiki-ng would be problem-free. I'd like to give some more time until I gave up and move on.

  • Hi,

    It is not much we can do to help you on this forum regarding this. I suggest to either use nullrdc driver, or if you want to make contikimac driver work contact the Contiki-OS community.