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

How to increase packet size in DFU on IOS

I am using an iPhone Xs and trying to increase my transfer speed using the nrf connect app and a dvk-bl653 kit. I saw that my packets were only 27 bytes and I was only getting a transfer speed of ~2.6kB/s, how can I configure my packets to be larger, I believe the maximum on IOS is 185. I am using VScode on windows 10 and v1.8.0 of the nRF connect SDK.

Parents
  • Hello,

    I played around with some different connection parameters and it seems like the connection interval is the main bottleneck, not the radio packet length. Any chance you can upgrade to SDK 1.9.0? This version introduced a couple of new configuration symbols that makes mcumgr automatically request a connection parameter update when DFU is started.

    I was able to get around 7kB with the following config settings on version 1.9.0:

    # Allow for large Bluetooth data packets.
    CONFIG_BT_L2CAP_TX_MTU=247
    CONFIG_BT_BUF_ACL_RX_SIZE=251
    CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
    CONFIG_BT_PHY_UPDATE=y
    # Support larger radio packets
    CONFIG_BT_DATA_LEN_UPDATE=y
    # Settings introduced in v1.9.0.
    # Request a 15 ms connection interval for DFU
    CONFIG_MCUMGR_SMP_BT_CONN_PARAM_CONTROL=y
    CONFIG_MCUMGR_SMP_BT_CONN_PARAM_CONTROL_MAX_INT=12
    CONFIG_MCUMGR_SMP_BT_CONN_PARAM_CONTROL_MIN_INT=12

    If you need to use v1.8.0, then you can try to request the same interval from your app like how we do it in the Bluetooth: Throughput sample.

    Sniffer capture of the DFU session:

    6763.bt_sniffer_trace.pcapng

    Best regards,

    Vidar

Reply
  • Hello,

    I played around with some different connection parameters and it seems like the connection interval is the main bottleneck, not the radio packet length. Any chance you can upgrade to SDK 1.9.0? This version introduced a couple of new configuration symbols that makes mcumgr automatically request a connection parameter update when DFU is started.

    I was able to get around 7kB with the following config settings on version 1.9.0:

    # Allow for large Bluetooth data packets.
    CONFIG_BT_L2CAP_TX_MTU=247
    CONFIG_BT_BUF_ACL_RX_SIZE=251
    CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
    CONFIG_BT_PHY_UPDATE=y
    # Support larger radio packets
    CONFIG_BT_DATA_LEN_UPDATE=y
    # Settings introduced in v1.9.0.
    # Request a 15 ms connection interval for DFU
    CONFIG_MCUMGR_SMP_BT_CONN_PARAM_CONTROL=y
    CONFIG_MCUMGR_SMP_BT_CONN_PARAM_CONTROL_MAX_INT=12
    CONFIG_MCUMGR_SMP_BT_CONN_PARAM_CONTROL_MIN_INT=12

    If you need to use v1.8.0, then you can try to request the same interval from your app like how we do it in the Bluetooth: Throughput sample.

    Sniffer capture of the DFU session:

    6763.bt_sniffer_trace.pcapng

    Best regards,

    Vidar

Children
No Data
Related