Reconfigure SX1303 receivers

Previously we have been using our own mPCIe design with the SX1301 + SX1257, but with the recent supply chain issues getting the SX1301 we’re working to integrate off-the-shelf reference designs based on the SX1302/03.

This issue relates to the SX1303 + SX1250 reference design card from RAKWireless (RAK5146) and having difficulty re-configuring the RX chain during operation. On the initial bring-up (using the SX1302 HAL) it appears the radios are configured properly and I’m able to RX our beacon on the downlink channel.

I attempt to reconfigure the RX chain on the fly using the following order of HAL functions:


This results in the following errors (and obvious crash):
ERROR: Failed to set SX1250_0 in STANDBY_RC mode

Side note: the datasheets for the SX1303 and SX1250 do not have any information regarding the registers so I cannot interpret the 0x05 status. Is there a document that describes the registers for these chipsets?

Following the HAL more closely, if I reset the front-end radios (sx1302_radio_reset) before sx1250_setup, it does what I expect it to do (no confirmations on the ability to RX), but it takes ~2.5s which is way too slow from our needs (reconfiguration with the SX1301 takes < 50ms).

I have also tried simply issuing the commands called in the setup function to change the frequency (e.g.):

sx1250_reg_w(SET_RF_FREQUENCY, buff, 4, rf_chain)

This also causes the same errors mentioned above.

It should be noted that we do not use the packet forwarder - we have our own radio + protocol software - but we are using the HAL layer.

The formal question is: What is the correct way of re-configuring the RX chain on-the-fly that doesn’t require completely stopping and re-starting the concentrator (lgw_stop, lgw_start)?

Thanks in advance.