1 Reply Latest reply on Jun 9, 2017 5:36 AM by jeffr_71

    EZ-serial throughput



      Does the EZ-serial firmware support bluetooth 4.2 data packet length extension ? if yes, how to take advantage of it ?


      I am trying to maximize throughput, but I cannot get more than 16kB/s in cyspp unacknowledged data mode, and 1.3kB/s in cyspp acknowledged data mode. RX flow does not change these numbers.


      I tried L2CAP too, but I can't get more than 13kB/s. In this case I get EZS_ERR_CORE_OPERATION_NOT_PERMITTED quite often when sending ezs_cmd_l2cap_send_data. each packet is 200 bytes:

      • 8kB/s if wait 8ms or less between send_data (success ratio 33%)
      • 11kB/s if I wait 14 ms between send_data (success ratio 50%)
      • 13kB/s if I wait 15 ms between send_data (success ratio 100%)

      It seems the errors are the main limiting factor. How can I reduce them without adding some delay ?


      All these cases are using uart with flow control at 921600 bit/s, and transfer from peripheral to central.





        • 1. Re: EZ-serial throughput

          Hello Eric,


          EZ-Serial does not currently support the Data Length Extension of Bluetooth 4.2. This is partly due to RAM availability (I believe it may not be possible to implement on 128k modules with only 16 kB of RAM), and partly due to feature prioritization. At the moment, we do not have immediate plans to add support for it.


          Because of the API-based mechanism required to use L2CAP, there is some extra UART packet and processing overhead involved compared to the transparent CYSPP mode, and it will be difficult to beat that throughput. Avoiding errors to reduce this overhead--as you are already doing with delays--will be the best approach. The errors come directly from the BLE stack that EZ-Serial uses, so there's no practical way to avoid them otherwise.