Yes I measure 21uA sleep current on Wisnode LoRa RAK811 board v3.0.0.12.H.
On the other hand;
I have made my own board using RAK811 smd module with a connection to a host microcontroller. Sending AT commands from host to RAK811.
Version is same v3.0.0.12.H, Configuration is same.
AT command: at+set_config=device:sleep:1
My RAK811 circuit is identical to the Wisnode Lora Board.
But, I have measured about 100uA sleep current. That is far more than on the original board.
I have checked all the things related to power consumption.
I have a ftdi232 usb to serial converter. I have connected a RAK811 breakout board as following
FDTI232 GND <----------------------------------->RAK811 GND
FDTI232 Tx <------------------------------------>RAK811 Rx
FDTI232 Rx <------------------------------------>RAK811 Tx
FTDI232 3.3V <------Ammeter(Fluke177)---->RAK811 VCC
All other pins are not connected to anywhere
Now using cutecom I sent the following commands
at+version
Firmware Version: RUI v3.0.0.12.H
OK
at+join
OTAA:
DevEui:****************
AppEui:****************
AppKey:**************************************
OTAA Join Start…
[LoRa]:Join Success
OK
at+get_config=lora:status
OK.
==============LoRaWAN Status List================
Work Mode: LoRaWAN
Region: AS923
Send_interval: 600s
Auto send status: false.
Join_mode: OTAA
DevEui: **********************
AppEui: **********************
AppKey: *******************************************
Class: A
Joined Network:true
IsConfirm: false
AdrEnable: true
EnableRepeaterSupport: false
RX2_CHANNEL_FREQUENCY: 923200000, RX2_CHANNEL_DR:2
RX_WINDOW_DURATION: 3
000ms
RECEIVE_DELAY_1: 1000ms
RECEIVE_DELAY_2: 2000ms
JOIN_ACCEPT_DELAY_1: 5000ms
JOIN_ACCEPT_DELAY_2: 6000ms
Current Datarate: 2
Primeval Datarate: 2
ChannelsTxPower: 0
UpLinkCounter: 0
DownLinkCounter: 0
===================List End======================
at+set_config=device:sleep:1
Go to Sleep.
Fluke177 can measure current two digits after decimal in mA. So At the start I see around 5.88mA current consumption. When I send the sleep command it reduces to 0.09mA which is far more than 10.3uA current consumption. I have also tried it with firmware 3.0.0.8H. It also consumes 0.09mA. But firmware 3.0.0.4 gives good result. So if my way of measuring current consumption is correct, something bug fixing for firmwares between 3.0.0.4H~3.0.0.8H introduced this problem.
If you can reproduce it and consider it as a bug, please let us know. We can keep our hands crossed until another new firmware with the bug fix is released.
Yes, we found this power consumption issue in the latest firmware too, and we’ve fixed it today.
We’ll upload the new firmware on our web site tomorrow.
now, i am using RAK811 module, and use it for water meter reading application.
in RUI API, is there any option to select numerous low power modes in STM32L1xx ?
I used that code to create some customized lora sensornode, everything was working fine until it came into sleep mode, it seemed the device not waking up. here is my code for sleep mode:
from debugging mode, after mcu entered sleep mode, when rtc interrupt occured, it goes to the end of function ( i set a breakpoint there). then i try to join OTAA - again, or sending some payload to loraserver. but nothing accepted by the server or rak811 send nothing.
what actually is the problem?
I need this low-power/sleep mode in my device, or the battery power will drain fast.
hi @leopold, thanks for the answer.
I’ve changed my code with your code, it seems your code is exactly same with the code in compiler,
the different is only at GpioWrite( &Xtal, 1 ); <-- in SysEnterUltraPowerStopMode
in my code is GpioWrite(&SX1276.Xtal, 1 );
since there is no object name Xtal.
so it gives the same result as previous one. no uplink data after sleep and wakeup
First, determine if RAK811 really enters sleep state, and what is its sleep current
2.stm32 enters stop mode. It is not recommended to use debug mode. Use serial port to print LOG for debugging.
Generally, when the RAK811 does not work after waking up, it is necessary to check whether the master clock is correctly configured, to check whether the SPI is re-enabled and whether the interrupt is enabled.
4.GpioWrite (& SX1276.Xtal, 1) means to open the power supply pin of SX1276, because the crystal power supply needs to be turned off before entering the low power mode. If the compilation fails, you can directly pull up the PH_1 pin.
5.Remove __HAL_RCC_RTC_DISABLE () in code that goes into low power consumption;
Hi @dadanugm
The main frequency can only check the code at present. The main frequency mainly affects the speed of SPI. If the main frequency is incorrect, MUC will not be able to operate SX1276 through SPI.