@NeverDie said in RFM69 sensitivity vs packet loss:
How is it that you're increasing your receive sensitivity?
When I say "sensitivity setting" I mean the RSSI threshold setting in register 0x29 as posted above.
@NeverDie said in RFM69 sensitivity vs packet loss:
RxReady just means that the RSSI Threshold has been met and that the SX1231 can start listening for a preamble. See figures on page 39 of the SX1231 datasheet
The bold part of your statement is plain wrong. RxReady means that enough preamble (or any other data like noise) has been received to read RSSI and optionally tune AGC/AFC. [This is why -if you set the wrong RSSI Threshold- you permanently get RxReady interrupts.]
The preamble is there to help adjust the AGC/AFC. That's the purpose of the preamble. So your preamble must be sent before the RxReady interrupt, not after it like you claim. Of course you can send the preamble after the RxReady interrupt (like you can pour soup over your salad) but then you have a potentially wrong AGC/AFC setting. It's just not meant to be.
@NeverDie said in RFM69 sensitivity vs packet loss:
It doesn't mean that that a matching preamble has been found, nor does it necessarily mean that a matching preamble will be found in the time allowed.
This is true. RxReady will also fire on noise. The formulas given on the page you refer to more often than not suggest ~14 bits of data for RxReady to fire (with AGC enabled, AFC disabled). This data can stem from noise. This is why it is important to keep the RSSI threshold above the noise floor. I'm not sure whether you got me right regarding my goal: I'm not trying to improve sensitivity. I'm trying to reduce packet loss to a minimum.
@NeverDie said in RFM69 sensitivity vs packet loss:
In packet mode, there's a fixed window between rxready and timing out in which to receive a valid packet, so a stream of rxready events could just mean a stream of timed-out receive windows triggered by ambient noise, not a series of received preambles.
Are you referring to RegRxTimeout2 (register 0x2B)? By default it is not set.
And iirc I only get this series of RxReady events if I restart the RX loop. Otherwise RxReady will stay set.