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

Why am I seeing an "immediate" disconnect?

I’m attempting to use an nRF51 dongle with connectivity_115k2_with_s130_1.0.0.hex burned on to it. I’m using the dongle as a central, attempting to connect to a peripheral. Upon connect, I’m seeing an almost immediate disconnect. In the same environment using different centrals (BlueZ HCI-base, and an iPhone), I'm able to connect to the peripheral with no problem.

Here are some traces. You’ll notice that the disconnect code is 62 (0x3e).

debian@beaglebone:~/ttm$ ./main.py 
Log: Successfully opened uart. Port name: /dev/ttyACM0. Baud rate: 115200. Flow control: none. Parity: none
Log: [Write] 0xC0
Log: [Write] 0x00
Log: [Write] 0x2F
Log: [Write] 0x00
Log: [Write] 0xD1
Log: [Write] 0x01
Log: [Write] 0x7E
Log: [Write] 0xC0
Log: [Read] 0xC0 0x00 0x2F 0x00 0xD1
Log: [Read] 0x02 0x7D 0xC0
Log: [Read] 0xC0 0x00 0x2F 0x00 0xD1 0x01
Log: [Read] 0x7E 0xC0
Log: [Write] 0xC0
Log: [Write] 0x00 0x2F 0x00 0xD1 0x02 0x7D 0xC0
Log: [Read] 0xC0 0x00 0x3F 0x00 0xC1 0x03 0xFC
Log: [Read] 0x11 0xC0
Log: [Write] 0xC0
Log: [Write] 0x00 0x3F 0x00 0xC1 0x04 0x7B 0x11 0xC0
Log: [Write] 0xC0
Log: [Write] 0x00
Log: [Write] 0x3F
Log: [Write] 0x00
Log: [Write] 0xC1
Log: [Write] 0x03
Log: [Write] 0xFC
Log: [Write] 0x11
Log: [Write] 0xC0
Log: [Read] 0xC0 0x00 0x3F 0x00 0xC1 0x04
Log: [Read] 0x7B 0x11 0xC0
Log: [Write] 0xC0
Log: [Write] 0xDB 0xDC 0x3E 0x00 0x02 0x00 0x66 0x01 0x31 0x74 0xC0
Log: [Read] 0xC0 0x08 0x00 0x00 0xF8 0xC0
Log: [Read] 0xC0 0xC8 0xBE 0x00
Log: [Read] 0x7A 0x01 0x66 0x00 0x00 0x00 0x00 0x08 0x59 0x00
Log: [Read] 0x67 0x00 0x18 0x94 0xC0
Log: [Write] 0xC0
Log: [Write] 0x08 0x00 0x00 0xF8 0xC0 0xC0 0xC9 0x8E 0x00 0xA9 0x00 0x60 0x01 0x00 0x00 0x00 0x00 0x00 0x3D 0x1D 0xC0
Log: [Read] 0xC0 0x10 0x00 0x00 0xF0
Log: [Read] 0xC0 0xC0 0xD1 0x6E
Log: [Read] 0x00 0xC1 0x01 0x60 0x08 0x00 0x00 0x00 0x5D 0x10
Log: [Read] 0xC0
Log: [Write] 0xC0
Log: [Write] 0x10 0x00 0x00 0xF0 0xC0 0xC0 0xD2 0x8E 0x00 0xA0 0x00 0x68 0x25 0x00 0x00 0x00 0x01 0x01 0x92 0x75 0xC0
Log: [Read] 0xC0 0x18 0x00 0x00 0xE8 0xC0
Log: [Read] 0xC0 0xDA 0x6E 0x00 0xB8 0x01
Log: [Read] 0x68 0x00 0x00 0x00 0x00 0x9A 0xC3 0xC0
Log: [Write] 0xC0
Log: [Write] 0x18 0x00 0x00 0xE8 0xC0 0xC0 0xDB 0xDD 0xCE 0x01 0x56 0x00 0x88 0x01 0x00 0xB6 0xCB 0x1D 0x86 0x02 0x34 0x01 0x01 0x00 0x40 0x01 0xF0 0x00 0x05 0x00 0x01 0x28 0x00 0x50 0x00 0x00 0x00 0x2A 0x00 0xD2 0x17 0xC0
Log: [Read] 0xC0 0x20 0x00 0x00 0xE0 0xC0
Log: [Read] 0xC0
Log: [Read] 0xE3 0x6E 0x00 0xAF 0x01 0x88 0x00 0x00 0x00
Log: [Read] 0x00 0x3C 0x5E 0xC0
Log: [Write] 0xC0
ble connect status = 0
Log: [Write] 0x20 0x00 0x00 0xE0 0xC0
Log: [Read] 0xC0 0xE4 0xDE 0x01 0x3D 0x02
Log: [Read] 0x10 0x00 0x00 0x00 0x00 0xB6 0xCB 0x1D 0x86 0x02
Log: [Read] 0x34 0x01 0x25 0x7F 0xDA 0x7A 0xEC 0xEA 0x02
Log: [Read] 0x00 0x50 0x00 0x50 0x00 0x00 0x00 0x2A 0x00 0x5B
Log: [Read] 0xE9 0xC0
Log: [Write] 0xC0
Got event id (16)
Log: [Write] 0x28 0x00 0x00 0xD8 0xC0
Connection Status = 1
connection added: {0L: <ble.connection instance at 0xb47cc3a0>}
Log: [Read] 0xC0
Log: [Read] 0xE5 0x6E 0x00 0xAD 0x02 0x11 0x00 0x00 0x00 0x3E 0xEB 0xDA 0xC0
Log: [Write] 0xC0
Log: [Write] 0x30 0x00 0x00 0xD0 0xC0
Got event id (17)
disconnect: 0
disconnect reason = 62
Connection Status = 0

I've tried setting compatibility mode. That makes no difference.

I'm also attaching Frontline sniffs of the interaction.

Any help would be appreciated.

Thanks.

NordicDisconnect.cfa

democapture.pcapng

democapture2.pcapng

democapture3.pcapng

testAtestB.pcapng

testA.pcapng

TestA-2.cfa

TestB-2.cfa

Parents
  • Hi Jimvert,

    To generate a modified connectivity_115k2_with_s130_1.0.0.hex for testing I will have to go through R&D as I don't have the source here. And it may take some time. I have prepared some test case that I generated from the SDK and you only have to flash to the nRF51 dongle and capture the sniffer trace when testing. Having the result from the test case will help us understand what to modify for the connectivity_115k2_with_s130_1.0.0.hex.

    To test you would need to:

    • Flash the nRF51 with the S120 softdevice I provided here (using nRFGo Studio).
    • Flash the nRF51 with one of the test cases hex I provided.
    • Start the sniffer and let it track the peripheral under test
    • The nRF51 will try to connect to any BLE peripheral around, please make sure you don't have more than 1 peripheral around. If you have, please reset the central if it connects to the wrong one.
    • Save the sniffer trace
    • Repeat step 1, this time flash the other test case hex file on step 2 .

    In the test cases, I basically modified the clock accuracy, the second one also enable the comparability mode in addition.

    s120_nrf51_2.1.0_softdevice.hex

    TestCaseA_S120.hex

    TestCaseB_S120.hex

  • Hi Jim, I have an update. We reproduced the issue here and contacted SciLab and got to know that they are aware of this issue and are working on this. I won't expect a quick fix from our side for this issue.

Reply Children
No Data
Related