ConnectPort X4 and transparent mode

I am trying to set up the ConnectPort 4 to connect to a remote xbee in transparent mode. I have a remote xbee pro 802.15.4 running version 10E8 firmware. What I am trying to do is open up a direct serial connection to run an application on my pc to read data from the remote xbee. This works when using an xbee connected to PC using the usb developement board or an xstick. Not sure if I should be using realport or one of the socket. Any advice please. or maybe i need to run python as the serial port

Using ConnectPort X4, if you want to do data transfer between two modules than you need to write the python script to bind the xbee sockets.

ConnectPort X4 can be interfaced to internal xbee in API mode only with BD=115200.

But your Xbee module which interfaces to PC can be set to AT mode.

In theory - if you log in with telnet and issue the command ‘set xbee state=off’, receive no error and reboot, then the X4 comes up with 2 serial ports and no knowledge of “Xbee”. RealPort or TCP sockets to the second port should give you raw access to the XBee.

However, this also means the “Xbee Network” web page dissappears! (No having your cake & eating it too!)

There might be firmware dependencies here - not sure if this is true in all firmware ages.


I was thinking TCP/UDP and RealPort can be applied to IOIOI port in case of serial port settings. Can this be applied from the serial port settings only?

My setup is I have a xbee on a controller with a DSP that I want to access memory locations from. I do this throught a serial connection (transparent AP0) . I want to first poll all of my remote xbees to read the I/O “ATIS” to see if an input is high which means a change happened. This seems possible with a python script. Works through console. Then I would like to build up a transparent serial connection to read the DSP memory locations. Never worked with python before. Before the connectPort 4 I was using 4800 setting and my DSP doesn’t seem to support 115200. I’m trying to work on the bind to method. Will the bind method work at 4800?
Can you set the ConnectPort X4 internal xbee to AP0?
I can put an additional xbee on the serial port |0|0| configure the port for realport set the xbee for AP0 and make a connection but I wanted to use the internal xbee.

The Internal Xbee of ConnectPort X4 cannot be set to AT mode. It only works in API mode with 115200 baud. But if you connect xbee 232adapter at the CPX4 serial port than it can work. But the output string from xbee is ended by \r only rather than

Okay, back to my original suggestion - I played a bit with it today. This works fine on an X2, but not on an X4.

I can turn the Xbee off & reboot, losing me the Xbee network support, but the X4 (with latest J1 firmware) fails to make the 2nd serial port show up as required. This might work in an older firmware, but I don’t have time to run backwards and see where it works or doesn’t.

On the X2, this causes the X2 (which has no serial port) to magically show one. One can then use Realport or any method to access the XBee, and the Xbee can be any mode API or AT - even an End-Device.

This must be a bug in the X4 - or else no one has asked for this function and the functionality hasn’t been correctly realized. I know many customers buy the X2 expliciedly because they want to use RealPort or TCP port 2101 to allow a PC application to remotely manage the XBee via Ethernet.

Are you saying that if I use a ConnectPort X2 there is an xbee inside that I could set to AP0 or transparent mode. Maybe I have the wrong device

We are using XBee as a wireless serial port with one master and multiple slaves. the PAN ID and baud rates are set. So the thought was to assign a port number to a XBee address and simply use the port number argument in telnet to select the desired Xbee transparent connection. The pieces seem to be there in the X4, but we cannot get it to work that way. Your testing helped give insight. Thanks.

Anyway, that was our expected drop-in network solution. Do you think the X2 would get us closer? We can handle switching between API and transparent modes.

The X4 is at Firmware: (Version 82001536_F3 03/16/2010)

The update for this version states an earlier version cannot be used. So there is no point in trying to test earlier versions.

I put in the latest updates…still no sucess in getting an Ethernet to XBee connection.

Firmware Version: (Version 82001536_J1 05/12/2011)
Boot Version: 1.1.3 (release_82001975_C)
POST Version: 1.1.3 (release_82001753_G)
Product VPD Version: release_82002010_B
Product ID: 0x0085
Hardware Strapping: 0x0044

Any other Ideas on how to connect the Ethernet port to the built in XBee? The Industrial Automation application is very close, but the drop down for protocol only shows Modbus. Using a drop-down box makes it appear that other protocol choices were suppose to be available (like ASCII or NONE?). But this is the general idea of the set up where a IP port number is matched to a destination XBee address…so close…

Looking at the web specs at…

the Industrial Protocol Support section in the Spec tab states “Functions like an Ethernet to serial bridge, but uses ZigBee to transport serial data” that is what I thought we were getting. It is an X4 which must be a superset of an X2.

I have confirmed with engineering - the X4 CANNOT be placed in ‘transparent mode’ where the XBee appears one of the X4’s serial ports.

The X2 CAN be placed in transparent mode, so the XBee appears as its first serial port. Thus RealPort can be used from XCTU ona PC, or AT/API-oriented PC apps can talk to it on TCP port 2101 (and so on).

I guess the problem is on the X4, the real serial port is #1, and then the cell modem is ports 2 and 3, so there is no easy way to have an X4 with 2 ports called 1 and 4 (or 1 and 2). Whereas on the X2, it either has NO serial port and the mesh driver, or 1 serial port and no mesh driver.

With some help from Todd Goodwin at Digi, I am struggling with a python script that is just about what we need. It uses a table to map/bind XBee MAC address to Port Number starting at 4000. I expect to be using 16 ports, 4001 to 40016. I can telnet to port 4001, type characters in the telnet session and see them on the XBee (X-CTU) terminal.

The show stopper is I cannot get the characters from the XBee terminal to the telnet session.

Is this easier on X2?

We have a visibility issue with management. We are burning way too much time on this. We have a retrofit project that will use 40 XBee pro modules. We like this widgets. So, getting this gateway to work quickly is very important.

One thing, you need to establish different telnet server using different threads in python. Better to use threading module than thread.

The telnet server at the port 4001 can work this way in cmd.
telnet [ip address of CPX4] 4001