RAK4630 AT_BUSY_ERROR

Using RAK4630 with RUI_4.2.1_RAK4631 Firmware

I use packet confirmation and don’t send quicker than 30 seconds between uploads.

Using an internal buffer to save payload incase upload failure, then resend at different intervals.

Sometimes, when moving out of LORAWAN coverage, I force upload, which fails and then I upload at a later stage. This seems to result in a AT_BUSY_ERROR condition…whenever that happens only a reboot/reset works.

Question :

  1. If the stack is stuck, can I recover from this without loosing my data? I run the RAK4630, no external memory devices.
  2. Can I somehow prevent this AT_BUSY_ERROR from happening? If it does happen, what are my options to recover?

Are you using confirmed uplinks or are you switching between confirmed and unconfirmed uplinks?

Please try to update to RUI3 V4.2.2, there is a bug fix that caused a similar issue than what you are reporting.

Can you please give me a link to RUI3 V4.2.2…not finding it in RAKwireless Downloads Center

It is named “latest” in Download Center => RUI => RUI3 => Images

I’ll need a bit of help then

I’ve used Wistoolbox and dfu in the past. The dfu image below contains V4.2.1 and I see RAK4631_latest_final.hex was updated 5 months ago…which seems very old ?

Sorry, seems Download Center is late in updating.

Download RUI_4.2.2_354_release_firmware.zip.
All 4.2.2 files are inside.

Tested V4.2.2

I only use confirmed packets, no switching. Still getting AT_BUSY_ERROR when I send a message while outside coverage, and then when I return inside network coverage it gives me a AT_BUSY_ERROR when trying to send again.

How does one recover from AT_BUSY_ERROR without power cycling?

When in this AT_BUSY_ERROR state, I issue a JOIN request …I get back +EVT:JOINED, but sending anything fails.

AT+JOIN=1:0:10:8
+EVT:JOINED
AT+SEND=12:112233
AT_BUSY_ERROR

[update]
When in this error state, if I now change confirmation to OFF ( AT+CFM=0 )…then I can upload messages again.
As soon as I set confirmation ON again ( AT+CFM=1 ) …I get AT_BUSY_ERROR.

Potential workaround is to set confirmation OFF, and use my own flag inside receiveCallback to track if a message was received or not. Need further testing, initial testing looked positive.

Fixed in RUI3 V4.2.3, which is expected to be release within the next two months.