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

max_rx_octets max_rx_time_us.

Hello,

our project has a requirement,

nrf52832 is used as a peripheral, and the mobile phone is connected to nrf52832.

The amount of data is relatively large. We want to modify two parameters on the mobile phone, max_rx_octets and max_rx_time_us.

The effect of the modification is as follows:

00> on_ble_peripheral_evt -> BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST
00> on_ble_peripheral_evt -> BLE_GAP_EVT_DATA_LENGTH_UPDATE
00> max_rx_octets : 251
00> max_rx_time_us : 2120
00> max_tx_octets : 251
00> max_tx_time_us : 2120

But we found that some Android phones can be modified by MTU is 247 to get the effect we want, but some phones do not respond

00> on_ble_peripheral_evt -> BLE_GATTC_EVT_EXCHANGE_MTU_RSP  -> server_rx_mtu = 247
00> on_ble_peripheral_evt -> BLE_GAP_EVT_DATA_LENGTH_UPDATE
00> max_rx_octets   : 27 
00> max_rx_time_us  : 328 
00> max_tx_octets   : 251 
00> max_tx_time_us  : 2120 

Is there a solution to this?

  • Hello,

    Are you in control of the software on the central side as well?
    The central is the one that ultimately decides what connection parameters will be used for the connection.
    The peripheral may only request an update of the connection parameters, but the central is the one that decides.
    There might also be hardware or OS limitations on the mobiles that do not accept the request, that prevents them from accepting the parameters requested by the peripheral.

    But we found that some Android phones can be modified by MTU is 247 to get the effect we want, but some phones do not respond

    Could you clarify whether the central ignores the request, or if it actively rejects it?
    It might be interesting to see a sniffer trace communication happening between the devices at the time of the request.

    Best regards,
    Karl

  • Hai,Karl

          Our NRF52832 is both peripheral and central. If the mobile device is used as a central, it ignores or rejects this request, do we have a good solution or idea to solve it

  • Ben_iot said:
    Our NRF52832 is both peripheral and central.

    Could you elaborate what you mean by this?
    Based on the original ticket text I was under the impression that the nRF52832 would work as a peripheral, with a smartphone connected in the central role - is this not the case?

    Ben_iot said:
    it ignores or rejects this request, do we have a good solution or idea to solve it

    If the request is rejected you have to reprogram your mobile application (if possible) to accept the parameters that the peripheral is requesting. However, as mentioned there might be OS or Hardware limitations on the particular phone, which makes this infeasible.
    Could you give an example of a phone where the connection update is accepted, and one where the connection update is rejected? What OS version are they both running?

    Best regards,
    Karl

Related