HID keyboard standardization document?

Hi guys. From the ble_app_hids_keyboard_pca10040_s132 (nRF SDK v17), there were several HID characteristics added.

  1. protocol_mode_char (Protocol Mode characteristics)
  2. Report characteristic
  3. Report Map characteristics
  4. Input Report characteristics
  5. Boot Keyboard Output Report characteristics
  6. HID Information characteristic.
  7. HID Control Point characteristics

May I ask two questions.

To be a "Bluetooth Low Energy-GATT-compliant HID device",

are these "must have" HID characteristics to work as a native keyboard device to run on various OSes (Windows, Mac, Linux, etc)?

Or do I only need the

  • Input Report characteristics
  • Report Map characteristic

to send the keyboard data to the central (Windows, Mac, etc laptop connected to the nRF52 HID peripheral)?

Overall, is there a HID document explaining what "standard" HID characteristics are mandatory?

I did find the Novelbits blog where it shows the characteristics are mandatory or not

https://novelbits.io/bluetooth-hid-devices-an-intro/

but I was wondering what original HID document should I look into. Maybe the USB HID document? https://www.usb.org/hid

Thanks for your help!

Related