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

Mtu Data Length Extension

Hi , I have also tried to user android device as  a peripheral to communicate with remote nrf52 device, but due to rx and tx octet mismatching of data symmetric issue , after mtu exchange communication not  able to continue like for notification enable , sending image information , but using nrf connect app it s working .

Will you please able to help fix this issue

Regards,

Shemin

Parents
  • Hi Shemin,

    What SDK are you using?

    Could you provide the debug and sniffer log?

    but using nrf connect app it s working .

    What cannot work on your android device? Is your app? Please elaborate more on the detail. 

    -Amanda H.

  • Hi Amanda,

    Sdk v 15 is using for ble nrf 52 series remote device , iam creating an android peripheral app for communicating with remote device.

    I had created services  and added it , then mtu accepting and negotiation ,then sending notifcations for enabling to remote device , then sending image data and image size, and display this image in remote device .

    But here its till mtu negotiation is occuring, then tx octet and rx octet from peripheral and remote sides are different , and data packet length also different , as ble soft devices supports only data symmetric communication transfer , is this  issue needs to be fixed from android app code of peripheral or c embedded code for remote ble soft device .

    I am also attaching debug log response while communicating peripheral android app with remote ble device .

     Response link : https://ibb.co/YbnpYD1

  • Hi Shemin, 

    From the debug log, I see the mtu exchange is completed and the data length is set to 244. Service UUID 0x1 not found.

    Regarding the error "Service UUID 0x1 Not found", please make sure that you also use the same UUID BASE on both central and peripheral. I.e. the CUSTOM_SERVICE_UUID_BASE that is used on the peripheral, is also the same as the UUID base used on the central side(originally named LBS_UUID_BASE on the multilink central example).

    -Amanda H. 

  • Hi Amanda ,

                        Cleared the above said issues , the issue relies in data transfer between remote device and peripheral android app. We have connected to remote device ,discovered services , exhanged mtu negotiations , then after that data transfer is not able to done as soft devices only support symmetric data transfer , Here in my attached log image link  , in center part , after data length updation to 251,

    max_rx_octetes  in remote device -  27 , max_tx_octetes in peripheral android app - 251

    max_rx_time  in remote device -  328, max_tx_octetes in peripheral android app - 2120 .

    After communicated with our embedded team , max_rx_octet should match with max_tx_octet should be 27 , max_rx_time should match with max_tx_time should be 328 , then symmetric occur and data transfer will occur from soft devices.

    As per Nrf Image Transfer Android App. Libraries , we cannot see anywhere matching these values or cannot change values in android sdk .

    So Kindly check whether this  issue can be fixed from nrf52 ble device embedded c library , will be able make symmetric data transfer  with changes in c code .

    As we are get stucked here , it will be very helpful for us if u can provide  a workaround to fix this issue , also attaching here latest debugg logger from device here

    Device Logger Link :  https://ibb.co/JjRdSw4 .

    Hope u are clear about the issue .

     

Reply
  • Hi Amanda ,

                        Cleared the above said issues , the issue relies in data transfer between remote device and peripheral android app. We have connected to remote device ,discovered services , exhanged mtu negotiations , then after that data transfer is not able to done as soft devices only support symmetric data transfer , Here in my attached log image link  , in center part , after data length updation to 251,

    max_rx_octetes  in remote device -  27 , max_tx_octetes in peripheral android app - 251

    max_rx_time  in remote device -  328, max_tx_octetes in peripheral android app - 2120 .

    After communicated with our embedded team , max_rx_octet should match with max_tx_octet should be 27 , max_rx_time should match with max_tx_time should be 328 , then symmetric occur and data transfer will occur from soft devices.

    As per Nrf Image Transfer Android App. Libraries , we cannot see anywhere matching these values or cannot change values in android sdk .

    So Kindly check whether this  issue can be fixed from nrf52 ble device embedded c library , will be able make symmetric data transfer  with changes in c code .

    As we are get stucked here , it will be very helpful for us if u can provide  a workaround to fix this issue , also attaching here latest debugg logger from device here

    Device Logger Link :  https://ibb.co/JjRdSw4 .

    Hope u are clear about the issue .

     

Children
Related