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

firmware resets with high pc-ble-driver MTU values

I want to increase the MTU values to increase the throughput from my own service (currently based on NUS service) and to receive the data with pc-ble-driver-python with the 1M serialization firmware on an nrf52832 devboard and pc-ble-driver-py 0.11.3.

When sending from my firmware to the android nrf master control panel, the MTU can be set e.g. to 158 and also receive the UART notifications from the TX characteristic.

When I try to connect with pc-ble-driver-py I can connect to my service and see the notification data if the MTU is set to 63. When setting it to a value above the target resets when receiving the first notification. The linux nrf-connect v2.1.0 also resets the connectivity firmware with the high mtu setting!

Is there any buffer I have to set to a bigger value or what could be the reason for the reset? I tried to compare my python program to the pc-nrfutil/nordicsemi/dfu/dfu_transport_ble.py as it seems there the MTU is also set to a higher value but I can't find a buffer setting.

ATT MTU exchanged: conn_handle=0 att_mtu=65
ATT MTU exchange response: conn_handle=0
      76 ->  [00 9c 00 00 01 01 00 13 00 00 00 02 00 01 01 00 ]
               type:     VENDOR_SPECIFIC reliable:yes seq#:7 ack#:6 payload_length:10 data_integrity:1 header_checksum:fa err_code:0
   75/ 0 <-  []
               type:                 ACK reliable: no seq#:0 ack#:0 payload_length:0 data_integrity:0 err_code:0
   76/ 0 <-  [01 9c 00 00 00 00 ]
               type:     VENDOR_SPECIFIC reliable:yes seq#:6 ack#:0 payload_length:6 data_integrity:1 header_checksum:cc err_code:0
      77 ->  []
               type:                 ACK reliable: no seq#:0 ack#:7 payload_length:0 data_integrity:0 err_code:0
   77/ 0 <-  [02 38 00 00 00 00 00 00 00 13 00 01 00 00 00 00 ]
               type:     VENDOR_SPECIFIC reliable:yes seq#:7 ack#:0 payload_length:10 data_integrity:1 header_checksum:2a err_code:0
      78 ->  []
               type:                 ACK reliable: no seq#:0 ack#:0 payload_length:0 data_integrity:0 err_code:0
   78/ 0 <-  [01 7e ]
               type: LINK_CONTROL_PACKET reliable: no seq#:0 ack#:0 payload_length:2 data_integrity:0 err_code:0
               [SYNC]
State change: STATE_ACTIVE -> STATE_RESET

      79 ->  []
               type:          RESERVED_5 reliable: no seq#:0 ack#:0 payload_length:0 data_integrity:0 err_code:0
Target Reset performed
   79/ 0 <-  [01 7e ]
               type: LINK_CONTROL_PACKET reliable: no seq#:0 ack#:0 payload_length:2 data_integrity:0 err_code:0
               [SYNC]State change: STATE_RESET -> STATE_UNINITIALIZED


      81 ->  [02 7d ]
               type: LINK_CONTROL_PACKET reliable: no seq#:0 ack#:0 payload_length:2 data_integrity:0 err_code:0
               [SYNC_RESP]      80 ->  [01 7e ]
               type: LINK_CONTROL_PACKET reliable: no seq#:0 ack#:0 payload_length:2 data_integrity:0 err_code:0
               [SYNC]

   80/ 0 <-  [02 7d ]
               type: LINK_CONTROL_PACKET reliable: no seq#:0 ack#:0 payload_length:2 data_integrity:0 err_code:0
               [SYNC_RESP]
State change: STATE_UNINITIALIZED -> STATE_INITIALIZED

   81/ 0 <-  [03 fc 11 ]
               type: LINK_CONTROL_PACKET reliable: no seq#:0 ack#:0 payload_length:3 data_integrity:0 err_code:0
               [CONFIG [ sliding-window-size:1 out-of-frame:0 data-integrity-check-type:1 version-number:0 ]]
      83 ->  [04 7b 11 ]
               type: LINK_CONTROL_PACKET reliable: no seq#:0 ack#:0 payload_length:3 data_integrity:0 err_code:0
               [CONFIG_RESP [ sliding-window-size:1 out-of-frame:0 data-integrity-check-type:1 version-number:0 ]]      82 ->  [03 fc 11 ]
               type: LINK_CONTROL_PACKET reliable: no seq#:0 ack#:0 payload_length:3 data_integrity:0 err_code:0
               [CONFIG [ sliding-window-size:1 out-of-frame:0 data-integrity-check-type:1 version-number:0 ]]

   82/ 0 <-  [04 7b 11 ]
               type: LINK_CONTROL_PACKET reliable: no seq#:0 ack#:0 payload_length:3 data_integrity:0 err_code:0
               [CONFIG_RESP [ sliding-window-size:1 out-of-frame:0 data-integrity-check-type:1 version-number:0 ]]
State change: STATE_INITIALIZED -> STATE_ACTIVE

Connection active
Related