This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

HIDdemo does not connect to iOS

Hi,

I am running HIDdemo on  MSP-EXP430F5438 + PAN1323ETU kit and cannot connect to iOS (8.3). It is working perfectly fine with Android. The HID_Register_Device_Server and HID_Register_Device_SDP_Record return successfully and the settings are on secure simple pairing. iOS discovers HIDdemo, but does not connect and displays "Pairing Unsuccessful "device_name_here" is not supported ". HIDdemo does not even enter GAP callbacks (no msgs displayed on Terminal). After this, iOS does not even display HIDdemo on its list of available devices even after restarting it. As mentioned earlier it works fine with Android. Thanks for your help !

Darius

:

  • Hi Darius,

    Can you please share some logs (air sniffer/snoop/etc)?

    Regards,
    Gigi Joseph.
  • Hi Gigi,

    Unfortunately I don't have a sniffer but below you will find the iOS log (HID device name DARIUS_38):

    2015-08-28T13:11:34.418 DeviceManager.cpp:290 updateInquiryResult Info Core Discovered device 00:17:E9:D3:56:7A "DARIUS_38"
    2015-08-28T13:11:34.419 ServiceManager.cpp:1006 getRequiredInfoForDiscovery Info Core HandsfreeService supports device 00:17:E9:D3:56:7A "DARIUS_38"
    2015-08-28T13:11:35.018 ServiceManager.cpp:586 connectServices Info Core Connecting 0xFFFFD7BF services to device 00:17:E9:D3:56:7A "DARIUS_38"
    2015-08-28T13:11:35.019 SdpManager.cpp:106 updateSupportedProfiles Info Core Running SDP on device 00:17:E9:D3:56:7A "DARIUS_38"
    2015-08-28T13:11:35.019 ConnectionManager.cpp:570 notifyConnectionStateChanged Info Core Sending 'connection in progress' notification
    2015-08-28T13:11:35.020 SdpClient.cpp:193 queryDeviceInternal Info Core Connecting to SDP server for device 00:17:E9:D3:56:7A "DARIUS_38"
    2015-08-28T13:11:35.272 LocalDevice.cpp:902 notifyStatusEvent Info Core Sending 'discovery stopped' event to local device listeners
    2015-08-28T13:11:36.499 StackManager.cpp:1850 securityManagerLinkKeyRequest Info Core Link key requested for device 00:17:E9:D3:56:7A
    2015-08-28T13:11:36.605 SdpClient.cpp:530 sdpServiceAttributeResponse Info Core Found service class HumanInterfaceDeviceService
    2015-08-28T13:11:36.840 SdpClient.cpp:258 disconnect Info Core Disconnecting from SDP
    2015-08-28T13:11:36.900 SdpClient.cpp:269 DisconnectInd Info Core SDP disconnected from 00:17:E9:D3:56:7A "DARIUS_38"
    2015-08-28T13:11:36.901 SdpManager.cpp:94 handleSdpQueryComplete Info Core SDP query has completed for device 00:17:E9:D3:56:7A "DARIUS_38"
    2015-08-28T13:11:38.707 ConnectionManager.cpp:570 notifyConnectionStateChanged Info Core Sending 'connection not in progress' notification
    2015-08-28T13:11:38.707 LocalDevice.cpp:902 notifyStatusEvent Info Core Sending 'discovery started' event to local device listeners
    2015-08-28T13:11:40.102 DeviceManager.cpp:290 updateInquiryResult Info Core Discovered device 00:17:E9:D3:56:7A "DARIUS_38"
    2015-08-28T13:11:40.103 DAgent.cpp:514 notifyDiscoveryEvent Info Discovery Sending 'device lost' event for device 00:17:E9:D3:56:7A "DARIUS_38"

    Below, I have included the descriptor related info for your reference:

    static Byte_t MediaDescriptor[] =
    {
    0x05, 0x0c, // USAGE_PAGE (Consumer Devices)
    0x09, 0x01, // USAGE (Consumer Control)
    0xa1, 0x01, // COLLECTION (Application)
    0x15, 0x00, // LOGICAL_MINIMUM (0)
    0x25, 0x01, // LOGICAL_MAXIMUM (1)
    0x09, 0xcd, // USAGE (Pause/Play)
    0x09, 0xb5, // USAGE (Next)
    0x09, 0xb6, // USAGE (Prev)

    0x75, 0x01, // REPORT_SIZE (1)
    0x95, 0x03, // REPORT_COUNT (3)
    0x81, 0x06, // INPUT (Data,Var,Rel)

    0x95, 0x05, // REPORT_COUNT (5)
    0x81, 0x07, // INPUT (Cnst,Var,Rel)
    0xc0             // END_COLLECTION
    } ;

    Descriptor.DescriptorType = 0x22;
    Descriptor.DescriptorLength = sizeof(MediaDescriptor);
    Descriptor.Descriptor = MediaDescriptor; 

    Result = HID_Register_Device_SDP_Record(BluetoothStackID, (HID_NORMALLY_CONNECTABLE_BIT | HID_BATTERY_POWER_BIT), 0x0100, 0x0111, 0x80, 1, &Descriptor, "Darius_HID_39", &HIDDeviceServerSDPHandle);  //this returns successful

    Thanks,

    Darius