Quest for the low power
Updated: Jun 27, 2019
If you heard about Wize before you will already know that the key points for this technology are: long range, low power (as other LPWA radio technologies) and deep penetration. We already posted our experiments about the long range of Wize in a previous post and we are doing some in depth tests about the deep penetration at the moment. But let’s talk about low power now!
There are so many factors that impact low power. In practice, it’s all about how often you have to change your batteries or if your device can be autonomous by using solar panels or harvest power from its environment.
But let’s face it, the biggest impact to the power consumption of your solution comes from the application logic and the network infrastructure. How often do you send data? Are you sending only meaningful data? How many bytes? How long does it take to send it? How far?
The main questions in terms of power consumption of a radio based solution are these:
How much power does the device use when sending a message?
How much power does the device use when it is in sleep mode?
How fast can the device send data?
For most LPWA applications, devices stay in sleep mode most of the time. So in this post we are going to focus on the one that has a bigger impact on the power consumption, that is how much power does it use when sleeping?
What devices do I have at hand?
The Wize modules we use in the AllWize K1 and the AllWize K2 are the RC1701HP-OSP (for release candidate boards) and RC1701HP-WIZE (for final product) manufactured by RadioCrafts. The latter is not available yet but according to the manufacturer there should not be meaningful differences in power consumption with the OSP version.
On the other hand, we are using different already available boards as hosts to test the AllWize K1 shield (the AllWize K2 should be available soon), namely: Arduino Leonardo, Arduino Zero board and Moteino board. We have also tested the MKRWAN1300 board by Arduino that packs a LoRa radio module.
The first two are not really meant for low power applications but this is something we will find out right away. The Moteino board on the other hand does not share the same Uno-like form factor but it is meant for low power so it will be good to know if it really is.
Finally, the MKRWAN1300 is a board with the same form factor as the AllWize K2 (we actually used this board as an inspiration to build the AllWize K2). The hardware is very much the same as the AllWize K2 except for the Murata LoRa module, of course. So we thought it will be great to test it too.
Low power requires specific hardware
This is the first thing you learn when you start measuring power consumption of your devices. Most prototyping boards out there are not meant for low power solutions. Their goal is to help you build your PoC, test your idea and see if it is feasible. If everything is OK then you should move on to specific, ad-hoc, hardware that suits your project requirements. If low power is in your list of “must-haves” and you want to include it in your PoC, you will need specific prototyping hardware.
Setting the RC1701HP module in sleep mode
This is going to be the shortest section in this post.
OK, let me explain a bit. The RC1701HP has different sleep options and they are all available in AllWize’s library for Arduino that we have created. There are basically two different sets of options: manually or automatically put the radio to sleep.
In automatic mode you can tell the radio module to go into sleep mode after every transmission, for instance, with an optional timeout. This is done setting the proper value with the setSleepMode() method.
In manual mode you have the sleep() method used above to set the module into sleep mode from the host MCU anytime you want. In both methods you can wake up the module using the wakeup() method.
As usual, while in sleep mode the device is not able to receive messages. But when using automatic sleep options the module might shortly wake up to receive the answer from the master depending on the transmission mode.
Monitoring the radio module consumption
To monitor the sleeping and non-sleeping current we have used a uCurrent device that basically uses different high precision burden resistors to monitor down to the nA with a simple multimeter. This is a low cost set up with great performance that you can use to reproduce the experiment.
We have used different host boards: Arduino MKRWAN1300, Arduino Zero and Moteino. As stated before the Arduino boards are not meant for low power use cases. Even with some slight modifications, like removing the power LEDs, their power consumption with the MCU in deep sleep do not go below the several mA. Not really low power, right?
The Moteino on the other hand is an Arduino-compatible board meant specifically to create low power sensors (low Iq LDO, unnecessary LEDs removed, ...) and the tests using it really achieved great results.
Finally we tested the radio module alone. Well, actually we tested the AllWize K1 shield with the temperature sensor removed. The results were awesome!
Here you have a few tables with the results. Move to the next section for the conclusions.
Conclusions and homework
If you check the latest table above you will notice we have some really low power radio modules. Less than 0.5 uA is a great starting point. But that’s just the radio module.
You can also notice that the Arduino development boards we have used are not really low power since the measures, even in sleep mode, are not very good. A particular case above is the Arduino MKRWAN1300, the LoRa development board by Arduino that sports a LoRa radio module by Murata. The current version of the board has a hardware issue that prevents the board from going into really low power mode (check this thread here).
The Moteino board, on the other hand, is really meant for low power and it goes down to a few uA easily.
Our goal with the AllWize K2 is to have a standalone low power board with similar power consumption to the Moteino but powered by the much more powerful SAMD21G microcontroller. Something around the 6uA will be great.
We will be soon able to do the first tests with the beta hardware and we will keep you informed!