<?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 over GATT USB Translation compatibility</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/96573/hid-over-gatt-usb-translation-compatibility</link><description>Hi there, 
 I&amp;#39;m trying to implement section 4.8.1, &amp;quot;Translation Layer&amp;quot; of the HID over GATT Profile 1.0 specification: https://www.bluetooth.com/specifications/specs/hid-over-gatt-profile-1-0/ 
 As far as I can tell, it boils down to &amp;quot;use discovery to</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 14 Feb 2023 13:06:26 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/96573/hid-over-gatt-usb-translation-compatibility" /><item><title>RE: HID over GATT USB Translation compatibility</title><link>https://devzone.nordicsemi.com/thread/409868?ContentTypeID=1</link><pubDate>Tue, 14 Feb 2023 13:06:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fbccd881-07cc-4ce4-972f-1e2b28e65112</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;That will be a nightmare to use and implement.&lt;/p&gt;
&lt;p&gt;Windows caches the report descriptor in the registry, so it won&amp;#39;t react to connecting a different HID peripherial properly.&lt;/p&gt;
&lt;p&gt;You also need to delay the USB connect until you have read the report descriptor from the BTLE device or have a cached version on the nrf52 available somehow.&lt;/p&gt;
&lt;p&gt;This will need &lt;em&gt;significant&lt;/em&gt; changes to the USB stack in either SDK version, as IIRC both assume static HID report descriptors and endpoint size.&lt;/p&gt;
&lt;p&gt;Remember that you also need a different endpoint size that corresponds to the report descriptor. That means you would need to parse it on the NRF52, which is a non-trivial task.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: HID over GATT USB Translation compatibility</title><link>https://devzone.nordicsemi.com/thread/409859?ContentTypeID=1</link><pubDate>Tue, 14 Feb 2023 12:52:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:419e404d-b71c-4d44-a281-d13d629e5979</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Ok, I understand. What SDK are you using? I assume you are using the nRF5 SDK, since you mention the&amp;nbsp;&lt;span&gt;APP_USBD_HID_GENERIC_GLOBAL_DEF_INTERNAL. Let me know if this is not the case.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;So what you are asking for is not something that we have out of the box. I guess the ubsd_hid_composite will work as a USB keyboard, and then you need to receive the HID over BLE from a BLE peripheral that will act as the keyboard.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;We do have an example that you can use for the peripheral, the SDK\examples\ble_peripheral\ble_app_hids_keyboard, but we do not have any ble_central examples that works with the HID peripherals. That is something that you would have to implement yourself. We have a couple of other central examples found in SDK\examples\ble_central, that you can look at for general BLE centrals.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Luckily, the HID over BLE is not too complex. It just sends the HID table whenever there is a button/key press. So what you would need to do is to just forward this table to the physical USB, instead of triggering the USB events from the button presses on the DK.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Edvin&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: HID over GATT USB Translation compatibility</title><link>https://devzone.nordicsemi.com/thread/409857?ContentTypeID=1</link><pubDate>Tue, 14 Feb 2023 12:41:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:db002f11-d0fd-49ac-acf4-c0eebb6193a5</guid><dc:creator>Deflation8257</dc:creator><description>&lt;p&gt;I want to have the nRF52 act as a USB HID device. Rather than take input from an optical sensor or key presses, the nRF52 should act as a BLE central to connect to a BLE HID peripheral. The HID report map from the BLE peripheral should be used as the USB HID report descriptor. The HID reports from the BLE peripheral should be used as USB HID reports.&lt;/p&gt;
&lt;p&gt;That is, the nRF52 should proxy BLE HID to USB so that a HID can function even on a device that isn&amp;#39;t compatible with HCI (such as a PC BIOS).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: HID over GATT USB Translation compatibility</title><link>https://devzone.nordicsemi.com/thread/409827?ContentTypeID=1</link><pubDate>Tue, 14 Feb 2023 11:41:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cf9d9b91-5e3b-4a7a-b6a8-e592e1f9f1bd</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Sorry, but I am not sure I understand exactly what you are trying to do. You refer to HID over BLE, right? But the APP_USBD_HID_GENERIC_GLOBAL_DEF_INTERNAL seems like a USB HID macro.&lt;/p&gt;
&lt;p&gt;If you intend to have HID over BLE, then&amp;nbsp;you shouldn&amp;#39;t use the USB at all.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Perhaps I misunderstood what you are trying to do. Perhaps you can explain a bit more about what you are trying to achieve.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>