Re-transmission, interval 40ms problem

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?


Hi Baptise,

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?

Cheers Peter

Application is based on gnrc_networking.

Can you check if the 802.15.4 sequence number of thesepackets is equal?

Yes there are equal. Do you know how long automatic retransmission takes for atmel transceiver?

How does CSMA work on at86rf2xx driver? Is error handled?


Hi Baptiste,

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.