While sending the update, the device is showing below error after switching the class C:
Received message from Network Server
Received 11 bytes on port 200
[DBG ][LWUC]: handleMulticastClassCSessionReq mcIx=0
[DBG ][LWUC]: timeToStart: 3
[DBG ][LWUC]: timeOut: 128
[DBG ][LWUC]: dlFreq: 869525000
[DBG ][LWUC]: dataRate: 5
Switch to Class C
[DBG ][LMAC]: Changing device class to -> CLASS_C
[DBG ][LMAC]: RX2 slot open, Freq = 869525000
[ERR ][LMAC]: MIC failed
[ERR ][LMAC]: MIC failed
And after some time, the device switched back to class A and starts sending the uplink data.
Has anyone faced this issue?
Any lead on this would be of great help.
Some more observations.
During FUOTA, the Chirpstack application creates a temporary fuota multicast group which contains new device address, NwSKey, and AppSKey.
Below image shows the details:
However, at device side, the received data are different.
The mcAddr is same, but NwSkey and AppSKey are different. ( I have highlighted the MacAddr)
Image below shows the received data at device:
I think, it is the reason why my device is showing the error [ERR ][LMAC]: MIC failed while downloading the firmware.
@brocaar Could you please have a look and suggest any solution for this?
Here, the problem was with the L-Tek device code.
It was using APP_KEY for decrypting Multicast session details. However, GEN_APP_KEY has to be used for that.
I changed the code accordingly. And now the update is working fine.