how to use the mesh client control to configue the bluetooth mesh server

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
mawu_4270096
Level 5
Level 5
50 replies posted 25 replies posted 10 replies posted

Hi  all:

    there is  configuration interface on the  mesh client control,  show it as  below:

_1{@A}WD2R1GG7IT~TMFXT1.png

now I  want to use it  send the Heartbeat subscription and  publication  message to  the light  CTL server by the  HCI Uart

the  client  have received the HCI  message correctly and send the message successfully. however the  light CTL server

can't  receive  the  message iin the  message receive  callback  API(get_msg_handler_callback).

the  source  and  Destination address of  message  is  corrent !

now  I  don't know how to settle it .

thanks!

mandy

0 Likes
1 Solution

Hi mandy wu,

I think you are using wrong clientcontrol (from some other version of WICED). Please try to use ClientControl from same WICED SDK, because there can be code changes on both clientControl as well as mesh_provision_client.

I just tried with the WICED 6.4.0.61 (WICED-Studio 6.4.0 Installer (Windows) ) using 20735 device and it just worked well.

Please check the WICED version from version.txt file in the SDK install folder directory. I am using public release of WICED 6.4 (WICED6.4.0.61) and the version.txt has below infrormation:

WICED-SDK Version: Wiced_006.004.000.0061

b38d42ee8368ff374b13514286120afd9e788a07

If you are using any other version of WICED please let me know and try to upgrade to the public release (link given above).

Also I am attaching the clientcontrol from WICED 6.4.0.61 here. Please try your experiment with it also.

Thanks,

-Dheeraj

View solution in original post

21 Replies
DheerajPK_41
Moderator
Moderator
Moderator
750 replies posted 500 likes received 500 replies posted

Hi mawu_4270096

Did you give correct 'app key index' along with the destination?

If you have used 'Light Control' tab to provision and configure your device, then from the networkname.JSON (database) you can get the valid 'app key index' and you will have to provide it in the clientcontrol.

Thanks,

-Dheeraj

0 Likes
mawu_4270096
Level 5
Level 5
50 replies posted 25 replies posted 10 replies posted

sorry.    I use the nordic app  nRF Mesh to connect the bt mesh device, I don't  know why the configuration server  model can't bind a app  key, however other models for example the generic on/off model can bind  a app key .

           however the  cypress app have not the configuration server model interface. currently I have not used the 'Light Control' tab  to provision.  I use the mobile phone to provision my devices  and  configure my devices using the 'Light Control' tab !

thanks!

mandy

0 Likes

From mobile app also, you can export the database (.json) of the network to the SD card and get the app key index value. (There will be an option to export as well as import the database).

Every first element of all mesh device includes Configuration server and Health server models.

mawu_4270096
Level 5
Level 5
50 replies posted 25 replies posted 10 replies posted

there is  a bug for the mesh client control . it can scan the  unprovisioned devices but when I  click the provision and configure button . it  mentions  the UUID not found!

0 Likes

Hi mawu_4270096,

You have to create a network, open it and then scan for unprovisioned devices before clicking on 'provision and configure' button. I think you missed to create a network and open it.

Could you please go through the below document.

https://www.cypress.com/file/462491/download

Steps you can follow:

You need to use MeshClientControl along with mesh_provision_client app to provision and configure a mesh device.

1. Open WICED HCI UART of mesh_provision_client app in MeshClientControl.

2. Provide a network name and click on the create button. And click on the open button which will open the created network.

3. Scan for unprovisioned beacons.

4. If 'Provision UUID' field got filled with valid UUID of the mesh device which to be provisioned then click on the 'provision and Configure' button.

Also please use correct baud rate based on the hardware which you are using.

Thanks,

-Dheeraj

0 Likes
mawu_4270096
Level 5
Level 5
50 replies posted 25 replies posted 10 replies posted

Hi DheerajP_41 :

      I have create a network,and open the network,I  have referenced the MeshClient_and_ClientControlMesh_App_User_Guide.pdf

0 Likes

Hi mawu_4270096,

I just provisioned a server device using mesh_provision_client+MeshClientControl - lightcontrol tab.

I have used ModusToolbox1.1+BTSDK1.4. Are you using the same versions of SDKs? Otherwise please update.

https://www.cypress.com/products/modustoolbox-software-environment

ModusToolbox BT SDK 1.4

Can I know which hardware board are you using?

Also which is the OS of your system?

Thanks,

-Dheeraj

0 Likes
mawu_4270096
Level 5
Level 5
50 replies posted 25 replies posted 10 replies posted

the created network can scan the unprovisioned device,however the provisioned UUID field can't  be  filled  with the UUID of discovered device!

0 Likes
mawu_4270096
Level 5
Level 5
50 replies posted 25 replies posted 10 replies posted

I  use the CYW20735 platform and my PC OS  is win8.1

0 Likes

So, are you using WICED to download the app to 20735 board? I assume you are not using Modus SDK.

Could you please provide below details?

->Which WICED version you are using?

->Which mesh applications you are using?

Also, could you please try with the attached MeshClientControl?

Thanks,

-Dheeraj

0 Likes
mawu_4270096
Level 5
Level 5
50 replies posted 25 replies posted 10 replies posted

Hi DheerajP_41 :

     the wiced version is 6.4

    mesh application is  mesh_provision_client

can  ModusToolbox BT SDK 1.4   be used on the CYW20735 platform?

0 Likes

Hi mandy wu,

I think you are using wrong clientcontrol (from some other version of WICED). Please try to use ClientControl from same WICED SDK, because there can be code changes on both clientControl as well as mesh_provision_client.

I just tried with the WICED 6.4.0.61 (WICED-Studio 6.4.0 Installer (Windows) ) using 20735 device and it just worked well.

Please check the WICED version from version.txt file in the SDK install folder directory. I am using public release of WICED 6.4 (WICED6.4.0.61) and the version.txt has below infrormation:

WICED-SDK Version: Wiced_006.004.000.0061

b38d42ee8368ff374b13514286120afd9e788a07

If you are using any other version of WICED please let me know and try to upgrade to the public release (link given above).

Also I am attaching the clientcontrol from WICED 6.4.0.61 here. Please try your experiment with it also.

Thanks,

-Dheeraj

mawu_4270096
Level 5
Level 5
50 replies posted 25 replies posted 10 replies posted

Hi  DheerajP_41

   now I  use the  SDK WICED 6.4 (WICED6.4.0.61) and also use the mesh client control to create a network, the device can join the network successfully. I can use mesh client control to turn on/off the remote diammable light.

now I want to use mesh client control to configue the device. there is a configuration interface on the mesh client control.I want to use it to configue the heartbeat subscription message and the heartbeat publication message for the device. I can get the network key, network key index,app key,app key index from the xxx.json. when I send heartbeat publication by the 'set' button.the message callback function of configuration server model of remote device have not been called and the configuration server have not received any meaasges!

the message callback function of configuration server model is defined as below:

   { MESH_COMPANY_ID_BT_SIG, WICED_BT_MESH_CORE_MODEL_ID_CONFIG_SRV, mesh_config_server_message_handler, NULL, NULL },

   { MESH_COMPANY_ID_BT_SIG, WICED_BT_MESH_CORE_MODEL_ID_HEALTH_SRV, mesh_health_server_message_handler, NULL, NULL },

so the mesh_config_server_message_handler is never  called

thanks

mandy

 

0 Likes
mawu_4270096
Level 5
Level 5
50 replies posted 25 replies posted 10 replies posted

Hi  DheerajP_41

when I use the mesh light ctl server as the mesh server, and use the mesh provision client as the client ,the mesh provision client can discover  the mesh light ctl server,but  when I  provision and configue mesh light ctl server ,there is a error message  on the mesh client control as below:

    1568950176(1).png

Node unreachable: opcode: 161a addr:4

0 Likes
mawu_4270096
Level 5
Level 5
50 replies posted 25 replies posted 10 replies posted

Hi  DheerajP_41:

I have searched the whole SDK project, I think the process_tx_complete function is called, and the tx_status is

TX_STATUS_FAILED

void process_tx_complete(uint8_t *p_buffer, uint16_t len)

{

    int i;

    wiced_bt_mesh_event_t *p_event = wiced_bt_mesh_event_from_hci_header(&p_buffer, &len);

    if (p_event == NULL)

        return;

    uint16_t num_addr;

    uint16_t addr;

    uint16_t hci_opcode = p_buffer[0] + ((uint32_t)p_buffer[1] << 8);

    uint8_t  tx_status = p_buffer[2];

    if (tx_status == TX_STATUS_FAILED)

    {

        num_addr = p_buffer[3] + ((uint32_t)p_buffer[4] << 8);

        for (i = 0; i < num_addr; i++)

        {

            addr = p_buffer[5 + (2 * i)] + ((uint32_t)p_buffer[6 + (2 * i)] << 8);

            Log("Node unreachable: opcode:%x addr:%x", hci_opcode, addr);

        }

        //  ToDo notify parent  mesh_provision_process_event(WICED_BT_MESH_CONFIG_APPKEY_STATUS, p_event, &data);

    }

    else

    {

        addr = p_buffer[3] + ((uint32_t)p_buffer[4] << 8);

        // Log("Mesh Tx Complete: opcode:%x addr:%x", hci_opcode, addr);

    }

    wiced_bt_mesh_release_event(p_event);

}

0 Likes

Hi mandy wu,

If you give correct app_key_index and destination in the configuration tab of client control, then the sent message should receive at the destination.

Note:For GET messages you have to use Generic appKey index and for SET messages you have to use Setup appKey index.

Let me try the same at my side and let you know the result soon.

"Node unreachable" means, one of the node in the network is not available/reachable when a security update happens in the network (Eg: Key refreshment).This happens to you during testing because you may be using the same network (where you have done many node add/remove operations) for all your experiments. While testing please use different networks for different types of mesh experiments.

Thanks,

-Dheeraj

0 Likes
mawu_4270096
Level 5
Level 5
50 replies posted 25 replies posted 10 replies posted

Hi  DheerajP_41

thank you for your reply! Do you have a try at your side?

0 Likes

HI mawu_4270096 ,

Please make sure you enable the following flags in the makefile.mk of the application you use. I tried to set heartbeat parameters using the light_dimmable app and it works.

MESH_MODELS_DEBUG := 1

C_FLAGS += -DWICED_BT_TRACE_ENABLE

And please check the client control logs for the sent messages and the response from the server.

Please make sure you mention the correct address in the Heartbeat subscription/publication rowa of client control also.

Thanks,

-Dheeraj

mawu_4270096
Level 5
Level 5
50 replies posted 25 replies posted 10 replies posted

thank you!

   I  will do a try and tell you the test result as soon as possible

thanks!

mandy

0 Likes