Have had a real hard time getting full duplex operation to work reliably on a series 2. At some point the module locks up & doesn’t receive anymore.
The packets are all in broadcast mode. A ground beacon sends every 21ms and a remote receiver responds after the beacon is received. On the ground, the response is sent out the UART when the next ground beacon is being sent.
The problem has been narrowed down to having the ground UART send & receive simultaneously. If the send & receive are in a single thread, the number of lockups decreases but it still happens within 8 hours.
The problem can probably be reduced by spacing out ground beacons even more, but it’s still a high risk. Attached are soundcard recordings of the UART activity.
If you are sending data hard and fast you will need to use hardware flow control in order to reliably make sure that you are not overwhelming the radio’s receive UART buffer.
Couple things you’ll want to be aware of. first, the 802.15.4 radios do not support full duplex operation. The radios are half duplex only. Second, when the baud rate is set to 115200, the actual baud rate of the radio is set to 111,111. This difference in baud rate can cause some loss of data, but shouldn’t cause a lock up.
You can solve the baud rate mismatch by setting your processor baud rate to match closer to the actual baud rate of the radio, or set two stop bits on the host.
Managed to get some lockups even though the packets were spaced out enough to not have the module doing 2 things simultaneously. It seems a number of circumstances may cause a lockup, like using a high powered RF source nearby, using a microwave oven nearby, using the module for many hours, a stray packet coming out simultaneously with a sent packet. The reset pin seems to be the only solution.