nRF5 SDK for Mesh v5.0.0 support with Amazon echo device

Hi

According to Amazon documentation, it is possible to connect a smart home device to Alexa with the Bluetooth Low-Energy (BLE) mesh wireless communication technology.

These are the mesh requirements:

Bluetooth requirements
The Amazon Echo supports the BLE Mesh v1.1 protocol defined by the Bluetooth Special Interest Group (SIG).

For details about BLE Mesh v1.1, see the Bluetooth Specification List and the following specifications:

Mesh Profile 1.0.1
Mesh Model 1.0.1
Mesh Device Properties 1.1
Mesh Configuration Database 1.0

https://developer.amazon.com/en-US/docs/alexa/smarthome/bluetooth-support.html

It seems that the nRF5 SDK for Mesh complies with these premises. I have tried running a light switch client from the nRF5 SDK for Mesh v5.0.0 on an nRF52dk but it could not be detected while scanning for devicesc by any of my echo devices (none of them are 1st gen). The device can be detected on the nRF mesh ios app.

I have attached below the RTT logs while running a scan from Alexa environment and also from the nRF mesh app.

Are any of the mesh samples compatible with Amazon Echo devices? If not, how to make them compatible?

Thanks

<t:          0>, main.c,  369, ----- BLE Mesh Light Switch Client Demo -----
<t:      13023>, main.c,  328, Initializing and adding models
<t:      19310>, mesh_app_utils.c,   66, Device UUID (raw): A8FBE423752045ACAF3F959D76A591D7
<t:      19314>, mesh_app_utils.c,   67, Device UUID : A8FBE423-7520-45AC-AF3F-959D76A591D7
<t:      19326>, main.c,  416, 
		------------------------------------------------------------------------------------
		 Button/RTT 1) Send a message to the odd group (address: 0xC003) to turn on LED 1.
		 Button/RTT 2) Send a message to the odd group (address: 0xC003) to turn off LED 1.
		 Button/RTT 3) Send a message to the even group (address: 0xC002) to turn on LED 1.
		 Button/RTT 4) Send a message to the even group (address: 0xC002) to turn off LED 1.
		------------------------------------------------------------------------------------
<t:    5240729>, mesh_gatt.c,  576, New MTU: 66
<t:    5242210>, ble_softdevice_support.c,  104, Successfully updated connection parameters
<t:    5317903>, ble_softdevice_support.c,  104, Successfully updated connection parameters
<t:    5352872>, main.c,  138, Successfully provisioned
<t:    5352878>, main.c,  133, Node Address: 0x04E5 
<t:    5359834>, proxy.c,  632, Connected
<t:    5368828>, mesh_gatt.c,  576, New MTU: 66
<t:    5369573>, proxy.c,  648, Disconnected
<t:    5566814>, proxy.c,  632, Connected
<t:    5576185>, mesh_gatt.c,  576, New MTU: 66
<t:    5576923>, proxy.c,  670, TX ready
<t:    5576933>, proxy.c,  683, TX complete
<t:    5577434>, proxy.c,  675, RX
<t:    5577438>, proxy.c,  606, RX GATT PDU type 0x2, len 20
<t:    5577457>, proxy.c,  683, TX complete
<t:    5577689>, ble_softdevice_support.c,  104, Successfully updated connection parameters
<t:    5587901>, proxy.c,  675, RX
<t:    5587905>, proxy.c,  606, RX GATT PDU type 0x0, len 29
<t:    5601029>, proxy.c,  675, RX
<t:    5601033>, proxy.c,  606, RX GATT PDU type 0x0, len 29
<t:    5601067>, proxy.c,  675, RX
<t:    5601071>, proxy.c,  606, RX GATT PDU type 0x0, len 21
<t:    5601102>, config_server.c,  630, dsm_appkey_add(appkey_handle:0 appkey_index:0)
<t:    5601117>, proxy.c,  683, TX complete
<t:    5601122>, proxy.c,  683, TX complete
<t:    5614134>, proxy.c,  675, RX
<t:    5614138>, proxy.c,  606, RX GATT PDU type 0x0, len 21
<t:    5614181>, proxy.c,  683, TX complete
<t:    5614187>, proxy.c,  683, TX complete
<t:    5614192>, proxy.c,  683, TX complete
<t:    5627242>, proxy.c,  675, RX
<t:    5627245>, proxy.c,  606, RX GATT PDU type 0x0, len 24
<t:    5627281>, proxy.c,  675, RX
<t:    5627285>, proxy.c,  606, RX GATT PDU type 0x0, len 26
<t:    5627298>, config_server.c, 2553, Access  Info:
		element_index=0		model_id = 2-FFFF		model_handle=1
<t:    5627324>, proxy.c,  675, RX
<t:    5627326>, proxy.c,  606, RX GATT PDU type 0x0, len 24
<t:    5627337>, proxy.c,  683, TX complete
<t:    5633795>, proxy.c,  675, RX
<t:    5633798>, proxy.c,  606, RX GATT PDU type 0x0, len 22
<t:    5633831>, proxy.c,  683, TX complete
<t:    5642949>, proxy.c,  675, RX
<t:    5642953>, proxy.c,  606, RX GATT PDU type 0x0, len 26
<t:    5642986>, proxy.c,  683, TX complete
<t:    5646904>, proxy.c,  648, Disconnected
<t:    5778597>, proxy.c,  632, Connected
<t:    5787944>, mesh_gatt.c,  576, New MTU: 66
<t:    5788682>, proxy.c,  670, TX ready
<t:    5788693>, proxy.c,  683, TX complete
<t:    5789199>, proxy.c,  675, RX
<t:    5789203>, proxy.c,  606, RX GATT PDU type 0x2, len 40
<t:    5789224>, proxy.c,  683, TX complete
<t:    5789448>, ble_softdevice_support.c,  104, Successfully updated connection parameters
<t:    5865773>, ble_softdevice_support.c,  104, Successfully updated connection parameters
<t:    5978508>, proxy.c,  675, RX
<t:    5978511>, proxy.c,  606, RX GATT PDU type 0x0, len 22
<t:    6338950>, proxy.c,  675, RX
<t:    6338953>, proxy.c,  606, RX GATT PDU type 0x0, len 23
<t:    6705945>, proxy.c,  675, RX
<t:    6705949>, proxy.c,  606, RX GATT PDU type 0x0, len 23
<t:    7059854>, proxy.c,  675, RX
<t:    7059858>, proxy.c,  606, RX GATT PDU type 0x0, len 23
<t:    7215556>, proxy.c,  683, TX complete
<t:    7420289>, proxy.c,  675, RX
<t:    7420293>, proxy.c,  606, RX GATT PDU type 0x0, len 23
<t:    7780716>, proxy.c,  675, RX
<t:    7780720>, proxy.c,  606, RX GATT PDU type 0x0, len 23
<t:          0>, main.c,  369, ----- BLE Mesh Light Switch Client Demo -----
<t:      13179>, main.c,  328, Initializing and adding models
<t:      19444>, mesh_app_utils.c,   66, Device UUID (raw): A8FBE423752045ACAF3F959D76A591D7
<t:      19448>, mesh_app_utils.c,   67, Device UUID : A8FBE423-7520-45AC-AF3F-959D76A591D7
<t:      19460>, main.c,  416, 
		------------------------------------------------------------------------------------
		 Button/RTT 1) Send a message to the odd group (address: 0xC003) to turn on LED 1.
		 Button/RTT 2) Send a message to the odd group (address: 0xC003) to turn off LED 1.
		 Button/RTT 3) Send a message to the even group (address: 0xC002) to turn on LED 1.
		 Button/RTT 4) Send a message to the even group (address: 0xC002) to turn off LED 1.
		------------------------------------------------------------------------------------
<t:      36019>, mesh_gatt.c,  576, New MTU: 66
<t:     176824>, ble_softdevice_support.c,  104, Successfully updated connection parameters
<t:     284965>, mesh_gatt.c,  576, New MTU: 66
<t:     757686>, main.c,  138, Successfully provisioned
<t:     757692>, main.c,  133, Node Address: 0x0012 
<t:     771592>, proxy.c,  632, Connected
<t:     784328>, ble_softdevice_support.c,  104, Successfully updated connection parameters
<t:     890503>, mesh_gatt.c,  576, New MTU: 66
<t:    1047772>, proxy.c,  670, TX ready
<t:    1047779>, proxy.c,  683, TX complete
<t:    1063504>, proxy.c,  675, RX
<t:    1063506>, proxy.c,  606, RX GATT PDU type 0x2, len 19
<t:    1063519>, proxy.c,  683, TX complete
<t:    1079239>, proxy.c,  675, RX
<t:    1079246>, proxy.c,  606, RX GATT PDU type 0x2, len 24
<t:    1079259>, proxy.c,  683, TX complete
<t:    1134289>, proxy.c,  675, RX
<t:    1134296>, proxy.c,  606, RX GATT PDU type 0x0, len 21
<t:    1134334>, proxy.c,  683, TX complete
<t:    1134339>, proxy.c,  683, TX complete
<t:    1134345>, proxy.c,  683, TX complete
<t:    1150018>, proxy.c,  675, RX
<t:    1150022>, proxy.c,  606, RX GATT PDU type 0x0, len 24
<t:    1150047>, proxy.c,  675, RX
<t:    1150053>, proxy.c,  606, RX GATT PDU type 0x0, len 20
<t:    1150076>, proxy.c,  683, TX complete

Parents
  • Hi,

    I am afraid we do not have any descriptions, neither in nRF5 SDK for Mesh, nor in nRF Connect SDK, of how to connect a Bluetooth mesh device to an Amazon Echo device. However: From the descriptions in the Amazon developer documentation it does sound like standard Bluetooth mesh devices, such as the ones in the examples in our SDKs, should be compatible with Amazon Echo devices. This means, if using examples that exposes standard Bluetooth mesh models, those should integrate with Amazon Echo devices, yes.

    Both of your logs indicate that a connection is made from a GATT device to the mesh device, but the log from the connection with the iOS connection contains more communication than that with the Echo connection. For instance, the iOS connection log indicates configuration of the mesh device (adding an application key.) It may look like the Echo device is not able to reconnect to the device after provisioning is finished, in order to do configuration of the device. Or, may it be that the provisioner is not actually the Echo device?

    Please note that for new projects we recommend using nRF Connect SDK, as the nRF5 SDK (and with it nRF5 SDK for Mesh) is in maintenance mode. See our nRF Connect SDK and nRF5 SDK statement. Have you tried the same with examples from the nRF Connect SDK?

    Regards,
    Terje

  • Hi,

    We have very limited experience with Echo devices in the context of Bluetooth mesh, and unfortunately we do not seem to have an Echo device of second or later generation. However, there are some things you could try to investigate further.

    If you have a different Bluetooth mesh device that is known to work with Echo devices, then you can compare the behaviour of that one with that of your project. Both through using the nRF Mesh app (to see what mesh models it uses, what the default configuration is, etc.) and by using the nRF Sniffer.

    Ignacio said:
    Some good progress over here. I have managed to connect the light switch server to my echo. It is detected as a plug.

    What functionality is currently not working, is the issue how the device appears on the Echo side? (I.e. it appears as a plug and not as a light? Are you still using the Power On/Off? There might be some heuristics used by the Echo to determine the type of device based on available models.)

    Regards,
    Terje

  • Hi Terje,

    Thanks, for your reply. It took me a while to come back as I was engaged with higher-priority projects.

    A couple of things to clarify:

    1. If I use the Light switch server sample, it is detected as a plug by the alexa echo device. See capture from the alexa iOS app. This sample implements generic on/off server and generic on/off mc models.

    2. If I use the light switch client, it is not detected by the alexa echo device. This sample implements generic on/off client model.

    I was wondering if changing the generic on/off client model to the power on/off client model would change things and the device will be added by alexa environment. What do you think? How can I swap one model for the other?

  • I think trying power on off client it is not going to change much.

    I think the generic on off client model is the correct mode. I have seen the below defines on the project:

    Do you think that tinkering with one of this defines could make the device to be detected by alexa echo?

Reply Children
No Data
Related