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

ANT : best config for power saving

Hello,

I'm new with ANT protocol. I read the documentation and I'm pretty comfortable with it now.

I started to develop with NRF52832 (SDK 16 and ANT stack from thisisant,com (SoftDevice)).

All is fine : I'm able to compile exemple and do some tests with ANT Dongle (and ANTWARE) and a developement board (NRF52 DK).

Now, I need your experiences in order to choose the best solution for my case :

For my application, I need fifty to thousand devices (simply called devices) can communicate with only one (called gateway).

The gateway needs to collect data from the devices (fifty to thousand) and redistributes the data to an online platform (IOT).

The devices are powered with a battery (3V 250mAH goal : 2 years). The gateway is also powered with a battery (3V 650mAH goal : 2 weeks). I need to be carefull with power consumption... Sampling rate is around five minutes on the devices.

The 3 available choices I retained from documentation are : 

- Synchronous : shared channel

- Asynch : background scanning, continuous scanning

I have to find the right compromise between power consuption on the devices and on the gateway...

For me continuous scanning mode will use to much power from gateway.

Background scanning seems to be a right compromise (use less power from the gateway, and use only power when needed on the devices (when they have something to send)). Hovewer, I am a bit afraid with collisions, ... What do you think about thousand devices that potentially send data at the same time (and resend data if no ACK received) ?

Synchronous channel seems also to be a good choice... Hovewer It will use much power on the devices.

According to your experiences, what solution would you choose ? And why ?

Would you use a special algorithm (put the radio of the gateway in continuous scanning mode each 5 minutes for 1 minutes) ?

Something else ?

Sorry for the mistake I did (english is not my mother langage)...

All your help and advices are welcome.

Thank you.

  • Hi,

    We don't really have any experience with this high amount of devices in a very close proximity (e.g. 50-1000 devices within 10-20 meters). I think you will have tough time to reach your current consumption goals for the gateway if you also need the communication to always be reliable (meaning that you need every device to report successfully once every 5 minutes). Though the risk of collisions for a single packet is rather low if you just randomly send one packet (e.g. 300us on-air every (5*60*1000000us=) 300000000us = 1/3000000), even with an ACK (2x the onr-air) it is rather low. Though if you start duty cycle the gateway to reduce the current consumption, then the risk of collisions start to increase. 

    Personally I don't think I would have used any normal ANT channels no. I would have used background scanning, and each device would be in idle for most of the time, just infrequently open a channel when there was data to transmit (e.g. every ~5minutes open TX channel with a fast interval (e.g. 5ms) until TX packet sent successfully, then close down the channel and wait for 4:30minutes + (0-30second random delay) before next transmission.

    The scanning in the gateway could be 5ms scan and 10ms inactive or similar.

    Best regards,
    Kenneth

  • Hi Kenneth,

    Thank you for your precious answer.

    When you say you would not use any normal ANT channels, you say that you would go with the 2.4GHz radio with a custom protocol ?

    Or you would go with ANT but with a special way of doing (potentially not described in the doc) ?

    If I am right, you would choose that way :

    - Gateway : configured as SLAVE in background scanning mode (5ms scan, 10ms inactive or other ratio) in order to use less power on it than continuous scanning mode

    - Devices : configured as MASTER

    Need the channel of the device configured as asynchronous transmission ? Or configured synchronously and when an ACK is received, I close the channel ?

    Thank you for your answer and your help,

    David

  • Hi David,

    What I means with "normal ANT channel" is that typically for ANT you setup a TX channel (master) that for instance transmit every 4Hz indefinitely. However in this case I think it is a better idea that the application intermittently open and close the ANT channel when there is actual data to be transmitted. 

    Though you have a point that you technically don't need ANT for your scenario. You may just base your application on ESB examples in the nRF5 SDK.

    Best regards,
    Kenneth

  • Hi Kenneth,

    Thank you for the precious information.

    It's more clear for me and I'm ready to start some tests.

    Best regards,

    David

Related