This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NRF52 BLE HID packet rate problem

Hello everyone!
I'm creating BLE HID controller, where high packet rate is important. I expect about 100 packets per second.
But when I try to launch hid mouse or hid keyboard example, the maximum rate is 34 pps. I tried to make gamepad device and custom hid device, but result is still 34 pps.
Connection interval is set to minumum

setConnInterval(6, 12);

Also I tried to connect to different hosts (windows 10, android, iphone) - result is the same.
But when a tried BLE MIDI example, maximum packet rate is more than 100 pps, and it is real packets, I can read it on my laptop.
I'm asking for help in searching for the bottleneck in hid profile.
Thank you!

Here are my input characteristic properties:

chr_input.setUuid(UUID16_CHR_REPORT);
chr_input.setProperties(CHR_PROPS_READ | CHR_PROPS_NOTIFY);
chr_input.setPermission(SECMODE_ENC_NO_MITM, SECMODE_NO_ACCESS);
chr_input.setReportRefDescriptor(0, REPORT_TYPE_INPUT);

chr_input.setFixedLen( 10 );
chr_input.begin();

Parents
  • Hi

    Okay, I would still suggest checking out the guide/blog post I linked to, as it also shows you ow you can increase the number of packets per connection and minimize the time between each packet and connection interval. A few things you should take a look at:

    • Which PHY are you using?
    • Check out the Inter Frame Space and "max number of packets per connection event

    Best regards,

    Simon

Reply
  • Hi

    Okay, I would still suggest checking out the guide/blog post I linked to, as it also shows you ow you can increase the number of packets per connection and minimize the time between each packet and connection interval. A few things you should take a look at:

    • Which PHY are you using?
    • Check out the Inter Frame Space and "max number of packets per connection event

    Best regards,

    Simon

Children
No Data
Related