<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>HID Consumer control settings</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/25351/hid-consumer-control-settings</link><description>Dear fellow developper, 
 I&amp;#39;m trying to create a BLE device using HID service to control music, volume and so on. 
 I have successfully implemented a keyboard + Consumer control command in the HID service. 
 It works great on iOS and Android. 
 Now</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 18 Feb 2019 17:45:59 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/25351/hid-consumer-control-settings" /><item><title>RE: HID Consumer control settings</title><link>https://devzone.nordicsemi.com/thread/171719?ContentTypeID=1</link><pubDate>Mon, 18 Feb 2019 17:45:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6b8e0788-9496-4702-9ce3-00b1b8c27577</guid><dc:creator>Aurele</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Same issue, i cannot find out a solution and when i find a report map working with my android, it does not work with iphone. Moreover some behaviors are very strange and not the same between phones (sometimes, &amp;quot;scan next&amp;quot; and &amp;quot;scan previous&amp;quot; are replaced with &amp;quot;volume up&amp;quot; and &amp;quot;volume down&amp;quot; ... For your information, i have better results with old version of android (~6.0) but with my Xiaomi MIX 2 (Android 8.0) i have a lot of issues, very similar to the Iphone&amp;#39;s.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Aur&amp;eacute;lien&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: HID Consumer control settings</title><link>https://devzone.nordicsemi.com/thread/139348?ContentTypeID=1</link><pubDate>Sun, 08 Jul 2018 23:39:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4b82e0b9-af7e-469c-b28f-c19e7964ed08</guid><dc:creator>josh</dc:creator><description>&lt;p&gt;Hey alutun, did you ever find a solution to this issue? I&amp;#39;m trying to do something similar and having difficulties with iOS as well.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: HID Consumer control settings</title><link>https://devzone.nordicsemi.com/thread/99914?ContentTypeID=1</link><pubDate>Mon, 23 Oct 2017 09:07:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:060270ad-f3c8-443a-8749-a7a8b65ee6b9</guid><dc:creator>alutun</dc:creator><description>&lt;p&gt;@Sigurd I tried as you said not working with iOS. Still searching for the solution =)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: HID Consumer control settings</title><link>https://devzone.nordicsemi.com/thread/99910?ContentTypeID=1</link><pubDate>Tue, 10 Oct 2017 08:56:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a544edde-3ec6-42b6-9b1f-737badddb160</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;@alutun, I don&amp;#39;t know about any good tools for this. You might need to use BLE sniffer. But we cannot help with any reverse engineering.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: HID Consumer control settings</title><link>https://devzone.nordicsemi.com/thread/99913?ContentTypeID=1</link><pubDate>Tue, 10 Oct 2017 06:03:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:21424556-b28a-4978-871d-4196bc2415f6</guid><dc:creator>alutun</dc:creator><description>&lt;p&gt;@Sigurd, do you know maybe a goog tool to reverse engineer an HID MAP I read with my controller ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: HID Consumer control settings</title><link>https://devzone.nordicsemi.com/thread/99911?ContentTypeID=1</link><pubDate>Mon, 25 Sep 2017 07:19:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9338c00e-c1b3-4344-875d-dda6aa22029b</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;I did some more testing, and it did not work on iOS(iPhone). So it seems that iOS does not allow standalone consumer usage page, and that for iOS you need an additional consumer page,  such as keyboard page. Quote from &lt;a href="https://devzone.nordicsemi.com/question/79060/audio-controls-for-ios-and-android/"&gt;this post&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Not 100% sure about this. But iOS
support might be restricted to
supporting the HID keyboard only, or a
given set of required capabilities. So
it might not allow you to use the
consumer usage page without also
having the keyboard usage page.&lt;/p&gt;
&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: HID Consumer control settings</title><link>https://devzone.nordicsemi.com/thread/99912?ContentTypeID=1</link><pubDate>Mon, 25 Sep 2017 06:57:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a305e49d-2456-45c5-beb5-3f48497bc291</guid><dc:creator>alutun</dc:creator><description>&lt;p&gt;Thanks, I will try and update you according to the result !&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: HID Consumer control settings</title><link>https://devzone.nordicsemi.com/thread/99909?ContentTypeID=1</link><pubDate>Sun, 24 Sep 2017 20:09:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:99a4977b-e7d3-4d00-89b5-b39b115468eb</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;This report map works for me:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;static uint8_t report_map_data[] =
{
    // Report ID 2: Advanced buttons
    0x05, 0x0C,                     // Usage Page (Consumer)
    0x09, 0x01,                     // Usage (Consumer Control)
    0xA1, 0x01,                     // Collection (Application)
    0x85, 0x01,                     //     Report Id (1)
    0x15, 0x00,                     //     Logical minimum (0)
    0x25, 0x01,                     //     Logical maximum (1)
    0x75, 0x01,                     //     Report Size (1)
    0x95, 0x01,                     //     Report Count (1)

    0x09, 0xCD,                     //     Usage (Play/Pause)
    0x81, 0x02,                     //     Input (Data,Value,Relative,Bit Field)
    0x0A, 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)

    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)
    0x0A, 0x25, 0x02,               //     Usage (AC Forward)
    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		
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I also did some changes in how the HID was initialized, and I also changed the appearance to &lt;code&gt;BLE_APPEARANCE_GENERIC_HID&lt;/code&gt;. I tested this on SDK 14.0, and it works fine on Android version 7.&lt;/p&gt;
&lt;p&gt;See attached main.c file.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Attachment:&lt;/strong&gt; &lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/3288.main.c"&gt;main.c&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: HID Consumer control settings</title><link>https://devzone.nordicsemi.com/thread/99908?ContentTypeID=1</link><pubDate>Fri, 22 Sep 2017 08:22:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:17aa34da-4f7f-44db-bd5e-cf9dec7e8ed5</guid><dc:creator>alutun</dc:creator><description>&lt;p&gt;My point is that I&amp;#39;m trying to create HID device that work for iOS for play/pause volume UP/DOWN and so on without declaring it as a keyboard + Consumer control.&lt;/p&gt;
&lt;p&gt;Because If i declare it as a keyboard then the virtual keybord on iOS dissapear, What i also want to keep is the automatic reconnection provide by iOS/Android when the BLE device is declared with HID service.&lt;/p&gt;
&lt;p&gt;I just cannot figure out the HID map that i need to use.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>