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

  • Hi,

    Ignacio said:
    1. If I use the Light switch server sample, it is detected as a plug by the alexa echo device.

    If you mean the light example, then yes, it makes sense since it has a Generic OnOff server, that it appears as a controllable plug from the smartphone app. The Generic OnOff server indicates something that can be turned on or off. It can be a light, or any other equipment that can be either on or off.

    Ignacio said:
    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 assume you mean the light switch example, which does have one to four Generic OnOff client models (depending on number of switches available on the board).

    I would assume that Echo was supposed to connect also to switches, in order to configure those switches into the network. This means there is something strange going on.

    Unfortunately we are currently in the middle of summer vacation season here in Norway, and so further investigation into the issue will likely take some time. My best advice would be to try to figure out what Bluetooth mesh models are supported by Echo, and how they should appear in the app. If there's an official list, then using models from that list should work, and if a model on that list does not work then we can investigate further why that is so.

    Regards,
    Terje

Related