Need help implementing a S1 project to S2

Hello everyone,

I was looking around for a project at school and bumped into this:

The problem is, I ordered Series2 modules and cannot use some of the AT configuration commands mentioned there.

I’m very new to XBee and I have to finish it this weekend, so any help is greatly appreciated.


That’s a very interesting link! Thanks for posting it. So which commands are you having difficulties with?

Thanks for your interest!

I’m unable to use ATMY and ATIx commands. ATMY is not a big deal, I’m able to select destinations using serial numbers of the modules, but ATIx commands are important for me as I guess I need to enable output from reciever and choose input as device “1”.

Unlike the XBee 802.15.4 (XBS1) the XBee ZNet 2.5 (XBS2) does not have the IU, IA or IT parameters.

IU - The DIO UART output is enabled by default and cannot be turned off (IU1).

IA - The IA parameter is essentially removed and the DIO binding is now controlled only with addressing.

IT - The XBee 2.5 will not buffer more than one sample so it is equivalent to IT1.

The other parameters work in a similar fashion as on the XBee 802.15.4 so you can use that article as a guide. We also have an article on the XBee 802.15.4 which may provide some assistance for you (we will be releasing an article on the XBee 2.5 DIO in the near future), you can find that online at:

Hy every one

Im also new in the Xbee topic and ive follow the example given in the link, in fact i found the same example (in the documentation page) but in the end of the articule there are pictures that shows the PWM output. I have severals questiion:
the first one is about the A/D converssion. I want to know if I need an external MCU connected with the series 2 development (usb or RS232) board for transmitting the datas that the DAC is taking (or have taken), knowing that i´m working on a stand alone application (WSN), i mean, do i need an external MCU attached to the development board in order to send the ATIS comand and force a reading?, I also read in the manual that when the module wakes up it reads all the anabled A/D ports and sends the collected data; i need an external MCU to acomplish this as well?. wich pin (in the a base node) do i have to follow (messure) to know that the transmission sent by a remote node it has been receive by the base node or that the data it has been transmit in the remote?.

i dont have enough time so ill appreciate an answere as soon as possible (and excuse me for my english, it is not so good).


Message was edited by: UIS

Message was edited by: UIS


No you do not need an external MCU attached to the XBee in order to have it make unattended A/D samples.

You may configure the XBee ZNet 2.5 module for periodic I/O sampling via the IR command. First, you must set DH and DL to the address of the module to send the samples to (or 0 to have them send to the network coordinator). Next, set IR to the number of milliseconds you would like the XBee to wait between samples.

The unit you have specified for DH and DL must be in API mode. Samples will arrive on the destination unit as an “ZigBee IO Data Sample Rx Indicator” (API type 0x92).

Hopefully this should get your started!

Please see:

…for more information. But do let us know if you need more assistance!

Thanks for your answer, the problem was that i was reading an earlier version of the manual (the one that goes in the CD). thank you very much.

Hy again:

I was working on what you tell me on the last post but i still have a problem (in fact there are 2 big problems). the first one is that once the A/D has taken the sample the module is not able to transmit it to the base and that is because I dont know why my modules doesn't support API mode, i have tried to change the firmware of the XB24-B ZNET 2.5ROUTER/ENDDEVICE AT version 1241 (that is the one available in the X-CTU that brings the CD) via the X-CTU to the XB24-B ZNET 2.5ROUTER/ENDDEVICE API version 1341 (just like the manual said) and that is no possible. The second problem is that Ive been reading the X-ctu manual (that is here) and they present a tab that my X-CTU doesn’tt have, the tab is for allow a base station to change the radio parameters of a remote node. they said "- On the Modem Configuration tab, select the Remote Configuration option on the top left corner of the program" and i do not find that tab. Ive seen that i can get the measure as a PWM output in the receiver node (base node) and i`ve done that and no data is shown, so that means that no data is been sent.

Thanks for your quick answer just like yesterday.
thanks again and excuse me for bother you with this things.

On your troubles with changing the firmware of a module via X-CTU, X-CTU often needs user intervention in order to complete the load when it is operating on some modules.

For example, when you are changing from ZNet 2.5 AT mode firmware to ZNet 2.5 API mode firmware often the X-CTU application will attempt to get the module into command mode and fail (for a variety of reasons): when this occurs, a dialog box should pop up informing you that some user action is required. At this point, press the reset button on the development board. The firmware should now be placed on the module.

Do not forget that when you are changing from AT to API firmware you will need to go to X-CTU’s Configuration tab in order to enable API communication so you can continue to talk to the module.

As for the Remote Command support in X-CTU, it will be available in the next release of the software!



Hi jordan:

Thanks for your help, finally I´ve made an A/D transmission between two nodes, now my task is to implement a 15 node network and I`m searching for a MAC protocol that fits with my problem. I was using sleep modes Command but implementing this force the coordinator to be always awaken, so i would like to know if could I implement an Media Access Protocol that force the remotes nodes to be awake just when is needed including the coordinator.

The MAC protocol is not an issue now.
The real problem is that I need to interface the Xbee module with a digital sensor (SHT-1x from sensirion), and i need to send to this sensor a digital word in order to get the sensor reading, so i would like to know if with the digital output i can do this, i mean, is there a way to send a periodic pulse through the digital output.

Thanks for your cooperation.

You can control the digital output pins remotely on an XBee module however normally you will not be able to drive the pins fast enough over the air to be able to talk to another IC using a proprietary digital protocol.

That said, I looked at the specs of the SHT-1x sensor and the follow provision is given for the serial bus:

“The SCK is used to synchronize the communication between a microcontroller and the SHTxx. Since the interface consists of fully static logic there is no minimum SCK frequency.”

Therefore, if you can afford to read samples very slowly then you may be able to succeed without having to put down some remote microcontroller intelligence in order to interface with this sensor.

The commands you may use are Dx commands (e.g. D0, D1, D2, … Dn) to control the various I/O pins on the XBee module.

Page 42 of the 90000866_C.pdf manual outlines what the parameters for each of these commands will do. For example, sending a D1 command with a parameter of 5 will turn the digital output on I/O pin DIO1 high.

In order to read a pin, one must first configure that pin as a digital input (Dx command with a parameter of 3) and then query the pin by using the IS command (see page 43 of the same manual).

One very important thing to note is that you must send the AC command after each and every I/O pin state change (i.e. a Dx command) in order to make them take effect on the remote node.

I hope this strategy works well enough for you, but you may find that it is too slow and too power consuming. That said, the recommendation I would have for you would be:

  1. To find a different sensor, perhaps a RH sensor with analog outputs instead (there are 4 channels of A/D on a series 2 module).

  2. To use a microcontroller to provide a TTL interface to the XBee.

Best regards & buena suerte!

hi jordan:
in order to update you and get more help from you, i have to say that i have decided to change the digital sensor (shtx1) for an analog one (HIH 4000-1 or HIH3610 by honeywell) THANKS FOR YOUR ADVICE. this week, Ive been doing some characterization test using the X-bee S2 mounted on the development board; Ive notice that the supply current required by the system (module and board) when is transmitting or receiving (range test) is about 50-58[mA] and this is without using the sleep modes; when I use sleep modes the current consumption goes to 30[mA] when is awake and 15[mA] when the module is sleep, and reviewing the datasheet i found that this consumption belongs to idle mode, so one question is: [b]which elements in the board is consuming the extra current? the second question is: once the module (end device) is programmed, which pin do i need to connect to an external pcb or protoboard in order to get the module working (transmitting at least), I mean is Din and Dout necessary to be connected (to what device if i dont want to use a micro controller) or only with vcc and gnd is enough to have a transmission to a base station?[/b] I ask you this because i have several issues with the current consumption on my design so im thinking not to use the board and use as less component as possible (leds, USB/RS232 interfaces, switches, etc) and that, allow me to have a smaller hardware.

Hector Enrique De La Hoz Leòn.

thanks for your cooperation.

Hello Hector,

15 mA seems quite high for me when the module is asleep. What parameters are you setting on the module in order to configure it for sleeping?

As for your question about pin connections: Vcc and GND are (obviously) necessary; Din/Dout are only needed if you need to speak to the module serially. If you are only taking an analog reading using this module you should only need to connect the analog outputs of your sensor up to the module.

Be aware that most of the pins of the module are configured to use internal pull-up resistors.

Without the sensor connected, what is your measured current consumption?

Best regards,


hello jordan:

the test was made with no sensor connected to the module, only the development board (RS232 interface as remote and with the PANASONIC 9V battery) and the module were used for our propose (I have some pictures of the test day, so maybe i will send it to you later). the module (remote) was configure as follow:


Im going to send you the results that weve achieve on an pdf file, this ones are not the last ones but represents a part of the test.

Best regards an thanks again and again

Message was edited by: UIS

Hi Michael

It`s been a while.
As you know, any project needs as much information as possible, therefor I would like to review the Xbee´s processor, I mean I´d like to reed the processor datasheet (I know that this processor is manufactured by amber) and if you use a different ADC instead of the processor one please let me know (in order to find its data sheet too).

I know that my question can bother you but please understand me, I need this information.

Thank you very much and best regards.

Message was edited by: UIS


I haven´t written from ages…well this time I want to make some questions about some Xbee series 1 caracteristics and how can I achive those with series 2. (just as the title).

1- It is possible to have (with series 2 moudules) the RSSI value in an API frame just like in series 1 API FRAME 0x81.

2-What hapened with the ATJN command in the 1247 and 1347 firmwares, what are the differences between them and the 1320 and 1220 firmwares. talking about XB24-B modems.

3-I´ve notice, since the first time I got the modules (the starter kit), that every time I turn on one router/End device in a network, the coordinator detected some RSSI level (just as it had received a packet). I haven´t been able to see in the XCTU terminal tab what does the coordinator receive. would you mind telling me what is it? it is one JN command (I mean an API frame 0x95)?, Why can´t I see that message?.

4- It is possible to have a similar behavior with other API frames that the one that have the Frame 0x92 with sleeping modules. I mean it is possible to receive a DB reponse every time the modules wake up from a sleeping period?

Thanks for your cooperation.

Message was edited by: UIS

Regarding your questions…

  1. The series 2 modules do not include RSSI in the API rx data frame.

  2. The JN command, if set to 1, causes a device to send a broadcast transmission (join notification) when it joins a network or when it is power cycled. Devices that receive this transmission will blink their associate LED pin rapidly for 1 second. This behavior works well in small networks, but is not recommended in large networks in order to avoid excessive broadcasting on power cycle events.

  3. Only API devices send a 0x95 frame out their UART. AT devices that receive the join notification broadcast will set the RSSI LEDs and blink their Associate LED pin, but they will not send any data out their UART.

  4. If I understand the question correctly, you would like an end device to send a certain transmission (i.e. ATDB command response) when it wakes from sleep, similar to the way an IO sample can be sent when waking? If that is what you are asking, there are two ways to accomplish this.

#1 - A device running API firmware can send a remote ATDB command to a sleeping end device (that the parent will receive and buffer). When the end device wakes, the parent will forward the ATDB command to the end device, who will then send a DB response to the API device that sent the DB command.

#2 - When an end device wakes, have it transmit an IO sample to some device (running API firmware). When the device receives the IO sample, it can then send a remote DB command to the end device. (In ZB 2x4x firmware, the device can then send an SI command to the end device to put it to sleep immediately.)

Also, if you are using end devices in your project, we strongly recommend using ZB firmware.

I think that there were some missunderstood, excuse me for my bad English I suppoused that is the source of the communication error between us…

1- I know that ZNet 2,5 doesn´t have the RSSI value in a data frame…my question was, IT IS POSSIBLE TO HAVE IT?.

2- I also know that sending the ATDB command while an end device is sleeping, once it wakes up, he will answer, but if you remember, when you set the ADC port and set a sampling rate, you don´t need to send any comand to a remote, in stead once an end device with these params set (ADC PARAMS) wakes up, IT AUTOMATICALLY SENDS THE SAMPLES…so it is possible to have this behavior, with other frames?

3- my question was…what happened with the JN command in the ZNET 2,5 firmwares for router/end device? I know that ZigBee firmware has it, but ZNET 2,5 doesn´t.

A final statement…what if I´m running an API firmware on the coordinator…I still can´t see the JN frame?

Thanks again…and best regards…

Message was edited by: UIS


#1 - I don’t know if adding RSSI is a planned feature. In a mesh network, RSSI only indicates the quality of the LAST HOP link, not the quality of the entire (multi-hop) path. I believe that is why it was not included in the API receive frame.

#2 - It is not currently possible to automatically send AT command values on wake.

#3 - ZNet version 1x47 should have the JN command.

API devices should see the JN frame. If JN=1 on a router, it should send the broadcast on powerup, after joining, and when the commissioning pushbutton is pressed once (ZNet 1x47 and ZB 2x21 and 2x41).