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

Send and receive long range advertisement(coded PHY) and short range packets(2Mbps PHY) simultaneously with multi-roll

Hello,
I need to develop software that realizes the following communication.
[For Central]
  • Communicates with two peripherals with 2Mbps PHY(short range) and long length packet
  • Sends and receives long range(Coded PHY) and long length broadcast messege between another Centrals
[For Peripheral]
  • Only communicates with own Central with 2Mbps PHY(short range) and long length packet
 
<My corrent plan>
I've just start to study nRF52840, nRF5 SDK, S140, and the following examples.
  • examples\ble_central_and_peripheral\experimental\ble_app_multirole_lesc
  • examples\ble_central_and_peripheral\experimental\ble_app_att_mtu_throughput
<The following are my concerns>

2Mbps PHY and Coded PHY are may not be used at the same time on Central.
If Central switches 2Mbps and Coded alternately, it may not be able to receive 2Mbps's packets during Coded, and it may also not be able to receive Coded's packets during 2Mbps.
So in the function gatt_mtu_set of ble_app_att_mtu_throughput\main.c, same PHY type is set to both Central and Peripheral.
Is this my guess correct?
Can I use any Nordic's SoC and SDK to develop software that meets the above criteria?
If possible, please tell me the appropriate SoC and corresponding SDK, SoftDevice, and example.
Parents
  • Seno,

    2Mbps PHY and Coded PHY are may not be used at the same time on Central.
    If Central switches 2Mbps and Coded alternately, it may not be able to receive 2Mbps's packets during Coded, and it may also not be able to receive Coded's packets during 2Mbps.

     nRF52 devices have a single RADIO. You are correct in your understanding. So at a single instance of time, if the central is working on 2M PHY connection, it will not receive the Coded data, but that should be OK since the peer who is transmitting in CODED phy will retransmit the packets until the central switched to CODED and ACKED the packets. 

     

    So in the function gatt_mtu_set of ble_app_att_mtu_throughput\main.c, same PHY type is set to both Central and Peripheral.

    The mtu_throughput example is one-to-one connection that can be configurable to work on different PHY, if you want to use this example you need modify it support multiple connections. I think what you need is to find a way to merge the multiconnections support from ble_app_multirole_lesc example and the multi PHY support from the ble_app_mtu_throughput. I think that this is not a very straightforward merge, so this will take some efforts to merge them.

    /Susheel

Reply
  • Seno,

    2Mbps PHY and Coded PHY are may not be used at the same time on Central.
    If Central switches 2Mbps and Coded alternately, it may not be able to receive 2Mbps's packets during Coded, and it may also not be able to receive Coded's packets during 2Mbps.

     nRF52 devices have a single RADIO. You are correct in your understanding. So at a single instance of time, if the central is working on 2M PHY connection, it will not receive the Coded data, but that should be OK since the peer who is transmitting in CODED phy will retransmit the packets until the central switched to CODED and ACKED the packets. 

     

    So in the function gatt_mtu_set of ble_app_att_mtu_throughput\main.c, same PHY type is set to both Central and Peripheral.

    The mtu_throughput example is one-to-one connection that can be configurable to work on different PHY, if you want to use this example you need modify it support multiple connections. I think what you need is to find a way to merge the multiconnections support from ble_app_multirole_lesc example and the multi PHY support from the ble_app_mtu_throughput. I think that this is not a very straightforward merge, so this will take some efforts to merge them.

    /Susheel

Children
Related