I am developing battery-powered sensors to measure different parameters inside my house.

The measurements are taken by simple AVR controllers (no Arduino) at more or less regular intervals and will be be sent wireless to a central Arduino with Ethernet shield that relays them to my server, where they will be stored.

To keep power consumption down and to keep the sensors simple, I planned to use 433MHz transmitters on the sensors and a receiver on the Arduino: no bi-directional communication is expected. The sensors will send the value and a checksum and the receiver will verify them before relaying.

If two transmissions happen at the same time, either

  • the receiver will be unable to understand them
  • the checksum will be wrong
  • one of them will be covered by the other one and lost.

I consider all these three cases "collisions".

I plan to introduce "random" jitter between measurements (and transmissions, they are done always together) by adding to the predefined interval a pseudo-random 8 bit delay. This should reduce the number of collisions. However, there will be some anyway depending on the number of sensors and on the duration of the communication. Moreover, the clocks of the sensors are not tuned, there may be small variations (10% is the tolerance for the integrated oscillator in AVRs).

I can accept some collisions, but I would like to estimate how many they are so that I can lower the bitrate of the transmission (and therefore the transmitting power) and so that I can estimate how many sensors and how frequent readings I can afford.

So, is it possible to estimate the expected collisions according to

  • duration (in ms) of each transmission
  • total number of transmissions per second

assuming the transmissions take place more or less homogeneously?

Even if the energy-per-bit can be assumed constant and therefore I should aim to the highest bitrate to save CPU cycles and to go earlier in low-power mode, the question is still valid: know how many collisions should I expect given the frequency of the measurements and the number of sensors?


(maybe someone should add "collision" as tag? I cannot)


I can accept some collisions, but I would like to estimate how many they are so that I can lower the bit rate of the transmission (and therefore the transmitting power)

Lowering the bit rate will extend the transmission time which ironically may increase the overall power consumption.

If you have an average value of all transmissions per hour I believe the probability that two transmissions occur in a certain time frame can be calculated assuming a Poisson Distribution. If the probability of one transmission in a certain time frame is (say) 0.1 then the probability of more than one transmission is 0.00468. See this calculator. I assumed X was 1 and that the probability, \$\mu\$ was 0.1 and plugged in the numbers.

Remember that if a transmission is (say) 20ms long then you need to consider a period that is up to 60ms wide because a colliding transmission could occur right at the end of either transmission.

  • \$\begingroup\$ Seems reasonable and complete, marked as answer unless better ones arrive. Concerning the power consumption, I know that and that is why I mentioned that the question could be used also to get the maximum number of transmissions per time instead :) Good point about the 20ms vs 60ms, I really didn't think about it. \$\endgroup\$ – FarO Feb 4 '15 at 15:15

I made a few measurement wrt. energy/bit on wireless transmissions.

One of the outcomes is; choose the highest possible data rate, because the gain in bandwidth outweighs the increase in power consumption. 1


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.