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

can an nrf52 series SOC transmite a ble message to 150 units in one second ?

Hello

we are thinking of using the nrf52832 (sdk 16.0, s132) , which we are a bit familiar with by now.

We have a project in which we need to transmit data to 150 unit via BLE, we do not think of pairing with the receiveing units.

we are thinking of grouping the data for 50 units in one 255 byte message (so 3 messages and we wish to be sending serveral times in a second for each group)

if i want to send a 255 byte message via ble, how much time does it take ? how many messages like that i can transfer in one second ?

is it preferable to use bluetooth 5.0 if i have no power supply issues ?

if bluetooth is preferable then why?

and is there an sdk example or certain softdevice that support bluetooth insted of ble  ?

Best regards

Ziv

Parents
  • thinking about it ...

    an elegant solution could be to send one message, each unit receives the same message but takes its own relevant data by byte position or some "pre-unit id" info .. need to check the maximum number of bytes possible to deliver via ble or bleutooth 5

  • Bluetooth 5 is a good idea - not only because of longer messages, but because you can offload your data to secondary channels and not spam too much at primary ones. Remember, the longer your message, the higher probability to have a bit error somewhere and loose the whole packet.

    Grouping messages by 3 in a packet, you will need to send 50 messages per second, not a problem.. but think about other side - every device should listen continuously, receive and analyze each message, taking radio and CPU busy most of the time. Maybe it worth to think about custom protocol with different time slots for each receiver. Though if your devices are not battery-powered, it's not an issue.

Reply
  • Bluetooth 5 is a good idea - not only because of longer messages, but because you can offload your data to secondary channels and not spam too much at primary ones. Remember, the longer your message, the higher probability to have a bit error somewhere and loose the whole packet.

    Grouping messages by 3 in a packet, you will need to send 50 messages per second, not a problem.. but think about other side - every device should listen continuously, receive and analyze each message, taking radio and CPU busy most of the time. Maybe it worth to think about custom protocol with different time slots for each receiver. Though if your devices are not battery-powered, it's not an issue.

Children
  • hi Dmitry

    well i was thinking of grouping 50 messages in a packet (not sure how long this packet needs to be in that case) and then send 3 messages in one second, but i guess there can be some deviation which is best .. what did you mean by different time slots for each receiver, it is an asynch communication, i don't have a shared clock or something like that, how is that possible to have different time slots for each receiver group to start listening at the correct time within the every second ?

  • well i was thinking of grouping 50 messages in a packet (not sure how long this packet needs to be in that case)

    A single packet cannot be longer than 255 bytes - you can group up to 8 devices into a message, but in case of a single error, the whole message will be lost.

    what did you mean by different time slots for each receiver

    When using own protocol, you can divide 1 second into 150 timeslots, sending a message for each device with different access address at exact point of time.

    i don't have a shared clock or something like that

    I don't know your case in detail, an easiest way is to listen continuously until first packet with receiver's access address arrived, then start RX every time a bit ahead of its next timeslot (knowing that there should be exactly 1000 ms from start to start).

  • Hi

    I am a bit confused.. when referring to a 255 byte of data size in a packet, are we referring to a beacon packet or a broadcasting packet (does it metter? are they both runing over the 3 advertising channels? ) ?

    When talking about time slots do you mean after pairing has been made ( i guess it is configured within the GATT)  ?

    I am not planning on pairing because I want to send the message from one unit to all the rest (its like an initiating central to many peripheral) and I don't want to loos time on scanning Acks and such.

    If I wish to send a 255 byte packet from my nrf52832, how many packets like that I can broadcast in one second ? I think I need at least 15, to 3 different units groups ids ?

    is it preferable to use Bluetooth 5.0 if i have no power supply issues ?

    if Bluetooth is preferable then why and does it have a brodcast mode like beacon or other to transmit data to all listeners?

    and is there an sdk example or certain softdevice that support Bluetooth instead of ble  ?

    Best regards

    Ziv

  • Hi,

    I am a bit confused.. when referring to a 255 byte of data size in a packet, are we referring to a beacon packet or a broadcasting packet (does it metter? are they both runing over the 3 advertising channels? ) ?

    I can't get what you mean under 'broadcasting packet', but any packed can't be longer than 255 bytes - it's a hardware limitation. You can set channel mask to advertise only on a single channel.

    When talking about time slots do you mean after pairing has been made ( i guess it is configured within the GATT)  ?

    I mean a custom protocol that would use radio directly - no GATT and pairing, you can define timings and packet content as you wish (again, not longer than 255 bytes). The drawback is lack of security (if you're concerned with it) and higher complexity of development.

    If I wish to send a 255 byte packet from my nrf52832, how many packets like that I can broadcast in one second ? I think I need at least 15, to 3 different units groups ids ?

    With BLE advertising, you're limited with minimal interval that is 20 msec - you can send about 50 messages in a second (with extended advertisings, a message can consist of more than one packet, up to 1650 bytes).

    and is there an sdk example or certain softdevice that support Bluetooth instead of ble  ?

    BLE is Bluetooth Low Energy, under Bluetooth 5.0 I mean its low energy variant. We're not talking about classic Bluetooth - it's not supported by nrf52.

Related