RAK4200 smd module sleep current


How much is actual SLEEP current cunsumption for RAK4200 smd module ?

Firmware Version: RUI v3.2.0.12
I am using AT commands from my external mcu to control RAK4200 smd module.

Here my low power sensor design.

My device with Step-down DC, RAK4200 consumption 5uA in sleep.

RAK4200 supports normal operation between 2.0V and 3.6V with power consumption as low as 1.5μA within this range.

Hi @x893
Hi @Nicholas

Thank you so much for the information.

I measured bare module sleep current 1.3uA @3.3V (step-down conv.)
This is perfect for ultra low power applications.

But there is an issue with my RX PIN that measuring a strange current leakage. (RAK4200 smd module, PIN#5, UART2_RX)

RX line, External mcu wiring with 2 resistors;
100R serial resistor between external mcu TX PIN and module RX PIN. (current limiter and noise suppression)
10K pull up resistor from module RX PIN to 3.3V.

When both mcu and module in SLEEP mode, I measure 90uA current into module RX PIN.
This current is too much…

Both end points are HIGH state and no voltage drop on each resistors.
I also changed resistor values.
Is something like a float switching current or a measurement error on this line?

Can you help me ?

try disconnect debugger - it’s 40uA consumption. I use STK3700 for measure - from 10-20 nA to 100 mA and really can see consumption.

in any case you cam contact directly to me
[email protected]
or skype on site

Please let me tell this issue again;

I am using RAK4200 smd module in my own custom board .
When I put module into SLEEP with at+set_config=device:sleep:1
I measure module SLEEP current is 1.3uA.
This is the current from 3.3V supply into module VCC PIN.
This is good as bare module current.

I measure a leakage current 90uA from 3.3v supply into RX PIN via 10K pull up resistor.
This is too much.
Not to effect measurement, I also disconnected external mcu.

I tried also add 10NF bypass capacitor paralel to 10K resistor, nothing changed.
(10NF capacitor didn’t prevented serial signal 115200bps, it works.)

Interesting; I measure no voltage drop on 10K pull up resistor. Both ends are 3.3V.

Is it a real 90uA current consumption into RX PIN ?
Or my measuremet is fault ?

In WAKE mode, there is no leakage current.

The quick check you could do is to measure the current for the entire board, if that’s 91.3uA then your measurements would seem correct.

What made you measure the current on the RX pin?

Hi @nmcc

Yes, the current for the entire board is above 90uA.
So it seems a correct current.

This will be a battery powered device such an ultra low power.
While both mcu and module in sleep, the current for the entire board must be not more than 10uA. But now it’s above 90uA.

Please discard my measurements !!
Try a quick test/breakout board for RAK4200 smd module;

GND PIN’s: all GND
RESET PIN: 10K pull up and 100NF pull down.
TX PIN: 10K pull up (may not be neccessary)
RX PIN: 10K pull up

Let’s put the module into sleep.
Connect TX pin of a serial adapter to the module’s RX PIN.(And GND wiring needed.)
Send at+set_config=device:sleep:1 to module.
Now module in sleep.
Also remove serial adapter.

Measure the supply current into VCC PIN is about 1.5uA.
And measure the total current of the test board is near 90uA.

Why and how to solve this ?

Note: Without a serial adapter and AT command, module goes to sleep automatically if could not joined to network.
Firmware Version: RUI v3.2.0.12

@Nicholas @Fomi @hairuitao @hairui @Sucre

Can you help me about that issue ?
High current consumption for a minimal application circuit, while the module in sleep.

During sleep, Pin5(RX1) and Pin1(RX2) are configured as external interrupt mode,

internal pull-down resistor, rising edge trigger wake-up.

Maybe that’s why you pulled the resistor up!

Hi @Nicholas

Thank you for the information.

Yes I guessed so, in RUI firmware, in sleep, RX PIN was configured with weak internal pull-down.

On my existing device board, I would try that;
remove the 10K pull-up resistor
and configure TX PIN of my external mcu as INPUT after sleep itself.
But I am not sure about the START BIT in communication.

Since the idle state of the UART is HIGH,
In your next RUI version, Can you configure RX PIN mode as an internal PULL-UP in sleep ? Isn’t it better ?

Configure RX PIN mode as an internal PULL-UP in sleep!
It may affect the power consumption, resulting in no particularly low power consumption.

So, what do you suggest to who wants to use the module in connected with an external mcu ?
You know, The TX PIN of external mcu stay configured as output and HIGH also in sleep. And this sources the RX PIN of the module. That increase the total current of the board.

For my case, Is the only solution to ?
remove 10K pull-up,
configure TX PIN of external mcu as INPUT or as output LOW before put it into sleep.


When it goes to sleep, it can send any instruction through the master MCU to enable RX to detect the rising edge and wake up the serial port.

That solved !
Removed 10K pull-up resistor from RX PIN of the MODULE.
In MCU software, “Force” TX PIN of the MCU as LOW before putting “also” MCU into sleep.

Now the total board current is a few uA.

@Nicholas as you commented, the MCU is master and fully managing communication and power cycles for both itself and the module. So It has already been listening for RESPONSE and if ERROR messages from the MODULE. Before that, I studied the existing RUI algorithm and all communication parsing as useful.

Thank you

1 Like