This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BLE-STACK: Webbluetooth: Fast Transfer for large Files and Firmware OTA?

Part Number: BLE-STACK

Hi forum,

since many Browsers now support Bluetoth LE, it is much more convenient to write Apps as PWA, using standard Javascript + HTML and with the  API:. https://webbluetoothcg.github.io/web-bluetooth/

Everything is working really excellent with the TI BLE-Stack, but not very fast...

For transferring large Files it is important to run at maximum speed: Large MTU (up to 251 allowed) and short Connection Intervals (7.5 msec).
Theoretically up to 30kB/sec is possible.

However, Webbluetooth does not support active control of the Link-Parameter, such as MTU size and Connection Intervals.

  • It is possible to modify the Connection Intervals from the Peripheral side, but not the MTU.
  • Browsers on Desktop PCs seem to negotiate  MTU of 65 Bytes, whereas on Android I always only get 23 Bytes and it seems No. of PDUs for Webbluetooth is always 1 or 2?

Does anyone know how to get transfer maximum transfer speeds with Webbluetooth?

Bottleneck seems to be the Direction:  PC/Android -> Periheral: PC:2.5kB/sec, Android:1kB/sec ( Backwards it is faster: Peripheral -> PC/Android: 5-10kB/sec)

Thanks,

Jo

  • Hi,

    I believe our default simple_peripheral application is setup to request connection parameter update upon connection. In the end it's the Central/Master device that mandates connection parameters which I suppose could be limited by either browser, OS or even the BT chipset. Would you be able to sniff the communication? (SmartRF Packet Sniffer)

  • Hi Joakim,

    yes, I know, that the Connection Interval can be changed by the Server (= Peripheral). As mentioned, I use it already.

    But Link speed is formed by 3 parameters:

    1. Connection Interval
    2. MTU
    3. No of PDU

    Only 1. can be changed by both, 2. and 3. (maybe?) only by Client ( = here Webbluetooth API).

    I just wonder, probably I'm not the only one with this question for High/Low speeds.
    Unfortunelly I have no Sniffer Logs, but I use the "nRF Connect" as injected Filter. From there I can increase the Client's MTU from 23 to 65, but this is not a solution for users.

    Best regards,

    Jo