X-CTU and API mode 2

Does X-CTU still work when API mode is set to 2 (escaped)? Are there any restrictions? For me, and in particular, REMOTE configuration doesn’t seem to work any more unless I turn the API mode back to 1. I’m wondering if this is expected behavior.

Even for me Remote Configuration is not working when API mode is set to 2, this may be the restruction of the X-CTU, but i’m not sure.

Create an Online Support request at the following link, http://www.digi.com/support/eservice/login.jsp , digi technical folks will help you.
If the issue is already solved, please update the forum.


XCTU doesn’t support API mode 2, and that mode only has use if you expect a very high level of noise on the serial line.

Said another way, API mode 2 is useful if you have a 30 foot RS-232 cable or even 500 foot RS-485 link between the Xbee and your host application.

However, if you have a micro UART 1 cm away from XBee, or even a 1-meter USB cable between XCTU and an XBIB, then API mode 2 is a waste of effort.

lynnl, I have no clue why you would say that. API 2 mode just escapes hex values 7E, 7D, 11 and 13. This is done since these hex values have a special meaning. If 7E would occur in your data it would seem like the beginning of a new packets, which would be interpreterd incorrect. So they escape it using 7D followed by the original data (for instance 7E) XOR’ed with 0x20.

How does this related to a noisy environment?

As stated above I don’t think XCTU can work with API 2 mode since it reads an adress as 7D 33 A2. Which is the same result I get when using the terminal to query for the adress and the terminal just sends me the raw data without taking into account the escaped characters. So I think neither does XCTU. The terminal I use is one I wrote in linux so I am sure it is raw data, but the XCTU terminal show the same result.

XBEE manual:
" Escape characters. When sending or receiving a UART data frame, specific data values must be escaped (flagged) so they do not interfere with the data frame sequencing. To escape an interfering data byte, insert 0x7D and follow it with the byte to be escaped XOR’d with 0x20. "


In the PC settings tab you can enable API and use escape characters.
Haven’t tested it yet but it should work

1 Like