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

connection problem with Samsung devices

Hello,

I have a product in the field (sdk 12.2 and soft device S132, based on NUS profile) since a couple of month that works ok but crash with some Samsung devices 

Initially there was a problem with Tab A6 2016 (softdevice hangs and reset on connection) , the problem seems to have been fixed recently by Samsung in an update

Now I've got the same behavior, connection error with softdevice that hang/reset trying to connect with from a Samsung A3 phone since a recent update

What is recommended to do have the best compatibility with Samsung devices (sdk, softdevice, nordic work around ?)

Is there a list of Samsung device that have problems ?

Thanks,

  • Hi, 

    We have seen several reports on Samsung A devices breaking the Bluetooth specification. This includes sending version exchange and length request packets in parallel(i.e., does not wait for the peripheral to respond before sending the next control packet). We don’t have any lists, but it’s usually phones and tablets from the A series that have this problem. A over-the-air sniffer trace would reveal exactly what is happening with the A3 phone.

    We have added several workarounds in recent SoftDevice versions because of this. E.g. in S132 version 4.0.5 we have the following stated in the release notes:

    The SoftDevice slave role now accepts overlapping peer-initiated Link Layer control procedures (DRGN-8623,

    DRGN-8975). The following LL control procedures can be executed in parallel with any other control procedure, except for

    themselves: LE Ping, Feature Exchange, Data Length Update, and Version Exchange. This is done for compatibilityreasons. As a result of this, BLE_GAP_OPT_COMPAT_MODE_2 has no effect.

    Since you are using SDK 12.2, I assume that you are using either S132 version 3.0.0 or 3.1.0. The first thing you can try is to upgrade to S132 v3.1.0 if you are using v3.0.0, and then enable compatibility mode 2, and perhaps also disable DLE.

    See this post on how to do it. Some information is also available in this post.

  • Hello,

    Thanks for your answer. I don't have the A3 phone but can deliver firmware update using DFU to my client

    So recommended solution is to go to S132 version 4.0.5. With this version there is no need of any specific parameters in softdevice initialization to support Samsung "deviation" from BLE standart

  • Yes, with S132 4.0.5 the compatibilities mentioned in the release notes are enabled by default in the SoftDevice, and you don’t need to call any special SoftDevice functions in the application code to enable them.

    With S132 3.0.1, you need to use sd_ble_opt_set(), and also perhaps disable DLE completely(Compatibility mode 2 does allow Feature exchange and version exchange in parallel, but not DLE(data length extension) and LE Ping procedure packets in parallel, i.e you will need to disable DLE if that is the issue with the A3. The last comments in the post I linked to shows how to disable DLE).

    Migrating from S132 v.3.0.0 to v.3.0.1 require much less migration work, since the SoftDevice binaries are “binary compatible”, and both of them is compatible with SDK 12.2. If you need DLE, then it would perhaps be worth to spend time on updating to a new major SoftDevice version. In that case it would perhaps be best to update to the latest SoftDevice version (5.1.0), while you're at it. If you don’t need DLE, and want to minimize the time spent on this, then it would be easier to update to 3.0.1. Then deliver the new firmware with DFU, and hope that it solves the issue on the A3 phone.

  • Thank you, I upgraded to S132 3.1.0 and did the API calls you recommanded and it works now

    For info the problem was with A3 2017 and not other version

Related