Xbee-PRO ZB Low Power Issues

Hi there,

I am using a Programmable Xbee-PRO ZB module. I’m having trouble getting the current draw to the levels specified in the data sheet (approx. 4-5 uA in sleep mode). I’m current only able to get to about 5 mA or so. I tried using the sample application in Codewarrior 10.1 called pm_example. This puts the Freescale MCU in STOP3 and I do see the current levels drop from about 50 mA to about 5-8 mA at the lowest point. I’m not sure why I can’t get it to go to the uA range though. Does anyone have experience with getting these Programmable Xbee-Pro ZB units to sleep in the uA range? I have tried disconnecting the module from the XBIB board and just measuring current drawn from the unit and still it doesn’t go below the 5-8 mA range. It seems there are conflicting suggestions of whether to set all GPIO’s as outputs and then drive them low or to enable pullups and set pins as inputs. I’m supplying the unit with approx. 3V. Any suggestions would be greatly appreciated.

Did you solve the problem? If so, I would like to know how. I tried to run pm_example but the xbee don’t sleep.

The pm_example is not putting the radio chip to sleep. You will need to configure its sleeping settings with the “XBee Configuration” component in the Smart-Editor (Sleep Commands group).

Next version of the Programmable XBee SDK (to be released in June) will include support, examples and documentation to manage the sleep modes of the microcontroller and the radio from your application.

Anyway, remember that your XBee module should have End Device firmware, otherwise the radio chip of your XBee will not be able to sleep.


We’re working in a big project using Xbee but we’ve to entrust on it first.

I’ve already set the Xbee module as End Device and configured all sleeping settings. I’ve tried many different configurations too. I deffinitely couldn’t put CPU to sleep in the pm_example using pm_set_cpu_mode(PM_MODE_STOP_2) or pm_set_cpu_mode(PM_MODE_STOP_3) commands. Making some changes in the pm_example I’ve made the RADIO CHIP sleep (using pm_set_radio_mode(PM_MODE_STOP)) but it was hard to find out what to reinitialize after waking it up (to keep the sleep cycle running correctly). I want both radio and cpu sleeping.

I’m trying to find out why the asm(stop;) is not really stopping. I’ve read the processor datasheet and the sleep registers seems to be set alright. I was running out of hope… Now I’m happy to know that the next version is comming up.

I spent some weeks trying to use i2c module from SDK too but couldn’t make it work. I’ve had to write my own to make it run.

While the new SDK is not released, I’m planning a test (well organized and with proper instruments) to compare xbee non programmable consumption with the programmable.

New SDK released! lol Gonna test it tomorow…

Hello Vinicius,

Did you finally get it running?


Yeah, but it’s not perfect yet. I’m still having a situation. I’m using pin sleep mode but the radio is taking around 115 ms before going to sleep. For most people it might be little but for our application it’s too much. Time before sleep (ST) is only avaible for cyclic sleep, so I can’t configure it. Anybody have any idea about what can be done?