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

Android Master Control Panel not updating characteristic value

I've got a test app on my nRF51 DK that calls sd_ble_gatts_hvx as fast as possible to test maximum data rate for the Notify of a characteristic. This all works great. The maximum data rate with a 20 byte payload is 13.33Kbytes/sec when measured against a 10 second timer. Impressive.

I'm putting the data rate (divided by 100) into one of the bytes of the characteristic so that I can conveniently see it by connecting with my Android phone and using the Master Control Panel (MCP).

The problem is that MCP is not updating the characteristic value reliably. Sometimes the byte value that I'm sending comes through but most often not. I can see with printfs in my code that all is well on that side and sometimes MCP works too, but not often. Is this a known issue? Is there a workaround?

Parents
  • Hi,

    The nRF MCP app refreshes the services list every 400ms or so, as far as I remember. Otherwise the GUI was completly not responsive. Even now, with this feature it gets very slow if you send data very fast. The reason is the Log (log refreshes every time a value is received).

    If your value was not shown on the services list you can check the log. You should find it there. I think none of values sent should be missed and the log should contain all. If you want to measure the speed the nRF MCP app is not quite (yet!) good way to do so, as the UI is very slow. It would be a much better idea to write a very simple app, with no/almost no UI that just writes the data to the logcat.

    Best Regards, Aleksander

Reply
  • Hi,

    The nRF MCP app refreshes the services list every 400ms or so, as far as I remember. Otherwise the GUI was completly not responsive. Even now, with this feature it gets very slow if you send data very fast. The reason is the Log (log refreshes every time a value is received).

    If your value was not shown on the services list you can check the log. You should find it there. I think none of values sent should be missed and the log should contain all. If you want to measure the speed the nRF MCP app is not quite (yet!) good way to do so, as the UI is very slow. It would be a much better idea to write a very simple app, with no/almost no UI that just writes the data to the logcat.

    Best Regards, Aleksander

Children
Related