Hi lowpo,
The TX power does indeed affect the power consumption. Even the transmission happening very fast, after thousands of packages sent the chosen TX power would start to make a difference.
On the RFM69HW Datasheet (
https://bitbucket.org/talk2/whisper-nod ... W-V1.3.pdf), page 12, there's a table showing the following:
- +20dBm: 130mA (on PA_BOOST)
- +17dBm: 95mA (on PA_BOOST)
- +13dBm: 45mA (on RFIO pin)
- +10dBm: 33mA (on RFIO pin)
- +0dBm: 20mA (on RFIO pin)
- -1dBm: 16mA (on RFIO pin)
*Remember, the RFM69W (Standard version) on has a maxium TX power of +13dBm, so if that's yout case just ignore the two first lines from the list above.
I still need to plug an oscilloscope along with a uCurrent (
https://www.eevblog.com/projects/ucurrent/) to measure the power consumption myself and post some screen-shots, but normally datasheet details are reliable.
Now a practical example:
Let's suppose you have a total of 20 bytes to be transmitted, which include all headers+payload per message. If your link running at 80Kbits/sec (or 10KBytes/s), that would mean that a
20 bytes message takes 2ms to be transmitted.
Now, if you transmit one
message every 10 seconds, your radio will spend 1.75 hours transmitting data during a year. Now if you don't need to transmit at full strength, reducing the TX power from 45mA to 20mA can save you some juice, adding extra life-time for your application.
Calculations:
365 * 24 * 60 * 60 = 31,536,000 seconds per year
31,536,000 / 10 = 3,153,600 message per year
3,153,600 * 0.002 = 6307.2 seconds transmitting
(remember 2ms or 0.002 seconds per message)
6307 / 60 / 60 = 1.75 hours transmitting
When designing an application for long running periods, every millisecond and milliamp counts.
Notes:
- I've used 80kbits/s just to make calculations easier... yes if you double the speed you're going to spend less time transmitting, but also need to consider that lower speeds are more reliable.
- The 2ms represents the time the radio is actually transmitting, for precise estimate would be ideal to include time spent send data to the radio buffer... maybe just adding 1ms or 2ms to it should account for that.