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?

Parents Reply Children
  • 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