This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Why does Nordic_Uart sample do an illegal response for iPhone X?

I am trying to communicate with iPhone X using Nordic_Uart sample project in SDK 14.2. And I check the Protocols between nRF52DK and iPhone X by using Ellisys Bluetooth Tracker, I found an error on LLCP Length Response. LL_LENGTH_RSP.png

The nRF52DK responses a value of 313 as both MaxTx and MaxRx for iPhone X. why does this incomprehensible thing occur?

Parents Reply Children
  • This seems like a but in the softdevice, but I have still been able to connect. Looks like iOS will continue with it's maximum length. Anyway the workaround seems to be not to use Auto when setting the Length when replying to the Data Lengt update request after the PHY is updated to 2mbit.

    Note that if you do not handle the PHY request event in your firmware, iPhone x will not do service discovery. If that is the case please consider creating a new question for you issue. Preferably including sniffer logs.

  • Can you confirm the lack of service discovery after handling the PHY request? We added handling of BLE_GAP_EVT_PHY_UPDATE_REQUEST to our primary BLE event handler and it seemed to have resolved the connection problems we were having, without introducing any issues with service discovery.

  • Sorry, that was a typo. You have to handle the PHY request for iPhone 8 and X to do service discovery.

  • Hi Brad,

    We want to solve this problem but i dont understand whether  BLE_GAP_EVT_PHY_UPDATE_REQUEST we need to add into the UART BLE App code or UART device firmware code.If it is in iPhone UART App code then where we can add it. Please help

  • In nRF5_SDK_15.0.0_a53641a\examples\ble_peripheral\ble_app_uart\ this event is handled in main.c at line 378. MTU exchange and data length update procedures are handled in nrf_ble_gatt_on_ble_evt in nrf_ble_gatt.c.

Related