My next project requires me to have energy-efficient wireless sensor modules. Basically, these modules read sensor data and transmits it over a wireless transceiver.

Currently, my setup includes an Arduino Microcontroller and XBee modules. I have been considering using an MSP430 Launchpad instead, as its low power mode uses much less than the Arduino.

However, the XBee modules are crucial as they provide a 2 mile range which for my project is important. If you have suggestions of another transceiver around the same price that provide the same range and considerably lower power consumption, please comment on it below.

I would like this module to run for a year or at least six months, but the current prototype I have with an Arduino chip and an XBee module sending data every minute cleans out a 9V battery in an hour. I have read a lot about this problem and wanted to know if XBee's are out of question. Am I doing something wrong here? Is this a software or hardware problem. Maybe one of you guys have more experience than me so your opinion will definitely help here. Has anyone else tried this same design?


The Arduino is not designed for low power. For an answer to another question I recently estimated the Uno's current at 50 mA, at a 9 V input that's 450 mW. Part of the reason for the high power requirements is that Arduino has 2 microcontroller running at high clock frequencies.

Switching to the MSP430 platform looks like a good idea. I've used MSP430s running of a 32.768 kHz crystal which needed only 4 \$\mu\$A. (Power-down modes can go lower, but I couldn't stop the 32 kHz oscillator, because it took too long to start up.)

Then there's Xbee. A current of a few tens of mA is not unusual for RF modules, but maybe you can cut the average power consumption by switching it off for most of the time. This module has a transmit current of 48 mA, and a 27 mA receive current. If you would only transmit, and do that for 100 ms every minute your average current is 80 \$\mu\$A. Add 5 \$\mu\$A for standby and the MSP430, and a 250 mAh button cell will power it for 4 months. That's less than you specify, but somewhat better than the 1 hour you have now.

Other measures: try to get the Xbee's duty cycle further down. How much time do you really need to transmit a measurement (the 100 ms was a guesstimate)? Do you have to send every minute? Remember that 95 % of the current goes to the Xbee. If you can send once every ten minutes instead of every minute the battery will last 2 years! Smaller gains: can you shut the Xbee completely down instead of going to sleep; would save you 1.7 \$\mu\$A. Can the MSP430 run at a lower clock speed?

You will find other RF modules which require less power, but the 2 mile range may be a problem then.

  • \$\begingroup\$ Yes I can work on shutting the XBee completely off... actually this is for a thermostat application which is relatively slow in making fast changes to the environment so it can send once maybe every 2 minutes? But thanks for the information. It really helps. At least now I know that I need to work on using the MSP430 in sleep mode and turning off the XBee. Since you have a lot of experience with the MSP430 I might need some help coding the sleep mode so Ill message if I do. Thanks so much! \$\endgroup\$ – tabchas Jun 23 '12 at 13:46
  • 1
    \$\begingroup\$ @tabchas - note that a button cell may not be able to supply enough current for the Xbee during transmission, and that you may need to buffer with an electrolytic capacitor for the short burst. Success! \$\endgroup\$ – stevenvh Jun 23 '12 at 13:50
  • 1
    \$\begingroup\$ If you're using one of the XBee modules with a rated range of 1+ miles, those use significantly more current on both transmit and receive. Also, I believe the XBee modules can operate without a microcontroller and they have built-in analog and digital I/O. \$\endgroup\$ – W5VO Jun 23 '12 at 23:29
  • \$\begingroup\$ @W5VO - the module I referred to says 2.5 miles/4 km. About use without microcontroller, you'll need logic to periodically power-up and -down the module anyway, so I don't think that will be a big saving. But thanks for your reaction. \$\endgroup\$ – stevenvh Jun 24 '12 at 4:06
  • \$\begingroup\$ Also a microcontroller such as the MSP430 Launchpad wont take much power anyways and I need it for sampling the temp sensor which is a DS18B20 digital sensor. \$\endgroup\$ – tabchas Jun 24 '12 at 5:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.