Welcome Guest,Register Now
Log In

ANT Forum

Welcome guest, please Login or Register

   

Strange packet throughput behaviour

Rank

Total Posts: 2

Joined 2015-11-10

PM

I used ANT for my PhD thesis work and did a bit of performance testing. I got some unusual results but they were not relevant for the core of my work so I noted it, gave a hand wavy explanation and moved on. My examiners however, being more experienced in radio technologies, wanted a better explanation.

My test setup involved transmitting from up to 8 masters (Nordic nRF24AP1) to an ANT USB 2 stick. I picked several packet rates and increased the number of transmitters one by one till I reached the network limit. Each transmitter sent numbers in sequence so I could identify dropped packets easily. I noticed that the throughput (ratio of received to transmitted packets) actually got better as I added more transmitters to the network. This was the weird behaviour.

Here is my explanation: “The timing may be improved by filling in all time slots, keeping all nodes on the network synchronised”

OK not the best, here’s what I am trying to say and what I am assuming about ANT’s drift correction mechanisms.
- The clocks on the transmitter/receiver pair will be different and experience some drift
- This drift may be corrected by an adjacent channels beginning to overlap, and one of the transmitter/receiver pair adjusting its timing before overlap becomes an issue, therefore fewer dropped packets. In summary: drift correction mechanisms work better when the network is full.

I don’t know the mechanism behind this. Either:
A One of the channels enters search mode sooner/more often when the network is full
B The channels have a bit of a listening overlap and try to avoid each other keeping them in their time slots better
C I don’t know what I’m talking about.

Any plausible explanations would be much appreciated.

     

Image Attachments

AntThroughput.png

Click thumbnail to see full-size image

Avatar
RankRankRankRank

Total Posts: 745

Joined 2012-09-14

PM

I'm not sure how long your testing was run for, how many packets your ratio is based on, the channel periods of your channels, the RF environment you ran your data collection in, etc.

1) By opening more channels, you have more packets to add to your statistical collection, thus having less variance from your mean. This could have been offset by using faster channel periods and running longer tests. It looks like all of your channels are converging to ~96% reception, which is what you might find in a typical real world environment with some background WiFi and transmitter/receiver within 1m or less distance.

2) As you opened more channels, you also allowed more time for the other channels to run. Although ANT master channels will drift timeslots to account for OTA coexistence, it takes time for a collection of ANT masters to "settle out". This seems unlikely however as you had only 1 physical ANT transmitter, so no OTA coexistence had to occur.

3) Opening more channels, I'd expect channel collisions to initially occur unless all of the channels have the same channel period. As you have only 1 device with 8 master channels running concurrently, the ANT firmware just has to find empty spaces. However, an AP1 probably can only transmit up to ~200 messages per second maximum, so I'd expect similar reception from either ` channel broadcasting at say 160 Hz, or 8 channels broadcasting at 20 Hz.

As you only have 1 device running master transmissions, I'd also test with TX/RX only. This would disable the OTA coexistence behavior, but the ANT firmware running the master channels will still align them to prevent on-device collisions (after some period to settle).      
Rank

Total Posts: 2

Joined 2015-11-10

PM

Hi Harrison, Thanks for the reply

I'll clarify a few details

I had multiple physical ANT transmitters. Each was connected to a micro-controller and sat about a meter away from the receiver. Data was collected on a PC with the USB2 Ant Stick
The network was allowed to settle a little before data collection occurred. This was enough time for each connection to become established. (15 seconds ish)
Packets were recorded after this time for a period of about one minute. This was repeated three times for each configuration.
Configurations were 1 transmitter at 20Hz, 2 transmitters at 20 Hz. etc. up to 8 transmitters, repeating up to 80Hz.
Testing was carried out in an office, nothing clever was done to control the environment.

You said it takes time for a collection of masters to settle out. Would this happen faster or be more stable with a "fuller" network? Would this have happened within one minute or can it take longer?



     
Avatar
RankRankRankRank

Total Posts: 745

Joined 2012-09-14

PM

The OTA coexistence limit in a single space tends to be around ~300 Hz total, ie, if you have 3 transmitters broadcasting at 100 Hz, or 6 @50 Hz etc, before overlap is bound to occur.

I would expect a dense network, close to 300 Hz or greater, to take up to 10 minutes to settle out. One of the risks which can occur are masters broadcasting directly on top of one another's timeslots, which means they cannot detect one another as their transmissions are precisely aligned. To try and avoid this, ANT masters run a receive window before they begin broadcasting to find an empty slot over the air. In practice this works fairly well, but if for instance you were to start all of your masters simultaneously, this would cause all of them to start at the same time and only drift will allow them to separate. (Fast channel initiation on newer parts is an option which allows you to disable this initial receive window). Or due to the nature of wireless, the transmitting master may not have seen the message and started broadcasting into another master's timeslot by accident.

Are you using slave channels or continuous scanning mode to receive messages? Slave channels are better able to discern messages, and due to serial bandwidth, sometimes messages can come so tightly spaced that the chip is unable to push all of the received messages to the host in time to not fill the buffer. (This is less of an issue on an SoC device such as the nRF51422, where network processor and host application share the same processor).

But from personal, anecdotal experience, I have never seen having a crowded, denser environment of transmitters improve the message reception rate. You should be seeing something above ~90% for any scenario here. Another point is to make sure your channels are multiples along the 32768 channel period timebase, ie, 4 Hz is 8192, so all channels should be 8192 or a multiple of 8192 such as 4096 (8 Hz), 2048 (16 Hz), etc. Or other ANT+ device profiles are designed to intentionally drift with one another slightly.

AP1 is a fairly old device, and it's coexistence is known to not be as advanced as newer devices such as the AP2.      
Rank

Total Posts: 5

Joined 2015-06-07

PM

Curious results. I wonder if you have an opinion about whether you think that increasing broadcast cycle frequency would have similar "improved" results?

--Joe