I am working on a NRF52 DK with the example code ble_app_interactive. I am using the NRF52 DK as a central and trying to connect to a peripheral hearing aid. My problem is that when I try to connect to the hearing aid, I get Connected and then immediately Disconnected with the error code 0x3E, as seen on the log:
=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2018.12.07 13:23:09 =~=~=~=~=~=~=~=~=~=~=~=
uart_cli:~$ BLE app with command line interface example started.
uart_cli:~$ Press Tab to view all available commands.
uart_cli:~$ scan onScan started
uart_cli:~$ <info> app: Scanning
uart_cli:~$ devicesDevice 00:16:94:1A:73:36 PXC 550
Device 5C:29:EE:53:12:63 ac_hi_test_hi_ECC5
Device C8:0A:9C:09:3E:38 Tile
Device 5A:4D:70:0D:7C:84 arhs
Device 62:9F:F4:7F:29:4E [LG] webOS TV UJ634V
uart_cli:~$ connect arhsuart_cli:~$ uart_cli:~$ <info> app: CENTRAL: Connecting...
uart_cli:~$ Connected to address: uart_cli:~$ 5A uart_cli:~$ 4D uart_cli:~$ 70 uart_cli:~$ 0D uart_cli:~$ 7C uart_cli:~$ 84 uart_cli:~$
uart_cli:~$ <info> app: CENTRAL: Connected, handle: 0.
uart_cli:~$ <info> app: CENTRAL: Disconnected, handle: 0, reason: 0x3E
I have an ellisys sniffer, and in the trace, I can see that the Connection Indication Packet is send, and then an ATT Exchange MTU Request Packet is send, but I think that the peripheral I'm requesting the MTU from, can't send MTU before it is paired. The trace is shown below:
I also have a sniffer on a connection from a mobile to the same peripheral, using the nrf connect app, and this works without problem, this is the trace:
If it is the problem with that the peripheral can't send MTU before it is paired, can I change that sequence in my progam, so that it doesn't make MTU exchange at that point or maybe this isn't the problem?
On closer inspection, it seems that the peripheral simply can't make an ATT MTU Exchange Transaction?
Try establishing a connection without sending an MTU request, which can be done by modifying the sdk_config.h: set NRF_SDH_BLE_GAP_DATA_LENGTH to 27 and NRF_SDH_BLE_GATT_MAX_MTU_SIZE to 23.
Thank you! Exactly what I was looking for