@Dimitrios noted something very important in the comments to an earlier my post on low-power sketch:
One of the things I noticed when I started playing with the RFM12B module was that the receiver front end was mostly overloaded by the strong transmitter output (1~ 5dBm). This has a negative effect in the quality of the received signal and may end up in worse link conditions than what could be achieved with less power. In other words, the output power of the RFM12B does not have to always be at maximum but can be attenuated by as much as -17.5 dB, if link conditions allow it. Reducing transmitter power by 17.5 db would cause an immediate reduction to the energy needed for the signal to reach the receiver.
I decided to check that under the oscilloscope today, as it would provide another power saving feature to my wireless nodes. Why is that important? Well, power-efficient code runs longer on the same battery. Simple as that.
The transmission power of the RFM12B is controlled by the TX Configuration Control Command register:
// !mp,90kHz,last byte=power level: 0=highest, 7=lowest byte txPower=7; //LOWEST possible rf12_control(0x9850 | (txPower > 7 ? 7 : txPower));
The Jeelib initialization code forces that to maximum power setting. I tested normal (full power), -9 dBm and -21 dBm settings, below are the scope screenshots for the respective test:
The full power test runs at 26.4mA the -9dBm at 18mA and the -21dBm at 9.2mA. Obviously we have a three-fold saving in power usage with the least transmission power setting. But how is range affected? Obviously range is reduced, but still even with the lowest power setting I was able to get transmissions through for the most of my house.
Maybe in the future, I will put up some code to try and automatically find the lowest transmission power setting upon node power-up by pinging the gateway and awaiting for an acknowledgement with increasing transmission power.
As a conclusion, the transmission power setting can lead to great power savings since the payload transmission is what consumes most of the battery.