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

Multimedia Buttons example connection issue

Hello everybody,

I tested the example: https://github.com/Rallare/nrf51_ble_app_hids_kbd_consumercontrol/tree/SDK11 on my customer board (and on the DK52) with the NRF52832. After my board connects to my iphone (Firmware: 11.3.1) I can control the volume. But once decoupled, the device can no longer pair with my iphone. Android smartphones can not even recognize my board. Is there a problem with sdk11? I use the Softdevice from SDK11 132 2.0.0

  • static uint8_t report_map_data[] =
    {
    // Report ID 1
    0x05, 0x01, // Usage Page (Generic Desktop)
    0x09, 0x06, // Usage (Keyboard)
    0xA1, 0x01, // Collection (Application)
    0x85, 0x01, // Report Id (1)
    0x05, 0x07, // Usage Page (Key Codes)
    0x19, 0xe0, // Usage (224)
    0x29, 0xe7, // Usage Maximum (231)
    0x15, 0x00, // Logical MinMinimumimum (0)
    0x25, 0x01, // Logical Maximum (1)
    0x75, 0x01, // Report Size (1)
    0x95, 0x08, // Report Count (8)
    0x81, 0x02, // Input (Data, Variable, Absolute)

    0x95, 0x01, // Report Count (1)
    0x75, 0x08, // Report Size (8)
    0x81, 0x01, // Input (Constant) reserved byte(1)

    0x95, 0x05, // Report Count (5)
    0x75, 0x01, // Report Size (1)
    0x05, 0x08, // Usage Page (Page# for LEDs)
    0x19, 0x01, // Usage Minimum (1)
    0x29, 0x05, // Usage Maximum (5)
    0x91, 0x02, // Output (Data, Variable, Absolute), Led report
    0x95, 0x01, // Report Count (1)
    0x75, 0x03, // Report Size (3)
    0x91, 0x01, // Output (Data, Variable, Absolute), Led report padding

    0x95, 0x06, // Report Count (6)
    0x75, 0x08, // Report Size (8)
    0x15, 0x00, // Logical Minimum (0)
    0x25, 0x65, // Logical Maximum (101)
    0x05, 0x07, // Usage Page (Key codes)
    0x19, 0x00, // Usage Minimum (0)
    0x29, 0x65, // Usage Maximum (101)
    0x81, 0x00, // Input (Data, Array) Key array(6 bytes)

    0x09, 0x05, // Usage (Vendor Defined)
    0x15, 0x00, // Logical Minimum (0)
    0x26, 0xFF, 0x00, // Logical Maximum (255)
    0x75, 0x08, // Report Count (2)
    0x95, 0x02, // Report Size (8 bit)
    0xB1, 0x02, // Feature (Data, Variable, Absolute)
    0xC0,


    // Report ID 2: Advanced buttons
    0x05, 0x0C, // Usage Page (Consumer)
    0x09, 0x01, // Usage (Consumer Control)
    0xA1, 0x01, // Collection (Application)
    0x85, 0x02, // Report Id (2)
    0x15, 0x00, // Logical minimum (0)
    0x25, 0x01, // Logical maximum (1)
    0x75, 0x01, // Report Size (1)
    0x95, 0x01, // Report Count (1)

    0x09, 0xB8, // B8=>eject
    0x81, 0x02, // Input (Data,Value,Relative,Bit Field)
    0x0A, 0xCC,//0x83, 0x01, // Usage (AL Consumer Control Configuration)
    0x81, 0x02, // Input (Data,Value,Relative,Bit Field)
    0x09, 0xB5, // Usage (Scan Next Track)
    0x81, 0x02, // Input (Data,Value,Relative,Bit Field)
    0x09, 0xB6, // Usage (Scan Previous Track)
    0x81, 0x02, // Input (Data,Value,Relative,Bit Field)

    //----------------- volume and Play/pause-----------------//

    0x09, 0xEA, // Usage (Volume Down)
    0x81, 0x02, // Input (Data,Value,Relative,Bit Field)
    0x09, 0xE9, // Usage (Volume Up)
    0x81, 0x02, // Input (Data,Value,Relative,Bit Field)
    0x09, 0xCD, // Usage (Play/pause)
    0x81, 0x02, // Input (Data,Value,Relative,Bit Field)

    //--------------------------------------------------------------------//
    0x0A, 0x24, 0x02, // Usage (AC Back)
    0x81, 0x02, // Input (Data,Value,Relative,Bit Field)


    0xC0 // End Collection (Application)*/
    };

  • Hi,

     

    I can confirm that there are bonding issues with the specific branch "SDK11" that you are linking to.

    This is an older example, based on SDK 11, with device manager and pstorage. I would recommend to use the latest SDK v15 for this type of development.

    Could you try this branch? https://github.com/Rallare/nrf51_ble_app_hids_kbd_consumercontrol/tree/SDK15

     

    Quick mock-up, hopefully there's not many bugs. I tested this with android 7.1.2, and bonding looks to be working.

     

    Kind regards,

    Håkon

Related