I finally got around to measuring power consumption, with some good results. I made two nodes that were identical except one with a CC1101 and the other on an RF24 network. The nodes had a single SHT31 temp/humidity sensor and woke up every 10s to transmit a single temperature value.
I measured power consumption with an oscilloscope across a 10 ohm shunt on the battery line, so current is v/10. For both nodes, sleep current was near identical, around 4.5uA.
Values for TX over a 60mS window:
- On the CC1101 without MY_PASSIVE_NODE, average current draw during TX was 9.7mA.
- When I enabled MY_PASSIVE_NODE, this dropped considerably down to 3.3mA.
- For RF24 both with and without MY_PASSIVE_NODE, current was 2.2mA.
When averaging for a node transmitting once per minute, this would provide a long lifetime on both radios. With a 180mAh CR2032, I'd calculate a lifetime of:
- 1150 days on a RF24
- 540 days for CC1101 without MY_PASSIVE_NODE
- 975 days for CC1101 with MY_PASSIVE_NODE
The use of MY_PASSIVE_NODE helps on CC1101, as the node does a 'fire-and-forget' on TX. Without this, it listens for an ack from the gateway, drawing RX current. For RF24, the ack is handled in hardware which is considerably quicker.
Some graphs! The ~12mS hump before TX is the SHT31 acquisition.
RF24 transmit (not sure what the initial 4ms bump is, radio coming out of sleep maybe?):

CC1101 active mode (blue curve is CC1101 CLK line):

CC1101 passive node:

So yeah, interesting results, in summary the CC1101 is a bit more power hungry than the RF24, but results in only around 10% drop in battery life if used in passive mode (or 50% in active mode).

