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

Regarding Serial Port Emulation over BLE vs SPP over classic BT

Dear Nordic team,

Regarding Serial Port Emulation over BLE in nRF5_SDK_15.3,

I'd like to know following as:

1. It looks like to replace SPP (Serial Port Profile) of classic BT. Is it correct ?

2. If yes, What is the maximum data rate over BLE compared with SPP (Serial Port Profile) in classic BT , without the consideration of UART speed ?

    Do you have measurement data of both Serial Port Emulation over BLE and SPP in classic BT ?

3. Is the maximum data rate over BLE can be changed according to BLE chipset version 4.0, 4.2, v5.0, without the consideration of UART speed ?

    If yes, do you have measurement data ?

4. What is the merit of it(Serial Port Emulation over BLE ) compared with SPP  in classic BT ? 

Thanks.

  • Hi

    1. Yes and no. The Nordic UART service (NUS) is meant as an alternative to SPP for applications where you want to exchange custom information between devices, but because BLE makes it very easy to create your own profiles and services the UART service is only meant as an example of how you can make a proprietary service, and is not meant to be used directly in end products. 

    The Bluetooth SIG wanted to avoid a situation like SPP where thousands of different devices send wildly different types of information over the exact same service, because it devalues the point of having a service in the first place. Instead they made it very easy to make your own custom services, by using the GATT protocol in BLE.  

    For evaluation and prototyping you can use the NUS service freely, but if you are planning to make a product based on it you should change the base UUID to something unique. Then you are also free to make other changes to the service, such as adding or removing characteristics. 

    2. Bluetooth 4.0 maxed out at approximately 128 kbps, Bluetooth 4.2 increased this to ~760 kbps, and Bluetooth 5 increased this again to ~1360 kbps when using the 2Mbps high speed mode. 

    If you use Nordic devices on both sides of the link you should be able to get close to these values, but when connecting to other equipment (like phones or PC's) there could be other limitations in place. 

    The fastest phones we have seen max out at about 1200 kbps, and most of them are significantly slower. 

    In other words it is risky to make assumptions about throughput if you want to support a large number of devices. 

    We have not made any comparisons to SPP, no. 

    3. I guess my previous reply covers some of this. Later specifications will typically allow better throughput, but again it depends on the device you connect to, and there are no guarantees. 

    4. At the top of my head I can think of a couple of advantages at least:

    - Lower average current consumption

    - More future proof (classic BT is likely to be deprecated some time in the future)

    - Easy ability to adjust the service to your requirements, and give it a unique UUID

    Best regards
    Torbjørn

  • Hi Torbjorn,

    Thanks you for your detailed feedback per each question. 

    Could you let me know following question ?

    - The theoretical max speed of BLE 4.0 & 4.2, and SPP of classic BT.

    - Why Bluetooth 4.0 maxed out at approximately 128 kbps, Bluetooth 4.2 increased this to ~760 kbps, compared with the theoretical max speed.

    Thanks. 

  • Hi 

    The theoretical max speed of BT 4.0 and 4.2 is approximately 128 kbps and 760 kbps respectively, as mentioned earlier. 

    The max speed of SPP I am not sure. We don't provide classic BT solutions, so we don't have any solutions in house to test on. 

    I did some googling and found the following stackoverflow thread, with some information on SPP transfer speed:
    https://stackoverflow.com/questions/32091614/bluetooth-spp-throughput

    In Bluetooth 4.0 the largest packet you could send was only 27 bytes, and out of those only 20 bytes were available for user data. 

    When using the minimum connection interval of 7.5ms it was possible to send 6 of these packets every connection interval, which equals a total data throughput of 128 kbps ((1000ms / 7.5ms)) * 6 * 20 * 8 = 128000).

    Bluetooth 4.2 added a feature called data length extension, allowing you to send packets as large as 251 bytes (out of which 244 were available for user data), and this greatly increased the theoretical maximum data rate. 

    Best regards
    Torbjørn

  • Hi Overbekk,

    Thank you so much for your detailed feedback which is very helpful for my understand.

    Thanks.

  • Hi

    I am happy to help. Good luck with your project Slight smile

    Best regards
    Torbjørn

Related