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

Some questions about how to start the firmware's identification callback of an unprovisioned mesh devices.

Dear BLE mesh experts,

This is how the provisioning screen of my Android app looks:

The intention is to enable the user to provision various unprovisioned ble mesh devices with a single tap on the "Add to mesh" button. Please note that while this screen is visible the app continues to scan for unprovisioned devices. Pushing one of the "Identify" buttons starts the firmware's identification-start-callback (i.e.: mesh_provisionee_start_params_t->prov_device_identification_start_cb).

This is basically working if the app performs the following actions when any of the "Identify" buttons is pushed:

  1. Stop the provisioning scan.
  2. Connect to the device.
  3. Call MeshManagerApi.identifyNode();

The problem is that it takes up to 4 seconds from the moment an "Identify" button is pushed until the firmware actually starts identifying itself (prov_device_identification_start_cb() is called). What I'm trying to accomplish is to have the firmware react immediately. Hence a few questions:

  • Is it (from a technical point of view) OK if the Android app attempts to start device identification on the firmware while it is at the same time scanning for unprovisioned devices? Is there anything special that needs to be considered?
  • Also, is it mandatory for the Android app to connect to the device, before being able to start the device's identification?
  • Or would it technically be OK to start device identification without connecting to the device?

 Any clarifications on that matter, or any ideas how to accelerate the identification process are much appreciated.

Thank you!

Related