Changing ble_app_hids_mouse for trackpad application

Hello guys. I'm helping a customer to work with a trackpad application using the nRF52840 and the nRF5_SDK_17.0.2_d674dde.

For this customer, she wants to use Microchip's touchpad solution (like https://www.microchip.com/en-us/solutions/machine-learning/smart-human-machine-interface)

and add nRF for BLE HID. Since the rep_map_data[] already has the mouse buttons, scroll/pan, mouse motion, advanced buttons (play pause volume down up etc),

I thought I simply need to call mouse_movement_send() - ble_hids_inp_rep_send(INPUT_REP_MOVEMENT_INDEX, INPUT_REP_MOVEMENT_LEN), using the trackpad as the parameter input.

First, for trackpads, do I need to change the rep_map_data[] or can I use it as it is?

We want to create a simple trackpad, like a mouse with volume control gestures, no keys/keyboard.

I was wondering whether a trackpad like this needs additional report map data during the initialization in hids_init().

Next, is it true that DIS - PnP characteristic is mandatory for wireless trackpad/mouse/keyboard applications?

Also, regarding DIS PnP,

PNP_ID_VENDOR_ID_SOURCE = 0x02 /**< Vendor ID Source. */
PNP_ID_VENDOR_ID = 0x1915 /**< Vendor ID. */

am I allowed to use these DIS PNP vendor ID values for this nRF product?

I'm slightly confused with this Nordic thread here  nRF52840 - USB Vendor ID and USB Product ID 

so I was wondering whether I have to register my own vendor ID.

 

Lastly, I want to check how to send a volume key. Is it ble_hids_inp_rep_send(INPUT_REP_MPLAYER_INDEX, INPUT_REP_MEDIA_PLAYER_LEN) ?

I read that I have to send a "mask" value to stop increasing or decreasing the volume so I need your help how to do this properly.

Thank you so much for your help!

REFERENCEs

https://www.bluetooth.com/specifications/specs/hid-over-gatt-profile-1-0/

https://www.usb.org/sites/default/files/hid1_11.pdf

Parents
  • Hello,

    This sounds like a solution that would require a driver from Microchip. I think you should reach out to them to ask what usb report maps they intended to be used with the trackpad that you are using.

    If they don't have anything to share, this is a more generic USB question than a Nordic Specific. Trust me, if I knew exactly how you needed to set up this report map, I would tell you, but I think you need to look at how report maps are built up and how they are used. 

    Best regards,

    Edvin

  • Thank you for replying Edvin. I think the USB HID spec is the document that describes how report maps are built.

    Let me search for the Microchip driver.

    Come to think of it, if I use Microchip’s USB HID report map for this BLE trackpad application, do I have to use Microchip’s vendor ID for the DIS PnP characteristic?

  • That is a good question. 

    Strictly speaking, you shouldn't use any of them. You should use your own Vendor ID:

    https://www.usb.org/getting-vendor-id

    In the mean time, you can use either of them. The USB report map would originate from Microchip, while the USB protocol stack would be Nordic's / Zephyrs.

    BR,
    Edvin

  • Thank you Edvin. While I search for the drivers, can you answer my original questions please?

    Is it true that DIS - PnP characteristic is mandatory for wireless trackpad/mouse/keyboard applications?

    Lastly, I want to check how to send a volume key. Is it ble_hids_inp_rep_send(INPUT_REP_MPLAYER_INDEX, INPUT_REP_MEDIA_PLAYER_LEN) 

    when I use the same report map?

    I read that I have to send a "mask" value to stop increasing or decreasing the volume so I need your help how to do this properly.

Reply
  • Thank you Edvin. While I search for the drivers, can you answer my original questions please?

    Is it true that DIS - PnP characteristic is mandatory for wireless trackpad/mouse/keyboard applications?

    Lastly, I want to check how to send a volume key. Is it ble_hids_inp_rep_send(INPUT_REP_MPLAYER_INDEX, INPUT_REP_MEDIA_PLAYER_LEN) 

    when I use the same report map?

    I read that I have to send a "mask" value to stop increasing or decreasing the volume so I need your help how to do this properly.

Children
Related