Central device with more than 20 sensors sending measurements.

I am looking for a reccomendation on the best way to create a system with one central device receiving measurements from more than 20 sensors (up to 40).

We have made a test with the central device having two 52840 chip that each handle 20 connections. The sensors collect and send data in packets every second.

This is working OK, but I am wondering if there is a better way to deal with this setup: Can I send sensor data without creating a connection? Should I look at BLE MESH or can I not expect the needed bandwidth.

Each sensor mainly collects 40 * 6-byte samles each second, these are transmitted in one large packet roughly one packet every second using sd_ble_gatts_hvx(). 200 something bytes in each transmission.

I am currently using the SDK version 17.0.2, but I am considering migrating to nRF Connect v2.4.

Parents
  • Hi Thomas,

    As you might have already known, in the nRF5 SDK, the maximum number of concurrent connections is 20. This remains true for the nRF Connect SDK (NCS) when using the SoftDevice Controller.

    With NCS, it is however possible to use the opensource Zephyr Controller. It can help you achieve 40 concurrent connections, as long as the device's RAM and ROM permit.

    Having said that, I must mention that there are some reasons why we don't usually recommend the Zephyr Controller:

    • The SoftDevice Controller is engineered to work with the nRF SoCs, so it is able to perform better on nRF hardware than the Zephyr Controller.

    • Nordic performed qualification for the SoftDevice Controller, which you can refer to during your Bluetooth Qualification. We don't do this for the Zephyr Controller.
      Link to qualification of the nRF53 for example: https://infocenter.nordicsemi.com/topic/comp_matrix_nrf5340/COMP/nrf5340/nrf5340_ble_qdid_qual_matrix.html.

    • The SoftDevice Controller is developed by Nordic, and our ability to support when it comes to this controller is better.

    On the other hand, the Zephyr Controller has certain advantages, such as number of concurrent connections discussed here, or the final compiled size, as discussed in the lower part of the comment section of this DevZone question.

    Can I send sensor data without creating a connection? Should I look at BLE MESH or can I not expect the needed bandwidth.

    You can send sensor data without creating a connection using advertisement.

    In both the nRF5 SDK and NCS, you can use normal BLE advertisement that cycle through smaller part of your 200+ byte data.

    In NCS, you can also explore Extended Advertising, which can transmit an advertising payload of 200+ byte by having a data payload advertised on the BLE Data Channel.

    This option however is far more energy demanding for both the sender and receiver. It is also far less reliable than a connection, and thus the throughput you want, one-200+-byte packet per second x40 nodes, will be difficult to realize with this.

    Bluetooth Mesh is created on top of BLE Advertising v4.2, so it has the same issue. It provides certain feature to improve reliability, but the added overhead and protocol restriction likely will result in poor performance at the data-rate in your use case.

    In conclusion, among all the options, I recommend one of these approaches:

    1. Two SoCs with SoftDevice/SoftDevice Controller, or
    2. One SoC with Zephyr Controller on NCS.

    Hieu

Reply
  • Hi Thomas,

    As you might have already known, in the nRF5 SDK, the maximum number of concurrent connections is 20. This remains true for the nRF Connect SDK (NCS) when using the SoftDevice Controller.

    With NCS, it is however possible to use the opensource Zephyr Controller. It can help you achieve 40 concurrent connections, as long as the device's RAM and ROM permit.

    Having said that, I must mention that there are some reasons why we don't usually recommend the Zephyr Controller:

    • The SoftDevice Controller is engineered to work with the nRF SoCs, so it is able to perform better on nRF hardware than the Zephyr Controller.

    • Nordic performed qualification for the SoftDevice Controller, which you can refer to during your Bluetooth Qualification. We don't do this for the Zephyr Controller.
      Link to qualification of the nRF53 for example: https://infocenter.nordicsemi.com/topic/comp_matrix_nrf5340/COMP/nrf5340/nrf5340_ble_qdid_qual_matrix.html.

    • The SoftDevice Controller is developed by Nordic, and our ability to support when it comes to this controller is better.

    On the other hand, the Zephyr Controller has certain advantages, such as number of concurrent connections discussed here, or the final compiled size, as discussed in the lower part of the comment section of this DevZone question.

    Can I send sensor data without creating a connection? Should I look at BLE MESH or can I not expect the needed bandwidth.

    You can send sensor data without creating a connection using advertisement.

    In both the nRF5 SDK and NCS, you can use normal BLE advertisement that cycle through smaller part of your 200+ byte data.

    In NCS, you can also explore Extended Advertising, which can transmit an advertising payload of 200+ byte by having a data payload advertised on the BLE Data Channel.

    This option however is far more energy demanding for both the sender and receiver. It is also far less reliable than a connection, and thus the throughput you want, one-200+-byte packet per second x40 nodes, will be difficult to realize with this.

    Bluetooth Mesh is created on top of BLE Advertising v4.2, so it has the same issue. It provides certain feature to improve reliability, but the added overhead and protocol restriction likely will result in poor performance at the data-rate in your use case.

    In conclusion, among all the options, I recommend one of these approaches:

    1. Two SoCs with SoftDevice/SoftDevice Controller, or
    2. One SoC with Zephyr Controller on NCS.

    Hieu

Children
No Data
Related