This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Problem of connection between Nordic's zigbee device and other Zigbee device

Hi,

I have a problem with a specific Zigbee certified device that I can't connect to my Nordic device.

When trying to connect to the device, I go to see the status:


void zboss_signal_handler(zb_uint8_t param)
{
    zb_zdo_app_signal_hdr_t  * p_sg_p = NULL;
    zb_zdo_app_signal_type_t   sig    = zb_get_app_signal(param, &p_sg_p);
    zb_ret_t                   status = ZB_GET_APP_SIGNAL_STATUS(param);
    zb_bool_t                  comm_status;

    switch (sig)
    {
        case ZB_BDB_SIGNAL_DEVICE_FIRST_START:
        case ZB_BDB_SIGNAL_DEVICE_REBOOT:
            
            if (status == RET_OK)
                        {
                NRF_LOG_INFO("Joined network successfully");
                bsp_board_led_on(ZIGBEE_NETWORK_STATE_LED);
            }

and it is equal to -1, so it is not RET_OK.

It's the first time that I have this problem of interoperability. Is it necessary to do something specific so that the Nordic device is visible from any other Zigbee device?

Best regards,

Raffaela

Parents Reply Children
  • Hi,

    You should call zb_bdb_set_legacy_device_support(1) after bdb_start_top_level_commissioning(). I usually call it inside the zboss_signal_handler like this:

    case ZB_BDB_SIGNAL_DEVICE_FIRST_START: // Device started and commissioned first time after NVRAM erase.
    case ZB_BDB_SIGNAL_DEVICE_REBOOT:      // BDB initialization completed after device reboot, use NVRAM contents during initialization. Device joined/rejoined and started.			
    					if(status==RET_OK)
    						{
    							NRF_LOG_INFO("Start network steering.");
    							bsp_board_led_on(ZIGBEE_NETWORK_STATE_LED);
    							UNUSED_RETURN_VALUE(bdb_start_top_level_commissioning(ZB_BDB_NETWORK_STEERING));
    
    						}
    						 else
                {
                    NRF_LOG_ERROR("Device startup failed. Status: %d. Retry network formation after 1 second.", status);
                    bsp_board_led_off(ZIGBEE_NETWORK_STATE_LED);
                    UNUSED_RETURN_VALUE(ZB_SCHEDULE_ALARM(bdb_restart_top_level_commissioning, 0, ZB_TIME_ONE_SECOND));
                        
                }
    						zb_bdb_set_legacy_device_support(1);
    						break;

    The NRF LOG module is enable as default in all our examples, with UART backend and baudrate 1000000, see the following lines in sdk_config.h:

    // <e> NRF_LOG_ENABLED - nrf_log - Logger
    //==========================================================
    #ifndef NRF_LOG_ENABLED
    #define NRF_LOG_ENABLED 1
    #endif
    
    //==========================================================
    // <e> NRF_LOG_BACKEND_UART_ENABLED - nrf_log_backend_uart - Log UART backend
    //==========================================================
    #ifndef NRF_LOG_BACKEND_UART_ENABLED
    #define NRF_LOG_BACKEND_UART_ENABLED 1
    #endif

    You can use a terminal program like PuTTy to see the log output using the following UART settings:

    • 1000000 bit/s,
    • 8-bit-long word,
    • no parity,
    • 1-bit stop.

    I have also pass the sniffer trace you sent me to our Zigbee developers to see if they have any more input in the matter. I will update this case with more information when I get feedback from them. I think if you are able to also give us the log output of the device it will help.

    Best regards,

    Marjeris

  • Hi Marjeris,

    Sorry for the late answer. I put the function like you did but it changed nothing.

    I did a screenshot of the terminal Putty during the commissioning: I attached the screen.

    Thank you so much,

    Raffaela

  • Hi Raffaela,

    I just wanted to let you know that I am waiting for feedback of our Zigbee team to continue with this case. Sorry for the delays.

    Best regards,

    Marjeris

  • Hi Marjeris,

    Thank you so much; I'll be waiting you!

    Best regards,

    Raffaela

  • Hi Raffaela,

    Could you try using zb_set_network_router_role_legacy(IEEE_CHANNEL_MASK) instead of zb_set_network_router_role() when initializing the device?

    Best regards,

    Marjeris

Related