RAK4630 sleep mode doesn't behave correctly

Hi,
Issue: The sleep AT commands do not behave as expected (and as stated in the AT Command Manual)

Setup: Custom board: supply voltage = 3.3V for VBAT_SX and VBAT_IO_SX, 3.9V for VBAT_NRF. bypass capacitors are being used.
The same behavior is detected also in the RAK4631 mounted on a WisBlock Mini Base Board (RAK19003)

RAK4630 firmware version: 4.1.0
RAK4630’s UART1 (P0.19 / P0.20) is being used for sending AT commands.

Current measurement device: Nordic’s Power Profiler Kit II

Details:
Issue 1: After sending AT+SLEEP or AT+SLEEP=1000 (or any ms value) to the RAK4630 I get an OK+CR+LF but the current consumption isn’t decreased at all. Even though the AT+LPMLVL command is supposed to work only with the RAK3172 (according to the AT command manual), I tried using it with the RAK4630 AT+LPMLVL=1 and AT+LPMLVL=2 but after AT+SLEEP the current does not decrease.

After sending the AT+SLEEP or AT+SLEEP=1000 command I can send any other command and the RAK4630 responds normally.

Issue 2: If I enable the automatic low power mode with AT+LPM=1, the current consumption does decrease significantly, but the module does not respond to any other command through UART1. However, it does respond to other commands through the USB serial interface in the RAK4631+RAK19003.

Issue 3: After AT+LPM=1 the module won’t respond anymore through UART1, and since my custom board doesn’t have the USB connection to the RAK4630 I tried to do a firmware reload using the BLE connection for recovering UART1 communication. The reload was successful however it seems like the configurations were kept, so AT+LPM=1 seems to be set and I can not communicate to UART1. Is there any other method for “recovering” the communication in UART1?
I have access to SWCLK and SWDIO pins.

Thanks.

Are you using LoRaWAN or LoRa P2P?

If LoRaWAN the power consumption might go down only after the device had joined the network, at least that is my experience.

If LoRa P2P, make sure the device is not in RX mode. If RX is enabled, the transceiver will consume ~6mA all the time.

Also, after power up, the default firmware of the RAK4630 keeps BLE active for around 30 seconds (not sure, might be 60 seconds). During that time you will not see a significant reduction of the power consumption.

For the RAK19003, what PCB version is it? Ver.B, Ver.D or Ver.E ?

What power consumption are you measuring? On a RAk19003, I am getting 31.53uA when the device is sleeping (which it does automatically, even without the AT+SLEEP).

I don’t have any RAK4630 on a breakout board or custom PCB to check. But the 31.53uA is the lowest I can get on a RAK19003 with RAK4630 and RUI3.

Hi @beegee,
Thanks for your reply.

I’m using LoRaWAN. Haven’t tried LoRa P2P.

I joined the network using both ABP and OTAA and then sent AT+SLEEP, but the current consumption has not decreased significantly on the RAK19003. Check the image below:

I’m doing tests after that time.

RAK19003 Ver.B

As in the above image, I’m getting 11.27mA after sending AT+SLEEP, and the device is already joined. I removed the red LED from the RAK19003 for further decrease consumption but it is still very high.

This 11.27mA consumption is kept even after sending the “AT” command. But after transmitting a message, the consumption goes back to normal (no sleep, I guess) which is 16.32mA. Check the image below:

If I send AT+LPM=1, the current consumption does decrease significantly but UART1 “dies” and the RAK4630 no longer responds. Check the image below:

Yes, UART1 is disabled in low power mode. Only UART2 is supported.

I’ve also tried UART2 without success.

Is there any reason for all these issues to happen?

Hi,

On which firmware version did you get that current consumption?

Using my RUI3-LowPower-Example

Thanks @beegee
Have you tried getting the lowest power consumption by using the AT commands interface?
In my case, I’m only using the AT commands, no other programming using RUI3.

Sure
RUI3 V4.10 (latest released)
RAK4631-R
RAK19003 Ver.E (latest)

LoRa P2P mode, LPM=1, 38uA after BLE advertising stopped

LoRaWAN mode, LPM=1, automatic join network (and registered in LNS), LoRaWAN Class A, 40uA after BLE advertising stopped

LoRaWAN mode, LPM=1, automatic join network (and registered in LNS), LoRaWAN Class C, 5mA after BLE advertising stopped

Higher consumption in Class C is expected because the LoRa Transceiver stays in RX mode all the time and doesn’t go to sleep.

Thanks for your reply.

Do you mean V4.1.0? That’s the latest I could find in RAK’s documentation.
If not, where can I find the V4.10?

Have you tried using AT+SLEEP with LPM=0? Do you get the same current consumption?
Which serial interface are you using when LPM=1?
In my case, neither UART1 nor UART2 respond, only USB works.

Just for clarification: does the command AT+LPMLVL do something in the RAK4630?

Typo I mean of course RUI3 V4.1.0.

I am using USB in my tests, I am never using the UARTs.

I didn’t try AT+LPM=0 and AT+SLEEP when running the tests with standard AT commands. When measuring power consumption I don’t have any connection to the computer.

Hi @beegee,
Thanks for your reply.

That scenario is precisely where my problems are.

In my tests:

  1. AT+SLEEP does nothing to the power consumption.
  2. When using LPM=1, both UARTs die but the power consumption gets reduced (same as your tests). I guess is not normal to lose one of the AT commands interface (besides USB) in return for getting low power.

Need to confirm with our R&D team regarding AT commands over UART. Can’t send AT commands through UART as well, independent of LPM=0 or LPM=1.

However, with LPM=0 and calling ‘api.system.sleep.all()’ (Same as AT+SLEEP) I can still achieve ~32uA sleep current.

1 Like

According to our R&D team, you have to send AT+ATM through the UART to enable AT commands.
Please try it.

Thanks for your reply.

My problem is not related to the AT command support through the UART but to the power consumption and the UART behavior in sleep.
According to the documentation, the AT mode (At+ATM) is enabled by default however I tried using it but nothing changed in my tests.

Can you try the following 2 procedures, please?

A.

  1. Use UART1 for sending AT commands (according to the last you mentioned, make sure AT commands are enabled).
  2. send AT+VER=? for checking AT command functionality and UART1 communication.
  3. AT+NJM=0 for ABP
  4. Configure keys for ABP.
  5. AT+JOIN
  6. AT+SEND=10:1234
  7. Wait until the transmission is done
  8. Send AT+SLEEP
  9. What is the current consumption? Does the RAK4630 respond to new AT commands through UART1? In my case, the consumption is not decreased and UART1 responds to new commands.

B.

  1. Use UART1 for sending AT commands (according to the last you mentioned, make sure AT commands are enabled).
  2. send AT+VER=? for checking AT command functionality and UART1 communication.
  3. send AT+LPM=1
  4. What is the current consumption? Does the RAK4630 respond to new AT commands through UART1? In my case, the current consumption is reduced but UART1 no longer responds.

The nRF52840 MCU in the RAK4360 cannot enter low power mode when the serial UARTs have to be active. Lowest power consumption is only possible if both UART’s are shut down. The UART’s are shut down when low power mode is activated with AT+LPM=1 and makes communication over UART impossible.

From Nordic forum:


Enabling the UART’s in low power mode will increase the power consumption by at least 400uA and is not supported by the RUI3 AT commands.

If you do not need BLE and want lower power consumption, a possible solution would be to use the RAK3172 which supports the same AT commands as the RAK4631.