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

BLE Multilink, Aggregator and UART with fixed devices

I'm currently using this setup on a fitness device prototype that will send battery status, scores and relevant infos.

RPi >>>RFM69 915MHz ))))))           ((((( RFM69 >>> Adafruit Feather M0  and plans to add more RFM69+Feather M0. My problem is aside from higher power consumption compared with BLE is a working reliable communications in all the libraries I tested.

Currently I tested the ble multilink app with nRF52dk as aggregator, 1 nRF52 thingy and a smartphone.

Now my questions are:
1. I'm a bit confused on the ble multilink central example included on SDK with the one on github nrf52-ble-multi-link-multi-role. On ble multilink central info it says up to 8 concurrent devices but with nrf52-ble-multi-link-multi-role on github it indicates up to 20 devices. What are difference of this two aside from this number of devices that can connect? 

2.With concurrent connections sending via uart from 8 devices to the device connected on RPi will this setup work. A few ms of delay is allowable. 
  (I say this is the master)   RPi >>>nRF52840 usb dongle or a nRF52dk ))))                   ((((( 8 pcs nRF52832/nRF52840 (this are the slaves)

3. If #2 works assuming I have 2 or more masters how can I set that the specific master only connects to the slaves intended for it. Should I register like all the mac address of all slaves in each master? Or there are better ways to implement this? 

4. Assuming two slaves send data at the same time will one of the data will be lost? or the two will mixed up? or both loss? since based on what I understand all those slaves connects on one uart port on the master? or the master manages this slaves so only one can send at a time? (sorry this question seems noobish)

Thank you in advance!

Parents
  • Hi

    1. The ble_multilink_central example is mainly limited to 8 links for historical reasons, as the earlier versions of this example were based on the S130 SoftDevice which only supported 8 central links. 

    When using the S132 or S140 SoftDevices you can increase this to 20 if you want, by changing the NRF_SDH_BLE_CENTRAL_LINK_COUNT and NRF_SDH_BLE_TOTAL_LINK_COUNT defines in sdk_config.h, and increasing the RAM assigned to the SoftDevice accordingly. 

    If you are looking for a simple starting point for doing a multilink central the ble_multilink_central example is probably a better starting point compared to the nrf52-ble-multi-link-multi-role example. 

    2. Do you mean if it is possible for the nRF52840 USB dongle to be a peripheral (slave) to the RPi and a central (master) to 8 nRF52 devices at the same time?

    This is possible definitely, but the total bandwidth has to be divided by all the connected devices. 

    3. In this case you probably need to register a list of known slaves on the master side, and only try to connect to advertising devices that can be found in this list. 

    4. The master will poll each slave in turn, and the slaves are not allowed to send anything until they receive a packet from the master, so there is no risk that the slaves will interfere with each other as long as they are connected to the same master device. 

    Best regards
    Torbjørn

Reply
  • Hi

    1. The ble_multilink_central example is mainly limited to 8 links for historical reasons, as the earlier versions of this example were based on the S130 SoftDevice which only supported 8 central links. 

    When using the S132 or S140 SoftDevices you can increase this to 20 if you want, by changing the NRF_SDH_BLE_CENTRAL_LINK_COUNT and NRF_SDH_BLE_TOTAL_LINK_COUNT defines in sdk_config.h, and increasing the RAM assigned to the SoftDevice accordingly. 

    If you are looking for a simple starting point for doing a multilink central the ble_multilink_central example is probably a better starting point compared to the nrf52-ble-multi-link-multi-role example. 

    2. Do you mean if it is possible for the nRF52840 USB dongle to be a peripheral (slave) to the RPi and a central (master) to 8 nRF52 devices at the same time?

    This is possible definitely, but the total bandwidth has to be divided by all the connected devices. 

    3. In this case you probably need to register a list of known slaves on the master side, and only try to connect to advertising devices that can be found in this list. 

    4. The master will poll each slave in turn, and the slaves are not allowed to send anything until they receive a packet from the master, so there is no risk that the slaves will interfere with each other as long as they are connected to the same master device. 

    Best regards
    Torbjørn

Children
Related