Hi,
Some packet are lost while sending message between two samr21 so I use
the sniffer application to check paquet over the air.
I was surprised to see that sometime paquet are retransmitted without
my consent!
I mean:
I send one paquet from BOARD A to BOARD B
BOARD B does not receive it
BOARD C (sniffer) sees two paquets with 40ms interval
The interval is almost 40ms every time there is a paquet retransmission.
Do you know why paquet is retransmitted 40ms after the first one?
Is this a problem (or normal behaviour) in RIOT stack or transceiver?
which software did you use on BOARD A and B? AFAIK there is not a known
problem with this in the stack. The Atmel radio does automatic
retransmission and carrier sensing which might take some milli seconds
(not 40!). Can you check if the 802.15.4 sequence number of these
packets is equal?
see the following extract of the AT86RF233 datasheet [1]:
If no valid ACK is received or after timeout of 54 symbol periods (864μs), the radio
transceiver retries the entire transaction (CSMA-CA based frame transmission) until the
maximum number of frame retransmissions is exceeded, see register bits
MAX_FRAME_RETRIES (register 0x2C, XAH_CTRL_0). In that case, the
TRAC_STATUS is set to NO_ACK, the TX_ARET transaction is terminated, and
interrupt IRQ_3 (TRX_END) is issued.
IIRC the max. number of retransmissions with that device in RIOT is 3
retries after missing ACK and 4 retries (including random backoff) after
denied channel access.
If you need further help, please point to a specific branch or commit to
reproduce that behavior.