I am using a Si4463 transceiver, and am trying to implement automatic RX frequency hopping. It seems that my packet reception goes from 100% great without using any hopping to about 70% when using it.
I plan on eventually using auto frequency hopping using both the Preamble_Timeout event and RSSI_Threshold event ("HOP_RSSI_PM_TO"). But to simplify testing I am currently only using the Preamble Timeout event.
I also plan on eventually using 50 hopping channels, but again to simplify testing I am currently using 2.
I can currently send packets from one device to the other, changing between the two frequencies, and can verify that I am receiving packets on both frequencies.
I can't see any pattern to the dropped packets but it does happen quite frequently.
My current settings are:
Tx-Preamble: 0x20 bytes
Rx-Preamble Length: 0x0B nibbles
Rx-Preamble Timeout: 0x0f nibbles
There could be three possible issues your link fails to work reliably.
Let me know if any of these explanations help resolving the issue!
- Your preamble detection timeout is set to long at the Rx side. Our recommended timeout value is 5 bytes (10 nibbles) for a preamble detection threshold value of 20 bits. Now, you quote an “Rx preamble length” of 11 nibbles; Rx preamble length as such does not make much sense, at the receive side you declare a preamble detection threshold instead.
What I meant here is that the RX_THRESH (Group: 0x10, Index 0x01,) is set to 0x0B. Then the RX_PREAMBLE_TIMEOUT (Group: 0x10, Index 0x03) is set to 0x0f.
I have tried setting the RX_PREAMBLE_TIMEOUT down to 0x0A (10nibbles) but did not see a difference in packet reception.
I made my frequencies much further apart to try and avoid the third possible issue you stated above, and still have seen no difference.
Is there anything special I need to do when entering RX state for Auto Hopping?