Hi,
I use the CMWX1ZZABZ-091 murata module in some LoraWan applications with the
following tools : VScode + PlatformIO + STM32cube HAL + I-CUBE-LRWAN lora
stack. It works and I get some interresting results : Lora class A
configuration, data is sent every 5 min, power consumption <5µA most of the
time. I get the following measurements : ... > Sleep (5µA) > Tx > Sleep (5µA) >
Rx1 > Sleep (5µA) > Rx2 > Sleep (5µA) > ...
As I discovered RIOT-OS few month ago and this OS seems to be very nice I try
to learn and use it for my next projects.
I spend some time learning how to use RIOT, thanks to the high quality slides
and examples provided by a.abadie and I get nice results with the provided
examples.
I tried some RIOT examples / test programs and I did not manage to get similar
results that I get with STM32Cube HAL + provided Lora stack.
1) When I compile the examples/lorawan program there is no low power mode
activated by default. The power consumption is about 5.6mA when idle.
2) Low power mode 0 and 1 with RTC seems to work as I get some nice results
with tests/periph_pm program:
- mode 1 with rtc : 44µA and its resume from RTC with sucess
- mode 0 with rtc : 1.2µA and its resume from RTC with sucess but reboots the
MCU.
I observe that I previously get about 5µA without reboot. Is there some way to
do that with RIOT ?
3) I tried the riot-course-exercises/riot-lorawan/pm program provided by aabadi
on his github and I get the following results :
- mode 1 : 1.2mA in sleep mode without reboot
- mode 0 : 1.2µA in sleep mode with reboot
I observe that the i2c pull up resistor are not desactivated in mode 1 during
sleep. It can explained the 1.mA observed as it will power some external
component on my board. Is there a way to disable the internal pull resistors of
i2c bus ?
To be noted, I had to add CFLAGS += -DMODULE_SEMTECH_LORAMAC_RX in my makefile
to be able to build without error, otherwise the semtech_loramac_recv()
function introduce some build errors.
To conclude, the results are encouraging with RIOT OS but there is still some
minor issue that prevent me to use it for my next design :
Power consumption in sleep mode should be lower than 10µA and it would be more
pratical not to use the low power mode 0 to avoid board reboot and context loss.
In mode 1, I get the following behavior : ... > Sleep (1.2mA) > Tx > Idle
(7.6mA) > Rx1 > Idle (7.6mA) > Rx2 > Sleep (1.2mA) > ...
when compared to the behavior I get with the STM32cube HAL we did not sleep
prior Rx1 and Rx2 events, resulting in some additionnal losses. Is there a way
to improve this behavior ?
My measurements are done using OTII hardware solution on my custom designed
board, with UART and probe linked unplugged.
I can perform additionnal measurements on B-L072Z-LRWAN1 board or
SAMR34Xplained board if needed.
I would appreciate any suggestion to help my reduce my overall power
consumption using the RIOT lorawan stack ^^
Regards,
Noel
_______________________________________________
users mailing list
[email protected]
https://lists.riot-os.org/mailman/listinfo/users