This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Need help choosing between ANT/ANT+ and BLE

I need help choosing between 2 technologies above, my goal is to enable multiple (up to 20) devices exchange small amount of information (around 30 bytes) between each other, then, based on the received information, each device will act (by using PIO) in a predefined way. I did small research/experimenting around BLE and I think I could make it work if all my devices support simultaneous scanning and advertising (seems like I can achieve this with SoftDevice S130) taking into account that I can add my data into advertising packet I never need to establish a connection (in terms of BLE) between devices. But what about ANT/ANT+ will it allow me to better achieve my goal?

>Do you have any realtime requirements?

The device should be able to respond (by using its PIOs only, without radio) once it processed the received (via radio) information within ~100-200 milliseconds. While a node(device) is deciding how to respond (again, by usin PIOs which could control LEDs for instance) it takes into account not only received information but also approximate distance between the devices. For BLE I think I can use Tx Power and RSSI but not sure whether something similar is available in ANT/ANT+.

>Are all nodes talking to all nodes, or do you have another network topology?

Yes, each node can be talking to any other node by sending short Adv packets from "this" device to "other" devices and receiving short Adv packets by "this" device from "other" devices).

>Where does the information come from

Every node contains its own information which is then broadcasted (as I suggested above via Adv packets), upon receiving the received information is kind of merged with local information (the information which is stored on the node which recevied the packet from another device). Based on merging results the device performs some operatoins by using its PIO pins. So, if we have let's say 20 nodes from N1 to N20 and their location cannot be predefined then, each node should be able to process information from another node in basically random order. There is no requirement for being literally random but taking into account that location of the nodes will change in time the communication between nodes is random in fact. There is no real time user input in this scenario, we can just assume that all nodes already have static information in them.

  • Do you have any realtime requirements? Are all nodes talking to all nodes, or do you have another network topology? Where does the information come from? A user? A specific node? A random node? Can you edit your answer to include some information that can answer these questions? Thanks.

  • I have replied your questions, do you have any opinions/suggestions?

  • Thank you for updating your question.

    Ok, if I have understood you correctly you want each node to send around 30 bytes of data to all surrounding nodes. It doesn't seem that you want to relay the received information.

    With BLE you have two options, if you want to be a broadcaster and an observer. You can use the S130, but this is currently in the alpha stage. Or you can use the Concurrent Multi-protocol Timeslot API in the S110 7.0.0 SoftDevice. Please see this example on GitHub. In BLE, the maximum user payload of an advertising packet is 29 bytes, which is a good fit your requirement of 30 bytes.

    With ANT the maximum user payload is 8 byte. ANT has RSSI, see this question. With ANT this could simply be set up by having one master broadcast channel, and one Background Scanning Channel on each device.

    If you find any of the mentioned questions useful please vote on them.

Related