DL not received in Class C AS923-1 + Freq 923.600
Opened this issue · 0 comments
Hi,
We are use using the LoraWan Stack v4.6.0. We have observed that DL do not operate when testing the device in region AS923-1 + Class C with some Network servers.
After investigation, I found that the Network server asks the device to change the RX2 frequency to 923.600 Mhz:
Mac command : 0905050220ee8c
MAC.Command.TxParamSetupReq
MAC.TxParamSetupReq.EIRP_DwellTime : 0x05
MAC.TxParamSetupReq.EIRP_DwellTime.DownlinkDwellTime : 0
MAC.TxParamSetupReq.EIRP_DwellTime.DownlinkDwellTime : No Limit
MAC.TxParamSetupReq.EIRP_DwellTime.UplinkDwellTime : 0
MAC.TxParamSetupReq.EIRP_DwellTime.UplinkDwellTime : No Limit
MAC.TxParamSetupReq.EIRP_DwellTime.MaxEIRP : 5
MAC.TxParamSetupReq.EIRP_DwellTime.MaxEIRP (dBm) : 16
MAC.Command.RXParamSetupReq
MAC.RXParamSetupReq.DLsettings : 0x02
MAC.RXParamSetupReq.DLsettings.RX1DRoffset : 0
MAC.RXParamSetupReq.DLsettings.RX2DataRate : 2
MAC.RXParamSetupReq.Frequency (Hz) : 923600000
The device responds OK to the request:
Mac: 090507
MAC.Command.TxParamSetupAns
MAC.Command.RXParamSetupAns
MAC.RXParamSetupAns.Status : 0x07
MAC.RXParamSetupAns.Status.ChannelACK : 1
MAC.RXParamSetupAns.Status.RX2DataRateACK : 1
MAC.RXParamSetupAns.Status.RX1DRoffsetACK : 1
But when downlink is sent to the device using the Frequency 923.600, the device does not respond and still using the default RX2 frequency (932.2).
After debugging, I observed that the device accepts the new Frequency but do not Apply it:
The Fix is to add the lines below to update the RxCFrequency value in "OpenContinuousRxCWindow":
MacCtx.RxWindowCConfig.Channel = MacCtx.Channel;
MacCtx.RxWindowCConfig.Frequency = Nvm.MacGroup2.MacParams.RxCChannel.Frequency;
MacCtx.RxWindowCConfig.DownlinkDwellTime = Nvm.MacGroup2.MacParams.DownlinkDwellTime;
<<<
///////////////////////////////////////////////////
static void OpenContinuousRxCWindow( void )
{
// Update RxC parameters (if changed by the network)
MacCtx.RxWindowCConfig.Channel = MacCtx.Channel;
MacCtx.RxWindowCConfig.Frequency = Nvm.MacGroup2.MacParams.RxCChannel.Frequency;
MacCtx.RxWindowCConfig.DownlinkDwellTime = Nvm.MacGroup2.MacParams.DownlinkDwellTime;
// Compute RxC windows parameters
RegionComputeRxWindowParameters( Nvm.MacGroup2.Region,
Nvm.MacGroup2.MacParams.RxCChannel.Datarate,
Nvm.MacGroup2.MacParams.MinRxSymbols,
Nvm.MacGroup2.MacParams.SystemMaxRxError,
&MacCtx.RxWindowCConfig );
MacCtx.RxWindowCConfig.RxSlot = RX_SLOT_WIN_CLASS_C;
/////////////////////////////////////////////////
Can you please check if the fix is OK.
Thank you for your feedback.
Best regards.
Youssouf.