2 Replies
      Latest reply on Feb 13, 2020 2:37 AM by Phill_RB
      ptraca Level 1 Level 1 (0 points)

        I've a device acting as a peripheral, implementing the HID over Gatt profile (meaning that is adv. and provides all of the services required by the profile: HID, Device Information and Battery).

        I've have setup the Gatt database with the above mentioned services and the required characteritics and descritors.

        My objective is to force iOS  to lower the bluetooth stack minConnectionInterval / maxConnectionInterval from the default 30 ms to 11.25 ms which is the iOS default for HID devices.

        I'm emulationg a keyboard since I've seen somewhere in the documentation that iOS doesn't allow mouses.

        My current implementation gets macOS to recognise the device as a HID and lower the parameters to 11.25 ms but iOS does not.


        Any help would be welcomed.



        • Re: HID over Gatt on iOS
          developerlarsapple Level 1 Level 1 (0 points)

          Hi ptraca,


          I am trying to achieve the same thing, however I don't get as far as you get.
          Keep getting "The specified UUID is not allowed for this operation." on adding the Battery and HID services.
          Could you please let me know how you got passed that?



            • Re: HID over Gatt on iOS
              Phill_RB Level 1 Level 1 (0 points)

              I too would like to know why the GATT HID service is not allowed when acting as a peripheral.

              By trial and error I have found the following to be forbidden:

              • Generic Access
              • Battery Service
              • Bond Management Service
              • Current Time Service
              • Device Information
              • Generic Attribute
              • Human Interface Device

              Where is the documentation stating these are not supported and the reasons behind it? Having an iPad or iPhone work as a HID device would be a great accessibility feature opening up many possibilities.