Reputation: 1939
I have followed the steps outlined in XBee Series 2 Point to Point Communication and everything appeared to work 100%. However, when I open up X-CTU and click "Digi Device Discovery" the two XBee units cannot find each other.
My suspicion is because the coordinator node is on channel and the router has an operating channel "12" whereas the coordinator node has an operating channel "11".
But I am not able to change either of them via the X-CTU GUI.
How can I change the channel or diagnose this problem?
I have read online somewhere it is possible the two XBee units have different versions of the firmware. If this is the problem, how can I determine which version of firmware is installed on the two units?
The coordinator unit has version 20A7 and the router node has 22A7.
Is it possible this is the problem?
UPDATE:
Coordinator profile:
XB24-ZB_20A7.mxi
80
0
251
20A7
0
[A]ID=100
[A]SC=FFFF
[A]SD=3
[A]ZS=0
[A]NJ=FF
[A]DH=13A200
[A]DL=408B81EE
[A]NI=COORDINATOR1
[A]NH=1E
[A]BH=0
[A]AR=FF
[A]DD=30000
[A]NT=3C
[A]NO=0
[A]CR=3
[A]SE=E8
[A]DE=E8
[A]CI=11
[A]PL=4
[A]PM=1
[A]EE=0
[A]EO=0
[A]BD=3
[A]NB=0
[A]SB=0
[A]RO=3
[A]D7=1
[A]D6=0
[A]CT=64
[A]GT=3E8
[A]CC=2B
[A]SP=20
[A]SN=1
[A]D0=1
[A]D1=0
[A]D2=0
[A]D3=0
[A]D4=0
[A]D5=1
[A]P0=1
[A]P1=0
[A]P2=0
[A]PR=1FFF
[A]LT=0
[A]RP=28
[A]DO=1
[A]IR=0
[A]IC=0
[A]V+=0
Router profile:
XB24-ZB_22A7.mxi
80
0
251
22A7
0
[A]ID=100
[A]SC=FFFF
[A]SD=3
[A]ZS=0
[A]NJ=FF
[A]NW=0
[A]JV=0
[A]JN=0
[A]DH=13A200
[A]DL=408B820C
[A]NI=ROUTER1
[A]NH=1E
[A]BH=0
[A]AR=FF
[A]DD=30000
[A]NT=3C
[A]NO=0
[A]CR=3
[A]SE=E8
[A]DE=E8
[A]CI=11
[A]PL=4
[A]PM=1
[A]EE=0
[A]EO=0
[A]BD=3
[A]NB=0
[A]SB=0
[A]RO=3
[A]D7=1
[A]D6=0
[A]CT=64
[A]GT=3E8
[A]CC=2B
[A]SM=0
[A]SN=1
[A]SO=0
[A]SP=20
[A]ST=1388
[A]PO=0
[A]D0=1
[A]D1=0
[A]D2=0
[A]D3=0
[A]D4=0
[A]D5=1
[A]P0=1
[A]P1=0
[A]P2=0
[A]PR=1FFF
[A]LT=0
[A]RP=28
[A]DO=1
[A]IR=0
[A]IC=0
[A]V+=0
Upvotes: 1
Views: 5955
Reputation: 489
I realize this is an old post, but for posterity...
First, please note that the part you are using (XB24-ZB) is now end of life, and is replaced by XB24CZB parts. The older family use the Ember EM250 MCU, the newer 'S2C' modules use the EM357 MCU. The new modules have significantly more memory, so contain firmware that operates in all six 'modes' (coordinator, router, & end point, with AT & API interfaces). It is NOT clear to me if the bug (/issue) I've documented below is fixed in the firmware for the new modules.
There is a (very poorly) documented bug in the EM250 that causes the routers (& presumably end points) to 'find' the coordinator on a channel 12 channels from the actual channel it occupies. The 'fix' suggested by Digi is to use the SC mask to only allow 12 channels (i.e., SC = 0x1FFE, instead of the default 0xFFFF). This appears to be a hardware bug resulting in some kind of crosstalk/modulation.
The 'documentation' of this issue is buried in the firmware release notes for the ZB firmware (i.e., in the XCTU package dated 2012-10-15, the file 'c:\Program Files (x86)\Digi\XCTU\update\93009373_G1.txt' describes the issue):
### Known Issues / Errata:
* EM250 channel crosstalk problem
- Data can be received +/- 12 channels from the operating channel if the data is
received within a tight power level range (-20 to -35dBm). This typically occurs
when the modules are placed within a few feet of each other. Possible work
around is to only use an SC of only 12 channels (i.e. 0x1FFE).
This issue is particularly insidious, as the radios communicate correctly over short distances (in my tests up to about 10 feet), then suddenly 'lose signal'. Digi even mentions setting SC=0x1FFE to restrict available channels to 12 in the datasheet, but DOES NOT MENTION this is required to fix a hardware bug. With no clear understanding of WHY you might want to use only 12 channels, who in their right mind would choose to use less than the default 16 channels?
You indicate your channels were 11 & 12, which are adjacent, but be aware that the coordinator selects a new channel on power up, so if you power cycled the coordinator to get your register dumps, the radios may well be on different channels than what they were on when you experienced the original communications issue. The router will remember the last channel it found the coordinator on.
Also you should set JV=1 on the router, as @Fahmy indicates. Otherwise if the coordinator chooses a different channel on power up, the router will never leave the 'last known good channel' to attempt to find the coordinator on another channel. In this event, your router firmware would have to implement a network reset to initiate the search.
Upvotes: 0
Reputation: 11
Set/read the channel verification setting. If enabled, a router will verify a coordinator exists on the same channel after joining or power cycling to ensure it is operating on a valid channel, and will leave if a coordinator cannot be found (if NJ=0xFF). If disabled, the router will remain on the same channel through power cycles.
you need to set JV enabled
Upvotes: 1
Reputation: 981
You can change or find out the operating channel by defining the (SC - Scan Channel) value (which FFFF by default), every bit you flagged you add more channels to be scaned .
Find more in XBee Tutorial here
The firmware versions don't effect if you have different devices (Coordinator & Router).
There is a Terminal in X-CTU Software you can use it instead of putty .
Upvotes: 2
Reputation: 1939
I was able to figure out what the problem was. Here is what I did to figure it out.
I navigated to the X-CTU profile for the coordinator. I loaded the the profile by clicking "Read" button. Then I clicked on "Save" button to save the profile of the coordinator to a file on my file system called "coordinator.profile".
I navigated back to the X-CTU screen but for the router this time. I loaded the router's profile by clicking "Read" button. Then I clicked on "Save" button to save the profile of my router to a file on my file system called "router.profile".
Once I had both files I used "WinMerge" difference utility to perform a scan for all differences between both files. I noticed the following extra fields:
[A]SO=0
[A]SP=20
[A]ST=1388
[A]PO=0
The router, for some reason had these fields but the coordinator did not. All I did was zero them out. So I changed ST=0 and SP = 0;
Then I clicked on "Write" button for the router to load the changes on the xbee.
Once I did that, opened two putty terminals, one for the coordinator and one for the router.
When I typed something into the coordinator putty terminal it showed up in the router terminal. What i typed something in the router terminal it showed up in the coordinator terminal. So, if I understand correctly, proves data is now being passed correctly over wireless.
Upvotes: 0
Reputation: 33
This is not an answer yet. I'll try to guide you as best I can, based on my own battles with XBee.
OK, I had a look at the "steps outlined here" you refered to in your question only after I typed all this below. The instructions seem pretty complete, so perhaps just double check it again. It would also appear that both Router and Coordinator are running in AT mode, which will be one-on-one communications.
Athough my XBee's model looks a little different from yours (mine is XB24-Z7WIT 004 (Zigbee)), can you check or confirm the following (use X-CTU) as a start.
Do you have the correct Modem selected in XCTU? Same PAN address is required for both. On the the Router Destination address setting you need to have the High and Low address of the co-ordinator Xbee. The co-ordinator's own destination address fields, in your case, must then point to the router's address (high and low).
Also, the combination of API or AT mode will show a difference in Firmware without affecting performance, unless you have setup incompatible settings / hardware. For instance, the very same piece of hardware (Modem selection in X-CTU) will show different firmware if you've set it up as AT or API, or co-ordinator, router, end device, etc.
You can see the firmware version by Reading the device using X-CTU. See the picture above. The 'version' (in my case 23A7) is the firmware applicable to a XB24ZB ZigBee Router API.
Also tell us more about your setup. What is connected to the two XBees? What Operating system? What is the exact XBee model number on the bottom of your XBee modules - mine is XB24-Z7WIT 004 as an example.
Upvotes: 1