Welcome Guest,Register Now
Log In

ANT Forum

Welcome guest, please Login or Register

   

ANT with ECG and temp nodes

Rank

Total Posts: 4

Joined 2014-02-18

PM

Hello,

I need some advice, which channel settings would be best for my case? Is it possible to acquire data from 17 sensors in an ANT network? In my case one ECG sensor and 16 temperature nodes.

1) First i want the host/base station to send its timing to all sensors so i can initialize the sensors with the current time of the base station. Channel 1: 0.5Hz

2) Then the ECG sensor needs to burst transfer its data[4bytes] sampled at 500Hz, this sensor will have a channel period of 8Hz. So each 125ms it needs to burst transfer 250bytes. (should be possible as burst transfer is possible to transmit data 2,5kbytes / sec) Channel 2: 8Hz

3) The 16 temperature nodes need to capture their temperature at 2Hz, so in my opinion creating a shared channel with broadcast would be best. As there are 16 temperature nodes i need to set channel 3 channel period at 32Hz to successfully acquire 2Hz temperature of all sensors, right?

In this way there will be collisions after 4 times transferring temperature(collision with ECG)? How is it possible to create such application it will have none or less collisions? And when burst transferring data no other channels can be used as noted in the multicast consideration document.

Hope someone can give me some advice on this application.

Regards      

Image Attachments

channel_timing.png

Click thumbnail to see full-size image

Avatar
Rank

Total Posts: 19

Joined 2012-05-08

PM

Hello pdefesche,

In order to help you determine a solution, some extra information will be useful. I would like to know which ANT hardware you are using and if any power constraints exist for each node in your network.

-laprairie      
Rank

Total Posts: 4

Joined 2014-02-18

PM

Hello Laprairie,

I will be using the nrf51822, it needs to be as power efficient as possible as each node and the basestation will be battery supplied.      
Avatar
Rank

Total Posts: 19

Joined 2012-05-08

PM

Hello again,

Thank you for your patience.

The reason that you are seeing so many channel collisions has to do with timing. In short, the burst messages received by your base station take more time than is available between the station's master channel transmissions. Here's the math:

The 32Hz channel sends a transmission every 31.25 ms. That is the widest window of opportunity that your device will have to receive a transmission (this is ignoring the back-channel receive window time, mind you).

Burst transfers are sent in multiples of 8 bytes, so your 250 byte transer will occupy 256 bytes worth of airtime. Burst transfers are sent at 20 kbps, which is 2500 bytes/s. This is equivalent to 0.4ms/byte of tranmistted data. Therefore 256 bytes will take 102.4ms total to be received.

This means that you can trust your 32Hz channel to experience channel collisions at a rate of 8Hz, and the collisions will persist for three (sometimes four) message periods. Moreover, since the 32Hz channel period is a multiple of the 8Hz channel, the channel collisions will always occur on top of the same point in your shared channel's polling rotation (i.e three or so temperature sensors will always their updates missed).

I have two suggestions for you:

Suggestion 1: Change the channel period of one of these channels so that they are not multiples of each other. By doing this, the channel collisions will occur at a different point in your shared channel polling rotation every time. This will avoid totally missing all of the updates from a particular set of sensors.

Suggestion 2: Use advanced bursting. Advanced bursting lowers the overhead associated with burst messaging, increasing data throughput to 60kbps (See the ANT Message Protocol and Usage document sections 5.4.4, 9.5.2.25 and 9.5.5.4). This will lower the required receive time for your burst to 34ms, reducing the number of channel collisions by a factor of 3.

Let me know how it goes,

laprairie      
Rank

Total Posts: 4

Joined 2014-02-18

PM

Thanks a lot for your input. I have one more question: is it possible with the ANT protocol to assure when i send a timestamp from the basestation to all nodes it will be received by all nodes at the same time? For example: Bluetooth Low Energy uses acknowledge packages and if it isnt received by the node it will retry with the same time stamp. This will make sending time stamps from basestation to nodes unpredictable. Is this the same matter for the ANT protocol?      
Avatar
RankRankRankRank

Total Posts: 296

Joined 0

PM

I'm not aware that time stamps are sent over the air at the ANT protocol layers at all.
So I'd say that if you need time stamp mechanisms, you must build that at the application layer.

Besides the ANT SendAcknowledged transmission service 1) isn't suitable for broad-/multicast situations and 2) doesn't apply retransmissions; it simply reports failure in case of packet losses. See "Ant message protocol and usage" document, chap. 5.4.2 .

Bottom line: need time sync? Build it yourself!

Cheers,
OMB      
Rank

Total Posts: 4

Joined 2014-02-18

PM

Thanks for your response OMB, thats actually what i meant: sending a time stamp at the application layer. Ok thats exactly what i need, when packet loss no retransmission of the same time stamp, but update the time stamp and try again.

Regards