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

NRF51822 RSSI for CSMA/CA

Hello,

is it possible to use the RSSI value of the NRF51822 for collision avoidance? How long does an RSSI measurement take?

I'm trying to implement a discovery protocol based on ESB or Gazell:

  1. All nodes are in receive mode (PRX / Host)
  2. Node A starts discovery process (now PTX / Device), sends broadcast with discovery request datagramm on broadcast address
  3. Node B,C,D,.. receives datagramm (PRX / Host)
  4. Node B,C,D,.. switches to transfer mode (PTX / Device) und sends discovery response datagramm <- collisions

My idea at the moment for collision avoidance: Before sending, the transmitter should wait a random time, then checking RSSI, and if free, starts to transmit. This process should be repeated N times, to be sure Node A get the response of all nodes.

Because the nodes are unknown and anonymous, i don't know the addresses (and can't set them for example in gazell to use different rf frequencies).

Thanks!

Best regards, Kevin

Parents
  • One difficulty to implement CSMA/CA on radio is that we don't know if there is a collision when we are transmitting.

    The idea here is just simply use random delay for device B, C, D. We won't be guaranteed that A get response from all nodes. If you want you can implement a protocol that after A receive the response, it can send an ACK telling which device it already get the ping.

    You should use a common RF address for all packets. But add ID of each device in the payload of the packet.

    Also you should consider transmitting in different RF channels not just one, since relying on a single channel is risky. Each device should transmit several packets on each channel.

  • The problem is that your device A doesn't know which address it should listen to if B, C, D gonna transmit with unique addresses. You need a common address that A can listen to. This is the same way how BLE advertising works. There is only one common address (0x8E89BED6) for all advertising packet, connection request packet, etc.

Reply Children
No Data
Related