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

Device discovery fails on Android 4.3 with nrf8001

I have been trying to connect a nrf8001 device to a Android 4.3 device and it is discovered ok but fails when it tries to do a service discovery. After some deep digging I have found the reason. It seems that the nrf8001 responds to the first Read By Group Type Request:

07 00 04 00 10 01 00 FF FF 00 28

with the response:

0E 00 04 00 11 06 01 00 07 00 00 08 00 00 08 00 01 18

Now there are some problems with this response:

First the handle 00 00 is reserved according to the ble spec and this is what makes android puke. Android considers this an invalid handle and cancels the discovery process.

Second even if you use 00 00 as a handle it should not be returned since it is outside the search range 0x0001 to 0xffff

So my question is: is there a way to control the handle numbering via the setup commands? Do you have any other suggestions for workarounds for this issue?

Regards Erik Rosen

Btw. On iOS it works fine.

Parents
  • Hi thanks for the prompt answer.

    After some more experimentation it seems the problem accurs when I use a custom uuid. If I change the uuid to bluetooth base uuid it is discovered ok. The Read By Group Type Response seems to get corrupted when I use a custom uuid, the service 0800 does not exist but should be 1800 for the Generic Access Profile I think... I generate the setup from nrfGO Studio 1.16.0.3031

    1. Can you give the chip markings on the nRF8001 that you have , the chip markings are on the top of the chip and looks like. This is to ensure that you have the latest version of the nRF8001.

    nRF C 8001 1122AB

    2, The results of the ACI Get Device Version command ? 09 00 0f 00 01 02 00 00 00 00 00

    Regards Erik

Reply
  • Hi thanks for the prompt answer.

    After some more experimentation it seems the problem accurs when I use a custom uuid. If I change the uuid to bluetooth base uuid it is discovered ok. The Read By Group Type Response seems to get corrupted when I use a custom uuid, the service 0800 does not exist but should be 1800 for the Generic Access Profile I think... I generate the setup from nrfGO Studio 1.16.0.3031

    1. Can you give the chip markings on the nRF8001 that you have , the chip markings are on the top of the chip and looks like. This is to ensure that you have the latest version of the nRF8001.

    nRF C 8001 1122AB

    2, The results of the ACI Get Device Version command ? 09 00 0f 00 01 02 00 00 00 00 00

    Regards Erik

Children
No Data
Related