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

ANT vs Bluetooth for NRF to NRF communication

Hi guys,

I am developing a project where I have a large group of NRF52 chips together in one room. In their normal state each chip is paired as a BLE peripheral device to a phone. However, upon a certain event/trigger, pairs of the chips will need to exchange a small packet of information with each other. Preferably this is done as quickly as possible, so after the exchange the chips go back to their normal state. There is a small chance 2 pairs (4 chips) trigger at similar times.

I am wondering if this use case is better addressed by ANT or BLE. For BLE, I could use simultaneous broadcaster and scanner roles on each of the chips when triggered. On the other hand, ANT would remove the need for any roles. Considering BLE could be done with s132 and ANT may have additional overhead at the softdevice level, which would be a faster/more reliable solution?

Thanks, Adb

  • Hi Adb,

    I don't think using BLE would be a good idea since it could be complicated to switch between scanner and broadcaster and at the same time keeping the connection with the phone.

    Using Ant is fine, but you can also think of using ESB, our proprietary protocol then you don't need to use combined stack (S33x). We have an example of using ANT+BLE at \examples\multiprotocol\ble_ant_app_hrm\

    If you want to try ESB, we have an example of using uESB and BLE here.

  • Dear Hung Bui, Thanks for the answer. Disconnecting from the phone is not an issue - the chips don't have to pair with each other to exchange the data(the data payload is very small). Thus, I think that the chips could remain peripherals to their respective phones while concurrently, when triggered, they are also broadcasters and scanners. Is this feasible? Also using ESB, doesn't this make a two way exchange more difficult as I understand a central/peripheral (master/slave) role must be allocated. - Adb

  • @Adb: If the data you need to exchange between device are broadcast data you may use the solution to set them into scanner and broadcaster. However, it's not easy to be sure all the device got the data. When doing ESB, one device can be host and the other is slave, the host listen all the time and can send ACK payload back to the slave(s).

    It's hard to give suggestion without the description of the application and the network.

Related