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

  • Hi Raffaela,

    Thanks for the sniffer traces. I see that the joining procedure is started but not completed, but I am not sure why this is hapening. Do you also have the log output from the light_bulb example and can you attach them?

    I am a little unsure about what the "Many-to-One route request" send from the coordinator is for, but I am wondering if this is a legacy Zigbee PRO command. Have you tried setting zb_bdb_set_legacy_device_support(1)?

    Best regards,

    Marjeris

  • Hi Marjeris,

    I don't have the log output from the Light bulb: I don't know how to obtain this file.

    I have tried with zb_bdb_set_legacy_device_support(1): I tried to put this line in 2 points (in the 

    zboss_signal_handler and during the initialitation) but I don't see change in the commissioning. 
    Am I doing something wrong using this function?
    Thank you so much,
    Raffaela
  • 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

Related