Galaxy Tab A8 fails to connect properly, while Galaxy Phone S10 works fine

Galaxy Tab A8 connects, but then disconnects after a burst of approx 600 "Central_0x2a208f55 Peripheral_0x2a208f55 ATT 37 Sent Read By Group Type Request, Primary Service, Handles: 0x0001..0xffff"

Galaxy S10 works fine

Bot are running the same mobile app.

I have attached 2 Wireshark capture files, one for Samsung Galaxy Tab A8, the other for Samsung Galaxy S10 

We use ncs 2.6.1 on our nRF52840 hardware

SamsungS10.pcapngsamsungA8.pcapng

Parents
  • Hi

    At least in the nRF Connect for Android app you can set the supported PHYs in the settings of the app (Settings -> Scanner -> Physical layer) to 1MBPS if you'd like.

    Best regards,

    Simon

  • That does not help, as we anyhow end up in 2MBPS as soon as connection is done

    I also tried this macro, but still end up in 2MBPS  

    <!-- 
    	Transmitter and Receiver PHY attributes accept the fofflowing values and logical OR operator ('|'):
        - LE_1M - legacy LE 1M PHY (default), 
        - LE_2M - double speed, Bluetooth 5 feature,
        - LE_CODED - long range, Bluetooth 5 feature.
    
        The options for the Transmitter LE Coded PHY are:
        - NO_PREFERRED - No preferred coding when transmitting on the LE Coded PHY (default),
        - S2 - Prefer the S=2 coding to be used when transmitting on the LE Coded PHY,
        - S8 - Prefer the S=8 coding to be used when transmitting on the LE Coded PHY. 
    
        Example: <set-preferred-phy tx="LE_2M | LE_CODED" rx="LE_1M" />
     -->
    <macro name="SetPreferredPhy_1M" icon="PLAY">
        <set-preferred-phy tx="LE_1M" rx="LE_1M" />
    </macro>
    

    nRFConnect log: 

    nRF Connect, 2024-10-07
    99 (DB:22:BE:33:59:30)
    D	11:14:09.205	gatt.close()
    D	11:14:09.209	wait(200)
    V	11:14:09.410	Connecting to DB:22:BE:33:59:30...
    D	11:14:09.411	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
    D	11:14:10.240	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
    I	11:14:10.240	Connected to DB:22:BE:33:59:30
    D	11:14:10.246	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
    V	11:14:10.252	Discovering services...
    D	11:14:10.252	gatt.discoverServices()
    D	11:14:10.361	[Callback] Services discovered with status: 0
    I	11:14:10.361	Services discovered
    V	11:14:10.368	Generic Attribute (0x1801)
    - Service Changed [I] (0x2A05)
       Client Characteristic Configuration (0x2902)
    - Client Supported Features [R W] (0x2B29)
    - Database Hash [R] (0x2B2A)
    Generic Access (0x1800)
    - Device Name [R W] (0x2A00)
    - Appearance [R] (0x2A01)
    - Peripheral Preferred Connection Parameters [R] (0x2A04)
    Battery Service (0x180F)
    - Battery Level [N R] (0x2A19)
       Client Characteristic Configuration (0x2902)
    Device Information (0x180A)
    - Model Number String [R] (0x2A24)
    - Manufacturer Name String [R] (0x2A29)
    - Serial Number String [R] (0x2A25)
    - Firmware Revision String [R] (0x2A26)
    - Hardware Revision String [R] (0x2A27)
    XXXX Service (000001b0-d746-4092-84e7-dad34863fe4a)
    - Status [N R] (000001b2-d746-4092-84e7-dad34863fe4a)
       Client Characteristic Configuration (0x2902)
    - AAAA [W] (000001b1-d746-4092-84e7-dad34863fe4a)
    YYYY Service (000001e0-d746-4092-84e7-dad34863fe4a)
    - BBBB [R W] (000001e1-d746-4092-84e7-dad34863fe4a)
    - Unknown Characteristic [R] (000001ec-d746-4092-84e7-dad34863fe4a)
    Nordic UART Service (6e400001-b5a3-f393-e0a9-e50e24dcca9e)
    - TX Characteristic [N] (6e400003-b5a3-f393-e0a9-e50e24dcca9e)
       Client Characteristic Configuration (0x2902)
    - RX Characteristic [W WNR] (6e400002-b5a3-f393-e0a9-e50e24dcca9e)
    SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
    - SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
       Client Characteristic Configuration (0x2902)
    D	11:14:10.369	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
    D	11:14:10.371	gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true)
    D	11:14:10.373	gatt.setCharacteristicNotification(000001b2-d746-4092-84e7-dad34863fe4a, true)
    D	11:14:10.375	gatt.setCharacteristicNotification(6e400003-b5a3-f393-e0a9-e50e24dcca9e, true)
    I	11:14:10.628	PHY updated (TX: LE 2M, RX: LE 2M)
    V	11:14:14.558	Requesting preferred PHYs...
    D	11:14:14.558	gatt.setPreferredPhy(LE 1M, LE 1M, coding option = No preferred)
    I	11:14:14.723	PHY updated (TX: LE 2M, RX: LE 2M)
    I	11:14:15.127	Connection parameters updated (interval: 37.5ms, latency: 0, timeout: 420ms)
    

    Seems like setPreferredPhy is just a recommendation, and depends on local and remote controllers behaviour

    https://developer.android.com/reference/android/bluetooth/BluetoothGatt#setPreferredPhy(int,%20int,%20int) 

Reply
  • That does not help, as we anyhow end up in 2MBPS as soon as connection is done

    I also tried this macro, but still end up in 2MBPS  

    <!-- 
    	Transmitter and Receiver PHY attributes accept the fofflowing values and logical OR operator ('|'):
        - LE_1M - legacy LE 1M PHY (default), 
        - LE_2M - double speed, Bluetooth 5 feature,
        - LE_CODED - long range, Bluetooth 5 feature.
    
        The options for the Transmitter LE Coded PHY are:
        - NO_PREFERRED - No preferred coding when transmitting on the LE Coded PHY (default),
        - S2 - Prefer the S=2 coding to be used when transmitting on the LE Coded PHY,
        - S8 - Prefer the S=8 coding to be used when transmitting on the LE Coded PHY. 
    
        Example: <set-preferred-phy tx="LE_2M | LE_CODED" rx="LE_1M" />
     -->
    <macro name="SetPreferredPhy_1M" icon="PLAY">
        <set-preferred-phy tx="LE_1M" rx="LE_1M" />
    </macro>
    

    nRFConnect log: 

    nRF Connect, 2024-10-07
    99 (DB:22:BE:33:59:30)
    D	11:14:09.205	gatt.close()
    D	11:14:09.209	wait(200)
    V	11:14:09.410	Connecting to DB:22:BE:33:59:30...
    D	11:14:09.411	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
    D	11:14:10.240	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
    I	11:14:10.240	Connected to DB:22:BE:33:59:30
    D	11:14:10.246	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
    V	11:14:10.252	Discovering services...
    D	11:14:10.252	gatt.discoverServices()
    D	11:14:10.361	[Callback] Services discovered with status: 0
    I	11:14:10.361	Services discovered
    V	11:14:10.368	Generic Attribute (0x1801)
    - Service Changed [I] (0x2A05)
       Client Characteristic Configuration (0x2902)
    - Client Supported Features [R W] (0x2B29)
    - Database Hash [R] (0x2B2A)
    Generic Access (0x1800)
    - Device Name [R W] (0x2A00)
    - Appearance [R] (0x2A01)
    - Peripheral Preferred Connection Parameters [R] (0x2A04)
    Battery Service (0x180F)
    - Battery Level [N R] (0x2A19)
       Client Characteristic Configuration (0x2902)
    Device Information (0x180A)
    - Model Number String [R] (0x2A24)
    - Manufacturer Name String [R] (0x2A29)
    - Serial Number String [R] (0x2A25)
    - Firmware Revision String [R] (0x2A26)
    - Hardware Revision String [R] (0x2A27)
    XXXX Service (000001b0-d746-4092-84e7-dad34863fe4a)
    - Status [N R] (000001b2-d746-4092-84e7-dad34863fe4a)
       Client Characteristic Configuration (0x2902)
    - AAAA [W] (000001b1-d746-4092-84e7-dad34863fe4a)
    YYYY Service (000001e0-d746-4092-84e7-dad34863fe4a)
    - BBBB [R W] (000001e1-d746-4092-84e7-dad34863fe4a)
    - Unknown Characteristic [R] (000001ec-d746-4092-84e7-dad34863fe4a)
    Nordic UART Service (6e400001-b5a3-f393-e0a9-e50e24dcca9e)
    - TX Characteristic [N] (6e400003-b5a3-f393-e0a9-e50e24dcca9e)
       Client Characteristic Configuration (0x2902)
    - RX Characteristic [W WNR] (6e400002-b5a3-f393-e0a9-e50e24dcca9e)
    SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
    - SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
       Client Characteristic Configuration (0x2902)
    D	11:14:10.369	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
    D	11:14:10.371	gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true)
    D	11:14:10.373	gatt.setCharacteristicNotification(000001b2-d746-4092-84e7-dad34863fe4a, true)
    D	11:14:10.375	gatt.setCharacteristicNotification(6e400003-b5a3-f393-e0a9-e50e24dcca9e, true)
    I	11:14:10.628	PHY updated (TX: LE 2M, RX: LE 2M)
    V	11:14:14.558	Requesting preferred PHYs...
    D	11:14:14.558	gatt.setPreferredPhy(LE 1M, LE 1M, coding option = No preferred)
    I	11:14:14.723	PHY updated (TX: LE 2M, RX: LE 2M)
    I	11:14:15.127	Connection parameters updated (interval: 37.5ms, latency: 0, timeout: 420ms)
    

    Seems like setPreferredPhy is just a recommendation, and depends on local and remote controllers behaviour

    https://developer.android.com/reference/android/bluetooth/BluetoothGatt#setPreferredPhy(int,%20int,%20int) 

Children
No Data
Related