2
\$\begingroup\$

I'm interested in delivering 3 bytes to a bunch of recipients roughly every 50ms with a single transmitter. The data sent is unique to each recipient. I am curious which existing wireless comms solution would allow me to achieve the largest number of recipients I could deal with this way.

I've thought about BLE (which would be pretty great because ideally the recipients are also energy contained) and with it the limiting factor seems to be the connection interval. The lowest CI in BLE is 7.5ms which limits the theoretical number of devices I can send unique data to in 50ms to 6. I'm thinking that there must be a solution out there which doesn't penalise switching recipients as much as BLE. Or should I be looking into a custom protocol?

\$\endgroup\$
4
  • \$\begingroup\$ I'm not sure if there's a general answer here. This could get really really specific. There's a lot of solutions out there, depending on ranges, desired latency, licensing, transmission power, etc. As an example, a trivial solution would be to put each device on a different frequency, and have a wideband transmitter transmit to every one of them at once. I don't know if that meets your needs, because there's at least a dozen factors that matter for communication not mentioned here. For example, is 'low latency" measured on the order of milliseconds, microseconds, or nanoseconds? \$\endgroup\$ – Cort Ammon Jul 10 '16 at 17:25
  • \$\begingroup\$ I gave slightly more detail in the body of the question. Because I want the data delivered there "roughly every 50ms" the latency should be such that it is low enough that the consequent batches of data don't pile up / overlap (i.e. <50ms). I'm keeping most other things flexible because, well, I'm still just exploring my options really. \$\endgroup\$ – Sanuuu Jul 10 '16 at 17:31
  • 1
    \$\begingroup\$ Can this be done with the Nordic Semi devies? I agree with FakeMoustache that you'd be better off operating in broadcast mode and letting the devices pull their specific data out of "slots" somehow. \$\endgroup\$ – pjc50 Jul 10 '16 at 18:36
  • \$\begingroup\$ With something like the NRF24 series, if you can configure the radio itself to listen for an address, then it may be possible to keep the MCU asleep except when the data targeted to it is received. And yes, going to sleep for 1/20th of a second can be well worthwhile. \$\endgroup\$ – Chris Stratton Jul 10 '16 at 19:42
3
\$\begingroup\$

BLE or Zigbee are overkill for this.

You're making this far too complex, you do not need to individually connect to each receiver that's why BLE will not work, it is not intended for such short connections.

You would be far better off letting all receivers receive all data but in the data include an address indicating for which receiver the message is intended. All other receivers would simply discard the message.

Maybe you can make this work with simple 433 MHz (or 868 MHz) transceivers. These are cheap and simple. These use OOK modulation, you will have to do the bitrate calculations yourself to see if this will work for your application. The "intelligence" needs to be in a microcontroller in each receiver as this microC will detect the address. There is an Arduino library for such wireless RF setups, have a look at that to see what you can do with this.

And also: you do not need two-way communication, you only need one-way. Another reason not to use BLE as that is designed for two-way. That would complicate both transmitters and receivers as they all need to be transceivers (to be capable of two-way communication).

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.