Gadget Settings for Classic Bluetooth

This topic describes the settings that your gadget must use to communicate with an Echo device over Classic Bluetooth (BR/EDR).

For a description of the pairing, connection, and reconnection communication flows that use these settings, see the following topics:

At the appropriate steps, the communication flows refer to this topic for the settings that the gadget must use to successfully complete the step.

For Alexa Gadgets Toolkit issues related to Bluetooth, see Bluetooth on the known issues page.

Extended Inquiry Response settings

When a user puts an Echo device into pairing mode, the Echo device scans for Bluetooth devices within range by sending out an inquiry request. For the Echo device to find the gadget over Classic Bluetooth, the gadget must respond to the Echo device's inquiry with an Extended Inquiry Response (EIR) that has the following parameters:

  • For section 0x06, there must be the following 128-bit UUID, little endian: 6088D2B3-983A-4EED-9F94-5AD1256816B7. To find general information about EIRs, see Volume 3, Part C, Section 8 of the Bluetooth Core Specification.
  • For section 0xFF (which is the manufacturer-specific data section), there must be 10 bytes of data, little endian, with the following format:
    Description Number of Bytes Value

    Bluetooth Vendor ID

    2

    This is your Bluetooth-provided vendor ID, if you have one. Otherwise you can set these bytes to 0xFFFF.

    Bluetooth Product ID

    2

    You can use your own internal product ID or set these bytes to zeros.

    Amazon SIG VID

    2

    0x0171

    Amazon Gadget UUID

    4

    0xFE151510

Pairing parameters

Pairing is the process by which an Echo device and a gadget exchange initial information such as I/O capabilities, authentication requirements, and other data, so that they can communicate over Bluetooth. If pairing is successful, the Echo device and the gadget store the settings so that they can reconnect in the future without user intervention.

To pair with an Echo device, a gadget must use the following pairing parameters:

  • IO Capability – No Input, No Output (value of 0x03)
  • OOB Data Present – OOB Data Not Present (value of 0x0)
  • Authentication Requirements – MITM protection not required, General Bonding, Numeric Comparison, Automatic Accept allowed (value of 0x04)

For more information about these settings, see Volume 2, Part E, Section 7.1.29 of the Bluetooth Specification.

Service Discovery Protocol (SDP) database settings

Every time an Echo device establishes a communication channel with a gadget, the Echo device and the gadget use SDP to exchange information about their services. For this step to be successful, the gadget's local SDP database must contain the following 128-bit UUID as the service profile: 6088D2B3-983A-4EED-9F94-5AD1256816B7 and the following settings:

Alexa Gadget SDP Database Settings

SDP initiation settings

If a gadget and an Echo device are paired but become disconnected, the gadget can reconnect to the Echo device by initiating an SDP connection. To do so, the gadget must use the following settings:

  • The gadget's RFCOMM server must have a service class UUID of 0x1201. The minimum value of the maximum transmission unit (MTU) for the RFCOMM server is 512.
  • The gadget uses the following parameters for initiating SDP:
    Parameter Value

    SDP PSM

    0x0001

    Service Search UUIDs

    0x1101 (SPP)

    Attribute ID list

    0x0000 (Service Record Handle)

SDP record example

The following example shows SDP records from a gadget. It shows the three services: OTA RFCOMM, data RFCOMM, and the custom UUID used for identification.

Service Name: SPP Port DATA
Service RecHandle: 0x10000
Service Class ID List:
  "Generic Networking" (0x1201)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 4

Service Name: Gadget
Service RecHandle: 0x10001
Service Class ID List:
  UUID 128: 6088d2b3-983a-4eed-9f94-5ad1256816b7
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 4

Service Name: SPP Port OTA
Service RecHandle: 0x10002
Service Class ID List:
  "Serial Port" (0x1101)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 2